From c4f0f109639773d89449f04a87dba1987193e1cb Mon Sep 17 00:00:00 2001 From: xieguigang Date: Mon, 5 Jun 2017 18:40:06 +0800 Subject: [PATCH 01/33] removes old files --- .gitignore | 2 + CPOL.htm | 251 - CPOL.txt | 23 - ChangeLogs.src.txt | 0 ChangeLogs.txt | 2 - Developer Guides.docx | Bin 64812 -> 0 bytes EndNoteLite/EndNoteLite.vbproj | 220 - EndNoteLite/LibraryHtmlDoc.vb | 3 - EndNoteLite/My Project/Application.myapp | 10 - EndNoteLite/My Project/AssemblyInfo.vb | 35 - EndNoteLite/My Project/Resources.Designer.vb | 63 - EndNoteLite/My Project/Settings.Designer.vb | 73 - EndNoteLite/PMCFullText.vb | 3 - EndNoteLite/academic.enw | 11 - EndNoteLite/endnote-citations.enw | 17 - .../API.vb | 34 - ...tensions.ShoalShell.HybridScripting.vbproj | 143 - .../My Project/Application.Designer.vb | 13 - .../My Project/Application.myapp | 10 - .../My Project/AssemblyInfo.vb | 35 - .../My Project/Resources.Designer.vb | 104 - .../My Project/Resources.resx | 127 - .../My Project/Settings.Designer.vb | 73 - .../My Project/Settings.settings | 7 - .../Resources/gpl.txt | 674 -- .../Resources/license.txt | 12 - .../API.vb | 51 - ...al.Extensions.Shoal_HybridScripting.vbproj | 226 - .../My Project/Application.Designer.vb | 13 - .../My Project/Application.myapp | 10 - .../My Project/AssemblyInfo.vb | 35 - .../My Project/Resources.Designer.vb | 63 - .../My Project/Resources.resx | 117 - .../My Project/Settings.Designer.vb | 73 - .../My Project/Settings.settings | 7 - .../IDEPlugIn.vb | 58 - ...ic.ShellScript.Dynamics.IDE_PlugIns.vbproj | 194 - .../My Project/Application.Designer.vb | 13 - .../My Project/Application.myapp | 10 - .../My Project/AssemblyInfo.vb | 35 - .../My Project/Resources.Designer.vb | 63 - .../My Project/Resources.resx | 117 - .../My Project/Settings.Designer.vb | 73 - .../My Project/Settings.settings | 7 - R/R.sln | 108 + {Shoal.Testing => R/R}/App.config | 6 +- R/R/Module1.vb | 7 + .../R}/My Project/Application.Designer.vb | 0 .../R}/My Project/Application.myapp | 0 .../R}/My Project/AssemblyInfo.vb | 26 +- .../R}/My Project/Resources.Designer.vb | 6 +- .../R}/My Project/Resources.resx | 0 .../R}/My Project/Settings.Designer.vb | 18 +- .../R}/My Project/Settings.settings | 0 .../R/R.vbproj | 41 +- R/R/TokenIcer.vb | 81 + R/syntax.r | 56 + RDotNET.Extensions.ShellScriptAPI/API.vb | 512 -- .../My Project/Application.Designer.vb | 13 - .../My Project/Application.myapp | 10 - .../My Project/AssemblyInfo.vb | 35 - .../My Project/Resources.Designer.vb | 63 - .../My Project/Resources.resx | 117 - .../My Project/Settings.Designer.vb | 73 - .../My Project/Settings.settings | 7 - .../RDotNET.Extensions.ShellScriptAPI.sln | 28 - .../ShoalShell.Plugins.RDotNET.vbproj | 232 - README.md | 22 - Shoal.Testing/Debugger.vb | 25 - .../My Project/Application.Designer.vb | 13 - .../My Project/Resources.Designer.vb | 63 - Shoal.Testing/My Project/Resources.resx | 117 - Shoal.Testing/My Project/Settings.Designer.vb | 73 - Shoal.Testing/My Project/Settings.settings | 7 - Shoal.Testing/Shoal.Testing.vbproj | 127 - Shoal.Testing/TestingProgram.vb | 240 - .../Classification/ClassificationFormat.vb | 78 - .../Classification/ClassificationType.vb | 37 - .../Classification/OokClassifier.vb | 77 - Shoal.VisualStudio/Codeporium.xml | 6 - .../Intellisense/CompletionController.vb | 180 - .../Intellisense/CompletionSource.vb | 63 - .../Intellisense/OokQuickInfoSource.vb | 64 - .../Intellisense/QuickInfoController.vb | 66 - .../QuickInfoControllerProvider.vb | 23 - Shoal.VisualStudio/My Project/AssemblyInfo.vb | 33 - Shoal.VisualStudio/Shoal.VisualStudio.sln | 65 - Shoal.VisualStudio/Shoal.VisualStudio.vbproj | 184 - Shoal.VisualStudio/ShoalShell.vb | 10 - Shoal.VisualStudio/TokenTag/OokTokenTag.vb | 29 - .../TokenTag/OokTokenTagProvider.vb | 18 - Shoal.VisualStudio/TokenTag/OokTokenTagger.vb | 46 - .../source.extension.vsixmanifest | 21 - Shoal.VisualStudio/test.shl | 5 - Shoal.sln | 193 - Shoal.v2/Console/App.config | 6 - Shoal.v2/Console/Code | Bin 1520704 -> 0 bytes Shoal.v2/Console/Console/CLI.vb | 149 - Shoal.v2/Console/Console/Program.vb | 196 - Shoal.v2/Console/InternalCommands.vb | 235 - ...ork_v3.0_22.0.76.201__8da45dcd8060cc9a.xml | 7761 ----------------- .../My Project/Application.Designer.vb | 13 - Shoal.v2/Console/My Project/Application.myapp | 10 - Shoal.v2/Console/My Project/AssemblyInfo.vb | 35 - .../Console/My Project/Resources.Designer.vb | 104 - Shoal.v2/Console/My Project/Resources.resx | 127 - .../Console/My Project/Settings.Designer.vb | 73 - Shoal.v2/Console/My Project/Settings.settings | 7 - Shoal.v2/Console/My Project/app.manifest | 58 - Shoal.v2/Console/Resources/gpl.txt | 674 -- Shoal.v2/Console/Resources/license.txt | 12 - Shoal.v2/Console/ShellScript.ico | Bin 206923 -> 0 bytes Shoal.v2/Console/Shoal.Core.sln | 85 - Shoal.v2/Console/Shoal.exe.config | 6 - Shoal.v2/Console/Shoal.ico | Bin 341782 -> 0 bytes Shoal.v2/Console/Shoal.sln | 65 - Shoal.v2/Console/Shoal.v2.xml | 1304 --- Shoal.v2/Console/Shoal.vshost.exe.config | 6 - Shoal.v2/Console/Shoal.xml | 115 - Shoal.v2/Console/ShoalShell.Designer.cd | 43 - Shoal.v2/Console/ShoalShell.vbproj | 279 - Shoal.v2/Shoal.v2.sln | 124 - Shoal.v2/Shoal.v2/App.config | 6 - .../Shoal.v2/Compiler/CodeDOM/Expression.vb | 6 - Shoal.v2/Shoal.v2/Compiler/CodeDOM/Program.vb | 87 - Shoal.v2/Shoal.v2/Compiler/CodeDOM/Tokens.vb | 6 - Shoal.v2/Shoal.v2/Compiler/VBC.vb | 53 - Shoal.v2/Shoal.v2/Configuration/Config.vb | 162 - .../Shoal.v2/Configuration/Configuration.vb | 32 - Shoal.v2/Shoal.v2/Debugger.vb | 213 - Shoal.v2/Shoal.v2/HTML/Cites.vb | 23 - Shoal.v2/Shoal.v2/HTML/DocRenderer.vb | 327 - Shoal.v2/Shoal.v2/HTML/IWikiHandle.vb | 92 - Shoal.v2/Shoal.v2/HTML/TypeLinks.vb | 137 - Shoal.v2/Shoal.v2/InternalExtension.vb | 208 - .../Shoal.v2/Interpreter/AnonymousDelegate.vb | 154 - Shoal.v2/Shoal.v2/Interpreter/Interpreter.vb | 107 - .../Interpreter/Linker/API/APIEntryPoint.vb | 203 - .../Interpreter/Linker/API/APIInvoker.vb | 41 - .../API/Alignment/Alignments/OneParameter.vb | 70 - .../Alignments/SpecialAlignment(Of T).vb | 18 - .../API/Alignment/Alignments/TwoParameter.vb | 66 - .../Linker/API/Alignment/FunctionCalls.vb | 306 - .../Linker/API/Alignment/ParamAlignments.vb | 11 - .../Linker/API/Alignment/TypeEquals.vb | 104 - .../Interpreter/Linker/API/Arguments.vb | 54 - .../Linker/API/FunctionSignature.vb | 179 - .../Linker/API/ParameterWithAlias.vb | 31 - .../Shoal.v2/Interpreter/Linker/EntryPoint.vb | 161 - .../Shoal.v2/Interpreter/Linker/Linker.vb | 60 - .../Collection/CollectionAppends.vb | 29 - .../Expressions/Collection/CollectionOpr.vb | 25 - .../Expressions/Collection/CollectionRef.vb | 8 - .../Parser/LDM/Expressions/Comments.vb | 51 - .../LDM/Expressions/ControlFlow/DoWhile.vb | 34 - .../Parser/LDM/Expressions/ControlFlow/For.vb | 118 - .../LDM/Expressions/ControlFlow/GotoJumps.vb | 55 - .../Parser/LDM/Expressions/ControlFlow/If.vb | 50 - .../Parser/LDM/Expressions/Delegate.vb | 21 - .../Interpreter/Parser/LDM/Expressions/Die.vb | 27 - .../LDM/Expressions/Driver/DynamicsCast.vb | 28 - .../Parser/LDM/Expressions/Driver/FileIO.vb | 24 - .../LDM/Expressions/Driver/OutDeviceRef.vb | 23 - .../LDM/Expressions/DynamicsExpression.vb | 33 - .../Parser/LDM/Expressions/Expression.vb | 65 - .../Parser/LDM/Expressions/ExpressionTypes.vb | 96 - .../Parser/LDM/Expressions/FunctionCalls.vb | 58 - .../Parser/LDM/Expressions/HashTable.vb | 21 - .../HybridScript/HybirdsScriptPush.vb | 28 - .../Expressions/HybridScript/HybridsScript.vb | 24 - .../HybridScript/RedirectStream.vb | 22 - .../Parser/LDM/Expressions/Keywords/Cd.vb | 17 - .../LDM/Expressions/Keywords/Imports.vb | 26 - .../LDM/Expressions/Keywords/Include.vb | 24 - .../LDM/Expressions/Keywords/Library.vb | 24 - .../Parser/LDM/Expressions/Keywords/Memory.vb | 21 - .../Expressions/Keywords/OnErrorResumeNext.vb | 39 - .../Parser/LDM/Expressions/Keywords/Return.vb | 19 - .../LDM/Expressions/Keywords/SyntaxError.vb | 62 - .../Parser/LDM/Expressions/Keywords/Wiki.vb | 20 - .../Parser/LDM/Expressions/Source.vb | 25 - .../LDM/Expressions/VariableDeclaration.vb | 29 - .../Interpreter/Parser/LDM/SyntaxModel.vb | 148 - .../Interpreter/Parser/MachineElement.vb | 12 - .../Interpreter/Parser/SyntaxParser.vb | 978 --- .../Parser/Tokenliser/FullTokenliser.vb | 251 - .../Parser/Tokenliser/MSLTokens.vb | 305 - .../Parser/Tokenliser/ParserCommon.vb | 33 - .../Tokenliser/Tokens/CollectionElement.vb | 47 - .../Parser/Tokenliser/Tokens/EntryPoint.vb | 25 - .../Tokenliser/Tokens/InternalExpression.vb | 78 - .../Tokenliser/Tokens/LeftAssignedVariable.vb | 110 - .../Parser/Tokenliser/Tokens/Operator.vb | 111 - .../Parser/Tokenliser/Tokens/ParameterName.vb | 77 - .../Parser/Tokenliser/Tokens/TokenTypes.vb | 13 - .../Parser/Tokenliser/Tokens/Tokens.vb | 94 - .../My Project/Application.Designer.vb | 13 - .../Shoal.v2/My Project/Application.myapp | 10 - Shoal.v2/Shoal.v2/My Project/AssemblyInfo.vb | 35 - .../Shoal.v2/My Project/Resources.Designer.vb | 225 - Shoal.v2/Shoal.v2/My Project/Resources.resx | 139 - .../Shoal.v2/My Project/Settings.Designer.vb | 73 - .../Shoal.v2/My Project/Settings.settings | 7 - .../Shoal.v2/My Project/Settings1.Designer.vb | 1 - Shoal.v2/Shoal.v2/Resources/Shoal.ico_dat | Bin 341782 -> 0 bytes Shoal.v2/Shoal.v2/Resources/gpl.txt | 674 -- Shoal.v2/Shoal.v2/Resources/index.html | 199 - Shoal.v2/Shoal.v2/Resources/license.txt | 12 - Shoal.v2/Shoal.v2/Resources/sdk_doc.html | 269 - .../Shoal.v2/Resources/typeLinks_doc.html | 204 - .../Shoal.v2/Runtime/Debugger/Debugger.vb | 142 - .../Runtime/Debugger/DebuggerListener.vb | 135 - .../Runtime/Debugger/DebuggerMessage.vb | 57 - .../Runtime/Debugger/DebuggerProtocol.vb | 7 - .../Debugger/ShellScriptDebuggerModel.vb | 52 - .../Shoal.v2/Runtime/Driver/DriverBase.vb | 89 - .../Shoal.v2/Runtime/Driver/DriverHandles.vb | 90 - .../Shoal.v2/Runtime/Driver/DynamicsCast.vb | 108 - .../Shoal.v2/Runtime/Driver/IODeviceDriver.vb | 174 - .../Runtime/Driver/OutputDeviceDriver.vb | 115 - Shoal.v2/Shoal.v2/Runtime/Dynamics.vb | 324 - .../Runtime/Exceptions/DriverNotFound.vb | 15 - .../Exceptions/MethodNotFoundException.vb | 85 - .../Runtime/Exceptions/RuntimeException.vb | 18 - .../Runtime/HybridScripting/EntryPoint.vb | 73 - .../HybridScripting/EnvironmentParser.vb | 63 - .../Interface/DataTransform.vb | 35 - .../Interface/EntryInterface.vb | 49 - .../Interface/ScriptEntryPoint.vb | 28 - .../Runtime/HybridScripting/InteropAdapter.vb | 132 - Shoal.v2/Shoal.v2/Runtime/MMU/MMUDevice.vb | 342 - .../Shoal.v2/Runtime/MMU/PageMapping/DDM.vb | 54 - .../Runtime/MMU/PageMapping/MappingImports.vb | 110 - .../Runtime/MMU/PageMapping/PageMapping.vb | 57 - Shoal.v2/Shoal.v2/Runtime/MMU/PageUnit.vb | 80 - Shoal.v2/Shoal.v2/Runtime/MMU/Strings.vb | 79 - Shoal.v2/Shoal.v2/Runtime/MMU/Variable.vb | 136 - Shoal.v2/Shoal.v2/Runtime/RuntimeComponent.vb | 57 - .../Shoal.v2/Runtime/RuntimeEnvironment.vb | 49 - Shoal.v2/Shoal.v2/Runtime/ScriptEngine.vb | 165 - .../Runtime/StatusMachine/ExecuteModel.vb | 813 -- .../Runtime/StatusMachine/FSMMachine.vb | 102 - .../Shoal.v2/Runtime/StatusMachine/Stack.vb | 19 - Shoal.v2/Shoal.v2/SPM/Nodes/Assembly.vb | 106 - Shoal.v2/Shoal.v2/SPM/Nodes/AssemblyParser.vb | 132 - Shoal.v2/Shoal.v2/SPM/Nodes/EntryPointMeta.vb | 84 - Shoal.v2/Shoal.v2/SPM/Nodes/HybridEnvir.vb | 11 - Shoal.v2/Shoal.v2/SPM/Nodes/Namespace.vb | 107 - Shoal.v2/Shoal.v2/SPM/Nodes/PartialModule.vb | 75 - Shoal.v2/Shoal.v2/SPM/PackageModuleDb.vb | 86 - Shoal.v2/Shoal.v2/SPM/ShoalPackageMgr.vb | 317 - Shoal.v2/Shoal.v2/Shoal.v2.Designer.cd | 1039 --- Shoal.v2/Shoal.v2/ShoalShell_Core.v2.vbproj | 363 - Shoal.v2/Shoal.v2/Syntax Manual.docx | Bin 12045 -> 0 bytes ShoalShell.Debugger/Debugger.vb | 9 - .../My Project/Application.Designer.vb | 13 - .../My Project/Application.myapp | 10 - .../My Project/AssemblyInfo.vb | 35 - .../My Project/Resources.Designer.vb | 63 - ShoalShell.Debugger/My Project/Resources.resx | 117 - .../My Project/Settings.Designer.vb | 73 - .../My Project/Settings.settings | 7 - .../ShoalShell.Debugger.vbproj | 222 - ShoalShell.Legacy/App.config | 6 - ShoalShell.Legacy/Code | Bin 1520704 -> 0 bytes .../ConsoleApplication/CommandLines.vb | 142 - .../ConsoleApplication/Config.vb | 102 - .../ConsoleApplication/Program.vb | 190 - ShoalShell.Legacy/InternalCommands.vb | 234 - .../BuildInModules/Array.vb | 332 - .../BuildInModules/Cowsay.vb | 64 - .../BuildInModules/Threading.vb | 54 - .../CommonExtensions.vb | 70 - .../CommandMethodEntryPoint.vb | 276 - .../EntryPointHandlers/EntryPointHashTable.vb | 61 - .../EntryPointHandlers/FunctionSignature.vb | 304 - .../ImportsEntryPointManager.vb | 350 - .../InternalEntryPointLoader.vb | 54 - .../MethodDelegateCaller.vb | 380 - .../TypeLibraryRegistry/DelegateRegistry.vb | 485 - .../RegistryModuleLoader.vb | 111 - .../RegistryNodes/AssemblyModule.vb | 283 - .../RegistryNodes/Module.vb | 126 - .../WebServiceDelegateRegistry.vb | 6 - .../Interpreter/Delegate.vb | 233 - .../Interpreter/DelegateDeclaration.vb | 145 - .../HybridScriptingInterface.vb | 131 - .../HybridScriptingInteropHandler.vb | 267 - .../Interpreter/InternalCommands.vb | 572 -- .../Interpreter/InternalTextEngine.vb | 46 - .../Interpreter/Interpreter.vb | 621 -- .../ObjectModels/Expressions/Expression.vb | 297 - .../ObjectModels/Expressions/MethodCalling.vb | 187 - .../Interpreter/ObjectModels/ScriptModel.vb | 94 - .../Interpreter/ObjectModels/SyntaxParser.vb | 406 - .../Tokenlisers/FullTokenliser.vb | 267 - .../ObjectModels/Tokenlisers/Tokenliser.vb | 212 - .../Interpreter/ObjectModels/Tokens.vb | 450 - .../My Project/Application.Designer.vb | 13 - .../My Project/Application.myapp | 10 - .../My Project/AssemblyInfo.vb | 35 - .../My Project/Resources.Designer.vb | 104 - .../My Project/Resources.resx | 127 - .../My Project/Settings.Designer.vb | 73 - .../My Project/Settings.settings | 7 - .../Resources/gpl.txt | 674 -- .../Resources/license.txt | 12 - .../RuntimeObjects/Debugging/Debugger.vb | 183 - .../Debugging/DebuggerListener.vb | 129 - .../Debugging/DebuggerProtocol.vb | 9 - .../Debugging/ShellScriptDebuggerModel.vb | 47 - .../DeviceDriver/DeviceDriver.vb | 97 - .../DeviceDriver/DriverHandles.vb | 106 - .../DeviceDriver/IODeviceDriver.vb | 141 - .../DeviceDriver/OutputDeviceDriver.vb | 122 - .../TypeHandleEntryPointDriverrModule.vb | 79 - .../RuntimeObjects/Dynamics.vb | 362 - .../Exceptions/CircularReferencesException.vb | 47 - .../Exceptions/InterpreterException.vb | 34 - .../Exceptions/MethodNotFoundException.vb | 28 - .../Exceptions/RunTimeException.vb | 33 - .../Exceptions/ShoalScriptException.vb | 25 - .../RuntimeObjects/IScriptEngineComponent.vb | 31 - .../RuntimeObjects/MemoryManagement.vb | 475 - .../RuntimeObjects/ObjectModels/DataSource.vb | 215 - .../ObjectModels/ExecuteModel.vb | 162 - .../ObjectModels/ObjectModels.vb | 189 - .../ObjectModels/ScriptCodeLine.vb | 92 - .../RuntimeObjects/ScriptInfo.vb | 91 - .../RuntimeObjects/ShellScript.vb | 545 -- .../ShoalShell_Core.Designer.cd | 719 -- .../ShoalShell_Core.vbproj | 207 - .../Wiki/InternalHelpSearch.vb | 225 - .../Wiki/WebServiceHandler.vb | 13 - .../My Project/Application.Designer.vb | 13 - .../My Project/Application.myapp | 10 - ShoalShell.Legacy/My Project/AssemblyInfo.vb | 35 - .../My Project/Resources.Designer.vb | 104 - ShoalShell.Legacy/My Project/Resources.resx | 127 - .../My Project/Settings.Designer.vb | 73 - .../My Project/Settings.settings | 7 - ShoalShell.Legacy/My Project/app.manifest | 58 - ShoalShell.Legacy/Resources/gpl.txt | 674 -- ShoalShell.Legacy/Resources/license.txt | 12 - ShoalShell.Legacy/ShellScript.ico | Bin 206923 -> 0 bytes ShoalShell.Legacy/Shoal.Core.sln | 51 - ShoalShell.Legacy/Shoal.ico | Bin 341782 -> 0 bytes ShoalShell.Legacy/Shoal.sln | 364 - ShoalShell.Legacy/Shoal.vbproj | 179 - ShoalShell.Legacy/ShoalShell.Designer.cd | 58 - .../My Project/Application.Designer.vb | 13 - .../My Project/Application.myapp | 10 - .../My Project/AssemblyInfo.vb | 35 - .../My Project/Resources.resx | 117 - .../My Project/Settings.settings | 7 - .../TestShellScriptModule/Test1.vb | 16 - ShoalShell.Legacy/Win32API/ComDlg32.vb | 202 - ShoalShell.Legacy/Win32API/Gdi32.vb | 74 - .../Win32API/Interop.QuartzTypeLib.zip | Bin 7252 -> 0 bytes ShoalShell.Legacy/Win32API/Kernel32.vb | 19 - .../My Project/Application.Designer.vb | 13 - .../Win32API/My Project/Application.myapp | 10 - .../Win32API/My Project/AssemblyInfo.vb | 35 - .../Win32API/My Project/Resources.Designer.vb | 63 - .../Win32API/My Project/Resources.resx | 117 - .../Win32API/My Project/Settings.Designer.vb | 73 - .../Win32API/My Project/Settings.settings | 7 - ShoalShell.Legacy/Win32API/Shell32.vb | 8 - ShoalShell.Legacy/Win32API/User32.vb | 48 - ShoalShell.Legacy/Win32API/Win32API.sln | 28 - ShoalShell.Legacy/Win32API/Win32API.vbproj | 153 - ShoalShell.Legacy/Win32API/WinMM.vb | 87 - ShoalShell.Legacy/_DEBUG_MAIN.vb | 10 - ShoalShell.PlugIns.Plot/App.config | 6 - .../Device/FormChartPlotDevice.Designer.vb | 37 - .../Device/FormChartPlotDevice.resx | 120 - .../Device/FormChartPlotDevice.vb | 9 - .../Device/FormImagePlotDevice.Designer.vb | 122 - .../Device/FormImagePlotDevice.resx | 3577 -------- .../Device/FormImagePlotDevice.vb | 24 - .../Device/FormPieChartDevice.Designer.vb | 51 - .../Device/FormPieChartDevice.resx | 120 - .../Device/FormPieChartDevice.vb | 3 - ShoalShell.PlugIns.Plot/ModuleChartPlot.vb | 132 - ShoalShell.PlugIns.Plot/ModulePlot.vb | 71 - .../My Project/Application.Designer.vb | 13 - .../My Project/Application.myapp | 11 - .../My Project/AssemblyInfo.vb | 35 - .../My Project/Resources.Designer.vb | 63 - .../My Project/Resources.resx | 117 - .../My Project/Settings.Designer.vb | 73 - .../My Project/Settings.settings | 7 - .../ShoalShell.PlugIns.Plot.vbproj | 187 - .../HelpServer.vb | 34 - ShoalShell.Plugins.HtmlHelpServer/Icon.ico | Bin 10134 -> 0 bytes .../Library/CLI_MAN.vb | 46 - .../Library/Cite.vb | 31 - .../Library/Contributors.vb | 100 - .../Library/Index.vb | 109 - .../Library/Namespace.vb | 176 - .../Library/Type.vb | 80 - .../My Project/Application.Designer.vb | 13 - .../My Project/Application.myapp | 10 - .../My Project/AssemblyInfo.vb | 35 - .../My Project/Resources.Designer.vb | 162 - .../My Project/Resources.resx | 136 - .../My Project/Settings.Designer.vb | 73 - .../My Project/Settings.settings | 7 - .../NotificationIcon.resx | 546 -- .../NotificationIcon.vb | 83 - .../Resources/404.html | 133 - .../Resources/DNA.ico | Bin 245500 -> 0 bytes .../Resources/foundation.css | 6119 ------------- .../Resources/gpl.txt | 674 -- .../Resources/index.html | 118 - .../ShoalHttpServer.vb | 66 - .../ShoalShell.Plugins.HtmlHelpServer.vbproj | 239 - .../SimpleHttpServer.vb | 236 - ShoalShell.Plugins.HtmlHelpServer/Test.vb | 11 - .../Wiki/MySQL/lib_wikiarchive.vb | Bin 14160 -> 0 bytes .../Wiki/MySQL/lib_wikicategory.vb | Bin 6598 -> 0 bytes .../Wiki/MySQL/lib_wikicategorylinks.vb | Bin 8562 -> 0 bytes .../Wiki/MySQL/lib_wikichange_tag.vb | Bin 6886 -> 0 bytes .../Wiki/MySQL/lib_wikiexternallinks.vb | Bin 6042 -> 0 bytes .../Wiki/MySQL/lib_wikifilearchive.vb | Bin 16596 -> 0 bytes .../Wiki/MySQL/lib_wikiimage.vb | Bin 12444 -> 0 bytes .../Wiki/MySQL/lib_wikiimagelinks.vb | Bin 5986 -> 0 bytes .../Wiki/MySQL/lib_wikiinterwiki.vb | Bin 6806 -> 0 bytes .../Wiki/MySQL/lib_wikiipblocks.vb | Bin 14852 -> 0 bytes .../Wiki/MySQL/lib_wikiiwlinks.vb | Bin 6206 -> 0 bytes .../Wiki/MySQL/lib_wikijob.vb | Bin 10206 -> 0 bytes .../Wiki/MySQL/lib_wikil10n_cache.vb | Bin 5522 -> 0 bytes .../Wiki/MySQL/lib_wikilanglinks.vb | Bin 5720 -> 0 bytes .../Wiki/MySQL/lib_wikilog_search.vb | Bin 5942 -> 0 bytes .../Wiki/MySQL/lib_wikilogging.vb | Bin 11364 -> 0 bytes .../Wiki/MySQL/lib_wikimodule_deps.vb | Bin 5624 -> 0 bytes .../Wiki/MySQL/lib_wikimsg_resource.vb | Bin 6232 -> 0 bytes .../Wiki/MySQL/lib_wikimsg_resource_links.vb | Bin 5504 -> 0 bytes .../Wiki/MySQL/lib_wikiobjectcache.vb | Bin 5578 -> 0 bytes .../Wiki/MySQL/lib_wikioldimage.vb | Bin 13522 -> 0 bytes .../Wiki/MySQL/lib_wikipage.vb | Bin 11644 -> 0 bytes .../Wiki/MySQL/lib_wikipage_props.vb | Bin 6448 -> 0 bytes .../Wiki/MySQL/lib_wikipage_restrictions.vb | Bin 7652 -> 0 bytes .../Wiki/MySQL/lib_wikipagelinks.vb | Bin 6910 -> 0 bytes .../Wiki/MySQL/lib_wikiprotected_titles.vb | Bin 8020 -> 0 bytes .../Wiki/MySQL/lib_wikiquerycache.vb | Bin 6198 -> 0 bytes .../Wiki/MySQL/lib_wikiquerycache_info.vb | Bin 5226 -> 0 bytes .../Wiki/MySQL/lib_wikiquerycachetwo.vb | Bin 7812 -> 0 bytes .../Wiki/MySQL/lib_wikirecentchanges.vb | Bin 17124 -> 0 bytes .../Wiki/MySQL/lib_wikiredirect.vb | Bin 6702 -> 0 bytes .../Wiki/MySQL/lib_wikirevision.vb | Bin 12400 -> 0 bytes .../Wiki/MySQL/lib_wikisearchindex.vb | Bin 5646 -> 0 bytes .../Wiki/MySQL/lib_wikisite_identifiers.vb | Bin 5794 -> 0 bytes .../Wiki/MySQL/lib_wikisite_stats.vb | Bin 7858 -> 0 bytes .../Wiki/MySQL/lib_wikisites.vb | Bin 10334 -> 0 bytes .../Wiki/MySQL/lib_wikitag_summary.vb | Bin 6136 -> 0 bytes .../Wiki/MySQL/lib_wikitemplatelinks.vb | Bin 6974 -> 0 bytes .../Wiki/MySQL/lib_wikitext.vb | Bin 5340 -> 0 bytes .../Wiki/MySQL/lib_wikitranscache.vb | Bin 5382 -> 0 bytes .../Wiki/MySQL/lib_wikiupdatelog.vb | Bin 4846 -> 0 bytes .../Wiki/MySQL/lib_wikiuploadstash.vb | Bin 12944 -> 0 bytes .../Wiki/MySQL/lib_wikiuser.vb | Bin 13726 -> 0 bytes .../Wiki/MySQL/lib_wikiuser_former_groups.vb | Bin 5384 -> 0 bytes .../Wiki/MySQL/lib_wikiuser_groups.vb | Bin 5286 -> 0 bytes .../Wiki/MySQL/lib_wikiuser_newtalk.vb | Bin 5744 -> 0 bytes .../Wiki/MySQL/lib_wikiuser_properties.vb | Bin 5852 -> 0 bytes .../Wiki/MySQL/lib_wikivalid_tag.vb | Bin 4434 -> 0 bytes .../Wiki/MySQL/lib_wikiwatchlist.vb | Bin 7966 -> 0 bytes .../Wiki/libwiki.sql | 1070 --- .../Wiki/libwiki/lib_wikiarchive.vb | Bin 14160 -> 0 bytes .../Wiki/libwiki/lib_wikicategory.vb | Bin 6598 -> 0 bytes .../Wiki/libwiki/lib_wikicategorylinks.vb | Bin 8562 -> 0 bytes .../Wiki/libwiki/lib_wikichange_tag.vb | Bin 6886 -> 0 bytes .../Wiki/libwiki/lib_wikiexternallinks.vb | Bin 6042 -> 0 bytes .../Wiki/libwiki/lib_wikifilearchive.vb | Bin 16596 -> 0 bytes .../Wiki/libwiki/lib_wikiimage.vb | Bin 12444 -> 0 bytes .../Wiki/libwiki/lib_wikiimagelinks.vb | Bin 5986 -> 0 bytes .../Wiki/libwiki/lib_wikiinterwiki.vb | Bin 6806 -> 0 bytes .../Wiki/libwiki/lib_wikiipblocks.vb | Bin 14852 -> 0 bytes .../Wiki/libwiki/lib_wikiiwlinks.vb | Bin 6206 -> 0 bytes .../Wiki/libwiki/lib_wikijob.vb | Bin 10206 -> 0 bytes .../Wiki/libwiki/lib_wikil10n_cache.vb | Bin 5522 -> 0 bytes .../Wiki/libwiki/lib_wikilanglinks.vb | Bin 5720 -> 0 bytes .../Wiki/libwiki/lib_wikilog_search.vb | Bin 5942 -> 0 bytes .../Wiki/libwiki/lib_wikilogging.vb | Bin 11364 -> 0 bytes .../Wiki/libwiki/lib_wikimodule_deps.vb | Bin 5624 -> 0 bytes .../Wiki/libwiki/lib_wikimsg_resource.vb | Bin 6232 -> 0 bytes .../libwiki/lib_wikimsg_resource_links.vb | Bin 5504 -> 0 bytes .../Wiki/libwiki/lib_wikiobjectcache.vb | Bin 5578 -> 0 bytes .../Wiki/libwiki/lib_wikioldimage.vb | Bin 13522 -> 0 bytes .../Wiki/libwiki/lib_wikipage.vb | Bin 11644 -> 0 bytes .../Wiki/libwiki/lib_wikipage_props.vb | Bin 6448 -> 0 bytes .../Wiki/libwiki/lib_wikipage_restrictions.vb | Bin 7652 -> 0 bytes .../Wiki/libwiki/lib_wikipagelinks.vb | Bin 6910 -> 0 bytes .../Wiki/libwiki/lib_wikiprotected_titles.vb | Bin 8020 -> 0 bytes .../Wiki/libwiki/lib_wikiquerycache.vb | Bin 6198 -> 0 bytes .../Wiki/libwiki/lib_wikiquerycache_info.vb | Bin 5226 -> 0 bytes .../Wiki/libwiki/lib_wikiquerycachetwo.vb | Bin 7812 -> 0 bytes .../Wiki/libwiki/lib_wikirecentchanges.vb | Bin 17124 -> 0 bytes .../Wiki/libwiki/lib_wikiredirect.vb | Bin 6702 -> 0 bytes .../Wiki/libwiki/lib_wikirevision.vb | Bin 12400 -> 0 bytes .../Wiki/libwiki/lib_wikisearchindex.vb | Bin 5646 -> 0 bytes .../Wiki/libwiki/lib_wikisite_identifiers.vb | Bin 5794 -> 0 bytes .../Wiki/libwiki/lib_wikisite_stats.vb | Bin 7858 -> 0 bytes .../Wiki/libwiki/lib_wikisites.vb | Bin 10334 -> 0 bytes .../Wiki/libwiki/lib_wikitag_summary.vb | Bin 6136 -> 0 bytes .../Wiki/libwiki/lib_wikitemplatelinks.vb | Bin 6974 -> 0 bytes .../Wiki/libwiki/lib_wikitext.vb | Bin 5340 -> 0 bytes .../Wiki/libwiki/lib_wikitranscache.vb | Bin 5382 -> 0 bytes .../Wiki/libwiki/lib_wikiupdatelog.vb | Bin 4846 -> 0 bytes .../Wiki/libwiki/lib_wikiuploadstash.vb | Bin 12944 -> 0 bytes .../Wiki/libwiki/lib_wikiuser.vb | Bin 13204 -> 0 bytes .../libwiki/lib_wikiuser_former_groups.vb | Bin 5384 -> 0 bytes .../Wiki/libwiki/lib_wikiuser_groups.vb | Bin 5286 -> 0 bytes .../Wiki/libwiki/lib_wikiuser_newtalk.vb | Bin 5744 -> 0 bytes .../Wiki/libwiki/lib_wikiuser_properties.vb | Bin 5852 -> 0 bytes .../Wiki/libwiki/lib_wikivalid_tag.vb | Bin 4434 -> 0 bytes .../Wiki/libwiki/lib_wikiwatchlist.vb | Bin 7966 -> 0 bytes .../My Project/Application.Designer.vb | 13 - .../My Project/Application.myapp | 10 - .../My Project/AssemblyInfo.vb | 35 - .../My Project/Resources.Designer.vb | 93 - .../My Project/Resources.resx | 130 - .../My Project/Settings.Designer.vb | 73 - .../My Project/Settings.settings | 7 - .../Resources/Shoal.res_bin | Bin 341782 -> 0 bytes .../Resources/shl.res_bin | Bin 228239 -> 0 bytes .../RuntimeEnvironmentHandler.vb | 65 - .../ShoalEx/FileEx.bas | 73 - .../ShoalEx/ShoalEx.res_exe | Bin 12288 -> 0 bytes .../ShoalEx/ShoalEx.vbp | 34 - .../ShoalEx/ShoalEx.vbw | 2 - .../ShoalEx/modProgram.bas | 24 - ...alShell.Plugins.Runtime.Environment.vbproj | 228 - .../My Project/Application.Designer.vb | 13 - .../My Project/Application.myapp | 10 - .../My Project/AssemblyInfo.vb | 35 - .../My Project/Resources.Designer.vb | 63 - .../My Project/Resources.resx | 117 - .../My Project/Settings.Designer.vb | 73 - .../My Project/Settings.settings | 7 - .../SQLite.vb | 117 - ...lShell.Plugins.SQLDatabaseInterface.vbproj | 230 - gpl.txt | 674 -- index.html | 72 - params.json | 1 - 546 files changed, 303 insertions(+), 65760 deletions(-) delete mode 100644 CPOL.htm delete mode 100644 CPOL.txt delete mode 100644 ChangeLogs.src.txt delete mode 100644 ChangeLogs.txt delete mode 100644 Developer Guides.docx delete mode 100644 EndNoteLite/EndNoteLite.vbproj delete mode 100644 EndNoteLite/LibraryHtmlDoc.vb delete mode 100644 EndNoteLite/My Project/Application.myapp delete mode 100644 EndNoteLite/My Project/AssemblyInfo.vb delete mode 100644 EndNoteLite/My Project/Resources.Designer.vb delete mode 100644 EndNoteLite/My Project/Settings.Designer.vb delete mode 100644 EndNoteLite/PMCFullText.vb delete mode 100644 EndNoteLite/academic.enw delete mode 100644 EndNoteLite/endnote-citations.enw delete mode 100644 LINQ.Extensions.ShoalShell.HybridScripting/API.vb delete mode 100644 LINQ.Extensions.ShoalShell.HybridScripting/LINQ.Extensions.ShoalShell.HybridScripting.vbproj delete mode 100644 LINQ.Extensions.ShoalShell.HybridScripting/My Project/Application.Designer.vb delete mode 100644 LINQ.Extensions.ShoalShell.HybridScripting/My Project/Application.myapp delete mode 100644 LINQ.Extensions.ShoalShell.HybridScripting/My Project/AssemblyInfo.vb delete mode 100644 LINQ.Extensions.ShoalShell.HybridScripting/My Project/Resources.Designer.vb delete mode 100644 LINQ.Extensions.ShoalShell.HybridScripting/My Project/Resources.resx delete mode 100644 LINQ.Extensions.ShoalShell.HybridScripting/My Project/Settings.Designer.vb delete mode 100644 LINQ.Extensions.ShoalShell.HybridScripting/My Project/Settings.settings delete mode 100644 LINQ.Extensions.ShoalShell.HybridScripting/Resources/gpl.txt delete mode 100644 LINQ.Extensions.ShoalShell.HybridScripting/Resources/license.txt delete mode 100644 Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting/API.vb delete mode 100644 Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting/Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting.vbproj delete mode 100644 Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting/My Project/Application.Designer.vb delete mode 100644 Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting/My Project/Application.myapp delete mode 100644 Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting/My Project/AssemblyInfo.vb delete mode 100644 Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting/My Project/Resources.Designer.vb delete mode 100644 Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting/My Project/Resources.resx delete mode 100644 Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting/My Project/Settings.Designer.vb delete mode 100644 Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting/My Project/Settings.settings delete mode 100644 Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns/IDEPlugIn.vb delete mode 100644 Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns/Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns.vbproj delete mode 100644 Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns/My Project/Application.Designer.vb delete mode 100644 Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns/My Project/Application.myapp delete mode 100644 Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns/My Project/AssemblyInfo.vb delete mode 100644 Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns/My Project/Resources.Designer.vb delete mode 100644 Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns/My Project/Resources.resx delete mode 100644 Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns/My Project/Settings.Designer.vb delete mode 100644 Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns/My Project/Settings.settings create mode 100644 R/R.sln rename {Shoal.Testing => R/R}/App.config (60%) create mode 100644 R/R/Module1.vb rename {EndNoteLite => R/R}/My Project/Application.Designer.vb (100%) rename {Shoal.Testing => R/R}/My Project/Application.myapp (100%) rename {Shoal.Testing => R/R}/My Project/AssemblyInfo.vb (57%) rename {ShoalShell.Legacy/TestShellScriptModule => R/R}/My Project/Resources.Designer.vb (94%) rename {EndNoteLite => R/R}/My Project/Resources.resx (100%) rename {ShoalShell.Legacy/TestShellScriptModule => R/R}/My Project/Settings.Designer.vb (87%) rename {EndNoteLite => R/R}/My Project/Settings.settings (100%) rename ShoalShell.Legacy/TestShellScriptModule/TestShellScriptModule.vbproj => R/R/R.vbproj (76%) create mode 100644 R/R/TokenIcer.vb create mode 100644 R/syntax.r delete mode 100644 RDotNET.Extensions.ShellScriptAPI/API.vb delete mode 100644 RDotNET.Extensions.ShellScriptAPI/My Project/Application.Designer.vb delete mode 100644 RDotNET.Extensions.ShellScriptAPI/My Project/Application.myapp delete mode 100644 RDotNET.Extensions.ShellScriptAPI/My Project/AssemblyInfo.vb delete mode 100644 RDotNET.Extensions.ShellScriptAPI/My Project/Resources.Designer.vb delete mode 100644 RDotNET.Extensions.ShellScriptAPI/My Project/Resources.resx delete mode 100644 RDotNET.Extensions.ShellScriptAPI/My Project/Settings.Designer.vb delete mode 100644 RDotNET.Extensions.ShellScriptAPI/My Project/Settings.settings delete mode 100644 RDotNET.Extensions.ShellScriptAPI/RDotNET.Extensions.ShellScriptAPI.sln delete mode 100644 RDotNET.Extensions.ShellScriptAPI/ShoalShell.Plugins.RDotNET.vbproj delete mode 100644 README.md delete mode 100644 Shoal.Testing/Debugger.vb delete mode 100644 Shoal.Testing/My Project/Application.Designer.vb delete mode 100644 Shoal.Testing/My Project/Resources.Designer.vb delete mode 100644 Shoal.Testing/My Project/Resources.resx delete mode 100644 Shoal.Testing/My Project/Settings.Designer.vb delete mode 100644 Shoal.Testing/My Project/Settings.settings delete mode 100644 Shoal.Testing/Shoal.Testing.vbproj delete mode 100644 Shoal.Testing/TestingProgram.vb delete mode 100644 Shoal.VisualStudio/Classification/ClassificationFormat.vb delete mode 100644 Shoal.VisualStudio/Classification/ClassificationType.vb delete mode 100644 Shoal.VisualStudio/Classification/OokClassifier.vb delete mode 100644 Shoal.VisualStudio/Codeporium.xml delete mode 100644 Shoal.VisualStudio/Intellisense/CompletionController.vb delete mode 100644 Shoal.VisualStudio/Intellisense/CompletionSource.vb delete mode 100644 Shoal.VisualStudio/Intellisense/OokQuickInfoSource.vb delete mode 100644 Shoal.VisualStudio/Intellisense/QuickInfoController.vb delete mode 100644 Shoal.VisualStudio/Intellisense/QuickInfoControllerProvider.vb delete mode 100644 Shoal.VisualStudio/My Project/AssemblyInfo.vb delete mode 100644 Shoal.VisualStudio/Shoal.VisualStudio.sln delete mode 100644 Shoal.VisualStudio/Shoal.VisualStudio.vbproj delete mode 100644 Shoal.VisualStudio/ShoalShell.vb delete mode 100644 Shoal.VisualStudio/TokenTag/OokTokenTag.vb delete mode 100644 Shoal.VisualStudio/TokenTag/OokTokenTagProvider.vb delete mode 100644 Shoal.VisualStudio/TokenTag/OokTokenTagger.vb delete mode 100644 Shoal.VisualStudio/source.extension.vsixmanifest delete mode 100644 Shoal.VisualStudio/test.shl delete mode 100644 Shoal.sln delete mode 100644 Shoal.v2/Console/App.config delete mode 100644 Shoal.v2/Console/Code delete mode 100644 Shoal.v2/Console/Console/CLI.vb delete mode 100644 Shoal.v2/Console/Console/Program.vb delete mode 100644 Shoal.v2/Console/InternalCommands.vb delete mode 100644 Shoal.v2/Console/Microsoft.VisualBasic.Architecture.Framework_v3.0_22.0.76.201__8da45dcd8060cc9a.xml delete mode 100644 Shoal.v2/Console/My Project/Application.Designer.vb delete mode 100644 Shoal.v2/Console/My Project/Application.myapp delete mode 100644 Shoal.v2/Console/My Project/AssemblyInfo.vb delete mode 100644 Shoal.v2/Console/My Project/Resources.Designer.vb delete mode 100644 Shoal.v2/Console/My Project/Resources.resx delete mode 100644 Shoal.v2/Console/My Project/Settings.Designer.vb delete mode 100644 Shoal.v2/Console/My Project/Settings.settings delete mode 100644 Shoal.v2/Console/My Project/app.manifest delete mode 100644 Shoal.v2/Console/Resources/gpl.txt delete mode 100644 Shoal.v2/Console/Resources/license.txt delete mode 100644 Shoal.v2/Console/ShellScript.ico delete mode 100644 Shoal.v2/Console/Shoal.Core.sln delete mode 100644 Shoal.v2/Console/Shoal.exe.config delete mode 100644 Shoal.v2/Console/Shoal.ico delete mode 100644 Shoal.v2/Console/Shoal.sln delete mode 100644 Shoal.v2/Console/Shoal.v2.xml delete mode 100644 Shoal.v2/Console/Shoal.vshost.exe.config delete mode 100644 Shoal.v2/Console/Shoal.xml delete mode 100644 Shoal.v2/Console/ShoalShell.Designer.cd delete mode 100644 Shoal.v2/Console/ShoalShell.vbproj delete mode 100644 Shoal.v2/Shoal.v2.sln delete mode 100644 Shoal.v2/Shoal.v2/App.config delete mode 100644 Shoal.v2/Shoal.v2/Compiler/CodeDOM/Expression.vb delete mode 100644 Shoal.v2/Shoal.v2/Compiler/CodeDOM/Program.vb delete mode 100644 Shoal.v2/Shoal.v2/Compiler/CodeDOM/Tokens.vb delete mode 100644 Shoal.v2/Shoal.v2/Compiler/VBC.vb delete mode 100644 Shoal.v2/Shoal.v2/Configuration/Config.vb delete mode 100644 Shoal.v2/Shoal.v2/Configuration/Configuration.vb delete mode 100644 Shoal.v2/Shoal.v2/Debugger.vb delete mode 100644 Shoal.v2/Shoal.v2/HTML/Cites.vb delete mode 100644 Shoal.v2/Shoal.v2/HTML/DocRenderer.vb delete mode 100644 Shoal.v2/Shoal.v2/HTML/IWikiHandle.vb delete mode 100644 Shoal.v2/Shoal.v2/HTML/TypeLinks.vb delete mode 100644 Shoal.v2/Shoal.v2/InternalExtension.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/AnonymousDelegate.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Interpreter.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Linker/API/APIEntryPoint.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Linker/API/APIInvoker.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Linker/API/Alignment/Alignments/OneParameter.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Linker/API/Alignment/Alignments/SpecialAlignment(Of T).vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Linker/API/Alignment/Alignments/TwoParameter.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Linker/API/Alignment/FunctionCalls.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Linker/API/Alignment/ParamAlignments.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Linker/API/Alignment/TypeEquals.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Linker/API/Arguments.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Linker/API/FunctionSignature.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Linker/API/ParameterWithAlias.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Linker/EntryPoint.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Linker/Linker.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/Expressions/Collection/CollectionAppends.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/Expressions/Collection/CollectionOpr.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/Expressions/Collection/CollectionRef.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/Expressions/Comments.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/Expressions/ControlFlow/DoWhile.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/Expressions/ControlFlow/For.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/Expressions/ControlFlow/GotoJumps.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/Expressions/ControlFlow/If.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/Expressions/Delegate.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/Expressions/Die.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/Expressions/Driver/DynamicsCast.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/Expressions/Driver/FileIO.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/Expressions/Driver/OutDeviceRef.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/Expressions/DynamicsExpression.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/Expressions/Expression.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/Expressions/ExpressionTypes.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/Expressions/FunctionCalls.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/Expressions/HashTable.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/Expressions/HybridScript/HybirdsScriptPush.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/Expressions/HybridScript/HybridsScript.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/Expressions/HybridScript/RedirectStream.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/Expressions/Keywords/Cd.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/Expressions/Keywords/Imports.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/Expressions/Keywords/Include.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/Expressions/Keywords/Library.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/Expressions/Keywords/Memory.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/Expressions/Keywords/OnErrorResumeNext.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/Expressions/Keywords/Return.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/Expressions/Keywords/SyntaxError.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/Expressions/Keywords/Wiki.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/Expressions/Source.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/Expressions/VariableDeclaration.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/SyntaxModel.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/MachineElement.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/SyntaxParser.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/Tokenliser/FullTokenliser.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/Tokenliser/MSLTokens.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/Tokenliser/ParserCommon.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/Tokenliser/Tokens/CollectionElement.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/Tokenliser/Tokens/EntryPoint.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/Tokenliser/Tokens/InternalExpression.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/Tokenliser/Tokens/LeftAssignedVariable.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/Tokenliser/Tokens/Operator.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/Tokenliser/Tokens/ParameterName.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/Tokenliser/Tokens/TokenTypes.vb delete mode 100644 Shoal.v2/Shoal.v2/Interpreter/Parser/Tokenliser/Tokens/Tokens.vb delete mode 100644 Shoal.v2/Shoal.v2/My Project/Application.Designer.vb delete mode 100644 Shoal.v2/Shoal.v2/My Project/Application.myapp delete mode 100644 Shoal.v2/Shoal.v2/My Project/AssemblyInfo.vb delete mode 100644 Shoal.v2/Shoal.v2/My Project/Resources.Designer.vb delete mode 100644 Shoal.v2/Shoal.v2/My Project/Resources.resx delete mode 100644 Shoal.v2/Shoal.v2/My Project/Settings.Designer.vb delete mode 100644 Shoal.v2/Shoal.v2/My Project/Settings.settings delete mode 100644 Shoal.v2/Shoal.v2/My Project/Settings1.Designer.vb delete mode 100644 Shoal.v2/Shoal.v2/Resources/Shoal.ico_dat delete mode 100644 Shoal.v2/Shoal.v2/Resources/gpl.txt delete mode 100644 Shoal.v2/Shoal.v2/Resources/index.html delete mode 100644 Shoal.v2/Shoal.v2/Resources/license.txt delete mode 100644 Shoal.v2/Shoal.v2/Resources/sdk_doc.html delete mode 100644 Shoal.v2/Shoal.v2/Resources/typeLinks_doc.html delete mode 100644 Shoal.v2/Shoal.v2/Runtime/Debugger/Debugger.vb delete mode 100644 Shoal.v2/Shoal.v2/Runtime/Debugger/DebuggerListener.vb delete mode 100644 Shoal.v2/Shoal.v2/Runtime/Debugger/DebuggerMessage.vb delete mode 100644 Shoal.v2/Shoal.v2/Runtime/Debugger/DebuggerProtocol.vb delete mode 100644 Shoal.v2/Shoal.v2/Runtime/Debugger/ShellScriptDebuggerModel.vb delete mode 100644 Shoal.v2/Shoal.v2/Runtime/Driver/DriverBase.vb delete mode 100644 Shoal.v2/Shoal.v2/Runtime/Driver/DriverHandles.vb delete mode 100644 Shoal.v2/Shoal.v2/Runtime/Driver/DynamicsCast.vb delete mode 100644 Shoal.v2/Shoal.v2/Runtime/Driver/IODeviceDriver.vb delete mode 100644 Shoal.v2/Shoal.v2/Runtime/Driver/OutputDeviceDriver.vb delete mode 100644 Shoal.v2/Shoal.v2/Runtime/Dynamics.vb delete mode 100644 Shoal.v2/Shoal.v2/Runtime/Exceptions/DriverNotFound.vb delete mode 100644 Shoal.v2/Shoal.v2/Runtime/Exceptions/MethodNotFoundException.vb delete mode 100644 Shoal.v2/Shoal.v2/Runtime/Exceptions/RuntimeException.vb delete mode 100644 Shoal.v2/Shoal.v2/Runtime/HybridScripting/EntryPoint.vb delete mode 100644 Shoal.v2/Shoal.v2/Runtime/HybridScripting/EnvironmentParser.vb delete mode 100644 Shoal.v2/Shoal.v2/Runtime/HybridScripting/Interface/DataTransform.vb delete mode 100644 Shoal.v2/Shoal.v2/Runtime/HybridScripting/Interface/EntryInterface.vb delete mode 100644 Shoal.v2/Shoal.v2/Runtime/HybridScripting/Interface/ScriptEntryPoint.vb delete mode 100644 Shoal.v2/Shoal.v2/Runtime/HybridScripting/InteropAdapter.vb delete mode 100644 Shoal.v2/Shoal.v2/Runtime/MMU/MMUDevice.vb delete mode 100644 Shoal.v2/Shoal.v2/Runtime/MMU/PageMapping/DDM.vb delete mode 100644 Shoal.v2/Shoal.v2/Runtime/MMU/PageMapping/MappingImports.vb delete mode 100644 Shoal.v2/Shoal.v2/Runtime/MMU/PageMapping/PageMapping.vb delete mode 100644 Shoal.v2/Shoal.v2/Runtime/MMU/PageUnit.vb delete mode 100644 Shoal.v2/Shoal.v2/Runtime/MMU/Strings.vb delete mode 100644 Shoal.v2/Shoal.v2/Runtime/MMU/Variable.vb delete mode 100644 Shoal.v2/Shoal.v2/Runtime/RuntimeComponent.vb delete mode 100644 Shoal.v2/Shoal.v2/Runtime/RuntimeEnvironment.vb delete mode 100644 Shoal.v2/Shoal.v2/Runtime/ScriptEngine.vb delete mode 100644 Shoal.v2/Shoal.v2/Runtime/StatusMachine/ExecuteModel.vb delete mode 100644 Shoal.v2/Shoal.v2/Runtime/StatusMachine/FSMMachine.vb delete mode 100644 Shoal.v2/Shoal.v2/Runtime/StatusMachine/Stack.vb delete mode 100644 Shoal.v2/Shoal.v2/SPM/Nodes/Assembly.vb delete mode 100644 Shoal.v2/Shoal.v2/SPM/Nodes/AssemblyParser.vb delete mode 100644 Shoal.v2/Shoal.v2/SPM/Nodes/EntryPointMeta.vb delete mode 100644 Shoal.v2/Shoal.v2/SPM/Nodes/HybridEnvir.vb delete mode 100644 Shoal.v2/Shoal.v2/SPM/Nodes/Namespace.vb delete mode 100644 Shoal.v2/Shoal.v2/SPM/Nodes/PartialModule.vb delete mode 100644 Shoal.v2/Shoal.v2/SPM/PackageModuleDb.vb delete mode 100644 Shoal.v2/Shoal.v2/SPM/ShoalPackageMgr.vb delete mode 100644 Shoal.v2/Shoal.v2/Shoal.v2.Designer.cd delete mode 100644 Shoal.v2/Shoal.v2/ShoalShell_Core.v2.vbproj delete mode 100644 Shoal.v2/Shoal.v2/Syntax Manual.docx delete mode 100644 ShoalShell.Debugger/Debugger.vb delete mode 100644 ShoalShell.Debugger/My Project/Application.Designer.vb delete mode 100644 ShoalShell.Debugger/My Project/Application.myapp delete mode 100644 ShoalShell.Debugger/My Project/AssemblyInfo.vb delete mode 100644 ShoalShell.Debugger/My Project/Resources.Designer.vb delete mode 100644 ShoalShell.Debugger/My Project/Resources.resx delete mode 100644 ShoalShell.Debugger/My Project/Settings.Designer.vb delete mode 100644 ShoalShell.Debugger/My Project/Settings.settings delete mode 100644 ShoalShell.Debugger/ShoalShell.Debugger.vbproj delete mode 100644 ShoalShell.Legacy/App.config delete mode 100644 ShoalShell.Legacy/Code delete mode 100644 ShoalShell.Legacy/ConsoleApplication/CommandLines.vb delete mode 100644 ShoalShell.Legacy/ConsoleApplication/Config.vb delete mode 100644 ShoalShell.Legacy/ConsoleApplication/Program.vb delete mode 100644 ShoalShell.Legacy/InternalCommands.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/BuildInModules/Array.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/BuildInModules/Cowsay.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/BuildInModules/Threading.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/CommonExtensions.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/DelegateHandlers/EntryPointHandlers/CommandMethodEntryPoint.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/DelegateHandlers/EntryPointHandlers/EntryPointHashTable.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/DelegateHandlers/EntryPointHandlers/FunctionSignature.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/DelegateHandlers/EntryPointHandlers/ImportsEntryPointManager.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/DelegateHandlers/EntryPointHandlers/InternalEntryPointLoader.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/DelegateHandlers/EntryPointHandlers/MethodDelegateCaller.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/DelegateHandlers/TypeLibraryRegistry/DelegateRegistry.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/DelegateHandlers/TypeLibraryRegistry/RegistryModuleLoader.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/DelegateHandlers/TypeLibraryRegistry/RegistryNodes/AssemblyModule.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/DelegateHandlers/TypeLibraryRegistry/RegistryNodes/Module.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/DelegateHandlers/TypeLibraryRegistry/WebServiceDelegateRegistry.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/Delegate.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/DelegateDeclaration.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/HybridScripting/HybridScriptingInterface.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/HybridScripting/HybridScriptingInteropHandler.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/InternalCommands.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/InternalTextEngine.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/Interpreter.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/ObjectModels/Expressions/Expression.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/ObjectModels/Expressions/MethodCalling.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/ObjectModels/ScriptModel.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/ObjectModels/SyntaxParser.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/ObjectModels/Tokenlisers/FullTokenliser.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/ObjectModels/Tokenlisers/Tokenliser.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/ObjectModels/Tokens.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/My Project/Application.Designer.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/My Project/Application.myapp delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/My Project/AssemblyInfo.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/My Project/Resources.Designer.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/My Project/Resources.resx delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/My Project/Settings.Designer.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/My Project/Settings.settings delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Resources/gpl.txt delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Resources/license.txt delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/Debugging/Debugger.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/Debugging/DebuggerListener.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/Debugging/DebuggerProtocol.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/Debugging/ShellScriptDebuggerModel.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/DeviceDriver/DeviceDriver.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/DeviceDriver/DriverHandles.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/DeviceDriver/IODeviceDriver.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/DeviceDriver/OutputDeviceDriver.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/DeviceDriver/TypeHandleEntryPointDriverrModule.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/Dynamics.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/Exceptions/CircularReferencesException.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/Exceptions/InterpreterException.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/Exceptions/MethodNotFoundException.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/Exceptions/RunTimeException.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/Exceptions/ShoalScriptException.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/IScriptEngineComponent.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/MemoryManagement.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/ObjectModels/DataSource.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/ObjectModels/ExecuteModel.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/ObjectModels/ObjectModels.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/ObjectModels/ScriptCodeLine.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/ScriptInfo.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/ShellScript.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/ShoalShell_Core.Designer.cd delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/ShoalShell_Core.vbproj delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Wiki/InternalHelpSearch.vb delete mode 100644 ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Wiki/WebServiceHandler.vb delete mode 100644 ShoalShell.Legacy/My Project/Application.Designer.vb delete mode 100644 ShoalShell.Legacy/My Project/Application.myapp delete mode 100644 ShoalShell.Legacy/My Project/AssemblyInfo.vb delete mode 100644 ShoalShell.Legacy/My Project/Resources.Designer.vb delete mode 100644 ShoalShell.Legacy/My Project/Resources.resx delete mode 100644 ShoalShell.Legacy/My Project/Settings.Designer.vb delete mode 100644 ShoalShell.Legacy/My Project/Settings.settings delete mode 100644 ShoalShell.Legacy/My Project/app.manifest delete mode 100644 ShoalShell.Legacy/Resources/gpl.txt delete mode 100644 ShoalShell.Legacy/Resources/license.txt delete mode 100644 ShoalShell.Legacy/ShellScript.ico delete mode 100644 ShoalShell.Legacy/Shoal.Core.sln delete mode 100644 ShoalShell.Legacy/Shoal.ico delete mode 100644 ShoalShell.Legacy/Shoal.sln delete mode 100644 ShoalShell.Legacy/Shoal.vbproj delete mode 100644 ShoalShell.Legacy/ShoalShell.Designer.cd delete mode 100644 ShoalShell.Legacy/TestShellScriptModule/My Project/Application.Designer.vb delete mode 100644 ShoalShell.Legacy/TestShellScriptModule/My Project/Application.myapp delete mode 100644 ShoalShell.Legacy/TestShellScriptModule/My Project/AssemblyInfo.vb delete mode 100644 ShoalShell.Legacy/TestShellScriptModule/My Project/Resources.resx delete mode 100644 ShoalShell.Legacy/TestShellScriptModule/My Project/Settings.settings delete mode 100644 ShoalShell.Legacy/TestShellScriptModule/Test1.vb delete mode 100644 ShoalShell.Legacy/Win32API/ComDlg32.vb delete mode 100644 ShoalShell.Legacy/Win32API/Gdi32.vb delete mode 100644 ShoalShell.Legacy/Win32API/Interop.QuartzTypeLib.zip delete mode 100644 ShoalShell.Legacy/Win32API/Kernel32.vb delete mode 100644 ShoalShell.Legacy/Win32API/My Project/Application.Designer.vb delete mode 100644 ShoalShell.Legacy/Win32API/My Project/Application.myapp delete mode 100644 ShoalShell.Legacy/Win32API/My Project/AssemblyInfo.vb delete mode 100644 ShoalShell.Legacy/Win32API/My Project/Resources.Designer.vb delete mode 100644 ShoalShell.Legacy/Win32API/My Project/Resources.resx delete mode 100644 ShoalShell.Legacy/Win32API/My Project/Settings.Designer.vb delete mode 100644 ShoalShell.Legacy/Win32API/My Project/Settings.settings delete mode 100644 ShoalShell.Legacy/Win32API/Shell32.vb delete mode 100644 ShoalShell.Legacy/Win32API/User32.vb delete mode 100644 ShoalShell.Legacy/Win32API/Win32API.sln delete mode 100644 ShoalShell.Legacy/Win32API/Win32API.vbproj delete mode 100644 ShoalShell.Legacy/Win32API/WinMM.vb delete mode 100644 ShoalShell.Legacy/_DEBUG_MAIN.vb delete mode 100644 ShoalShell.PlugIns.Plot/App.config delete mode 100644 ShoalShell.PlugIns.Plot/Device/FormChartPlotDevice.Designer.vb delete mode 100644 ShoalShell.PlugIns.Plot/Device/FormChartPlotDevice.resx delete mode 100644 ShoalShell.PlugIns.Plot/Device/FormChartPlotDevice.vb delete mode 100644 ShoalShell.PlugIns.Plot/Device/FormImagePlotDevice.Designer.vb delete mode 100644 ShoalShell.PlugIns.Plot/Device/FormImagePlotDevice.resx delete mode 100644 ShoalShell.PlugIns.Plot/Device/FormImagePlotDevice.vb delete mode 100644 ShoalShell.PlugIns.Plot/Device/FormPieChartDevice.Designer.vb delete mode 100644 ShoalShell.PlugIns.Plot/Device/FormPieChartDevice.resx delete mode 100644 ShoalShell.PlugIns.Plot/Device/FormPieChartDevice.vb delete mode 100644 ShoalShell.PlugIns.Plot/ModuleChartPlot.vb delete mode 100644 ShoalShell.PlugIns.Plot/ModulePlot.vb delete mode 100644 ShoalShell.PlugIns.Plot/My Project/Application.Designer.vb delete mode 100644 ShoalShell.PlugIns.Plot/My Project/Application.myapp delete mode 100644 ShoalShell.PlugIns.Plot/My Project/AssemblyInfo.vb delete mode 100644 ShoalShell.PlugIns.Plot/My Project/Resources.Designer.vb delete mode 100644 ShoalShell.PlugIns.Plot/My Project/Resources.resx delete mode 100644 ShoalShell.PlugIns.Plot/My Project/Settings.Designer.vb delete mode 100644 ShoalShell.PlugIns.Plot/My Project/Settings.settings delete mode 100644 ShoalShell.PlugIns.Plot/ShoalShell.PlugIns.Plot.vbproj delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/HelpServer.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Icon.ico delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Library/CLI_MAN.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Library/Cite.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Library/Contributors.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Library/Index.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Library/Namespace.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Library/Type.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/My Project/Application.Designer.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/My Project/Application.myapp delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/My Project/AssemblyInfo.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/My Project/Resources.Designer.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/My Project/Resources.resx delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/My Project/Settings.Designer.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/My Project/Settings.settings delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/NotificationIcon.resx delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/NotificationIcon.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Resources/404.html delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Resources/DNA.ico delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Resources/foundation.css delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Resources/gpl.txt delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Resources/index.html delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/ShoalHttpServer.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/ShoalShell.Plugins.HtmlHelpServer.vbproj delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/SimpleHttpServer.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Test.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiarchive.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikicategory.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikicategorylinks.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikichange_tag.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiexternallinks.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikifilearchive.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiimage.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiimagelinks.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiinterwiki.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiipblocks.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiiwlinks.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikijob.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikil10n_cache.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikilanglinks.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikilog_search.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikilogging.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikimodule_deps.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikimsg_resource.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikimsg_resource_links.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiobjectcache.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikioldimage.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikipage.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikipage_props.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikipage_restrictions.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikipagelinks.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiprotected_titles.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiquerycache.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiquerycache_info.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiquerycachetwo.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikirecentchanges.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiredirect.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikirevision.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikisearchindex.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikisite_identifiers.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikisite_stats.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikisites.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikitag_summary.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikitemplatelinks.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikitext.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikitranscache.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiupdatelog.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiuploadstash.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiuser.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiuser_former_groups.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiuser_groups.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiuser_newtalk.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiuser_properties.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikivalid_tag.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiwatchlist.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki.sql delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiarchive.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikicategory.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikicategorylinks.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikichange_tag.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiexternallinks.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikifilearchive.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiimage.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiimagelinks.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiinterwiki.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiipblocks.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiiwlinks.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikijob.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikil10n_cache.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikilanglinks.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikilog_search.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikilogging.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikimodule_deps.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikimsg_resource.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikimsg_resource_links.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiobjectcache.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikioldimage.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikipage.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikipage_props.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikipage_restrictions.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikipagelinks.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiprotected_titles.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiquerycache.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiquerycache_info.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiquerycachetwo.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikirecentchanges.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiredirect.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikirevision.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikisearchindex.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikisite_identifiers.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikisite_stats.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikisites.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikitag_summary.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikitemplatelinks.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikitext.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikitranscache.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiupdatelog.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiuploadstash.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiuser.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiuser_former_groups.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiuser_groups.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiuser_newtalk.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiuser_properties.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikivalid_tag.vb delete mode 100644 ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiwatchlist.vb delete mode 100644 ShoalShell.Plugins.Runtime.Environment/My Project/Application.Designer.vb delete mode 100644 ShoalShell.Plugins.Runtime.Environment/My Project/Application.myapp delete mode 100644 ShoalShell.Plugins.Runtime.Environment/My Project/AssemblyInfo.vb delete mode 100644 ShoalShell.Plugins.Runtime.Environment/My Project/Resources.Designer.vb delete mode 100644 ShoalShell.Plugins.Runtime.Environment/My Project/Resources.resx delete mode 100644 ShoalShell.Plugins.Runtime.Environment/My Project/Settings.Designer.vb delete mode 100644 ShoalShell.Plugins.Runtime.Environment/My Project/Settings.settings delete mode 100644 ShoalShell.Plugins.Runtime.Environment/Resources/Shoal.res_bin delete mode 100644 ShoalShell.Plugins.Runtime.Environment/Resources/shl.res_bin delete mode 100644 ShoalShell.Plugins.Runtime.Environment/RuntimeEnvironmentHandler.vb delete mode 100644 ShoalShell.Plugins.Runtime.Environment/ShoalEx/FileEx.bas delete mode 100644 ShoalShell.Plugins.Runtime.Environment/ShoalEx/ShoalEx.res_exe delete mode 100644 ShoalShell.Plugins.Runtime.Environment/ShoalEx/ShoalEx.vbp delete mode 100644 ShoalShell.Plugins.Runtime.Environment/ShoalEx/ShoalEx.vbw delete mode 100644 ShoalShell.Plugins.Runtime.Environment/ShoalEx/modProgram.bas delete mode 100644 ShoalShell.Plugins.Runtime.Environment/ShoalShell.Plugins.Runtime.Environment.vbproj delete mode 100644 ShoalShell.Plugins.SQLDatabaseInterface/My Project/Application.Designer.vb delete mode 100644 ShoalShell.Plugins.SQLDatabaseInterface/My Project/Application.myapp delete mode 100644 ShoalShell.Plugins.SQLDatabaseInterface/My Project/AssemblyInfo.vb delete mode 100644 ShoalShell.Plugins.SQLDatabaseInterface/My Project/Resources.Designer.vb delete mode 100644 ShoalShell.Plugins.SQLDatabaseInterface/My Project/Resources.resx delete mode 100644 ShoalShell.Plugins.SQLDatabaseInterface/My Project/Settings.Designer.vb delete mode 100644 ShoalShell.Plugins.SQLDatabaseInterface/My Project/Settings.settings delete mode 100644 ShoalShell.Plugins.SQLDatabaseInterface/SQLite.vb delete mode 100644 ShoalShell.Plugins.SQLDatabaseInterface/ShoalShell.Plugins.SQLDatabaseInterface.vbproj delete mode 100644 gpl.txt delete mode 100644 index.html delete mode 100644 params.json diff --git a/.gitignore b/.gitignore index 8bb09d809..072080890 100644 --- a/.gitignore +++ b/.gitignore @@ -221,3 +221,5 @@ pip-log.txt #Mr Developer .mr.developer.cfg +/.vs/slnx.sqlite +/.vs/slnx.sqlite diff --git a/CPOL.htm b/CPOL.htm deleted file mode 100644 index 6f758c8cd..000000000 --- a/CPOL.htm +++ /dev/null @@ -1,251 +0,0 @@ -? - -The Code Project Open License (CPOL) - - - - -

The Code Project Open License (CPOL) 1.02

-
- -
-
- -

Preamble

-

- This License governs Your use of the Work. This License is intended to allow developers - to use the Source Code and Executable Files provided as part of the Work in any - application in any form. -

-

- The main points subject to the terms of the License are:

-
    -
  • Source Code and Executable Files can be used in commercial applications;
  • -
  • Source Code and Executable Files can be redistributed; and
  • -
  • Source Code can be modified to create derivative works.
  • -
  • No claim of suitability, guarantee, or any warranty whatsoever is provided. The software is - provided "as-is".
  • -
  • The Article accompanying the Work may not be distributed or republished without the - Author's consent
  • -
- -

- This License is entered between You, the individual or other entity reading or otherwise - making use of the Work licensed pursuant to this License and the individual or other - entity which offers the Work under the terms of this License ("Author").

- -

License

-

- THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CODE PROJECT OPEN - LICENSE ("LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE - LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT - LAW IS PROHIBITED.

-

- BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HEREIN, YOU ACCEPT AND AGREE TO BE - BOUND BY THE TERMS OF THIS LICENSE. THE AUTHOR GRANTS YOU THE RIGHTS CONTAINED HEREIN - IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. IF YOU DO NOT - AGREE TO ACCEPT AND BE BOUND BY THE TERMS OF THIS LICENSE, YOU CANNOT MAKE ANY - USE OF THE WORK.

- -
    -
  1. Definitions. - -
      -
    1. "Articles" means, collectively, all articles written by Author - which describes how the Source Code and Executable Files for the Work may be used - by a user.
    2. -
    3. "Author" means the individual or entity that offers the Work under the terms - of this License.
    4. -
    5. "Derivative Work" means a work based upon the Work or upon the - Work and other pre-existing works.
    6. -
    7. "Executable Files" refer to the executables, binary files, configuration - and any required data files included in the Work.
    8. -
    9. "Publisher" means the provider of the website, magazine, CD-ROM, DVD or other - medium from or by which the Work is obtained by You.
    10. -
    11. "Source Code" refers to the collection of source code and configuration files - used to create the Executable Files.
    12. -
    13. "Standard Version" refers to such a Work if it has not been modified, or - has been modified in accordance with the consent of the Author, such consent being - in the full discretion of the Author.
    14. -
    15. "Work" refers to the collection of files distributed by the Publisher, including - the Source Code, Executable Files, binaries, data files, documentation, whitepapers - and the Articles.
    16. -
    17. "You" is you, an individual or entity wishing to use the Work and exercise - your rights under this License. -
    18. -
    -
  2. - -
  3. Fair Use/Fair Use Rights. Nothing in this License is intended to - reduce, limit, or restrict any rights arising from fair use, fair dealing, first - sale or other limitations on the exclusive rights of the copyright owner under copyright - law or other applicable laws. -
  4. - -
  5. License Grant. Subject to the terms and conditions of this License, - the Author hereby grants You a worldwide, royalty-free, non-exclusive, perpetual - (for the duration of the applicable copyright) license to exercise the rights in - the Work as stated below: - -
      -
    1. You may use the standard version of the Source Code or Executable Files in Your - own applications.
    2. -
    3. You may apply bug fixes, portability fixes and other modifications obtained from - the Public Domain or from the Author. A Work modified in such a way shall still - be considered the standard version and will be subject to this License.
    4. -
    5. You may otherwise modify Your copy of this Work (excluding the Articles) in any - way to create a Derivative Work, provided that You insert a prominent notice in - each changed file stating how, when and where You changed that file.
    6. -
    7. You may distribute the standard version of the Executable Files and Source Code - or Derivative Work in aggregate with other (possibly commercial) programs as part - of a larger (possibly commercial) software distribution.
    8. -
    9. The Articles discussing the Work published in any form by the author may not be - distributed or republished without the Author's consent. The author retains - copyright to any such Articles. You may use the Executable Files and Source Code - pursuant to this License but you may not repost or republish or otherwise distribute - or make available the Articles, without the prior written consent of the Author.
    10. -
    - - Any subroutines or modules supplied by You and linked into the Source Code or Executable - Files of this Work shall not be considered part of this Work and will not be subject - to the terms of this License. -
  6. - -
  7. Patent License. Subject to the terms and conditions of this License, - each Author hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, - irrevocable (except as stated in this section) patent license to make, have made, use, import, - and otherwise transfer the Work.
  8. - -
  9. Restrictions. The license granted in Section 3 above is expressly - made subject to and limited by the following restrictions: - -
      -
    1. You agree not to remove any of the original copyright, patent, trademark, and - attribution notices and associated disclaimers that may appear in the Source Code - or Executable Files.
    2. -
    3. You agree not to advertise or in any way imply that this Work is a product of Your - own.
    4. -
    5. The name of the Author may not be used to endorse or promote products derived from - the Work without the prior written consent of the Author.
    6. -
    7. You agree not to sell, lease, or rent any part of the Work. This does not restrict - you from including the Work or any part of the Work inside a larger software - distribution that itself is being sold. The Work by itself, though, cannot be sold, - leased or rented.
    8. -
    9. You may distribute the Executable Files and Source Code only under the terms of - this License, and You must include a copy of, or the Uniform Resource Identifier - for, this License with every copy of the Executable Files or Source Code You distribute - and ensure that anyone receiving such Executable Files and Source Code agrees that - the terms of this License apply to such Executable Files and/or Source Code. You - may not offer or impose any terms on the Work that alter or restrict the terms of - this License or the recipients' exercise of the rights granted hereunder. You - may not sublicense the Work. You must keep intact all notices that refer to this - License and to the disclaimer of warranties. You may not distribute the Executable - Files or Source Code with any technological measures that control access or use - of the Work in a manner inconsistent with the terms of this License.
    10. -
    11. You agree not to use the Work for illegal, immoral or improper purposes, or on pages - containing illegal, immoral or improper material. The Work is subject to applicable - export laws. You agree to comply with all such laws and regulations that may apply - to the Work after Your receipt of the Work. -
    12. -
    -
  10. - -
  11. Representations, Warranties and Disclaimer. THIS WORK IS PROVIDED - "AS IS", "WHERE IS" AND "AS AVAILABLE", WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES - OR CONDITIONS OR GUARANTEES. YOU, THE USER, ASSUME ALL RISK IN ITS USE, INCLUDING - COPYRIGHT INFRINGEMENT, PATENT INFRINGEMENT, SUITABILITY, ETC. AUTHOR EXPRESSLY - DISCLAIMS ALL EXPRESS, IMPLIED OR STATUTORY WARRANTIES OR CONDITIONS, INCLUDING - WITHOUT LIMITATION, WARRANTIES OR CONDITIONS OF MERCHANTABILITY, MERCHANTABLE QUALITY - OR FITNESS FOR A PARTICULAR PURPOSE, OR ANY WARRANTY OF TITLE OR NON-INFRINGEMENT, - OR THAT THE WORK (OR ANY PORTION THEREOF) IS CORRECT, USEFUL, BUG-FREE OR FREE OF - VIRUSES. YOU MUST PASS THIS DISCLAIMER ON WHENEVER YOU DISTRIBUTE THE WORK OR DERIVATIVE - WORKS. -
  12. - -
  13. Indemnity. You agree to defend, indemnify and hold harmless the Author and - the Publisher from and against any claims, suits, losses, damages, liabilities, - costs, and expenses (including reasonable legal or attorneys fees) resulting from - or relating to any use of the Work by You. -
  14. - -
  15. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE - LAW, IN NO EVENT WILL THE AUTHOR OR THE PUBLISHER BE LIABLE TO YOU ON ANY LEGAL - THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES - ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK OR OTHERWISE, EVEN IF THE AUTHOR - OR THE PUBLISHER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -
  16. - -
  17. Termination. - -
      -
    1. This License and the rights granted hereunder will terminate automatically upon - any breach by You of any term of this License. Individuals or entities who have - received Derivative Works from You under this License, however, will not have their - licenses terminated provided such individuals or entities remain in full compliance - with those licenses. Sections 1, 2, 6, 7, 8, 9, 10 and 11 will survive any termination - of this License.
    2. - -
    3. If You bring a copyright, trademark, patent or any other infringement claim against - any contributor over infringements You claim are made by the Work, your License - from such contributor to the Work ends automatically.
    4. - -
    5. Subject to the above terms and conditions, this License is perpetual (for the duration - of the applicable copyright in the Work). Notwithstanding the above, the Author - reserves the right to release the Work under different license terms or to stop - distributing the Work at any time; provided, however that any such election will - not serve to withdraw this License (or any other license that has been, or is required - to be, granted under the terms of this License), and this License will continue - in full force and effect unless terminated as stated above. -
    6. -
    -
  18. - -
  19. Publisher. The parties hereby confirm that the Publisher shall - not, under any circumstances, be responsible for and shall not have any liability - in respect of the subject matter of this License. The Publisher makes no warranty - whatsoever in connection with the Work and shall not be liable to You or any party - on any legal theory for any damages whatsoever, including without limitation any - general, special, incidental or consequential damages arising in connection to this - license. The Publisher reserves the right to cease making the Work available to - You at any time without notice
  20. - -
  21. Miscellaneous - -
      -
    1. This License shall be governed by the laws of the location of the head office of - the Author or if the Author is an individual, the laws of location of the principal - place of residence of the Author.
    2. -
    3. If any provision of this License is invalid or unenforceable under applicable law, - it shall not affect the validity or enforceability of the remainder of the terms - of this License, and without further action by the parties to this License, such - provision shall be reformed to the minimum extent necessary to make such provision - valid and enforceable.
    4. -
    5. No term or provision of this License shall be deemed waived and no breach consented - to unless such waiver or consent shall be in writing and signed by the party to - be charged with such waiver or consent.
    6. -
    7. This License constitutes the entire agreement between the parties with respect to - the Work licensed herein. There are no understandings, agreements or representations - with respect to the Work not specified herein. The Author shall not be bound by - any additional provisions that may appear in any communication from You. This License - may not be modified without the mutual written agreement of the Author and You. -
    8. -
    - -
  22. -
- -
-
- - - diff --git a/CPOL.txt b/CPOL.txt deleted file mode 100644 index f04083819..000000000 --- a/CPOL.txt +++ /dev/null @@ -1,23 +0,0 @@ -CPOL credits - -Some control library required for the UI development is list here, all of these libraries you can found at codeproject.com: - -MetroUI Form -Metro UI (Zune like) Interface (form) -http://www.codeproject.com/Articles/138661/Metro-UI-Zune-like-Interface-form - -NeoLua -NeoLua (Lua for the .NET Dynamic Language Runtime) -http://www.codeproject.com/Articles/674128/NeoLua-Lua-for-the-NET-Dynamic-Language-Runtime - -Pavel.CodeEditor -Fast Colored TextBox for Syntax Highlighting -http://www.codeproject.com/Articles/161871/Fast-Colored-TextBox-for-syntax-highlighting - - - - -BSD licensed - -R.NET -https://rdotnet.codeplex.com/ \ No newline at end of file diff --git a/ChangeLogs.src.txt b/ChangeLogs.src.txt deleted file mode 100644 index e69de29bb..000000000 diff --git a/ChangeLogs.txt b/ChangeLogs.txt deleted file mode 100644 index 3423f52fe..000000000 --- a/ChangeLogs.txt +++ /dev/null @@ -1,2 +0,0 @@ -2014.12.07 -improved the internal Wiki help system diff --git a/Developer Guides.docx b/Developer Guides.docx deleted file mode 100644 index 130c44167213ef0b342368d3df09c396d757dbf7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64812 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≺w3cQnxZ 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�OJ zGQo>8)2~%9?z?b{D;jbgQ;y+0NpWHHe0kB-XM3aX-4h ztZG_unn(Fg);CB3YoG1sT$eo&TtFX3|4SS-t0HvV(XQO==*$LTmW!N&kx=jFz&O8( zP5;SughcE2q)*g1C_Vh+Aum>Nq=|@_+9tY~ z7~ttmhrV`<#WM3Ke$f^4BFtu5`}$Q?^d&RbkSJr%dsR^j%*%9bpp;xdeX z+ABMyC`BmPvOtUV^AN+pPlDY}dQ2II7?nM{NaTSv;m4E!=kzCxQwjpgP9&nert1eQ zrFyzsly&qiNig|64qqyAW!6r_wb^U}OOdv-N*U50lqN}zO^|=fX1HkPkL4IG2&g`i z=Y(uh2wwN%ue(oQaX%zSx~rp4d7An}dQEOac8DBLLY%o(2_cv4_!Uk28j7ZdyhSUP zK=y$Kc_~}9wJ45hW8$Ffqq;MGC;`< z>R}qaIXYBeb|rmOg^F;hRS+0Q_+dQ#7Zdz3bvT^Iz#>ci`95LN0e(cU0_d?r9B+WH z@&YZAS}Uz6xP%@cO#|)Ec>vgYgVeKZEb7=qXf+q zf<+7ImEcA{1Sw@9fu;Gxb%n#*9-c_QG{!=85EyhICaBYx&k++6$zl=HPcB&vkEGT( z=dUW4-M_qaTQiAq5%f@7|#fEzjS}OOxE3) z13Ed4w$>Ij=Y?5E=AqxCp!#qI1=e4f6cjF6);=n13KjNA`aYHXV&lVr#5 zPzMO#Jkf(yQRml_4kr<1jepOCgHmS;?U5vo8DGsvEb$gh-vz2K@xE^W$u4V>K=lSD z=7E|Z;ehWB>|h^tIBGHc@`J5J3~ROCDv*oVX^S$bb(L1Wvwu)kJy_|{?iY4n&J-BE zMYYP6xALU%ILz@#$O`_#eKa_an^r<=&z=pTSMqHuw?5EA*2C%u^v+PAr8?$$;}^)s z(ww890o>>+DXX9(wd`qT5w3s_%Xe)q>*Q_r%qWxRe)%*yGlZU4z?@8vZgr!B*szX$ z%Z8pI9-&B{y?cwiSykP7c{E=fWAr(>7HOJWGf6`hmOk4!nksImMvf(zJR}irEOR#) zS^>$ByHy6RBm<2SFOt{f6rfYK%N^_kI@1K6`Vayfp}P`UtGw81pj|&dY4I4UaoKF6 zv(FiV9=!BTz`&l+k$$^_11s0&aoKUBm9r4}QwV_C4E3d4#@?B9_8c&V1>VEVJy<9)8PGxB2! zyl!16Qi0*apHZGaNd9?pg@R^+><@S1r<^z>?Gqa=INfb+9lVNA%(-T^YRN4}wd3=07Km7?l8E!Ayds{$iwH$*rIQC+39 z`dywO+(>W*!7wg1kRYzS-)V_S^`}b#F8~l}4+VL+__IVI{j&6@joX1dfq!_e4{3q~ zh+B+5)c_N*Uvg7BJ7*I|p1bNV^LC1-9#V}%NNsPb4Ng_4v(^5y zI#2V4n(eMulW?6dYlXC0D%@Ys9ltxPo7NwZ+d?|)_4?P_J^j=1#>cyRo4L*(dK1Sx zy_4$v^t$pM5Al9;m{sWhQk&Qs|3~LXE(yT}kZzs>NlJ6Iu=jV#*8e4UHaD>`VY&W& zX9UK)Hf|9p0Dv_M003D4{73OM0|5TPwa(^{M=@Ii3u|T*8`IluU~8*M5ycGv3_`}& z%`gO7uKXo8h1|gZ$?J1le>-K!Z#`+vFa50qBDXEvPNnhNf=un-75FEy#%=NK zh1|czz`+~hTg$p{+quc@e_H_n3|Ic>7QZR}Z38y}?w}twtlt34YZ&n3kMlR000T(rw#HiOZEHJr~d-wVbodx diff --git a/EndNoteLite/EndNoteLite.vbproj b/EndNoteLite/EndNoteLite.vbproj deleted file mode 100644 index 25cbbdeb0..000000000 --- a/EndNoteLite/EndNoteLite.vbproj +++ /dev/null @@ -1,220 +0,0 @@ - - - - - Debug - AnyCPU - {2F80136C-0E1E-429F-A905-EB0927B0A82C} - Library - EndNoteLite - EndNoteLite - 512 - Windows - v4.6 - - - - true - full - true - true - bin\Debug\ - EndNoteLite.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - pdbonly - false - true - true - ..\..\GCModeller\GCModeller-x64\ - EndNoteLite.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - true - true - true - bin\x64\Debug\ - EndNoteLite.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - full - x64 - MinimumRecommendedRules.ruleset - - - true - ..\..\GCModeller\GCModeller-x64\ - EndNoteLite.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x64 - MinimumRecommendedRules.ruleset - - - true - bin\Publish\ - EndNoteLite.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - AnyCPU - MinimumRecommendedRules.ruleset - - - true - bin\x64\Publish\ - EndNoteLite.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x64 - MinimumRecommendedRules.ruleset - - - true - true - true - bin\x86\Debug\ - EndNoteLite.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - full - x86 - MinimumRecommendedRules.ruleset - - - true - bin\x86\Release\ - EndNoteLite.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x86 - MinimumRecommendedRules.ruleset - - - true - bin\x86\Publish\ - EndNoteLite.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x86 - MinimumRecommendedRules.ruleset - - - true - bin\docs\ - EndNoteLite.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - AnyCPU - MinimumRecommendedRules.ruleset - - - true - bin\x64\docs\ - EndNoteLite.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x64 - MinimumRecommendedRules.ruleset - - - true - bin\x86\docs\ - EndNoteLite.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x86 - MinimumRecommendedRules.ruleset - - - - - - - - - - - - - - - - - - - - - - - - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - {fecce1fd-e1d4-49e3-a668-60bb5e7aed99} - +Microsoft.VisualBasic.Architecture.Framework - - - - - \ No newline at end of file diff --git a/EndNoteLite/LibraryHtmlDoc.vb b/EndNoteLite/LibraryHtmlDoc.vb deleted file mode 100644 index 723f8e796..000000000 --- a/EndNoteLite/LibraryHtmlDoc.vb +++ /dev/null @@ -1,3 +0,0 @@ -Module LibraryHtmlDoc - -End Module diff --git a/EndNoteLite/My Project/Application.myapp b/EndNoteLite/My Project/Application.myapp deleted file mode 100644 index 758895def..000000000 --- a/EndNoteLite/My Project/Application.myapp +++ /dev/null @@ -1,10 +0,0 @@ - - - false - false - 0 - true - 0 - 1 - true - diff --git a/EndNoteLite/My Project/AssemblyInfo.vb b/EndNoteLite/My Project/AssemblyInfo.vb deleted file mode 100644 index 8604d267c..000000000 --- a/EndNoteLite/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,35 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - -' General Information about an assembly is controlled through the following -' set of attributes. Change these attribute values to modify the information -' associated with an assembly. - -' Review the values of the assembly attributes - - - - - - - - - - -'The following GUID is for the ID of the typelib if this project is exposed to COM - - -' Version information for an assembly consists of the following four values: -' -' Major Version -' Minor Version -' Build Number -' Revision -' -' You can specify all the values or you can default the Build and Revision Numbers -' by using the '*' as shown below: -' - - - diff --git a/EndNoteLite/My Project/Resources.Designer.vb b/EndNoteLite/My Project/Resources.Designer.vb deleted file mode 100644 index 072d937a4..000000000 --- a/EndNoteLite/My Project/Resources.Designer.vb +++ /dev/null @@ -1,63 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - -Imports System - -Namespace My.Resources - - 'This class was auto-generated by the StronglyTypedResourceBuilder - 'class via a tool like ResGen or Visual Studio. - 'To add or remove a member, edit your .ResX file then rerun ResGen - 'with the /str option, or rebuild your VS project. - ''' - ''' A strongly-typed resource class, for looking up localized strings, etc. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Returns the cached ResourceManager instance used by this class. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("EndNoteLite.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Overrides the current thread's CurrentUICulture property for all - ''' resource lookups using this strongly typed resource class. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set - resourceCulture = value - End Set - End Property - End Module -End Namespace diff --git a/EndNoteLite/My Project/Settings.Designer.vb b/EndNoteLite/My Project/Settings.Designer.vb deleted file mode 100644 index c0c17a034..000000000 --- a/EndNoteLite/My Project/Settings.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) - -#Region "My.Settings Auto-Save Functionality" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings( sender As Global.System.Object, e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.EndNoteLite.My.MySettings - Get - Return Global.EndNoteLite.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/EndNoteLite/PMCFullText.vb b/EndNoteLite/PMCFullText.vb deleted file mode 100644 index 36da63aa9..000000000 --- a/EndNoteLite/PMCFullText.vb +++ /dev/null @@ -1,3 +0,0 @@ -Public Module PMCFullText - -End Module diff --git a/EndNoteLite/academic.enw b/EndNoteLite/academic.enw deleted file mode 100644 index 959fe9bec..000000000 --- a/EndNoteLite/academic.enw +++ /dev/null @@ -1,11 +0,0 @@ -%0 Journal Article -%T A Novel Model, Recurrent Fuzzy Associative Memory, for Recognizing Time-Series Patterns Contained Ambiguity and Its Application -%A Kim, W. -%A Lee, J. -%A Kim, G. -%A Choi, H. -%J The Kips Transactions Partb -%V 11B -%N 4 -%P 449-456 -%D 2004 diff --git a/EndNoteLite/endnote-citations.enw b/EndNoteLite/endnote-citations.enw deleted file mode 100644 index c31ad21c7..000000000 --- a/EndNoteLite/endnote-citations.enw +++ /dev/null @@ -1,17 +0,0 @@ -%A Griffiths-Jones, Sam -%A Bateman, Alex -%A Marshall, Mhairi -%A Khanna, Ajay -%A Eddy, Sean R. -%T Rfam: an RNA family database -%0 Journal Article -%D 2003 -%8 January 1, 2003 -%J Nucleic Acids Research -%P 439-441 -%R 10.1093/nar/gkg006 -%V 31 -%N 1 -%U http://nar.oxfordjournals.org/content/31/1/439.abstract -%X Rfam is a collection of multiple sequence alignments and covariance models representing non-coding RNA families. Rfam is available on the web in the UK at http://www.sanger.ac.uk/Software/Rfam/ and in the US at http://rfam.wustl.edu/. These websites allow the user to search a query sequence against a library of covariance models, and view multiple sequence alignments and family annotation. The database can also be downloaded in flatfile form and searched locally using the INFERNAL package (http://infernal.wustl.edu/). The first release of Rfam (1.0) contains 25 families, which annotate over 50 000 non-coding RNA genes in the taxonomic divisions of the EMBL nucleotide database. - diff --git a/LINQ.Extensions.ShoalShell.HybridScripting/API.vb b/LINQ.Extensions.ShoalShell.HybridScripting/API.vb deleted file mode 100644 index 594069ab9..000000000 --- a/LINQ.Extensions.ShoalShell.HybridScripting/API.vb +++ /dev/null @@ -1,34 +0,0 @@ -Imports Microsoft.VisualBasic.CommandLine.Reflection -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.HybridsScripting -Imports Microsoft.VisualBasic.Scripting.ShoalShell -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Runtime -Imports Microsoft.VisualBasic.LINQ.Script - - -<[Namespace]("LINQ", Description:="SQL like query scripting language for the object oriented database.")> -Public Module API - - Dim LINQ As DynamicsRuntime - - - - Public Function Initialize() As Boolean - API.LINQ = New DynamicsRuntime - Return True - End Function - - - - Public Function Evaluate(script As String) As Object - Return LINQ.Evaluate(script) - End Function - - - - Public Function SetValue(var As String, value As Object) As Boolean - If TypeOf value Is IEnumerable Then - Call LINQ.SetObject(var, DirectCast(value, IEnumerable)) - End If - Return True - End Function -End Module diff --git a/LINQ.Extensions.ShoalShell.HybridScripting/LINQ.Extensions.ShoalShell.HybridScripting.vbproj b/LINQ.Extensions.ShoalShell.HybridScripting/LINQ.Extensions.ShoalShell.HybridScripting.vbproj deleted file mode 100644 index 98261917a..000000000 --- a/LINQ.Extensions.ShoalShell.HybridScripting/LINQ.Extensions.ShoalShell.HybridScripting.vbproj +++ /dev/null @@ -1,143 +0,0 @@ - - - - - Debug - AnyCPU - {B2355947-6A37-42F4-9340-CEFF43F37A2B} - Library - LINQExtensions.ShoalShell.HybridScripting - LINQ.Extensions.ShoalShell.HybridScripting - 512 - Windows - v4.6 - - - - true - full - true - true - ..\ShoalShell\bin\Debug\ - LINQ.Extensions.ShoalShell.HybridScripting.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - pdbonly - false - true - true - ..\..\GCModeller\GCModeller\ - LINQ.Extensions.ShoalShell.HybridScripting.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - true - true - true - bin\x64\Debug\ - LINQ.Extensions.ShoalShell.HybridScripting.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - full - x64 - MinimumRecommendedRules.ruleset - - - true - ..\..\GCModeller\GCModeller-x64\ - LINQ.Extensions.ShoalShell.HybridScripting.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x64 - MinimumRecommendedRules.ruleset - - - - - - - - - - - - - - - - - - - - - - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - {a7cb16ff-75c6-4746-8449-86c121d723c4} - ShoalShell_Core.v2 - - - - - - - - - - - \ No newline at end of file diff --git a/LINQ.Extensions.ShoalShell.HybridScripting/My Project/Application.Designer.vb b/LINQ.Extensions.ShoalShell.HybridScripting/My Project/Application.Designer.vb deleted file mode 100644 index 88dd01c78..000000000 --- a/LINQ.Extensions.ShoalShell.HybridScripting/My Project/Application.Designer.vb +++ /dev/null @@ -1,13 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - diff --git a/LINQ.Extensions.ShoalShell.HybridScripting/My Project/Application.myapp b/LINQ.Extensions.ShoalShell.HybridScripting/My Project/Application.myapp deleted file mode 100644 index 758895def..000000000 --- a/LINQ.Extensions.ShoalShell.HybridScripting/My Project/Application.myapp +++ /dev/null @@ -1,10 +0,0 @@ - - - false - false - 0 - true - 0 - 1 - true - diff --git a/LINQ.Extensions.ShoalShell.HybridScripting/My Project/AssemblyInfo.vb b/LINQ.Extensions.ShoalShell.HybridScripting/My Project/AssemblyInfo.vb deleted file mode 100644 index d5e8e4da4..000000000 --- a/LINQ.Extensions.ShoalShell.HybridScripting/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,35 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - -' General Information about an assembly is controlled through the following -' set of attributes. Change these attribute values to modify the information -' associated with an assembly. - -' Review the values of the assembly attributes - - - - - - - - - - -'The following GUID is for the ID of the typelib if this project is exposed to COM - - -' Version information for an assembly consists of the following four values: -' -' Major Version -' Minor Version -' Build Number -' Revision -' -' You can specify all the values or you can default the Build and Revision Numbers -' by using the '*' as shown below: -' - - - diff --git a/LINQ.Extensions.ShoalShell.HybridScripting/My Project/Resources.Designer.vb b/LINQ.Extensions.ShoalShell.HybridScripting/My Project/Resources.Designer.vb deleted file mode 100644 index 1b6774d97..000000000 --- a/LINQ.Extensions.ShoalShell.HybridScripting/My Project/Resources.Designer.vb +++ /dev/null @@ -1,104 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - -Imports System - -Namespace My.Resources - - 'This class was auto-generated by the StronglyTypedResourceBuilder - 'class via a tool like ResGen or Visual Studio. - 'To add or remove a member, edit your .ResX file then rerun ResGen - 'with the /str option, or rebuild your VS project. - ''' - ''' A strongly-typed resource class, for looking up localized strings, etc. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Returns the cached ResourceManager instance used by this class. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("LINQExtensions.ShoalShell.HybridScripting.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Overrides the current thread's CurrentUICulture property for all - ''' resource lookups using this strongly typed resource class. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set - resourceCulture = value - End Set - End Property - - ''' - ''' Looks up a localized string similar to GNU GENERAL PUBLIC LICENSE - ''' Version 3, 29 June 2007 - ''' - ''' Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> - ''' Everyone is permitted to copy and distribute verbatim copies - ''' of this license document, but changing it is not allowed. - ''' - ''' Preamble - ''' - ''' The GNU General Public License is a free, copyleft license for - '''software and other kinds of works. - ''' - ''' The licenses for most software and other practical works are designed - '''to [rest of string was truncated]";. - ''' - Friend ReadOnly Property gpl() As String - Get - Return ResourceManager.GetString("gpl", resourceCulture) - End Get - End Property - - ''' - ''' Looks up a localized string similar to This program is free software: you can redistribute it and/or modify - '''it under the terms of the GNU General Public License as published by - '''the Free Software Foundation, either version 3 of the License, or - '''any later version. - ''' - '''This program is distributed in the hope that it will be useful, - '''but WITHOUT ANY WARRANTY; without even the implied warranty of - '''MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - '''GNU General Public License for more details. - ''' - '''You should have received a copy of the GNU [rest of string was truncated]";. - ''' - Friend ReadOnly Property license() As String - Get - Return ResourceManager.GetString("license", resourceCulture) - End Get - End Property - End Module -End Namespace diff --git a/LINQ.Extensions.ShoalShell.HybridScripting/My Project/Resources.resx b/LINQ.Extensions.ShoalShell.HybridScripting/My Project/Resources.resx deleted file mode 100644 index 5a97acb37..000000000 --- a/LINQ.Extensions.ShoalShell.HybridScripting/My Project/Resources.resx +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - ..\Resources\gpl.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;gb2312 - - - ..\Resources\license.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;gb2312 - - \ No newline at end of file diff --git a/LINQ.Extensions.ShoalShell.HybridScripting/My Project/Settings.Designer.vb b/LINQ.Extensions.ShoalShell.HybridScripting/My Project/Settings.Designer.vb deleted file mode 100644 index 5300306f6..000000000 --- a/LINQ.Extensions.ShoalShell.HybridScripting/My Project/Settings.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) - -#Region "My.Settings Auto-Save Functionality" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings( sender As Global.System.Object, e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.LINQExtensions.ShoalShell.HybridScripting.My.MySettings - Get - Return Global.LINQExtensions.ShoalShell.HybridScripting.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/LINQ.Extensions.ShoalShell.HybridScripting/My Project/Settings.settings b/LINQ.Extensions.ShoalShell.HybridScripting/My Project/Settings.settings deleted file mode 100644 index 85b890b3c..000000000 --- a/LINQ.Extensions.ShoalShell.HybridScripting/My Project/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/LINQ.Extensions.ShoalShell.HybridScripting/Resources/gpl.txt b/LINQ.Extensions.ShoalShell.HybridScripting/Resources/gpl.txt deleted file mode 100644 index 94a9ed024..000000000 --- a/LINQ.Extensions.ShoalShell.HybridScripting/Resources/gpl.txt +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/LINQ.Extensions.ShoalShell.HybridScripting/Resources/license.txt b/LINQ.Extensions.ShoalShell.HybridScripting/Resources/license.txt deleted file mode 100644 index da76ca0a9..000000000 --- a/LINQ.Extensions.ShoalShell.HybridScripting/Resources/license.txt +++ /dev/null @@ -1,12 +0,0 @@ -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . \ No newline at end of file diff --git a/Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting/API.vb b/Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting/API.vb deleted file mode 100644 index 6111a82a8..000000000 --- a/Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting/API.vb +++ /dev/null @@ -1,51 +0,0 @@ -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.HybridsScripting -Imports Microsoft.VisualBasic.CommandLine.Reflection -Imports Microsoft.VisualBasic.Scripting.ShoalShell -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Runtime -Imports Microsoft.VisualBasic.Scripting.MetaData -Imports Microsoft.VisualBasic.Linq.Extensions - -<[PackageNamespace]("VBMath", - Description:="This package enable Shoal language can be doing the mathematics calculation.", - Publisher:="xie.guigang@gmail.com")> - -Public Module API - - - Public Function Initialize() As Boolean - 'Do not needs any initialization - Return True - End Function - - - - Public Function Evaluate(Script As String) As Object - Return ScriptEngine.Shell(Script) - End Function - - - - Public Function SetValue(var As String, value As Object) As Boolean - Try - Call Mathematical.ScriptEngine.SetVariable(var, value) - Return True - Catch ex As Exception - Return False - End Try - End Function - - - Public Function Ranks(data As Generic.IEnumerable(Of Double), Optional Log2Rank As Boolean = False, Optional Level As Integer = 100) As Integer() - If Log2Rank Then - Return data.Log2Ranks(Level).ToArray(Function(n) CInt(n)) - Else - Return data.GenerateMapping(Level) - End If - End Function - - - Public Function LoadVector(path As String) As Double() - Dim LQuery = (From line As String In IO.File.ReadAllLines(path) Select Val(line)).ToArray - Return LQuery - End Function -End Module diff --git a/Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting/Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting.vbproj b/Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting/Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting.vbproj deleted file mode 100644 index edfa82130..000000000 --- a/Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting/Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting.vbproj +++ /dev/null @@ -1,226 +0,0 @@ - - - - - Debug - AnyCPU - {85E19618-8A67-47DE-892D-4BB4EAF59AE2} - Library - Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting - Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting - 512 - Windows - v4.6 - - - - true - full - true - true - ..\Shoal.v2\Console\bin\Debug\ - Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - pdbonly - false - true - true - ..\..\GCModeller\GCModeller\ - Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - true - true - true - bin\x64\Debug\ - Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - full - x64 - MinimumRecommendedRules.ruleset - - - true - ..\..\GCModeller\GCModeller-x64\ - Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x64 - MinimumRecommendedRules.ruleset - - - true - bin\Publish\ - Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - AnyCPU - MinimumRecommendedRules.ruleset - - - true - bin\x64\Publish\ - Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x64 - MinimumRecommendedRules.ruleset - - - true - true - true - bin\x86\Debug\ - Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - full - x86 - MinimumRecommendedRules.ruleset - - - true - bin\x86\Release\ - Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x86 - MinimumRecommendedRules.ruleset - - - true - bin\x86\Publish\ - Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x86 - MinimumRecommendedRules.ruleset - - - true - bin\docs\ - Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - AnyCPU - MinimumRecommendedRules.ruleset - - - true - bin\x64\docs\ - Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x64 - MinimumRecommendedRules.ruleset - - - true - bin\x86\docs\ - Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x86 - MinimumRecommendedRules.ruleset - - - - - - - - - - - - - - - - - - - - - - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - {fecce1fd-e1d4-49e3-a668-60bb5e7aed99} - +Microsoft.VisualBasic.Architecture.Framework - - - {e3367b88-5d0c-495a-8273-331656d4b5aa} - Microsoft.VisualBasic.Mathematical - - - {a7cb16ff-75c6-4746-8449-86c121d723c4} - ShoalShell_Core.v2 - - - - - \ No newline at end of file diff --git a/Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting/My Project/Application.Designer.vb b/Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting/My Project/Application.Designer.vb deleted file mode 100644 index 88dd01c78..000000000 --- a/Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting/My Project/Application.Designer.vb +++ /dev/null @@ -1,13 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - diff --git a/Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting/My Project/Application.myapp b/Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting/My Project/Application.myapp deleted file mode 100644 index 758895def..000000000 --- a/Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting/My Project/Application.myapp +++ /dev/null @@ -1,10 +0,0 @@ - - - false - false - 0 - true - 0 - 1 - true - diff --git a/Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting/My Project/AssemblyInfo.vb b/Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting/My Project/AssemblyInfo.vb deleted file mode 100644 index 02e133853..000000000 --- a/Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,35 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - -' General Information about an assembly is controlled through the following -' set of attributes. Change these attribute values to modify the information -' associated with an assembly. - -' Review the values of the assembly attributes - - - - - - - - - - -'The following GUID is for the ID of the typelib if this project is exposed to COM - - -' Version information for an assembly consists of the following four values: -' -' Major Version -' Minor Version -' Build Number -' Revision -' -' You can specify all the values or you can default the Build and Revision Numbers -' by using the '*' as shown below: -' - - - diff --git a/Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting/My Project/Resources.Designer.vb b/Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting/My Project/Resources.Designer.vb deleted file mode 100644 index 85298ab10..000000000 --- a/Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting/My Project/Resources.Designer.vb +++ /dev/null @@ -1,63 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - -Imports System - -Namespace My.Resources - - 'This class was auto-generated by the StronglyTypedResourceBuilder - 'class via a tool like ResGen or Visual Studio. - 'To add or remove a member, edit your .ResX file then rerun ResGen - 'with the /str option, or rebuild your VS project. - ''' - ''' A strongly-typed resource class, for looking up localized strings, etc. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Returns the cached ResourceManager instance used by this class. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Overrides the current thread's CurrentUICulture property for all - ''' resource lookups using this strongly typed resource class. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set - resourceCulture = value - End Set - End Property - End Module -End Namespace diff --git a/Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting/My Project/Resources.resx b/Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting/My Project/Resources.resx deleted file mode 100644 index af7dbebba..000000000 --- a/Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting/My Project/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting/My Project/Settings.Designer.vb b/Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting/My Project/Settings.Designer.vb deleted file mode 100644 index b1e30d245..000000000 --- a/Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting/My Project/Settings.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) - -#Region "My.Settings Auto-Save Functionality" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings( sender As Global.System.Object, e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting.My.MySettings - Get - Return Global.Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting/My Project/Settings.settings b/Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting/My Project/Settings.settings deleted file mode 100644 index 85b890b3c..000000000 --- a/Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting/My Project/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns/IDEPlugIn.vb b/Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns/IDEPlugIn.vb deleted file mode 100644 index 0ae0d20c0..000000000 --- a/Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns/IDEPlugIn.vb +++ /dev/null @@ -1,58 +0,0 @@ -Imports System.Windows.Forms -Imports Microsoft.VisualBasic.CommandLine.Reflection -Imports Microsoft.VisualBasic.Scripting.ShoalShell -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Runtime -Imports Microsoft.VisualBasic.Windows.Forms -Imports Microsoft.VisualBasic.Language.UnixBash - -<[Namespace]("dynamics.ide_plugins")> -Public Module IDEPlugIn - - Dim CommandName As String - Dim Iconpath As String - Dim Target As ToolStripMenuItem - Dim _currentPath As String - - - Public Function SetName(value As String) As String - CommandName = value - Return IDEPlugIn.CommandName - End Function - - - Public Function SetIcon(value As String) As String - Try - IDEPlugIn.Iconpath = FileIO.FileSystem.GetFileInfo(value).FullName - Catch ex As Exception - Call Console.WriteLine("FILE_NOT_FOUND::menu icon image file ""{0}"" is not found on the filesystem, image will not load.", value) - End Try - Return IDEPlugIn.Iconpath - End Function - - - Public Function Initialize(action As System.Action) As Boolean - Dim CommandEntry = PlugIns.MenuAPI.AddCommand(Target, _currentPath, CommandName) - If Not String.IsNullOrEmpty(Iconpath) AndAlso FileIO.FileSystem.FileExists(Iconpath) Then CommandEntry.Image = System.Drawing.Image.FromFile(Iconpath) - AddHandler CommandEntry.Click, Sub() Call action() '关联命令 - - Return 0 - End Function - - ''' - ''' - ''' - ''' 插件的载入点 - ''' ShellScript插件脚本的文件夹路径 - ''' - Public Sub LoadScripts(Entry As ToolStripMenuItem, pluginDIR As String) - Target = Entry - pluginDIR = FileIO.FileSystem.GetDirectoryInfo(pluginDIR).FullName - - Using shoalShell As ScriptEngine = New ScriptEngine - For Each script As String In ls - l - r - wildcards("*.txt", "*.vbss") <= pluginDIR - _currentPath = script.Replace(pluginDIR, "") - Call shoalShell.Exec(script) - Next - End Using - End Sub -End Module diff --git a/Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns/Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns.vbproj b/Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns/Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns.vbproj deleted file mode 100644 index e637a52b3..000000000 --- a/Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns/Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns.vbproj +++ /dev/null @@ -1,194 +0,0 @@ - - - - - Debug - AnyCPU - {F4CA3733-BA62-4A8D-BF45-0BCAE80B882F} - Library - Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns - Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns - 512 - Windows - v4.6 - - - - true - full - true - true - bin\Debug\ - Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - pdbonly - false - true - true - ..\..\GCModeller\GCModeller\ - Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - true - true - true - bin\x64\Debug\ - Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - full - x64 - MinimumRecommendedRules.ruleset - - - true - ..\..\GCModeller\GCModeller-x64\ - Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x64 - MinimumRecommendedRules.ruleset - - - true - bin\Publish\ - Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - AnyCPU - MinimumRecommendedRules.ruleset - - - true - bin\x64\Publish\ - Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x64 - MinimumRecommendedRules.ruleset - - - true - true - true - bin\x86\Debug\ - Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - full - x86 - MinimumRecommendedRules.ruleset - - - true - bin\x86\Release\ - Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x86 - MinimumRecommendedRules.ruleset - - - true - bin\x86\Publish\ - Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x86 - MinimumRecommendedRules.ruleset - - - - - - - - - - - - - - - - - - - - - - - - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - {fecce1fd-e1d4-49e3-a668-60bb5e7aed99} - +Microsoft.VisualBasic.Architecture.Framework - - - {a7cb16ff-75c6-4746-8449-86c121d723c4} - ShoalShell_Core.v2 - - - - - \ No newline at end of file diff --git a/Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns/My Project/Application.Designer.vb b/Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns/My Project/Application.Designer.vb deleted file mode 100644 index 88dd01c78..000000000 --- a/Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns/My Project/Application.Designer.vb +++ /dev/null @@ -1,13 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - diff --git a/Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns/My Project/Application.myapp b/Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns/My Project/Application.myapp deleted file mode 100644 index 758895def..000000000 --- a/Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns/My Project/Application.myapp +++ /dev/null @@ -1,10 +0,0 @@ - - - false - false - 0 - true - 0 - 1 - true - diff --git a/Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns/My Project/AssemblyInfo.vb b/Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns/My Project/AssemblyInfo.vb deleted file mode 100644 index 26cee1937..000000000 --- a/Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,35 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - -' General Information about an assembly is controlled through the following -' set of attributes. Change these attribute values to modify the information -' associated with an assembly. - -' Review the values of the assembly attributes - - - - - - - - - - -'The following GUID is for the ID of the typelib if this project is exposed to COM - - -' Version information for an assembly consists of the following four values: -' -' Major Version -' Minor Version -' Build Number -' Revision -' -' You can specify all the values or you can default the Build and Revision Numbers -' by using the '*' as shown below: -' - - - diff --git a/Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns/My Project/Resources.Designer.vb b/Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns/My Project/Resources.Designer.vb deleted file mode 100644 index cb16f5e47..000000000 --- a/Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns/My Project/Resources.Designer.vb +++ /dev/null @@ -1,63 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - -Imports System - -Namespace My.Resources - - 'This class was auto-generated by the StronglyTypedResourceBuilder - 'class via a tool like ResGen or Visual Studio. - 'To add or remove a member, edit your .ResX file then rerun ResGen - 'with the /str option, or rebuild your VS project. - ''' - ''' A strongly-typed resource class, for looking up localized strings, etc. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Returns the cached ResourceManager instance used by this class. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Overrides the current thread's CurrentUICulture property for all - ''' resource lookups using this strongly typed resource class. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set - resourceCulture = value - End Set - End Property - End Module -End Namespace diff --git a/Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns/My Project/Resources.resx b/Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns/My Project/Resources.resx deleted file mode 100644 index af7dbebba..000000000 --- a/Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns/My Project/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns/My Project/Settings.Designer.vb b/Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns/My Project/Settings.Designer.vb deleted file mode 100644 index b1d37aedb..000000000 --- a/Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns/My Project/Settings.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) - -#Region "My.Settings Auto-Save Functionality" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings( sender As Global.System.Object, e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns.My.MySettings - Get - Return Global.Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns/My Project/Settings.settings b/Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns/My Project/Settings.settings deleted file mode 100644 index 85b890b3c..000000000 --- a/Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns/My Project/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/R/R.sln b/R/R.sln new file mode 100644 index 000000000..e6d995acc --- /dev/null +++ b/R/R.sln @@ -0,0 +1,108 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.26430.12 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "R", "R\R.vbproj", "{0C2EB77C-39F2-460D-A3F8-CE905F867637}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "+Microsoft.VisualBasic.Architecture.Framework", "..\..\Source\Repos\sciBASIC\Microsoft.VisualBasic.Architecture.Framework\+Microsoft.VisualBasic.Architecture.Framework.vbproj", "{FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + DEMO|Any CPU = DEMO|Any CPU + DEMO|x64 = DEMO|x64 + DEMO|x86 = DEMO|x86 + docs|Any CPU = docs|Any CPU + docs|x64 = docs|x64 + docs|x86 = docs|x86 + Publish|Any CPU = Publish|Any CPU + Publish|x64 = Publish|x64 + Publish|x86 = Publish|x86 + Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + Release2|Any CPU = Release2|Any CPU + Release2|x64 = Release2|x64 + Release2|x86 = Release2|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {0C2EB77C-39F2-460D-A3F8-CE905F867637}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0C2EB77C-39F2-460D-A3F8-CE905F867637}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0C2EB77C-39F2-460D-A3F8-CE905F867637}.Debug|x64.ActiveCfg = Debug|Any CPU + {0C2EB77C-39F2-460D-A3F8-CE905F867637}.Debug|x64.Build.0 = Debug|Any CPU + {0C2EB77C-39F2-460D-A3F8-CE905F867637}.Debug|x86.ActiveCfg = Debug|Any CPU + {0C2EB77C-39F2-460D-A3F8-CE905F867637}.Debug|x86.Build.0 = Debug|Any CPU + {0C2EB77C-39F2-460D-A3F8-CE905F867637}.DEMO|Any CPU.ActiveCfg = Debug|Any CPU + {0C2EB77C-39F2-460D-A3F8-CE905F867637}.DEMO|Any CPU.Build.0 = Debug|Any CPU + {0C2EB77C-39F2-460D-A3F8-CE905F867637}.DEMO|x64.ActiveCfg = Debug|Any CPU + {0C2EB77C-39F2-460D-A3F8-CE905F867637}.DEMO|x64.Build.0 = Debug|Any CPU + {0C2EB77C-39F2-460D-A3F8-CE905F867637}.DEMO|x86.ActiveCfg = Debug|Any CPU + {0C2EB77C-39F2-460D-A3F8-CE905F867637}.DEMO|x86.Build.0 = Debug|Any CPU + {0C2EB77C-39F2-460D-A3F8-CE905F867637}.docs|Any CPU.ActiveCfg = Debug|Any CPU + {0C2EB77C-39F2-460D-A3F8-CE905F867637}.docs|Any CPU.Build.0 = Debug|Any CPU + {0C2EB77C-39F2-460D-A3F8-CE905F867637}.docs|x64.ActiveCfg = Debug|Any CPU + {0C2EB77C-39F2-460D-A3F8-CE905F867637}.docs|x64.Build.0 = Debug|Any CPU + {0C2EB77C-39F2-460D-A3F8-CE905F867637}.docs|x86.ActiveCfg = Debug|Any CPU + {0C2EB77C-39F2-460D-A3F8-CE905F867637}.docs|x86.Build.0 = Debug|Any CPU + {0C2EB77C-39F2-460D-A3F8-CE905F867637}.Publish|Any CPU.ActiveCfg = Release|Any CPU + {0C2EB77C-39F2-460D-A3F8-CE905F867637}.Publish|Any CPU.Build.0 = Release|Any CPU + {0C2EB77C-39F2-460D-A3F8-CE905F867637}.Publish|x64.ActiveCfg = Release|Any CPU + {0C2EB77C-39F2-460D-A3F8-CE905F867637}.Publish|x64.Build.0 = Release|Any CPU + {0C2EB77C-39F2-460D-A3F8-CE905F867637}.Publish|x86.ActiveCfg = Release|Any CPU + {0C2EB77C-39F2-460D-A3F8-CE905F867637}.Publish|x86.Build.0 = Release|Any CPU + {0C2EB77C-39F2-460D-A3F8-CE905F867637}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0C2EB77C-39F2-460D-A3F8-CE905F867637}.Release|Any CPU.Build.0 = Release|Any CPU + {0C2EB77C-39F2-460D-A3F8-CE905F867637}.Release|x64.ActiveCfg = Release|Any CPU + {0C2EB77C-39F2-460D-A3F8-CE905F867637}.Release|x64.Build.0 = Release|Any CPU + {0C2EB77C-39F2-460D-A3F8-CE905F867637}.Release|x86.ActiveCfg = Release|Any CPU + {0C2EB77C-39F2-460D-A3F8-CE905F867637}.Release|x86.Build.0 = Release|Any CPU + {0C2EB77C-39F2-460D-A3F8-CE905F867637}.Release2|Any CPU.ActiveCfg = Release|Any CPU + {0C2EB77C-39F2-460D-A3F8-CE905F867637}.Release2|Any CPU.Build.0 = Release|Any CPU + {0C2EB77C-39F2-460D-A3F8-CE905F867637}.Release2|x64.ActiveCfg = Release|Any CPU + {0C2EB77C-39F2-460D-A3F8-CE905F867637}.Release2|x64.Build.0 = Release|Any CPU + {0C2EB77C-39F2-460D-A3F8-CE905F867637}.Release2|x86.ActiveCfg = Release|Any CPU + {0C2EB77C-39F2-460D-A3F8-CE905F867637}.Release2|x86.Build.0 = Release|Any CPU + {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Debug|x64.ActiveCfg = Debug|x64 + {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Debug|x64.Build.0 = Debug|x64 + {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Debug|x86.ActiveCfg = Debug|x86 + {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Debug|x86.Build.0 = Debug|x86 + {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.DEMO|Any CPU.ActiveCfg = DEMO|Any CPU + {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.DEMO|Any CPU.Build.0 = DEMO|Any CPU + {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.DEMO|x64.ActiveCfg = DEMO|x64 + {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.DEMO|x64.Build.0 = DEMO|x64 + {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.DEMO|x86.ActiveCfg = DEMO|x86 + {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.DEMO|x86.Build.0 = DEMO|x86 + {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.docs|Any CPU.ActiveCfg = docs|Any CPU + {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.docs|Any CPU.Build.0 = docs|Any CPU + {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.docs|x64.ActiveCfg = docs|x64 + {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.docs|x64.Build.0 = docs|x64 + {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.docs|x86.ActiveCfg = docs|x86 + {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.docs|x86.Build.0 = docs|x86 + {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Publish|Any CPU.ActiveCfg = Publish|Any CPU + {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Publish|Any CPU.Build.0 = Publish|Any CPU + {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Publish|x64.ActiveCfg = Publish|x64 + {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Publish|x64.Build.0 = Publish|x64 + {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Publish|x86.ActiveCfg = Publish|x86 + {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Publish|x86.Build.0 = Publish|x86 + {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Release|Any CPU.Build.0 = Release|Any CPU + {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Release|x64.ActiveCfg = Release|x64 + {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Release|x64.Build.0 = Release|x64 + {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Release|x86.ActiveCfg = Release|x86 + {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Release|x86.Build.0 = Release|x86 + {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Release2|Any CPU.ActiveCfg = Release2|Any CPU + {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Release2|Any CPU.Build.0 = Release2|Any CPU + {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Release2|x64.ActiveCfg = Release2|x64 + {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Release2|x64.Build.0 = Release2|x64 + {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Release2|x86.ActiveCfg = Release2|x86 + {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Release2|x86.Build.0 = Release2|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Shoal.Testing/App.config b/R/R/App.config similarity index 60% rename from Shoal.Testing/App.config rename to R/R/App.config index 2d2a12d81..8324aa6ff 100644 --- a/Shoal.Testing/App.config +++ b/R/R/App.config @@ -1,6 +1,6 @@ - + - + - + \ No newline at end of file diff --git a/R/R/Module1.vb b/R/R/Module1.vb new file mode 100644 index 000000000..5d7e3a343 --- /dev/null +++ b/R/R/Module1.vb @@ -0,0 +1,7 @@ +Module Module1 + + Sub Main() + + End Sub + +End Module diff --git a/EndNoteLite/My Project/Application.Designer.vb b/R/R/My Project/Application.Designer.vb similarity index 100% rename from EndNoteLite/My Project/Application.Designer.vb rename to R/R/My Project/Application.Designer.vb diff --git a/Shoal.Testing/My Project/Application.myapp b/R/R/My Project/Application.myapp similarity index 100% rename from Shoal.Testing/My Project/Application.myapp rename to R/R/My Project/Application.myapp diff --git a/Shoal.Testing/My Project/AssemblyInfo.vb b/R/R/My Project/AssemblyInfo.vb similarity index 57% rename from Shoal.Testing/My Project/AssemblyInfo.vb rename to R/R/My Project/AssemblyInfo.vb index ef807a152..44f6c2db1 100644 --- a/Shoal.Testing/My Project/AssemblyInfo.vb +++ b/R/R/My Project/AssemblyInfo.vb @@ -2,34 +2,34 @@ Imports System.Reflection Imports System.Runtime.InteropServices -' General Information about an assembly is controlled through the following +' General Information about an assembly is controlled through the following ' set of attributes. Change these attribute values to modify the information ' associated with an assembly. ' Review the values of the assembly attributes - - - - - - + + + + + + 'The following GUID is for the ID of the typelib if this project is exposed to COM - + ' Version information for an assembly consists of the following four values: ' ' Major Version -' Minor Version +' Minor Version ' Build Number ' Revision ' -' You can specify all the values or you can default the Build and Revision Numbers +' You can specify all the values or you can default the Build and Revision Numbers ' by using the '*' as shown below: -' +' - - + + diff --git a/ShoalShell.Legacy/TestShellScriptModule/My Project/Resources.Designer.vb b/R/R/My Project/Resources.Designer.vb similarity index 94% rename from ShoalShell.Legacy/TestShellScriptModule/My Project/Resources.Designer.vb rename to R/R/My Project/Resources.Designer.vb index 255c73c62..d5bc74cff 100644 --- a/ShoalShell.Legacy/TestShellScriptModule/My Project/Resources.Designer.vb +++ b/R/R/My Project/Resources.Designer.vb @@ -1,7 +1,7 @@ '------------------------------------------------------------------------------ ' ' This code was generated by a tool. -' Runtime Version:4.0.30319.18444 +' Runtime Version:4.0.30319.42000 ' ' Changes to this file may cause incorrect behavior and will be lost if ' the code is regenerated. @@ -13,7 +13,7 @@ Option Explicit On Namespace My.Resources - + 'This class was auto-generated by the StronglyTypedResourceBuilder 'class via a tool like ResGen or Visual Studio. 'To add or remove a member, edit your .ResX file then rerun ResGen @@ -38,7 +38,7 @@ Namespace My.Resources Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager Get If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("TestShellScriptModule.Resources", GetType(Resources).Assembly) + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("R.Resources", GetType(Resources).Assembly) resourceMan = temp End If Return resourceMan diff --git a/EndNoteLite/My Project/Resources.resx b/R/R/My Project/Resources.resx similarity index 100% rename from EndNoteLite/My Project/Resources.resx rename to R/R/My Project/Resources.resx diff --git a/ShoalShell.Legacy/TestShellScriptModule/My Project/Settings.Designer.vb b/R/R/My Project/Settings.Designer.vb similarity index 87% rename from ShoalShell.Legacy/TestShellScriptModule/My Project/Settings.Designer.vb rename to R/R/My Project/Settings.Designer.vb index 48f744dff..5d551f863 100644 --- a/ShoalShell.Legacy/TestShellScriptModule/My Project/Settings.Designer.vb +++ b/R/R/My Project/Settings.Designer.vb @@ -1,7 +1,7 @@ '------------------------------------------------------------------------------ ' ' This code was generated by a tool. -' Runtime Version:4.0.30319.18444 +' Runtime Version:4.0.30319.42000 ' ' Changes to this file may cause incorrect behavior and will be lost if ' the code is regenerated. @@ -57,16 +57,16 @@ Namespace My End Namespace Namespace My - - _ + + _ Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.TestShellScriptModule.My.MySettings + + _ + Friend ReadOnly Property Settings() As Global.R.My.MySettings Get - Return Global.TestShellScriptModule.My.MySettings.Default + Return Global.R.My.MySettings.Default End Get End Property End Module diff --git a/EndNoteLite/My Project/Settings.settings b/R/R/My Project/Settings.settings similarity index 100% rename from EndNoteLite/My Project/Settings.settings rename to R/R/My Project/Settings.settings diff --git a/ShoalShell.Legacy/TestShellScriptModule/TestShellScriptModule.vbproj b/R/R/R.vbproj similarity index 76% rename from ShoalShell.Legacy/TestShellScriptModule/TestShellScriptModule.vbproj rename to R/R/R.vbproj index 8fb51a0ae..2d8384988 100644 --- a/ShoalShell.Legacy/TestShellScriptModule/TestShellScriptModule.vbproj +++ b/R/R/R.vbproj @@ -1,33 +1,37 @@  - + Debug AnyCPU - {73D02E01-37BF-47D2-B0CF-A2324BB422B4} - Library - TestShellScriptModule - TestShellScriptModule + {0C2EB77C-39F2-460D-A3F8-CE905F867637} + Exe + R.Module1 + R + R 512 - Windows - v4.5 + Console + v4.6 + true + AnyCPU true full true true bin\Debug\ - TestShellScriptModule.xml + R.xml 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + AnyCPU pdbonly false true true bin\Release\ - TestShellScriptModule.xml + R.xml 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 @@ -45,10 +49,12 @@ + + @@ -62,7 +68,8 @@ - + + True @@ -97,19 +104,13 @@ My Settings.Designer.vb + - - {cd4a48ed-b3c6-41ff-971c-eb54957ab497} - Microsoft.VisualBasic.Architecture.Framework + + {fecce1fd-e1d4-49e3-a668-60bb5e7aed99} + +Microsoft.VisualBasic.Architecture.Framework - \ No newline at end of file diff --git a/R/R/TokenIcer.vb b/R/R/TokenIcer.vb new file mode 100644 index 000000000..e220718f7 --- /dev/null +++ b/R/R/TokenIcer.vb @@ -0,0 +1,81 @@ +Imports System.Runtime.CompilerServices +Imports Microsoft.VisualBasic.Emit.Marshal +Imports Microsoft.VisualBasic.Language +Imports Microsoft.VisualBasic.Scripting.TokenIcer +Imports Microsoft.VisualBasic.Text +Imports langToken = Microsoft.VisualBasic.Scripting.TokenIcer.Token(Of R.LanguageTokens) + +Public Module TokenIcer + + Public Iterator Function Parse(s$) As IEnumerable(Of Statement) + Dim buffer As New Pointer(Of Char)(Trim(s$)) + Dim QuotOpen As Boolean = False + Dim tmp As New List(Of Char) + Dim tokens As New List(Of Token(Of LanguageTokens)) + Dim last As Statement + + Do While Not buffer.EndRead + Dim c As Char = +buffer + + If QuotOpen Then + If c = ASCII.Quot AndAlso Not tmp.StartEscaping Then + ' 当前的字符为双引号,并且不是转义状态,则结束字符串 + tokens += New langToken With { + .Name = LanguageTokens.String, + .Value = New String(tmp) + } + tmp *= 0 + End If + End If + If Not QuotOpen AndAlso c = ASCII.Quot Then + QuotOpen = True + Continue Do + End If + If c = ";"c Then + ' 结束当前的statement的解析 + last = New Statement With { + .Tokens = tokens + } + tokens *= 0 + + Yield last + End If + Loop + End Function +End Module + +''' +''' +''' +Public Class Statement + + Public Tokens As langToken() + ''' + ''' 堆栈 + ''' + Public Child As Statement + +End Class + +Public Enum LanguageTokens + + ''' + ''' 允许使用小数点作为变量名称的一部分 + ''' + Identifier + ''' + ''' <- + ''' + LeftAssign + ParameterAssign + StackOpen + StackClose + BracketOpen + BracketClose + var + ''' + ''' 字符串值 + ''' + [String] + +End Enum \ No newline at end of file diff --git a/R/syntax.r b/R/syntax.r new file mode 100644 index 000000000..92918e2d0 --- /dev/null +++ b/R/syntax.r @@ -0,0 +1,56 @@ +# 所有的语句强制使用分号进行结尾 +# for/if 强制使用大括号 +# 变量赋值强制使用 <-, 变量在使用之前必须经过var定义 +# 参数赋值使用等号 +# + +var x <- {1, 2, 3, 4, 5}; +var m <- mean(x); +var n <- x + m; + +if (m <= 10) { + println("test message %s", m); +} else { + println("test2 %d", m); +} + +## 数据类型是默认为向量类型的 +## integer则为integer类型向量,double则为double类型的向量 +## 函数必须要使用return进行返回,return不再是一个函数调用,但是也可以使用return (a/b);的形式 +## 如果没有定义return,则默认返回null +## 函数也是一种变量类型,但是函数变量的初始化不需要var关键词 +test <- function(a as integer, b as double) { + + var n <- a/b; + + ## 可以直接引用全局变量,起冲突的时候使用global变量 + return n + global$n; +} + +var c <- test(11, b = 44); + +## 常量? +imports s <- "123456"; + +## 列表参数类型 +## 函数无返回值,默认返回null +test.list <- function(...) { + + ## 这个表达式表示从...列表之中取出变量a和变量b,当变量不存在的时候,初始化为null. + var a <- ...; + var b <- ...; + + if (a is null) { + println("var a is missing"); + } else if (b is null) { + println("var b is missing"); + } + + println(...); +} + +test.list(a = 3, b = {1,2,3}, c = "yes"); + +## 逻辑值只有TRUE/FALSE +var true <- TRUE; +var false <- FALSE; \ No newline at end of file diff --git a/RDotNET.Extensions.ShellScriptAPI/API.vb b/RDotNET.Extensions.ShellScriptAPI/API.vb deleted file mode 100644 index bb48e114f..000000000 --- a/RDotNET.Extensions.ShellScriptAPI/API.vb +++ /dev/null @@ -1,512 +0,0 @@ -Imports RDotNET.Internals -Imports System.Collections -Imports System.Collections.Generic -Imports System.Numerics -Imports System.Runtime.CompilerServices -Imports RDotNET.REngineExtension -Imports RDotNET.SymbolicExpressionExtension -Imports RDotNET.Extensions.VisualBasic.Serialization -Imports RDotNET.Extensions.VisualBasic -Imports RDotNET.Extensions.VisualBasic.RSystem -Imports Microsoft.VisualBasic.Scripting.ShoalShell -Imports Microsoft.VisualBasic.Scripting.MetaData -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Runtime -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.HybridsScripting -Imports Microsoft.VisualBasic.CommandLine.Reflection - - -<[PackageNamespace]("R.NET", - Description:="R API interface to the shoal shell language.", - Category:=APICategories.SoftwareTools, - Publisher:="xie.guigang@gcmodeller.org", - Url:="https://rdotnet.codeplex.com/")> -Public Module API - - Dim REngine As REngine - -#Region "Hybrid Interfaces" - - - - Public Function Init() As RDotNET.REngine - REngine = RServer - Return RSystem.RServer - End Function - - - Public Function Evaluate(scriptLine As String) As Object - Dim value = RSystem.RServer.Evaluate(statement:=scriptLine) - Return value - End Function - - - Public Function SetSymbol(Variable As String, value As Object) As Boolean - Try - Call RServer.SetSymbol(Variable, value) - Catch ex As Exception - Return False - End Try - - Return True - End Function - - - Public Function TypeCast( - RData As RDotNET.SymbolicExpression, - - Type As System.Type) As Object - Return LoadRStream(RData, Type) - End Function - -#End Region - - ''' - ''' Creates a new CharacterVector with the specified values. - ''' - ''' The values. - ''' The new vector. - - - Public Function CreateCharacterVector(vector As IEnumerable(Of Object)) As CharacterVector - Return New CharacterVector(RServer, vector.CT(Of String)) - End Function - - Private Function CT(Of T)(data As Generic.IEnumerable(Of Object)) As T() - Return (From item In data Select CType(item, T)).ToArray - End Function - - ''' - ''' Creates a new ComplexVector with the specified values. - ''' - ''' The values. - ''' The new vector. - - - Public Function CreateComplexVector(vector As IEnumerable(Of Object)) As ComplexVector - Return New ComplexVector(RServer, vector.CT(Of Complex)) - End Function - - ''' - ''' Creates a new IntegerVector with the specified values. - ''' - ''' The values. - ''' The new vector. - - - Public Function CreateIntegerVector(vector As IEnumerable(Of Object)) As IntegerVector - If REngine Is Nothing Then - Throw New ArgumentNullException() - End If - If Not REngine.IsRunning Then - Throw New ArgumentException() - End If - Return New IntegerVector(REngine, vector.CT(Of Integer)) - End Function - - ''' - ''' Creates a new LogicalVector with the specified values. - ''' - ''' The values. - ''' The new vector. - - - Public Function CreateLogicalVector(vector As IEnumerable(Of Object)) As LogicalVector - If REngine Is Nothing Then - Throw New ArgumentNullException() - End If - If Not REngine.IsRunning Then - Throw New ArgumentException() - End If - Return New LogicalVector(REngine, vector.CT(Of Boolean)) - End Function - - ''' - ''' Creates a new NumericVector with the specified values. - ''' - ''' The values. - ''' The new vector. - - - Public Function CreateNumericVector(vector As IEnumerable(Of Object)) As NumericVector - If REngine Is Nothing Then - Throw New ArgumentNullException() - End If - If Not REngine.IsRunning Then - Throw New ArgumentException() - End If - Return New NumericVector(REngine, vector.CT(Of Double)) - End Function - - ''' - ''' Creates a new RawVector with the specified values. - ''' - ''' The values. - ''' The new vector. - - - Public Function CreateRawVector(vector As IEnumerable(Of Object)) As RawVector - If REngine Is Nothing Then - Throw New ArgumentNullException() - End If - If Not REngine.IsRunning Then - Throw New ArgumentException() - End If - Return New RawVector(REngine, vector.CT(Of Byte)) - End Function - - ''' - ''' Create a vector with a single value - ''' - ''' The value - ''' The new vector. - - - Public Function CreateCharacter(value As String) As CharacterVector - Return CreateCharacterVector(New String() {value}) - End Function - - ''' - ''' Create a vector with a single value - ''' - ''' The value - ''' The new vector. - - - Public Function CreateComplex(value As Complex) As ComplexVector - Return CreateComplexVector(New System.Numerics.Complex() {value}) - End Function - - ''' - ''' Create a vector with a single value - ''' - ''' The value - ''' The new vector. - - - Public Function CreateLogical(value As Boolean) As LogicalVector - Return CreateLogicalVector(New Boolean() {value}) - End Function - - ''' - ''' Create a vector with a single value - ''' - ''' The value - ''' The new vector. - - - Public Function CreateNumeric(value As Double) As NumericVector - Return CreateNumericVector(New Double() {value}) - End Function - - ''' - ''' Create an integer vector with a single value - ''' - ''' The value - ''' The new vector. - - - Public Function CreateInteger(value As Integer) As IntegerVector - Return CreateIntegerVector(New Integer() {value}) - End Function - - ''' - ''' Create a vector with a single value - ''' - ''' The value - ''' The new vector. - - - Public Function CreateRaw(value As Byte) As RawVector - Return CreateRawVector(New Byte() {value}) - End Function - - ''' - ''' Creates a new empty CharacterMatrix with the specified size. - ''' - ''' The row size. - ''' The column size. - ''' The new matrix. - - Public Function CreateCharacterMatrix(rowCount As Integer, columnCount As Integer) As CharacterMatrix - If REngine Is Nothing Then - Throw New ArgumentNullException() - End If - If Not REngine.IsRunning Then - Throw New ArgumentException() - End If - Return New CharacterMatrix(REngine, rowCount, columnCount) - End Function - - ''' - ''' Creates a new empty ComplexMatrix with the specified size. - ''' - ''' The row size. - ''' The column size. - ''' The new matrix. - - Public Function CreateComplexMatrix(rowCount As Integer, columnCount As Integer) As ComplexMatrix - If REngine Is Nothing Then - Throw New ArgumentNullException() - End If - If Not REngine.IsRunning Then - Throw New ArgumentException() - End If - Return New ComplexMatrix(REngine, rowCount, columnCount) - End Function - - ''' - ''' Creates a new empty IntegerMatrix with the specified size. - ''' - ''' The row size. - ''' The column size. - ''' The new matrix. - - Public Function CreateIntegerMatrix(rowCount As Integer, columnCount As Integer) As IntegerMatrix - If REngine Is Nothing Then - Throw New ArgumentNullException() - End If - If Not REngine.IsRunning Then - Throw New ArgumentException() - End If - Return New IntegerMatrix(REngine, rowCount, columnCount) - End Function - - ''' - ''' Creates a new empty LogicalMatrix with the specified size. - ''' - ''' The row size. - ''' The column size. - ''' The new matrix. - - Public Function CreateLogicalMatrix(rowCount As Integer, columnCount As Integer) As LogicalMatrix - If REngine Is Nothing Then - Throw New ArgumentNullException() - End If - If Not REngine.IsRunning Then - Throw New ArgumentException() - End If - Return New LogicalMatrix(REngine, rowCount, columnCount) - End Function - - ''' - ''' Creates a new empty NumericMatrix with the specified size. - ''' - ''' The row size. - ''' The column size. - ''' The new matrix. - - Public Function CreateNumericMatrix(rowCount As Integer, columnCount As Integer) As NumericMatrix - If REngine Is Nothing Then - Throw New ArgumentNullException() - End If - If Not REngine.IsRunning Then - Throw New ArgumentException() - End If - Return New NumericMatrix(REngine, rowCount, columnCount) - End Function - - ''' - ''' Creates a new empty RawMatrix with the specified size. - ''' - ''' The row size. - ''' The column size. - ''' The new matrix. - - Public Function CreateRawMatrix(rowCount As Integer, columnCount As Integer) As RawMatrix - If REngine Is Nothing Then - Throw New ArgumentNullException() - End If - If Not REngine.IsRunning Then - Throw New ArgumentException() - End If - Return New RawMatrix(REngine, rowCount, columnCount) - End Function - - ''' - ''' Creates a new CharacterMatrix with the specified values. - ''' - ''' The values. - ''' The new matrix. - - - Public Function CreateCharacterMatrix(matrix As Generic.IEnumerable(Of Generic.IEnumerable(Of Object))) As CharacterMatrix - If REngine Is Nothing Then - Throw New ArgumentNullException() - End If - If Not REngine.IsRunning Then - Throw New ArgumentException() - End If - Return New CharacterMatrix(REngine, matrix.CT(Of String()).VectorCollectionToMatrix) - End Function - - ''' - ''' Creates a new ComplexMatrix with the specified values. - ''' - ''' The values. - ''' The new matrix. - - - Public Function CreateComplexMatrix(matrix As Generic.IEnumerable(Of Generic.IEnumerable(Of Object))) As ComplexMatrix - If REngine Is Nothing Then - Throw New ArgumentNullException() - End If - If Not REngine.IsRunning Then - Throw New ArgumentException() - End If - Return New ComplexMatrix(REngine, matrix.CT(Of Complex()).VectorCollectionToMatrix) - End Function - - ''' - ''' Creates a new IntegerMatrix with the specified values. - ''' - ''' The values. - ''' The new matrix. - - - Public Function CreateIntegerMatrix(matrix As Generic.IEnumerable(Of Generic.IEnumerable(Of Object))) As IntegerMatrix - If REngine Is Nothing Then - Throw New ArgumentNullException() - End If - If Not REngine.IsRunning Then - Throw New ArgumentException() - End If - Return New IntegerMatrix(REngine, matrix.CT(Of Integer()).VectorCollectionToMatrix) - End Function - - ''' - ''' Creates a new LogicalMatrix with the specified values. - ''' - ''' The values. - ''' The new matrix. - - - Public Function CreateLogicalMatrix(matrix As Generic.IEnumerable(Of Generic.IEnumerable(Of Object))) As LogicalMatrix - If REngine Is Nothing Then - Throw New ArgumentNullException() - End If - If Not REngine.IsRunning Then - Throw New ArgumentException() - End If - Return New LogicalMatrix(REngine, matrix.CT(Of Boolean()).VectorCollectionToMatrix) - End Function - - ''' - ''' Creates a new NumericMatrix with the specified values. - ''' - ''' The values. - ''' The new matrix. - - - Public Function CreateNumericMatrix(matrix As Generic.IEnumerable(Of Generic.IEnumerable(Of Object))) As NumericMatrix - If REngine Is Nothing Then - Throw New ArgumentNullException() - End If - If Not REngine.IsRunning Then - Throw New ArgumentException() - End If - Return New NumericMatrix(REngine, matrix.CT(Of Double()).VectorCollectionToMatrix) - End Function - - ''' - ''' Creates a new RawMatrix with the specified values. - ''' - ''' The values. - ''' The new matrix. - - - Public Function CreateRawMatrix(matrix As Generic.IEnumerable(Of Generic.IEnumerable(Of Object))) As RawMatrix - If REngine Is Nothing Then - Throw New ArgumentNullException() - End If - If Not REngine.IsRunning Then - Throw New ArgumentException() - End If - Return New RawMatrix(REngine, matrix.CT(Of Byte()).VectorCollectionToMatrix) - End Function - - ''' - ''' Create an R data frame from managed arrays and objects. - ''' - ''' The columns with the values for the data frame. These must be array of supported types (double, string, bool, integer, byte) - ''' Column names. default: null. - ''' Row names. Default null. - ''' Check rows. See data.frame R documentation - ''' See data.frame R documentation - ''' Should columns of strings be considered as factors (categories). See data.frame R documentation - ''' - - - Public Function CreateDataFrame(columns As Generic.IEnumerable(Of Object), - Optional columnNames As String() = Nothing, - Optional rowNames As String() = Nothing, - Optional checkRows As Boolean = False, - Optional checkNames As Boolean = True, - Optional stringsAsFactors As Boolean = True) As DataFrame - - Dim df = REngine.GetSymbol("data.frame").AsFunction() - Dim colVectors As SymbolicExpression() = ToVectors((From item In columns Select CType(item, IEnumerable)).ToArray) - Dim namedColArgs As Tuple(Of String, SymbolicExpression)() = CreateNamedArgs(colVectors, columnNames) - Dim args = New List(Of Tuple(Of String, SymbolicExpression))(namedColArgs) - If rowNames IsNot Nothing Then - args.Add(Tuple.Create("row.names", DirectCast(REngine.CreateCharacterVector(rowNames), SymbolicExpression))) - End If - args.Add(Tuple.Create("check.rows", DirectCast(REngine.CreateLogical(checkRows), SymbolicExpression))) - args.Add(Tuple.Create("check.names", DirectCast(REngine.CreateLogical(checkNames), SymbolicExpression))) - args.Add(Tuple.Create("stringsAsFactors", DirectCast(REngine.CreateLogical(stringsAsFactors), SymbolicExpression))) - Dim result = df.InvokeNamed(args.ToArray()).AsDataFrame() - Return result - End Function - - Private Function CreateNamedArgs(colVectors As SymbolicExpression(), columnNames As String()) As Tuple(Of String, SymbolicExpression)() - If columnNames IsNot Nothing AndAlso colVectors.Length <> columnNames.Length Then - Throw New ArgumentException("columnNames", "when not null, the number of column names must match the number of SEXP") - End If - Dim args = New List(Of Tuple(Of String, SymbolicExpression))() - For i As Integer = 0 To colVectors.Length - 1 - args.Add(Tuple.Create(If(columnNames IsNot Nothing, columnNames(i), ""), colVectors(i))) - Next - Return args.ToArray() - End Function - - Friend Function ToVectors(columns As IEnumerable()) As SymbolicExpression() - Return Array.ConvertAll(columns, Function(x) ToVector(x)) - End Function - - Friend Function ToVector(values As IEnumerable) As SymbolicExpression - If values Is Nothing Then - Throw New ArgumentNullException("values", "values to transform to an R vector must not be null") - End If - Dim ints As IEnumerable(Of Integer) = TryCast(values, IEnumerable(Of Integer)) - Dim chars As IEnumerable(Of String) = TryCast(values, IEnumerable(Of String)) - Dim cplxs As IEnumerable(Of Complex) = TryCast(values, IEnumerable(Of Complex)) - Dim logicals As IEnumerable(Of Boolean) = TryCast(values, IEnumerable(Of Boolean)) - Dim nums As IEnumerable(Of Double) = TryCast(values, IEnumerable(Of Double)) - Dim raws As IEnumerable(Of Byte) = TryCast(values, IEnumerable(Of Byte)) - Dim sexpVec As SymbolicExpression = TryCast(values, SymbolicExpression) - - If sexpVec IsNot Nothing AndAlso sexpVec.IsVector() Then - Return sexpVec - End If - If ints IsNot Nothing Then - Return REngine.CreateIntegerVector(ints) - End If - If chars IsNot Nothing Then - Return REngine.CreateCharacterVector(chars) - End If - If cplxs IsNot Nothing Then - Return REngine.CreateComplexVector(cplxs) - End If - If logicals IsNot Nothing Then - Return REngine.CreateLogicalVector(logicals) - End If - If nums IsNot Nothing Then - Return REngine.CreateNumericVector(nums) - End If - If raws IsNot Nothing Then - Return REngine.CreateRawVector(raws) - End If - Throw New NotSupportedException(String.Format("Cannot convert type {0} to an R vector", values.[GetType]())) - - End Function -End Module - diff --git a/RDotNET.Extensions.ShellScriptAPI/My Project/Application.Designer.vb b/RDotNET.Extensions.ShellScriptAPI/My Project/Application.Designer.vb deleted file mode 100644 index 88dd01c78..000000000 --- a/RDotNET.Extensions.ShellScriptAPI/My Project/Application.Designer.vb +++ /dev/null @@ -1,13 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - diff --git a/RDotNET.Extensions.ShellScriptAPI/My Project/Application.myapp b/RDotNET.Extensions.ShellScriptAPI/My Project/Application.myapp deleted file mode 100644 index 758895def..000000000 --- a/RDotNET.Extensions.ShellScriptAPI/My Project/Application.myapp +++ /dev/null @@ -1,10 +0,0 @@ - - - false - false - 0 - true - 0 - 1 - true - diff --git a/RDotNET.Extensions.ShellScriptAPI/My Project/AssemblyInfo.vb b/RDotNET.Extensions.ShellScriptAPI/My Project/AssemblyInfo.vb deleted file mode 100644 index 4eed3cdf1..000000000 --- a/RDotNET.Extensions.ShellScriptAPI/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,35 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - -' General Information about an assembly is controlled through the following -' set of attributes. Change these attribute values to modify the information -' associated with an assembly. - -' Review the values of the assembly attributes - - - - - - - - - - -'The following GUID is for the ID of the typelib if this project is exposed to COM - - -' Version information for an assembly consists of the following four values: -' -' Major Version -' Minor Version -' Build Number -' Revision -' -' You can specify all the values or you can default the Build and Revision Numbers -' by using the '*' as shown below: -' - - - diff --git a/RDotNET.Extensions.ShellScriptAPI/My Project/Resources.Designer.vb b/RDotNET.Extensions.ShellScriptAPI/My Project/Resources.Designer.vb deleted file mode 100644 index 15af04f2f..000000000 --- a/RDotNET.Extensions.ShellScriptAPI/My Project/Resources.Designer.vb +++ /dev/null @@ -1,63 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - -Imports System - -Namespace My.Resources - - 'This class was auto-generated by the StronglyTypedResourceBuilder - 'class via a tool like ResGen or Visual Studio. - 'To add or remove a member, edit your .ResX file then rerun ResGen - 'with the /str option, or rebuild your VS project. - ''' - ''' A strongly-typed resource class, for looking up localized strings, etc. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Returns the cached ResourceManager instance used by this class. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("RDotNET.Extensions.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Overrides the current thread's CurrentUICulture property for all - ''' resource lookups using this strongly typed resource class. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set - resourceCulture = value - End Set - End Property - End Module -End Namespace diff --git a/RDotNET.Extensions.ShellScriptAPI/My Project/Resources.resx b/RDotNET.Extensions.ShellScriptAPI/My Project/Resources.resx deleted file mode 100644 index af7dbebba..000000000 --- a/RDotNET.Extensions.ShellScriptAPI/My Project/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/RDotNET.Extensions.ShellScriptAPI/My Project/Settings.Designer.vb b/RDotNET.Extensions.ShellScriptAPI/My Project/Settings.Designer.vb deleted file mode 100644 index c81cda0ce..000000000 --- a/RDotNET.Extensions.ShellScriptAPI/My Project/Settings.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) - -#Region "My.Settings Auto-Save Functionality" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.RDotNET.Extensions.My.MySettings - Get - Return Global.RDotNET.Extensions.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/RDotNET.Extensions.ShellScriptAPI/My Project/Settings.settings b/RDotNET.Extensions.ShellScriptAPI/My Project/Settings.settings deleted file mode 100644 index 85b890b3c..000000000 --- a/RDotNET.Extensions.ShellScriptAPI/My Project/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/RDotNET.Extensions.ShellScriptAPI/RDotNET.Extensions.ShellScriptAPI.sln b/RDotNET.Extensions.ShellScriptAPI/RDotNET.Extensions.ShellScriptAPI.sln deleted file mode 100644 index 7fe351394..000000000 --- a/RDotNET.Extensions.ShellScriptAPI/RDotNET.Extensions.ShellScriptAPI.sln +++ /dev/null @@ -1,28 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.25008.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "RDotNET.Extensions", "RDotNET.Extensions.vbproj", "{2A928B27-D8CE-4629-9711-0E792C94A85E}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|x64 = Debug|x64 - Release|Any CPU = Release|Any CPU - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {2A928B27-D8CE-4629-9711-0E792C94A85E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2A928B27-D8CE-4629-9711-0E792C94A85E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2A928B27-D8CE-4629-9711-0E792C94A85E}.Debug|x64.ActiveCfg = Debug|x64 - {2A928B27-D8CE-4629-9711-0E792C94A85E}.Debug|x64.Build.0 = Debug|x64 - {2A928B27-D8CE-4629-9711-0E792C94A85E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2A928B27-D8CE-4629-9711-0E792C94A85E}.Release|Any CPU.Build.0 = Release|Any CPU - {2A928B27-D8CE-4629-9711-0E792C94A85E}.Release|x64.ActiveCfg = Release|x64 - {2A928B27-D8CE-4629-9711-0E792C94A85E}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/RDotNET.Extensions.ShellScriptAPI/ShoalShell.Plugins.RDotNET.vbproj b/RDotNET.Extensions.ShellScriptAPI/ShoalShell.Plugins.RDotNET.vbproj deleted file mode 100644 index ad122039a..000000000 --- a/RDotNET.Extensions.ShellScriptAPI/ShoalShell.Plugins.RDotNET.vbproj +++ /dev/null @@ -1,232 +0,0 @@ - - - - - Debug - AnyCPU - {2A928B27-D8CE-4629-9711-0E792C94A85E} - Library - RDotNET.Extensions - RDotNET.Extensions - 512 - Windows - v4.6 - - - - true - full - true - true - ..\Shoal.v2\Console\bin\Debug\ - RDotNET.Extensions.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - pdbonly - false - true - true - ..\..\GCModeller\GCModeller\ - RDotNET.Extensions.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - true - true - true - bin\x64\Debug\ - RDotNET.Extensions.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - full - x64 - MinimumRecommendedRules.ruleset - - - true - ..\..\GCModeller\GCModeller-x64\ - RDotNET.Extensions.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x64 - MinimumRecommendedRules.ruleset - - - true - bin\Publish\ - RDotNET.Extensions.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - AnyCPU - MinimumRecommendedRules.ruleset - - - true - bin\x64\Publish\ - RDotNET.Extensions.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x64 - MinimumRecommendedRules.ruleset - - - true - true - true - bin\x86\Debug\ - RDotNET.Extensions.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - full - x86 - MinimumRecommendedRules.ruleset - - - true - bin\x86\Release\ - RDotNET.Extensions.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x86 - MinimumRecommendedRules.ruleset - - - true - bin\x86\Publish\ - RDotNET.Extensions.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x86 - MinimumRecommendedRules.ruleset - - - true - bin\docs\ - RDotNET.Extensions.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - AnyCPU - MinimumRecommendedRules.ruleset - - - true - bin\x64\docs\ - RDotNET.Extensions.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x64 - MinimumRecommendedRules.ruleset - - - true - bin\x86\docs\ - RDotNET.Extensions.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x86 - MinimumRecommendedRules.ruleset - - - - - - - - - - - - - - - - - - - - - - - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - {ab6e71b0-1be2-4418-ab4b-91d5554cf5a1} - RDotNet.Extensions.VisualBasic - - - {21c35138-455b-4833-9756-b2629f972a22} - RDotNet - - - {fecce1fd-e1d4-49e3-a668-60bb5e7aed99} - +Microsoft.VisualBasic.Architecture.Framework - - - {a7cb16ff-75c6-4746-8449-86c121d723c4} - ShoalShell_Core.v2 - - - - - - \ No newline at end of file diff --git a/README.md b/README.md deleted file mode 100644 index 6444be8eb..000000000 --- a/README.md +++ /dev/null @@ -1,22 +0,0 @@ -# Shoal -Shoal Shell Language for GCModeller Virtual Cell Programming - -# What is Shoal -Shoal Shell is a kind of commandline-like scripting language for the programming in the GCModeller, it is written by master xie using Microsoft VisualBasic language. As one of the important user interfaces in the GCModeller, Shoal scripting can makes the bioinformatcis analysis in the GCModeller more easily and automation. The GCModeller API library for shoal language was documented at [gcmodeller.org/library](http://gcmodeller.org/library/index.html) - -The IDE for shoal language development was under progressed. - -# Developer Contacts -* Master developer: Mr. Xie() -* Documents maintenance by Miss asuka() - -# Developer NOTE -Due to the reason of modular development in the GCModeller team, some of the plugin included in this project depend on other external repository in github: - -* General Application Framework of VisualBasic -[VisualBasic_AppFramework (https://github.com/xieguigang/VisualBasic_AppFramework)](https://github.com/xieguigang/VisualBasic_AppFramework) - -* Utility tools -[Reference_SharedLib (https://github.com/xieguigang/Reference_SharedLib)](https://github.com/xieguigang/Reference_SharedLib) - -Those repository should downloaded at the same time with this repository. \ No newline at end of file diff --git a/Shoal.Testing/Debugger.vb b/Shoal.Testing/Debugger.vb deleted file mode 100644 index 1e4613107..000000000 --- a/Shoal.Testing/Debugger.vb +++ /dev/null @@ -1,25 +0,0 @@ -Public Module Debugger - - Sub Main() - - Dim Script As String = -"# ::表示命名空间和函数之间的分隔,当没有导入命名空间的时候需要使用 命名空间::函数 的引用方式来调用函数 -var <- namespace::function arg1, arg2, arg3 #使用逗号的时候变量的排列顺序必须要和函数的定义一致 -var = $var -> namespace::function param1 arg1 param2 arg2 /param3 #直接使用空格来分隔的时候顺序的位置可以不一致,并且可以使用开关来表示Boolean类型的参数值为真 -Call $var -> namespace::function param1 arg1 /param2 #进行方法调用必须要使用Call开头 - -Dim variable = {expression} As type #变量variable的类型固定为Type类型,变量的定义使用Dim开始 -Dim variable = {expression} #变量类型为Object类型 -Dim variable = {expression} As object #这一句变量的申明语句和上一个语句的含义相同 - -For i in => {Delegate(i)} -Do While => {Delegate(expression)} -If => {Delegate(expression)} -ElseIf => {Delegate(expression)} -Else => {Delegate(expression)}" - - Dim ScriptObject = Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.ObjectModels.ScriptModel.ScriptParser(Script, "/home/xieguigang/test.sh") - - End Sub - -End Module diff --git a/Shoal.Testing/My Project/Application.Designer.vb b/Shoal.Testing/My Project/Application.Designer.vb deleted file mode 100644 index 88dd01c78..000000000 --- a/Shoal.Testing/My Project/Application.Designer.vb +++ /dev/null @@ -1,13 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - diff --git a/Shoal.Testing/My Project/Resources.Designer.vb b/Shoal.Testing/My Project/Resources.Designer.vb deleted file mode 100644 index c7a48c64b..000000000 --- a/Shoal.Testing/My Project/Resources.Designer.vb +++ /dev/null @@ -1,63 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - -Imports System - -Namespace My.Resources - - 'This class was auto-generated by the StronglyTypedResourceBuilder - 'class via a tool like ResGen or Visual Studio. - 'To add or remove a member, edit your .ResX file then rerun ResGen - 'with the /str option, or rebuild your VS project. - ''' - ''' A strongly-typed resource class, for looking up localized strings, etc. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Returns the cached ResourceManager instance used by this class. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Shoal.Testing.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Overrides the current thread's CurrentUICulture property for all - ''' resource lookups using this strongly typed resource class. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set - resourceCulture = value - End Set - End Property - End Module -End Namespace diff --git a/Shoal.Testing/My Project/Resources.resx b/Shoal.Testing/My Project/Resources.resx deleted file mode 100644 index af7dbebba..000000000 --- a/Shoal.Testing/My Project/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Shoal.Testing/My Project/Settings.Designer.vb b/Shoal.Testing/My Project/Settings.Designer.vb deleted file mode 100644 index 2300e56a4..000000000 --- a/Shoal.Testing/My Project/Settings.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) - -#Region "My.Settings Auto-Save Functionality" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.Shoal.Testing.My.MySettings - Get - Return Global.Shoal.Testing.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/Shoal.Testing/My Project/Settings.settings b/Shoal.Testing/My Project/Settings.settings deleted file mode 100644 index 85b890b3c..000000000 --- a/Shoal.Testing/My Project/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/Shoal.Testing/Shoal.Testing.vbproj b/Shoal.Testing/Shoal.Testing.vbproj deleted file mode 100644 index 2d93bdfa3..000000000 --- a/Shoal.Testing/Shoal.Testing.vbproj +++ /dev/null @@ -1,127 +0,0 @@ - - - - - Debug - AnyCPU - {9E5436E9-9FA4-47B9-9BDE-F3621622F4B2} - Exe - Shoal.Testing.Debugger - Shoal.Testing - Shoal.Testing - 512 - Console - v4.6 - - - - AnyCPU - true - full - true - true - bin\Debug\ - Shoal.Testing.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - AnyCPU - pdbonly - false - true - true - bin\Release\ - Shoal.Testing.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - false - - - On - - - Binary - - - Off - - - On - - - - - - - - - - - - - - - - - - - - - - - - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - - {0be7fd44-d724-49f6-aec0-06c80b4f5527} - ShoalShell_Core - - - {d71e0d55-da94-4b18-b204-252d532ee8ec} - Shoal - - - - - \ No newline at end of file diff --git a/Shoal.Testing/TestingProgram.vb b/Shoal.Testing/TestingProgram.vb deleted file mode 100644 index acb723f58..000000000 --- a/Shoal.Testing/TestingProgram.vb +++ /dev/null @@ -1,240 +0,0 @@ -Imports System.Dynamic -Imports NODE = System.Collections.Generic.KeyValuePair(Of Integer, Char) - -Module TestingProgram - - Sub Main() - - Dim normal_test = "Call {set Z [test1 ui {FALSE}] $var new_value } <- OK!!! -> sum {Test.Generate var1 1234} ""a b {c} d( e f g"" var2 {(double) 33,44,55,66} varXX ""{}{}{}}{}}{ {}{ {}{ {}}}[][][[[[[]]"" var3 [(string()) 1,2,3,4,5]" - normal_test = "1 = [2 ef {abc} gg] + 2" - normal_test = "test_invoke {imports lalal#alalla} #Imports the namespace example here" - Dim expr = Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.ObjectModels.SyntaxParser.Parsing(normal_test) - - Dim script = "imports lalalalalla #Imports the namespace example here -# this is the comments - -library test/path/value -include {test/path value value2 var s} #all of the elements can be dynamics - -goto {44 * $var2} when {testddd sdfsd 1234} # the foto tag can be dynamics, maybe the everything in the script elements can be dynamics! - -imports gcmodeller.compiler #Imports the namespace example here - -savedfile <- {drawing from ""E:\Desktop\xcb_vcell\xcb_model\trunk\xcb.xml""} - - chipdata <- "" E\Desktop\xcb_vcell\chipData_analysis\r_script\xcbChip.csv"" - -metacyc <- E:\BLAST\db\MetaCyc\Xanthomonas_campestris_pv._campestris_str._8004\17.0\data -regprecise <- E:\Desktop\xcb_vcell\Regprecise_TranscriptionFactors_By_Genome.xml -# transcript_regulation <- ""E\Desktop\xcb_vcell\xcb_metabolism_regulations.csv"" - - transcript_regulation <- ""E\Desktop\xcb_vcell\Result\Metabolism.MEME_Filted_0.65\metacyc.pathways_450_0.65.csv"" -44: #just for some test! - mist2 <- E:\Desktop\xcb_vcell\xcb_mist2.xml -mist2_strp_xml <- ""E\Desktop\xcb_vcell\xcb_mist2_strp.xml"" - string-db <- ""E\Desktop\xcb_vcell\xcb_string.xml"" - - ptt_dir <- E:\Desktop\xcb_vcell\Xanthomonas_campestris_8004_uid15 - -myva_cog <- E:\Desktop\xcb_vcell\xcb_myva_COG.csv -door <- ""E:\Desktop\xcb_vcell\xcb_door.opr"" - - array <- array.new ""$myva_cog,$ptt_dir,$door,$chipdata"" - argvs <- string.format expression "" -compile -myva_cog "" {0}"" -ptt_dir ""{1}"" -door ""{2}"" -chipdata ""{3}"""" argvs $array - -$argvs - -#compiler <- gcmodeller.compiler -precompile metacyc $metacyc regprecise_regulator_xml $regprecise transcript_regulation $transcript_regulation mist2 $mist2 mist2_strp_xml $mist2_strp_xml stringdb $string-db -compiled_model <- invoke.compile compiler $compiler argvs $argvs -Call write.cellsystem_model model $compiled_model filepath $savedfile - -argvs <- array.new $savedfile -conf <- string.format expression {0}.inf argvs $argvs - -call gcmodeller.engine_kernel default_configuration $conf" - - - script = "imports {system.extensions} -dd <- basename test.dll -call {basename c:\dddd\fhghthddd.exe} -> cowsay ""-type dead"" --yes" - - - Dim scriptnfggh = Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.ObjectModels.ScriptModel.ScriptParser(script, "") - Dim shoalshellengine As New Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Objects.ShellScript - Dim scriptmodel = New Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Objects.ObjectModels.ExecuteModel(scriptnfggh, shoalshellengine) - - Call scriptmodel.Execute() - - Dim debugger As Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Debugging.DebuggerListener = New Scripting.ShoalShell.Runtime.Debugging.DebuggerListener("./Shoal.exe", ".\test-shoal-debugger\") - - - Call debugger.PushScript("call ""Hello world"" -> cowsay") - Call debugger.PushScript("sfhsdkjfhsdjklfjksdf") - Call debugger.PushScript("library ""../../../../..\ShoalShell\bin\Debug\ShoalShell.Plugins.Win32API_v2.0_22.0.7601.121__ed1d5d0cd8c60cc9a.dll""" & vbCrLf & - "imports winmm.dll" & vbCrLf & - "filename <- ""F:\Music\NOKIA.wav""" & vbCrLf & -"call winmm.dll playsounda lpszname $filename hmodule 0 dwflags &SND_FILENAME") - - ' Pause(")") - - - Console.ReadLine() - - Call debugger.PushScript("?") - - Console.ReadLine() - ' debugger.Free() - - - End - - Dim test_expression As String = "$($(test2 pp $rt) -> test_func par1 $ffjhg par2 $dee) -> test3 p3 $($(test5 de) -> test4 ppp $gr)" - - Dim hhh = evalue(test_expression) - - ' Dim ex = Microsoft.VisualBasic.Shoal.Runtime.Objects.ObjectModels.ScriptCodeLine.InternalParser(test_expression) - - ' Call Microsoft.VisualBasic.Parallel.LQuerySchedule.PBS_TEST() - - ' Pause() - - 'Dim Shl As Object = Microsoft.VisualBasic.Shoal.Runtime.Objects.Dynamics.CreateDefaultEnvironment("E:\GCModeller\CompiledAssembly") - - ''Call Shl.Evaluate("dd <- 1234") - ''Dim Msg As String = Shl.dd - - ''Call Console.WriteLine("Dynamic variable dd is {0}", Msg) - - ''Call Shl.evaluate("edf <- 33") - - - 'Call Shl.imports("assemblyfile.io") - - 'Dim fasta = Shl.read.fasta("E:\BLAST\db\xcb_prot.fsa") - - 'Call Console.WriteLine(fasta.ToString) - 'Call Console.Read() - End Sub - - Function evalue(expression As String) As Expression - Dim OPTR As New Stack(Of NODE) - Dim model = New Expression With {.Tokens = New List(Of Expression)} - - Call OPTR.Push(New NODE(-1, "("c)) - - For i As Integer = 0 To expression.Length - 1 - Dim ch = expression(i) - - Call Console.Write(ch) - - If ch <> "("c AndAlso ch <> ")"c Then - Continue For - End If - - '下面的过程之中ch变量只有"("或者")"这两个值 - If OPTR.Count = 0 Then - Exit For - End If - - Dim c = OPTR.Peek - Dim p = InternalCompare(c.Value, ch) - - If p < 0 Then - OPTR.Push(New NODE(i, ch)) - i += 1 - Call model.Tokens.Add(evalue(expression, i, OPTR)) - ElseIf p = 0 Then - c = OPTR.Pop - Dim simpletoken = Mid(expression, c.Key + 2, i - c.Key - 1) - Call model.Add(New Expression With {.TokenExpression = simpletoken}) - End If - Next - - Return model - End Function - - Function InternalCompare(op1 As Char, op2 As Char) As Integer - If op1 = "("c Then - If op2 = "("c Then - Return -1 - Else - Return 0 - End If - Else - If op2 = "("c Then - Return -1 - Else - Return 1 - End If - End If - End Function - - Function evalue(expression As String, ByRef start As Integer, ByRef optr As Stack(Of NODE)) As Expression - Dim model = New Expression With {.Tokens = New List(Of Expression)} - - For i As Integer = start To expression.Length - 1 - Dim ch = expression(i) - - Call Console.Write(ch) - - If ch <> "("c AndAlso ch <> ")"c Then - Continue For - End If - - '下面的过程之中ch变量只有"("或者")"这两个值 - Dim c = optr.Peek - If c.Key = -1 Then - '到站定了 - start = i - Return model - End If - Dim p = InternalCompare(c.Value, ch) - - If p < 0 Then - optr.Push(New NODE(i, ch)) - i += 1 - Call model.Tokens.Add(evalue(expression, i, optr)) - ElseIf p = 0 Then - c = optr.Pop - Dim simpletoken = Mid(expression, c.Key + 2, i - c.Key - 1) - Call model.Add(New Expression With {.TokenExpression = simpletoken}) - End If - Next - - Return model - End Function - - ''' - ''' 一个表达式 - ''' - ''' - Public Structure Expression - - ''' - ''' 一个表达式的最简单的一个词元可能是由其他的表达式构成的 - ''' - ''' - ''' - ''' - Public Property Tokens As List(Of Expression) - ''' - ''' 当前的词元,假若本表达式对象是最简单的表达式的话,则本属性即为本表达式的值 - ''' - ''' - ''' - ''' - Public Property TokenExpression As String - - Public Overrides Function ToString() As String - If Not String.IsNullOrEmpty(TokenExpression) Then - Return TokenExpression - Else - Return "$[ " & String.Join(" ", (From item In Tokens Let s As String = item.ToString Select s).ToArray) & " ]" - End If - End Function - - Public Sub Add(ExpressionToken As Expression) - Call Tokens.Add(ExpressionToken) - End Sub - End Structure -End Module diff --git a/Shoal.VisualStudio/Classification/ClassificationFormat.vb b/Shoal.VisualStudio/Classification/ClassificationFormat.vb deleted file mode 100644 index 2ef926e6f..000000000 --- a/Shoal.VisualStudio/Classification/ClassificationFormat.vb +++ /dev/null @@ -1,78 +0,0 @@ -Imports System.ComponentModel.Composition -Imports Microsoft.VisualStudio.Text.Classification -Imports Microsoft.VisualStudio.Utilities - -Namespace OokLanguage - - ' 在这里定义语法高亮 - -#Region "Format definitions" - - ''' - ''' Defines an editor format for the OrdinaryClassification type that has a purple background - ''' and is underlined. - ''' - - Friend NotInheritable Class OokE - Inherits ClassificationFormatDefinition - - ''' - ''' Defines the visual format for the "ordinary" classification type - ''' - Public Sub New() - Me.DisplayName = "ook!" 'human readable version of the name - Me.ForegroundColor = Colors.BlueViolet - End Sub - - End Class - - ''' - ''' Defines an editor format for the OrdinaryClassification type that has a purple background - ''' and is underlined. - ''' - - Friend NotInheritable Class OokQ - Inherits ClassificationFormatDefinition - - ''' - ''' Defines the visual format for the "ordinary" classification type - ''' - Public Sub New() - Me.DisplayName = "ook?" 'human readable version of the name - Me.ForegroundColor = Colors.Green - End Sub - - End Class - - ''' - ''' Defines an editor format for the OrdinaryClassification type that has a purple background - ''' and is underlined. - ''' - - Friend NotInheritable Class OokP - Inherits ClassificationFormatDefinition - - ''' - ''' Defines the visual format for the "ook" classification type - ''' - Public Sub New() - Me.DisplayName = "ook." 'human readable version of the name - Me.ForegroundColor = Colors.Orange - End Sub - - End Class -#End Region - -End Namespace diff --git a/Shoal.VisualStudio/Classification/ClassificationType.vb b/Shoal.VisualStudio/Classification/ClassificationType.vb deleted file mode 100644 index df3335c06..000000000 --- a/Shoal.VisualStudio/Classification/ClassificationType.vb +++ /dev/null @@ -1,37 +0,0 @@ -Imports System.ComponentModel.Composition -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.Parser.Tokens -Imports Microsoft.VisualStudio.Text.Classification -Imports Microsoft.VisualStudio.Utilities - -Namespace OokLanguage - - Module OrdinaryClassificationDefinition - - ''' - ''' Defines the "ordinary" classification type. - ''' - - Public CollectionElement As ClassificationTypeDefinition = Nothing - - ''' - ''' Defines the "ordinary" classification type. - ''' - - Public EntryPoint As ClassificationTypeDefinition = Nothing - - ''' - ''' Defines the "ordinary" classification type. - ''' - - Public InternalExpression As ClassificationTypeDefinition = Nothing - - - Public LeftAssignedVariable As ClassificationTypeDefinition = Nothing - - - Public [Operator] As ClassificationTypeDefinition = Nothing - - - Public ParameterName As ClassificationTypeDefinition = Nothing - End Module -End Namespace diff --git a/Shoal.VisualStudio/Classification/OokClassifier.vb b/Shoal.VisualStudio/Classification/OokClassifier.vb deleted file mode 100644 index bcbe91f0b..000000000 --- a/Shoal.VisualStudio/Classification/OokClassifier.vb +++ /dev/null @@ -1,77 +0,0 @@ -' Copyright (c) Microsoft Corporation -' All rights reserved - -Imports System -Imports System.Collections.Generic -Imports System.ComponentModel.Composition -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.LDM.Expressions -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.Parser.Tokens -Imports Microsoft.VisualStudio.Text -Imports Microsoft.VisualStudio.Text.Classification -Imports Microsoft.VisualStudio.Text.Editor -Imports Microsoft.VisualStudio.Text.Tagging -Imports Microsoft.VisualStudio.Utilities - -Namespace OokLanguage - - - Friend NotInheritable Class OokClassifierProvider - Implements ITaggerProvider - - - Friend Shared OokContentType As ContentTypeDefinition = Nothing - - - Friend Shared OokFileType As FileExtensionToContentTypeDefinition = Nothing - - - Friend ClassificationTypeRegistry As IClassificationTypeRegistryService = Nothing - - - Friend aggregatorFactory As IBufferTagAggregatorFactoryService = Nothing - - Public Function CreateTagger(Of T As ITag)(buffer As ITextBuffer) As ITagger(Of T) Implements ITaggerProvider.CreateTagger - Dim ookTagAggregator As ITagAggregator(Of OokTokenTag) = aggregatorFactory.CreateTagAggregator(Of OokTokenTag)(buffer) - Dim cls As Object = New OokClassifier(buffer, ookTagAggregator, ClassificationTypeRegistry) - Dim tagger As ITagger(Of T) = TryCast(cls, ITagger(Of T)) - Return tagger - End Function - - End Class - - Friend NotInheritable Class OokClassifier : Implements ITagger(Of ClassificationTag) - - Private _buffer As ITextBuffer - Private _aggregator As ITagAggregator(Of OokTokenTag) - Private _ookTypes As IDictionary(Of TokenTypes, IClassificationType) - - Friend Sub New(buffer As ITextBuffer, ookTagAggregator As ITagAggregator(Of OokTokenTag), typeService As IClassificationTypeRegistryService) - _buffer = buffer - _aggregator = ookTagAggregator - _ookTypes = New Dictionary(Of TokenTypes, IClassificationType) - _ookTypes(TokenTypes.CollectionElement) = typeService.GetClassificationType(NameOf(TokenTypes.CollectionElement)) - _ookTypes(TokenTypes.EntryPoint) = typeService.GetClassificationType(NameOf(TokenTypes.EntryPoint)) - _ookTypes(TokenTypes.InternalExpression) = typeService.GetClassificationType(NameOf(TokenTypes.InternalExpression)) - _ookTypes(TokenTypes.LeftAssignedVariable) = typeService.GetClassificationType(NameOf(TokenTypes.LeftAssignedVariable)) - _ookTypes(TokenTypes.Operator) = typeService.GetClassificationType(NameOf(TokenTypes.Operator)) - _ookTypes(TokenTypes.ParameterName) = typeService.GetClassificationType(NameOf(TokenTypes.ParameterName)) - End Sub - - Public Function GetTags(spans As NormalizedSnapshotSpanCollection) As IEnumerable(Of ITagSpan(Of ClassificationTag)) Implements ITagger(Of ClassificationTag).GetTags - Dim tags As New List(Of TagSpan(Of ClassificationTag)) - - For Each tagSpan In Me._aggregator.GetTags(spans) - Dim tagSpans = tagSpan.Span.GetSpans(spans(0).Snapshot) - tags.Add(New TagSpan(Of ClassificationTag)(tagSpans(0), New ClassificationTag(_ookTypes(tagSpan.Tag.type)))) - Next tagSpan - - Return tags - End Function - - Public Event TagsChanged(sender As Object, e As SnapshotSpanEventArgs) Implements ITagger(Of Microsoft.VisualStudio.Text.Tagging.ClassificationTag).TagsChanged - - End Class - -End Namespace diff --git a/Shoal.VisualStudio/Codeporium.xml b/Shoal.VisualStudio/Codeporium.xml deleted file mode 100644 index 332c6ba81..000000000 --- a/Shoal.VisualStudio/Codeporium.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/Shoal.VisualStudio/Intellisense/CompletionController.vb b/Shoal.VisualStudio/Intellisense/CompletionController.vb deleted file mode 100644 index e392fa3ec..000000000 --- a/Shoal.VisualStudio/Intellisense/CompletionController.vb +++ /dev/null @@ -1,180 +0,0 @@ -Imports System.ComponentModel.Composition -Imports Microsoft.VisualStudio.Editor -Imports Microsoft.VisualStudio.Language.Intellisense -Imports Microsoft.VisualStudio.OLE.Interop -Imports Microsoft.VisualStudio.Text -Imports Microsoft.VisualStudio.Text.Editor -Imports Microsoft.VisualStudio.TextManager.Interop -Imports Microsoft.VisualStudio.Utilities -Imports Microsoft.VisualStudio -Imports System.Runtime.InteropServices - -Namespace OokLanguage - - - Friend NotInheritable Class VsTextViewCreationListener - Implements IVsTextViewCreationListener - - - Private AdaptersFactory As IVsEditorAdaptersFactoryService = Nothing - - - Private CompletionBroker As ICompletionBroker = Nothing - - Public Sub VsTextViewCreated(textViewAdapter As IVsTextView) Implements IVsTextViewCreationListener.VsTextViewCreated - Dim view As IWpfTextView = AdaptersFactory.GetWpfTextView(textViewAdapter) - Debug.Assert(view IsNot Nothing) - Dim filter As New CommandFilter(view, CompletionBroker) - Dim [next] As IOleCommandTarget = Nothing - textViewAdapter.AddCommandFilter(filter, [next]) - filter.Next = [next] - End Sub - - End Class - - Friend NotInheritable Class CommandFilter - Implements IOleCommandTarget - - Private _currentSession As ICompletionSession - - Public Sub New(textView As IWpfTextView, broker As ICompletionBroker) - _currentSession = Nothing - Me.TextView = textView - Me.Broker = broker - End Sub - - Private privateTextView As IWpfTextView - Public Property TextView As IWpfTextView - Get - Return privateTextView - End Get - Private Set(value As IWpfTextView) - privateTextView = value - End Set - End Property - - Private privateBroker As ICompletionBroker - Public Property Broker As ICompletionBroker - Get - Return privateBroker - End Get - Private Set(value As ICompletionBroker) - privateBroker = value - End Set - End Property - Public Property [Next] As IOleCommandTarget - - Private Function GetTypeChar(pvaIn As IntPtr) As Char - Return ChrW(CUShort(Marshal.GetObjectForNativeVariant(pvaIn))) - End Function - - Public Function Exec(ByRef pguidCmdGroup As Guid, nCmdID As UInteger, nCmdexecopt As UInteger, pvaIn As IntPtr, pvaOut As IntPtr) As Integer Implements IOleCommandTarget.Exec - Dim handled As Boolean = False - Dim hresult As Integer = VSConstants.S_OK - - ' 1. Pre-process - If pguidCmdGroup = VSConstants.VSStd2K Then - Select Case CType(nCmdID, VSConstants.VSStd2KCmdID) - Case VSConstants.VSStd2KCmdID.AUTOCOMPLETE, VSConstants.VSStd2KCmdID.COMPLETEWORD - handled = StartSession() - Case VSConstants.VSStd2KCmdID.RETURN - handled = Complete(False) - Case VSConstants.VSStd2KCmdID.TAB - handled = Complete(True) - Case 103 - handled = Cancel() - End Select - End If - - If Not handled Then - hresult = [Next].Exec(pguidCmdGroup, nCmdID, nCmdexecopt, pvaIn, pvaOut) - End If - - If ErrorHandler.Succeeded(hresult) Then - If pguidCmdGroup = VSConstants.VSStd2K Then - Select Case CType(nCmdID, VSConstants.VSStd2KCmdID) - Case VSConstants.VSStd2KCmdID.TYPECHAR - Dim ch As Char = GetTypeChar(pvaIn) - If ch = " "c Then - StartSession() - ElseIf _currentSession IsNot Nothing Then - Filter() - End If - Case VSConstants.VSStd2KCmdID.BACKSPACE - Filter() - End Select - End If - End If - - Return hresult - End Function - - Private Sub Filter() - If _currentSession Is Nothing Then - Return - End If - - _currentSession.SelectedCompletionSet.SelectBestMatch() - _currentSession.SelectedCompletionSet.Recalculate() - End Sub - - Private Function Cancel() As Boolean - If _currentSession Is Nothing Then - Return False - End If - - _currentSession.Dismiss() - - Return True - End Function - - Private Function Complete(force As Boolean) As Boolean - If _currentSession Is Nothing Then - Return False - End If - - If (Not _currentSession.SelectedCompletionSet.SelectionStatus.IsSelected) AndAlso (Not force) Then - _currentSession.Dismiss() - Return False - Else - _currentSession.Commit() - Return True - End If - End Function - - Private Function StartSession() As Boolean - If _currentSession IsNot Nothing Then - Return False - End If - - Dim caret As SnapshotPoint = TextView.Caret.Position.BufferPosition - Dim snapshot As ITextSnapshot = caret.Snapshot - - If Not Broker.IsCompletionActive(TextView) Then - _currentSession = Broker.CreateCompletionSession(TextView, snapshot.CreateTrackingPoint(caret, PointTrackingMode.Positive), True) - Else - _currentSession = Broker.GetSessions(TextView)(0) - End If - - AddHandler _currentSession.Dismissed, Sub(sender, args) _currentSession = Nothing - _currentSession.Start() - - Return True - End Function - - Public Function QueryStatus(ByRef pguidCmdGroup As Guid, cCmds As UInteger, prgCmds() As OLECMD, pCmdText As IntPtr) As Integer Implements IOleCommandTarget.QueryStatus - If pguidCmdGroup = VSConstants.VSStd2K Then - Select Case CType(prgCmds(0).cmdID, VSConstants.VSStd2KCmdID) - Case VSConstants.VSStd2KCmdID.AUTOCOMPLETE, VSConstants.VSStd2KCmdID.COMPLETEWORD - prgCmds(0).cmdf = CUInt(OLECMDF.OLECMDF_ENABLED) Or CUInt(OLECMDF.OLECMDF_SUPPORTED) - Return VSConstants.S_OK - End Select - End If - - Return [Next].QueryStatus(pguidCmdGroup, cCmds, prgCmds, pCmdText) - End Function - - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.VisualStudio/Intellisense/CompletionSource.vb b/Shoal.VisualStudio/Intellisense/CompletionSource.vb deleted file mode 100644 index 1faa40015..000000000 --- a/Shoal.VisualStudio/Intellisense/CompletionSource.vb +++ /dev/null @@ -1,63 +0,0 @@ -Imports System.Text -Imports Microsoft.VisualStudio.Language.Intellisense -Imports System.Collections.ObjectModel -Imports Microsoft.VisualStudio.Text -Imports Microsoft.VisualStudio.Text.Tagging -Imports System.ComponentModel.Composition -Imports Microsoft.VisualStudio.Utilities -Imports Microsoft.VisualBasic - -Namespace OokLanguage - - - Friend Class OokCompletionSourceProvider - Implements ICompletionSourceProvider - - Public Function TryCreateCompletionSource(textBuffer As ITextBuffer) As ICompletionSource Implements ICompletionSourceProvider.TryCreateCompletionSource - Return New OokCompletionSource(textBuffer) - End Function - - End Class - - Public Class OokCompletionSource - Implements ICompletionSource - - Private _buffer As ITextBuffer - Private _disposed As Boolean = False - - Public Sub New(buffer As ITextBuffer) - _buffer = buffer - End Sub - - Public Sub AugmentCompletionSession(session As ICompletionSession, completionSets As IList(Of CompletionSet)) Implements ICompletionSource.AugmentCompletionSession - If _disposed Then - Throw New ObjectDisposedException("OokCompletionSource") - End If - - Dim completions As New List(Of Completion) From {New Completion("Ook!"), New Completion("Ook."), New Completion("Ook?")} - Dim snapshot As ITextSnapshot = _buffer.CurrentSnapshot - Dim triggerPoint = CType(session.GetTriggerPoint(snapshot), SnapshotPoint) - - If triggerPoint = Nothing Then - Return - End If - - Dim line = triggerPoint.GetContainingLine() - Dim start As SnapshotPoint = triggerPoint - - Do While start > line.Start AndAlso Not Char.IsWhiteSpace((start - 1).GetChar()) - start -= 1 - Loop - - Dim applicableTo = snapshot.CreateTrackingSpan(New SnapshotSpan(start, triggerPoint), SpanTrackingMode.EdgeInclusive) - completionSets.Add(New CompletionSet("All", "All", applicableTo, completions, Enumerable.Empty(Of Completion)())) - End Sub - - Public Sub Dispose() Implements IDisposable.Dispose - _disposed = True - End Sub - - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.VisualStudio/Intellisense/OokQuickInfoSource.vb b/Shoal.VisualStudio/Intellisense/OokQuickInfoSource.vb deleted file mode 100644 index 870274988..000000000 --- a/Shoal.VisualStudio/Intellisense/OokQuickInfoSource.vb +++ /dev/null @@ -1,64 +0,0 @@ -Imports System.Text -Imports Microsoft.VisualStudio.Language.Intellisense -Imports System.Collections.ObjectModel -Imports Microsoft.VisualStudio.Text -Imports Microsoft.VisualStudio.Text.Tagging -Imports System.ComponentModel.Composition -Imports Microsoft.VisualStudio.Utilities -Imports System.Runtime.InteropServices - -Namespace OokLanguage - - - Friend Class OokQuickInfoSourceProvider - Implements IQuickInfoSourceProvider - - - Private aggService As IBufferTagAggregatorFactoryService = Nothing - - Public Function TryCreateQuickInfoSource(textBuffer As ITextBuffer) As IQuickInfoSource Implements IQuickInfoSourceProvider.TryCreateQuickInfoSource - Return New OokQuickInfoSource(textBuffer, aggService.CreateTagAggregator(Of OokTokenTag)(textBuffer)) - End Function - - End Class - - Friend Class OokQuickInfoSource - Implements IQuickInfoSource - - Private _aggregator As ITagAggregator(Of OokTokenTag) - Private _buffer As ITextBuffer - Private _disposed As Boolean = False - - Public Sub New(buffer As ITextBuffer, aggregator As ITagAggregator(Of OokTokenTag)) - _aggregator = aggregator - _buffer = buffer - End Sub - - Public Sub AugmentQuickInfoSession(session As IQuickInfoSession, quickInfoContent As IList(Of Object), ByRef applicableToSpan As ITrackingSpan) Implements IQuickInfoSource.AugmentQuickInfoSession - applicableToSpan = Nothing - - If _disposed Then - Throw New ObjectDisposedException("TestQuickInfoSource") - End If - - Dim triggerPoint = CType(session.GetTriggerPoint(_buffer.CurrentSnapshot), SnapshotPoint) - If triggerPoint = Nothing Then - Return - End If - - For Each curTag As IMappingTagSpan(Of OokTokenTag) In _aggregator.GetTags(New SnapshotSpan(triggerPoint, triggerPoint)) - If curTag.Tag.type = Scripting.ShoalShell.Interpreter.LDM.Expressions.ExpressionTypes.Die Then - Dim tagSpan = curTag.Span.GetSpans(_buffer).First() - applicableToSpan = _buffer.CurrentSnapshot.CreateTrackingSpan(tagSpan, SpanTrackingMode.EdgeExclusive) - quickInfoContent.Add("Throw the exception!") - End If - Next curTag - End Sub - - Public Sub Dispose() Implements IDisposable.Dispose - _disposed = True - End Sub - - End Class -End Namespace - diff --git a/Shoal.VisualStudio/Intellisense/QuickInfoController.vb b/Shoal.VisualStudio/Intellisense/QuickInfoController.vb deleted file mode 100644 index c50c972d4..000000000 --- a/Shoal.VisualStudio/Intellisense/QuickInfoController.vb +++ /dev/null @@ -1,66 +0,0 @@ -'////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -' Copyright (c) Microsoft Corporation. All rights reserved. -'////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -Imports Microsoft.VisualStudio.Language.Intellisense -Imports Microsoft.VisualStudio.Text -Imports Microsoft.VisualStudio.Text.Editor -Imports Microsoft.VisualStudio.Utilities - -Namespace VSLTK.Intellisense - - Friend Class TemplateQuickInfoController - Implements IIntellisenseController - - Private _textView As ITextView - Private _subjectBuffers As IList(Of ITextBuffer) - Private _componentContext As TemplateQuickInfoControllerProvider - - Private _session As IQuickInfoSession - - Friend Sub New(textView As ITextView, subjectBuffers As IList(Of ITextBuffer), componentContext As TemplateQuickInfoControllerProvider) - _textView = textView - _subjectBuffers = subjectBuffers - _componentContext = componentContext - - AddHandler _textView.MouseHover, AddressOf OnTextViewMouseHover - End Sub - - Public Sub ConnectSubjectBuffer(subjectBuffer As ITextBuffer) Implements IIntellisenseController.ConnectSubjectBuffer - - End Sub - - Public Sub DisconnectSubjectBuffer(subjectBuffer As ITextBuffer) Implements IIntellisenseController.DisconnectSubjectBuffer - - End Sub - - Public Sub Detach(textView As ITextView) Implements IIntellisenseController.Detach - If _textView Is textView Then - RemoveHandler _textView.MouseHover, AddressOf OnTextViewMouseHover - _textView = Nothing - End If - End Sub - - Private Sub OnTextViewMouseHover(sender As Object, e As MouseHoverEventArgs) - Dim point? As SnapshotPoint = Me.GetMousePosition(New SnapshotPoint(_textView.TextSnapshot, e.Position)) - - If point IsNot Nothing Then - Dim triggerPoint As ITrackingPoint = point.Value.Snapshot.CreateTrackingPoint(point.Value.Position, PointTrackingMode.Positive) - ' Find the broker for this buffer - If Not _componentContext.QuickInfoBroker.IsQuickInfoActive(_textView) Then - _session = _componentContext.QuickInfoBroker.CreateQuickInfoSession(_textView, triggerPoint, True) - _session.Start() - End If - End If - End Sub - - Private Function GetMousePosition(topPosition As SnapshotPoint) As SnapshotPoint? - ' Map this point down to the appropriate subject buffer. - Return _textView.BufferGraph.MapDownToFirstMatch(topPosition, PointTrackingMode.Positive, AddressOf __match, PositionAffinity.Predecessor) - End Function - - Private Function __match(snapshot As ITextSnapshot) As Boolean - Return _subjectBuffers.Contains(snapshot.TextBuffer) - End Function - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.VisualStudio/Intellisense/QuickInfoControllerProvider.vb b/Shoal.VisualStudio/Intellisense/QuickInfoControllerProvider.vb deleted file mode 100644 index 0098c5d93..000000000 --- a/Shoal.VisualStudio/Intellisense/QuickInfoControllerProvider.vb +++ /dev/null @@ -1,23 +0,0 @@ -'////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -' Copyright (c) Microsoft Corporation. All rights reserved. -'////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -Imports System.ComponentModel.Composition -Imports Microsoft.VisualStudio.Language.Intellisense -Imports Microsoft.VisualStudio.Text -Imports Microsoft.VisualStudio.Text.Editor -Imports Microsoft.VisualStudio.Utilities - -Namespace VSLTK.Intellisense - - - Friend Class TemplateQuickInfoControllerProvider : Implements IIntellisenseControllerProvider - - - Friend Property QuickInfoBroker As IQuickInfoBroker - - Public Function TryCreateIntellisenseController(textView As ITextView, subjectBuffers As IList(Of ITextBuffer)) As IIntellisenseController Implements IIntellisenseControllerProvider.TryCreateIntellisenseController - Return New TemplateQuickInfoController(textView, subjectBuffers, Me) - End Function - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.VisualStudio/My Project/AssemblyInfo.vb b/Shoal.VisualStudio/My Project/AssemblyInfo.vb deleted file mode 100644 index 7883e47f0..000000000 --- a/Shoal.VisualStudio/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,33 +0,0 @@ -Imports System.Reflection -Imports System.Runtime.CompilerServices -Imports System.Runtime.InteropServices - -' General Information about an assembly is controlled through the following -' set of attributes. Change these attribute values to modify the information -' associated with an assembly. - - - - - - - - - -' Setting ComVisible to false makes the types in this assembly not visible -' to COM components. If you need to access a type in this assembly from -' COM, set the ComVisible attribute to true on that type. - - -' Version information for an assembly consists of the following four values: -' -' Major Version -' Minor Version -' Build Number -' Revision -' -' You can specify all the values or you can default the Build and Revision Numbers -' by using the '*' as shown below: -' [assembly: AssemblyVersion("1.0.*")] - - diff --git a/Shoal.VisualStudio/Shoal.VisualStudio.sln b/Shoal.VisualStudio/Shoal.VisualStudio.sln deleted file mode 100644 index 39de03a2e..000000000 --- a/Shoal.VisualStudio/Shoal.VisualStudio.sln +++ /dev/null @@ -1,65 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.24720.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Shoal.VisualStudio", "Shoal.VisualStudio.vbproj", "{F091221E-FD10-41A7-AAC4-C9359178BDB1}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "+Microsoft.VisualBasic.Architecture.Framework", "..\..\VisualBasic_AppFramework\Microsoft.VisualBasic.Architecture.Framework\+Microsoft.VisualBasic.Architecture.Framework.vbproj", "{FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ShoalShell_Core.v2", "..\Shoal.v2\Shoal.v2\ShoalShell_Core.v2.vbproj", "{A7CB16FF-75C6-4746-8449-86C121D723C4}" -EndProject -Global - GlobalSection(SharedMSBuildProjectFiles) = preSolution - ..\..\VisualBasic_AppFramework\SharedProject.VB_FrameworkExtensions\SharedProject.VB_FrameworkExtensions.projitems*{fecce1fd-e1d4-49e3-a668-60bb5e7aed99}*SharedItemsImports = 4 - EndGlobalSection - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {F091221E-FD10-41A7-AAC4-C9359178BDB1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F091221E-FD10-41A7-AAC4-C9359178BDB1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F091221E-FD10-41A7-AAC4-C9359178BDB1}.Debug|x64.ActiveCfg = Debug|Any CPU - {F091221E-FD10-41A7-AAC4-C9359178BDB1}.Debug|x64.Build.0 = Debug|Any CPU - {F091221E-FD10-41A7-AAC4-C9359178BDB1}.Debug|x86.ActiveCfg = Debug|Any CPU - {F091221E-FD10-41A7-AAC4-C9359178BDB1}.Debug|x86.Build.0 = Debug|Any CPU - {F091221E-FD10-41A7-AAC4-C9359178BDB1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F091221E-FD10-41A7-AAC4-C9359178BDB1}.Release|Any CPU.Build.0 = Release|Any CPU - {F091221E-FD10-41A7-AAC4-C9359178BDB1}.Release|x64.ActiveCfg = Release|Any CPU - {F091221E-FD10-41A7-AAC4-C9359178BDB1}.Release|x64.Build.0 = Release|Any CPU - {F091221E-FD10-41A7-AAC4-C9359178BDB1}.Release|x86.ActiveCfg = Release|Any CPU - {F091221E-FD10-41A7-AAC4-C9359178BDB1}.Release|x86.Build.0 = Release|Any CPU - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Debug|x64.ActiveCfg = Debug|x64 - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Debug|x64.Build.0 = Debug|x64 - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Debug|x86.ActiveCfg = Debug|x86 - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Debug|x86.Build.0 = Debug|x86 - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Release|Any CPU.Build.0 = Release|Any CPU - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Release|x64.ActiveCfg = Release|x64 - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Release|x64.Build.0 = Release|x64 - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Release|x86.ActiveCfg = Release|x86 - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Release|x86.Build.0 = Release|x86 - {A7CB16FF-75C6-4746-8449-86C121D723C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A7CB16FF-75C6-4746-8449-86C121D723C4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A7CB16FF-75C6-4746-8449-86C121D723C4}.Debug|x64.ActiveCfg = Debug|x64 - {A7CB16FF-75C6-4746-8449-86C121D723C4}.Debug|x64.Build.0 = Debug|x64 - {A7CB16FF-75C6-4746-8449-86C121D723C4}.Debug|x86.ActiveCfg = Debug|Any CPU - {A7CB16FF-75C6-4746-8449-86C121D723C4}.Debug|x86.Build.0 = Debug|Any CPU - {A7CB16FF-75C6-4746-8449-86C121D723C4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A7CB16FF-75C6-4746-8449-86C121D723C4}.Release|Any CPU.Build.0 = Release|Any CPU - {A7CB16FF-75C6-4746-8449-86C121D723C4}.Release|x64.ActiveCfg = Release|x64 - {A7CB16FF-75C6-4746-8449-86C121D723C4}.Release|x64.Build.0 = Release|x64 - {A7CB16FF-75C6-4746-8449-86C121D723C4}.Release|x86.ActiveCfg = Release|Any CPU - {A7CB16FF-75C6-4746-8449-86C121D723C4}.Release|x86.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Shoal.VisualStudio/Shoal.VisualStudio.vbproj b/Shoal.VisualStudio/Shoal.VisualStudio.vbproj deleted file mode 100644 index 0a9a09812..000000000 --- a/Shoal.VisualStudio/Shoal.VisualStudio.vbproj +++ /dev/null @@ -1,184 +0,0 @@ - - - - - Debug - AnyCPU - 10.0.20305 - 2.0 - {82b43b9b-a64c-4715-b499-d71e9ca2bd60};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} - {F091221E-FD10-41A7-AAC4-C9359178BDB1} - Library - - - Shoal.VisualStudio - v4.6 - On - Binary - Off - On - 512 - false - 14.0 - - - - - 4.0 - - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.%2a - false - false - true - - - true - full - false - bin\Debug\ - true - true - prompt - 42353,42354,42355 - false - Shoal.VisualStudio.xml - On - - - pdbonly - true - bin\Release\ - false - true - prompt - 42353,42354,42355 - false - Shoal.VisualStudio.xml - - - - False - - - - - - - False - - - False - - - False - - - False - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Designer - - - - - - False - Microsoft .NET Framework 4 %28x86 and x64%29 - true - - - False - .NET Framework 3.5 SP1 - false - - - False - Windows Installer 4.5 - true - - - - - {fecce1fd-e1d4-49e3-a668-60bb5e7aed99} - +Microsoft.VisualBasic.Architecture.Framework - - - {a7cb16ff-75c6-4746-8449-86c121d723c4} - ShoalShell_Core.v2 - - - - 10.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - - - - - - - - - - \ No newline at end of file diff --git a/Shoal.VisualStudio/ShoalShell.vb b/Shoal.VisualStudio/ShoalShell.vb deleted file mode 100644 index fd334b07a..000000000 --- a/Shoal.VisualStudio/ShoalShell.vb +++ /dev/null @@ -1,10 +0,0 @@ -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Runtime - -Module ShoalShell - - Public ReadOnly Property ScriptEngine As ScriptEngine - - Sub New() - ScriptEngine = New ScriptEngine - End Sub -End Module diff --git a/Shoal.VisualStudio/TokenTag/OokTokenTag.vb b/Shoal.VisualStudio/TokenTag/OokTokenTag.vb deleted file mode 100644 index ff9693dee..000000000 --- a/Shoal.VisualStudio/TokenTag/OokTokenTag.vb +++ /dev/null @@ -1,29 +0,0 @@ -' Copyright (c) Microsoft Corporation -' All rights reserved - -Imports System -Imports System.Collections.Generic -Imports System.ComponentModel.Composition -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.LDM.Expressions -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.Parser.Tokens -Imports Microsoft.VisualStudio.Text -Imports Microsoft.VisualStudio.Text.Classification -Imports Microsoft.VisualStudio.Text.Editor -Imports Microsoft.VisualStudio.Text.Tagging -Imports Microsoft.VisualStudio.Utilities - -Namespace OokLanguage - - Public Class OokTokenTag : Implements ITag - - Public Property type As TokenTypes - - Public Sub New(type As TokenTypes) - Me.type = type - End Sub - - Public Overrides Function ToString() As String - Return type.Description - End Function - End Class -End Namespace diff --git a/Shoal.VisualStudio/TokenTag/OokTokenTagProvider.vb b/Shoal.VisualStudio/TokenTag/OokTokenTagProvider.vb deleted file mode 100644 index 2fc6a7805..000000000 --- a/Shoal.VisualStudio/TokenTag/OokTokenTagProvider.vb +++ /dev/null @@ -1,18 +0,0 @@ -Imports System.ComponentModel.Composition -Imports Microsoft.VisualStudio.Text -Imports Microsoft.VisualStudio.Text.Tagging -Imports Microsoft.VisualStudio.Utilities - -Namespace OokLanguage - - - Friend NotInheritable Class OokTokenTagProvider - Implements ITaggerProvider - - Public Function CreateTagger(Of T As ITag)(buffer As ITextBuffer) As ITagger(Of T) Implements ITaggerProvider.CreateTagger -#Disable Warning - Return TryCast(New OokTokenTagger(buffer), ITagger(Of T)) -#Enable Warning - End Function - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.VisualStudio/TokenTag/OokTokenTagger.vb b/Shoal.VisualStudio/TokenTag/OokTokenTagger.vb deleted file mode 100644 index 9e76ad0ad..000000000 --- a/Shoal.VisualStudio/TokenTag/OokTokenTagger.vb +++ /dev/null @@ -1,46 +0,0 @@ -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.LDM.Expressions -Imports Microsoft.VisualStudio.Text -Imports Microsoft.VisualStudio.Text.Tagging -Imports Microsoft.VisualBasic -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.Parser.TextTokenliser -Imports Microsoft.VisualBasic.Linq -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.Parser.Tokens -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter - -Namespace OokLanguage - - Public NotInheritable Class OokTokenTagger : Implements ITagger(Of OokTokenTag) - - ReadOnly _buffer As ITextBuffer - - Public Sub New(buffer As ITextBuffer) - _buffer = buffer - End Sub - - Public Function GetTags(spans As NormalizedSnapshotSpanCollection) As IEnumerable(Of ITagSpan(Of OokTokenTag)) Implements ITagger(Of OokTokenTag).GetTags - Dim tags As New List(Of TagSpan(Of OokTokenTag)) - - For Each curSpan As SnapshotSpan In spans - Dim containingLine As ITextSnapshotLine = curSpan.Start.GetContainingLine() - Dim curLoc As Integer = containingLine.Start.Position - Dim Expression As PrimaryExpression = Interpreter.InternalExpressionParser(curSpan.GetText) - - For Each ookToken As Token In Expression.GetTokens - Dim value As String = ookToken.GetTokenValue - Dim tokenSpan = New SnapshotSpan(curSpan.Snapshot, New Span(curLoc, value.Length)) - If tokenSpan.IntersectsWith(curSpan) Then - Call tags.Add(New TagSpan(Of OokTokenTag)(tokenSpan, New OokTokenTag(ookToken.TokenType))) - End If - - 'add an extra char location because of the space - curLoc += value.Length + 1 - Next ookToken - Next curSpan - - Return tags - End Function - - Public Event TagsChanged(sender As Object, e As SnapshotSpanEventArgs) Implements ITagger(Of OokTokenTag).TagsChanged - - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.VisualStudio/source.extension.vsixmanifest b/Shoal.VisualStudio/source.extension.vsixmanifest deleted file mode 100644 index 537294456..000000000 --- a/Shoal.VisualStudio/source.extension.vsixmanifest +++ /dev/null @@ -1,21 +0,0 @@ - - - - Shoal.VisualStudio - xie - 1.0 - This is a sample classifier extension to the Visual Studio Editor. - 1033 - - - VST_All - Pro - - - - - - - |Shoal.VisualStudio| - - diff --git a/Shoal.VisualStudio/test.shl b/Shoal.VisualStudio/test.shl deleted file mode 100644 index 037157e88..000000000 --- a/Shoal.VisualStudio/test.shl +++ /dev/null @@ -1,5 +0,0 @@ -Ook! Ook. Ook? Ook! Ook? Ook. Ook? if - -imports GCModeller.RQL - -var result <- from x as protein in "http://linq.gcmodeller.org/" select x \ No newline at end of file diff --git a/Shoal.sln b/Shoal.sln deleted file mode 100644 index cf4451369..000000000 --- a/Shoal.sln +++ /dev/null @@ -1,193 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.25123.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "IDE", "IDE", "{47832138-2140-4A2E-A035-BE14B4897204}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Reference", "Reference", "{CE7914A4-EC20-4A94-8AC3-C5731100239B}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Plugins", "Plugins", "{1CDABACB-44CB-4173-8313-913BA466562E}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Microsoft.VisualBasic_Core", "Microsoft.VisualBasic_Core", "{65DF4CD8-CA2E-42E0-8F89-B4E875E5DFED}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ShoalShell_Core.v2", "Shoal.v2\Shoal.v2\ShoalShell_Core.v2.vbproj", "{A7CB16FF-75C6-4746-8449-86C121D723C4}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ShoalShell", "Shoal.v2\Console\ShoalShell.vbproj", "{D71E0D55-DA94-4B18-B204-252D532EE8EC}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LINQ.Extensions.ShoalShell.HybridScripting", "LINQ.Extensions.ShoalShell.HybridScripting\LINQ.Extensions.ShoalShell.HybridScripting.vbproj", "{B2355947-6A37-42F4-9340-CEFF43F37A2B}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting", "Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting\Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting.vbproj", "{85E19618-8A67-47DE-892D-4BB4EAF59AE2}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns", "Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns\Microsoft.VisualBasic.ShellScript.Dynamics.IDE_PlugIns.vbproj", "{F4CA3733-BA62-4A8D-BF45-0BCAE80B882F}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ShoalShell.Debugger", "ShoalShell.Debugger\ShoalShell.Debugger.vbproj", "{98B35793-A1A2-4E78-BAFD-75E0D95E6367}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ShoalShell.PlugIns.Plot", "ShoalShell.PlugIns.Plot\ShoalShell.PlugIns.Plot.vbproj", "{28ECA1CD-4E79-4EA9-A6C8-C41F30E5C865}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ShoalShell.Plugins.Runtime.Environment", "ShoalShell.Plugins.Runtime.Environment\ShoalShell.Plugins.Runtime.Environment.vbproj", "{4863E23A-8E58-4E10-9A77-8DBA4D4BB586}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ShoalShell.Plugins.SQLDatabaseInterface", "ShoalShell.Plugins.SQLDatabaseInterface\ShoalShell.Plugins.SQLDatabaseInterface.vbproj", "{75B2A52A-F76B-4912-AAC2-CAC4AE56A001}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "EndNoteLite", "EndNoteLite\EndNoteLite.vbproj", "{2F80136C-0E1E-429F-A905-EB0927B0A82C}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "+Microsoft.VisualBasic.Architecture.Framework", "..\VisualBasic_AppFramework\Microsoft.VisualBasic.Architecture.Framework\+Microsoft.VisualBasic.Architecture.Framework.vbproj", "{FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A7CB16FF-75C6-4746-8449-86C121D723C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A7CB16FF-75C6-4746-8449-86C121D723C4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A7CB16FF-75C6-4746-8449-86C121D723C4}.Debug|x64.ActiveCfg = Debug|Any CPU - {A7CB16FF-75C6-4746-8449-86C121D723C4}.Debug|x64.Build.0 = Debug|Any CPU - {A7CB16FF-75C6-4746-8449-86C121D723C4}.Debug|x86.ActiveCfg = Debug|Any CPU - {A7CB16FF-75C6-4746-8449-86C121D723C4}.Debug|x86.Build.0 = Debug|Any CPU - {A7CB16FF-75C6-4746-8449-86C121D723C4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A7CB16FF-75C6-4746-8449-86C121D723C4}.Release|Any CPU.Build.0 = Release|Any CPU - {A7CB16FF-75C6-4746-8449-86C121D723C4}.Release|x64.ActiveCfg = Release|Any CPU - {A7CB16FF-75C6-4746-8449-86C121D723C4}.Release|x64.Build.0 = Release|Any CPU - {A7CB16FF-75C6-4746-8449-86C121D723C4}.Release|x86.ActiveCfg = Release|Any CPU - {A7CB16FF-75C6-4746-8449-86C121D723C4}.Release|x86.Build.0 = Release|Any CPU - {D71E0D55-DA94-4B18-B204-252D532EE8EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D71E0D55-DA94-4B18-B204-252D532EE8EC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D71E0D55-DA94-4B18-B204-252D532EE8EC}.Debug|x64.ActiveCfg = Debug|x64 - {D71E0D55-DA94-4B18-B204-252D532EE8EC}.Debug|x64.Build.0 = Debug|x64 - {D71E0D55-DA94-4B18-B204-252D532EE8EC}.Debug|x86.ActiveCfg = Debug|Any CPU - {D71E0D55-DA94-4B18-B204-252D532EE8EC}.Debug|x86.Build.0 = Debug|Any CPU - {D71E0D55-DA94-4B18-B204-252D532EE8EC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D71E0D55-DA94-4B18-B204-252D532EE8EC}.Release|Any CPU.Build.0 = Release|Any CPU - {D71E0D55-DA94-4B18-B204-252D532EE8EC}.Release|x64.ActiveCfg = Release|x64 - {D71E0D55-DA94-4B18-B204-252D532EE8EC}.Release|x64.Build.0 = Release|x64 - {D71E0D55-DA94-4B18-B204-252D532EE8EC}.Release|x86.ActiveCfg = Release|Any CPU - {D71E0D55-DA94-4B18-B204-252D532EE8EC}.Release|x86.Build.0 = Release|Any CPU - {B2355947-6A37-42F4-9340-CEFF43F37A2B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B2355947-6A37-42F4-9340-CEFF43F37A2B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B2355947-6A37-42F4-9340-CEFF43F37A2B}.Debug|x64.ActiveCfg = Debug|x64 - {B2355947-6A37-42F4-9340-CEFF43F37A2B}.Debug|x64.Build.0 = Debug|x64 - {B2355947-6A37-42F4-9340-CEFF43F37A2B}.Debug|x86.ActiveCfg = Debug|Any CPU - {B2355947-6A37-42F4-9340-CEFF43F37A2B}.Debug|x86.Build.0 = Debug|Any CPU - {B2355947-6A37-42F4-9340-CEFF43F37A2B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B2355947-6A37-42F4-9340-CEFF43F37A2B}.Release|Any CPU.Build.0 = Release|Any CPU - {B2355947-6A37-42F4-9340-CEFF43F37A2B}.Release|x64.ActiveCfg = Release|x64 - {B2355947-6A37-42F4-9340-CEFF43F37A2B}.Release|x64.Build.0 = Release|x64 - {B2355947-6A37-42F4-9340-CEFF43F37A2B}.Release|x86.ActiveCfg = Release|Any CPU - {B2355947-6A37-42F4-9340-CEFF43F37A2B}.Release|x86.Build.0 = Release|Any CPU - {85E19618-8A67-47DE-892D-4BB4EAF59AE2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {85E19618-8A67-47DE-892D-4BB4EAF59AE2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {85E19618-8A67-47DE-892D-4BB4EAF59AE2}.Debug|x64.ActiveCfg = Debug|x64 - {85E19618-8A67-47DE-892D-4BB4EAF59AE2}.Debug|x64.Build.0 = Debug|x64 - {85E19618-8A67-47DE-892D-4BB4EAF59AE2}.Debug|x86.ActiveCfg = Debug|Any CPU - {85E19618-8A67-47DE-892D-4BB4EAF59AE2}.Debug|x86.Build.0 = Debug|Any CPU - {85E19618-8A67-47DE-892D-4BB4EAF59AE2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {85E19618-8A67-47DE-892D-4BB4EAF59AE2}.Release|Any CPU.Build.0 = Release|Any CPU - {85E19618-8A67-47DE-892D-4BB4EAF59AE2}.Release|x64.ActiveCfg = Release|x64 - {85E19618-8A67-47DE-892D-4BB4EAF59AE2}.Release|x64.Build.0 = Release|x64 - {85E19618-8A67-47DE-892D-4BB4EAF59AE2}.Release|x86.ActiveCfg = Release|Any CPU - {85E19618-8A67-47DE-892D-4BB4EAF59AE2}.Release|x86.Build.0 = Release|Any CPU - {F4CA3733-BA62-4A8D-BF45-0BCAE80B882F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F4CA3733-BA62-4A8D-BF45-0BCAE80B882F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F4CA3733-BA62-4A8D-BF45-0BCAE80B882F}.Debug|x64.ActiveCfg = Debug|x64 - {F4CA3733-BA62-4A8D-BF45-0BCAE80B882F}.Debug|x64.Build.0 = Debug|x64 - {F4CA3733-BA62-4A8D-BF45-0BCAE80B882F}.Debug|x86.ActiveCfg = Debug|Any CPU - {F4CA3733-BA62-4A8D-BF45-0BCAE80B882F}.Debug|x86.Build.0 = Debug|Any CPU - {F4CA3733-BA62-4A8D-BF45-0BCAE80B882F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F4CA3733-BA62-4A8D-BF45-0BCAE80B882F}.Release|Any CPU.Build.0 = Release|Any CPU - {F4CA3733-BA62-4A8D-BF45-0BCAE80B882F}.Release|x64.ActiveCfg = Release|x64 - {F4CA3733-BA62-4A8D-BF45-0BCAE80B882F}.Release|x64.Build.0 = Release|x64 - {F4CA3733-BA62-4A8D-BF45-0BCAE80B882F}.Release|x86.ActiveCfg = Release|Any CPU - {F4CA3733-BA62-4A8D-BF45-0BCAE80B882F}.Release|x86.Build.0 = Release|Any CPU - {98B35793-A1A2-4E78-BAFD-75E0D95E6367}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {98B35793-A1A2-4E78-BAFD-75E0D95E6367}.Debug|Any CPU.Build.0 = Debug|Any CPU - {98B35793-A1A2-4E78-BAFD-75E0D95E6367}.Debug|x64.ActiveCfg = Debug|x64 - {98B35793-A1A2-4E78-BAFD-75E0D95E6367}.Debug|x64.Build.0 = Debug|x64 - {98B35793-A1A2-4E78-BAFD-75E0D95E6367}.Debug|x86.ActiveCfg = Debug|Any CPU - {98B35793-A1A2-4E78-BAFD-75E0D95E6367}.Debug|x86.Build.0 = Debug|Any CPU - {98B35793-A1A2-4E78-BAFD-75E0D95E6367}.Release|Any CPU.ActiveCfg = Release|Any CPU - {98B35793-A1A2-4E78-BAFD-75E0D95E6367}.Release|Any CPU.Build.0 = Release|Any CPU - {98B35793-A1A2-4E78-BAFD-75E0D95E6367}.Release|x64.ActiveCfg = Release|x64 - {98B35793-A1A2-4E78-BAFD-75E0D95E6367}.Release|x64.Build.0 = Release|x64 - {98B35793-A1A2-4E78-BAFD-75E0D95E6367}.Release|x86.ActiveCfg = Release|Any CPU - {98B35793-A1A2-4E78-BAFD-75E0D95E6367}.Release|x86.Build.0 = Release|Any CPU - {28ECA1CD-4E79-4EA9-A6C8-C41F30E5C865}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {28ECA1CD-4E79-4EA9-A6C8-C41F30E5C865}.Debug|Any CPU.Build.0 = Debug|Any CPU - {28ECA1CD-4E79-4EA9-A6C8-C41F30E5C865}.Debug|x64.ActiveCfg = Debug|x64 - {28ECA1CD-4E79-4EA9-A6C8-C41F30E5C865}.Debug|x64.Build.0 = Debug|x64 - {28ECA1CD-4E79-4EA9-A6C8-C41F30E5C865}.Debug|x86.ActiveCfg = Debug|Any CPU - {28ECA1CD-4E79-4EA9-A6C8-C41F30E5C865}.Debug|x86.Build.0 = Debug|Any CPU - {28ECA1CD-4E79-4EA9-A6C8-C41F30E5C865}.Release|Any CPU.ActiveCfg = Release|Any CPU - {28ECA1CD-4E79-4EA9-A6C8-C41F30E5C865}.Release|Any CPU.Build.0 = Release|Any CPU - {28ECA1CD-4E79-4EA9-A6C8-C41F30E5C865}.Release|x64.ActiveCfg = Release|x64 - {28ECA1CD-4E79-4EA9-A6C8-C41F30E5C865}.Release|x64.Build.0 = Release|x64 - {28ECA1CD-4E79-4EA9-A6C8-C41F30E5C865}.Release|x86.ActiveCfg = Release|Any CPU - {28ECA1CD-4E79-4EA9-A6C8-C41F30E5C865}.Release|x86.Build.0 = Release|Any CPU - {4863E23A-8E58-4E10-9A77-8DBA4D4BB586}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4863E23A-8E58-4E10-9A77-8DBA4D4BB586}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4863E23A-8E58-4E10-9A77-8DBA4D4BB586}.Debug|x64.ActiveCfg = Debug|x64 - {4863E23A-8E58-4E10-9A77-8DBA4D4BB586}.Debug|x64.Build.0 = Debug|x64 - {4863E23A-8E58-4E10-9A77-8DBA4D4BB586}.Debug|x86.ActiveCfg = Debug|Any CPU - {4863E23A-8E58-4E10-9A77-8DBA4D4BB586}.Debug|x86.Build.0 = Debug|Any CPU - {4863E23A-8E58-4E10-9A77-8DBA4D4BB586}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4863E23A-8E58-4E10-9A77-8DBA4D4BB586}.Release|Any CPU.Build.0 = Release|Any CPU - {4863E23A-8E58-4E10-9A77-8DBA4D4BB586}.Release|x64.ActiveCfg = Release|x64 - {4863E23A-8E58-4E10-9A77-8DBA4D4BB586}.Release|x64.Build.0 = Release|x64 - {4863E23A-8E58-4E10-9A77-8DBA4D4BB586}.Release|x86.ActiveCfg = Release|Any CPU - {4863E23A-8E58-4E10-9A77-8DBA4D4BB586}.Release|x86.Build.0 = Release|Any CPU - {75B2A52A-F76B-4912-AAC2-CAC4AE56A001}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {75B2A52A-F76B-4912-AAC2-CAC4AE56A001}.Debug|Any CPU.Build.0 = Debug|Any CPU - {75B2A52A-F76B-4912-AAC2-CAC4AE56A001}.Debug|x64.ActiveCfg = Debug|x64 - {75B2A52A-F76B-4912-AAC2-CAC4AE56A001}.Debug|x64.Build.0 = Debug|x64 - {75B2A52A-F76B-4912-AAC2-CAC4AE56A001}.Debug|x86.ActiveCfg = Debug|Any CPU - {75B2A52A-F76B-4912-AAC2-CAC4AE56A001}.Debug|x86.Build.0 = Debug|Any CPU - {75B2A52A-F76B-4912-AAC2-CAC4AE56A001}.Release|Any CPU.ActiveCfg = Release|Any CPU - {75B2A52A-F76B-4912-AAC2-CAC4AE56A001}.Release|Any CPU.Build.0 = Release|Any CPU - {75B2A52A-F76B-4912-AAC2-CAC4AE56A001}.Release|x64.ActiveCfg = Release|x64 - {75B2A52A-F76B-4912-AAC2-CAC4AE56A001}.Release|x64.Build.0 = Release|x64 - {75B2A52A-F76B-4912-AAC2-CAC4AE56A001}.Release|x86.ActiveCfg = Release|Any CPU - {75B2A52A-F76B-4912-AAC2-CAC4AE56A001}.Release|x86.Build.0 = Release|Any CPU - {2F80136C-0E1E-429F-A905-EB0927B0A82C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2F80136C-0E1E-429F-A905-EB0927B0A82C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2F80136C-0E1E-429F-A905-EB0927B0A82C}.Debug|x64.ActiveCfg = Debug|Any CPU - {2F80136C-0E1E-429F-A905-EB0927B0A82C}.Debug|x64.Build.0 = Debug|Any CPU - {2F80136C-0E1E-429F-A905-EB0927B0A82C}.Debug|x86.ActiveCfg = Debug|Any CPU - {2F80136C-0E1E-429F-A905-EB0927B0A82C}.Debug|x86.Build.0 = Debug|Any CPU - {2F80136C-0E1E-429F-A905-EB0927B0A82C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2F80136C-0E1E-429F-A905-EB0927B0A82C}.Release|Any CPU.Build.0 = Release|Any CPU - {2F80136C-0E1E-429F-A905-EB0927B0A82C}.Release|x64.ActiveCfg = Release|Any CPU - {2F80136C-0E1E-429F-A905-EB0927B0A82C}.Release|x64.Build.0 = Release|Any CPU - {2F80136C-0E1E-429F-A905-EB0927B0A82C}.Release|x86.ActiveCfg = Release|Any CPU - {2F80136C-0E1E-429F-A905-EB0927B0A82C}.Release|x86.Build.0 = Release|Any CPU - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Debug|x64.ActiveCfg = Debug|x64 - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Debug|x64.Build.0 = Debug|x64 - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Debug|x86.ActiveCfg = Debug|x86 - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Debug|x86.Build.0 = Debug|x86 - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Release|Any CPU.Build.0 = Release|Any CPU - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Release|x64.ActiveCfg = Release|x64 - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Release|x64.Build.0 = Release|x64 - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Release|x86.ActiveCfg = Release|x86 - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Release|x86.Build.0 = Release|x86 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {B2355947-6A37-42F4-9340-CEFF43F37A2B} = {1CDABACB-44CB-4173-8313-913BA466562E} - {85E19618-8A67-47DE-892D-4BB4EAF59AE2} = {1CDABACB-44CB-4173-8313-913BA466562E} - {F4CA3733-BA62-4A8D-BF45-0BCAE80B882F} = {47832138-2140-4A2E-A035-BE14B4897204} - {98B35793-A1A2-4E78-BAFD-75E0D95E6367} = {47832138-2140-4A2E-A035-BE14B4897204} - {28ECA1CD-4E79-4EA9-A6C8-C41F30E5C865} = {1CDABACB-44CB-4173-8313-913BA466562E} - {4863E23A-8E58-4E10-9A77-8DBA4D4BB586} = {1CDABACB-44CB-4173-8313-913BA466562E} - {75B2A52A-F76B-4912-AAC2-CAC4AE56A001} = {1CDABACB-44CB-4173-8313-913BA466562E} - {2F80136C-0E1E-429F-A905-EB0927B0A82C} = {1CDABACB-44CB-4173-8313-913BA466562E} - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99} = {65DF4CD8-CA2E-42E0-8F89-B4E875E5DFED} - EndGlobalSection -EndGlobal diff --git a/Shoal.v2/Console/App.config b/Shoal.v2/Console/App.config deleted file mode 100644 index 2d2a12d81..000000000 --- a/Shoal.v2/Console/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/Shoal.v2/Console/Code b/Shoal.v2/Console/Code deleted file mode 100644 index 3d73f97268228fbdd58084e429c3c3b4d7746ba2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1520704 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

obJ+G#jam3N9sY025C%t}2u`$RsH1ni;x; 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:N6j#ShBeiG;~XhS?=BX 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

9-Gu*CN6#><$2&lBY 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�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

*F8&dIBOfX`tOryuik z$P(v?lV9_5OB3gbi^S2#eg8Odnm9{bB=&arWdmS0f6Bq`+CK(%-%A`P{{-nt(z9R} zCr?}?_MY&4qQr6HBypNJ{`KJT@ApU&XNmLgV0qT!`5)o?+(`Gn;kP|XoFq;Y=ZTBN z(Vc!iapEL#9_;$0NbEi7>rvu3agsPqoF&c^d*7s(#Bt&zaT@HtFC|NyCoU3u-}3#V z#Bt&zah|wH>;w*8VIJ?J>nI|q1$A9emB#G0+S>~Vk*DQJBB60M2KW3abNt`Cm z66cAF#NIwXW|TNioFq;YXNmK~MPfX-cYOYogWWooBt1=>CC(EUiM^lsF{8wB;v{jJ zI7^%-E)sh`r})Hi;w*8VxJc~nr#QrM;v{jJI7^%-_FkZv#96SctFQkKALk{G|HAjr z|5AObU&7jJ`983BK=pUMj6ECJ9q)1CBypNJOYHsHFB>I}6DNtϛz^Fht+H$|Mg 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%0DbNnr3v|HAflj!7pbKsg=!zQ# zy5UBF?znNF2W}GRh2IRM;HH7T_^m)c+$_)^HxCTJEdqmZ%fJxaDliPU4y58Xfswdv zU=(f_7>(Np#^Mfv@wj7PBJLEJj5`OW;x2(S{B~d(?i!eZ-wCASZh_hO-N0PjJunY{ z7FdAS1s39sfyFp8umm3tEW;-QD|pJxxxh;DS?|Dh%SgvM%(Z=(INOuw2r@vHt>aLC;l@eEL>I^ZM91M5(WUUq=rY(^xE$6BSHJ}e$KyhU6R@*z z73?Zp)y}!W!ii)r<_@~THOPLq-wUoJ3`0;bbZ!FnflD8;}oU z_67?#A|I1JS-1(6;37?_*f96t6=_B;jQNIRkrw0_%r)pDt;la+t}GO3L#`%0ut+=d zpduac;3A#ykRn}ZGptBg@=)pVMY@p>73q$%iuAyziuA&#i=^Q5Mf&3Ji}b@+iuA|7 z6dAw}>@kDLI%aP(W(e89oSldnMs{MZ=*6Ux-I#YNW+d5*IfEKAiX4vlWRDq5j=~&= z#*8ILW6nOsj3*btoOg>vz@#>W+(OYF}um%V!rbj zvzL5H`f|*E@=q}bsb7uBB>#*p%C(p*@-LWU{FtNUUora7rjPqE#0>0bt>(P-lWn_dT`NOzl@++GvJ#h9GI;jV8_HT-O<9kt^CX@i$*>q>$%V1 z`tB7}8oJk$8@o5+q3(ltxceye5$;U#NA4{AvHK_<<35hZxliH=?zMP|I~{-GK2xx| zWx6{<8D;rAY)aTD%c8JP@E2hd!p>TH2BzTNflqLsz=W{#mR;oYmOa$Jvz*1D>PNBn zLPOP$W7BzB(3sd%JTCSDl?kyc$dh7M;wiBiN|d^%*n)yl>b_#xD*x8^tq}a%yW@mQ&l(vYgtUmgUrrv@EA~re!(x zZCaL7-=Sp%^#fW~P(P$)1$7`TE2x8MSwS62%L?jnT2@d;&@x_~M9X+}3N7Q+PiPsh zeoD)DbviBM)tR)6S7*^OL0v@41oaDACa6nknV>GGWrF%8EfdtQXqlj{qGc6z8!fA- zJ7`%&-9^hP>KP%WTQfHOePGt@)8>yesvXMHUmW|baN|Z0rSpB!e8~AyN zYWQV|>R5@Zgw?ppSc_|k^T##E1>)W+(L^mDw^?tZR*Xwmny8iHQgP+D?Nr`~TS2ZC zw-Q&6%TSuBAJMXz`Y|n=sbgr_OdUtdX6gi5Hd80jvY9%CmL1d|;}+^2)SqbCLH(JQ z9n@dq7E}3^mL1d^wCte%M$1m>6Iyms|Dk0k^9-w84dWe=O>S0=@ zs7GkoU;VS>nS%Y*zi8QC{hOBk)h8trjQ;9BwCu0`OUwT1b6Q?dSCvm!E~$T%KU46M zdRONA9+_uGp+aaj>-}4zV_l&rrgw`750%7-lU{DVlRwZTDQ@%w6%P~ zFmGvV#e{TnrG!*mIU$wG8wo4O)e=_X>IoT2lC^DRJuJ!EvvN958k$q3Qi&GU&#F|$ z^Q$z*pI2##7gc$yL?>(cs$Z7wWUW}W61h^<%D7t9^0<1{)+Gj5PgMJ~%mC}DYSZ!8 z)n?*vs(oKB)mky}&*CGjZzL|%M_8*RrYj??)e}>3&BVo2YA3EB*G*iB>m_C=v#d31 z+;q;e)~=CGu3IA&*Q;@hO8puu$PH_(#EolY@N}W&HD=&1X}QSy6)hK8SJha8*U)m2 zbsa4iSvSyfv2|OGd3Xmc7h8AHa}qxM27uG%Zep4uyMSZ%f{+KA*c zeCPY4WVR~W$H{C}v@yvEMlEezGFugGLNZ$wZBlZEQb(Ik%R1UjTGr8K(Xx&uO)pvaa?OE$eElXjxZVL(96_I$9=a+i01j?Vx3n zwu_cY+8$aaY5QoIq#dATl6HuejkF(=`>BnzpOOctO|{?1O|{?2EwzaH{jk6O0ClS7 zY19vgH5#CPqD7ED(fs7;+8gBQS~cY@5qa_pUI20U&u?f`{bqCpX6oQU*u)l-( zv_j+zEttGY3nj18?Bvy&gS=XEk=JTP$ZNHtqdA(MWyk09!-k_BwZ_vt< zH)<8h8?{R0O8hqi^hTiZw8tsNjA(9V(%Xy1|#X+M$=X+Mz_BZ*s_Jn*~`-fbOOB(f|C3J*tkOJbNw4>k? zm;<+Xk|!6zl~`B-{1}At9C*Zn(iHl`P?!pbfycJ;j4VZY0Nwdb--WOOqWRUTiclZY z;3{}{Zu1m)s{kjs3i4}&kO+;SD@=oBP=KfE7J+8aI7Ct2;px6pU|E%af3+K?mp$!(f1i zaY6=cgH!Mdg1w5e6sm?Z9)6vsIi$cymA*aijKDau!H z3##&b=6B&3T!Gdd6y;(^=6`2?Rk`TY=vXcy*tk= zhEcE(_QM?re~|e(uSy_VnT_eefo{4|CxQ_zjfa%s1!(<6%+?(*pJT z@QZCQx}Tyn{6JB({)_|M16WSsOUQ!D&~hNl5qt%gpyD8g1)Ja`dXh2~)u~Tv7b62o6HkRF?e_yjHM|WZ8#wI1cAOqTf-9 z@))Xo%rDA8Pv{3DVLB{=b+8k@hM(Xr|AF7cPFr@&)#JEc?(Jex1+y%d@xZFI1F4 zFc-GLPf%zP(+6E(6ik9uuo?C&W}SdtOZeq8IJ%Vi2v4EdGL{(_0_))>Tw2a_LdzA3 zvJs}QWH_(~?!sdz{}uBK*lkpjR2s?4~-5nPFMxIpkF4RSuh%=K>oul zXONP`wh_ibI`liDC?g;TjvnRxI>zS_tcK0d;W*n%D0qTx8T5joa1_3Qi|`vfhWaP@ ztbzV;0B%E*Q;PBf+y*V1?Ksqh#?S&fz-U+nhu|vw2_3#>ywDdm!q+hD8`i5cENfst z%Q6C+;jMH0+7JwdqTezcsC1rbfk7|<)fq}3JzJvJh zd7W?*dR$~$VG5+fS~v(dAmIn*1#E#Ieq{b$=JN#d{lxMQwP6b!fhUmf3d;~EKl7fz zK{y7#!V8GJ%4ZBDLuVKRQ(*^WTw}U^<-LV>LAlO08HT{A8*IBE{x^Oj^LLhAm;fi? zTeu7*Z!^zf;2$h2kO`;YJe0n}`vAjW44l8q>w|wG^d8FqB*7Rcai8S{`oaZx3=JQ! zzCkJ^{K>q5%@F#K>48t-0Yv`A{uXqFJ}?w|JYs&qM=%lAz*aZ|f55@N+4ey2V@0V9 zonb62gY$3;3Or%@VIf?B@;Uq;QeYr_2HW8;sQC}`7;@khL_TF%1K+<)8&rcP&=tu+knaWa7y82rX!?rv3Rc5+;8(bt0S3cD5KlXfwQyGhEPyQ#rgD}U z7V-?A_3$HzC$5Mmr--Leh^IreffNwmtk>ZsROj1O%|U!iZ-V#E_g;O9>3J}?yK z!#=nS;?Cxpum;}ZzNq1l25aCj{0=%-{l)!06JRFn199(!xJy7>0iF)x>gid~IHwu{ zaUjn5i?i^b!V$OuufWG|Stdds7y+NcHi&VMp`nw0p(FeN&p~(bL<#8TwkV@u63l@4 zung9~9+=1POa2TQUha&6!*Cvc3FCW6Ff*M0!)>S(!FV7QJU;Fh;nx^Hg~f0n!2K@} zR+#q)N12q)ktcm}~STw8$}P#?O$BhZTS{=q0%4|ky<2N)fo8+-_B zi}4LjxC0@@nKoDl+uvVGI10Z)o$|Z~@DVJ8oA3~(SFk9{;Ruwe$h1T4cR*fqwi7bCmtUB*4REOcP3r@n1@Ehc-!7>F2 za2-n3HDO226nh-MI4gjjAQ+TuH#u>Comr-@>=0tI1g`4 zVmX0HupTbM4d^kMael%Rb>KU=1z~9n8=gV(r);laDQt%Qa0YI}KcG%yy@3E!0Pl3B z1De7tcnr;FFpp+(Z~83O+1YG|=dyl%#(M}s^XLb*z_kSo7u=sS|DYDcEo6Ryx`^jw zfD^ul-{8h#mOD_sV4DIzK>nqC*BhEZD>%K3ClM^?^96XQxl$6|f`PCBZotGZxvL)f ztYrHEabK}~LxT*qna~I3K%rH<&roqS+c&5WZ^2ZkZRuxO>SKR{)Zg+QsQ_t!#pZvV z23Z0!DV8CYy18kXrDJYNwe-quH`0v~@*6`crDxf^n z-Z@f0`Ad5rKhlQdzqKRyv1UJ7fG49z;~cFa{zv-|Kh@^rf3-vSnf5z=u5~_EKzX5^ z#V@sn#|tR0v_n|Q_ci|BcIuk~%0*k_GX<0%Y%TFXqdo5K?u6fSYh&2Y=GR>Q`;R3= z{^R{H|A|_#`9IDp{3jP8yZ`h5|Jh%$|8)DG{gwGYx>fyub>m&n{U@fSS>Av6%bYR) z{m<$ApWQl{E&sp${dYS5+n;!SJ^z>fM7RIGhX3~W|2LhV{x8E6{Vn=Gy6yU3x;d$T z{eN`3^1pNwi||DAvT?Is2n{-0rrL5u&g>ET~@ zvC8pxqx|2@h}ZwSDF5e(e*M23`M-x{U;i&gE^ywI*Z+G{{?E$Vtg)2lXKfAU_n{1a z1xWnHlM}>mI=R7vz5Erw*%Zw$E)|9%5CcUa7K%Y}C;@R$5=ud7Cg@e58Et-EWuF1Qrr>; zQ>&_pxRzQ|ZKO6-o2ZS|rs|t&GxaUCh1y(gqqbJtLI<_I+DYxGc2(b2-&MP* zJ=Gp+FX#;^&|m#P9jFdahpI!=;p#B;BXy)YRvn{GQYWfY)hX&H@Tr=nPJ>x$x;h&^ zQ|GGlU_LBSzfd=;o75fZc6BH0g8k|~^#B}%O!bg@7|y9@)$i2v>i6me^&_gtRdE5YbY32yVU_6tJ~^@Fo>{*TcfOz)*{xz))*)Xu}}<(LkTEtEoH4} ztzeCZN>JIFU`@1Evo^E7Wo-_vtSzmrp$%@!-*(W!+TPmL`nL5Q=mzgXcX$taKrd@g zYi~$_KF}9Fu=cYKv<|Qig26Db5*hQkPJs&$n0BkRX78pgm_7>6fYCt0Ujr&vFM zH24&z!E~5uoncLfSuh*sz+CtY=D~dU+`7QJ5Ej8=SY};nT@EYYE9**Y2CRa$)-~33 zu*16Dx)XN6ZrB5RVILf@?zbLw3)4ZBbi_rWKrA2CmwP-CyE20&JSX@CXuT|C(v?{ooR#i)c z>QDn}X*IRlPzUNl64cj{wFb}-8bM=d0&hZ7XrVRNT0$GGwbmBeL3`)`9pP=Qi`Eso zY42z~wH{h8=nZ|fKHB@x4?ckY@F5I!(ce1!U*_C8>x+gG1_QtER5I2 zX%k?QHc^|RP1dI3Pauu_DV~O>!wm9FYUy|u%!WC5E`L9Rc`zRqz~`_K7Qtfp0+zs1 zyo|rgVFi2%EAdzS&45*~8rCqLwRjzW*TV+b2%BItY}K}C+h99z1z6h&yI?o$fxUPi zfA`}9_#pWZ&gAc5$butq6pq1hIH{e`vb9s%H`;0W(HW)uRM{#&7o(JGB=N79@_TM7 zVRkKHcKz6_eQegon0<^hyN)xv&R71(9mjm-S?-WOSBxsJ$NRYwM-m^dpDVRV;@?7Z zct0u~a@+l=^vdlTV#%96-Aslh?{yfKyw~A0YfiH^RL$#mxS7_QX``7AsY7$edq_>q z9q(bYc39TLG#^$!%I$i@?0UrPdPH^=ujz<7I=9_1v)wVX-7&M>G1*Scnq%s?+&)g2 zeVj1+IAQj2!tCRO>_hC&o=_*|_It|g_mtW1DYM^GX1}M*eox7MIRa5msZ$sVM2kpm z>3uUz4_e3jC#GO}(Ei+aa;90E8T4IlZI)S^74#^#HYX_m8?XDF6XYU^f1d@F$*p}B z^hR!NzS(Ym(3`on&x5+kK^fI^KT|tGay`JVhK|Ye0Z+n6ga%=m78s*mZ1+~tt9SG{3TRRZ+QEu&!IgUeS zzlVcn=C(T=v?I6Ok)UsKYe#~vI;bc~ zOzGD_6?1Ff1l7;2eG}9=w{|wDUvBMeP-h#lhds6Oz2Iy zDb9F3WR2&I=A{|N>#la5xUyHaXo*Y3EPPMRsQLf-JsRm@A};`92AkI(D3e|%oo0cILxreS7E zGt)FP%`j8CnKI0D(Hz?)b8L6a^uX-;%&a9;%A1x3W=cuOtM$!InzGwWd(EyltK_x2 zWu|*o^J)vK=cR>aT5P5zW?E*Z?Pj`XrZYA3hH}nK=WFHFa?JG9OwY{p!c4EsWT~Ck zuhmSQ%oJHSuWP_e3(U08Oi#`9%uM-`F61tgL1rqLbTxO0EtvF2ZdaRGvzfIJvlb$2 zVoxh1>2Yo!y4h7XyXt0FBPnm1oo0$OryyXa!sbv4o8yf!YcXam)~v;vV~aJ%R^04b z-0WK1>>6iIK`ApOm{U;2OjXUHR5iz&Xx0+VS`D*S!yH=;b8NNDuC>grwal({%qd7R zQ&V#anwhDEIg}RWcw3pZR%We@S!-jCt&KUhc4pUhX4iIR*AC_sbTU&9a|(KyDa9O0 ziaFlCX05MT>u1*bnPcl`j;+7hwZGZ5zu9%HIR$ggwAf5b%(U8^sm{ah|Oa<%Z zZU1a$3aOX3{R^p=xBb)2nr_w%vu4Pe*!~&y^0t3Yv#ZnW>NLAfu9vs{Ym=Op+9iuU zDDkg@Ok$s*Lvr4}R4236$*grTYhBD*S92)c%+%dXJlOi7Du34!OTs z>u=Tun6&|BZIC&XA!Zt8rc^VvXl%Z6Gj%Xif0@J-^l!}1Z1b1<)Xc6E&6FlnQ*kbu zbJQnk7-~7qfw6qTjcqizJ<<9+h+pU$x}m3znvK z;aNB;Nwl}A1svQ-s+Pc?G_EOgSLr{b|B)`hrI;?NOS(FqtZtG%fNkpcI8A+syQoE7 z+(X~^_4JEro2Ry=VpG4Bbuq@t>NRo~wE>sy+;Wk!L*ozjc7L@t_L)w-78W<6~Vo}q2U542l&TfTf{g#CC+KJgBuY2(Qm`Gg;6 z6KZoWUC{C*?szloZwiaKHr*)SRJbkfY&3a``$72?8IeCEmoVnH)nEh1bgAH21!EUkv&0exglSf6=Ds0H!cv*C63iLs-%xx=H^n-FYZS zK@lQPh!A;B#E@ZP3Lg#^{c0a`RV-LcZAt$dE_aHr8`T%E8ScA z1L?uiBc#VjPm=yrdKT{E5${Gx|F5$0x3qh_sKiS*ksctu6o&_kS6b5FXM*sD(zB)4 zN{e^3r2nkU%0!Xf((%&c@P0LHD&Mg1iY0Jgq;PAmn1+3kV%gXi+5QvJRpjPgkz0DR zrwixcnz0Epgx|z1z58(O*c@32ohd3}j<@vgA=ixcrHih7eT|BEhik@uK37=zO!zlk zJ2q&ZZ~)hgtt)eHnIFy<(;2x?I8M5pbONp&+fjNlt{J;r<`dF)q@%cKTRS!p*Npv8 z`g7@{(kB;-`VUKm|H8FnLzW3wlkO}%RXS7pDXtmYV+Hp>>*Br2k=rhtTKg;RNUju| z!F{o^{(JF(fwT20GS`1V)}(`YGE#Dhp1v2Y-(F_j%7HusS9L%jm(#2{e{d?yG8qQ*rpDbS-dWrx}2P2 zIU?&fW&MfFZ|@Ofzq40N)!%rSUA&(*b?rg!o33~lXIcsz62nZAe%*C5In$D!DYokR zVbOkMmKc5-wyBHo{gNVQ*@biLPmYRLB$nr7qv8qXn(+>9W^BSk^anUgx1SVa5jn>q zY*Rp9AX#loiOqT`Fe4VMdWNfzW9Dg@wy&5gl%f=Uq#pU*rpD^?VL05 zW$PK-%_-XKSGV5~(<$Eh`z6I(nC%qK)?d#N;Y`cxuEIGoA9uc$p7q@eYEpsWCuuV<9FDhbQ zC%VM;s+LRSIx^-3p_*@6@LY>hhtL@KN7F^XKYiS;WV|--{PGSudAJW_xu&kP+{){`zySD zz1GL#wTPT)5$$biGL7sVe8L@l+Wss08i) z>Uz$-?QXHW^>x2qAK!i@>Yw5q%ORQXNtfZwnoaG1b1YMFihGl+{D?zTv4sh-i}{kK zes1Lnbn)UnA1M8OZWi+{#4h|pyzszy(Y~NZ&JpPlRpea>K?S&LPkwG5)TffalI^qf zFUTzIjLW7jEhwhvTbyGlz^yYjwFVBcca~W^JDx2M&as@9`93}+5^Q5mAwb#m9MSG-2IoX#QoN-Ej8+weQ& z?%w(??vRviLex%f?woXdh;8ao>~xAPMz${MhU{9u(qWH$AH@5wig(_o-U;LWSvk%7 z)pdUEola;P$z7D{(( z;t%aVNikKQ z;q&@#Y*TOH9J{ZSm}XJ8sntqzw|7mktv*{*3@t!}uBT zVhs|$Y(0j%IbY{<nq$f+@8SQ+TkVf0NGdn zaM4$mKCX&*Kab)Zix}gcg#1;-(EQTn@vejh((lO1Q0bM@p^2ie^4O-fz(eHraDTYi zYMs~RwoC0)U36W5b1XSBht&|{ZBtXcCt{4p<@U3m+=8XZZ5?|@)R*Ocay3li{^1Bw ziB)@(L+k@^jz!pzOJ=rQCUY!3>xm(MguksNmWMy&Ct#h3*Hhw4=6eIx#ru4}q*w+P z$-GT^sdP8_`EuDhidxjl^qQj&m$O z$sE#HWU&^9*k6CrS(=FDO?Zg@I*ZS^QE~`(tBZMq>ZEw-*5WBW-UHjzX(ES@YAvQ}Iku@;GGA*e z)-PeNPaInnmyYv^*O=rJd$4Y~_GQ^cUgi+>CvsV}smI>t{%V>3m5vP$>&mxnWPT~# z%{QJ(h&mVNScGHMpGCzkvQk^j3spKxSKkruOcmCzIJtkd*yrgk`s#y2)YqOy?pV9< zd(36IH=Ah@mDup)9po)L>4g1t zv!wsTPG{Qt++Qu<6Pr5b1MUy^@4?F)Vo#u%p>mhL)42g>*&pLY%J>0P$qKZmd zg!mjuj1-@JiIJZT;*R*bBL@o~!ef%e*wa)or`U5F%KINV7iU^pa&LZe)CTU#x2Z>P zj^!7bpW$T=k>@0B8Ogo#Nn*WjX6zz2($C_y$zr}#mS;95{AL$Qe%L|q^qqzeyF*Nq9WR~YNRN>=Jv9#<|yG-JH87`6MB#HKJRScnRve;tS)O5PG zO%|0#x_EEn{vXobHAd2;OAmTyv|1YwT405+fc4IQOp9ldGups|f`47_k zLaP_@9(H} zf3I5i+duXBzr^186ZrlSwee>^W2=Aqr>U(v-~S%)A2*4y-}x!JfAO<#{xn|8`{Xa; z`@5g~4|4y^pCRN2`2ORck&1p@wDgOg{lvda_zk{4ZvHO5Pd_8xo`3eoacbfDX9IkH z`00=E{r;0bh3~5`S?-UUf9TKR41j3ktoeuGK9hdz`%gCE{^6(p6~2G@ry28W#sA@_ ze;bhB{p6Q^%zS~l z)8E7Q>;0{Nm6X7;K!LpfAn9Y>_kZW zXa6y{zyG9x?+-uyPxbvP`2Ibg{w}_+_Wv5b-+%HGIHdvX>HDYj{WtLa!%gb(zW&lm z|7(E!`p>YQf9|tWoaFe8&;BaD|G{Vf-ER;}#lOj3_!Ihmi|-FV{qy?%C47JN)BjfA z|51=X@|z5OuJ0ey_e9?x=zERt_n-X3{}$^I^5`b&=AzxA2%u7CF5X8r#c ze82zX5B(*$e~vBv{*&K=`_(>cd)DN5`TmoC=(j*)Klf+w{c-cJ;`>i4pU;1e-2V2b z`2GHqKl$%)Cgqs=k3ann;r`*Le+A!P`njL~clq7K_osi_%K9z1fB5M?^6xR{O?-d& z=|8XUpT_qmMPtvJ{|Vf$zT}ww;irFDq5qSKO6KGID;aBtqb8%?f) zx79{tZe~D81!Qa-jK-xS|39^;|3HaHv&jhc$ik8VfvImp2%(TObJ-$|}$-Sn;k9d0-f?VBv-({WYo zjutn)+1fbAQqe)qio{If< z=vp+QL={_;(V}S2O7vQ9py1A8UiNN^3fY^pqdqPizCRf#4RL{i;V4mb2N~`{Dvjib zL1Cw0)nAVWsB#?1`{VM4)ZazCHWZl)L!3_YDsuRw-X2b`qL`?wy!sLKQ( z*l2+&Hm76s`oVm9)0kgf7ML6YxL0|bh!CM zZi1s)b8xJ3(ExfDM5|SF$?MV3Qo}=W4kp!^^(IBLH|c|^h_ue9Z^}tA0-1n!?Um!+ zeX$T|7LZ`%vGYa0+ua*gGsI|)dsVevv@gE}2^M##cC+&fJ72u$cALHabvbBErjz@d z>1}mfV(bo(Yk37s_KJhsN&iJdxRbJt<@<+EN zrjJ2kwIw1)liTw32=vB0km_|0RNq0%h5t_3pH2o<(a>l^usMn|3=m{AU&V)o%x&y7 zX0!3g$01lfhF8CwY25Cx2t)1{m)-7Wu>^RGizG3`Vi#qe5hev-2t0rhy$)h}y~^4_kGVoc8GE&w zXw=*Cq6@>)KabA`C_x%MH!&N zoiE1SuCp^6Of85DUpzrL`&BM)i>Dg9*LQS0E_M`5_mg5r6{mZv*ukKn3*)8F z-)F_nq%6VH#ec*r2!4*>CD3-UGX^3U`l8sMydBM_6U~OC0Pn%$-UJfKAXa&m3<9-o z1Zn{qc08JO{}+g|aGED6?Uk3eS6AiyZ`A^glh`V3SBCt zRgu8k^ZlC{WMccas@K<}1!tQ+7{l#lW#kE5fsw8u@s+lr`pa$0kX4*a7oFSLY&r)A zN|gMbY9qf5$e852nax;4#< zBiSUXoJ|GXvk@Vh@i?)M6t!qcs&6erz$`Ktd~eA}tAerNYffkP=Tk5V@VRxh&(cCh zR@|QAV*OUW^C_-#Kj~kCut(ovnp=mvRH+T(u2t1i5JbS)bQ*gnrKmRYI@IDe27>~m zc7w^S1drly?2RT>p&GVS!L#xP9Mm`yq^vM0QzULrAd!E7@`5guS{4$|79wv7wQ-Sx&7Z#ZR7B)aNAm|svddD*M3Au<}JL%{SBiG#gNKuI`BZ6NHpRt_OH%TmTh zqYfcdsqSznVJB5wc;F|}cp53WLW`L&8rP7vBEluAQZ*6k5SH9Bfl~RJ-{+h45YU?h zB-1=(QL}*Qth@iCTMRW!>8OTB3h1l~<{Z!jtRqTljJsHEACN}c(vYxzB1VYTm}G;u zl4}`L&L0VO0P-m)L>RssFXT7#u zkhbj=Ws>Cp=BYfz&a|APOL~vGo-49aXk{^Gj89OXn7J7 zgeAFpB)L6iZ+=C=66+huSi85QG4pZeq{>9;6Tpw1z!CA3-uNHAtJTTVKF{b2s5wx-MsnKDD-mtkStH)*`JXmRna0Ll1BL+ypSGVIH zdLSsFtB=#(m@eknI+Q9lXu46SD~#tb7DBDiGr$g(o|@j^gt&e{^;YV3cAjVgu|yW_ z%WBFYo8~_gew0P6c`T7oww`jGVi34Dl7go#T?m z-mV5ikKn;iA zfi8388rx!Umx_|I(WR7Y|D|FUBfbOfJ}zAYI=DL?jmM+PwX|q#XEE^jljP*CKpz8> zY@z^{fTlV4W>^qtx5Ku4z{qW=&NxYloG!`z7f^a((SWi;jLNqwgTJ_z;<=bfaGELU z7}~O1&S5jnGlM(f1k=G%VS`cC@689H(;Pp>RZOcxKGXpt0MgMDuWsV12W~QQ{Mdlp zyPbLaEqOpb(*N=;wl~GlQV-(F%6gYVSh_josAgG?c~$>2z!Q*T|M8k9_VWs zDD~JWbVwmqoSt%^HO#h2Jh!94Voluv6=`@RU)8+?w)W@q>6}79D5y1M3D(D{U8msS z<=}z>Q)2?z3mq04^%}e3AY4$uYt1fR$OTr!%(&G)JqnrcPpBYmj7L{eG9GYkiS;NZ zBTp3YplzH0eEn|w*_uXK9c?k?$s0p0AMTH_*Ah~PEHMdTRUR?GE%xJHEI1Hg z54}7m?a4!a(l75ldC1klzxS?Y|2FHC$uM3tJ1GUkpJ<&oYbz zGBGxpQ$JRNn2S^4d6)#FH7(cpdo{xLF6Bvqn86NRhI*gu?)Y4uEtjsVY3f{2xO2M7IU(yDaZ(+0Hv5B zo@gJRJVGNo=X+?z>BV{XW#eS;Xulw!eQ~}7**`mLpM@w!O}>G9fpsW$p+N6F7|Nik z?%JE)O~zA9s1_Tu8dSs8Xb9ytOi30nw7`5<1*f+hBLXvlrRZ?02=FWH{&DSEanVV^ z!{+0U-0#MI>&I-1KYsL)@t~;xsQj?c4pJgreq;jQi2cz1{gaQ4*Z;V3@q*DuHR$Q% zkBs+`2!HmG^?UY_^?NofUYWtx$JO)sM|Sx07ay5l@8jZaKmEvf&ps~R3peO^0t>Ty ztwc|IBkJpeT+ZPy*$4a#`gtsyD>DJv3|lVT$#qtOW!;Zp&UFtBF5>1EAL9MK`ev3U zi(#E`fPF_)oeAVS zV=A_ih{jgn8@8p|S(G!(q|@80>m==}1n`jsgr5F2mZ>S|R%VeG^KpS$QtOH#$~m9H z7>~+B(>kqG4y)2ww8k@*9j0iDVAoqDKk%{-0scN3l93r0j+F&5NW`fUL?VLa=FVQ| zmxX4ds(6j5fI9pBbik>dX)n$XwzW>c1TO6&W*Au%0BCIi_oQ8r^jab2?)?H1x&((P zW#cJ>{u{2WzbhZnPrkY}G?vgoaL=6u!0apA`-qvg&e6{CLr|#ZU34tXQvCt9-8_&6Q ziCPQ82;0jMrrZt>wd%TDm3j$f-i`-c4l63`GGwpxvK-HfJ6j~%(*1nOIlbsZa>af+ z8@P{cBJAf6elVI9LyZ8#B5WQp%ay_%v2(i5u4OAVMo^8@edkkb7?v19)d=`f1atwk zz{ChA{#4Z&EjwmZzlYhA+CR!au(090k9GMQD8Q(6@6Bmga!mu1qMTGvX$4-e!(nY! zQqV`b!44CQD)iUR>Ud>bC{xx4Y;G0ZV#f!mG%L`e_qv25uU-!s}6uxy$(Q@bwID!$)yZt^Bfgkfo*eNb9z_Kxi1R6I7Gyq z^*ygFP}PS+w;zeJz?xmTk2MxFJ}_xnPYBHM#fzfX@2{$;o)+UN4M~dFi)iz*n(Oi7 zqPJ{~YpnW#PNec|Nmce37G{)jqD|Q2Cxx+27x|1;V9!OgPB!6;0HXzz3u>&meMo() z33Rzf1N?!?po`X%+T}w5z|;B^us2#CfW4IU0qDr}0h^${2SPxG4}_p^9teRZ@_`T- zH9ZglI(;Anqw0YW^y~v650B^vJ7Dv{9@u=a3pO9@gH3K|EmPf~xVZvx=M3ZpW-gkC z&hI&b(oq0g`>tj&TqfMo3HMx+TRn5&CzJ&x@)KC+tcVV%<)YiY^xeE2C-{n-T03~? zWGFeEVGH8YZyY*LK2pql%mIJf?fycK6Aum zborhba|*3reLHqgC{rxkdc(3kNnj*(xeYU1k`LfX;9Rcabkw`S*jVn#Cm2Z?ZwF1e z4`|-Ph{3c7O%s%zi=G8k+6DzOjmvOi6yzh95>H^~UE^0zYUbTNpXD%xMX^MEg&-0yD)X9XhYJafZoT z##9^v^;r?PjI$()eu`#b2oZHp(SkZMpMu;gObrVt1zc+$@ch)5II+r4m+FlmI9sy@t4DBg4t|2B`{mh3dpDfRtf_;>oKY`Q9w ztRcwl?E?F+Gi$@c63BCO&3i&okB39IL14>$x9#iPNG#hg3JAfHa(xk5KVIc)qq;at zu0xF&2J2#mCw7~JFKZ*Eb*xq;@{`!RiabNqMfve;6Qs}!UJ3M0%YcLmGNf*F(2H* z>IUoo+9-VSOme79y)+$wbo^WgT!{RTJjyab;IIO;<${p;0yxKnYHr{gVulI_!dGj= z@qcC3;4)ZvL5VYC5WPo5;|eEzcsRw>eH0sQ@9@-*zZAW}ARY(;tE9z2@@rqI5a&3W zUg1B5WLdZr%5+C0_QjiScNY^V7LNy`ay$@1jQG%a7~GHyF$WU;8dPX7tcSGk1_8GR z8wc!J+{_B>K$`j=#~enqb^`}Pfkf*G4!dZj2ua;CJQ(wwk-5LbBFii#`@I=9E@ai^ zCpc&XmlPE~kOhFU4aYO97gu3zp~GyWJbvHS#ouTO}}0 zEEIW!q3=$%z5%5R&55U%--eY-Ma@!XCUHK$M?^DvV58-#O#hulLm~&_5a@`eV60DZ z-u`O;q`92;_T>~Zu@lqqy}gnwL2k7=a(-UXZuh~r$_;mM{Bl^pog~tn(gD` zhPylGXRVV%_ncfD@9v+u=ltvsy% z?FM)AgazzZxZJV81hCOkgu@YRdN8umPy!8I-51^2v_E|y%(ePdMz8>$2b7IgX(Z&q zB4yL%V+3SYTuFd~(!>M8X8*V9h$(ApnW0NpW1*9^ox#{4>#Xh(L z!3GeUjLMlM2Q|KI2h(xQf2_t@lf@*GWOQ14A|7yO|<4BN9bOVwdXcBwfq zi4hB{CYoB6bvw%NS_M1F1F#pGOob#G5~ezrQ~AoJF6&KbJ5soA9ePL`DLO;z-P)>7 zLDuk~$>3a~#ZZdpVfHWdgkr@92xwL0LprZPuZmY7@V1=W#e9^T02YV0un-Ez@L2o> zW}5l<9uu;%(2(4JhZe^v)(3BxaofWo=ni!H8V6^IZ>(hIBOeoReKmp!GU%WwJuQ#R zK?SP3k9%**%*L9f@7rN$uf1_jEJk1$e?GG!3s|C(7$9W&^sCh7+ z%lQx-NV$27c^o2dE#`J?4XEM0kdu7KEkhC%b#8arsu=7+K!4_gYB?C+#3 zQ$`_I)!BhfeQ}ON$crh&18hr&`ggFrw)q$C?;~F3e z+9X&4IRQxR`Mw9CW)|<7t&68wn(xJWYO$W8Y)|1Ua|LOMd^TE?+ zgU`2mPhNc9+Z;ar{Mq)_=F{g-pALtY&%fCDV%Y7*+blSc9#Or)2^#97FGf7{%k_M) z3Rtr|UJ0@Va!?#e>6$X~oFzNuZdWszigwL9`bu0##|VLrxl?iDvp}S(Oaxl0nKi_@wwE6ko)6LD@gWYFOw)VIFsp1!Y!3O4| zch4T--{8sTn?)D*-XO2O1YgRO>{lA7{ZZ^H+kHalToc7#&xY9zLq*p%IAgGhPch9! zg*gDq2iX3S7lv#(=E}RE@L=#gv-EVOD{?|K0Ms_ZCLY zKyb~Axo2%ESY@Q5VzsfUMFmz0!7xc4wHfsc`|Mbt(g!`7BhQiEzV^dMKsF6wt3=00AwcG&Cfyt zrp=6h3PakUy|3`R_7C6N7RwNVeclhEb5D0~ITn9dG~ z3wIKlYNV8zm!Vmm6rB5s%Ydr(P~vSPoyupZ7vr^Esgwt2MdsNvYie2ip0jXn8ylW5 z0pq25MhzBCy*D>OT4-U|jwOX5biHxPp6=fO5c(Dw{NWO>?nmv0HpeL-=*jgKg z(xD9?2+}+X6cGg+*bO{mlWteYWrqh+TGV%~24Q;0?{r&@fJH{{eifW2(kgEy3fo?< zm|?M2R}JM@Jw-@9=CD*h#aM=^Bwdn5YF34n?@Aq&dKD_tHQd4~LdfOJ2q&aHEZV66 zGR5dpds0=GtF&4O2-qoqr$bc;#j_Qh?F4~ud2eb5yI7cI#vRBNmX;X$Qo$b1H|NDurB*F(>03pvQ=X z)MKGUlUhuW;LZcCKZ%p%Qg%}FhWf-vu<7HmndJ9eA|_KVRiGDCs|pt^dFQ2A#2&1F zi_6;~B*9{8y3yEzOf5JXCN8vd^c_xm!b0#C=l2GZxL0Uuhe{dl&X?+*m2lC|N;XD1 zt6;{iXQ-GgF!82rrdhMbxy^R>fV08LccQuMx`wflRp)MD9-tUmL&_>(HSTYXg{K88wQ% z0wgUyL>cSwwv2~|y1iK2lC_mxsS}9xbPUsdE?OdoFLs*P277>$G3X&~hMhA%=ldQ) zBEn++*5RQvBZ*i*4D=z&l+k*BoP0QHE8Vih1z>EQ57)0NgBw z+g7R?!ArH!U=fB%&BSBKGQ$U_gYs0(W!kcOM8v=bWq7!BbvaM3W= zpC(_@i;Z)(!|cYI){CY_RtwB&5kp;QIHetAFEzU9&?V5FvV2p>2S*z_K{$1Hh+EKX z?aO3dl9D!Ibt3%RK3f)S@pb)1fsu4?{kn$K+;+}$tx+Lt!Pg|vg_>l>hfUmQF_T;v zVJa~8WH8JN%^yIdr=qh)4CLvqbHrsGPy|skw6ok4+a${ba}vGa+3(Yi(cf zKt8h(rf>nv;hcxH=I1a1XwRhqU0=*5uFtV`chv4$i*N^HeNfqoBg6`X?<9zAdkg_c z?mTIp!U8=fNEl*?CxkFi%bI~pC^WMn*%6LZmxDaXgMn#qSfYnUjKLH8vr)k{Rvi(3 z;Y%t#?zDhAbH$X_9G#W4$gPe)Zb>acQi(Y-8PO|J12c9&ui`|{704hpC*UeIh+7AV zgNd`dKb2LFgR)l8%($ySFh4WL!(#)P_TPFSgk;PtfIz0aZQX}VfG+J6)N{%6k7F*R z41+Hc&Pt3`3^|ib43vm$kNwgrda!e^(Hw@lRVer_bl@K>vIlcr527=|nFWP(l5iL| zKFR`v7SHzH@Q67mW>qJhka`WBgdlrP!dZ_E)iRi3(XK;XTq7{6Z8%{;KE=iaf5fLu zGb5VYb5&QWa6Mq*3T9ps4`mMS@Ttu?z9kbP@!~K{#=1BPZuBs0*kCogcZ>Tr>8MEB zxu=eY!e2UhHL9R&2tJ|{k|SsfwpFxkJ}jr$et}(?Dd+8Ulp)ALylzVDRI;co!H5re zUC?88u&^4#GRU)AaR5nt5<|CdNJln=)mCu|n`k`w0#j}Q30F84;FT@Bxd%{|eMe&<<%09*0t6#CSR#FgMmbCu6*n+P6hrBm z!*&$Sy3X%#We%7w=?~ow`>PT&4Yozpp(Ya96=hblRfuVzoY>ShZjoVlv;R&p>8Ue4 zKO9ppEjtonAcZU6hpr@-0w~!eFC=;jlDR zfZ&Ko##y(8*h@g>qs(KXAqmGsF%fYLpv~Lzb!u#Z>dnE3rCg=^!kB5@kxsAUJ{XM9 zft_VHt{Y;v=d_WFvbVE1S~y)2`4_D)=fx`7IZEAZOmfp@Ofo`^G1NA`_q3As!H_Tp zmNO?!+MV7M-|e0y&TRJ5M>hFMs>cXJ&znI!bU9BR3r%-=y5`#6rm5pyz9rTC-V|mT z2IB>4u#%jYX>A=Kr=W-tomb_7mv1HY+nvveE#@Z34590*0ayI9}k{={?bmpGP!Ybo|%*2t*3 zG9Cd9+%#u{{GnvH$YOqP7il-?z=98KI9^nahhi}17xx<$2%bN?#_9Qs^OxObdvCvc zw10AV{<3JEeRF!=?(QD7n_qQ1Ej$B>wbU zQA?~L*#71kTLYjAO@zvauA)E<3{`vuFfzlH&BkNtK~ zV81cO{hfH>#~!Xy^5$p;YZN*2EWoHNFPj>@%dyK3n`#e9Elrhye(gFH649qk6P)P6 zj;1$SZZ`*)+t%r3-tTeDv_hO9C)6L+RC-Huc z?cVKU-}jyXySXOi!QQ3aQ-V-tt3w#)e5EMHTZIx+Juphyu8$zAL7F0F1G5gPZqo ziFY}9g&Ur68sc5?>bMDK1G>3U=e%flaH%)%UR+EuUVdQ7i{>moCwX#S9KY%mub}vA z-~r0X8CE~Vt07-O8iSKzKfFAC%jfaho#GrzUp!RN?rc4Jgzwk9p~x60PZq1AK*+q& zU*xBg7QE@1*^Eh2QSVTNM;ni^!rZ-=VeVWTnHso|25Ec7+k6&0xL2U9n)pC4x(9M7 zqyF#gIJ3=$Sg`aZnve;Th362)v6(8>RN1Tm8Pm=&Fc)(XhUOBj zh5!cD0F2>Wm0=l!1zOkj31dAF#Jqq%_KJ5IAvp4a!=J(naI!Z|ciG}anQ&som}(+k zH8JxtBd|uUCTusGdkEf@7>w#tLHr~zcMi?E!Mn?%s5_eMq=$o1Ly-|18r--%5;k%7 zI4^}`!r)Y_4vZb_iF_ubb%rg0 zm`&i*fzUz}c7WZ*pC?RErS%db6zFq%5C&^dp>Aeon0yR_R0ut$>dO2xuZOM~JRZ`4 z#DLcjgao8(V@zFReWAR#&?2P@`@FRYeJD3XXx=`QDgm)7^dFZ^3`Axryd+0ZTH@^1p2C2({~m$9slG7z%1rz>vReMEVP$ zNKdPfL}96`GU8zu#??gRx_}0vfwM+1p=0xo^iI^tK3N-cTFIsqaA~~K=@xaqR(X$X zf@M*>+hW6_SCCzYx*$(dp6Ai8xUDj(Ko*qAM>wU)^^4u{jRY#x&3ob~$FoUUEYfEk zBI@noyf*fg`0+iZ&Kn3#oyBy9F6G3+)g+@f-eUVyvnmLAEKt-=LDc7VR0pS>Z8p=n zQ0=g4-^Y%LR(kNSUWt^eWK$Rv<5yL}uO;&=V__iP95)awM7Pu=V0xYPstT$Jl1+7Wt+-g#cJ z7+g9z89^-cE&+q-e=4Hysv_}Y9|wj9<1U}35uG;9T^i53Fd%77;@8i}(wyG3wvodK16K2FpLy1Kwt@ya1_+SCkN?qQoEvS%Vz z(c$oTywemq6;F=|Fg7bz5z`f(jVkx1Y1yY0U({1+z#^QnJ-f_=h1pFDDz)=LdQ?93=e+JKe&b72Lq0quW%&J;BfBWBm!KVhH@emw>@q%cXu82cxCN-h>@l~GBqI()g0cAuH< zFcWX0L2iKxcUp%yw$hvMmfIB2Ic=Pr;7XZ1lve}QW1R0FpEAaB!`v9WKY%x zl--ObBO?iP4fF`4HFJ?e=rx&RXkK8e*PE2s_+Y7(#B7CGC2%$YuUw(FU0fH8O#DaM zCb;=-iqxwRAE+N@qH@s1mHd2K8$8%%t5iiIk!=+gR4sGGjO5kKVtJ*ADwBp2h6v1c zDce{cXG6;tjy#(b*MgOaX@>J?3bc|iYFGvENzi5xv?$U7BW!}*?I`tj2gmKPiO1bc;-8F=@@Iu&cl}0FfbD`u@0xJiBX)JV1s0Ik3yJkT8}^(~F%m->l8J3jvucpFF&*#9IFpqX$mjJmUpV0uNZ=Gh?tzL20Bxur7onJ*UXVGzr`Nm9w+&89d8d;{vMn6B1)~Tg2;@;j%XXerWY8sc*ezmDO2N&(GS@Z413~lx%iNjQ2=hP zv!XB&ai>WhQlk${^rqJSCT!TKOJkKwxuekk?qQ$1Q(Z3M$F|=1AZn6NVBf7UuGz6g z#8Xgd3lFay67Y(5zGIt9gPFOqp$X z5X$!Znk6n}ag7bvFuv%v93$&o<%B#U7bXWvfjI|MWdrvkSw<>0AtBuRl5vQPJLC*p z!cLeVZJdycQD3H=6zfrTGuDnyA*t`V0frY6M>D6f>8(w1Hj^L)bQF=nbR~;SG;da6 zb!_@f#P_9h@ON$Aq|9$BVbfZ{_U%^VNSCvyPFG-kAZ+VDdO~ICCem15YenuXE5=`8o2K(UUah!iBp^sfIcmsno%6l)y2Gvz%Dc-+=W9cF^a(kDc6G1JQiLM zNnC}EgF1+N2cS)AhJv%z(LE*P2Hr(2*HUC4k29*?WWb?M6WyTJ0DsHFTP`|;DVBAx z@gcG3(5|9|+%~@lRX_m2gkftUEHwo_pMrmb)U7WZs7VBp@C3SZO zp*6_v3Z&_flXiDCVGS74)_@^7W<1=@iTwsXqC+><)qOBdcVUDkzmP47yE*)ET2V?%$rJ2(^MYN{0D3?OSr`vB z#V7$#i-aeD%eSz>d0Z^Ovx@o2`SfsF%+Ki=Jubd|TzsbikBdh0TY;q`SI(51%&}Wx zfgDHFc+b^Nfgjohd0fO}pbZT$8sWQM+BJ&?v%0r;x zFb4yIHq%X(3lw%cvy$axuaQePEaYUm1PI<;3lCnLGh#+5x`!u#Vx*lOv=CRh-p-|F zthi9+Tq)`SX2Yhqbzu8|dfomT?h4LtC&ex-|hW*SDwkV^gbKE#O z>Yl$mgT}nr+dqY+qkDe2)5bu=Fbp=1Bj}BFJr%5$xMo11HbM$q>phtBZpQCs7(<*19m>aw-?1kc&XScFsI@UCGh34 zz$H=UBpt~c*2mL3O3q3s#0+%8i&_P(w;=h8F-uAy1d0bzYv?74<-2irK%%?N^}E$; z1YnOMP%NAj`fm+t#M{B_j<#w`0*`kl@}xEo1j}&0iCpX6@wB)e!9wW{Z{yB33v4U= zGT~3~%u;88AbcQeV62TMiXSnd_7!`0HV#BojnLvKR@-(UZM_c{7sUwgne)MHaEH*u zNUI!1cK3U#^Jx!;J;lpQ&gZPOVY{LngHsCVzL%E`EDf%3dI<|i@Dtc4;zF}0MNhXm zR{^EqNBuY9v?aE6udj;%_A@YLV0$A>Se$!OPr+P;i=RfMX$Pcg6zIJMKe&TwKE1`% z$H!CURA1YkU3=KVtSU6<0aa#dPti?bX~$8AmHX69Knw2W>)|?UQqCr@(c{ zjV%0r?Z1ttGCVxF=kKx*9u=`z159odbeY(l3#^=Mc|u!0(<^XIFVn2e7kF*;#_13SFK%CK zD)4!-DN2p&VV#xf*& zRFYb+(JB{VcuU=IL2&eh5Fsao$OEYh%-#50$8Ub!Gdxs~=p>p3I9}USY%IsH(44n% zrVl5J2+Ewo!=d3rv$ys&Tt9NDg4}~hjjBHyS**nr>O&$@c^M2oyCK>Oi%{XOb9m0Riq2iT9$rr3_QywIR#@)T%vO_*n2 z7?DCTi+6O!z9;6wFoRRCc#qa&I)l(eN7al~et+uMsSd~^ z=VB=@BYwWzzwT8pM+@|eZRM(7r82ks!KlvgDlQ@=vjvExN?1BW5}s=Joz~zVYVB}e zROnk107+r33NO-Qe9oX3qU8*ISS8Kh*s>z-31EWIR%1cZz&-!iez!80GiV7M3e7~b zn%cTC=)pu@SCHWSsH*Z^x1gnViY11eE@}Cj$COgLcvF@$9CD{j1M_n7E{XHBm@DRx zRiV)3)4K~U%!fD$!84)vnoiIST1VoHnclB!P56o(*JNo2SZBu9mWzcP)+q5AE3duP zsg3tb)>O4VUPG&v25bPM@4m{L#&+s8WUS<^vFtlB>(t*`83#z1n1in(T@%b z#+y+}wL;VJ0=6nM1NJP8V3{5XeH?Rq6_r%y7Ch$}M(CuHzzef7KH<&Bm}7zdG%K5J!ZTgP z9zVNs?jAv|hD^%O+5Tw0Y8^=(uL$W+;};KF(ovRh+R;5B6SzEI(+u^Xhg6wkRSSRYy~5`Q0JGJ!Lh$2 z*m2|Q?r!UxOMnIAK$y(Z!xvL?>5hD{JAt~h9HqxJ=hcBAA&hu`(%?jXFRj?UIMA8b zqZV{Zjiav6)#{wfVO5Y5xavN^dk6LlV?sJMH@llpwhK%WT#4*L@JHWonKpxJOswAf zN2X$Mk5$!!_VS=T55lBI!Xx5o7pdm32h4#dbce;*zCd&rv3P)M-s_^|3bTytoftQC zmz5Eg|2EBwT)11}DpXgo`j5+>rgrsOu~)OS<^sU zt_>g~N6EPRe1ZzdfeM#hVzI18a(9i6EC7TgLpr>sVW#`d-nhSeBo&~FQN4}8Edq=^ z#?UP|ol)B&!!-D5=tN^3^ecv{6QDNo15tvj5?|=Zz5U&b!$Ur{*Ew(V#XcR+hNp4f zYIe`h_OY(q`{u-5r%-tApLh3K&2ywYXkZ!IJ>EaYA?a89M+FDdapS!CvN&$hMpZ7r zUW2@0Vl481E!FDFM&~8RU8j&sA#$bA&db&TP9!3uqjvkN22DRzz#hg-fma3hQ0FcN zm05$LGDlF>Lh;H*ux|1mG!Qv>I!Eo-$|5^~e%NmBg(Kdq{!!xx-xMdUW<0b`VDn|8 z1!Y6~`1GuMaBo>Iq#0IoslUxN@}up=irRsm_V z^^%JMi%~70$YsVNA>()UK|`8H%>wX_mUtrI6|E)7KWXu+3K0W^0=lFD-K#GteX!jyRhqAPZRg=l(s1#Fgb2zoQY3BBmPVkA zC<#|bvv&00CL4^Om@cNVY@#>IA|_u-8W?D?yN{_`ECKsMG^`h(bGmQbN1QPa#wKd+ zb)K|Wv^rgIRM8on2S*p+dtkX^Jx6wCOyjxMU|OFf28-&~stSGuy+-fOt4v?a zE`uG(Dn^mRAsj|MDk)f-OGj|X&&=p6RTsId@iAYoX7uA$2A)YzDS%*XK;r6-(d-r? zBRBfQ7Q6nd2_ksFv0?Cwf!dl_g}cQm4h?GP@?sY`4ymuhSSD&BGS)!2AL%Q5E)90E zKQw?!v8bm>KE=nN!aU%k+XpYn~>|^iSt}U*(H&4sa|KOH~I<@K?8IJxB_r|V8aw| z_e^d}Y+{ms!{|QK$iiw&EBIIivqMDTXfEs%L&E|9x|{hOuhF3q;{;phH{pFg8k}hv zf}yMZkM_is2Qeh+6|%5CM((1N)E_D#^M7nJqaXcLhAYKLTM*Lw+M$S}zZ*}=BHVhP zqt+E@Tux*e3waL&F_rHVtTe*3HV?GWXGk@FO(XNP>w>L1pxt1lr;Udp3CRZDQa1$q zQ>Fk1K(#{y?~B+$%l)(5Jv?uM?74sC>dECTPjLQJ+fXKxn7YSGR#mxmkIvS7lqF%9 zk7sb~b=?fcu%2c@K*}wWjP}z-gB;T|+BiY40dWEg2I!HAx0^h9N9%4uethV~wY63}A+i7-w}+`s|bDIfd>tHn51Ct?<=M?~|; zJiyyLLhR;L`ZC8bBS5SJ>U?AcAhvG&E@cMJZH9K1OPU3|Cb9gWZFV?`A_Ga=9Q>i# zBDMgG89Ap6aAvdyWSi`)GK@!Hf&?Qt^5Kv*Q>lBk73M69+wn|+qNGbiBoL@}@XXoO zwFfYBfVtM<+Jm8&;7r`*LeU+g37LT)<~SZrWNrhE|2uPds*s4<4MwG3za%zF{icQB zoz2;%YI|D7Xc;+K56?s^WNj6@curo1ZP3*TIu3nzHpeh3rFi@GB1d z`sLuI{SdI>xBm>ftIv9h&dLCIr_N+G~p1$?sBQYli{N-`8X*H%4~n_7Z3^ zWt8eh1&rN{1Y6h&ENGNnR*fzHdhQzZ%RuInmB=`mm!URcs}2m!ybN^#T+I#cm6Ed@ zv*aQA$$5@NqF^Nhn)=6kj)D^=QZ_8srC?RbX;-phr5TXbDa6e{Ym+V|%Sa{c)q?gV z>smKs<%wgGxPq@|-D29w8nOo8;?iVz{0={cMVZ7Ruus`Lp^qo|)W=m4at4~T)PdxONgZv1sE7sD zsLGCeN|Z`sEEsAoR@YLhuRRxytl(z%9^?fov<_h$5K<~haq1ApL7q!->JY}!XvJz= zqkkEYkH0i@a%dED2n=ng*S20SmJ{M}w8adHnvdBfMnYeGXcD4gKJb!Z`TZIjuuE4fR zzW!WKyH#$jfjwIbd%TkN+2>D|U{4;emP^=b+UIM^c)m8?av59Y^Ut@I$|daS3T%5# z8QW{h*j{PJR=K@e#*;_L?>(<)KYG0N-r)BH;sTt9Gk*MNYx_OHxKZcfw9ns{@#gyi zw;sJG+s*eT-F*D0XnlP%ZtEH|$X3%nUKpAzI(Cg!aXjkJr`2@0*udTQ8;BSsW(-uG z7CO=1EduD!^-pwz_f^y(nqZ4nRCRMTFWh*CW`xBFZL`L_59bmWh^Y=SYZ=Dlb+IeR z{`m1^cniC#ASP=$4)E*VocbwR#Fp4o##LBy#*^HLVy9GsgT{_Yp2n1`DGh>=w(THB z1}CdOkg=m1a&d{Vz#@_hKN^=nH^N)mg9Sf19*!Ky=uJF1w%^$gwlKIsYJ^MVgocmLWK#bWx_`wv}|6166;0i6m)U_4LXfG6r7Z~z%K9DgIogw+W=tW)m$MF zj!wqdRJ=<(IG@H~Tc$;COkcddhT>6lxTaiaka0y6>XKrq@325!fm;bFV#tn%4k5Fr zfYb`@(xw1NBc#=JnRm{pYLiwK!-a~h;0CeJ!z&U2%-uqZkl)c0Lc@4tKZfusa})mc z@evMNo^%dqaevOMtr|FecXi8)Z$KcXvR@w&=fI*YAVEwRTg~tQ%a_C{I`??X;hl}e z_4(p87sz%oYpUe%x{GZjuI6sBabpi}_X!mFKuv0KNwp$}_eS$?YXKbe9CMp!{4UbDW+eiszBUNFKxRE-cB`X!yU`arEevT+!(rsxU9 zA8_OCWE$K15LRMB-R8Of4mOJv+QXc*zQHk3#3ElB4Ml&jC`?7a--0x{e!q#l5oZ7K zKqtqhcx0R}l|}ByBQ7RfT{o-};c{_S*hkiFsb+s?sXo{{-X83t@?!aqEF^FH-$9ZO zR*I|*3V@p)u1vx_^8vCFh4&OZ)N&gjrg8$T>ecVx0MZ|0zDMHa4$*xTSeJKcX&q^!HXI&5oK&-&2tk)8^6lMO{0G zzBj?@{P~{f%X8;@qOPAe-nOzWiVrHdn4jTb?H$jNx*88=u7znx3HB>bq+7{rDme$5J}Ctku$HF?LOo#8$y6vHPSa|$ zXX>|$_`k69cxE#RNq)4o_dTe!I3bmTzS|cf+{pMdOEWyE=d{GuwC;k zy;+XSH*TOObET!7$vU6XuZ;vhu;y5(bMUS`_j9;FqOq&whvP$2+t~_qaJ#M!wn4{Zou-O9%2XW9!R#XVs}xW z<{iAl-{of8tK?&nV=tT&Bze?&Bu@mRAbTsJlIeiwjrMYsG_}6 z(BgiShmA{eK?_&;=Jcl-v|O{>%Ms3`-dFtIUSjZDI^Zm99z?*t@r~eTA!p^# zyxfnaz?DaF^DrO@Itl5oY2vHmVMJjLbW^4(#MvF(Su65VG=;``R5)-o=#9Y@v$VAm zou^t_Y$s2zKo9H!M+wZQ>BB`wS9*cY^2zXh$LHRl+$C?z$nK7e!p+++fqfN#4GLrM zS$dd!k^T8*J+Rr0*&VG!CYi+GI$6|G)`ONXRwHhOfq{^{gUv#jXHJ#`%dVxW)gjzW zl{o=;scFcO8%7flhBHIv2DO?)->~p-#Ms`fdvtEm-CzOOtQXFRecKn17ta9SW*k`q zS%>&It|MwzF&BgCsHr!|YRYn$+v}cw!8T)J&sX!aW=h11fjFW%#1q&|sXJ!bwU&uALb7zvwy z+z{*dekMUdiu19bgFK_K<|JQ<`m|IZK$G6A28M|!RbG5t8AH87Vr^ooQEfcKQtMNP zLea$?SPnG_TcUG?1=?7ou0*-FW7iI6mX$Eq^|2MKSIk1ThGLkPLRIGGvJ^5n2b8?m zx`bI!*a6l>n(v{M^&MR+DAYTlhE$lkD|1%v&U%eKw$w$zi`Xk&Q-fHy)IfXQgvBAjLTa%50silQCT2~l*1E$!COPBh2brihNK3;?ScBkYJ&ReFB3_z& zZOBFGuH|De0v53^(S(3!)-eNU+7%02D!*2# zd5L+~lUjX5Z~=cRPmtI-1mQSWIR`>ClZirXLdFFlWJR%8ZHLh|og;OTH45JsXDt=! zA}1NUJ6T3Ht~>qt?PWwrY<7iCikay~yu>IdzV@;kd{yf^*!0)h!PIusAsUlBu#<@S zater^Kp}t`hEf_9K;J6iG;xa#&U!7aBpvFvgDs~Fr4G2@bW@P_<+s=hTK{3Q)f^S*b0E}T)bxb(R{5ue_5ll`e5&0RF)?kqhL};qi3T0Xq1C1?F%Q7nB z=%W!Or@7dJUGkME!pZ6t%j51W)0RYzfydc#WM8%>aQgcaxF;j{%{@ zGIFIhrp!cf=F5&@665E{uc zJWCBVjw!<03p^4Z@xrXp+1l8Rn@w)Rn?ztd6Mh%@i;qm8 z1}2(Zmq;f9nL6ZE!%c<(pVcx*#7V-(T3poH1;hkW4JG1;gIme*PKk(1>GD#`<|90q zZANs$7RQY(P>D*MKh=FD67n>rCwRTfR+SMIRe*Rkvjq=>yl~(`x!Cy_C;~#|9=6%r zprGkp#5;&ni5mt@fcIGby(bqoG3LRwAtu)UzcpLVFYB2YBnf(L!}y*xC^E)0K`nZ{ zj?4apCh(%EBR28{&?6d#w@z?9B`%Kv1OAoGr0cRQaq+NOr+W$RTP_GQEv7EsfkXpA zIz6HW0($!G2zFUFN98@%5 zi^5aKU?se~9fTLqff|^tXaK|*$k_}Rgjp%h$1o9>7 z)jNw44*_79p_)n-fYz+AWKlLYOgc!RM;ru$0wATQN9ktRo8qZ6OyV(z2=cvyXq6O5R)uoxoG|i@RX}DR zkPen}@t$>j7} zE!F8+#S|s?Gna?zrpONlGUWqxRl~2St_X*k`a4PW?&T# zc7#564TJP+e13-#=Q|3E)=^R9EYvwc28q!FVBz$mgET&Xz>iY$syi6XO>tIrXOgEZ zFu;_9k&%Ij=*Z6kHCpd`M)aVjnE7HkSyI+0&+jnXrm*uq`&GX;R?P`&Psc< zkev~X8UGSDM=zjX{%U&Xm!HI;ZW)1Y$x^Lw_h4G0)dK3MIPoSPR72Rqu4UM2C*MjQ zwo2DegrPb%HM-Qvo>Ythsq|~IC>JBZg(*D(}vRy>V5_ z1)~)?${*2-x5W9y#9Zv+#Z7+Yo|L$K!6UeX_c3@hcLc~h6o6l5j|ZrK#H^Vyvt_2m zuCi2#7kC~FMe+w_>PNoL-3Z&iXx#|+8McTuIxd2vMf3?0972U4#DY>0D{}a+@IwGF zWFZh#(5C`L7YZ{F%5cY4aBPRz0fL;sJ_<+ycx&k`|JVkQG5_eq-b~Sk4IUQcoon0- zan0X3Lr%&okg~l1$`(@K>7q>g-SXdU`$g3SM|t|aaQ_AT=-;;^TsG01VQU5rvu}l4 z&!Ntt2XCJ*bleu&%@Nj7mQnS z?GSZmPRaYY?%k?;w`<;udfJP6+KYPHi+b8tJtz8h(HJzkH=m;&W86o3gas4scJ*H) zBtndmvL{jD=O__@%WG+&bT*xoD z5)Aoyxs3^Ie=R1R>bovo3HMG$>=ulb1b4C$Jac2v#5jSZ)TK^lioXq79^y#mTbzJz zz8T`ABeX2XZ!rAkY*bbqJ- zC>{lu+_KRZtjI^ISA!-QV+gZF6Wpf>&VxTDZ-V*Yk516}f?p0DbAh$PPfm~A%mbzl z5P3X6@^F8I4pl^Vu3exySdT+l@oLJ0_uz5oP#0;5?BfJuv4<5t)Rwc$@f(Hk_hd@8 ztg*+tuckvs^nzCoaL;ZEYe_u==%!iOM0mPi%z~+DWAIigA|~nRZZMCpYqj)vFoPIU zDc=iRA%lw+2uv;l^*E@2?jjJjm>$zzltic_!R=2eO#&LM1$&MK?sW#Du-k|nu$to? zX44K9#lVp&o1A;oTdX78@KJ5hc9GXqZsdzfM=)v_z`^OY4d7@*x?EpHSgx>uhNDYi zN&v5|++IgKGUGWAb?G0Y@0>Gi$+)m53n&1BXe89*1x`e4L?>k^Ny|&XlcQL z$mndwL`6qE^tHj?x{o1IHnpHApn_I@bPH@(sn+Z~2<+Yl_r(>z>19wppMp~cy!Mc>AklJUK@B|7CH`Jgo^r1o<6<<2KpZpw z440l=me)P(4b5X9wpBb7t`K}19-|2gCT|x9aYRVC2E-e{JJW!sGwNck!#cRRgcqur zvX`Wa@Zi6rzl#MHF6uHjW=+0jA%ci_3JB#23YWXFvw$1E@BzJKCy;m%Iuo>xGJ$VQ z6ziiJsp^!Rk){<0cW=;J^enhRzRC+R@dX?4h&!s`da-N4C))$T}O3T1aMt*?6rtiv{J#QD8<93}5bdUgOalIGM=lRI)Cz zmf0i{23ki#G1tF_O?-yN07^JR7Tz`; z5y`Pb(s@#>1#cNRwaLgY=qIIl4jyPAuN&hl?9DH(Z;Io+r$y&w1MfokZpslx>unDM zwh0LVD>l6)k9VvqVDZZyD6Ki=gGQ%4C@dg@LAdx5_GzQpqUhZ8i({raur$j#zAEv4 z2JSKn7bC?Yi`zLK5k|GTy;!fYSEGw-rkRStQnXzlE;Y8{H|~(v+r=n#$Q2;5aSV>0 zJj5%Rhi4$>Sg_=nHaI+zA}sf+s@Npm!6HX;8uqv`cJ6VLI{L>oYwHNMT)g!e)WsS|^wBh- zs~i1_Y3Sc?@Q9PiMVXi}b4qZDvSTD}%&L#%Af)5@pDKGMs6(bEBOPK&Bzv+g>!aRfIWD~LP;e|rdDnAkh3NvD z!CYZM28(8ItObZX#4w|vVtm*rb1S5$EGsg(ecX5v5){)!BUB zLcJE-a}IPwS<~%P>aauDzhtCZYjtd3*0_30vZ=Si9^sn$uGZD+S+9jH_h80hQ+KtY zyOA*`=-yEilG~6#Yzqw5y}dpU#z8WW%nN)*nB4@5o#d6wHd+a|bN*9oVj30~h!Edsxt68Tg2wO?@zDnQKJv zD0%5hu+er5R-6gz#Pic4+5ZZ*u>vsyf!zz!$XTkrly84!3%Q})ez>X zw7d_CYSzqG{0YQN$=ce;*nS`DSBnb*^6_917$g!gugZ&l&4RI8fpO)w1XW8wt}L{T z)+_}h(Gr9SY^2e|pmH~UF<_vRa(UwXP7k$K?yV>r>J$N64JUZS?ac(QJ`W5^hr`$u zlsR7e2|XwUKCjmAr0s0F)!Rgy;}(ey&zAhScI6w!n(L{bs%*EmR_@P*Md}2nLpg4 zspg@qQz(x|eY_Q6t$|3i1YsN~=ZCO7v0`gEU_k>@oP}<9N@5D3w360fC{T=Nhk^oBvH2g-ZGyJ{&3B3V;C zQIHYNfxvBqY|=m$h`)XmmCEHT?t*?O;TRceoCJA`>EW1;;F4;0LC z_XP6dbYc%0sCikrmQvx2uY@XD&9;0ftWo|;fztB9#KLlCROahv5*-DB3*z4R+nM+t zwX0n!FWH&5c#+953Vs+M@y_0YDLfow7W(@Pt%gbCc5aQrR$4q;n}nY8EQl3Vk8q2T zb_uea6QT+d4G60Z1D+unDI`=5ELvVx&D&~`pGyQtQsgmiB)Nu~41OLK0~y^y?RH-r z{&0%=qCA^%IxoBi?qQ`ML89olLSIltw-}WB+uf%=ew>j`v>Yo1GAKcOb`nEyQ)m_j@J^;3R7)%P=gKjSxs1L@!M z`+I(WukRoD{R6*oj*0Z2`TZmR@lcup6 zU=`QrF~*i01Kdel7Q4n#=3meUj9+ky@|SE0`NPKf646#kHHGXD3bQ5HhFTj^ z)s(-T-Qg`mtIvN!4k>3YgI+dcKqviR{rbVZ8XNfjj!E%bt#i1y{B%V8)>?Hs`b$&3 zXrD!?xgUN%hEOwyM=<{o92+TWa>HIg-koM53k)!R_qYH89d5T!yeyhM#JJV+5_d$B zE&YZMTrJje@TH)UkN&W+HC)Vs2k$Ev-)K`)|l$4nqtHtGmeqP`^EN# zF+w0)w%iM%=3ls10y#pg0H?O#L|;H=zpcqf^8=;BEviC;z5m~ie);(v)|&ZeIOwj{ zt2?|gvkTsFjpwuW3lRK6&_MkUL4ytHA!s;}cnI3#?;eQvgj+<*R=66ski=Uk(7?Zg zcUPBwwSi2+WfYSb<>Q~51@uSTHLTRpI#h`r44D8A-kc)V{{ch z2?Vn5RJxYKaj}g{pXyBV=^JO*VzbD|rMiTzkLJRl{y2oK8^pJEE01p|6MTFZ(s7r7 z>I*->iw?dm0=0noz`~X$4I$gkk++rAU@b?ve{*-0<_7WX#d?e9qnV3syZcXaVQfDa z8a8Cv@$ptZF*NvJms*S;4_i+}ewyPxLQ>n>%?fa2mTG)KV*~jzZB7K_VBjtyJ`wt9 zHH(Wr28z>4-`GDdaH&g@5Zo@z!lr^>>^4>B_~o*@U6X?5;RJ&yj;LV(z#XqYoF3a_ zdZ(iZBc>@JdEh^E7NM}27g^uW@T}t(Jg>Lm5A&)8?V$=d(U1sFreLT*S8}v_;iv{f zQ@2Y6Vk!7#qa!3^lBSlD9b|4o`6A{aG#smsRvR;aKX~cmWyQoFl{l61b7bol4D)?b z>SPiwDOhi+CB!V3f{%cY9}mxQ6v%Trs-dQqImkcwhdjGj9O@hr!6BWg5dYAhHj6+m z`qFq~KRY3$&Gb9G(Xc+;I^mks|60Jvda~1>c8S2xZO$-)pQ@Fo6Pnf(B{g+EN&y(!OLIQ=_KpfYu&SJ$hlxAyWs-vD)W(5NfnrD zpR*!DI16W#0pQlPaGBA>#~6KL`N(r}mH6WAiB+Yqn4jju$Wfpom4E@4;r~o6*mP8P zD)RZcjLV!mWw(LD4R6S9v#W4V+bqse0D5c3Bs*(v1G|L91O5QmN)%x)Pzq$p^32DL z7vQ8w>cVyaj@i`C7Pta|mz^`RNlxOEHymH*6T-@$+m45Dp&oz8uflVZ7V! zwsR<;gnIR$Nq-`e6p2UVpFSbQQFqnusy+t9$2~5c)4K^P^%hs9Jq1?^wzSX$qAlEa zr#?Fr3g2C})L}aJ`&YCFIT}d~!WwO;ya3-6)@F7`I#Nx$(zzCHKiOfD)!?OA6`n6j z-th1lT`}(?O5wZ3l_p6YAOMFho7uMQm@eS6v2I>*Q-<;ctaQmJu(C54pdd`rK0C6c ze(Z~+DcpL75;pcLbxRv}QcPj8flD^J1F@vUjCl_BjyE=MDZEsMY$lAM&Y2-h;? zF*QyTABVb0Z>mVc@-nb9R8?$b9F}bM{?y6EhS&EOtE=#)(%tMD#YsGWMiou zHnU~le*>{nl(F)w5g%eA$S=?c&IyijFio81_|YvCk~a|OHsL?(=>RQ2<(EIGs=}tY zo!z~JK)I5dh9e{}y-zToT@1IhZTs&lSTEi(?YWX@?yNqU`jOZrwfbc0$&SN(0r$Qv zL&aN$s;DYo6vz4D zmJRE}$ZmU3?{Sk@s5>cHw{@Ms<`(`d!^v1!Yx;>MjnmDV_%NutHd#iWe+*IHXdQbD z!jgdpW(XfuTz0_Ss6ADTh5o-X;~TFwg0jJj&83B8Zh-?xKYD}i)=mv8>-MNBc{r#I z-@w7d!#}*XlSfIZjKq+t%*lS*G@Fv-0;TMR-cd{T(=Sg?yPzeGi*+mqhbHXMi0qll ztCbPE;t2fub|sm$t-mO7%$(%U$`$HSnq83&AJDahybs6r9- z9UCh?tgI(HGtZuMgpb_g(WGODoV+h`$Pk-qLpgeOU4h0U*o+pN*lM`EXN2~YBcIwX zt>&p)7r{MkNhUM3PjKolKHa}d*we=;A_~Ln1N{68F2XtYg+$74EDS?*q?3{U7i6r0 zMrl?jmU;*808>ba1j0 ziCg2H!oiGiv}?{1vM=eY$px?uph4z=9YX?d2{$NFVS#278w_g-q#?xtJ3Femo*-&l ztn31b{G7(Jb1i1A=;)H&~N85g(St zlJOL*JQ6@*(2!;ACUe3d(Jd$X=T`XR)rHx(15QE)Fdp{fs=9_eY_wIH%Y+u-k=`&Cvvp_$UEln>#O(#Dw1m?Z)2G&&jUYdKq>KuXEqAGIo+zH9d z1u{mltz-<%hP7fLyIXXA5E72^7l;%=8ynNA&(g*Uh-t{Ln5$(Jp%OIkxKo4E^K*K{ z=vN&l%x0$Ga%jqz>-|D1EwHmx^igo;kolt^2#&l#{;0j1HQ^Z4-1Tw&3Gq_dZ97n3 z5THhvf}L?C(#{Bl8%WFH{1bbyAHS<0{~#MIWlrY=P9aI7(Q+n-u3H=NBWuEM)7IfI zNS~Lwj&T9eszIGpr{T$4DqsiSCkwZR+?Y!uXHm(f>7W)U|6~OhUT@VkUt7Yr-|ox^ zTQEyM-^%#Y)aDwL%|x~#@V#>HPn>>QgK!xE!GUy;T8*wjt+;N(vz`^~4x#Fda83MP z(Q=@+Eb_#>1u2}P(vpWyB5@?V3l=QVzte)Ha6iM4hk_pzIw}7 zDZao^YJ5atYtOD$=9NuO?O5xk)#0? zvqzbxNl|MAG}<+)6#rw7MmQ-Ljo@V%QuVC6U0f2x8mpsJwY>f=Z9XVBP9%8S(cp>1 zZ1hB0X?Ud{t5FC`Hi56C+QCS3SOapy90^vGxhXhR;{p#ezmzo`m45r$Ojfm{EQ{O2 z1!FY$Lcl%Zf-uo=A>qPsusBXG_{?s3b$)H0saMc-wD;NhrkxSx*fB+GHcQ~@9JiHz zx`Z>R3=HL6viv&=^O41rEpbp70ZScBOnXubwtd>;Vl*qD#T$*5aYDqWz)LC_mvMsB z;p_^h7ss&TThBX6u!-PH^d1Zj%cv<$2^BFMZVgT(?rV};;ig*aNha#Bf@BjZ{Un4V zJ5`35@;kbdZw{f*w+2^6Zg0#q$clm((_o^ae}g6JtC_fo1fL+pcadzXOIuCGR3l5J3=%g0>-+aL@|6wKyzZvkSPIJqpfTIT6^v1|* zCr`LG14lpoMjZJj4d2l76b%F@gE{*JCay%9izstRE4A|232Z>+1G}4jXn^gfZD00V ztiXPzc#I=5L=2XPX>1_&8QX+^wG?SURpU(8AT(;mJb6YsNSZiXWvT%Eh9e;o zyMOg%KSQX@v;bJLbvDJt8d&vHL)Z))cYQ-9S{APUL0q?_(4X6{EQdVVl4>q)kT9Nv z`fE_rCFMbCfSS#DM#;9Nc{PSHpc(X<#1)~64#|>ryXD;IRAv_VH(Z|I;E;0<$~oVm z)B3v6#Ao7-$LOdf*1xH%H`e+ zNXu#h+apB#WEJ*#DaFiwdwc9-Bk|mRFR2ioFEL}DtLlhh%w4+i^!doD?O^WMJB)?p z*^wOe?j<}^aEht5A$5d<)qGo8=qy!of((Ow)o|KpJ-`Oh9G%;Qg%K^zrj4zLW@Q4_ zeKPyS%Vhc`9Q{IItEG;a1qzaNPNqV{WFi678{#5O7qK!bSdgr;jm*c$@(LQ=1@0sS zn#D6Je$%|eZ(qj9)hseDl()w{NyOhp+|>L)0+|?Lo?h8sMk!jIJm9U-jRO>@IUYtN z7fUsK-q7BwB5bH^k%9d~OU{~snBGVwfWd~$Gt;rS_=RN08N>sK92^K{7+3PIvoAPq z;4tA10!GadZI}aqo@kJnNLanr?SvP=vgn1IY+PT)Ri$VGwHi4VXTz1h@&`>Bk!%I< z)5o#=Z{Ugkr+xFB^V0_mFOIhIy=riEJ%imFG9VLioJqa+)BX|J@FL0eOU9s zC-qvJMfpY4#KP~`$0Rp7KhO{t=D-0bh*Lzg{LSp`#;1B>hkGes2R{l!zEsOc^+HAd9uE>32fGg5AiHfc5n*dkazF)| z&~XI!cJ_*qRqG!8rPJV>O6gjhV=ghkyxanog1>{?nGhBO`qc`PDjBV@R%5ycqt;@k z&_a!wN;7RmDcS4_Hfj>pk;ADX_DY|bs;|+}r0h44%FS`?jL_ii>=}>qS*o1htZbCS z<|bA`QKnQ*fGf^s_y?>QSm_5+R2&I3MGPybT4K2Wp}Ubd$GG%o+$wDj42iKiR8Fnc z!7@M%FVEO1dEj=0b^#CWG?@l{*Nmi{>{Fq~ad^Q&;krgymi$SR2-74(qb)k%nobp~ z^>E=H$TY5B&F1jf+JELAsaC&6XjUGMYtNd&d%pNGT3DIWMGM7%w;&cfL;TuNf!hT` zmye;y9qp8~NVmDs4Vbp{J8lTr$05R-$jM*^DPtn7+@^W8`nrUBD&2WvOJL?VvpGCO z(PRF9N}pg|Oh*cM8e^Z)T`G}Sq8)BIm_St9{S9Wala1hBhv0=y#jgL1>cV==i@%mUdnz1f%uUTmj zOA!PYiJ)ss6d3>UNkbgVFcJ?6nj`)=u#{N6|E6yfU&;LZg;;L?{?m7}Fkv|~=!AJp zp%i0ru}Ha5nSGA-Lyh_=rdyZ7RDj_X?sa_ezpAtVzV;ka-q*HGELKhnSyowsmk$O;ccmkxk%mXQmltw-#AWyv!PlRC?tBa(81~X(nbrS5L7U>MJhOkxcOd&-wmshv;)a@f*X*w@f?~L+| z#Oq~Pme0%`k7#Cc&BrR2@Ra+Z-uQ{Vj33oBI5-Ah6*nK_q2U>@A+#fpHRGt3TGe4~ zn#$C%RvkfgP~7j2%>dP_jrD*?7^}u$DGZ!ZlRjWYiLqhK0^X9xp(!?&ONK`fft640 zG$-X#sd((vL(OOl0e$ATr)zDSPgtPTpa!e)G&FV$QCa?mHQwvl%@U#c)E;*~c2JEK zgV5k5u*S5^@af6azUVr&&--qBPu42YavtCA*KYW*iYkC%SZqwbFxTL9V8f0LxxpO) z4by@LSf%#c;Az$I!7AUDevB7_7;(yz^V3ox!QstwPxB8?;fCN3DqF2u7tIsPMzT?{ zsMEP)bD`I>*LQrqZMfx9_v<*nE!`jYu2CA0mx4K|Q8*>_2-%yCVjVoK^yZGCR+c;R z)?KyMPb4r0SY)U{D!2Z&60t2Q5({kXT!g#wT`kCZ@x?~r3ok!?HO03toA^v34nV&$ z+LVg4;oM)ynoj>TxK$KOFaYiXvZ`$-W6nTN;qI<@YY1YfD37LkeXgD@GOYJ zWb73}ls0U~I9b7lxP&4ie9w*$ZOa=RKKf_eafolQXqCEyi% z{;-4Axc1MlC-gX)$TI)Gon*K|>KQRG(m5y(X|T_O*_ zZ|ek&ZvKdNFa16hg?OmlMZ7V+(rD{5E?(~$I%MG-$-d^MTQl5dtz1V*sh3{Fg+tW{ zs&Hx65WQw`lRUlQ__tW?S6piwOU^DdmQiIv9S~E{!43hU25+pR1=M?_Fk7h(P{8E& zzob7G8=%Mg^eZR7Bx0f(WNa8~JSu1=G~2x@0E=UUl(4ZGLivt#9O%x*I5muTXiUyG zJ5pK_yXv82&kfm?5u2$F%k(;3$TzUOET?p9gBEGuoO^MA4ohFC4LKQ_A>B`E$KJUT zYcCbab?V7r^VQH`osFelXQdmOM5L(48|0z>WopHUVZc8!#SHt4ltV*1)ZX22>Sen|IyAD})Lh zZdZ`zX1GXVyG!#ihfna*UJ+pE2lY`u*xZkiQHz@WY9Yk=)rwAx`kU!5tO92CpKTd6 zz9XE@E*ITg`4JdQNOk`Ng+b<2XK!^%-q@@5@c!gNJ&>~xwne()b9a<+EwjyvnMMZ` zM*f|I5NMh2jUV|U+QH&<1}kEh~q=wMl0B;<1w_;hxznz|_iZlK1n=YSZAC6D?PNEve!Wv4(tXTX@jT0=02uBgq z-p2JCDQ>1S z?&@fe{-Mh)QZSr6;m+g?6>-Dej~|h!?NUqlX~2LV*CBkJV3T9=O zA%%;f4A)`6KCR=%MWUSm_L;1(Zki$+$~u^4MIKDHl5@7J5<8fc)PXS`MXxmCjd6{e zmIk%_V_al6(x|i65X)9WtoX64q5Py}9)nIMIw_1)z$V{Rnr91TvQmGWtcTJ)dq?Hf zP#;XY+UT-Y)2Fgdq68a{SZVpi?c%5AxDpv_gV2Yw`b(H)i7#|NZjW^;!AhxWEqCSe zB{abc4BIFfV`;lFs_J`&qjvNU$}Ao#;u?a26ohiIXU8bTb9 z0wz$8>=B{*44a|NSZhbboTVwTo>5F;GkudY#V1cm)%9dlBOJ*v+ZkRpYA~Za-NOv; zl&`0YHBvML)YOmo9u@tMoU_?m`MucEu9m7Xx#O}{U-K=(!6UW}e}mS`2q{;?@A6K! z{=32r+xO}9de3Lg^;Z|Mtf+UZ*h_{yHc0IUrw#BIz><+`Fm^}0&V&#=lx)FE`%~1@ zy?}TNez{{R7{yNhrwlz016&vvynuR*@;<<<*qwKH@tmKG?l{xa#`!RICJhkA$jpaz zN~oeQ6jhCz2&@GWD}~q*>J(i2TgEeX`m|>UQIdW*FlLsnaRk-hY)Jj>Sz`E|`L|sG zL*yi@5B{6k5DCd*yn0G}Sy~|l%U8ZF{lg;Y!P3jOr3aN*YJ6GRH02oPbeiQGla%Ec zLk;)jt#=DQyhY|!=nb+DOYw6j&k$duIz2UO^HN={_tf~ZynZ+c`NWeefMMYL2wqiR z`Es$N)DXjwpp6OCTCmnnfKKo5`ZJvH=nSH!{f0*n;GxC{70gt9ve@6&9?J;h;J#}k zkX3%VpbL|?%|9&VO`YN&mLg%nv)FHgL-KiNZgOCW`fYHNJTfUiE%h~=D7`TKG^h!` zcIIM_;>Oad?5|u@#>-`=t=0{phz-rMDC)#|AsA7i32tCN)19N{2U80i1!)!IZ&g#u zDO}B9`&x=+>7DG#!s1y@EGnMv8k@yF!&u-QqvhG^joGA}!{S8tEvhg>AWw!oUU`KH zXpkt{VrSVTPlk&sl;{V+L37xdYT~LWX+$zS2^P7~$I5>g0mOu}i&V=n*&GYZEVohG zzildQPZ$k0J>MyvX&*uty@T)GpW!1q>D>}e4h)}epgoY0%Xw_it~MQ|aU;6fbdn^H z3XRqird2Yb8#hFfW0*C6ia2~=d{~V7b0{uO}LXs-Ql*oj!@T%d&ktJ+uxIfQl+b|=h zt=MmhSMY9#B>FJKZ}(w{PkL7%67+^r4X(H1nbGZ5&vIU0gOtBop^#hnfrwl)JfBF` z&CeG+vCOX!bRv}k&zu5J04Vqf@EkU}*Gp@!|F!^h7lVI#s5&^4VH5cC-HJHlgrbIE5iCHM;(#(uL!#R>R%lT=u=))UBYB(ccgQ?MO&;)64Vip>-05+JKpaxA4 z;`Gx-ydLW1wX^6&w!jwCCb&g3Sc?}^-(m)|#Z9tkkrUivC(X3j2{!Bz5gG0X*kCrK z0AE)l$b=g1BoPILSsnMH+*3-{bWbsf19vBXWdPhEX_FhNmVMA=0z_>26*QFqQ4hY_ zi7x<~;PM^QSRgr91(Xw#gBb&rfb0(*2$@>dCBtNLX7}(##`XPHWyKZU5X%?5>`b5p zh}ws(ByemW@iLkMn~%{Za${CAPM!bcOuq@kqL_X8V%lkwR=$2+lGo;DwHp*8L=VYW z9aZRCwP-Q4k2_TZ^E<9ne_HaPF7eN?fv^}i5u9OeZZZ&+QNRp`MK5u@ zhCkH$=;O`nr5O$pi5O}G6;$$~?hh4J;4>(zUfI+U9n@Dpk@JiFke3)B&%c-lm+?1o zYR&JwQO?o)P&I;+F#Zk;kXxmm%`BLsglMuA zW6`aN65rdZJ55#gF)Ga{pduOGs>+v2*a+QWP^B&~6Bu$O;m6|~4S*Q-^n+#p9Y<)? zsovy;rYK7n+UnV6R%^5;^uyThStJP#IcR$i zegMkCf#FTOhI9_yN!`7H%Yiy%Kg@L)bmEx`2g+k@rW^pH7F*T1WtrV;5(s4SHG8Fn zg|=Tv=0;%!lwSawR&C)sExCnw&TNC9@3D*m+Zs>MwX!!BUI549ROs`@j(zF&i+*B^ zc*dmPP#ScDsvHdR6WXlbFTpySr5CAQ#PHWK>y zN8ntqYc&H;Fq-W{-nJNz1Ttal3BfFn@r+m%Tu>mKMA-tGxIQPsNB@H88-fSCA2J?L zjmL_xLY4S1I>e8r|IMqEc#H@}nGb6i^L_SIVfbxKLUwNb(zd4DP-kjr@1Lm9SyT?EOe^7W7Y|~>m8=;MR zRBfyxf7NR^n=xX1BLtj0{pp9{_}7&3TPowvs@is9iXMTQ^Zgg*VZ93HPmaBjWpA<$q*&L1O4w*7sq zzfb)88U8X$)q5yje#C2@E$xRN5nGZUJlaRBB9u>GC8Xscazf$^xjM3<-e#Xr5Js0^ zu&{K&+tcOR6m~mF`{~|-yt@4oN6)&Wiz$PY4nBM{Gph_$NW0kL>Z5(I3HEDz+r=%C zoRVhE44*KCX2H|3G|sN%2X>=fA-*>D+JHTvHs|df`?)OMS}To}FZ_pz72j(+CJkw> zxwGd7SKfQ8m0p?J_Umu0Og1D_)o*<<4NNMB)OOR+ClG8hS+`+~zky<#qb1kBktAOZ z->A*UjP>HS6XOYTRMn}l`Ip+s|>>CyxM9+ueP#ApDrf(y#BAh2jHdW;Rux}Tc!=kFXM z{-8(cVrHT}_Xhz_`NpRu$Bz>Y5OdHM7GuSq_=O<}p#KCA0}??0d1^yL=t~9AHDwkh!DC4#Aq-Yyk((-45rQ|sx`fe3+CNMIU;N4`fx{CG%(v>i-UNL~@TeQh*&_J2}n6o}oIM48=qy}pK} zT$7_MXR*g_qSrVpB=yyS9&tyYGEHJ4ze41=Mxf&ihoWNp>BY`^Y)-t;6ht9!moQ+9 zvDRbX;K7Ar2X{|m9zn4A?9(1G>+blCCj){EXh$mcmhXpbn~^3BhiaXDzWQtLZ{AL} zVw8EhsUKH(zk7Wpk2Wh62CN{^r(vz+xcvbMVtu}P}8%0awZCB$pI-1 zL5>o=N|+kOEMN9nN@dF(^@r2jo15A8P6NTEvil5bsCb4y77UBhhch-D-YTEKX>e&m zS!nmclL0#)59e+hK}V|+Drn5ik7=-h>Zv2U;fRHIob5;kq1D|~!sc!Zd(ys3(%NAR zdR$tgJ-~|)PoNy7T%HnNfm70*I`5)^7+xMQz$A!}WiQt^uuXv_-r^u96PLw>yl6FrJmIaBb)OMk$FmcbY($`rsJppsOnZ_#4C zyBBD@Yd{keG;Z7~u!FcFY6O$j5v%Ctj9JC6Gq2Wp=|e0*za7l6=~1xH9IE#@z)7#>Lo=U|=^N zuLc(42>FSqPYq)UuP!g))sDEO39%}&K+>9PAT90~@BL>;g7Eut)~%{sKY6WHb2lIs zJx$Q6%72%7j!t#j#l&tsA2n5X$)*KGEgG0C%ViuMq>Z|$PjUzANq#nUK_1Gi6`m|w z6C-Vcim&8vi5UmQhDSLn;)ws+dBlTD=Xix&@PL+6UU_iYQLYr!?3GCyqL2rfc%NlV zT14L5e?D0`jSWYS$d0MIJRO3@Ib;K5z4#8^C%T7a`|}!6*x6@=wXmNj^Y!ZE_FCY# z%Q=LAMSQ|+$$KC1>83$PqI>fOu@~Ia^d%+V^@ck4%LRfslEIs4#kW{h@L>V#7p^O> zBgoL%%me-A067DQXi47P!WNq2=28`yzx4+pp~RZ z7kz8`r9Msd=Wt&}{pk7-6RH;(V2|M(l7@JZoByAPP%sLn>_j}ZKk_$beHbP-~l z*KdiJoYA#xL(tN26u%~gFOG4IVB(BR92&H+m6y8EJnoYP5S3>u@9<>T#pFm~-3GSU z!-;Ev-0@sYK^ze2E;cQ+AMb{M8MDqaM@ZfV>FV-H?cs=;eSLe;OQ9SHD@#LQm1`nB zhrsdMTMYpRn?IE3FaZD{*&B}@st=NZ0s?9cwG8yk!L`m=AaCD@Alj*cK?@JuV<eaxPw7%J{f`Sv$i#>t!Q`j(+8{_6=n5-zBBEua!TNYKC;)5Gu{=(Y!M zl!uk~K>xnSpTu&;r068-+=GkTcm~*w*wO)fZcXDPWAH8|5y2$}{w!oHtU|f^44HzM zhv-v?lO(B>kR+^#N=hO?62&QGr#X)TOss0@DfUD==6`sa>YgAyjdeq9Z4C#K$jzE0 zmES_l;1?1NdHo}13vsPY4jv_x80LFWs(HExtD3%hutIRW2gNBw>+bm-gs~Ogvc6dS zEq^Zfo`QmPo2^{j>a2aZ|eKuCVripm@!yN8gsMNp)gu8?m zRd!(~D&N9*9H%iAPiu-ux5GmSaErTVB-+NYO>p@5r|^FsuEEs^# zgG9g%(evbA&WrK?m-FJd;a|>+Y5kY;!oGb^-Xw9C+qs8wlxBt6lNSv~he=+UE@2~X zRY~7#AmpFmC~#Ye`EL7yEP2~NLlHj3mY<|OP{ZMi14T^;$O*hR3pCr>W^ceF{vmey z4OaRMHu`NA`fc|44c6&w^T15D>vq(^WTgk!#i0xn#L=FzJ)Wlm_Q7sXgo5WfYX6a#4&a($fL$inBJ$W+x{pETNk6xT*XxF7*F`FII{qXnScq0iurQu0RG+bQX z?Ulf<-xhz_$6whm5)cU#*}l>VMn(E5g~&U%gP4f{?z}lbEET6{`OWMty>3H<4J1{O zIOQHnG-=P9bSIbQp~Lc~CNg)k$VJ2vAzf6qib*uuoaQlHHHM5VZxLpBP~?JaEY~G@ z1vpyMQNn)Gv|K`+Eu_+8{ftwg&*$el#@fvIbkhkeXZDB$PK>%zu~!@z0`aWxROzfT zQj98}7&~ReUU0A-W;S1#L(Tp5V_WD4UKOCDO-it4bBkME#Bfhz!DZlJ^Pm_^XSzhD z`T05Bz^-R^@~(XHJpxyo5kYx!V%f$g&#LwBBFAt-{}qMSfg)Aj0%1niIck#&!JTRs zE3zgVHrcD_bwRD?Om0PJ9ifL9ev}B zU8O~SJRjeD|1fyU+1e63Y8}l7O>?j~Uf@C{{PEVSxt|Lz6-XWjuFy~?tQ`fDEXayS zF@Xx$BLnhe#+$+8HHokroV)A9M$K(N2-(D8w1Jpu^4n>tgFTexV>4iJt_) zQ=zb1%p<%B_B#aClIP1evzEmWsDHoM=h?n2b&+uXS7je=<|8mb8^6x}@-LD{?o_-V zymwoweq)L@*yZjJPYWsH@YiJXC?b-gRK;P@#p5i_W@xG=P7_4)gDtUXJgVA52)2>F z7AE|tCmtZ!Twh1C@Yf9eu>bDt7{(={G7VfhcnZ8&=!bo4&xa#rmFW3%E|h&+_)skG z2I0Qbz$bYS6?XK@I*g7?dj!x>dBn;Iaz|d$L&FNd&O5$cNX@-0Y2cv~xQhlzKQzgUH#-N=zsFOSH$ho3>+bybrGxX=hcDQfj&) z>uA~y&VX}1MdYWf*Cs|`0WAdu#C`GFLVT!9o^v(5A1jGA-wh|wlO&Vid^?B^15%(k zeri7cSbPHFUw1rV!vFKkF7Ir-Cb7LEPXu{szDnLK{=DQVu#I)ax?I55>nqOoM2_hU zxcNlqwNh)umd$2L2rN`qFma}00b47Ot#taH*#5A@3yyF`!2oG=#h~okiGS~IKkevt z0Q)2|IS{`ZB)qx^7bBY=`wiC^&@*o%zG$}~Mixe^~laBiQ4%Y=ppfRj5Kcdwd$kDMD1eBtU z=v)H_xuqD}f5pQ=e+}Ahmn%IY^v7(uw?}>l{(QHhca$vKhWqL-ygY>F)}hLlh;qlf zr(7PmKGKntZ<7a7U=KWYKv_9Z1ME*zBS+sCTot2}?qy;A zM{v!g7a(rJ5Xy<*CzTn$vdg-QkEUO9j=|=LWJC3d14_J!Ys@>HVwD}ny)K1`x(xAsBoK$qC{`76>MR& z{b1KrPyP4D?NXm82m9LA5lZ={?y%d=2uo74-*;OOIMuG;S~2r#KPp$ZtEP+EcG5tM z^3Wde$Nin$1h*IqVa(|Z$}i}_Si1AQxOIoi=Mi9i#L@$K)~Ispg6<0vhUrM;Hyqu} z!eRttj}aQ^652mpU%xKbw_)2MItaI*696$6Y=D+4enG!{*roL|=U?Lk`g#TZ_>jWr z#Z?O9bombS&u5N|rc+dt1Las}=N#6!A&{J{!n3(r?$#>|@!8rg%nc{@7fSNk`eo|O z;GP$^&~d454vysVX@wFaezN%P0s1xA@m*f&;||*1dB5Prux8CmlPRv z0u3`+Qe^W|jVwWSsr-^fCcnTKy=}yVcN$N~78foLXPcn>Fri~SM~TrTVK>61NS?Rx zSK5~Lvq>p#cZ{hv9U0jr<6+9Io9FjfQZV?+QM)t#kBS|SmJ0Pkx zu@6ZI!oR)S;I_LlWpHTh*fj(=R-PdsvLI7gZ4HLsoWLgb)hTCqf2nF4u4xg1I2828 zrbNw85)@=d?4KqmqqBRw#C`M!xE$UwvDr36aJ?05TR^otzF>QX1T_)mf_;pwXDI9n z1I;ULxX{Q_;^+1b-GER@#BVKb_l56T7?xFWy#YIX+2VPB-9`BA}O zt6?xgTX(o(zl#hC|EN(Vi{pH|vTkb+T=fDEet>K7hbLi;QNhO+bHzXuq1{tLj^Cq- zp~q*P&M>(n8<^wIx0Rw0D^DfaM;HM*_J!XsR`-}6z&9g zTrpl`>Oft+6XjGIpd0_Texr?khbsMQg3&XtoD58^J~;y* zaG{1Ez+*1e$3%( zNp&fugr;>e4i@qTX_$GiqL{y7z$g$0hw7K3rL~{xUQbXxgecQP!+s^ z1;vr85TQ5kHazcQSm7!&b|a~{5-l?~eCESx{yVUQ*veCI;8ft{tB|j3*=c^ls2X=d z?@97)q{6_O77w&on5fuUY;dK&Ev~7$kVRsx2K^&Etf&?HV zVwhuAa9?56(({Yuj$5?}U=&;0ZjX9xb%_pv=Ua+#z^))MK<_Vp7Zs2U>iGJ4{ij7r z)Ok&*pEOnVM%z$U1qqz@)_!un0wHA)%NsBIK@@aYj7d2?D@h7C%T7#!29c)cVJmt zJomKT4KuV@`^>0UVFFVCqZ>G&ys|fnJt2RB9A^nNUl*vn>e>-9u0`7wFQB+wmQ68 zNDY9%wXqtwx*%m^2Dj?i@D8^&>;C)uiu5XFM~72e^v;m*h2u;`28z);JB116`lfuI z;U$)pe`2YVVIf=09fUkGmgNEuW}KZ0H|!?l-hZ4v`R=_F*{~JDLcT z?C}uge?7x70itKbB5<3M+iH7`sQH{>R67Gj?a>?PMXI4{y!Y~j& z=ffW-ueprTPZL!{*$67KT3m;`Ns!Z0jII$86M{CK=W6F;fhKHVK3hB|oJLp7tr-m{;*pzQ!^8tN z711Zmxlj*q{s~j&0^7yl4u|~J<-+QQB%$++I*qaY-s8msZnhZXOH_u<95lSXiO-`v z#do^yWZa{vi=LgF95KSOxZbB_H*qz0?Tq ze&|?sqCsX0ff-+>!)y}4&v5(#36{s3F?4-x{(!Bw*gH8{-1mc@pk}G`Pw1=tX@b%! z>8K~eGm<3qH>1t;2?!qmTGl2k{93RGT-8uCEcj!{^Sg;r>(Mat&+jIN2kfGnO-`OF zCc|;KDL456*$Yy8Us7ebg^|1rn`f-)sLQM>8$Sa>0gF)(*Zm@nD`^h1=R6%lS43lM zy{>9DKCUP}Q9OhsqkzFhOy-$abc+XhW!^VN#$+#czAe;tDuULdWp~BtTKS-$b^R{!x33QG|~65gRN#dHm8ZEGDYF((BHNbOaW~ zh+?QSF00*(YsQpVKU8CeopEGtwa~_sO@vAPK)3K*(xl7Bp#{}qho!rPVvpKEMWBe$ zCO~&UC=eW;F{w5SKuDx)=FSMWc3k1Q4C2cd`++0Q-4Y;`CGoiC@Guo(zd-C3W6!S> zh99wAlq4|)x7^u8?Eq4DtjV+&z(|le%de{J2A{$nUPG|qO(!r`LsP)#6&R!I-fS|^fh=%eCNONUCD@Lup| zmT4;MpPxub@Cxp@> zfBs)fL{U*JHLN6>KrRqeat5sjMq0+KLQoNybjcV^9f1#AUnbUNWU3H1R<0UT5LBwc zU=p5F5jRtdH{(6@%;Az=h*kEwsEMlDf=I?ygT0)>R$#1#bhP`t+;9%yE|T9c^ilGj zLany9Qz((RE}y|@Sf4q&Qr|?8>VgHXgVHO1&H!g9H{w)fvJB?7T;62c(%42!2)0U$ ztu}2y+DX!IzQ0BA7aK}WeMcD(54Ldc5xpqlm*j;pJ;c0fZd25YfaMgJ4DD>UJPIf)xHRi76z?= z>1k`eWy8sHwiR{K`F_2H0q6MwXT1)fk?E5lwj_=d-{UJiXDLvnF|+UOOCnF5lpcuW>#1lozsv zcu(B}8KvH3G@*?(vx*&*yK9x}0(QJU$WI|aILV`w@d(OfnW@-FF+tgc>MN)b z4z{wiaYMeST4bsZw)Giad^*EZ31b&`n2TxnFGKAmYN+kp83t;rdIyIEQ4@6jMEh#a z36z2NTQn14hPX2JO|a`~{5r@tky_48ImoAa}Z|r#}H$39HVtEp? zRQSR|vTzB8Fnz(8h6UK8O<{?Iy8=b96J?@RqpG1ibTyCmld4TRv9(>N6W@-=JKdzU z?NSkd+oP?~5>sJHx~ujSb!ePk7hN2M;1QJmL6ip|-Xj7u6*l)^^#G>^cNp+wn61zN z@@dMwv0~768`&7Uk(_8~jDa1il%qUPL33q9hGUOC%psyE4yOZ#ihfkSufS$v*C=sA zt2lvbM2~SAM#$*`EKY8n7Qsso6&>l51xI2jHlhH99cx_dIK3%$oLGv@@Si0#@3`a% zl&0{B^ojD*1Blaqu!;t2x|Rl|sYr*j7PfSvf+}@faFtXFv^cF!BD$AI+KS{5}twMFMqhH1oP}33J1VqFsSB&XR!C2ubwPb< z7S<UCDS% zP0sYe^fL&w3>9l%YOBz;J_2F4d)K;fvYYNXc#2chJ?@^q$JH5=-nys?Y! z;zW0OBSDl`z?6{Jakd&4!NSxVgZmrZ5P5^p0d}@yqrAY;?N_Vvar}VeYTIv`F(6I? z5B~OfF9=rrW)d4LoL4h?90!d$9q1EeZrVTK7lig+!4ixz8ZUww!Xl4A@BoI!GKQ8C-s7sG zw+qMKY(YrjdVq?- zZ_6o%R2PV;Ohmb{2AsYrn9-sxH>WcnLTaJ)?+)Rp89N&SS`Z+Hb^}pTe;8JaKS>sD zR_eRLGG?jigo_E=D0_0H3m8oIIAyuDE1iV)b_pW%P~!gadA2{f6u0o7gqjG4tRhNw!<6|o(CG}kJ*ea9ewhl$riPi zq5^Jcpn$jF(#ZgE0#;3o+3aHMGYjf0Gg3p@pmA%Wmy>X22=kN?3g*u|fpoTMtlCm= z#to~97ZV`dQj>2>jfg%pSg%$@NfH{>)1cxwP|jIW$-V3tU$3&ps9Y{<@W&l53Ew~v zfL|O2#9XZH>jf^qZqF8f!9-Al=})VE`@v`Q58+tx+*nReg69*5rIGlsU{rH5Nu8d? z@;T6i=@#7A0J2>7Sajp5xh}oHt_9-6foO59-N|^N@&47i8r|T@X&yoZ@RWC~Cc+fJ zdRTm`%pPKrixd6y=voy~Hd_|6B7qJkmu+ihQy;!efptl)?iq1$dT?L;Dh{VPJzXmW zxeuh^kmo>(-+pe1TBX5T??9d(W6jz?RFiWQl-x=9u+ACz_9j6^qaSbsFL~N z?s#AFydC^te|d(y^Q$q(S69$SzzHfT#`bu6eX)W#el!`TwuC8b3EL4cM#+6W4STN1;ki{mGLkY0?{EV?*y} z8s%+(JIC+G9Z&HfX9wqSe3&hF3*BCLw|a3mhw~Sqr(c$v(hKjF-Em;D?KO$ORs}F}(P^n1Asuk3)m{86B_4!R6H^jZFw&D}KGam=LddK{TJ>iABtRcrD0MXdJ12;yNi^CI&_;K_+>Z zy!s0_VRrDZ@(@4%E%$bXN?-szs1_`WQR%)c_={!?itl(r_p1QDx2Zx5{7OGCNepR$ z6L&sXE$27eXY`Xv=I4qe-W%3MNoMrk!I6@Nhi+UWKv{))&Mv86(N=kZ$=V{lh`6vj zW;ch^Yusuo-G+O_Yh1CbTqC^kX|VaYpOfm;0hozsw{cMENB}uZjbn^?X2B3;#--8> z-jinAY~k+}1P&%64tgvRY@@rq&bMS6F_xdK6!z1_|_ zOPRLcQ;=w3&q@PyPzzhOMRdqUoV??jUtHulE>XrX&m^i6q8uY+ayM2&z`Im~Zc zuyI=I&T(0|oxTz2582V$>!JO)8ewADgSUE^-H3fM8I4jjvNc;J~oG0ZrOc~t`LAm$VR z)=Z=`=+qwVSH8!H7W=?xJkXNIk$4#83;R6wf`4d!A5fHH@u(<{gBuPW(uR^TG6nJ1 zT9WY@JE1whoKluDHtqA-70<^~)X?JInLq86r&j1cAt20=0dg)QNnKx0gyS*^XF_4? zDB?jjoF`9l+40|we);(vPk+-j_;|Hm-Q6JclDVjGYo^Nh^vT2Uo?Sc;&*X4WJ9V__ z&TG}*kHOhKI3mh_IF)%DHrdQse%!_S-qZ#{D7L&OOpfqmhD#?!caG;qla8=N5M~0T zEJhFMeviw%;*cl1*L>;{5(V3Gyh8*#p3^MK9#xzl#aQq*$Qf=~;}0{GCRVTb@$TfI zNZ_#S+{sreS0(aOAzV81~5 zH3Sz=Y%gJsXS~^YsLjt{4yaH+f&1S_GKZ(Tndjk;zXiSzwm~NoD`U;0$@&B zjA!D5K2{B>FhAC)XVx&jTJ6Dyk7^~4Dp0p?URPQm5md)Gm-dzp*a13f1LG@WRLut4 z3xYbB_VaM<&mqe!sl$$XX)r&?vsx?~0W8{53%SB37-HMMSVUy+Ch9T9p&mNYQ!{y55E@bP zRg2h4D^o;keS)#yV4+cX<`$X1p{hpQR!CpvHz&s9xsnT40bTK;MDvMBs8fG}r9&rI z#x3A`<7DstyaIC~CoXS3Oj>)2$Mv+^IgjI#$Wjr&?~7hcV3aV93bi(!+i;N=G~}6T z0KipH^y5#w2en#UD7J55GAI&uF>b37dFd%7oe?j8f*EQ##1rhUWv`vwpfDd$nsLsW z*BH2TD8`J7$9CkzuWmAmxB4mkXBIlEvtR@d%0q6v7Bs#K(D5J{RVOY<^oWcm0drUe zgVLp#4(;o>Mx1p`KO(rDDo-r1YqfY_55*ZzX(z#5dGytT3H0U zzThmhT_0eb>HP!MS@u#HPP%=M8kz_D>thMA*=BFywq(C5{HhX5gGsecKK_IwL=S_L z?$@F7Rn8Z%_tq){x$H!ePv#mG`e8W(6u#CX<5=Jj`S(~F|I0d3#I34`Dpqq9j3uaHY zw=0I8|!?r%JFjE~=! zFwGMSM*~D6RUlU2V*l*>;>LK23;NULw+%UnG%7Cz+vvJ#Wti(sfmn^p{(R5gZ#tKh zH;6feE)~GX)t@j%D!gJ8NN=cPI@xFJ-h?n@5QDg83Mhjj!kgRW#m*i0*`9Z&zZ;*8 zP^POZ)3RI{$O4@bKBG*@YMG!GeV`eCxA%fEk|h}wmKEa&al3|t5}Y35JY+@}YX=^G zh1p%_ZFDxpm4H5>hbT6)x!J$^im|{$FLAy>BmKgoAmPa8e1l^q7-B2X(fbANM6MJ| zn*RMAa{<-Y>FW9@&v1GJ%Mw=~J>C)GPsU)@J@>m7c3em$B~GEbddQthGMc!@>kJr2 z$vRcpKG4I9x2L>Da?RD4jA`g2)w3C&6u;gME_bp$kMO{rfk$#M?UKL12u~0)#1886 zLtPW6M1~__cU|H6m9lmz?4;FT{|6!*D$3|#bJqnGHo`2uxKYNdT9|sw#-4{QEa*^L z+;I2Fup^EkpkBz`(B452uU2B<9)6{`s+>bw$RGcD#_lMhEBLhkFK(fqJG9SCPEXa0U{+LrVK8=+4zFtZB` zJNY5bu+>HzEcplZ8S!YNXJNY^q}af`{V+Vcit+0L+|ce&4fSsfTC|o`gX?jb$wPxw zQf68m>c$eJ3WI@2*9)&YC$QW|w5KiSHU?S^eDfBY(-&4+Wq~+i_iwyNe_|uSXzr*< z9AiMMGNM02J*E&Swh#~^O}C6-PraG>D~?7r*sFKoNf%i89*PjO0y)$##2M9sb26I+mUTqI#(c1WmSwsgTg` zN&Qi?VJn3lyAPLV1c%g`rz&SfPv85Bxc8_^Mch}#eI?6Kb#M@%7u+)l&4Rg){-(WGuq&xMhfXw%Ov8mj?ep)q0%b|e=>OY4&40%df~5Z2}r1;GO{B2+wkakeCL2JymY zD)8aY9U370~oHdO=4m18>Arvul8In1E2` zH>xSc!m!JLAi$%;-AWi`%=mZ(JpYhoN1v_v7vwMx$SBH$OW$IFr$y}q3mxL^?B>(O ztSV50XiytK_{duQ+9^s-PJ2~sNFA~v&JFI_f4aUSZ>`F}DpQa|M)H*A@2a5; zfVZD;@u5vH!Z}0?dh&;6X&zqXnRwEI8SC{X27kJ4iq#BbHbenRvy_tAdn+vt#pg@H}#>Od@nQ%lt+h01rJ^K<+$;Q}p%r6;ABP^3=r?w=yPxI*iDo zPX2Fs6v4Xz*bk^M>)YFrzEe2cE+<_uh@$kqZte9Gw&cg3M3OrB=uEjh_&g{$JqC{) z+kSa?+QA@LeX9p-9S%?)hWBF}#^o&G2?%nP$-tMFB`75h*D{O0`&5k_%**XObI-t* za1l=DzAu26&|#i4MF_To)$QgBF7?2?W1sA!=B#u}h}9=c zd{+jPwutJJseQLq#srwy(M1k`@ESmk5p&2Y11Vs{8;ynakh6?Pzdk;Aqvr3ovS$x)If7gt=XRHiR~GahPu)dMkC2c&d%F4o&auqlix+6|v<4Moj6n1g7V?C}0>?|OQ23^4|D z)W*Xp=ELuMu9u(N2?~N_R(dd)U)-n}QTV9Q+9yWskk{sSJq<(=q$e-^V0P>=eFs(W z6Fs8>-V@^n;|QIA_2lTN(XhFBr#UV8<-4t&Ft`E5`@kgDJTA!SvT73$$=P{^iWA6< ziq}t`$`N zmQ_D*%?4r8E;+v^zR57umRgDnx(?DOPWzUt6GnH{#YJX?Ib?(}`>SA7`A2!Hd`M~X zU>AXB8LwmDoCv`_AXv&k`*n7WSnbfxwgVkg{eSA`pP;S|bLJp7T>Q0JI+e{luoSe? z0G%4RsBm@y2ai=Cnr1~UR?WeK&3jz=Adea1 z$H~jUa`*4ziuG|d7YFiE7@(_KS?9M{K#Hg#vhO(Pk(p$Ac(*2c6c1IC?-_O&lq|V` z`Pb@E@5cF*-T_Gn;UEuUqrD!wQ?N=Fc{mjWdkPUJv+ZDwK-Rx-(*{1#%ktcqOUOMe zU+;h`1Bfk{PV;45!u;6<=E8GORctYDxFgvCkDs@|XS6$@1~$)yxgvDky**AG{#<+t zZe}{V6-dVVjIJR(oh|2v&~K$ziis|^yNZen-r`UE3Oy;b(q^pn<6l<21$M3&i>}!#VNstM72EF)$W)V9HeZSa}{nyBN zuD~MP{RS6F|LH3sCB)J$*n{Vb>+&6M!E>kR+Pb8To=>Y_Q(?Q^iAmpVVEtYH{uPoK zSeC3xV1k$Ha9j_C`pCAlvblCuBL+gV`}PPH(65KTU`!Osb_ktx(HoN3?s4s!)KP`% zu#FbP4IM6d7b$(foy_ERPr?GRv2sDk65m0-(+GmsAc#txFOwk6yjx{rc92I|uLZeS;|?c%%& z%Rs6KCS3QjEGPt`NASHI2s%16dUdne-$h6WDckCDKc&g!Q-|w4Fb|c<`L>bd;7pXH z5t@RxSA?*q&mi>8bgp*B7hGAM50UK#@)_zOY=Pzt0waH83*{T@ft1U|Aw=5i++1u6+TW0Yt1JiepvLb9s-#L_-?dZojEO960U%r-AhGlVZn;$X)9 zGD_)wcD)U!?3#d#@LVYHa{tEI6ARX(2Vg-rpO`1+$63ep1Thgu(}xprA`yu>L1hk^ z9VZaqz<^Bh4Gf%H#GJE8J|$RYMGzb`jUe#0hq$BZ5r+Im#5)QMXGS?$LYkM@Y}uVS zk_>}QuI5z3jmSLj+dsP>4=4BycQn(f(Ib# zDLTZzIKPkAJ1MSX^HS}>!?^ET-NB{rN?X*j>~NM0(a`(uZNn|9IPOx_rA9Cq6MJ8| zz2IcmYza7poa`>=1ZQNEY0+uokm5{UYMWH!Al8VrlWjxyc>w@E;+#(0Ytx?*HOOMs zPZBHq$w$Yg^4pbT(R{OkmoPH;qi_v7&#giBO=|1fp1RG`S0(fe34QiXjBP}bXZUIc zjRoy`@QQ*uP4$2UOX}RUa15BENVO8-Lbg_Xug<_lQB0{jT z7<%uP#H3~xSc0z>*mG`t65?=!Y-0qfrXwASZeoI?+H8GC2 zy^(xqN@W;x>3SY!pc!RSF1D5NSQCsr#lWRS9AqZ_oM$=`13E+uFVV1bSP2uu&-Baa zS`etTrz?m_rwdRCjH^a`_FLj(ZZz%euryrL&s2SzE2bh7x>7Pics9fg>CUbD1VWxO z!@JL|Tj0(=!-T*yL`EuncX_$ws}tRdL)t5g@!TiTmd!=brLf1POz@HB(^9=uPmHf+ z)CPVPZIa8~ukfm=UvsF6&lU=i#6b_!BphYKB~|DN|;eQiW0GP$f>MRHf#G*60OD%;+7B+{#%d+A@v41K*-@Ge|b38-Eh!T1r+xJ7i1S%57y|6<16{S10kZsHtNtRXs z=SyKK<8;-(3vC5$1T92Cpo9D7`2P8wm|I>AbHm2nud~et48QCUZm;Iq=_B7Mc8@4a zAqx|@2{(5i3hAjO5%%JdF-V4_nS07)&)}fMhqIL172gS) z4x=m3i_49mUS$?SO(9x!vdh7dl7&gcU+9zw8<_I>+1kSSx<7@pol^vV`3qMP=ga-| zogW&Ht5Ou)48oEvfHA==tYds6$Phb*ngUJO5lfeuAl1yBd6nw~P&5jy>>ZVE5YF7`ByT%J~?)F} zCXUAl(us$^q~ZKv5qCUMAZ~Xs;USDHez*;!N%wQ8^c!Y8iVd{zhHpq6iMRer>;RE4}6+nsE2@Q z?{MJL3p?2vq*Y@I7kdP%_aPde2~2ss{w99rQtn@pgEDpOu;V1)%rlFcuQ z4i>l31Hgh^Fs$TN;Vyx(fTuqZZ+Hi5-o@or`YQB{x( zr26CVzm}Wmc)0sOh=HqWT=sxjFB0^OLirMyzJz=v(+@pNx<)sPO!wPbi0nJ}(%tww zOK)-|l#edy1e%!#h0L?^$jPq;V1VPyd6jS%l00Le7%! zblnkr(Y)Z|O_NUhI_hP;4u=CXD#uJNZP^k5a=Y`>1$&|?jpcmBsV<`l%^6L8L0;`F0_tP7Kb0f#+EsJm#X}sKXBx9E@R8&F0Mp zP8_}{P5Uo`wMSt`6YmRgIY2hf4)PmPeDiI35X6Znh@*2gLb~s6A>@;$KnTjsH`Rd# zAYDY~d}T_ta3OZvk;b8sAl8#7;eQ#F7m<&kT9lv8{tKl$fRarRziZRw`%P|Pj(uoQ z9~V-ohb<;$j=ko6XMkC z2*TeQfg$)vHC#!)T__hSmi+^Y){;IzkPxOO2^Fe6R%&S{ z%lL^Gwh_^$8v^fks_RA29M1C*C30d5t}2Ou13b=0Ng`uq5+O^JjDZGu4h+>cBG)10 z-sNvlE#b8Z`Lp0;-ne5>0PI>_k`LvSR0+`ttb!?TA)xLe+j9gvWiAZgeaVoW?n_Q5 z#B5qK0u5C2F&;4Slv(H|m5Vt&gCIC0Gg= zKteGm(BbQAXgOXhkmccGQK}(8uP&bF89zo8jdc8`72Mm!!l+c3t<(Dy1TJ0! z1X7>;JdQzPa0cH%n9v%M z0TJu>C8W_joWnF9=;h@Kq*ikxN6gG2Q-*dn4+b4`i8;sBY;a<* z4E?+mL7NT+x2n-6tLiwNF`MLf3<4|tpg>eJc%WNe_30Y*Zp4_y-whA93@&(~(0IPB zw2EaQl4>&EEh6M3Q!`8-EA$*(+D{1?oOHK;w{=TsW9{LRfY4J9CP8qWx`McH_*@01 zT4m~oMcKh44j#!oE+SGpR?NvD;FANXL^HQk<0&Z0%TX?)r=&F7fL)cbV$xIfy7Jj= zhfFBol4G@8aB#{=IM~o69HTJ_XMmfL+OP7#)hFT5XeZ&$cYW?z1O}>^Qp6+piIJY> zW-&e?<$FXjqxEWVEIJwPE8#+!#h=-jk&Rzesz=HiBK+J(3K+!c^`mw|pt~p4Vlb}v zh$JF%=7IaY888DZuF#b#!T5|Dt%p!X9eIMsNca*%o^jxbghE*oky#vG#+t_(#f10^ zeB%Wz%n8-@DHaapA~Bq5)Jc+0C=7)cbcvtECC-~)Oq8gP{NdaH*;D?qR-}K79>f(w zc?#G3YfZMav#62=3qRx(2%S~=Czp~^X{=@oC|b((b@&sGZMfMEWBp(6E|2-H;+kdK z)&Bu*8w*_Nfg#AQe_t$cNyT21{s0iH4W(LB1xs?nJeeT(%wNjrGgtk;~asDVW#1e9;Fe~1F`(rb1n+rUWkx=WQ!XPE^#^h}VbH z9ld47V;=n|H;fad9RCK0?dlO}bm*ZyM5b!)DZJ5dhe{yj<$k@IU00hVc1IpFYTs*~ zSj61>RU9)SYm{cI)!JS`UTAfAkCpqya?6u7?6+pGnA4rr>=4Quw$kl(z2#~OyuIZ< zm~3r-x%hN@b&eh^v>cUZ1Up;1O3CUhjV2}9dDdIsJ*#|fKjPw^hSCeAD=~7x3JX(y zscFOr1!Uf<1*eCUEqR0_cuy^&+~Xh zxw^hSoo|;LKd`j%o@h1{T&g(MjGzptczoahfgVC(ZPR&G9Wo7w?bqdBK`2tLg%`)X zesIh~zgr)@TRKHSjI1-&G%h!IT-sITHThb?Z)@JZ;(-#@2<%L1w2j zjw8i#*%6EhZei#`vU)`L%QX)k`4o_?z&9zfr_PRu=ZesyJP5*)W)Hs$!YWAV=e*#r zeNn^06&I_@NBZ@`c}#o<(a}nR<;l}kD@_waBhIOZoJXCKAxe6VsHiKjAg??ZZWbqmbj#EcZJTD? zOXt&a22hr>yj3@4|o*c;-M@Adh7auhv16Hae& z?y%d@WNYt#2+3&F3(2vIqwK7#&MbC+aI|VnXUh-5%>m9cgRDH0yr6>#m4{-%;UJG! zIlHdWuM)WX!9f5%%r*Cmn>@KOaB27!Y-FAoHFE6$A$v;PcuS87o8xp@?xld$ z!NB&xmKoLp4zpnN>Ry(2a)B@qcDI*D4v0K6YMQU_&Xt-3S4wgAo3_vFkkQK+F{x$L z7%L`Ilj)4}8@u9oS_FxvG2nsiy2#u}u~1_Tepa`;f9MOI8@$`b$87k#`QsAPIN|(% zACmjl+ff|@TzCaA#Oq2@+zQFw8FPE!yxYe9KxBllvHj_}Nr~1eds!r<4VlL|usGgd zY<(e&xq}gxFGfTi`ixset1E45&Ezq3sjNWhS-=*QQczUG%db`^{UmT+)2=u<3*R4YULl6M87HHJPpeQ4iii~sy zWvK*OW07s*A1AMyES)WJDwUC@*vyZsFDppYPN);0Pz>6}D^q(B*h<^QIAJ)dV>Knh zq7#FTdaeHuH+L>>CkN-jb*%JW;;vH>9AlYFG7@6ZnPj3pp4h%Mmz6zO}FXk&|Z*4`-4_bAU`Eaqg?E6#_LcDVi1D$Jwr zRF)4Z$_5X0m*RW}sTAZk&6HzG-uvTnqK(^waS7^x`g5pD&C9GCt-`u0bPAIVVD6gTYQgMynK_HdV>PgcIYdi8# zRvqB;?ux1u(FrA0@CPZV#5|~+W@4)-4hcV?lxBKz$e25(Ocd6FYDJV8CX~==aHW6} zp`}Q#19MWPC9u{A4dEL~Ckv@FO)H#ZtV7D?7%vB|D4Ik`a6O)5V69*((^$Ej0``h! z$iT^18>KQ+lL5i%3-;71ls#6hOlImg70JY$QX)&DDRrF!IYt0m?PF1mk#ZZ!05Tzh zW{O0PalWy_nCaLiin3TkO;Jop7Jtuh7MzgvtLzF>7D|2SeO>xkF&ra2L@CTX-%41w6}sP}-f=c)H7dX7;m zd7+SHUk@pG4?qkQ1dN;38cne~l*+zRsk<=n?SSIu2h}(=ip|@Vwz0x?kFpku%9NrOX`PbRCQv~ONUxlYQmB}Xl(P0S z1k@NRPi>X4kBAeo*??f|5@GRgT=ny#u;S7Ha>b(W*<;m3OWskmfVcoxj~@*2bqVfN42_Tu!K z{I^X?6FW%4kP9SYywpA^caUMez`BOZtGND59sw$iPZ84wt$GZ{+x_P!Ogr{4N=k#Q zq&-IB@;#%45JNKvA%sv0A)qLlqO&;|<0PphGus#g-ia|~n))Vm@Ui*crt{EZV zed4%c#X7}`6%o4g+8^9X_G%&Cm>875-6!*c7Y^+;V*8zb(U^3*U8@%dD=ak$QzUG zv-nEO6aR8JFbm{_mk{%qatEa-DZu(m3I|Q-ycnxs?M<`B1| zyPMRbNU#_&F;4S(Q#q`?>In=kN3SlIlxXHTkV;u_>0a;yJ`U<9UFt4pzuiXeHq+KN z)LOoiUR+h~o<1su!iB77c09d)r;tZQ%@l5>OPiT$Pnf^v%Dj zs+r6{U|mIGDENB4Skq7NMa0Iv(;ZhY^9QF?@+Gf+C?e;I8S+PvLf!fF8m?W#X!&lY zM-%wd^E&pgaHGl1<*D-f`Q~=@!`0J)f8;=T%v(1ejjkBit!`#ZzSQ>MBcgtRWDwM)Av?pC^xPV?rN*V ztl*usN)El*SsO|E=T^L!5M4Y~RA~_QlSc>ZL@TXl%2v!u9n*SPQl#lwp(M;5$pcwaEeYdV;k75WQA0c8yGlfmQKl zWQBdM@Zq?IO-BNw0YDjFUt3fMEApEtf=K$S5+rpmzJ;Suuti-C+uBWt0if*rOGupzZS*v|6z=vwecB&0X;~SFGtu5^b*v z9NpS&ZxSKT>+bC&qq=Xcz_17iGuChiWZudbiwCmmi?{36V{p&5bmUFuY*muG>vM-7 zzX6lg+IAOEt<35+>ti-8j9D#RX;Hakqz!gt`V`%0Ak~ydqLu_YM_FG%Q$eR&74!S|by47y2KI&IB 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 diff --git a/Shoal.v2/Console/Console/CLI.vb b/Shoal.v2/Console/Console/CLI.vb deleted file mode 100644 index d1e5845e1..000000000 --- a/Shoal.v2/Console/Console/CLI.vb +++ /dev/null @@ -1,149 +0,0 @@ -Imports Microsoft.VisualBasic.CommandLine.Reflection -Imports Microsoft.VisualBasic.Scripting.MetaData -Imports Microsoft.VisualBasic.Scripting.ShoalShell -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Configuration -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Runtime -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.SCOM - -'''

-''' This module define the shoal commandlines for the command line interpreter. -''' -''' -''' - -Module CLI - - - Public Function Version() As Integer - Call Console.WriteLine($"Shoal Shell {My.Application.Info.Version.ToString}") - Return 0 - End Function - - - Public Function Start() As Integer - Dim work As String = Environment.CurrentDirectory - Return Program.ScriptShellTerminal(-1, work) - End Function - - - Public Function SetValue(argvs As CommandLine.CommandLine) As Integer - Using Profile = Config.Default - Dim var As String = argvs.Parameters.First - Dim value As String = argvs.Parameters(1) - Call Profile.Set(var, value) - End Using - - Return 0 - End Function - - - Public Function GetValue(argvs As CommandLine.CommandLine) As Integer - Dim Profile = Config.Default - Call Console.WriteLine(Profile.View(argvs.Parameters.FirstOrDefault)) - Return 0 - End Function - - msgbox title ""This is a hello world tesing example!""")> - Public Function Shell(scriptLine As CommandLine.CommandLine) As Integer - Dim strLine As String = Mid(scriptLine.CLICommandArgvs, 3).Trim - If Not String.IsNullOrEmpty(strLine) Then - strLine = strLine.GetString(wrapper:="""") - Else - Call Console.WriteLine("Syntax error on the shell commandline!") - Return -1 - End If - - Using ScriptHost As ScriptEngine = New ScriptEngine(Config.Default.SettingsData) '(ShowInitializeMessage:=False, LibraryRegistry:=Program.Configuration.TargetSettingsData.get_RegistryFile) - ' Call ScriptHost.Imports(GetType(InternalCommands)) - Return ScriptHost.Exec(strLine) - End Using - End Function - - - - - Public Function RegisterModule(argvs As CommandLine.CommandLine) As Integer - Dim Path As String = argvs("-path") - Dim AssemblyName As String = argvs("-module_name") - - If String.IsNullOrEmpty(Path) Then - Return -1 - End If - - If Not String.IsNullOrEmpty(Path) AndAlso Not FileIO.FileSystem.FileExists(Path) Then - Call Console.WriteLine("FILE_NOT_FOUND: " & Path) - Return -2 - End If - - Dim Db As SPM.PackageModuleDb = SPM.PackageModuleDb.Load(Program.Configuration.SettingsData.GetRegistryFile) - - Using SPM As New SPM.ShoalPackageMgr(Db) - Call SPM.Imports(Path) - End Using - - Return 0 - End Function - - - Public Function ScanPlugins(args As CommandLine.CommandLine) As Integer - Call RuntimeEnvironment.ScanPlugins(args) - - Dim ScriptHost As ScriptEngine = New ScriptEngine(Config.Default.SettingsData) - Return ScriptHost.Exec("Wiki.Http_Server::Doc.Build") - End Function - - ' - 'Public Function ShowInfo(argvs As CommandLine.CommandLine) As Integer - ' Dim ScriptFile As String = argvs.Parameters.First - ' If FileIO.FileSystem.FileExists(ScriptFile) Then - ' Call Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Objects.ObjectModels.ScriptInfo.LoadInfo(ScriptFile, Microsoft.VisualBasic.Scripting.ShoalShell.DelegateHandlers.TypeLibraryRegistry.DelegateRegistry.CreateFromFile(Program.Configuration.TargetSettingsData.GetRegistryFile)).DisplayInfo() - ' Else - ' Call Console.WriteLine("'{0}' is not exists on the filesystem!", ScriptFile) - ' Return -1 - ' End If - - ' Return 0 - 'End Function - - - Public Function Start(argvs As CommandLine.CommandLine) As Integer - Throw New NotImplementedException - End Function - - ''' - ''' 以调试模式启动脚本引擎 - ''' - ''' - ''' - ''' 本应用程序作为客户端,与主机程序进行TcpSocket通信来完成调试信息的数据 - ''' - - Public Function DEBUG(argvs As CommandLine.CommandLine) As Integer - Dim Port As Integer = argvs.GetInt32("listener_port") - Dim Work As String = argvs("-work") - Return Program.ScriptShellTerminal(Port, Work) - End Function - - - Public Function ShowLogs() As Integer - Dim Dir As String = App.LogErrDIR - Call Process.Start(Dir) - Return 0 - End Function -End Module \ No newline at end of file diff --git a/Shoal.v2/Console/Console/Program.vb b/Shoal.v2/Console/Console/Program.vb deleted file mode 100644 index 2f47b4273..000000000 --- a/Shoal.v2/Console/Console/Program.vb +++ /dev/null @@ -1,196 +0,0 @@ -Imports Microsoft.VisualBasic.CommandLine.Reflection -Imports Microsoft.VisualBasic.ComponentModel.Settings -Imports Microsoft.VisualBasic.Terminal.STDIO -Imports Microsoft.VisualBasic.Scripting.ShoalShell -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Configuration -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Runtime -Imports Microsoft.VisualBasic.ComponentModel.DataSourceModel -Imports Microsoft.VisualBasic.Scripting - -''' -''' The shoal program main entry. -''' -''' -Module Program - - Public Const STATUS_PREALPHA As String = "pre-alpha" - Public Const STATUS_BETA As String = "beta" - Public Const SHOAL_SHELL As String = "Shoal Shell" - - ''' - ''' Shoal主程序的欢迎文本 - ''' - ''' - ''' - ''' - Private ReadOnly Property ConsoleSplashPrintPage As String - Get - Return _ -LANS Shoal Shell [version {0} - {1}; {2}] -Copyright (c) 2015 SMRUCC SystemsBiology. All Rights Reserved. - -Shoal was developed by: xieguigang(xie.guigang@gcmodeller.org) - Miss asuka(amethyst.asuka@gcmodeller.org) - - "A lot of fish in a shoal, in a gigantic scientific ocean." - -Shoal running cross-platform(Windows7/8/10, Linux/Ubuntu, OS X), and you can hybrid scripting using shoal with R/Perl -ShoalShell project source code is available on Github: - - https://github.com/smrucc/shoal - -Commands quick guide: - - libraries - list all of the installed package for shoal shell - - library - Install a assembly library for Shoal - Usage: library <assembly_path> - The alias command for the "library" is "install" - - ? - Get the help information about the installed package or command - Usage: ? Namespace/<command name>/keyword - - ! - Attaching the external hybrid scripting language environment entry point onto Shoal - Usage: !<hybrid_script_name> - - imports - Imports the namespace from a installed package - Usage: imports namespace - - source - Calling the script file on your filesystem - Usage: source <script_file> argvs - - ver() - Display the version of Shoal - wiki() - Open the wiki page to get help information, this command required a Internet connection. - Usage: wiki() <keyword> - - q() - quit the shoal shell - -For more details help information, please visit the WIKI page on Shoal shell's wiki: http://wiki.gcmodeller.org/shoal/ - -Program files and source code was distributed under the GPL3 Licensed to "{3}", using license() command to view the license details. - - - End Get - End Property - - Public ReadOnly Property Configuration As Settings(Of Config) = Config.Default - - Public Function Main() As Integer - Return GetType(CLI).RunCLI(App.CommandLine, AddressOf Program.ExecuteScriptFile, AddressOf Program.ExecuteEmpty) - End Function - - Private Function ExecuteScriptFile(path As String, args As CommandLine.CommandLine) As Integer - Return Program.RunScriptFile(path, args:=args.ToArray) - End Function - - Private Function ExecuteEmpty() As Integer - Return Program.ScriptShellTerminal(-1, "") - End Function - - Private Function RunScriptFile(ScriptFile As String, args As NamedValue(Of String)()) As Integer - Using scriptEngine As ScriptEngine = New ScriptEngine(Config.Default.SettingsData) - Return __runScriptFile(scriptEngine, ScriptFile, args) - End Using - End Function - - Private Function __runScriptFile(ScriptEngine As ScriptEngine, ScriptFile As String, args As NamedValue(Of String)()) As Integer - Call ScriptEngine.Imports(GetType(InternalCommands)) - - For Each item In args - Call ScriptEngine.MMUDevice.WriteMemory(item.Name, item.x) - Next - - Dim currentWork As String = My.Computer.FileSystem.CurrentDirectory - Dim work As String = FileIO.FileSystem.GetParentPath(ScriptFile) - - If String.IsNullOrEmpty(work) Then - work = "./" - End If - - My.Computer.FileSystem.CurrentDirectory = work - Dim value = ScriptEngine.Source(ScriptFile) - My.Computer.FileSystem.CurrentDirectory = currentWork - - If value Is Nothing Then ' 当API是一个Sub过程的时候会返回System.Void,具体值为Nothing,在这里不太好进行判断 - Return 1 - End If - - Dim i As Integer = If( - InputHandler.Convertible(value.GetType, GetType(Integer)), - InputHandler.CTypeDynamic(InputHandler.ToString(value), GetType(Integer)), - If(value Is Nothing, 1, 0)) - - Return i - End Function - - ''' - ''' 打开Shoal的交互终端 - ''' - ''' - ''' 空字符串表示使用配置文件之中的路径,反之使用本参数所制定的路径做出初始化路径 - ''' - Public Function ScriptShellTerminal(ListenerPort As Integer, work As String) As Integer - Dim usr As String = If(String.IsNullOrEmpty(My.Computer.Name), "EMPTY_USER_NAME", My.Computer.Name) - - Console.BackgroundColor = ConsoleColor.DarkCyan - Console.ForegroundColor = ConsoleColor.White - - Call Console.WriteLine(Program.ConsoleSplashPrintPage, - My.Application.Info.Version.ToString, - STATUS_BETA, - $"{Environment.OSVersion.Platform.ToString} - {Environment.OSVersion.Version.ToString}", - usr) - - work = If(String.IsNullOrEmpty(work), - Program.Configuration.SettingsData.InitDirectory, - FileIO.FileSystem.GetDirectoryInfo(work).FullName) - - My.Computer.FileSystem.CreateDirectory(work) - My.Computer.FileSystem.CurrentDirectory = work - - Using ScriptEngine As ScriptEngine = If(ListenerPort > 0, - New Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Debugging.Debugger( - DebugListenerPort:=ListenerPort, - Config:=Program.Configuration.SettingsData), - New ScriptEngine(Program.Configuration.SettingsData)) - Return __scriptShellTerminal(ScriptEngine, ListenerPort > 0) - End Using - End Function - - Public Function __scriptShellTerminal(ScriptEngine As ScriptEngine, DebuggerMode As Boolean) As Integer - Call ScriptEngine.Imports(GetType(InternalCommands)) - - If DebuggerMode Then - Call __runDebugger(ScriptEngine) - Else - Call __runTerminal(ScriptEngine) - End If - - Call Console.WriteLine("[MESSAGE] Auto save shoal environment variables..." & vbCrLf & " -----> ""file:///{0}""", Program.Configuration.SettingsData.FilePath) - Call Program.Configuration.SettingsData.Save() - Call Console.WriteLine("[DONE!]") - - Return 0 - End Function - - Private Sub __runTerminal(ScriptEngine As ScriptEngine) - Do While True - Dim input As String = scanf("$ ", ConsoleColor.Yellow) - - If String.Equals(input, "q()", StringComparison.OrdinalIgnoreCase) Then - Exit Do - Else - Call ScriptEngine.Exec(input) - End If - Loop - End Sub - - Private Sub __runDebugger(ScriptEngine As ScriptEngine) - Dim Debugger As Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Debugging.Debugger = - DirectCast(ScriptEngine, Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Debugging.Debugger) - - Do While Not Debugger.DebuggerExit - Call Threading.Thread.Sleep(2000) - Loop - End Sub -End Module \ No newline at end of file diff --git a/Shoal.v2/Console/InternalCommands.vb b/Shoal.v2/Console/InternalCommands.vb deleted file mode 100644 index 8a683b295..000000000 --- a/Shoal.v2/Console/InternalCommands.vb +++ /dev/null @@ -1,235 +0,0 @@ -Imports Microsoft.VisualBasic.CommandLine.Reflection -Imports System.Drawing -Imports Microsoft.VisualBasic.Scripting.MetaData -Imports Microsoft.VisualBasic.Linq.Extensions -Imports System.Runtime.CompilerServices - -''' -''' This module provides some common operation in the shoal scripting. -''' -''' -<[Namespace]("System.Extensions", Description:="This module provides some common operation in the shoal scripting.")> -Public Module InternalCommands - - - Public Function TrimLinux(Path As String) As Boolean - Dim s_Data As String() = System.IO.File.ReadAllLines(Path) - Dim Temp As String = String.Join(vbCr, s_Data) - Return Temp.SaveTo(Path, System.Text.Encoding.UTF8) - End Function - - ''' - ''' 批量执行指定的文件夹之中的所有Shoal脚本 - ''' - ''' - ''' - - Public Function BatchInvoke( Optional dir As String = "./", - Optional Parallel As Boolean = True) As Integer - Dim Shoal As String = ExecutablePath - Dim ScriptSource = dir.LoadSourceEntryList({"*.txt", "*.shl"}).ToArray - - If Parallel Then - Call System.Threading.Tasks.Parallel.ForEach(Of KeyValuePair(Of String, String))( - ScriptSource, - Sub(PathEntry As KeyValuePair(Of String, String)) - Call Threading.Thread.Sleep(5 * 1000) - Dim proc = Process.Start(Shoal, PathEntry.Value.CliPath) '执行脚本 - Call proc.WaitForExit() - End Sub) - Else - For Each PathEntry In ScriptSource - Dim proc = Process.Start(Shoal, PathEntry.Value.CliPath) '执行脚本 - Call Console.WriteLine($"[DEBUG {Now.ToString}] Execute task {PathEntry.Value.ToFileURL}.....") - Call proc.WaitForExit() - Next - End If - - Call Console.WriteLine("Job Done!") - Return 0 - End Function - - Public Function Invoke(Of T As Class)(obj As T, Entry As String) As Double - Dim Method = (From m In GetType(T).GetMethods(System.Reflection.BindingFlags.Public Or System.Reflection.BindingFlags.Instance) - Where String.Equals(m.Name, Entry) - Select m).FirstOrDefault - If Method Is Nothing Then - Return -1 - Else - Call Threading.Thread.Sleep(5 * 1000) '有可能出现同一个资源被占用的情况,则可能会出错,则批量调用的时候会有一个时间差以避免这个错误 - Dim sw = Stopwatch.StartNew - Call Method.Invoke(obj, Nothing) - Return sw.ElapsedMilliseconds - End If - End Function - - - Public Function Beep() As Integer - Call Console.Beep() - Return 0 - End Function - - - Public Function Sum(dat As Generic.IEnumerable(Of Double)) As Double - Return dat.Sum - End Function - - - Public Function Locate(Optional path As String = "") As String - If String.IsNullOrEmpty(path) OrElse Not FileIO.FileSystem.FileExists(path) Then - path = My.Computer.FileSystem.CurrentDirectory - End If - - path = FileIO.FileSystem.GetDirectoryInfo(path).FullName - - Call Process.Start(path) - Return path - End Function - - - Public Function Format(Expression As String, argvs As Generic.IEnumerable(Of Object)) As String - Return String.Format(Expression, argvs.ToArray) - End Function - - - Public Function WriteArray(array As Generic.IEnumerable(Of Object), saveTo As String) As Integer - Call IO.File.WriteAllLines(saveTo, (From item In array Let strValue As String = item.ToString Select strValue).ToArray) - Return array.Count - End Function - - - Public Function ReadTxt(file As String) As String - Dim strData = FileIO.FileSystem.ReadAllText(FileIO.FileSystem.GetFileInfo(file).FullName) - Return strData - End Function - - - Public Function ReadAllLines(path As String) As String() - Return IO.File.ReadAllLines(path) - End Function - - - Public Function WriteAllLines(data As Generic.IEnumerable(Of String), saveto As String) As Boolean - Call IO.File.WriteAllLines(saveto, data.ToArray) - Return True - End Function - - - Public Function _Msgbox(Message As String, Optional Title As String = "") As String - MsgBox(Message, MsgBoxStyle.Information, Title) - Return Message - End Function - - - Public Function [AND](logicals As Boolean()) As Boolean - For Each item In logicals - If item = False Then - Return False - End If - Next - - Return True - End Function - - - Public Function GreaterThan(a As Double, b As Double) As Boolean - Return a > b - End Function - - - Public Function [OR](logicals As Boolean()) As Boolean - Dim LQuery = (From item In logicals.AsParallel Where item = True Select 1).ToArray - Return Not LQuery.IsNullOrEmpty - End Function - - - Public Function [NOT](value As Boolean) As Boolean - Return Not value - End Function - - - Public Function ReadImage(path As String) As Image - Return Image.FromFile(path) - End Function - - - Public Function SplitCollection(collection As Generic.IEnumerable(Of Object), n As Integer) As Object()() - Return collection.Split(parTokens:=n) - End Function - - - Public Function Sleep(n As Integer) As Integer - Call System.Threading.Thread.Sleep(n * 1000) - Return n - End Function - - - Public Function Sequence(n As Integer) As Integer() - Return n.Sequence - End Function - - - Public Function Pause() As Integer - Call Console.WriteLine() - Call Console.WriteLine("Press any key to continute...") - Return Console.Read - End Function - - ''' - ''' 更加一般性的复制函数,当目标文件夹之中的文件数目非常的多的时候,可以使用这个函数进行批量的文件复制,只需要把文件名填入列表之中即可,大小写无关 - ''' - ''' 复制失败的文件名列表 - - Public Function SourceCopy( IDList As Generic.IEnumerable(Of String), - Source As String, - CopyTo As String) As String() - - Dim FailuredList As New List(Of String) - Dim FileList = FileIO.FileSystem.GetFiles(Source, FileIO.SearchOption.SearchTopLevelOnly).ToList - - Call FileIO.FileSystem.CreateDirectory(CopyTo) - - For Each ID As String In IDList - Dim Files = (From path As String In FileList.AsParallel Let Name As String = IO.Path.GetFileNameWithoutExtension(path) Where String.Equals(ID, Name, StringComparison.OrdinalIgnoreCase) Select path).ToArray - If Files.IsNullOrEmpty Then - Call FailuredList.Add(ID) - End If - - For Each path As String In Files - Try - Call FileIO.FileSystem.CopyFile(path, CopyTo & "/" & FileIO.FileSystem.GetFileInfo(path).Name) - Catch ex As Exception - Call Console.WriteLine(path.ToFileURL) - Call Console.WriteLine(ex.ToString) - End Try - Next - Next - - Return FailuredList.ToArray - End Function - -#Const DEBUG = 1 - -#If DEBUG Then - - - Public Function TestException() As Boolean - Throw New Exception("Dont worried, this is a test for shellscript exception handler.") - End Function - - - Public Function OverloadsTest(n As Integer) As Integer - Call Console.WriteLine(Integer.MaxValue) - Call Console.WriteLine(RandomDouble() * n) - Return Integer.MaxValue - End Function - - - Public Function OverloadsTest( s1 As String, s2 As String) As String - Call Console.WriteLine(s1) - Call Console.WriteLine(s2 & " anysdfs") - Return s1 - End Function -#End If - -End Module diff --git a/Shoal.v2/Console/Microsoft.VisualBasic.Architecture.Framework_v3.0_22.0.76.201__8da45dcd8060cc9a.xml b/Shoal.v2/Console/Microsoft.VisualBasic.Architecture.Framework_v3.0_22.0.76.201__8da45dcd8060cc9a.xml deleted file mode 100644 index 27d925bc0..000000000 --- a/Shoal.v2/Console/Microsoft.VisualBasic.Architecture.Framework_v3.0_22.0.76.201__8da45dcd8060cc9a.xml +++ /dev/null @@ -1,7761 +0,0 @@ - - - - -Microsoft.VisualBasic.Architecture.Framework_v3.0_22.0.76.201__8da45dcd8060cc9a - - - - - - The target invoked process event has been exit with a specific return code.(目标派生子进程已经结束了运行并且返回了一个错误值) - - - - - - - - Gets the standard output for the target invoke process. - - - - - - - - Start the target process. If the target invoked process is currently on the running state, - then this function will returns the -100 value as error code and print the warning - information on the system console.(启动目标进程) - - Indicate that the program code wait for the target process exit or not?(参数指示应用程序代码是否等待目标进程的结束) - 当发生错误的时候会返回错误代码,当当前的进程任然处于运行的状态的时候,程序会返回-100错误代码并在终端之上打印出警告信息 - - - - - 启动目标子进程,然后等待执行完毕并返回退出代码(请注意,在进程未执行完毕之前,整个线程会阻塞在这里) - - - - - - Using this class object rather than is more encouraged. - (假若所建立的子进程并不需要进行终端交互,相较于对象,更加推荐使用本对象类型来执行。 - 似乎对象在创建一个子进程的时候的对象IO重定向的句柄的处理有问题,所以在这里构建一个更加简单的类型对象, - 这个IO重定向对象不具备终端交互功能) - - 先重定向到一个临时文件之中,然后再返回临时文件给用户代码 - - - - 重定向的临时文件 - - - - - The target invoked process event has been exit with a specific return code.(目标派生子进程已经结束了运行并且返回了一个错误值) - - - - - - - - 目标子进程的终端标准输出 - - - - - - 将目标子进程的标准终端输出文件复制到一个新的文本文件之中 - - - - - - - Using this class object rather than is more encouraged if there is no console interactive with your folked process. - - The program file. - The program commandline arguments. - Temporary environment variable - Folk the process on a new console window if this parameter value is TRUE - - - - 启动目标子进程,然后等待执行完毕并返回退出代码(请注意,在进程未执行完毕之前,整个线程会阻塞在这里) - - - - - - 启动子进程,但是不等待执行完毕,当目标子进程退出的时候,回调函数句柄 - - - - - - A command object that with a specific name.(一个具有特定名称命令执行对象) - - - - - - The name of the commandline object.(这个命令的名称) - - - - - - - - Something detail of help information.(详细的帮助信息) - - - - - - - - The usage of this command.(这个命令的用法,本属性仅仅是一个助记符,当用户没有编写任何的使用方法信息的时候才会使用本属性的值) - - - - - - - - A example that to useing this command.(对这个命令的使用示例,本属性仅仅是一个助记符,当用户没有编写任何示例信息的时候才会使用本属性的值) - - - - - - - - 定义一个命令行程序之中可以使用的命令 - - The name of the commandline object.(这个命令的名称) - - - - - The name of the commandline object.(这个命令的名称) - - - - - - - - Something detail of help information.(详细的帮助信息) - - - - - - - - The usage of this command.(这个命令的用法,本属性仅仅是一个助记符,当用户没有编写任何的使用方法信息的时候才会使用本属性的值) - - - - - - - - A example that to useing this command.(对这个命令的使用示例,本属性仅仅是一个助记符,当用户没有编写任何示例信息的时候才会使用本属性的值) - - - - - - - - The usage name of this command line entry point.(本命令行对象的调用命令名称) - - - - - - - - 不可以使用本方法初始化目标对象为实例方法的类型 - - - - - - - - - - 数组的长度必须与目标函数的参数的数目一致,否则短于目标函数的参数的数目的数组会使用Nothing来填充缺少的部分,而多于目标函数的参数会被截断 - - - - - - The entry point data of the commands in the command line which was original loaded from the source meta data in the compiled target.(命令行命令的执行入口点) - - - - - - If the target invoked method delegate is a instance method, - then this property value should be the target object instance which has the method delegate. - (假若目标方法不是共享的方法,则必须要使用本对象来进行Invoke的调用) - - - - - - - - The shared method did not requires of the object instance.(这个方法是否为实例方法) - - - - - - - - The full name path of the target invoked method delegate in the namespace library. - - - - - - - - The null string value. - - - - - - 假若目标方法为实例方法,请使用本方法进行初始化 - - - - - - - - Returns the help information details for this command line entry object.(获取本命令行执行入口点的详细帮助信息) - - - - - - - Invoke this command line and returns the function value.(函数会补齐可选参数) - - The function parameter for the target invoked method, the optional value will be filled - using the paramter default value if you are not specific the optional paramter value is the element position of - this paramter value. - If throw then if the exception happened from delegate invocation then the program will throw an - exception and terminated, if not then the program will save the exception information into a log file and then - returns a failure status. - - - - - - 不会自动调整补齐参数 - - - - - - - - Invoke this command line and returns the function value.(函数会补齐可选参数) - - The function parameter for the target invoked method, the optional value will be filled - using the paramter default value if you are not specific the optional paramter value is the element position of - this paramter value. - Target entry pointer of this function method delegate. - If throw then if the exception happened from delegate invocation then the program will throw an - exception and terminated, if not then the program will save the exception information into a log file and then - returns a failure status. - - - - - - Invoke this command line but returns the function execute success, Zero for success and -1 for failure.(函数会补齐可选参数) - - - - - - - - - - (CommandLine interpreter executation Entry and the ShellScript software packages namespace.)这是一个命令行解释器所使用的执行入口点的集合 - - - - - - A brief description text about the function of this namespace.(关于本模块之中的描述性的摘要文本) - - - - - - - - The name value of this namespace module.(本命名空间模块的名称值) - - - - - - - - The name value of this namespace module.(本命名空间模块的名称值) - - The name value of this namespace module.(本命名空间模块的名称值) - - - - - 从目标类型之中构造出一个命令行解释器 - - - - - - - - Optional commandline arguments.(本属性标记一个命令行字符串之中的可选参数) - - - - - - The data type enumeration of the target optional parameter switch. - - - - - - String - - - - - - Int - - - - - - Real - - - - - - - - The name value of the target parameter switch which will be marked as an optional parameter. - (目标将要被标记为可选参数的命令行参数开关对象) - The data type of the target command line parameter switch, default type is string type. - - - - - 对类型的转换方法进行枚举 - - - - - - Generates the command line string value for the invoked target cli program using this interop services object instance. - - - A class type object for interaction with a commandline program. - (与命令行程序进行交互的模块对象类型) - - 目标交互对象的实例 - - - - - - - - - - 返回所重置的参数的个数 - - - - - Use for the detail description for a specific commandline switch.(用于对某一个命令的开关参数的具体描述帮助信息) - - - - - - The name of this command line parameter switch.(该命令开关的名称) - - - - - - - - The description and brief help information about this parameter switch, - you can using the \n escape string to gets a VbCrLf value. - (对这个开关参数的具体的描述以及帮助信息,可以使用\n转义字符进行换行) - - - - - - - - The usage example of this parameter switch.(该开关的值的示例) - - - - - - - - The usage syntax information about this parameter switch.(本开关参数的使用语法) - - - - - - - - Is this parameter switch is an optional value.(本开关是否为可选的参数) - - - - - - - - 对命令行之中的某一个参数进行描述性信息的创建,包括用法和含义 - - The name of this command line parameter switch.(该命令开关的名称) - Is this parameter switch is an optional value.(本开关是否为可选的参数) - - - - - The help information for a specific command line parameter switch.(某一个指定的命令的开关的帮助信息) - - - - - - 本命令行对象中的包含有帮助信息的开关参数的数目 - - - - - - - - Returns the parameter switch help information with the specific name value.(显示某一个指定名称的开关信息) - - - - - - - - - Gets the usage example of this parameter switch.(获取本参数开关的帮助信息) - - - - - - - - 显示所有的开关信息 - - - - - - - Interpreter for object instance.(对于而言,其仅解析静态的方法,二本对象则实例方法和静态方法都进行解析) - - - - - - - - An instance object. - - - - - 静态加实例方法 - - - - - - - - Command line interpreter for your cli program.(命令行解释器,请注意,在调试模式之下,命令行解释器会在运行完命令之后暂停,而Release模式之下则不会。 - 假若在调试模式之下发现程序有很长一段时间处于cpu占用为零的静止状态,则很有可能已经运行完命令并且等待回车退出) - - - - - - - 在添加之前请确保键名是小写的字符串 - - - - - 假若所传入的命令行的name是文件路径,解释器就会执行这个函数指针 - - - - - - - - 假若所传入的命令行是空的,就会执行这个函数指针 - - - - - - Public Delegate Function __ExecuteFile(path As String, args As String()) As Integer, - (: 假若所传入的命令行的name是文件路径,解释器就会执行这个函数指针) - 这个函数指针一般是用作于执行脚本程序的 - - - - - - Public Delegate Function __ExecuteEmptyCli() As Integer, - (: 假若所传入的命令行是空的,就会执行这个函数指针) - - - - - - Gets the dictionary data which contains all of the available command information in this assembly module. - (获取从本模块之中获取得到的所有的命令行信息) - - - - - - - Execute the specific command line using this interpreter. - - The user input command line string. - - - - - - 命令行是空的 - - - - - - 所有的命令行都从这里开始执行 - - - 就只有一个命令行对象 - - - - - - Generate the sdk document for the target program assembly.(生成目标应用程序的命令行帮助文档) - - - - - - - Process the command option arguments of the main function: - Public Function Main(argvs As String()) As Integer - - - The cli command line parameter string value collection. - - - - - - Add a command in current cli interpreter.(x向当前的这个CLI命令行解释器之中添加一个命令) - - - - - - - Gets the help information of a specific command using its name property value.(获取某一个命令的帮助信息) - - If the paramteer command name value is a empty string then this function - will list all of the commands' help information.(假若本参数为空则函数会列出所有的命令的帮助信息) - Error code, ZERO for no error - - - - - Returns the summary brief help information of all of the commands in current cli interpreter. - (枚举出本CLI解释器之中的所有的命令的帮助的摘要信息) - - - - - - - Returns the command entry info list array. - - - - - - - - - - A module or a class which contains some shared method for the command entry. - (包含有若干使用进行标记的命令行执行入口点的Module或者Class对象类型, - 可以使用 Object.GetType/GetType 关键词操作来获取所需要的类型信息) - - - - - 导出所有符合条件的静态方法 - - - - - - - - 导出所有符合条件的静态方法,请注意,在这里已经将外部的属性标记和所属的函数的入口点进行连接了 - - - - - - - - Create an empty cli command line interpreter object which contains no commands entry.(创建一个没有包含有任何命令入口点的空的CLI命令行解释器) - - - - - - - Create a new interpreter instance from a specific type information.(从目标类型之中构造出一个命令行解释器) - - - - - - - - - Create a new interpreter instance using the specific type information.(使用所制定的目标类型信息构造出一个CLI命令行解释器) - - - - - - - - Create a new interpreter instance from a specific dll/exe path, this program assembly file should be a standard .NET assembly. - (从一个标准的.NET程序文件之中构建出一个命令行解释器) - - DLL/EXE file path.(标准的.NET程序集文件的文件路径) - - - - - - - Clear the hash table of the cli command line interpreter command entry points.(清除本CLI解释器之中的所有的命令行执行入口点的哈希数据信息) - - - - - - Gets the command counts in current cli interpreter.(返回本CLI命令行解释器之中所包含有的命令的数目) - - - - - - - - The target command line command is exists in this cli interpreter using it name property?(判断目标命令行命令是否存在于本CLI命令行解释器之中) - - The command name value is not case sensitive.(命令的名称对大小写不敏感的) - - - - - - List all of the command line entry point name which were contains in this cli interpreter. - (列举出本CLI命令行解释器之中的所有的命令行执行入口点的名称) - - - - - - - - A command line object that parse from the user input commandline string. - (从用户所输入的命令行字符串之中解析出来的命令行对象,标准的命令行格式为: - <EXE> <CLI_Name> ["Parameter" "Value"]) - - - - - - - The command name that parse from the input command line. - (从输入的命令行中所解析出来的命令的名称) - - - - - - - - The command tokens that were parsed from the input commandline. - (从所输入的命令行之中所解析出来的命令参数单元) - - - - - - - - The parameters in the commandline without the first token of the command name. - (将命令行解析为词元之后去掉命令的名称之后所剩下的所有的字符串列表) - - - - - - - - 对于参数而言,都是--或者-或者/或者\开头的,下一个单词为单引号或者非上面的字符开头的,例如/o <path> - 对于开关而言,与参数相同的其实符号,但是后面不跟参数而是其他的开关,通常开关用来进行简要表述一个逻辑值 - - - - - - Get the original command line string.(获取所输入的命令行对象的原始的字符串) - - - - - - - - 开关的名称是不区分大小写的 - - - - - - - - - - - 要求第一个对象不能够是命令的名称 - - - - - 从给定的词组之中解析出参数的结构 - - 个数为偶数的,但是假若含有开关的时候,则可能为奇数了 - - - - - - Returns the original cli command line argument string.(返回所传入的命令行的原始字符串) - - - - - - - Gets the brief summary information of current cli command line object.(获取当前的命令行对象的参数摘要信息) - - - - - - - Checking for the missing required parameter, this function will returns the missing parameter - in the current cli command line object using a specific parameter name list. - (检查之中的所有参数是否存在,函数会返回不存在的参数名) - - - - - - - - ReGenerate the cli command line argument string text.(重新生成命令行字符串) - - - - - - - - Try parsing the cli command string from the string value.(尝试着从文本行之中解析出命令行参数信息) - - - 是否允许有重复名称的参数名出现,默认是不允许的 - - - - - - A regex expression string that use for split the commandline text. - (用于分析命令行字符串的正则表达式) - - - - - - Does this cli command line object contains any parameter argument information.(查看本命令行参数对象之中是否存在有参数信息) - - - - - - - - Try parse the argument tokens which comes from the user input commandline string. - (尝试从用户输入的命令行字符串之中解析出所有的参数) - - - - - - - - 尝试从输入的语句之中解析出词法单元,注意,这个函数不是处理从操作系统所传递进入的命令行语句 - - - - - - - - Gets the value Of the specified column As a Boolean. - (这个函数也同时包含有开关参数的,开关参数默认为逻辑值类型,当包含有开关参数的时候,其逻辑值为True,反之函数会检查参数列表,参数不存在则为空值字符串,则也为False) - - 可以包含有开关参数 - - - - - Gets the 8-bit unsigned Integer value Of the specified column. - - - - - - - Reads a stream Of bytes from the specified column offset into the buffer As an array, starting at the given buffer offset. - - - - - - Gets the character value Of the specified column. - - - - - - Reads a stream Of characters from the specified column offset into the buffer As an array, starting at the given buffer offset. - - - - - - Gets the Date And time data value Of the specified field. - - - - - - Gets the fixed-position numeric value Of the specified field. - - - - - - Gets the Double-precision floating point number Of the specified field. - - - - - - Gets the Single-precision floating point number Of the specified field. - - - - - - Returns the GUID value Of the specified field. - - - - - - Gets the 16-bit signed Integer value Of the specified field. - - - - - - Gets the 32-bit signed Integer value Of the specified field. - - - - - - Gets the 64-bit signed Integer value Of the specified field. - - - - - - Return the index Of the named field. - - - - - - Gets the String value Of the specified field. - - - - - - Return whether the specified field Is Set To null. - - - - - - The class object which can interact with the target commandline program.(与目标命令行程序进行命令行交互的编程接口,本类型的对象的作用主要是生成命令行参数) - - - - - - Assembly path for the target invoked program. - - - - - - 这个枚举函数也会将开关给包含进来 - - - - - - Get the switch counts in this commandline object.(获取本命令行对象中的所定义的开关的数目) - - - - - - - - A communication fundation class type for the commandline program interop.(一个简单的用于从当前进程派生子进程的Wrapper对象,假若需要folk出来的子进程对象不需要终端交互功能,则更加推荐使用对象来进行调用) - - - - - - 当前的这个进程实例是否处于运行的状态 - - - - - - The target invoked process event has been exit with a specific return code.(目标派生子进程已经结束了运行并且返回了一个错误值) - - - - - - - - The process invoke interface of current IO redirect operation. - - - - - - - - Gets the standard output for the target invoke process. - - - - - - - - A function pointer for process the events when the target invoked child process was terminated and exit.(当目标进程退出的时候所调用的过程) - - The exit code for the target sub invoke process.进程的退出代码 - The exit time for the target sub invoke process.(进程的退出时间) - - - - - Start the target process. If the target invoked process is currently on the running state, - then this function will returns the -100 value as error code and print the warning - information on the system console.(启动目标进程) - - Indicate that the program code wait for the target process exit or not?(参数指示应用程序代码是否等待目标进程的结束) - 当发生错误的时候会返回错误代码,当当前的进程任然处于运行的状态的时候,程序会返回-100错误代码并在终端之上打印出警告信息 - - - - - Start the target process.(启动目标进程) - - 当发生错误的时候会返回错误代码 - - - - - 输出目标子进程的标准输出设备的内容 - - - - - - 检测目标子进程是否已经结束 - - - - - - 在进行隐士转换的时候,假若可执行文件的文件路径之中含有空格,则这个时候应该要特别的小心 - - - - - - - - - - - Set up the environment variable for the target invoked child process. - - 是否显示目标被调用的外部程序的标准输出 - - - - - 当所需要进行加载的数据的量非常大的时候,则可以使用本方法进行延时按需加载 - - - - - - - Gets the value from the data source - - - - - - - - The data source.(数据源) - - - - - - - - Write the data back onto the filesystem.(将数据回写进入文件系统之中) - - - - - - - - Constants used with PInvoke methods - - - - - - EventType flags. - - - - - Event contains key event record - - - - - Event contains mouse event record - - - - - Event contains window change event record - - - - - Event contains menu event record - - - - - Event contains focus change - Returned by GetStdHandle when an error occurs - - - - - ' Struct uChar is meant to support the Windows Console API's uChar union. - ' Unions do not exist in the pure .NET world. We have to use the regular - ' C# struct and the StructLayout and FieldOffset Attributes to preserve - ' the memory layout of the unmanaged union. - ' - ' We specify the "LayoutKind.Explicit" value for the StructLayout attribute - ' to specify that every field of the struct uChar is marked with a byte offset. - ' - ' This byte offset is specified by the FieldOffsetAttribute and it indicates - ' the number of bytes between the beginning of the struct in memory and the - ' beginning of the field. - ' - ' As you can see in the struct uChar (below), the fields "UnicodeChar" - ' and "AsciiChar" have been marked as being of offset 0. This is the only - ' way that an unmanaged C/C++ union can be represented in C#. - ' - - - - - - ' The struct KEY_EVENT_RECORD is used to report keyboard input events - ' in a console INPUT_RECORD structure. - ' - ' Internally, it uses the structure uChar which is treated as a union - ' in the unmanaged world. - ' - - - - - - Summary description for ConsolePasswordInput. - - - .NET Console Password Input By Masking Keyed-In Characters - http://www.codeproject.com/Articles/8110/NET-Console-Password-Input-By-Masking-Keyed-In-Ch - - - - - - - - The password max length limits. - - - - - 使用回车键或者箭头下显示下一行,字母q或者ESC键退出Manual - - 最开始显示的行数 - - - - - 从文本文件之中加载Manual数据 - - - - - - - 与所不同的是,本对象之中的这个字符串数组表示的是一页帮助,而不是一行帮助信息 - - - - - - - 使用[Enter][Down_arrow][pagedown]翻下一页[Up_arrow][Pageup]翻上一页,[q]或者[esc]结束,[home]第一页[end]最后一页 - - 无用的参数 - 无用的参数 - - - - - 运行进度条 - - The total ticking counts of the indicator, Unit is [second]. - - - - - - - - - - - - - - 历史数据文件的存放位置,假若为空,则使用默认文件路径 - - - - - ReadLine函数的递归返回值 - - - - - - 保存历史数据 - - - - - - - - - 指向 - - - - - - Represents the standard input, output, and error streams for console applications. 交互式的命令行终端 - - - - - - Plays the sound of a beep through the console speaker. - - - System.Security.HostProtectionException: This method was executed on a server, such as SQL Server, that does not permit access to a user interface. - - - - Plays the sound of a beep of a specified frequency and duration through the console speaker. - - The frequency of the beep, ranging from 37 to 32767 hertz. - The duration of the beep measured in milliseconds. - - frequency is less than 37 or more than 32767 hertz.-or-duration is less than or equal to zero. - This method was executed on a server, such as SQL Server, that does not permit access to the console. - - - - Clears the console buffer and corresponding console window of display information. - - - An I/O error occurred. - - - - Copies a specified source area of the screen buffer to a specified destination area. - - The leftmost column of the source area. - The topmost row of the source area. - The number of columns in the source area. - The number of rows in the source area. - The leftmost column of the destination area. - The topmost row of the destination area. - - One or more of the parameters is less than zero.-or- sourceLeft or targetLeft is greater than or equal to System.Console.BufferWidth.-or- sourceTop or targetTop is greater than or equal to System.Console.BufferHeight.-or- sourceTop + sourceHeight is greater than or equal to System.Console.BufferHeight.-or- sourceLeft + sourceWidth is greater than or equal to System.Console.BufferWidth. - The user does not have permission to perform this action. - An I/O error occurred. - - - - Copies a specified source area of the screen buffer to a specified destination area. - - The leftmost column of the source area. - The topmost row of the source area. - The number of columns in the source area. - The number of rows in the source area. - The leftmost column of the destination area. - The topmost row of the destination area. - The character used to fill the source area. - The foreground color used to fill the source area. - The background color used to fill the source area. - - One or more of the parameters is less than zero.-or- sourceLeft or targetLeft is greater than or equal to System.Console.BufferWidth.-or- sourceTop or targetTop is greater than or equal to System.Console.BufferHeight.-or- sourceTop + sourceHeight is greater than or equal to System.Console.BufferHeight.-or- sourceLeft + sourceWidth is greater than or equal to System.Console.BufferWidth. - One or both of the color parameters is not a member of the System.ConsoleColor enumeration. - The user does not have permission to perform this action. - An I/O error occurred. - - - - Sets the foreground and background console colors to their defaults. - - - The user does not have permission to perform this action. - An I/O error occurred. - - - - Sets the height and width of the screen buffer area to the specified values. - - The width of the buffer area measured in columns. - The height of the buffer area measured in rows. - - height or width is less than or equal to zero.-or- height or width is greater than or equal to System.Int16.MaxValue.-or- width is less than System.Console.WindowLeft + System.Console.WindowWidth.-or- height is less than System.Console.WindowTop + System.Console.WindowHeight. - The user does not have permission to perform this action. - An I/O error occurred. - - - - Sets the position of the cursor. - - The column position of the cursor. - The row position of the cursor. - - left or top is less than zero.-or- left is greater than or equal to System.Console.BufferWidth.-or- top is greater than or equal to System.Console.BufferHeight. - The user does not have permission to perform this action. - An I/O error occurred. - - - - Sets the System.Console.Error property to the specified System.IO.TextWriter object. - - A stream that is the new standard error output. - - newError is null. - The caller does not have the required permission. - - - - Sets the System.Console.In property to the specified System.IO.TextReader object. - - A stream that is the new standard input. - - newIn is null. - The caller does not have the required permission. - - - - Sets the System.Console.Out property to the specified System.IO.TextWriter object. - - A stream that is the new standard output. - - newOut is null. - The caller does not have the required permission. - - - - Sets the position of the console window relative to the screen buffer. - - The column position of the upper left corner of the console window. - The row position of the upper left corner of the console window. - - left or top is less than zero.-or- left + System.Console.WindowWidth is greater than System.Console.BufferWidth.-or- top + System.Console.WindowHeight is greater than System.Console.BufferHeight. - The user does not have permission to perform this action. - An I/O error occurred. - - - - Sets the height and width of the console window to the specified values. - - The width of the console window measured in columns. - The height of the console window measured in rows. - - width or height is less than or equal to zero.-or- width plus System.Console.WindowLeft or height plus System.Console.WindowTop is greater than or equal to System.Int16.MaxValue. -or-width or height is greater than the largest possible window width or height for the current screen resolution and console font. - The user does not have permission to perform this action. - An I/O error occurred. - - - - Writes the text representation of the specified Boolean value to the standard output stream. - - The value to write. - - An I/O error occurred. - - - - Writes the specified array of Unicode characters to the standard output stream. - - A Unicode character array. - - An I/O error occurred. - - - - Writes the specified subarray of Unicode characters to the standard output stream. - - An array of Unicode characters. - The starting position in buffer. - The number of characters to write. - - buffer is null. - index or count is less than zero. - index plus count specify a position that is not within buffer. - An I/O error occurred. - - - - Writes the specified Unicode character value to the standard output stream. - - The value to write. - - An I/O error occurred. - - - - Writes the text representation of the specified System.Decimal value to the standard output stream. - - The value to write. - - An I/O error occurred. - - - - Writes the text representation of the specified double-precision floating-point value to the standard output stream. - - The value to write. - - An I/O error occurred. - - - - Writes the text representation of the specified 32-bit signed integer value to the standard output stream. - - The value to write. - - An I/O error occurred. - - - - Writes the text representation of the specified 64-bit signed integer value to the standard output stream. - - The value to write. - - An I/O error occurred. - - - - Writes the text representation of the specified object to the standard output stream. - - The value to write, or null. - - An I/O error occurred. - - - - Writes the text representation of the specified single-precision floating-point value to the standard output stream. - - The value to write. - - An I/O error occurred. - - - - Writes the specified string value to the standard output stream. - - The value to write. - - An I/O error occurred. - - - - Writes the text representation of the specified object to the standard output stream using the specified format information. - - A composite format string (see Remarks). - An object to write using format. - - An I/O error occurred. - format is null. - The format specification in format is invalid. - - - - Writes the text representation of the specified objects to the standard output stream using the specified format information. - - A composite format string (see Remarks). - The first object to write using format. - The second object to write using format. - - An I/O error occurred. - format is null. - The format specification in format is invalid. - - - - Writes the text representation of the specified objects to the standard output stream using the specified format information. - - A composite format string (see Remarks). - The first object to write using format. - The second object to write using format. - The third object to write using format. - - An I/O error occurred. - format is null. - The format specification in format is invalid. - - - - Writes the text representation of the specified array of objects to the standard output stream using the specified format information. - - A composite format string (see Remarks). - An array of objects to write using format. - - An I/O error occurred. - format or arg is null. - The format specification in format is invalid. - - - - Writes the text representation of the specified array of objects to the standard output stream using the specified format information. - - A composite format string (see Remarks). - An array of objects to write using format. - - An I/O error occurred. - format or arg is null. - The format specification in format is invalid. - - - - Writes the text representation of the specified 32-bit unsigned integer value to the standard output stream. - - The value to write. - - An I/O error occurred. - - - - Writes the text representation of the specified 64-bit unsigned integer value to the standard output stream. - - The value to write. - - An I/O error occurred. - - - - Writes the current line terminator to the standard output stream. - - - An I/O error occurred. - - - - Writes the text representation of the specified Boolean value, followed by the current line terminator, to the standard output stream. - - The value to write. - - An I/O error occurred. - - - - Writes the specified array of Unicode characters, followed by the current line terminator, to the standard output stream. - - A Unicode character array. - - An I/O error occurred. - - - - Writes the specified subarray of Unicode characters, followed by the current line terminator, to the standard output stream. - - An array of Unicode characters. - The starting position in buffer. - The number of characters to write. - - buffer is null. - index or count is less than zero. - index plus count specify a position that is not within buffer. - An I/O error occurred. - - - - Writes the specified Unicode character, followed by the current line terminator, value to the standard output stream. - - The value to write. - - An I/O error occurred. - - - - Writes the text representation of the specified System.Decimal value, followed by the current line terminator, to the standard output stream. - - The value to write. - - An I/O error occurred. - - - - Writes the text representation of the specified double-precision floating-point value, followed by the current line terminator, to the standard output stream. - - The value to write. - - An I/O error occurred. - - - - Writes the text representation of the specified 32-bit signed integer value, followed by the current line terminator, to the standard output stream. - - The value to write. - - An I/O error occurred. - - - - Writes the text representation of the specified 64-bit signed integer value, followed by the current line terminator, to the standard output stream. - - The value to write. - - An I/O error occurred. - - - - Writes the text representation of the specified object, followed by the current line terminator, to the standard output stream. - - The value to write. - - An I/O error occurred. - - - - Writes the text representation of the specified single-precision floating-point value, followed by the current line terminator, to the standard output stream. - - The value to write. - - An I/O error occurred. - - - - Writes the specified string value, followed by the current line terminator, to the standard output stream. - - The value to write. - - An I/O error occurred. - - - - Writes the text representation of the specified object, followed by the current line terminator, to the standard output stream using the specified format information. - - A composite format string (see Remarks). - An object to write using format. - - An I/O error occurred. - format is null. - The format specification in format is invalid. - - - - Writes the text representation of the specified objects, followed by the current line terminator, to the standard output stream using the specified format information. - - A composite format string (see Remarks). - The first object to write using format. - The second object to write using format. - - An I/O error occurred. - format is null. - The format specification in format is invalid. - - - - Writes the text representation of the specified objects, followed by the current line terminator, to the standard output stream using the specified format information. - - A composite format string (see Remarks). - The first object to write using format. - The second object to write using format. - The third object to write using format. - - An I/O error occurred. - format is null. - The format specification in format is invalid. - - - - Writes the text representation of the specified array of objects, followed by the current line terminator, to the standard output stream using the specified format information. - - A composite format string (see Remarks). - An array of objects to write using format. - - An I/O error occurred. - format or arg is null. - The format specification in format is invalid. - - - - Writes the text representation of the specified 32-bit unsigned integer value, followed by the current line terminator, to the standard output stream. - - The value to write. - - An I/O error occurred. - - - - Writes the text representation of the specified 64-bit unsigned integer value, followed by the current line terminator, to the standard output stream. - - The value to write. - - An I/O error occurred. - - - - Acquires the standard error stream. - - The standard error stream. - - - - - Acquires the standard error stream, which is set to a specified buffer size. - - The internal stream buffer size. - The standard error stream. - - bufferSize is less than or equal to zero. - - - - Acquires the standard input stream. - - The standard input stream. - - - - - Acquires the standard input stream, which is set to a specified buffer size. - - The internal stream buffer size. - The standard input stream. - - bufferSize is less than or equal to zero. - - - - Acquires the standard output stream. - - The standard output stream. - - - - - Acquires the standard output stream, which is set to a specified buffer size. - - The internal stream buffer size. - The standard output stream. - - bufferSize is less than or equal to zero. - - - - Reads the next character from the standard input stream. - - The next character from the input stream, or negative one (-1) if there are currently no more characters to be read. - - An I/O error occurred. - - - - Obtains the next character or function key pressed by the user. The pressed key is displayed in the console window. - - A System.ConsoleKeyInfo object that describes the System.ConsoleKey constant and Unicode character, if any, that correspond to the pressed console key. The System.ConsoleKeyInfo object also describes, in a bitwise combination of System.ConsoleModifiers values, whether one or more Shift, Alt, or Ctrl modifier keys was pressed simultaneously with the console key. - - The System.Console.In property is redirected from some stream other than the console. - - - - Obtains the next character or function key pressed by the user. The pressed key is optionally displayed in the console window. - - Determines whether to display the pressed key in the console window. true to not display the pressed key; otherwise, false. - A System.ConsoleKeyInfo object that describes the System.ConsoleKey constant and Unicode character, if any, that correspond to the pressed console key. The System.ConsoleKeyInfo object also describes, in a bitwise combination of System.ConsoleModifiers values, whether one or more Shift, Alt, or Ctrl modifier keys was pressed simultaneously with the console key. - - The System.Console.In property is redirected from some stream other than the console. - - - - Reads the next line of characters from the standard input stream. - - The next line of characters from the input stream, or null if no more lines are available. - - An I/O error occurred. - There is insufficient memory to allocate a buffer for the returned string. - The number of characters in the next line of characters is greater than System.Int32.MaxValue. - - - - Gets or sets the background color of the console. - - - A System.ConsoleColor that specifies the background color of the console; that is, the color that appears behind each character. The default is black. - - The color specified in a set operation is not a valid Color. - The user does not have permission to perform this action. - An I/O error occurred. - - - - Gets or sets the height of the buffer area. - - - The current height, in rows, of the buffer area. - - The value in a set operation is less than or equal to zero.-or- The value in a set operation is greater than or equal to System.Int16.MaxValue.-or- The value in a set operation is less than System.Console.WindowTop + System.Console.WindowHeight. - The user does not have permission to perform this action. - An I/O error occurred. - - - - Gets or sets the width of the buffer area. - - - The current width, in columns, of the buffer area. - - The value in a set operation is less than or equal to zero.-or- The value in a set operation is greater than or equal to System.Int16.MaxValue.-or- The value in a set operation is less than System.Console.WindowLeft + System.Console.WindowWidth. - The user does not have permission to perform this action. - An I/O error occurred. - - - - Gets a value indicating whether the CAPS LOCK keyboard toggle is turned on or turned off. - - - true if CAPS LOCK is turned on; false if CAPS LOCK is turned off. - - - - - Gets or sets the column position of the cursor within the buffer area. - - - The current position, in columns, of the cursor. - - The value in a set operation is less than zero.-or- The value in a set operation is greater than or equal to System.Console.BufferWidth. - The user does not have permission to perform this action. - An I/O error occurred. - - - - Gets or sets the height of the cursor within a character cell. - - - The size of the cursor expressed as a percentage of the height of a character cell. The property value ranges from 1 to 100. - - The value specified in a set operation is less than 1 or greater than 100. - The user does not have permission to perform this action. - An I/O error occurred. - - - - Gets or sets the row position of the cursor within the buffer area. - - - The current position, in rows, of the cursor. - - The value in a set operation is less than zero.-or- The value in a set operation is greater than or equal to System.Console.BufferHeight. - The user does not have permission to perform this action. - An I/O error occurred. - - - - Gets or sets a value indicating whether the cursor is visible. - - - true if the cursor is visible; otherwise, false. - - The user does not have permission to perform this action. - An I/O error occurred. - - - - Gets the standard error output stream. - - - A System.IO.TextWriter that represents the standard error output stream. - - - - - Gets or sets the foreground color of the console. - - - A System.ConsoleColor that specifies the foreground color of the console; that is, the color of each character that is displayed. The default is gray. - - The color specified in a set operation is not a valid Color. - The user does not have permission to perform this action. - An I/O error occurred. - - - - Gets the standard input stream. - - - A System.IO.TextReader that represents the standard input stream. - - - - - Gets or sets the encoding the console uses to read input. - - - The encoding used to read console input. - - The property value in a set operation is null. - An error occurred during the execution of this operation. - Your application does not have permission to perform this operation. - - - - Gets a value that indicates whether the error output stream has been redirected from the standard error stream. - - - true if error output is redirected; otherwise, false. - - - - - Gets a value that indicates whether input has been redirected from the standard input stream. - - - true if input is redirected; otherwise, false. - - - - - Gets a value that indicates whether output has been redirected from the standard output stream. - - - true if output is redirected; otherwise, false. - - - - - Gets a value indicating whether a key press is available in the input stream. - - - true if a key press is available; otherwise, false. - - An I/O error occurred. - Standard input is redirected to a file instead of the keyboard. - - - - Gets the largest possible number of console window rows, based on the current font and screen resolution. - - - The height of the largest possible console window measured in rows. - - - - - Gets the largest possible number of console window columns, based on the current font and screen resolution. - - - The width of the largest possible console window measured in columns. - - - - - Gets a value indicating whether the NUM LOCK keyboard toggle is turned on or turned off. - - - true if NUM LOCK is turned on; false if NUM LOCK is turned off. - - - - - Gets the standard output stream. - - - A System.IO.TextWriter that represents the standard output stream. - - - - - Gets or sets the encoding the console uses to write output. - - - The encoding used to write console output. - - The property value in a set operation is null. - An error occurred during the execution of this operation. - Your application does not have permission to perform this operation. - - - - Gets or sets the title to display in the console title bar. - - - The string to be displayed in the title bar of the console. The maximum length of the title string is 24500 characters. - - In a get operation, the retrieved title is longer than 24500 characters. - In a set operation, the specified title is longer than 24500 characters. - In a set operation, the specified title is null. - An I/O error occurred. - - - - Gets or sets a value indicating whether the combination of the System.ConsoleModifiers.Control modifier key and System.ConsoleKey.C console key (Ctrl+C) is treated as ordinary input or as an interruption that is handled by the operating system. - - - true if Ctrl+C is treated as ordinary input; otherwise, false. - - Unable to get or set the input mode of the console input buffer. - - - - Gets or sets the height of the console window area. - - - The height of the console window measured in rows. - - The value of the System.Console.WindowWidth property or the value of the System.Console.WindowHeight property is less than or equal to 0.-or-The value of the System.Console.WindowHeight property plus the value of the System.Console.WindowTop property is greater than or equal to System.Int16.MaxValue.-or-The value of the System.Console.WindowWidth property or the value of the System.Console.WindowHeight property is greater than the largest possible window width or height for the current screen resolution and console font. - Error reading or writing information. - - - - Gets or sets the leftmost position of the console window area relative to the screen buffer. - - - The leftmost console window position measured in columns. - - In a set operation, the value to be assigned is less than zero.-or-As a result of the assignment, System.Console.WindowLeft plus System.Console.WindowWidth would exceed System.Console.BufferWidth. - Error reading or writing information. - - - - Gets or sets the top position of the console window area relative to the screen buffer. - - - The uppermost console window position measured in rows. - - In a set operation, the value to be assigned is less than zero.-or-As a result of the assignment, System.Console.WindowTop plus System.Console.WindowHeight would exceed System.Console.BufferHeight. - Error reading or writing information. - - - - Gets or sets the width of the console window. - - - The width of the console window measured in columns. - - The value of the System.Console.WindowWidth property or the value of the System.Console.WindowHeight property is less than or equal to 0.-or-The value of the System.Console.WindowHeight property plus the value of the System.Console.WindowTop property is greater than or equal to System.Int16.MaxValue.-or-The value of the System.Console.WindowWidth property or the value of the System.Console.WindowHeight property is greater than the largest possible window width or height for the current screen resolution and console font. - Error reading or writing information. - - - - Occurs when the System.ConsoleModifiers.Control modifier key (Ctrl) and either the System.ConsoleKey.C console key (C) or the Break key are pressed simultaneously (Ctrl+C or Ctrl+Break). - - - - - - - - You can create a console window In a Windows Forms project. Project + properties, turn off "Enable application framework" - And Set Startup Object To "Sub Main". - - Modify the Application.Run() statement To create the proper startup form, If necessary. - - - - - - - - - - If NOT, then the function returns the associated process id value. Else returns the process exit code. - - - - - - Represents the standard input, output, and error streams for console applications.(表示一个输入输出流控制台界面接口) - - - - - - Writes the specified string value, followed by the current line terminator, to the standard output stream. - (将指定的字符串值(后跟当前行终止符)写入输出流。) - - - - - - - Writes the text representation of the specified array of objects, followed by the current line terminator, to the standard output stream using the specified format information. - (将指定的字符串值(后跟当前行终止符)写入输出流。) - - - - - - - - Reads the next line of characters from the standard input stream.(从输入流读取下一行字符) - - The next line of characters from the input stream, or null if no more lines are available. - - - - - Reads the next character from the standard input stream.(从输入流读取下一个字符) - - The next character from the input stream, or negative one (-1) if there are currently no more characters to be read. - - - - - 对字符串进行格式控制输出的类对象所必须实现的格式输出接口 - - - - - - 将一个输入的字符串按照用户指定的格式进行格式化后返回 - - 指定的格式字符串 - 输入的值 - 经过格式化之后的字符串 - - - - - g格式符:它将根据数值的大小,自动选用f格式或e格式输出数据,并且它不输出无意义的0 - - - - - - %%格式,直接返回一个字符'%' - - - - - - e格式符:以指数形式输出实数 - - - 'e格式符:以指数形式输出实数 - '+----------+----------------------------------------------------------------------+ - ' %e 按规范化指数形式输出实数,系统自动给出6位小数,指数部分占5位 - ' %m.ne 与前面的叙述相同 - ' %-m.ne 与前面的叙述相同 - '+---------------------------------------------------------------------------------+ - - - - - %m.ne - - - - - - %-m.ne - - - - - - - - - - - - - - - %m.ne - - - - - - - - - - %-m.ne - - - - - - - - - - f格式符:按实数格式输出 - - - 'f格式符:按实数格式输出。 - '+----------+------------------------------------------------------------------------------------+ - ' %f 整数部分全部显示出来,小数部分显示6位.但并不是显示的所有数字都是有效数字 - ' %m.nf 指定数据的宽度共为m列,其中有n位小数.如果数值长度小于m,则左侧补空格。 - ' %-m.nf 与%m.f类似,只是应在右侧补空格 - '+-----------------------------------------------------------------------------------------------+ - - - - - %m.nf - - - - - - %-m.nf - - - - - - 默认的小数位长度为6位 - - - - - - - - - - - - - - - 控制小数的位数后输出 - - - - - - - - - %-m.nf - - - - - - - - - - %m.nf - - - - - - - - - - 解析整数部分 - - - - - - - - 解析小数部分 - - - - - - - - s格式符:用来输出一个字符串 - - - 's格式符:用来输出一个字符串 - '+----------+------------------------------------------------------------------------------------+ - ' %s 用来输出一个字符串,不含双引号. 例:printf("%s","CHINA"); - ' %ms m指定宽度(字符串长度小于m时左补空格,大于时按实际宽度输出) - ' %-ms 左对齐,不足m时右补空格 - ' %m.ns 输出占m列,只取字符串中左端n个字符.这n各字符输出在m列的右侧,左补空格. - ' %-m.ns 同上,右补空格 - '+-----------------------------------------------------------------------------------------------+ - - - - - %ms - - - - - - %-ms - - - - - - %m.ns - - - - - - %-m.ns - - - - - - - - - - - - - - - %-m.ns - - - - - - - - - - %m.ns - - - - - - - - - - %-ms - - - - - - - - - %ms - - - - - - - - - c格式符:用来输出一个字符。一个整数,其值在0~255之间时也可以以字符的格式输出 - - 一个整数,若其值在0~255范围内,也可以用字符形式输出,在输出前,将该整数转换为对应的ASCII字符。反之,一个字符数据也可以用整数形式输出 - - - - u格式符:以十进制数形式输出unsigned的整数 - - - - - - x格式符:按十六进制格式输出整数。(不会出现负数格式) - - - - - - o(字母)格式符:按八进制格式输出整数。(不会出现负数格式) - - - - - - b格式符:按照二进制格式输出整数 - - - - - - d格式符:按十进制格式输出 - - - 'd格式符:按十进制格式输出 - '+-------------+----------------------------------------------------------------------------------------------------------+ - ' %d 输出数字长度为变量数值的实际长度 - ' %md m指定输出数据的宽度。当数据本身的实际宽度小于m时,则数据左端补空格;若大于m,则按数据的实际位数输出。 - ' %ld, %mld l(小写字母L)表示输出“长整型”数据 - ' %0md, %0mld 0(数字0)表示位数不足m时补0 - '+------------------------------------------------------------------------------------------------------------------------+ - ' 注:%后面的m(位数控制)、0(位数不足补0)对于其他格式符也适用。 - - - - - %md - - - - - - %mld - - - - - - %0md - - - - - - %0mld - - - - - - - - - - - - - - - %md or %mld - - - - - - - - - %0md or %0mld - - - - - - - - - 获得含有指定数目的字符0的字符串 - - - - - - - - A standard input/output compatibility package that makes VisualBasic console - program easily running on the Linux server or mac osx operating system. - (一个用于让VisualBasic应用程序更加容易的运行于Linux服务器或者MAC系统之上的标准输入输出流的系统兼容包) - - - - - - - A dictionary list of the method of format a string provider class object. - (标准输入输出对象的格式化方法所提供的对象的字典) - - - - - - A dictionary list of the escape characters.(转义字符列表) - - - - - - 系统终端对象 - - - - - - Formatting a string using some formation arguments.(使用一些指定的格式化参数来格式化一个字符串) - - - - - - - - - Output the string to the console using a specific formation.(按照指定的格式将字符串输出到终端窗口之上,请注意,这个函数除了将数据流输出到标准终端之外,还会输出到调试终端) - - A string to print on the console window.(输出到终端窗口之上的字符串) - Formation parameters.(格式化参数) - - - - - - 不换行 - - - - - - - Read the string that user input on the console to the function paramenter. - (将用户在终端窗口之上输入的数据赋值给一个字符串变量) - - - - - - - - Taken from http://msdn.microsoft.com/en-us/magazine/dd419663.aspx - - - - - - - - - - - - - Application information collection. - - - - - Get the process id(PID) of the current program process. - - - - - The file path of the current running program executable file.(本应用程序的可执行文件的文件路径) - - - - - - The program directory of the current running program. - - - - - - The local data dir of the application in the %user/<CurrentUser>/Local/App - - - - - - The temp directory in the application local data. - - - - - - The directory path of the system temp data. - - - - - - - - - - - 必须满足接口类型: Function(path As String) As T - - - - - - 当目标数据集非常的大的时候,在单个应用程序里面进行加载已经回非常缓慢了, - 则这个时候可以使用这个函数将数据的加载任务分配到多个子进程之中以提高加载的时候的CPU的利用效率 - - - - - 函数会自动从泛型类型之中解析出加载的函数 - - - - 通过与并行进程进行内存共享来传输加载完毕的数据 - - - - - - - - - 动态编译的加载进程的调用API来向主进程返回消息 - - - - - - - 递归的获取该类型所处的模块的所有的依赖关系 - - - - - - - 有一些会出现循环引用的情况????? - - - - - - - - - - - 是否移除系统引用 - - - - - 放在C:\WINDOWS\Microsoft.Net\这个文件夹下面的所有的引用都是本地编译的,哈希值已经不对了 - - - - - - - - - - +特殊符号存在于这个字符串之中的话,函数会出错 - - - - - - 动态编译 - - - - - - - 由于在分组之后的后续的操作的过程之中元素会发生改变, - 所以在这个属性之中存储了在初始化列表的时候的原始的列表之中的元素的个数以满足一些其他的算法操作 - - - - - - 貌似使用LINQ进行Group操作的时候是没有并行化的,灰非常慢,则可以使用这个拓展函数来获取较好的性能 - - - - - - - - - 更加底层的线程模式,和LINQ相比不会受到CPU核心数目的限制 - - 后台任务的执行参数 - 后台任务的执行结果 - - - - 假若任务已经完成,则会返回计算值,假若没有完成,则只会返回空值,假若想要在任何情况之下都会得到后台任务所执行的计算结果,请使用方法 - - - - - - 假若后台任务还没有完成,则函数会一直阻塞在这里直到任务执行完毕,假若任务早已完成,则函数会立即返回数据 - - - - - - 用于高效率执行批量查询操作和用于检测操作超时的工具对象,请注意,为了提高查询的工作效率,请尽量避免在查询操作之中生成新的临时对象 - 并行版本的LINQ查询和原始的线程操作相比具有一些性能上面的局限性 - - 在使用Parallel LINQ的时候,请务必要注意不能够使用Let语句操作共享变量,因为排除死锁的开销比较大 - - - - 查询操作超时的时间阈值,单位为秒 - - - - - - 查询操作的线程数目 - - - - - - - - 查询操作超时的时间阈值,单位为秒 - 这个参数通常是指CPU的核心数目,或者查询任务执行的最大线程数目 - - - - - Get the number of processors on the current machine.(获取当前的系统主机的CPU核心数) - - - - - - - - The possible recommended threads of the linq based on you machine processors number, i'm not sure... - - - - - - - - 当查询操作超时的时候,单条查询线程会返回默认值 - - 返回的值类型 - - - - - - - - 采取非并行化的方式启动计算线程 - - - - - - - - - - 采取非并行化的方式启动计算线程 - - - - - - - - - - 当需要进行超大规模的查询的时候,请使用本方法,本方法的的思想是将查询操作分解为多于CPU核心数目的线程池进行批量计算 - - - - - - - - - - - - - 当查询超时的时候,使用本方法获得一个默认值 - - - - - - 非并行版本 - - - - - - - - - - - .NET 4.6之中的并行LINQ失效了?????? - - - - - - - - - - DEBUG - - - - - - - 转换从终端或者脚本文件之中输入的字符串的类型的转换 - - - - - Object为字符串类型,这个字典可以讲字符串转为目标类型 - - - - - - Converts a string expression which was input from the console or script file to the specified type. - (请注意,函数只是转换最基本的数据类型,转换错误会返回空值) - - The string expression to convert. - The type to which to convert the object. - An object whose type at run time is the requested target type. - - - - 目标类型能否由字符串转换过来?? - - - - - - - 小写的 - - - - - 类型获取失败会返回空值,大小写不敏感 - - - 是否出错的时候返回Object类型,默认返回Nothing - - - - - 主要为了方便减少脚本编程模块的代码 - - - - - - - - , 出现错误的时候总是会返回空字符串的 - - - - - - - - - - 数组里面的元素的类型 - - - - - You Cann assign the parameter value using the parameter's alias name in the scripting using this attribute. - (你可以使用本属性将函数的参数名进行重命名,这样子你就可以使用本属性得到一个书写更加漂亮的编程脚本文件了) - - - - - - 请使用这个方法来获取参数信息 - - - - - - - - The alias name of this function parameter in the scripting.(脚本函数的参数的别名) - - - - - - - - The description information in the scripting help system.(在帮助信息里面进行显示的本参数的简要的描述信息) - - - - - - - - You can using this attribute to customize your API interface. - - The alias name of this function parameter in the scripting.(当前脚本函数的这个参数的别名) - The description information in the scripting help system.(这个信息会显示在脚本环境的帮助系统之中) - - - - - 当没有定义属性的时候,会返回参数名 - - - - - - - 用于解决函数重载的函数数字签名的属性 - - - - - - - - Brief name for the target signature type - Target signature type for function overloads. - - - - - 汉字拼音转换类 - - - - - 二级汉字数组 - - - - - 二级汉字对应拼音数组 - - - - - 取拼音第一个字段 - - - - - - - 取拼音第一个字段 - - - - - - - 获取单字拼音 - - - - - - - 把汉字转换成拼音(全拼) - - 汉字字符串 - 转换后的拼音(全拼)字符串 - - - - 分析服务器的问题原因所需要的日志分析工具 - - - - - 生成日志文档之中的一行记录数据 - - - - - - The types enumeration of the log file message. - - - - - - The normal information message.[WHITE] - - - - - - The program error information message.[RED] - - - - - - Warnning message from the program.[YELLOW] - - - - - - The program debug information message.[BLUE] - - - - - - - - The language of the target object. - - - - - - Enum the mainly used language. - - - - - - Following the system default language. - - - - - - Language in Chinese simplify. - (简体中文) - - - - - - Language in English. - (英语语言) - - - - - - Language in french. - (法语语言) - - - - - - Get the string that store as specific language. - (获取指定语言的字符串) - - 字符串的语言 - - - - - - - Get the specific type of custom attribute from a property. - (从一个属性对象中获取特定的自定义属性对象) - - The type of the custom attribute.(自定义属性的类型) - Target property object.(目标属性对象) - - - - - - Get the specific type of custom attribute from a property. - (从一个属性对象中获取特定的自定义属性对象) - - The type of the custom attribute.(自定义属性的类型) - Target property object.(目标属性对象) - - - - - - Get the specific type of custom attribute from a property. - (从一个属性对象中获取特定的自定义属性对象) - - The type of the custom attribute.(自定义属性的类型) - Target property object.(目标属性对象) - - - - - - 日志文件记录模块. - - - - - - Save the log file into the filesystem. - - - - - - Indicated that write the Error type message to the console screen, this - property will override the WriteToScreen parameter in function when the - message type is Error type. - - - - - - - - Indicated that write the Warn type message to the console screen, this - property will override the WriteToScreen parameter in function when the - message type is Warn type. - - - - - - - - 是否采用彩色的输出,默认为关闭: - 一般的消息 - 白色; - 警告级别的消息 - 黄色; - 错误级别的消息 - 红色 - - - - - - - - 没有路径名称和拓展名,仅包含有单独的文件名 - - - - - - - - 将时间字符串里面的":"符号去除之后,剩余的字符串可以用于作为路径来使用 - - - - - - - - 向日志文件之中写入数据 - - - - - - - - - 当这个设置为真之后,终端就不会再有任何的输出了 - - - - - - - - - - This logfile will saved to. - - 当日志的记录数目达到这个数目的时候就会将日志数据写入到文件之中 - - - - 在进行保存的时候会清空内存之中的现有日志数据 - - Append this log data into the target log file if the file is exists on the filesystem, default option is override the exists file. - - - - - - - - {[Object] As String, Optional Type As MsgType = MsgType.INF, Optional WriteToScreen As Boolean = True} - - - - - 日志文件在保存的时候默认是追加的方式 - - - - - - - - - 给出用于调试的系统的信息摘要 - - - - - - - - 资源文件的数据缓存文件夹 - - - - - - 使用 NameOf 操作符来获取资源 - - - - - The path list of the attachments file. - - - - - - The file path of the logo image. - - - - - - 应用程序的完整性验证和用户身份的验证 - - - - - 计算出来的哈希值只能为负数,现在约定,当这个属性为0的时候就认为这个证书是公共密匙, - 这个一般是使用用户的账号所计算出来的哈希值 - - - - - - 与属性所不同的是,这个属性是的哈希值, - 通常这个哈希值在请求resultful WebAPI的时候用来作为用户的唯一标识 - - - - - - 请注意这个构造方法会计算一遍密码的哈希值,假若需要直接进行初始化,请使用方法 - - - - - - - - - - 客户端所发送过来的使用哈希值计算出来的唯一标识符 - - - - 从服务器上面所返回来的握手数据 - - - - - - 这个构造函数不再计算哈希值而是直接初始化 - - 必须是md5哈希值 - - - - 不计算哈希值而是直接安装 - - - - - - - - 函数会根据uid的值来设定协议为私有密匙还是公共密匙 - - - - - - - 强制将协议设定为公共密匙加密 - - - - - - - 检查应用程序的完整性 - - - - - - - - 可执行程序的文件路径 - - - - - 这个模块只处理类型的接口 - - - - - - - Protocol的实例 - - - - 方法 - - - - - - 客户端上面的类型 - - - - - - 客户端与服务器之间初始化加密连接 - - 客户端的证书,这个是服务器来进行客户端程序的完整性验证的 - - - - - 抽象SSL服务器 - - - - - 公共密匙 - - - - - - 客户端的私有密匙 - - - - - - 处理私有密匙的数据请求 - - - - - - 这个数字证书是当前版本下的服务器的客户端的数字签名,服务器会使用这个证书来验证客户端的文件是否被恶意破解 - - - - - - - - 服务器在部署的时候向对应版本您的客户端的数字签名 - - - - : - Public Delegate Function (str As , - RemoteAddress As ) As - - - - - - : - Public Delegate Function (request As , - RemoteAddress As ) As - - - - - - 客户端向服务器所发送的数据请求 - - - - - 协议的头部 - - - - - - 协议数据的长度 - - - - - - 协议的具体数据请求 - - - - - - 使用用户的账号信息唯一标识出来的对象,在服务器端用来查找用户证书的 - - - - - - 部分的数据是否完整? - - - - - - Deserialize (当还有剩余数据的时候会将数据进行剪裁) - - - - - - 私有密匙加密 - - - - - 公共密匙加密 - - - - - 无效的数字证书 - - - - - 这个请求数据是一个SSL加密数据(使用用户的私有密匙) - - - - - - 使用公共密匙 - - - - - - 这个数据仅仅是一个文本,没有包含有任何协议头数据 - - - - - - 这个请求数据是否为握手协议 - - - - - - 系统自带的不能够进行Xml序列化 - - - - - - XML序列化所需要的 - - - - - - - - IPAddress:Port - - - - - http://www.codeproject.com/Tips/358946/Retrieving-IP-and-MAC-addresses-for-a-LAN - - - ' Get my PC IP address - Call Console.WriteLine("My IP : {0}", GetIPAddress()) - - ' Get My PC MAC address - Call Console.WriteLine("My MAC: {0}", GetMacAddress()) - - ' Get all devices on network - Dim all As Dictionary(Of IPAddress, PhysicalAddress) = GetAllDevicesOnLAN() - For Each kvp As KeyValuePair(Of IPAddress, PhysicalAddress) In all - Console.WriteLine("IP : {0}" & vbLf & " MAC {1}", kvp.Key, kvp.Value) - Next - - - - - MIB_IPNETROW structure returned by GetIpNetTable - DO NOT MODIFY THIS STRUCTURE. - - - - - GetIpNetTable external method - - - - - - - - - Error codes GetIpNetTable returns that we recognise - - - - - Get the IP and MAC addresses of all known devices on the LAN - - - 1) This table is not updated often - it can take some human-scale time - to notice that a device has dropped off the network, or a new device - has connected. - 2) This discards non-local devices if they are found - these are multicast - and can be discarded by IP address range. - - - - - - Gets the IP address of the current PC - - - - - - Gets the MAC address of the current PC. - - - - - - Returns true if the specified IP address is a multicast address - - - - - - - http://sub.domain.com/somefolder/index.html -> domain.com - somedomain.info -> somedomain.info - http://anotherdomain.org/home -> anotherdomain.org - www.subdomain.anothersubdomain.maindomain.com/something/ -> maindomain.com - - - - - 顶级域名 - - - - - - 解析错误会返回空字符串 - - - - - - - 服务器也相当于一个USER,只不过服务器的UID为0,即最高级的用户 - - - - - - - - - - 使用这个函数来获取外部发送过来的用户消息 - - - - - 请注意,线程会在这里阻塞 - - 远程主机强制关闭连接之后触发这个动作 - - - - True标识发送成功,False标识用户离线 - - - 在发送之前请对消息进行加密处理 - - - - - 客户端对这个服务器的端口号是自动配置的,只需要向客户端返回端口就可以了 - - - - - 从这个端口号进行登录 - - - - - - 只要是为ssl服务设置的 - - - - - - - 哈希值不存在于现有的登录用户列表之中就是空闲连接 - - - - - 建立一个新的连接 - - - - - - 长连接之中只是进行消息的发送处理 - - - - - DO_NOTHING - - - - - - Server reply the processing result of the request from the client. - - - - - - - - 请注意,这个对象是应用于客户端与服务器保持长连接所使用,并不会主动发送消息给服务器,而是被动的接受服务器的数据请求 - - - - - - The port number for the remote device. - - - - - - Remote End Point - - - - - - - - Copy the TCP client connection profile data from this object.(从本客户端对象之中复制出连接配置参数以进行初始化操作) - - - - - - - - - Public Delegate Sub ExceptionHandler(ex As Exception) - - - - - 初始化一个在本机进行进程间通信的Socket对象 - - - - - - - - - 函数会想服务器上面的socket对象一样在这里发生阻塞 - - - - - - 本客户端socket在服务器上面的哈希句柄值 - - - - - - 远程主机强制关闭连接之后触发这个动作 - - - - - - Read data from the remote device. - - - - - - - - ???? - An exception of type 'System.Net.Sockets.SocketException' occurred in System.dll but was not handled in user code - Additional information: A request to send or receive data was disallowed because the socket is not connected and - (when sending on a datagram socket using a sendto call) no address was supplied - - - - - - - - - - - 一、TCP长连接 - - 正常情况下,一条TCP连接建立后,只要双不提出关闭请求并且不出现异常情况,这条连接是一直存在的, - 操作系统不会自动去关闭它,甚至经过物理网络拓扑的改变之后仍然可以使用。 - 所以一条连接保持几天、几个月、几年或者更长时间都有可能,只要不出现异常情况或由用户(应用层)主动关闭。 - 在编程中, 往往需要建立一条TCP连接, 并且长时间处于连接状态。 - 所谓的TCP长连接并没有确切的时间限制, 而是说这条连接需要的时间比较长。 - - 二、TCP连接的正常中断 - - TCP连接在事务处理完毕之后, 由一方提出关闭连接请求, 双方通过四次握手(建立连接是三次握手, - 当然可以通过优化TCP / IP协议栈来减少握手的次数来提高性能, 但这样会形成不规范或者不优雅的通信)来正常关闭连接 - - 三、TCP连接的异常中断 - - 导致TCP连接异常中断的因素有: 物理连接被中断、操作系统down机、程序崩溃等等。 - - - - - Socket对象监听的端口号 - - - - - - The server services listening on this local port.(当前的这个服务器对象实例所监听的本地端口号) - - - - - - - - 消息处理的方法接口: Public Delegate Function DataResponseHandler(str As String, RemotePort As Integer) As String - - 监听的本地端口号,假若需要进行端口映射的话,则可以在方法之中设置映射的端口号 - - - - - 函数返回Socket的注销方法 - - - - - - - - - This server waits for a connection and then uses asychronous operations to - accept the connection, get data from the connected client, - echo that data back to the connected client. - It then disconnects from the client and waits for another client.(请注意,当服务器的代码运行到这里之后,代码将被阻塞在这里) - - - - - - This server waits for a connection and then uses asychronous operations to - accept the connection, get data from the connected client, - echo that data back to the connected client. - It then disconnects from the client and waits for another client.(请注意,当服务器的代码运行到这里之后,代码将被阻塞在这里) - - - - - - Bind the socket to the local endpoint and listen for incoming connections. - - - - - - 退出监听线程所需要的 - - - - - - Stop the server socket listening threads.(终止服务器Socket监听线程) - - - - - - http://www.codeproject.com/Articles/18635/Ping-exe-replica-in-C - - Ping.exe replica in C# 2.0 - - Stefan Prodan, 3 May 2007 CPOL - Usage example of the System.Net.NetworkInformation.Ping. - - - - - - 返回与目标远程机器之间的平均通信时间长度 - - - - - - - - Socket listening object which is running at the server side asynchronous able multiple threading. - (运行于服务器端上面的Socket监听对象,多线程模型) - - - - - - Socket对象监听的端口号 - - - - - - The server services listening on this local port.(当前的这个服务器对象实例所监听的本地端口号) - - - - - - - - This function pointer using for the data request handling of the data request from the client socket. - (这个函数指针用于处理来自于客户端的请求) - - - - - - 消息处理的方法接口: Public Delegate Function DataResponseHandler(str As String, RemotePort As Integer) As String - - 监听的本地端口号,假若需要进行端口映射的话,则可以在方法之中设置映射的端口号 - - - - - 函数返回Socket的注销方法 - - Public Delegate Function DataResponseHandler(str As String, RemotePort As Integer) As String - - - - - - - - This server waits for a connection and then uses asychronous operations to - accept the connection, get data from the connected client, - echo that data back to the connected client. - It then disconnects from the client and waits for another client.(请注意,当服务器的代码运行到这里之后,代码将被阻塞在这里) - - - - - - This server waits for a connection and then uses asychronous operations to - accept the connection, get data from the connected client, - echo that data back to the connected client. - It then disconnects from the client and waits for another client.(请注意,当服务器的代码运行到这里之后,代码将被阻塞在这里) - - - - - - All the data has been read from the client. Display it on the console. - Echo the data back to the client. - - - - - - - Server reply the processing result of the request from the client. - - - - - - - - Server encounter an internal exception during processing the data request from the remote device. - (服务器在处理外部远程设备的数据请求的时候发生内部错误) - - - - - - SERVER_INTERNAL_EXCEPTION,Server encounter an internal exception during processing - the data request from the remote device. - (判断是否服务器在处理客户端的请求的时候,发生了内部错误) - - - - - - - - 退出监听线程所需要的 - - - - - - Stop the server socket listening threads.(终止服务器Socket监听线程) - - - - - - -1标识Ping不通 - - ms - - - - - 消息处理的方法 - - 远程设备所发送过来的消息 - 远程设备的网络连接参数 - - - - - - 处理错误的工作逻辑的抽象接口 - - Socket的内部错误信息 - - - - - State object for reading client data asynchronously - - - - - - Client socket. - - - - - - Size of receive buffer. - - - - - - Receive buffer. - - - - - - Received data. - - - - - - 假若不能成功的建立起连接的话,则会抛出错误 - - - - - - - - - Get the first available TCP port on this local machine.(获取第一个可用的端口号) - - Check the local port available from this port value.(从这个端口开始检测) - - - - - 获取操作系统已用的端口号 - - - - - - 检查指定端口是否已用 - - - - - - - Socket listening object which is running at the server side asynchronous able multiple threading. - (运行于服务器端上面的Socket监听对象,多线程模型) - - - - - - The server services listening on this local port.(当前的这个服务器对象实例所监听的本地端口号) - - - - - - - - This server waits for a connection and then uses asychronous operations to - accept the connection, get data from the connected client, - echo that data back to the connected client. - It then disconnects from the client and waits for another client.(请注意,当服务器的代码运行到这里之后,代码将被阻塞在这里) - - - - - - This server waits for a connection and then uses asychronous operations to - accept the connection, get data from the connected client, - echo that data back to the connected client. - It then disconnects from the client and waits for another client.(请注意,当服务器的代码运行到这里之后,代码将被阻塞在这里) - - - - - - This function pointer using for the data request handling of the data request from the client socket. - (这个函数指针用于处理来自于客户端的请求) - - - - - - The server socket should returns some data string to this client or this client will stuck at the function. - (服务器端必须要返回数据,否则本客户端会在函数位置一直处于等待的状态) - - - - - - The port number for the remote device. - - - - - - The response from the remote device. - - - - - - ' ManualResetEvent instances signal completion. - - - - - - Remote End Point - - - - - - Gets the IP address of this local machine. - (获取本机对象的IP地址,请注意这个属性获取得到的仅仅是本机在局域网内的ip地址,假若需要获取得到公网IP地址,还需要外部服务器的帮助才行) - - - - - - - - - - Copy the TCP client connection profile data from this object.(从本客户端对象之中复制出连接配置参数以进行初始化操作) - - - - - - - - - Public Delegate Sub ExceptionHandler(ex As Exception) - - - - - 初始化一个在本机进行进程间通信的Socket对象 - - - - - - - - - 判断服务器所返回来的数据是否为操作超时 - - - - - - - - Returns the server reply.(假若操作超时的话,则会返回) - - - 操作超时的时间长度,默认为30秒 - - - - - - This function returns the server reply for this request . - - The client request to the server. - - - - - - 最底层的消息发送函数 - - - - - - - ???? - An exception of type 'System.Net.Sockets.SocketException' occurred in System.dll but was not handled in user code - Additional information: A request to send or receive data was disallowed because the socket is not connected and - (when sending on a datagram socket using a sendto call) no address was supplied - - - - - - - - A client of gmail.com - - - - - - - - 标题 - 内容 - 收件人地址 - - - - - Gmail - - - - - - - - - 存储至文件之前请先加密 - - - - - - Creating Zip Files Easily in .NET 4.5 - Tim Corey, 11 May 2012 - http://www.codeproject.com/Articles/381661/Creating-Zip-Files-Easily-in-NET - - - - - - Used to specify what our overwrite policy - is for files we are extracting. - - - - - Used to identify what we will do if we are - trying to create a zip file and it already - exists. - - - - - Unzips the specified file to the given folder in a safe - manner. This plans for missing paths and existing files - and handles them gracefully. - - - The name of the zip file to be extracted - - - The directory to extract the zip file to - - - Specifies how we are going to handle an existing file. - The default is IfNewer. - - - - - Safely extracts a single file from a zip file - - - The zip entry we are pulling the file from - - - The root of where the file is going - - - Specifies how we are going to handle an existing file. - The default is Overwrite.IfNewer. - - - - - Allows you to add files to an archive, whether the archive - already exists or not - - - The name of the archive to you want to add your files to - - - A set of file names that are to be added - - - Specifies how we are going to handle an existing archive - - - Specifies what type of compression to use - defaults to Optimal - - - - - Summary description for StringMatcher. - - - - - - Summary description for Tokeniser. - Partition string off into subwords - - - - - Summary description for Leven. - - - - - Summary description for IEditDistance. - - - - - Summary description for StringMatcher. - - - - - - (dd hh:mm:ss) 输出可以被MySQL数据库所识别的字符串格式 - - - - - - - Download by http://www.codefans.net - - - - - - Chang the bitmap to gray bitmap in hdc. - - - - - - - - - - - - Provides detailed information about the host operating system. - - - - - Determines if the current application is 32 or 64-bit. - - - - - Determines if the current processor is 32 or 64-bit. - - - - - Gets the edition of the operating system running on this computer. - - - - - Linux/MAC - - - - - Windows 3.1 - - - - - Windows CE - - - - - Windows 95 OSR2 - - - - - Windows 95 - - - - - Windows 98 Second Edition - - - - - Windows 98 - - - - - Windows Me - - - - - Windows NT 3.51 - - - - - Windows NT 4.0 - - - - - Windows NT 4.0 Server - - - - - Windows 2000 - - - - - Windows XP - - - - - Windows Server 2003 - - - - - Windows Vista - - - - - Windows Server 2008 - - - - - Windows 7 - - - - - Windows Server 2008 R2 - - - - - Windows 8 - - - - - Windows Server 2012 - - - - - Gets the name of the operating system running on this computer. - - - - - Gets the service pack information of the operating system running on this computer. - - - - - Gets the build version number of the operating system running on this computer. - - - - - Gets the full version string of the operating system running on this computer. - - - - - Gets the full version of the operating system running on this computer. - - - - - Gets the major version number of the operating system running on this computer. - - - - - Gets the minor version number of the operating system running on this computer. - - - - - Gets the revision version number of the operating system running on this computer. - - - - - 不做任何位置的设置操作 - - - - - - 默认位置是控件的中间 - - - - - - - - - Ngen.exe (Native Image Generator) - - The Native Image Generator (Ngen.exe) is a tool that improves the performance of managed applications. - Ngen.exe creates native images, which are files containing compiled processor-specific machine code, - and installs them into the native image cache on the local computer. The runtime can use native images - from the cache instead of using the just-in-time (JIT) compiler to compile the original assembly. - - Changes To Ngen.exe In the .NET Framework 4 - Ngen.exe now compiles assemblies With full trust, And code access security (CAS) policy Is no longer evaluated. - Native images that are generated With Ngen.exe can no longer be loaded into applications that are running In Partial trust. - - Changes To Ngen.exe In the .NET Framework version 2.0: - Installing an assembly also installs its dependencies, simplifying the syntax Of Ngen.exe. - Native images can now be Shared across application domains. - A New Action, update, re - creates images that have been invalidated. - Actions can be deferred For execution by a service that uses idle time On the computer To generate And install images. - Some causes Of image invalidation have been eliminated. - - - 1.7 Native代码产生器: NGen.exe - - 随.NET Framework发布的NGen.exe工具可以将IL代码编译成native代码, 当应用程序安装在用户的机器上时. 因为代码是在安装的时候编译的, CLR的JIT编译器不需要在运行时刻编译IL代码 - 这能提高应用程序的性能. NGen.exe工具在下面两个场合很有趣: - - 提高了应用程序的启动速度 运行NGen.exe能提高启动速度, 因为代码已经编译成native代码, 所以在运行时就不需要编译了 - 减少应用程序的工作集 如果你认为一个程序集会被同时载入到多个进程/ Appdomain, 在这个程序集上运行NGen.exe能减少应用程序的工作集, 其原因是NGen.exe工具将IL编译成native代码, - 然后将输出保存到单独的文件中, 这个文件能同时被内存映射(memory - mapping)到多个进程地址空间中, 允许代码共享, 每个进程 / AppDomain不必为自己拷贝一份代码 - - 当一个安装程序调用NGen.exe对一个应用程序或程序集进行编译时, 那个应用程序的所有程序集或者一个特定的程序集会把其IL代码编译成native代码, 一个新的只包含native代码而不含有IL的程序集文件会被NGen.exe创建. - 这个新的文件被放到名字类似于 C: /Windows/Assembly/NativeImages_v2.0.50727_32的文件夹下面, 这个文件家名字包含了CLR的版本和native代码是否是为x86(32位版本的Windows), x64, - 或者Itaninum(64位版本的Windows)编译的信息. - - 现在, 当CLR载入一个程序集文件时, CLR查看对应的NGen native文件是否存在, 如果没发现native文件, CLR JIT对IL代码像通常那样进行编译. - 然而, 如果对应的native文件存在, CLR将使用native文件中的编译好的代码, 文件中的函数就不需要在运行时刻编译了. - - 在表面上, 这听起来非常好, 听上去就像如果你得到了托管代码的全部优点(垃圾回收, 代码验证, 类型安全, 等等)而不牺牲托管代码的性能(JIT编译), - 但是实际情况并不总是那么美好, NGen'd文件有几个潜在的问题: - - 没有知识产权保护 很多人以为可以发布NGen文件而不用发布包含原始IL代码的文件, 从而使他们的知识产权更加保密 - 不幸的是, 这并不可行, 在运行时刻, CLR需要访问程序集的metadata(为某些函数, 例如反射和串行化函数), 这需要发布包含IL和metadata的程序集. - 此外, 如果由于某种原因, CLR不能使用NGen文件(如下面所描述的), 那么CLR会回到JIT编译, 对程序集的IL代码进行编译, 因此IL代码必须存在. - - NGen文件可能会过时 当CLR载入NGen文件时, 它会比较以前编译的代码和当前的执行环境的很多特征, 如果任何特征不匹配, NGen文件就不能被使用, JIT编译器进程就要使用. 这是必须被匹配的部分特征列表. - - 程序集模块的版本ID(MVID) - 被引用的程序集的版本ID - 处理器类型 - CLR版本 - Build类型(release, debug, optimized debug, profiling, 等等) - - 所有链接时的安全性要求都必须在运行时刻被满足才能允许载入. - - 注意有可能以升级的方式运行NGen.exe, 这告诉工具对以前曾经被执行NGen'd的所有的程序集上运行NGen.exe. 当终端用户安装.NET Framework的一个新service pack, - 那么service pack的安装程序将会在更新模式下自动运行NGen.exe, 使得NGen文件保持和CLR的版本一致. - - 较差的载入时性能(重定位/绑定): 程序集文件是标准的Windows PE文件, 每个文件包含着一个优先使用的基地址. 很多Windows开发者对围绕基地址和重定位的问题很熟悉, - 关于这个主题的更多信息, 可以参考我的书 programming Applications for Microsoft Windows, 4th Edition. 当JIT编译代码时, 不必关心这些问题, 因为正确的内存地址引用会在运行时计算出来. - - 然而, NGen的程序集文件的一些内存地址引用是静态计算的, 当Windows加载一个NGen文件时, 它检查文件是否被载入到优先的基地址上, 如果文件没有载入到优先的基地址, - Windows会重新定位文件, 修改所有内存地址引用. 这是极其耗时的, 因为Windows必须载入整个文件, 并修改文件中的很多字节. 此外, 这个页面文件对应的代码不能跨进程边界共享. - - 因此如果你打算NGen程序集文件, 你应该为你的程序集文件选择好的基地址(通过csc.exe的 / baseaddress命令行开关).当你NGen一个程序集文件时, NGen文件将被赋予一个基地址, - 这需要使用一个基于托管程序集基地址的算法. 不幸的是, 微软从没有一个良好的指导来帮助开发者如何赋予基地址. 在64位版本的Windows上, 这还不太会成为问题, 因为地址空间是很充足的, - 但是对于一个32位的地址空间, 为每一个程序集选择一个好的基地址几乎是不可能的, 除非你精确地知道什么东西会被载入到进程, 知道那个程序集的大小不会超过后一个版本. - - 较差的执行时性能 当编译代码时, NGen对执行环境做出的假设不会比JIT编译器的多, 这会造成NGen.exe产生较差的代码, 例如, NGen不能优化一些CPU指令, 对静态字段的访问需要简介的操作, - 因为静态字段实际的地址需要在运行时刻才能知道.NGen到处插入代码来调用类的构造函数, 因为它不知道代码执行的次序, 不知道类的构造憾事是否已经被调用了(见第8章, 类的构造函数). - 一些NGen应用程序会比JIT编译的代码慢大约5%, 因此, 如果你打算使用NGen来提高应用程序的性能, 你应该对比NGen’d和非NGen’d版本的应用程序, 确定NGen’d版本在实际执行时并不慢. - 对于一些应用程序, 减小的工作集大小会提高性能, 因此NGen总体上还是会取胜. - - 因为上面列出的所有问题, 当考虑使用NGen.exe时, 你应该非常小心.对于服务器端的应用程序来说, NGen.exe的用处很小甚至没有意义, 因为只有第一个客户需求经历了性能上的下降, - 后面的客户需求都是高速运行的.此外, 对于大多数服务器应用程序, 只需要代码的一个实例, 因此没有工作集方面的利益. - - 对于客户端应用程序, NGen.exe可能对于提高启动速度或者减小工作集有帮助, 如果程序集被多个应用程序同时使用.甚至没有多个应用程序使用一个程序集, NGen一个程序集也会提高工作集. - 此外, 如果NGen.exe被用于所有的客户端应用程序的程序集, 那么CLR就根本不需要载入JIT编译器, 从而更进一步地降低了工作集. - 当然, 如果只有一个程序集不是NGen'd或者如果一个程序集的NGen文件不能被使用, JIT编译器就会被载入, 应用程序的工作集将会增加. - - - - - Generate native images that can be used under a debugger. - - - - - Generate native images that can be used under a profiler. - - - - - Generate the minimum number Of native images required by the specified scenario options. - - - - - 1 Native images are generated And installed immediately, without waiting For idle time. - - - - - 2 Native images are generated And installed without waiting For idle time, but after all priority 1 actions (And their dependencies) have completed. - - - - - 3 Native images are installed When the native image service detects that the computer Is idle. See Native Image Service. - - - - - Generate native images for an assembly and its dependencies and install the images in the native image cache. - - - The full display name of the assembly. For example, "myAssembly, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0038abc9deabfle5". - Only one assembly can be specified per Ngen.exe command line. - - * Note You can supply a Partial assembly name, such As myAssembly, For the display And uninstall actions. - - The explicit path of the assembly. You can specify a full or relative path. - If you specify a file name without a path, the assembly must be located In the current directory. - Only one assembly can be specified per Ngen.exe command line. - - - exePath, Use the configuration of the specified executable assembly. - Ngen.exe needs to make the same decisions as the loader when binding to dependencies. When a shared component Is loaded at run time, - using the Load method, the application's configuration file determines the dependencies that are loaded for the shared component — - for example, the version of a dependency that is loaded. The /ExeConfig switch gives Ngen.exe guidance on which dependencies would be loaded at run time. - directoryPath, When locating dependencies, use the specified directory as the application base. - If /queue is specified, the action is queued for the native image service. The default priority is 3. See the Priority Levels table. - - - - Delete the native images of an assembly and its dependencies from the native image cache. - To uninstall a single image And its dependencies, use the same command-line arguments that were used to install the image. - - Note In the .NET Framework 4, the action uninstall * Is no longer supported. - - - The full display name of the assembly. For example, "myAssembly, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0038abc9deabfle5". - Only one assembly can be specified per Ngen.exe command line. - - * Note You can supply a Partial assembly name, such As myAssembly, For the display And uninstall actions. - - The explicit path of the assembly. You can specify a full or relative path. - If you specify a file name without a path, the assembly must be located In the current directory. - Only one assembly can be specified per Ngen.exe command line. - - - exePath, Use the configuration of the specified executable assembly. - Ngen.exe needs to make the same decisions as the loader when binding to dependencies. When a shared component Is loaded at run time, - using the Load method, the application's configuration file determines the dependencies that are loaded for the shared component — - for example, the version of a dependency that is loaded. The /ExeConfig switch gives Ngen.exe guidance on which dependencies would be loaded at run time. - directoryPath, When locating dependencies, use the specified directory as the application base. - - - - Update native images that have become invalid. - If /queue Is specified, the updates are queued For the native image service. Updates are always scheduled at priority 3, so they run When the computer Is idle. - - - - - - Display the state of the native images for an assembly and its dependencies. - If no argument Is supplied, everything In the native image cache Is displayed. - - - - - - Execute queued compilation jobs. - If a priority Is specified, compilation jobs With greater Or equal priority are executed. - If no priority Is specified, all queued compilation jobs are executed. - - - - - - Pause the native image service, allow the paused service to continue, or query the status of the service. - - - - - Pause the native image service - - - - - allow the paused service to continue - - - - - query the status of the service. - - - - - 将当前目录下的所有的.NET程序都进行安装 - - - - - Derives a SHA256 key from a password using an extension of the PBKDF1 algorithm. - - - - - - - - - 8 Bytes - - - - 字符串的解密方法 - - - - - - - - Encrypt the plain text string. - - - - - - - The previous key of the sha256 encryption will be expired after the rebuild of this module, - so that this method is not working on the statics data storage job. - (在本模块进行重新编译之后,原有的密匙将会失效,故这个属性不适合于静态存储加密使用) - - - - - - - - 双重动态数据签名 - - - - - - - - 双重动态数据签名 - - - - - - - 并行化的需求 - - - - - - Verify a hash against a string. - - - - - - - - - 校验两个文件的哈希值是否一致 - - - - - - - - - Get the md5 hash calculation value for a specific file.(获取文件对象的哈希值,请注意,当文件不存在或者文件的长度为零的时候,会返回空字符串) - - The file path of the target file to be calculated. - - - - - - - - 24byte - 8byte - - - - - The returns value of TRUE represent of the target operation has been time out.(返回真,表示操作超时) - - - - - - The time unit of this parameter is second.(单位为秒) - - - - - - - - - - - The time unit of this parameter is second.(单位为秒) - - - - - - - - The time unit of this parameter is second.(单位为秒) - - - - - 类似于任务管理器的函数:Memory, CPU, ProcessName, PID, CommandLine - - Memory, CPU - - - - - 获取CPU的使用率 - - - - - - - - - - 同时执行的句柄的数目 - - - - - - Define tree nodes - - - - - - The Binary tree itself. - - A very basic Binary Search Tree. Not generalized, stores - name/value pairs in the tree nodes. name is the node key. - The advantage of a binary tree is its fast insert and lookup - characteristics. This version does not deal with tree balancing. - - - - - - Points to the root of the tree - - - - - - Clear the binary tree. - - - - - Returns the number of nodes in the tree - - Number of nodes in the tree - - - - Find name in tree. Return a reference to the node - if symbol found else return null to indicate failure. - - Name of node to locate - Returns null if it fails to find the node, else returns reference to node - - - - Add a symbol to the tree if it's a new one. Returns reference to the new - node if a new node inserted, else returns null to indicate node already present. - - Name of node to add to tree - Value of node - Returns reference to the new node is the node was inserted. - If a duplicate node (same name was located then returns null - - - - Find the next ordinal node starting at node startNode. - Due to the structure of a binary search tree, the - successor node is simply the left most node on the right branch. - - Name key to use for searching - Returns the parent node if search successful - Returns a reference to the node if successful, else null - - - - Delete a given node. This is the more complex method in the binary search - class. The method considers three senarios, 1) the deleted node has no - children; 2) the deleted node as one child; 3) the deleted node has two - children. Case one and two are relatively simple to handle, the only - unusual considerations are when the node is the root node. Case 3) is - much more complicated. It requires the location of the successor node. - The node to be deleted is then replaced by the sucessor node and the - successor node itself deleted. Throws an exception if the method fails - to locate the node for deletion. - - Name key of node to delete - - - - Return the tree depicted as a simple string, useful for debugging, eg - 50(40(30(20, 35), 45(44, 46)), 60) - - Returns the tree - - - - The key of the dictionary is string value and the keys is not sensitive to the character case. - (字典的键名为字符串,大小写不敏感,行为和哈希表类型) - - - - - - - - - 大小写不敏感 - - - - - - 添加和替换操作主要在这里进行 - - 大小写不敏感 - - - - - - - Call by the method - - - - - - - - This kind of object type can be convert into a dictionary object by its property. - - - - - - This property can be using for the unique identified this target object in a collection. - (可以使用本属性来在集合之中唯一标识本目标对象) - - - - - - - - 和所不同的是,本类型的是只能读取而不能够赋值的 - - - - - - Read only unique identifier.(只读的唯一标识符) - - - - - - - - Defines a key/value pair that can be set or retrieved. - - - - - - - - Gets the key in the key/value pair. - - - - - - - - Gets the value in the key/value pair. - - - - - - - - Defines a key/value pair that only can be retrieved. - - - - - - - Defines a key/value pair that can be set or retrieved. - - - - - - - - Gets the key in the key/value pair. - - - - - - - - Gets the value in the key/value pair. - - - - - - - - - - - 是否大小写敏感,默认不敏感 - - - - - - - - 是否大小写敏感,默认不敏感 - - - - - 在目标对象中必须要具有一个属性有自定义属性 - - - - - - 将字符串数据类型转换为其他的数据类型 - - - - - - 出现错误的时候总是会返回空字符串的 - - - - - - - Convert target data object collection into a datatable for the data source of the >. - (将目标对象集合转换为一个数据表对象,用作DataGridView控件的数据源) - - - - - - - - - Retrive data from a specific datatable object.(从目标数据表中获取数据) - - - - - - - - - Represents a column of certain data frames. The mapping between to schema is also can be represent by this attribute. - (也可以使用这个对象来完成在两个数据源之间的属性的映射,由于对于一些列名称的属性值缺失的映射而言, - 其是使用属性名来作为列映射名称的,故而在修改这些没有预设的列名称的映射属性的属性名的时候,请注意 - 要小心维护这种映射关系) - - - - - Gets the index. - - - - - Gets the name. - - - - - Initializes a new instance by name. - - The name. - - - - Initializes a new instance by index. - - The index. - - - - 会默认使用目标对象的反射的Name属性作为映射的名称 - - - - - - - - 列名称,假若本参数为空的话,则使用属性名称 - 从1开始的下标,表示为第几列 - - - - - 没有名称属性的映射使用属性名来表述 - - - - - - - - Load the mapping property, if the custom attribute - have no name value, then the property name will be used as the mapping name. - - The type should be a class type or its properties should have the - mapping option which was created by the custom attribute - - - - - - - - - - - - - - - - - - 向文件之中写数据的时候,需要设置为真 - 从文件之中读取数据的时候,需要设置为真 - - - - - - 从类型实体生成配置文件数据 - - - - - 类型实体之中的简单属性,只要具备可读属性即可被解析出来 - - - - 本属性不能够被设置为只读属性是因为 Settings.Settings(Of IProfile).LoadFile 函数的需要 - - - - - - - - 所映射的数据源 - - - - - - List all of the available settings nodes in this profile data session. - (枚举出当前配置会话之中的所有可用的配置节点) - - - - - - - - - - 目标配置文件的Xml文件的文件名 - 可以调用的配置项的数目,解析失败则返回0 - - - - - 请注意,必须是小写的 - - The name of the configuration entry should be in lower case. - - - - - -假若函数参数为空,则函数输出所有的变量的值 - - 假若本参数为空,则函数输出所有的变量的值 - - - - - - The simple configuration mapping node in the current profile data, the data type of this node - object should be just the simplest data type such as String, Integer, Long, Double, Boolean. - (当前的配置节点为一个简单节点,即目标属性的属性值类型的字符串,数字或者逻辑值等最基本的数据类型) - - - - - - Initialize a node in the settings xml document. - - The name of the node in the document xml file - The brief introduction information about this profile node. - - - - 当前的配置节点为一个复杂数据类型的配置节点,即目标属性的属性类型为一个Class对象 - - - - - - Resource link data. - - - - - - The relative path of the target resource object in the file system.(资源对象在文件系统之中的相对路径) - - - - - - - - 获取所指向的资源文件的完整路径 - - - - - - - - 假若需要通过字典对象实现一些统计操作,则这个对象类型可能十分有用 - - - - - - 由于字典对象的元素为值对象,所以无法进行元素值的修改,所以可以使用这个对象进行修改 - - - - - - The key has 2 string value collection. - - - - - - An object for the text file format xml data storage.(用于存储与XML文件之中的字符串键值对对象) - - - - - - Defines a key/value pair that can be set or retrieved.(特化的字符串属性类型) - - - - - - Gets the key in the key/value pair. - - - - 在这里可能用不了自定义属性,因为其基本类型之中的Key和Value可以是任意的类型的,Attribute格式无法序列化复杂的数据类型 - - - - - - - If strict is TRUE then the function of the string compares will case sensitive. - - - - - - {Key, strArray()} The value of this data type object is a string collection.(本类型对象的值属性类型为一个字符串集合) - - - - - - Object model of the text file doucment.(文本文件的对象模型,这个文本文件对象在Disposed的时候会自动保存其中的数据) - - - - - - This is a file object which have a handle to save its data to the filesystem.(这是一个带有文件数据保存方法的文件模型) - - - - - - Handle for saving the file data.(保存文件的方法) - - The file path that will save data to.(进行文件数据保存的文件路径) - The text encoding value for the text document.(文本文档的编码格式) - - - - - - The source file.(源文件) - - - - - - The storage filepath of this text file. - - - - - - - - - Automatically determine the path paramater: If the target path is empty, then return - the file object path property, if not then return the - directly. - (当的值不为空的时候,本对象之中的路径参数将会被替换,反之返回本对象的路径参数) - - - - - - - - - - - Default value is UTF8 - - - - - - - - - Default value is UTF8 - - - - - - 当一个文件非常大以致无法使用任何现有的文本编辑器查看的时候,可以使用本方法查看其中的一部分数据 - - - - - - - - 尝试查看大文件的尾部的数据 - - - - - - - - - - 对象类型的组合输出工具,即目标类型的集合之中的元素两两组合配对 - - - - - - 对象列表是否已经完全组合输出 - - - - - - - - 是否已经开始读取新的一行数据 - - - - - - - - Creates the completely combination of the elements in the target input collection source. - (创建完完全全的两两配对) - - - - - - - - 任意多个集合之间的对象之间相互组成组合输出 - - - - - - This object gets a object handle value to indicated that the position this object exists - in the list collection structure. - (这个对象具有一个用于指明该对象在列表对象中的位置的对象句柄值) - - - - - - The ID that this object in a list instance. - (本对象在一个列表对象中的位置索引号) - - - - - - - - - - - Class object that can be dispose by the system automatically and the class object that should - have a handle property to specific its position in this list class. - (能够被系统所自动销毁的对象类型,并且该类型的对象必须含有一个Handle属性来指明其在本列表中的位置) - - - - - - Object instances data physical storage position, element may be null after - remove a specify object handle. - (列表中的元素对象实例的实际存储位置,当对象元素从列表之中被移除了之后,其将会被销毁) - - - 即与只读属性'ListData'相比,这个字段的列表中可能含有空引用的元素对象. - - - - - Stack list that store the empty pointer - - - - - - Exists handle that store in this list - - - - - - Get the logical list of the data store in this list object instance. - (获取逻辑形式的列表数据) - - - - - - - - Get the logical list length - - - - - - - - Get or set a object instance data that has specify handle value - - Target object handle value - It is not recommend that you use this property to set the data element as the list object's capacity may not cover your handle - - - - - - Construct a new list object - - The initialize size of this list object, Optional parameter, default value is 2048 - - - - - Add a disposable object instance element into this list object and return its object handle value in this list object - - Object instance that will be store in this list object - Object handle in this list object instance - - - - - Append a list of object instance - - - - - - - Remove a object instance element in this list object that have a specify handler - - Object handle value that specify the target object - - - - - Know that the specify handle pointe object is null or not? - - Object handle - - - - - - Know that a specify object instance exists in this list object or not? - (判断某一个指定的对象实例是否存在于列表对象之中) - - Target object instance(目标要进行查找的对象实例) - - - - - - Remove a specify object in this list object using its hashcode and return its handle value. - (使用对象的哈希值来查找目标对象并对其进行移除,之后返回其句柄值) - - - - - - - - Clear all of the data in this list object instance. - (清除本列表对象中的所有数据) - - - - - - GDI+ - - - - - - GDI+ device handle.(GDI+绘图设备句柄) - - - - - - GDI+ device handle.(GDI+绘图设备句柄) - - - - - - GDI+ device handle memory - - - - - - GDI+ device handle memory.(GDI+设备之中的图像数据) - - - - - - 图像的大小 - - - - - - 在图象上面的中心的位置点 - - - - - - 将GDI+设备之中的图像数据保存到指定的文件路径之中,默认的图像文件的格式为PNG格式 - - - 默认为png格式 - - - - - - - - 所填充的颜色 - - - - - 微软雅黑字体的名称 - - - - - Adding a frame box to the target image source.(为图像添加边框) - - - Default pen width is 1px and with color .(默认的绘图笔为黑色的1个像素的边框) - - - - - - 创建一个GDI+的绘图设备 - - - 默认的背景填充颜色为白色 - - - - - - 从指定的文件之中加载GDI+设备的句柄 - - - - - - - 创建一个GDI+的绘图设备 - - - 默认的背景填充颜色为白色 - - - - - - 图片剪裁小方块区域 - - - - - - - 图片剪裁为圆形的头像 - - 要求为正方形或者近似正方形 - - - - - - - Determine that the target color value is a empty variable.(判断目标颜色值是否为空值) - - - - - - - 羽化 - - - - - - - - - - http://www.codeproject.com/Articles/42492/Using-LINQ-to-Calculate-Basic-Statistics - - - - - - 加载完数据之后返回其自身 - - - - - - - - - 将目标对象之中的属性按值复制 - - - - - 对外函数接口,为了防止无限递归的出现 - - - - 将目标对象之中的属性按值复制 - - - - 对外函数接口,为了防止无限递归的出现 - - - - 递归使用的,基本数据类型直接复制,引用类型则首先创建一个新的对象,在对该对象进行递归复制,假若目标对象没有可用的无参数的构造函数,则直接赋值 - - - - - - - - 请使用这个函数来对CSV序列化的对象进行浅拷贝。将之中的第一层的属性值拷贝到对应的属性值之中,然后返回 - - - - - - - - - 最基本的思想是将属性值按照同名属性名称在A和B两个对象类型之间进行映射,即A与B两个对象之间必须要具备相同的属性名称,才可以产生映射,请注意在本对象之中仅能够映射最基本的值类型的数据类型 - 对于一些自定义的映射操作,请在目标数据模型之中定义自定义的映射函数,要求为函数只有一个参数,参数类型和返回值类型分别为映射的两个节点的数据类型,程序会使用反射自动查找 - - - - - - 从源江基本的值类型映射到数据模型,以将配置数据读取出来并进行加载 - - 数据模型 - - - - - - - 从数据模型将值类型数据映射回源,以将配置数据写入文件 - - 数据模型 - - - - - - - - 数据类型转换方法的句柄对象 - - 源之中的数据,由于源是一个TEXT格式的数据文件,故而这里的数据类型为字符串,通过本句柄对象可以将字符串数据映射为其他的复杂数据类型 - - - - - - 这个属性或者方法不会被用于映射 - - - - - - 不会使用系统自带的映射方法进行映射 - - - - - - 映射的文本文件源 - - - - - - 映射操作的目标数据模型 - - - - - - 从源映射到数据模型的类型转换 - - - - - - 从数据模型映射到源的类型转换 - - - - - - 获取从源映射至数据模型的映射过程 - - 数据模型 - - - - - - - A script object for grep the gene id in the blast output query and subject title.(用于解析基因名称的脚本类,这个对象是在项目的初始阶段,为了方便命令行操作而设置的) - - - - - - - - 文本源 - 脚本命令的参数 - - - - - - Source,Script,ReturnValue - - - - - - 对用户所输入的脚本进行编译,对于内部的空格,请使用单引号'进行分割 - - - - - - - 修整目标字符串,按照脚本之中的方法取出所需要的字符串信息 - - - - - - - - - - - - - - - - - - - - 向量之中的第一个元素为命令的名字,第二个元素为Mid函数的Start参数,第三个元素为Mid函数的Length参数,可以被忽略掉 - - - - - - Tools for generate the program change log document. - - - - - - - - ChangeLog的文件路径 - 目标程序的主程序的文件路径 - - - - - - - - 假若为空的话,会自动的根据上一次版本的号码叠加1 - - - - - Wrapper for the file operations. - - - - - - 当一个文件非常大以致无法使用任何现有的文本编辑器查看的时候,可以使用本方法查看其中的一部分数据 - - - - - - - - 尝试查看大文件的尾部的数据 - - - - - - - - - - Register a .NET dll file as a COM component.(将某一个.NET语言所编写的DLL文件注册为COM组件) - - - - - - - - Encoding fileEncoding = TextFileEncodingDetector.DetectTextFileEncoding("you file path",Encoding.Default); - - - - - - completely arbitrary - inappropriate for high numbers of files / high speed requirements - - - - - - - - - .NET 2.0 Workaround for PathTooLongException - - - http://www.codeproject.com/Articles/22013/NET-Workaround-for-PathTooLongException - - - - - uint GetShare(FileShare share) - Converts the FileShare constant to win32 constant - - - - - - - - Open readonly file mode open(String, FileMode.Open, FileAccess.Read, FileShare.Read) - - - - - - - - open writable open(String, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None). - - - - - - - - 两个参数字符串是否模糊等价? - - - - - - - - - 从一个不直接相等的字符串列表之中模糊的查找出匹配度最高的目标字符串 - - - - - - - - - Search the path from a specific keyword.(通过关键词来推测路径) - - - - - - - - - - - 元素的排布是有顺序的 - - - - - - - [,这个函数会扫描目标文件夹下面的所有文件。] - 请注意,本方法是不能够产生具有相同的主文件名的数据的。假若目标GBK是使用本模块之中的方法保存或者导出来的, - 则可以使用本方法生成Entry列表;(在返回的结果之中,KEY为文件名,没有拓展名,VALUE为文件的路径) - - - - - - - - - 允许有重复的数据 - - - - - - - - - 将不同来源的文件复制到目标文件夹之中 - - - - 返回失败的文件列表 - - - - - Invoke the search session for the program file using a specific keyword string value.(使用某个关键词来搜索目标应用程序) - - - - - - - - - - - - - 脚本文件的文件拓展名 - - - - - - - - - 所制定进行搜索的驱动器,假若希望搜索整个硬盘,请留空字符串 - - - - - - - 商标搜索规则 - - - - - - - - - 获取相对于本应用程序的目标文件的相对路径(请注意,所生成的相对路径之中的字符串最后是没有文件夹的分隔符\或者/的) - - - - - - - 请注意,所生成的相对路径之中的字符串最后是没有文件夹的分隔符\或者/的 - - 生成相对路径的参考文件夹 - 所需要生成相对路径的目标文件系统对象的绝对路径或者相对路径 - - - - - use the overload method of the type - - - - - - - - - - - - - 按照UniqueId列表来筛选出目标集合 - - - - - - - - - - 将目标集合对象转换为一个字典对象 - - - - - - - - - Create memory dump for a class object instance - - - - - - - - - The extension module for web services works. - - - - - - - A string that contains the url string pattern like: href="url_text" - - - - - - 不像函数,这个函数不会替换掉转义字符 - - - - - - - 请注意,这个函数会替换掉一些转义字符的 - - - - - - - 获取两个尖括号之间的内容 - - - - - - - - Get the html page content from a website request or a html file on the local filesystem. - - web http request url or a file path handle - 发生错误的时候的重试的次数 - - - - - - - download the file from to local file. - - - - - - - - - Wrapper class for *.ini and *.inf configure file.(可能文件中的注释行会受到影响,所以请尽量使用本类型中的两个静态函数来操作INI文件) - - - - - - Get the value from a specific section/key in a file of path - - - - - - - - - Logical true values are regarded as one, false values as zero. For historical reasons, NULL is accepted and treated as if it were integer(0). - - - - - - - - Standard Deviation - - - - - - - Standard Deviation - - - - - - - Standard Deviation - - - - - - - Standard Deviation - - - - - - - 多位坐标的欧几里得距离 - - - - - - - - 如果每一个数值之间都是相同的大小,则返回原始数据,因为最大值与最小值的差为0,无法进行映射的创建(会出现除0的错误) - - - - 为了要保持顺序,不能够使用并行拓展 - - - - 如果每一个数值之间都是相同的大小,则返回原始数据,因为最大值与最小值的差为0,无法进行映射的创建(会出现除0的错误) - - - - 为了要保持顺序,不能够使用并行拓展 - - - - Common extension methods library for convenient the programming job. - - - - - - Start a new thread and then returns the handle. - - - - - - - Get the scripting namespace value from - - - - - - - Function test the Boolean expression and then decided returns which part of the value. - (这个函数主要是用于Delegate函数指针类型或者Lambda表达式的) - - - Expression - value returns this parameter if the value of the expression is True - value returns this parameter if the value of the expression is False - - - - - DirectCast(obj, T) - - - - - - - - 基类集合与继承类的集合约束 - - 继承类向基类进行约束 - - - - - The function will print the exception details information on the standard , console, and system console. - (分别在标准终端,调试终端,系统调试终端之中打印出错误信息,请注意,函数会直接返回False可以用于指定调用者函数的执行状态) - - - - - - - - - - - 仅仅是起到类型复制的作用 - - - - - - - - 仅仅是起到类型复制的作用 - - - - - 得到文件的全路径 - - - - - - - 假若命令行之中的文件名参数之中含有空格的话,则可能会造成错误,需要添加一个双引号来消除歧义 - - - - - - - 对Xml文件之中的特殊字符进行转义处理 - - - - - - - - Running the string as a cli command line.(请注意,在调试模式之下,命令行解释器会在运行完命令之后暂停,而Release模式之下则不会。 - 假若在调试模式之下发现程序有很长一段时间处于cpu占用为零的静止状态,则很有可能已经运行完命令并且等待回车退出) - - The command line arguments value, which its value can be gets from the function. - Returns the function execute result to the operating system. - - - - Running the string as a cli command line.(请注意,在调试模式之下,命令行解释器会在运行完命令之后暂停,而Release模式之下则不会。 - 假若在调试模式之下发现程序有很长一段时间处于cpu占用为零的静止状态,则很有可能已经运行完命令并且等待回车退出) - - The command line arguments value, which its value can be gets from the function. - Returns the function execute result to the operating system. - - - - Running the string as a cli command line.(请注意,在调试模式之下,命令行解释器会在运行完命令之后暂停,而Release模式之下则不会。 - 假若在调试模式之下发现程序有很长一段时间处于cpu占用为零的静止状态,则很有可能已经运行完命令并且等待回车退出) - - The command line arguments value, which its value can be gets from the function. - Returns the function execute result to the operating system. - - - - Running the string as a cli command line.(请注意,在调试模式之下,命令行解释器会在运行完命令之后暂停,而Release模式之下则不会。 - 假若在调试模式之下发现程序有很长一段时间处于cpu占用为零的静止状态,则很有可能已经运行完命令并且等待回车退出) - - The command line arguments value, which its value can be gets from the function. - Returns the function execute result to the operating system. - - - - Get the specific type of custom attribute from a property. - (从一个属性对象中获取特定的自定义属性对象) - - The type of the custom attribute.(自定义属性的类型) - Target property object.(目标属性对象) - - - - - - Get the specific type of custom attribute from a property. - (从一个属性对象中获取特定的自定义属性对象) - - The type of the custom attribute.(自定义属性的类型) - Target property object.(目标属性对象) - - - - - - Gets the URL type file path.(获取URL类型的文件路径) - - - - - - - - - You can using this method to create a empty list for the specific type of anonymous type object. - (使用这个方法获取得到匿名类型的列表数据集合对象) - - - The temp object which was created anonymous.(匿名对象的集合) - - - - - - This method is used to replace most calls to the Java String.split method. - - - - - - - - - - Get the method reflection entry point for a anonymous lambda expression.(当函数返回Nothing的时候说明目标对象不是一个函数指针) - - - - - - - - Convert the data collection into a matrix value. - - - The elements number in each collection should be agreed!(要求集合之中的每一列之中的数据的元素数目都相等) - - - - - - Convert the matrix data into a collection of collection data type.(将矩阵对象转换为集合的集合的类型) - - - - - - - - - 滑窗操作的数据模型 - - - - - - - 在创建的滑窗的队列之中当前的窗口对象的位置 - - - - - - - - 当前窗口在原始的序列之中的左端起始位点 - - - - - - - - 窗口长度 - - - - - - - - Create a collection of slide Windows data for the target collection object.(创建一个滑窗集合) - - - - 窗口的大小 - 在序列之上移动的步长 - - - - - - Chr(0): NULL char - - - - - - 将目标集合之中的数据按照参数分配到子集合之中,这个函数之中不能够使用并行化计数,以保证元素之间的相互原有的顺序 - - - - 每一个子集合之中的元素的数目 - - - - - - - Merge two type specific collection.(函数会忽略掉空的集合) - - - - - - - - - 本方法会执行外部命令并等待其执行完毕,函数返回状态值 - - - - - - - - Gets a random number in the region of [0,1]. (获取一个[0,1]区间之中的随机数,请注意:因为为了尽量做到随机化,这个函数会不断的初始化随机种子, - 故而性能较低,不可以在大量重复调用,或者在批量调用的时候请使用并行化拓展的LINQ) - - - - - - - Check if the target file object is exists on your file system or not.(这个函数也会自动检查目标参数是否为空) - - - - - - - - 检测文件是否已经被其他程序打开使用之中 - - 目标文件 - - - - - 获取目标文件夹的名称 - - - - - - - - Gets the element counts in the target data collection, if the collection object is nothing or empty - then this function will returns ZERO, others returns Collection.Count.(返回一个数据集合之中的元素的数目, - 假若这个集合是空值或者空的,则返回0,其他情况则返回Count拓展函数的结果) - - - - - - - - - Looks up a localized string similar to GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away yo [rest of string was truncated]";. - - - - - 获取""或者其他字符所包围的字符串的值 - - - - - - - - - Free this variable pointer in the memory.(销毁本对象类型在内存之中的指针) - - 假若该对象类型实现了接口,则函数还会在销毁前调用该接口的销毁函数 - - - - - - Pause the console program. - - - - - - - 使用正则表达式解析目标字符串对象之中的一个实数 - - - - - - - - 空字符串会返回空的日期 - - - - - - - 当所被读取的文本文件的大小超过了的上限的时候,就需要使用本方法进行读取操作了。目标文件必须是已经存在的文件 - - 目标文件必须是已经存在的文件 - - - - - - - Try convert the type specific collection data type into a generic enumerable collection data type.(尝试将目标集合类型转换为通用的枚举集合类型) - - The type specific collection data type.(特定类型的集合对象类型,当然也可以是泛型类型) - If the target data type is not a collection data type then the original data type will be returns and the function displays a warning message. - - - - - Save the binary data into the filesystem.(保存二进制数据包值文件系统) - - The binary bytes data of the target package's data.(目标二进制数据) - The saved file path of the target binary data chunk.(目标二进制数据包所要进行保存的文件名路径) - - - - - - Assigning the value to the specific named property to the target object. - (将参数之中的值赋值给目标对象之中的指定的属性名称的属性,如果发生错误,则原有的对象不会被修改) - - - - - 可以使用NameOf得到需要进行修改的属性名称 - - - - - - Execute a property modify method and then return the target instance object.(修改目标对象的属性之后返回目标对象) - - - - - - - - - Value assignment to the target variable.(将参数里面的值赋值给参数然后返回) - - - - - - - - - - Copy the source value directly to the target variable and then return the source value. - (与函数) - - - - - - - - - Copy the source value directly to the target variable and then return the source value. - - - - - - - Copy the source value directly to the target variable and then return the source value. - - - - - - - Copy the source value directly to the target variable and then return the source value. - - - - - - - Copy the source value directly to the target variable and then return the source value. - - - - - - - Copy the source value directly to the target variable and then return the source value. - - - - - - - Copy the source value directly to the target variable and then return the source value. - - - - - - - Copy the source value directly to the target variable and then return the source value. - - - - - - - Copy the source value directly to the target variable and then return the source value. - - - - - - - Copy the source value directly to the target variable and then return the source value. - - - - - - - Copy the source value directly to the target variable and then return the source value. - - - - - - - Copy the source value directly to the target variable and then return the source value. - - - - - - - Modify target object property value using a specific value provider and then return original instance object. - (修改目标对象的属性之后返回目标对象) - - - - - - - - - Rabbish collection to free the junk memory.(垃圾回收) - - - - - - 向字典对象之中更新或者插入新的数据,假若目标字典对象之中已经存在了一个数据的话,则会将原有的数据覆盖,并返回原来的数据 - - - - - - - - - - Merge the target array collection into one collection.(将目标数组的集合合并为一个数组) - - - - - - - - - Merge the target array collection into one collection.(将目标数组的集合合并为一个数组,这个方法是提供给超大的集合的,即元素的数目非常的多的,即超过了的上限值) - - - - - - - - - Add a linked list of a collection of specific type of data. - - - - - - - - - 矩阵转置: 将矩阵之中的元素进行行列位置的互换 - - 矩阵之中的元素类型 - 为了方便理解和使用,矩阵使用数组的数组来表示的 - - - - - - 将矩阵之中的元素进行行列位置的互换,请注意,假若长度不一致的话,会按照最短的元素来转置,故而使用本函数可能会造成一些信息的丢失 - - - - - - - - - - - - 请务必要确保集合之中的元素的属性是唯一的,否则会出错 - - - - - - 求交集 - - - - - - - - 判断目标实数是否为一个无穷数或者非计算的数字,产生的原因主要来自于除0运算结果或者达到了的上限或者下限 - - - - - - - - Fuzzy match two string, this is useful for the text query or searching. - - - - - - - - - Convert the string value into the boolean value, this is useful to the text format configuration file into data model.(请注意,空值字符串为False) - - - - - - - - 求取该数据集的标准差 - - - - - - - - Count the string value numbers.(请注意,这个函数是倒序排序的) - - - - - - - - - Get the description data from a enum type value, if the target have no attribute data - then function will return the string value from the ToString() function. - - - - - - - - Remove all of the null object in the target object collection - - - - - - - - - - Return a collection with randomize element position in the original collection.(从原有序序列中获取一个随机元素的序列) - - - - - - - - - - Get a specific item value from the target collction data using its UniqueID property, - (请注意,请尽量不要使用本方法,因为这个方法的效率有些低,对于获取 - 类型的集合之中的某一个对象,请尽量先转换为字典对象,在使用该字典对象进行查找以提高代码效率,使用本方法的优点是可以选择忽略 - 参数之中的大小写,以及对集合之中的存在相同的Key的这种情况的容忍) - - - - - - - - - - - Get the value of the first element, if the collection is null or empty then return nothing as default value - - - - - - - - - - Copy the value in into target variable and then return the target variable. - - - - - - - - - - 变量移动距离然后返回其移动之前的值 - - - - - - - - 变量移动距离然后返回其移动之前的值 - - - - - - - - 变量移动距离然后返回其移动之前的值 - - - - - - - - 随机的在目标集合中选取指定数目的子集合 - - - - 当目标数目大于或者等于目标集合的数目的时候,则返回目标集合 - - - - - - Convert target object type collection into a string array using the Object.ToString() interface function. - - - - - - - - - Get a sub set of the string data which is contains in both collection and - - - - - - - - - Swap the value in the two variables. - - - - - - - - - Swap the two item position in the target list. - - - - - - - - - 为列表中的对象添加对象句柄值 - - - - - - - plus one and then return its previous value. - - - - - - - - Gets the subscript index of a generic collection.(获取某一个集合的下标的集合) - - 集合中的元素为任意类型的 - 目标集合对象 - A integer array of subscript index of the target generic collection. - - - - - - - - - - 所要获取的目标对象的下表的集合 - 是否为反向选择 - 当进行反选的时候,本参数将不会起作用 - - - - - - - 反选,即将所有不出现在之中的元素都选取出来 - - - - - - - - - - 产生指定数目的一个递增序列 - - 大于或者等于0的一个数,当小于0的时候会出错 - - - - - - 产生指定数目的一个递增序列 - - - - - - - - 产生指定数目的一个递增序列 - - - - - - - - 将目标键值对对象的集合转换为一个字典对象 - - - - - - - - - - This object collection is a null object or contains zero count items.(判断某一个对象集合是否为空) - - - - - - - - - 判断这个字符串集合是否为空集合,函数会首先按照常规的集合为空进行判断,然后假若不为空的话,假若只含有一个元素并且该唯一的元素的值为空字符串,则也认为这个字符串集合为空集合 - - - FALSE 为非严谨,只进行常规判断,TRUE 为严谨模式,会假若不为空的话,假若只含有一个元素并且该唯一的元素的值为空字符串,则也认为这个字符串集合为空集合 - - - - - Write the text file data into a file which was specific by the value, - this function not append the new data onto the target file. - (将目标文本字符串写入到一个指定路径的文件之中,但是不会在文件末尾追加新的数据) - - - - - - - - - - 由于可能会产生数据污染,所以并不推荐使用这个函数来写文件 - - - - 当其他的进程对目标文件产生占用的时候,函数是否等待其他进程的退出释放文件句柄之后在进行数据的写入 - - - - - - 判断是否是文本文件 - - 文件全路径名称 - 是返回True,不是返回False - 文件检查的长度,假若在这个长度内都没有超过null的阈值数,则认为该文件为文本文件,默认区域长度为4KB - 2012年12月5日 - - - - 将目标字符串数据全部写入到文件之中,当所写入的文件位置之上没有父文件夹存在的时候,会自动创建文件夹 - - - - - - - - - - Serialization the target object type into a XML document.(将一个类对象序列化为XML文档) - - The type of the target object data should be a class object.(目标对象类型必须为一个Class) - - - - - - - 从文件之中加载XML之中的数据至一个对象类型之中 - - - XML文件的文件路径 - 当反序列化出错的时候是否抛出错误?假若不抛出错误,则会返回空值 - - - - - - 记录下错误然后返回Nothing - - - - - - - - - 使用二进制序列化保存一个对象 - - - - - - - - - - 使用反二进制序列化从指定的文件之中加载一个对象 - - - - - - - - - Generate a specific type object from a xml document stream.(使用一个XML文本内容创建一个XML映射对象) - - - This parameter value is the document text of the xml file, not the file path of the xml file.(是Xml文件的文件内容而非文件路径) - Should this program throw the exception when the xml deserialization error happens? - if False then this function will returns a null value instead of throw exception. - (在进行Xml反序列化的时候是否抛出错误,默认抛出错误,否则返回一个空对象) - - - - - - 使用一个XML文本内容的一个片段创建一个XML映射对象 - - - 是Xml文件的文件内容而非文件路径 - - - - - - 执行一个命令行语句,并返回一个IO重定向对象,以获取被执行的目标命令的标准输出 - - - - - - - - - 获取一个实数集合中所有元素的积 - - - - - - - - Fill the newly created image data with the specific color brush - - - - - - - - 枚举所有非法的路径字符 - - - - - - 将目标字符串之中的非法的字符替换为"_"符号以成为正确的文件名字符串 - - - 当本参数为真的时候,仅26个字母,0-9数字和下划线_以及小数点可以被保留下来 - - - - - - Remove all of the element in the from target list - - - - - - - - - 出错会返回空集合 - - - - - 使用System.NameOf()操作符来获取 - - - - - 向标准终端输出一些带有时间戳的调试信息 - - - - - - - MMFProtocol socket object for the inter-process communication on the localhost, this can be using for the data exchange between two process. - - - - - - 内存映射文件的更新标识符 - - - - - - 客户端的监听线程 - - - - - - 客户端接受到的数据需要经过反序列化解码方能读取 - - - - - - - 内存映射文件的数据块的预分配大小 - - - - - - - - - mmfServer的主要功能是创建并维护一个内存映射文件 - - - - - - - - 对象实例会首先尝试以服务器的角色建立连接,当不成功的时候会以客户端的形式建立连接 - - - - 内存映射文件中所存储的将要进行进程间交换的数据 - - - - - - - - - - Public Delegate Sub (byteData As ()) - 会优先于事件的发生 - - - - - 进程排斥锁 - - - - - - 进程排斥锁 - - - 程序中采用一个进程排斥锁是由于待日后Mono运行时环境在Linux平台中的WinForm GTK成熟后,向Linux平台迁移, - 由于Visual Baisc/C#所编写的应用程序需要保持单个进程,则需要启用应用程序框架,而很多情况下为了优化的需求应用程序 - 无法使用应用程序框架,为了实现一次编译到处运行的目的,程序的代码不会再平台间进行修改, - 由于Linux平台之上不能使用Win32API来保持单进程,为了保持程序对Windows/Linux/MAC三大操作系统的兼容性,故而在这里使用了一个进程排斥锁 - - - - - 进程锁的排斥情况 - - - - - - - - 进程排斥锁的锁名 - - - - - 返回当前的进程是否被加锁 - - - - - - - A strongly-typed resource class, for looking up localized strings, etc. - - - - - Returns the cached ResourceManager instance used by this class. - - - - - Overrides the current thread's CurrentUICulture property for all - resource lookups using this strongly typed resource class. - - - - - Looks up a localized string similar to ?<html> -<head> -<title>The Code Project Open License (CPOL)</title> -<Style> -BODY, P, TD { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10pt } -H1,H2,H3,H4,H5 { color: #ff9900; font-weight: bold; } -H1 { font-size: 14pt;color:black } -H2 { font-size: 13pt; } -H3 { font-size: 12pt; } -H4 { font-size: 10pt; color: black; } -PRE { BACKGROUND-COLOR: #FBEDBB; FONT-FAMILY: "Courier New", Courier, mono; WHITE-SPACE: pre; } -CODE { COLOR: #990000; FONT-FAMILY: "Courier New", Courier, mono; } -.S [rest of string was truncated]";. - - - - - Looks up a localized string similar to GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away yo [rest of string was truncated]";. - - - - - Looks up a localized string similar to This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU [rest of string was truncated]";. - - - - - Generate the source code from the CodeDOM object model.(根据对象模型生成源代码以方便调试程序) - - - VisualBasic, C# - - - You can easily convert the source code between VisualBasic and C# using this function just by makes change in statement: - CodeDomProvider.GetCompilerInfo("VisualBasic").CreateProvider().GenerateCodeFromNamespace([NameSpace], sWriter, Options) - Modify the VisualBasic in to C# - - - - - Compile the codedom object model into a binary assembly module file.(将CodeDOM对象模型编译为二进制应用程序文件) - - CodeDom dynamic code object model.(目标动态代码的对象模型) - Reference assemby file path collection.(用户代码的引用DLL文件列表) - .NET Framework SDK - VisualBasic, C# - - - - - - Compile the codedom object model into a binary assembly module file.(将CodeDOM对象模型编译为二进制应用程序文件) - - CodeDom dynamic code object model.(目标动态代码的对象模型) - Reference assemby file path collection.(用户代码的引用DLL文件列表) - .NET Framework SDK - VisualBasic, C# - - - - - - Compile the codedom object model into a binary assembly module file.(将CodeDOM对象模型编译为二进制应用程序文件) - - CodeDom dynamic code object model.(目标动态代码的对象模型) - Reference assemby file path collection.(用户代码的引用DLL文件列表) - .NET Framework SDK - VisualBasic, C# - - - - - - .exe的编译配置文件 - - - - - - .Dll的编译配置文件 - - - - - - Compile the codedom object model into a binary assembly module file.(将CodeDOM对象模型编译为二进制应用程序文件) - - CodeDom dynamic code object model.(目标动态代码的对象模型) - Reference assemby file path collection.(用户代码的引用DLL文件列表) - .NET Framework SDK - VisualBasic, C# - - - - - - Class object instance constructor - - - - - - - - Class object instance constructor. - - - - - - - - Declare a local variable. - - - - - - - - - Call a statics function from a specific type with a known function name - - - - - - - - - Returns value in a function body - - - - - - - Reference to a statics file in the specific target type - - - - - - - - Reference to a instance field in the specific object instance. - - - - - - - - Variable value initializer - - - - - - - Reference to a local variable in a function body. - - - - - - - Gets the element value in a array object. - - - - - - - - Specifies the Title element of the result string. - - - - - - In short description of the link produced. - - - - - - Url that points to the Current result. - - - - - diff --git a/Shoal.v2/Console/My Project/Application.Designer.vb b/Shoal.v2/Console/My Project/Application.Designer.vb deleted file mode 100644 index 88dd01c78..000000000 --- a/Shoal.v2/Console/My Project/Application.Designer.vb +++ /dev/null @@ -1,13 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - diff --git a/Shoal.v2/Console/My Project/Application.myapp b/Shoal.v2/Console/My Project/Application.myapp deleted file mode 100644 index e62f1a533..000000000 --- a/Shoal.v2/Console/My Project/Application.myapp +++ /dev/null @@ -1,10 +0,0 @@ - - - false - false - 0 - true - 0 - 2 - true - diff --git a/Shoal.v2/Console/My Project/AssemblyInfo.vb b/Shoal.v2/Console/My Project/AssemblyInfo.vb deleted file mode 100644 index 7aea0b47a..000000000 --- a/Shoal.v2/Console/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,35 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - -' General Information about an assembly is controlled through the following -' set of attributes. Change these attribute values to modify the information -' associated with an assembly. - -' Review the values of the assembly attributes - - - - - - - - - - -'The following GUID is for the ID of the typelib if this project is exposed to COM - - -' Version information for an assembly consists of the following four values: -' -' Major Version -' Minor Version -' Build Number -' Revision -' -' You can specify all the values or you can default the Build and Revision Numbers -' by using the '*' as shown below: -' - - - diff --git a/Shoal.v2/Console/My Project/Resources.Designer.vb b/Shoal.v2/Console/My Project/Resources.Designer.vb deleted file mode 100644 index 11cc4fb7f..000000000 --- a/Shoal.v2/Console/My Project/Resources.Designer.vb +++ /dev/null @@ -1,104 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - -Imports System - -Namespace My.Resources - - 'This class was auto-generated by the StronglyTypedResourceBuilder - 'class via a tool like ResGen or Visual Studio. - 'To add or remove a member, edit your .ResX file then rerun ResGen - 'with the /str option, or rebuild your VS project. - ''' - ''' A strongly-typed resource class, for looking up localized strings, etc. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Returns the cached ResourceManager instance used by this class. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Microsoft.VisualBasic.Shoal.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Overrides the current thread's CurrentUICulture property for all - ''' resource lookups using this strongly typed resource class. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set - resourceCulture = value - End Set - End Property - - ''' - ''' Looks up a localized string similar to GNU GENERAL PUBLIC LICENSE - ''' Version 3, 29 June 2007 - ''' - ''' Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> - ''' Everyone is permitted to copy and distribute verbatim copies - ''' of this license document, but changing it is not allowed. - ''' - ''' Preamble - ''' - ''' The GNU General Public License is a free, copyleft license for - '''software and other kinds of works. - ''' - ''' The licenses for most software and other practical works are designed - '''to take away yo [rest of string was truncated]";. - ''' - Friend ReadOnly Property gpl() As String - Get - Return ResourceManager.GetString("gpl", resourceCulture) - End Get - End Property - - ''' - ''' Looks up a localized string similar to This program is free software: you can redistribute it and/or modify - '''it under the terms of the GNU General Public License as published by - '''the Free Software Foundation, either version 3 of the License, or - '''any later version. - ''' - '''This program is distributed in the hope that it will be useful, - '''but WITHOUT ANY WARRANTY; without even the implied warranty of - '''MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - '''GNU General Public License for more details. - ''' - '''You should have received a copy of the GNU [rest of string was truncated]";. - ''' - Friend ReadOnly Property license() As String - Get - Return ResourceManager.GetString("license", resourceCulture) - End Get - End Property - End Module -End Namespace diff --git a/Shoal.v2/Console/My Project/Resources.resx b/Shoal.v2/Console/My Project/Resources.resx deleted file mode 100644 index 5a97acb37..000000000 --- a/Shoal.v2/Console/My Project/Resources.resx +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - ..\Resources\gpl.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;gb2312 - - - ..\Resources\license.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;gb2312 - - \ No newline at end of file diff --git a/Shoal.v2/Console/My Project/Settings.Designer.vb b/Shoal.v2/Console/My Project/Settings.Designer.vb deleted file mode 100644 index 4643c8891..000000000 --- a/Shoal.v2/Console/My Project/Settings.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) - -#Region "My.Settings Auto-Save Functionality" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings( sender As Global.System.Object, e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.Microsoft.VisualBasic.Shoal.My.MySettings - Get - Return Global.Microsoft.VisualBasic.Shoal.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/Shoal.v2/Console/My Project/Settings.settings b/Shoal.v2/Console/My Project/Settings.settings deleted file mode 100644 index 85b890b3c..000000000 --- a/Shoal.v2/Console/My Project/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/Shoal.v2/Console/My Project/app.manifest b/Shoal.v2/Console/My Project/app.manifest deleted file mode 100644 index 4581619e0..000000000 --- a/Shoal.v2/Console/My Project/app.manifest +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Shoal.v2/Console/Resources/gpl.txt b/Shoal.v2/Console/Resources/gpl.txt deleted file mode 100644 index 94a9ed024..000000000 --- a/Shoal.v2/Console/Resources/gpl.txt +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/Shoal.v2/Console/Resources/license.txt b/Shoal.v2/Console/Resources/license.txt deleted file mode 100644 index da76ca0a9..000000000 --- a/Shoal.v2/Console/Resources/license.txt +++ /dev/null @@ -1,12 +0,0 @@ -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . \ No newline at end of file diff --git a/Shoal.v2/Console/ShellScript.ico b/Shoal.v2/Console/ShellScript.ico deleted file mode 100644 index 5e90c468412f1128478aa00a389b70d46ea0e9cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206923 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 diff --git a/Shoal.v2/Console/Shoal.Core.sln b/Shoal.v2/Console/Shoal.Core.sln deleted file mode 100644 index e4faae546..000000000 --- a/Shoal.v2/Console/Shoal.Core.sln +++ /dev/null @@ -1,85 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.22823.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Shoal", "Shoal.vbproj", "{D71E0D55-DA94-4B18-B204-252D532EE8EC}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ShoalShell_Core", "Microsoft.VisualBasic.Scripting.ShoalShell\ShoalShell_Core.vbproj", "{0BE7FD44-D724-49F6-AEC0-06C80B4F5527}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Shoal.Testing", "..\Shoal.Testing\Shoal.Testing.vbproj", "{9E5436E9-9FA4-47B9-9BDE-F3621622F4B2}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Microsoft.VisualBasic.Architecture.Framework", "..\..\Microsoft.VisualBasic_Framework\Microsoft.VisualBasic.Architecture.Framework\Microsoft.VisualBasic.Architecture.Framework.vbproj", "{FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ShoalShell.Plugins.HtmlHelpServer", "..\ShoalShell.Plugins.HtmlHelpServer\ShoalShell.Plugins.HtmlHelpServer.vbproj", "{D712E0A2-8AB1-4665-B7B5-D2FCE09188AE}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "DocumentFormat.HTML", "..\..\Microsoft.VisualBasic_Framework\DocumentFormats\MSHtml\MSHtml\DocumentFormat.HTML.vbproj", "{2DD4BE80-DDC3-4767-94A7-10F1C3395716}" -EndProject -Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "HTTPServer", "..\..\Reference SharedLib\HTTPServer\HTTPServer.shproj", "{932F99F9-BE59-4743-865F-1ED9331443E3}" -EndProject -Global - GlobalSection(SharedMSBuildProjectFiles) = preSolution - ..\..\Reference SharedLib\HTTPServer\HTTPServer.projitems*{d712e0a2-8ab1-4665-b7b5-d2fce09188ae}*SharedItemsImports = 4 - ..\..\Reference SharedLib\HTTPServer\HTTPServer.projitems*{932f99f9-be59-4743-865f-1ed9331443e3}*SharedItemsImports = 13 - ..\..\Microsoft.VisualBasic_Framework\SharedProject.VB_FrameworkExtensions\SharedProject.VB_FrameworkExtensions.projitems*{fecce1fd-e1d4-49e3-a668-60bb5e7aed99}*SharedItemsImports = 4 - EndGlobalSection - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|x64 = Debug|x64 - Release|Any CPU = Release|Any CPU - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {D71E0D55-DA94-4B18-B204-252D532EE8EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D71E0D55-DA94-4B18-B204-252D532EE8EC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D71E0D55-DA94-4B18-B204-252D532EE8EC}.Debug|x64.ActiveCfg = Debug|x64 - {D71E0D55-DA94-4B18-B204-252D532EE8EC}.Debug|x64.Build.0 = Debug|x64 - {D71E0D55-DA94-4B18-B204-252D532EE8EC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D71E0D55-DA94-4B18-B204-252D532EE8EC}.Release|Any CPU.Build.0 = Release|Any CPU - {D71E0D55-DA94-4B18-B204-252D532EE8EC}.Release|x64.ActiveCfg = Release|x64 - {D71E0D55-DA94-4B18-B204-252D532EE8EC}.Release|x64.Build.0 = Release|x64 - {0BE7FD44-D724-49F6-AEC0-06C80B4F5527}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0BE7FD44-D724-49F6-AEC0-06C80B4F5527}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0BE7FD44-D724-49F6-AEC0-06C80B4F5527}.Debug|x64.ActiveCfg = Debug|x64 - {0BE7FD44-D724-49F6-AEC0-06C80B4F5527}.Debug|x64.Build.0 = Debug|x64 - {0BE7FD44-D724-49F6-AEC0-06C80B4F5527}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0BE7FD44-D724-49F6-AEC0-06C80B4F5527}.Release|Any CPU.Build.0 = Release|Any CPU - {0BE7FD44-D724-49F6-AEC0-06C80B4F5527}.Release|x64.ActiveCfg = Release|x64 - {0BE7FD44-D724-49F6-AEC0-06C80B4F5527}.Release|x64.Build.0 = Release|x64 - {9E5436E9-9FA4-47B9-9BDE-F3621622F4B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9E5436E9-9FA4-47B9-9BDE-F3621622F4B2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9E5436E9-9FA4-47B9-9BDE-F3621622F4B2}.Debug|x64.ActiveCfg = Debug|Any CPU - {9E5436E9-9FA4-47B9-9BDE-F3621622F4B2}.Debug|x64.Build.0 = Debug|Any CPU - {9E5436E9-9FA4-47B9-9BDE-F3621622F4B2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9E5436E9-9FA4-47B9-9BDE-F3621622F4B2}.Release|Any CPU.Build.0 = Release|Any CPU - {9E5436E9-9FA4-47B9-9BDE-F3621622F4B2}.Release|x64.ActiveCfg = Release|Any CPU - {9E5436E9-9FA4-47B9-9BDE-F3621622F4B2}.Release|x64.Build.0 = Release|Any CPU - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Debug|x64.ActiveCfg = Debug|x64 - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Debug|x64.Build.0 = Debug|x64 - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Release|Any CPU.Build.0 = Release|Any CPU - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Release|x64.ActiveCfg = Release|x64 - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Release|x64.Build.0 = Release|x64 - {D712E0A2-8AB1-4665-B7B5-D2FCE09188AE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D712E0A2-8AB1-4665-B7B5-D2FCE09188AE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D712E0A2-8AB1-4665-B7B5-D2FCE09188AE}.Debug|x64.ActiveCfg = Debug|x64 - {D712E0A2-8AB1-4665-B7B5-D2FCE09188AE}.Debug|x64.Build.0 = Debug|x64 - {D712E0A2-8AB1-4665-B7B5-D2FCE09188AE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D712E0A2-8AB1-4665-B7B5-D2FCE09188AE}.Release|Any CPU.Build.0 = Release|Any CPU - {D712E0A2-8AB1-4665-B7B5-D2FCE09188AE}.Release|x64.ActiveCfg = Release|x64 - {D712E0A2-8AB1-4665-B7B5-D2FCE09188AE}.Release|x64.Build.0 = Release|x64 - {2DD4BE80-DDC3-4767-94A7-10F1C3395716}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2DD4BE80-DDC3-4767-94A7-10F1C3395716}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2DD4BE80-DDC3-4767-94A7-10F1C3395716}.Debug|x64.ActiveCfg = Debug|x64 - {2DD4BE80-DDC3-4767-94A7-10F1C3395716}.Debug|x64.Build.0 = Debug|x64 - {2DD4BE80-DDC3-4767-94A7-10F1C3395716}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2DD4BE80-DDC3-4767-94A7-10F1C3395716}.Release|Any CPU.Build.0 = Release|Any CPU - {2DD4BE80-DDC3-4767-94A7-10F1C3395716}.Release|x64.ActiveCfg = Release|x64 - {2DD4BE80-DDC3-4767-94A7-10F1C3395716}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Shoal.v2/Console/Shoal.exe.config b/Shoal.v2/Console/Shoal.exe.config deleted file mode 100644 index 2d2a12d81..000000000 --- a/Shoal.v2/Console/Shoal.exe.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/Shoal.v2/Console/Shoal.ico b/Shoal.v2/Console/Shoal.ico deleted file mode 100644 index 043d8d9884e6cfb16db09e755b95acb45ddf9c35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 341782 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
gr= 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%0A;!gSy|M&GB@r<2O)OegTx07o-7zc8;J%jDr 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 z

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 t%j0t#j%}aj-&hoHBZI6K#Qp%Bi$4IG&jy; - - - -Shoal.v2 - - - - -

- 应用程序启动的时候的初始工作目录,默认为应用程序所在的文件夹 - - - - - - - - 脚本引擎的类型注册表的文件位置,为空的话会使用默认的文件位置 - - - - - - - - Get shoal shell registry file path.(获取注册表的文件路径) - - - - - - - 命名空间的html帮助页面的生成工具 - - - - - 值返回路径 - - - - - - - Internal wiki system queriable object.(这个对象是可以接受wiki查询操作的) - - - - - - 模糊匹配并返回匹配结果,当返回空字符串的时候,则说明没有被匹配上 - - - - - - - - - - 文件路径 - - - - - 所输入的参数是可能没有顺序的,但是函数的参数定义是有顺序的 - - - - - 一一对应比较 - - - - - 一一对应比较和参数名无关 - - - - 处理逻辑开关标记的 - - - - 函数不会计算拓展函数的调用参数 - - - - 使用这个函数来进行判断 - - - - - - - - - - - - - - - - - - - - - - - - 输入的参数里面是没有任何的特殊的名称的,会使用字典查询,不会像 - - - - - - - - 这个模块只是用来判断函数如何重载的,数据类型的转换有系统自动完成 - - - - - 判断两种类型是否相等 - - 当前的这个重载方法的参数定义的类型 - 从脚本传递进来的函数参数的类型 - - - - - - Is a inherits from b - - 继承类型继承自基本类型,具备有基本类型的所有特性 - 基本类型 - - - - - Is a inherits from b - - 继承类型继承自基本类型,具备有基本类型的所有特性 - 基本类型 - - - - - 命令执行的入口点,使用这个对象进行函数重载的处理 - - - 重载函数的签名冲突的条件: - 1. 具有完全一样的参数列表,即参数名和参数类型完全一致,参数的顺序对签名冲突没有影响 - 2. 除了满足上面的条件,两个函数之间的返回值完全一样的时候,即可认为两个函数的签名完全一样 - - - - - Shoal脚本命令的函数重载 - - - - - - Shoal API命令的名称 - - - - - - 当前的这个执行入口点是否有重载的命令 - - - - - - - - 共享方法 - - - 如果不知道该怎么处理这个参数,请使用Nothing - - - - - 共享方法和实例方法 - - - 如果不知道该怎么处理这个参数,请使用Nothing - - - - - 向当前的执行入口点添加一个重载函数,当当前的执行入口点之中具备有两个完全相同的函数签名的入口点的时候,新的入口点会替换掉旧的入口点 - - - - - - - 获取用于支持函授重载所需要的数字签名信息 - - - - - - - - 当前的这个执行入口点之中的重载的函数的反射入口点的数目 - - - - - - - - 用于表示一个已经被签名的函数 - - - - - - 参数列表按照从小到大排序之后计算MD5哈希值作为参数列表的数字签名 - - - - - - 返回值的数字签名 - - - - - - - - 当参数有多个的时候,出了第一个之外,其他的参数都是可选的或者类型为逻辑值,则该函数被定义为伪单参数函数 - - - - - - 参数列表按照从小到大排序之后计算MD5哈希值作为参数列表的数字签名 - - - - - - - - 非可选参数的数目 - - - - - - 创建共享方法的签名实例 - - - - - - - 判断两个函数入口点对象是否具有完全一样的数字签名 - - - - - - - - 得到内存之中的实际引用位置 - - - - - - Dim array <= {expression} as type - - - - - var < (typeID) {expression} - - - - - 去掉了外层的括号了的 - - - - - - 左端的将要写入文件的表达式 - - - - - - 解析出来的表达式之中只含有一个词元,并且不是注释,则默认认为是变量查看操作,值默认赋值给系统变量$ - - - - - 在解释器阶段由于缺少信息还无法判断表达式的类型,则这些语句都被设定为动态的类型 - - - - - Throw Exception - - - - - Boolean Expression - - - - - - -1表示不是注释 - - - - - - - Goto语句 - - - - - When后面的逻辑条件表达式 - - - - - - Goto的标签 - - - - - 计算得到脚本值,再由引擎计算值之后赋值给本脚本之中的变量 - - - - - - On Error Resume Next.(脚本程序在遇到错误之后忽略掉错误尝试继续执行下去) - - - - - Imports Namespace1, Namespace2, Namespace3 - - - - - 字符串常量或者内部表达式 - - - - - - 对于空白行,是无法被解析出来的,但是空白行不是语法错误 - - - - - - Include file1, file2, file3, file4, ... - - - - - The file path list of the external script - - - - - - Dynamics install a external module in the runtime. - - - - - The name of the variable. - - - - - - 变量的类型约束 - - - - - - 表达式的类型编号 - - - - - - 本句代码在脚本之中的原始的行数 - - - - - - 语句后面所出现的注释信息 - - - - - - 原始的表达式字符串 - - - - - - 语法错误 - - - - - 空白行 - - - - - 注释行 - - - - - 在解释器阶段由于缺少类型信息无法判断目标类型,所以被设置为动态类型 - - - - - 函数调用 - - - - - 单独执行输出设备的调用 - - - - - > - - - - - < - - - - - << Hybrids scripting; - - - - - >> Setup variable of hybrids scripting; - - - - - Goto跳转语句 - - - - - Goto的跳转的行标 - - - - - On Error Resume Next语句 - - - - - 只是调用方法,函数的返回值直接返回给系统变量$ - 方法返回Nothing - 函数返回函数值 - - - - - 对于类型而言,其不仅仅调用一个方法,而且还将方法的返回值赋值给一个指定的左端变量, - 由于变量之间赋值传递的情况也可能存在,故而这个属性也可能是引用一个内存地址,当找不到方法的时候,就会通过这个参数来查找内存变量 - - - - - - 解析得到的顺序应该和原始的脚本语句是一致的 - - - - - - 只有左端引用表达式不为空,其他的元素都为空 - - - - - - 只有解析出来的词元模型,,没有包含有函数指针的句柄信息,还不能够直接运行 - - - - - Value是指向列表之中的元素的位置下表 - - - - - - - - - 脚本文件的文件路径 - - - - - at Shoal.Testing.Debugger.Main() in G:\Shoal\Shoal.Testing\Debugger.vb:line 21 - - - - - - - 将表达式之中的所有词元进行完全展开 - - - - - 将表达式解析为词元,每一个词元都不含有前导或者后置的空白符号 - 断词元的条件是Stack必须为空 - - - - - - 保留有内部表达式,只展开一级表达式 - - - - - 当前的整行代码是否为注释行 - - - - - - 空白行 - - - - - - 将表达式解析为词元,每一个词元都不含有前导或者后置的空白符号 - 断词元的条件是Stack必须为空 - - 在调用之前请先试用Trim函数进行处理 - - - - 开关参数:只适用于逻辑值参数,有表示True,没有则表示False,开关参数使用-或者--或者\或者/开头 - 例如有如下的函数定义 - Function(a As Object, b as Boolean) - 则调用的时候可以有下面的形式 - Function a $a b T/F/True/False/1/0/yesy/no - 或者开关形式 - Function a $a -b 或者 --b 或者 /b 或者 \b - 当然也可以 - Call $a -> Function True/False/yes/No/1/0/T/F - Call $a -> Function /a 或者 \a 或者 -a 或者 --a - - - - - 参数名出了普通类型的参数名需要填充参数名之外,其他类型的参数名都可以留空 - - - - - 拓展函数的调用参数,即函数定义之中的第一个参数 - - - - - 当函数有两个参数的时候,使用拓展函数的形式调用,则第二个参数会可以看作为伪单参数 - - - - - 函数只有一个参数,则可以忽略参数名直接调用 - - - - - 逻辑值类型的开关参数 - - - - - 函数的参数之间是按照函数的定义顺序引用的 - - - - - - - 普通类型还是特殊类型 - 获得参数名称的一个表达式字符串 - - - - 可能会存在指针引用的情况,这个对象类型的主要实现的功能是设置内存变量 - - - - - 该变量在内存之中的引用地址 - - - - - - 是内部表达式 - - - - - - - - - 1. Name 普通变量引用 - 2. $var 变量地址引用 -> 值是实际的地址 - 3. {expr} 内部表达式引用 -> 值是实际的地址 - 4. [int] 位置引用 - - - - - 会判断是否为有效的指针 - - - - - - - 该表达式之中的操作符 - - - - - <- Assign value to variable; - - - - - -> Extension method calling; - - - - - <= Collection and hash table operations; - - - - - = Self type cast; - - - - - << Hybrids scripting; - - - - - >> Setup variable of hybrids scripting; - - - - - => 函数指针 - - - - - < - - - - - > - - - - - - - - [<- Assign value to variable;] - - - [-> Extension method calling;] - - - [<= Collection and hash table operations;] - - - [= Self type cast;] - - - [<< Hybrids scripting;] - - - [>> Setup variable of hybrids scripting;] - - - - - - 包含有函数句柄以及调用的接口的描述信息 - - - - - 这个是参数引用之中的内部表达式,只有单行的 - - - - - 一个表达式对象之中的某一个单词元素 - - - - - 产生 - - - - - - 获取得到原始的词元数据 - - - - - - 假若是内部表达式的话,则可以使用这个方法来修建掉两边的括号 - - - - - - 语法解析器 - - - - - 从这里开始解析表达式 - - - - - - - - - 只是用于显示的原始脚本行 - 使用这个已经解析好的词元进行对象的生成 - - - - - - - 只是用于显示的原始脚本行 - 使用这个已经解析好的词元进行对象的生成 - - - - - - - 只是用于显示的原始脚本行 - 使用这个已经解析好的词元进行对象的生成 - - - - - 单独的抛出错误的语句 - - - - - - - - var = $args => --ssl - 或者 - $args => /name - - - - - - - - Include file1, file2, file3 - - - - - - - - Goto Label When BooleanExpression - - - - - - - - var < (typeID) {expression} - - - - - - - - 开头的第一个字符必须是$或者& - - 只是用于显示的原始脚本行 - 使用这个已经解析好的词元进行对象的生成 - - - - - - - 只是用于显示的原始脚本行 - 使用这个已经解析好的词元进行对象的生成 - - - - - - 只是用于显示的原始脚本行 - 使用这个已经解析好的词元进行对象的生成 - - - - - - - - - 3: 没有进行拓展方法的调用的 - 5: 进行了拓展方法的调用的 - - - - - - 内部的一些简单的常用命令 - - - - - A strongly-typed resource class, for looking up localized strings, etc. - - - - - Returns the cached ResourceManager instance used by this class. - - - - - Overrides the current thread's CurrentUICulture property for all - resource lookups using this strongly typed resource class. - - - - - Looks up a localized string similar to GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away yo [rest of string was truncated]";. - - - - - Looks up a localized string similar to This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU [rest of string was truncated]";. - - - - - Looks up a localized string similar to <!DOCTYPE html> - -<html lang="en"> - - <head> - - <meta charset="utf-8"> - <title>%Namespace%</title> - - <style>::-moz-selection { - background: #b3d4fc; - text-shadow: none; - } - - ::selection { - background: #b3d4fc; - text-shadow: none; - } - - html { - padding: 30px 10px; - font-size: 16px; - line-height: 1.4; - color: #737373; - background: #f0f0f0; - -webkit-text-size-adjust: 100%; - -ms-text-size-adjust: 100%; - } - - [rest of string was truncated]";. - - - - - 字典之中的Key属性分别为所需要转换的目标类型的简称和输入的第一个参数的类型,目标方法只能够有一个参数 - - - - - - - - 目标函数的第一个参数,本方法会根据这个参数以及参数查找最合适的句柄来处理本参数的输入 - 类型标记信息的简写 - - - - - - 将目标变量在终端进行输出 - - - - - - 参数指的是目标函数所返回的值的类型,驱动程序会自动根据函数的参数的类型来决定函数方法的调用 - - - - - - - - - The brief name of the type information, usage syntax of this input type casting driver in the shoal scripting is: var < (TypeId) $variable - (类型简称,在脚本之中的使用语法为: var < (TypeId) $variable) - - - - - - Target delegate must compatible with delegate Func(Of T, String, Boolean), the first parameter in the delegate is the - data type and the data to write to the file, the second parameter is the file path of the IO operation and the last bool - return value indicated that the io operation success or not. please notices that, for the considerations of the data - type compatible, the collection data type is recommended implement as generic enumeration interface. - (目标接口委托对象必须要符合以下接口类型Func(Of T, String, Boolean),其中第一个将要写文件的数据类型,第二个参数为 - 文件路径,最后一个参数是文件是否写入成功,请注意,对于任意的集合类型推荐使用泛型集合) - - - - - - - - 目标数据类型,脚本引擎会自动根据函数的数据类型自动选择文件系统的写入方式的驱动程序 - - - - - 返回成功导入的IO方法 - - - - - - - - This function will trying to save the data in a properly method from the data type: - Function will trying save the string as a text file; - Basic data type collection will be save as a csv data table; - All of the other data type will be saved based on the registry data; - If the method is not found in the registry for the data type, then function will throw a method missing exception! - (函数会尝试根据文件的类型来选择合适的保存格式: - 字符串类型会保存为文本文件 - 数组会保存为Csv - 其他的复杂类型会尝试根据注册的句柄来执行相应的数据保存操作) - - - - - - - - - Output support module for that data type.(各种数据类型的输出模块) - - - - - - - - Variable Name.(变量名) - - - - - - 字符串服务 - - - - - 常量是区分大小写的 - - - - - - - Memory Management Unit Device.(大小写不敏感的,直接使用即可) - - - - - 内存设备 - - - - - 寄存器 - - - - - 内存之中的地址总是 0 - - - - - - 导入系统初始的默认常量 - - - - - - - 必须为小写的 - - - - - 常量是大小写敏感的,但是变量大小写不敏感 - - 不需要加前导符号 - - - - - - - 请不要删除前面的前导符号 - - - - - - - 内存之中的位置指针,使用 *p 来表示 - - - - - - - - - - 是否为常量 - - - - This type of the class object consist of the shoal shell scripting engine. - - - - - - Script engine.(脚本引擎) - - - - - - - - 执行整个脚本的模块 - - - - - 字符串服务 - - - - - - 执行依据脚本语句 - - - - - 在解释器阶段由于缺少类型信息无法判断目标类型,所以被设置为动态类型 - - - - - 逻辑值默认为False - - - - - - - 函数调用 - - - - - 单独执行输出设备的调用,在终端输出或者打开绘图窗口 - - - - - << Hybrids scripting; - - - - - >> Setup variable of hybrids scripting; - - - - - > 操作符将数据写入文件 - - - - - - - Goto跳转语句 - - - - - 用于引用的程序的定位的,用来处理相对路径以及网络路径 - - - - - 这个属性使用于记录重复的命名空间模块之间的相互比较的 - 路径可以不一样,但是这个必须要一样 - - - - - - 出错的时候会返回空值 - - - - - - 从文件之中解析出来的新的数据更新当前的模块 - - - - - - 一个方法的元数据 - - - - - - 直接导入静态方法 - - - - - - - 命名空间是可以被分隔为多个模块分别开发于不同的程序模块之中的 - - - - - - A brief description text about the function of this namespace.(关于本模块之中的描述性的摘要文本) - - - - - - - - The name value of this namespace module.(本命名空间模块的名称值) - - - - - - - - 包管理器的数据库文件 - - - - - 默认的注册表配置文件,该文件是在与本程序同一个文件夹之下的以程序名开始的XML文件.在该文件之中包含有所有的类型注册信息 - - - - - - Shoal模块管理器 - - - - - 将所得到的模块合并到现有的模块之中 - - - - - - - 大小写不敏感 - - - - - - diff --git a/Shoal.v2/Console/Shoal.vshost.exe.config b/Shoal.v2/Console/Shoal.vshost.exe.config deleted file mode 100644 index 2d2a12d81..000000000 --- a/Shoal.v2/Console/Shoal.vshost.exe.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/Shoal.v2/Console/Shoal.xml b/Shoal.v2/Console/Shoal.xml deleted file mode 100644 index a2801505d..000000000 --- a/Shoal.v2/Console/Shoal.xml +++ /dev/null @@ -1,115 +0,0 @@ - - - - -Shoal - - - - - - This module define the shoal commandlines for the command line interpreter. - - - - - - 以调试模式启动脚本引擎 - - - - 本应用程序作为客户端,与主机程序进行TcpSocket通信来完成调试信息的数据 - - - - - This module provides some common operation in the shoal scripting. - - - - - - 批量执行指定的文件夹之中的所有Shoal脚本 - - - - - - - 更加一般性的复制函数,当目标文件夹之中的文件数目非常的多的时候,可以使用这个函数进行批量的文件复制,只需要把文件名填入列表之中即可,大小写无关 - - 复制失败的文件名列表 - - - - The shoal program main entry. - - - - - - Shoal主程序的欢迎文本 - - - - - - - - 打开Shoal的交互终端 - - - 空字符串表示使用配置文件之中的路径,反之使用本参数所制定的路径做出初始化路径 - - - - - A strongly-typed resource class, for looking up localized strings, etc. - - - - - Returns the cached ResourceManager instance used by this class. - - - - - Overrides the current thread's CurrentUICulture property for all - resource lookups using this strongly typed resource class. - - - - - Looks up a localized string similar to GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away yo [rest of string was truncated]";. - - - - - Looks up a localized string similar to This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU [rest of string was truncated]";. - - - - diff --git a/Shoal.v2/Console/ShoalShell.Designer.cd b/Shoal.v2/Console/ShoalShell.Designer.cd deleted file mode 100644 index 3d387314e..000000000 --- a/Shoal.v2/Console/ShoalShell.Designer.cd +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - AAAAAAAAAAAAAAAAAAEAAAAAAAABAAAAAAAAAAAAAAA= - - - - - - ABAAAAAAIIAAAIAEgCBBAAIAAAAAABAAgAAABAEAAAA= - ConsoleApplication\Program.vb - - - - - - ECAgAAACIQAKAAAQAKAAAAACAAkAAAADAAgAAAUAgAQ= - InternalCommands.vb - - - - - - AAAAAAAAAAAAAAAAAAABEAAAAQAAAAAAAAgIAAAAAIA= - - - - - - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAA= - - - - - - IAAAAAAAoKAAAgAAAAAAAAAAAAAAAQAAASAAAAAAAAA= - ConsoleApplication\CLI.vb - - - - \ No newline at end of file diff --git a/Shoal.v2/Console/ShoalShell.vbproj b/Shoal.v2/Console/ShoalShell.vbproj deleted file mode 100644 index dc3a9094d..000000000 --- a/Shoal.v2/Console/ShoalShell.vbproj +++ /dev/null @@ -1,279 +0,0 @@ - - - - - Debug - AnyCPU - {D71E0D55-DA94-4B18-B204-252D532EE8EC} - Exe - Microsoft.VisualBasic.Shoal.Program - Microsoft.VisualBasic.Shoal - Shoal - 512 - Console - v4.6 - - - - AnyCPU - true - full - true - true - bin\Debug\ - Shoal.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - false - - - x64 - Full - false - true - true - ..\..\..\GCModeller\GCModeller\ - Shoal.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - false - true - true - On - - - On - - - Binary - - - Off - - - On - - - Shoal.ico - - - My Project\app.manifest - - - true - true - true - ..\..\..\GCModeller\bin-Debug\ - Shoal.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - full - x64 - MinimumRecommendedRules.ruleset - - - true - true - ..\..\..\GCModeller\GCModeller-x64\ - false - Shoal.xml - false - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - Full - x64 - On - MinimumRecommendedRules.ruleset - - - true - true - bin\Publish\ - true - Shoal.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - Full - x64 - On - MinimumRecommendedRules.ruleset - - - true - true - bin\x64\Publish\ - Shoal.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - Full - x64 - On - MinimumRecommendedRules.ruleset - true - - - true - true - true - bin\x86\Debug\ - Shoal.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - full - x86 - MinimumRecommendedRules.ruleset - - - true - true - bin\x86\Release\ - true - Shoal.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - Full - x86 - On - MinimumRecommendedRules.ruleset - - - true - true - bin\x86\Publish\ - true - Shoal.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - Full - x86 - On - MinimumRecommendedRules.ruleset - true - - - true - true - bin\docs\ - true - Shoal.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - Full - x64 - On - MinimumRecommendedRules.ruleset - - - true - true - bin\x64\docs\ - Shoal.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - Full - x64 - On - MinimumRecommendedRules.ruleset - true - - - true - true - bin\x86\docs\ - true - Shoal.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - Full - x86 - On - MinimumRecommendedRules.ruleset - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - - - - - - - - {fecce1fd-e1d4-49e3-a668-60bb5e7aed99} - +Microsoft.VisualBasic.Architecture.Framework - - - {a7cb16ff-75c6-4746-8449-86c121d723c4} - ShoalShell_Core.v2 - - - - - \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2.sln b/Shoal.v2/Shoal.v2.sln deleted file mode 100644 index ae84d0c35..000000000 --- a/Shoal.v2/Shoal.v2.sln +++ /dev/null @@ -1,124 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.25123.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ShoalShell_Core.v2", "Shoal.v2\ShoalShell_Core.v2.vbproj", "{A7CB16FF-75C6-4746-8449-86C121D723C4}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ShoalShell", "Console\ShoalShell.vbproj", "{D71E0D55-DA94-4B18-B204-252D532EE8EC}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting", "..\Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting\Microsoft.VisualBasic.Mathematical.Extensions.Shoal_HybridScripting.vbproj", "{85E19618-8A67-47DE-892D-4BB4EAF59AE2}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "HrbridScriptTest", "HrbridScriptTest", "{C7A8A038-E14F-43B9-B79F-01444F8E3766}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Win32API", "Console\Win32API\Win32API.vbproj", "{4B0A5F0A-F9F5-4206-99CC-82781B6E3457}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "EndNoteLite", "..\EndNoteLite\EndNoteLite.vbproj", "{2F80136C-0E1E-429F-A905-EB0927B0A82C}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Microsoft.VisualBasic.Mathematical", "..\..\VisualBasic_AppFramework\Scripting\Math\Math\Microsoft.VisualBasic.Mathematical.vbproj", "{E3367B88-5D0C-495A-8273-331656D4B5AA}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "+Microsoft.VisualBasic.Architecture.Framework", "..\..\VisualBasic_AppFramework\Microsoft.VisualBasic.Architecture.Framework\+Microsoft.VisualBasic.Architecture.Framework.vbproj", "{FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A7CB16FF-75C6-4746-8449-86C121D723C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A7CB16FF-75C6-4746-8449-86C121D723C4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A7CB16FF-75C6-4746-8449-86C121D723C4}.Debug|x64.ActiveCfg = Debug|Any CPU - {A7CB16FF-75C6-4746-8449-86C121D723C4}.Debug|x64.Build.0 = Debug|Any CPU - {A7CB16FF-75C6-4746-8449-86C121D723C4}.Debug|x86.ActiveCfg = Debug|Any CPU - {A7CB16FF-75C6-4746-8449-86C121D723C4}.Debug|x86.Build.0 = Debug|Any CPU - {A7CB16FF-75C6-4746-8449-86C121D723C4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A7CB16FF-75C6-4746-8449-86C121D723C4}.Release|Any CPU.Build.0 = Release|Any CPU - {A7CB16FF-75C6-4746-8449-86C121D723C4}.Release|x64.ActiveCfg = Release|Any CPU - {A7CB16FF-75C6-4746-8449-86C121D723C4}.Release|x64.Build.0 = Release|Any CPU - {A7CB16FF-75C6-4746-8449-86C121D723C4}.Release|x86.ActiveCfg = Release|Any CPU - {A7CB16FF-75C6-4746-8449-86C121D723C4}.Release|x86.Build.0 = Release|Any CPU - {D71E0D55-DA94-4B18-B204-252D532EE8EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D71E0D55-DA94-4B18-B204-252D532EE8EC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D71E0D55-DA94-4B18-B204-252D532EE8EC}.Debug|x64.ActiveCfg = Debug|x64 - {D71E0D55-DA94-4B18-B204-252D532EE8EC}.Debug|x64.Build.0 = Debug|x64 - {D71E0D55-DA94-4B18-B204-252D532EE8EC}.Debug|x86.ActiveCfg = Debug|Any CPU - {D71E0D55-DA94-4B18-B204-252D532EE8EC}.Debug|x86.Build.0 = Debug|Any CPU - {D71E0D55-DA94-4B18-B204-252D532EE8EC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D71E0D55-DA94-4B18-B204-252D532EE8EC}.Release|Any CPU.Build.0 = Release|Any CPU - {D71E0D55-DA94-4B18-B204-252D532EE8EC}.Release|x64.ActiveCfg = Release|x64 - {D71E0D55-DA94-4B18-B204-252D532EE8EC}.Release|x64.Build.0 = Release|x64 - {D71E0D55-DA94-4B18-B204-252D532EE8EC}.Release|x86.ActiveCfg = Release|Any CPU - {D71E0D55-DA94-4B18-B204-252D532EE8EC}.Release|x86.Build.0 = Release|Any CPU - {85E19618-8A67-47DE-892D-4BB4EAF59AE2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {85E19618-8A67-47DE-892D-4BB4EAF59AE2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {85E19618-8A67-47DE-892D-4BB4EAF59AE2}.Debug|x64.ActiveCfg = Debug|x64 - {85E19618-8A67-47DE-892D-4BB4EAF59AE2}.Debug|x64.Build.0 = Debug|x64 - {85E19618-8A67-47DE-892D-4BB4EAF59AE2}.Debug|x86.ActiveCfg = Debug|Any CPU - {85E19618-8A67-47DE-892D-4BB4EAF59AE2}.Debug|x86.Build.0 = Debug|Any CPU - {85E19618-8A67-47DE-892D-4BB4EAF59AE2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {85E19618-8A67-47DE-892D-4BB4EAF59AE2}.Release|Any CPU.Build.0 = Release|Any CPU - {85E19618-8A67-47DE-892D-4BB4EAF59AE2}.Release|x64.ActiveCfg = Release|x64 - {85E19618-8A67-47DE-892D-4BB4EAF59AE2}.Release|x64.Build.0 = Release|x64 - {85E19618-8A67-47DE-892D-4BB4EAF59AE2}.Release|x86.ActiveCfg = Release|Any CPU - {85E19618-8A67-47DE-892D-4BB4EAF59AE2}.Release|x86.Build.0 = Release|Any CPU - {4B0A5F0A-F9F5-4206-99CC-82781B6E3457}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4B0A5F0A-F9F5-4206-99CC-82781B6E3457}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4B0A5F0A-F9F5-4206-99CC-82781B6E3457}.Debug|x64.ActiveCfg = Debug|x64 - {4B0A5F0A-F9F5-4206-99CC-82781B6E3457}.Debug|x64.Build.0 = Debug|x64 - {4B0A5F0A-F9F5-4206-99CC-82781B6E3457}.Debug|x86.ActiveCfg = Debug|Any CPU - {4B0A5F0A-F9F5-4206-99CC-82781B6E3457}.Debug|x86.Build.0 = Debug|Any CPU - {4B0A5F0A-F9F5-4206-99CC-82781B6E3457}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4B0A5F0A-F9F5-4206-99CC-82781B6E3457}.Release|Any CPU.Build.0 = Release|Any CPU - {4B0A5F0A-F9F5-4206-99CC-82781B6E3457}.Release|x64.ActiveCfg = Release|x64 - {4B0A5F0A-F9F5-4206-99CC-82781B6E3457}.Release|x64.Build.0 = Release|x64 - {4B0A5F0A-F9F5-4206-99CC-82781B6E3457}.Release|x86.ActiveCfg = Release|Any CPU - {4B0A5F0A-F9F5-4206-99CC-82781B6E3457}.Release|x86.Build.0 = Release|Any CPU - {2F80136C-0E1E-429F-A905-EB0927B0A82C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2F80136C-0E1E-429F-A905-EB0927B0A82C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2F80136C-0E1E-429F-A905-EB0927B0A82C}.Debug|x64.ActiveCfg = Debug|Any CPU - {2F80136C-0E1E-429F-A905-EB0927B0A82C}.Debug|x64.Build.0 = Debug|Any CPU - {2F80136C-0E1E-429F-A905-EB0927B0A82C}.Debug|x86.ActiveCfg = Debug|Any CPU - {2F80136C-0E1E-429F-A905-EB0927B0A82C}.Debug|x86.Build.0 = Debug|Any CPU - {2F80136C-0E1E-429F-A905-EB0927B0A82C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2F80136C-0E1E-429F-A905-EB0927B0A82C}.Release|Any CPU.Build.0 = Release|Any CPU - {2F80136C-0E1E-429F-A905-EB0927B0A82C}.Release|x64.ActiveCfg = Release|Any CPU - {2F80136C-0E1E-429F-A905-EB0927B0A82C}.Release|x64.Build.0 = Release|Any CPU - {2F80136C-0E1E-429F-A905-EB0927B0A82C}.Release|x86.ActiveCfg = Release|Any CPU - {2F80136C-0E1E-429F-A905-EB0927B0A82C}.Release|x86.Build.0 = Release|Any CPU - {E3367B88-5D0C-495A-8273-331656D4B5AA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E3367B88-5D0C-495A-8273-331656D4B5AA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E3367B88-5D0C-495A-8273-331656D4B5AA}.Debug|x64.ActiveCfg = Debug|x64 - {E3367B88-5D0C-495A-8273-331656D4B5AA}.Debug|x64.Build.0 = Debug|x64 - {E3367B88-5D0C-495A-8273-331656D4B5AA}.Debug|x86.ActiveCfg = Debug|Any CPU - {E3367B88-5D0C-495A-8273-331656D4B5AA}.Debug|x86.Build.0 = Debug|Any CPU - {E3367B88-5D0C-495A-8273-331656D4B5AA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E3367B88-5D0C-495A-8273-331656D4B5AA}.Release|Any CPU.Build.0 = Release|Any CPU - {E3367B88-5D0C-495A-8273-331656D4B5AA}.Release|x64.ActiveCfg = Release|x64 - {E3367B88-5D0C-495A-8273-331656D4B5AA}.Release|x64.Build.0 = Release|x64 - {E3367B88-5D0C-495A-8273-331656D4B5AA}.Release|x86.ActiveCfg = Release|Any CPU - {E3367B88-5D0C-495A-8273-331656D4B5AA}.Release|x86.Build.0 = Release|Any CPU - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Debug|x64.ActiveCfg = Debug|x64 - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Debug|x64.Build.0 = Debug|x64 - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Debug|x86.ActiveCfg = Debug|x86 - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Debug|x86.Build.0 = Debug|x86 - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Release|Any CPU.Build.0 = Release|Any CPU - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Release|x64.ActiveCfg = Release|x64 - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Release|x64.Build.0 = Release|x64 - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Release|x86.ActiveCfg = Release|x86 - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Release|x86.Build.0 = Release|x86 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {85E19618-8A67-47DE-892D-4BB4EAF59AE2} = {C7A8A038-E14F-43B9-B79F-01444F8E3766} - {E3367B88-5D0C-495A-8273-331656D4B5AA} = {C7A8A038-E14F-43B9-B79F-01444F8E3766} - EndGlobalSection -EndGlobal diff --git a/Shoal.v2/Shoal.v2/App.config b/Shoal.v2/Shoal.v2/App.config deleted file mode 100644 index 2d2a12d81..000000000 --- a/Shoal.v2/Shoal.v2/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/Shoal.v2/Shoal.v2/Compiler/CodeDOM/Expression.vb b/Shoal.v2/Shoal.v2/Compiler/CodeDOM/Expression.vb deleted file mode 100644 index e3648a73b..000000000 --- a/Shoal.v2/Shoal.v2/Compiler/CodeDOM/Expression.vb +++ /dev/null @@ -1,6 +0,0 @@ -Namespace Compiler.CodeDOM - - Public Class Expression - - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Compiler/CodeDOM/Program.vb b/Shoal.v2/Shoal.v2/Compiler/CodeDOM/Program.vb deleted file mode 100644 index d97ee07cd..000000000 --- a/Shoal.v2/Shoal.v2/Compiler/CodeDOM/Program.vb +++ /dev/null @@ -1,87 +0,0 @@ -Imports System.CodeDom -Imports Microsoft.VisualBasic.CodeDOM_VBC -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Configuration - -Namespace Compiler.CodeDOM - - Public Class Program - - Public ReadOnly Property Assembly As CodeNamespace - Protected ReadOnly Program As CodeMemberMethod = New CodeMemberMethod With { - .Name = ScriptApp - } - - Const ScriptApp As String = "ScriptApp" - Const __innerScriptEngine As String = "__innerScriptEngine" - - Sub New() - Assembly = New CodeNamespace("Shoal.CodeDOM.App") - Dim ProgramClass As New CodeTypeDeclaration(NameOf(Program)) - Dim EntryPoint = CodeDOMExpressions.EntryPoint - Call Assembly.Types.Add(ProgramClass) - Call ProgramClass.Members.Add(Program) - Call ProgramClass.Members.Add(EntryPoint) - Call ProgramClass.Members.Add(CodeDOMExpressions.Field(__innerScriptEngine, GetType(Runtime.ScriptEngine))) - - Program.ReturnType = Type(Of Integer)() - Program.Parameters.Add(Argument(Of CommandLine.CommandLine)("args")) - EntryPoint.Statements.Add(LocalsInit("__args", GetType(String), initExpression:=Reference(GetType(Microsoft.VisualBasic.App), NameOf(App.Command)))) - EntryPoint.Statements.Add([Call](GetType(Extensions), NameOf(__DEBUG_ECHO), Parameters:={LocalVariable("__args")})) - EntryPoint.Statements.Add(LocalsInit("args", GetType(CommandLine.CommandLine), initExpression:=[Call](GetType(CommandLine.CommandLine), NameOf(CommandLine.TryParse), {LocalVariable("__args")}))) - EntryPoint.Statements.Add(LocalsInit(ScriptApp, NameOf(Program), [New](NameOf(Program), {}))) - EntryPoint.Statements.Add(ValueAssign(Reference(LocalVariable(ScriptApp), __innerScriptEngine), [New](GetType(Runtime.ScriptEngine), {[Call](GetType(Config), NameOf(Config.LoadDefault), {})}))) - EntryPoint.Statements.Add(LocalsInit("rtvl", GetType(Integer), [Call](LocalVariable(ScriptApp), ScriptApp, {LocalVariable("args")}))) - EntryPoint.Statements.Add([Call](GetType(Extensions), NameOf(Extensions.Pause), {})) - EntryPoint.Statements.Add([Return](LocalVariable("rtvl"))) - End Sub - - Public Sub __localsInit(Expr As Interpreter.LDM.Expressions.VariableDeclaration) - Dim TypeRef = InputHandler.GetType(Expr.Type, True) - Dim Init As System.CodeDom.CodeMethodInvokeExpression = Nothing - - If Expr.Initializer.IsConstant Then - Init = __castType(__getConstant(Expr.Initializer.GetTokenValue), TypeRef) - - ElseIf Expr.Initializer.IsVariable - - - ElseIf Expr.Initializer.IsPrimaryValue - Init = __castType(Value(Expr.Initializer.Expression.PrimaryExpression), TypeRef) - - ElseIf Expr.Initializer.IsExpr - - End If - - Call Program.Statements.Add(Comments(Expr.Comments)) - Call Program.Statements.Add(LocalsInit(Expr.Name, TypeRef, Init)) - End Sub - - Private Function __getConstant(Name As String) As System.CodeDom.CodeMethodInvokeExpression - Return [Call](FieldRef(__innerScriptEngine), NameOf(Runtime.ScriptEngine.GetValue), Parameters:={Value(Name)}) - End Function - - ''' - ''' 与公共框架里面的方法所不同的是,这个类型的转换方法会实现Shoal脚本语言之中的更加动态的类型转换 - ''' - ''' - ''' - ''' - Private Function __castType(value As CodeExpression, typeRef As System.Type) As CodeMethodInvokeExpression - Return [Call](GetType(InputHandler), NameOf(Scripting.CTypeDynamic), Parameters:={value, CodeDOMExpressions.[GetType](typeRef)}) - End Function - - ''' - ''' 请注意,由于函数的返回值是类型,所以这里的数据类型转换总是转换至整形数的 - ''' - ''' - Public Sub __return(Expr As Interpreter.LDM.Expressions.Keywords.Return) - If Expr.ValueExpression.IsConstant Then '从内置的脚本引擎之中取常数值 - Call Program.Statements.Add([Return](__castType(__getConstant(Expr.ValueExpression.GetTokenValue), GetType(Integer)))) - ElseIf Expr.ValueExpression.IsVariable - Call Program.Statements.Add([Return](__castType(LocalVariable(Expr.ValueExpression.GetTrimExpr), GetType(Integer)))) - ElseIf Expr.ValueExpression.IsPrimaryValue - Call Program.Statements.Add([Return](__castType(Value(Expr.ValueExpression.Expression.PrimaryExpression), GetType(Integer)))) - End If - End Sub - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Compiler/CodeDOM/Tokens.vb b/Shoal.v2/Shoal.v2/Compiler/CodeDOM/Tokens.vb deleted file mode 100644 index 4a2bc394e..000000000 --- a/Shoal.v2/Shoal.v2/Compiler/CodeDOM/Tokens.vb +++ /dev/null @@ -1,6 +0,0 @@ -Namespace Compiler.CodeDOM - - Public Class Tokens - - End Class -End Namespace diff --git a/Shoal.v2/Shoal.v2/Compiler/VBC.vb b/Shoal.v2/Shoal.v2/Compiler/VBC.vb deleted file mode 100644 index 9a89d52da..000000000 --- a/Shoal.v2/Shoal.v2/Compiler/VBC.vb +++ /dev/null @@ -1,53 +0,0 @@ -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.LDM -Imports Microsoft.VisualBasic.CodeDOM_VBC - -Namespace Compiler - - Public Class VBC - - Dim SPMgr As SPM.ShoalPackageMgr - - Public ReadOnly Property DefaultAppIcon As String = App.LocalDataTemp & "/Shoal.ico" - - Sub New(SPMgrDb As SPM.PackageModuleDb) - SPMgr = New SPM.ShoalPackageMgr(SPMgrDb) - Call My.Resources.Shoal.FlushStream(DefaultAppIcon) - End Sub - - Public Function Compile(scriptPath As String, Output As String) As String - Dim LDM As SyntaxModel = SyntaxModel.LoadFile(scriptPath) - - Dim assm As New CodeDOM.Program - Call __compile(assm, LDM) - - Dim CodePreview As String = assm.Assembly.GenerateCode - Call CodePreview.__DEBUG_ECHO - Dim refList As String() = Parallel.GetReferences(GetType(VBC)) - - Dim Exe = CodeDOMExtension.Compile( - assm.Assembly, - Options:=CodeDOMExtension.ExecutableProfile, - Reference:=refList, - DotNETReferenceAssembliesDir:=Parallel.ParallelLoading.RunTimeDirectory) - Call FileIO.FileSystem.ReadAllBytes(Exe.Location).FlushStream(Output) - Return CodePreview - End Function - - Private Sub __compile(ByRef assm As CodeDOM.Program, Script As Interpreter.LDM.SyntaxModel) - For Each Expr In Script.Expressions - Select Case Expr.ExprTypeID - Case Interpreter.LDM.Expressions.ExpressionTypes.CollectionOpr - Case Interpreter.LDM.Expressions.ExpressionTypes.Comments - Case Interpreter.LDM.Expressions.ExpressionTypes.Die - Case Interpreter.LDM.Expressions.ExpressionTypes.GoTo - Case Interpreter.LDM.Expressions.ExpressionTypes.FunctionCalls - Case Interpreter.LDM.Expressions.ExpressionTypes.LineLable - Case Interpreter.LDM.Expressions.ExpressionTypes.Return - Call assm.__return(Expr.As(Of Interpreter.LDM.Expressions.Keywords.Return)) - Case Interpreter.LDM.Expressions.ExpressionTypes.VariableDeclaration - Call assm.__localsInit(Expr.As(Of Interpreter.LDM.Expressions.VariableDeclaration)) - End Select - Next - End Sub - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Configuration/Config.vb b/Shoal.v2/Shoal.v2/Configuration/Config.vb deleted file mode 100644 index 4d4ee7f1f..000000000 --- a/Shoal.v2/Shoal.v2/Configuration/Config.vb +++ /dev/null @@ -1,162 +0,0 @@ -Imports System.Xml.Serialization -Imports Microsoft.VisualBasic.ComponentModel -Imports Microsoft.VisualBasic.ComponentModel.Settings -Imports Microsoft.VisualBasic.Scripting.ShoalShell.SPM - -Namespace Configuration - - ''' - ''' 脚本引擎的配置文件 - ''' - ''' - - Public Class Config : Inherits ITextFile - Implements IProfile - -#Region "Configuration storage property region" - - ''' - ''' 应用程序启动的时候的初始工作目录,默认为应用程序所在的文件夹 - ''' - ''' - ''' - ''' - Public Property InitDir As String - ''' - ''' 脚本引擎的类型注册表的文件位置,为空的话会使用默认的文件位置 - ''' - ''' - ''' - ''' - Public Property SPMRegistry As String - Get - Return _RegistryFileLocation - End Get - Set(value As String) - value = VisualBasic.FileIO.FileSystem.GetFileInfo(value).FullName - _RegistryFileLocation = value - End Set - End Property - - Public Property LastDirAsInit As String = "True" - Public Property PreLoadModules As String - Public Property ManualPreferIndexPages As String = "TRUE" - Public Property SaveHistory As String = "TRUE" - Public Property InitHeapSize As String = 1024 - Public Property ScriptExt As String = "*.shl;*.txt" - Public Property ConsoleTitleAutoDisplay As String = "true" - - Dim _RegistryFileLocation As String - -#End Region - - Public Function EnableConsoleTitle() As Boolean - Return ConsoleTitleAutoDisplay.getBoolean - End Function - - Public Function GetExtensionList() As String() - Dim list = Strings.Split(ScriptExt, ";"c) - If list.IsNullOrEmpty Then - ScriptExt = "*.shl" - Return {ScriptExt} - Else - Return list - End If - End Function - - Public Function GetInitHeapSize() As Integer - Dim value As Integer = CInt(Val(InitHeapSize)) - If value <= 0 Then - InitHeapSize = 1024 - value = 1024 - End If - - Return value - End Function - - Public Function PreferIndexingManual() As Boolean - Return ManualPreferIndexPages.getBoolean - End Function - - Public Function PreLoadedModules() As String() - If String.IsNullOrEmpty(Me.PreLoadModules) Then - Return New String() {} - Else - Return PreLoadModules.Split(";"c) - End If - End Function - - Public Function LastDir_AsInit() As Boolean - Return LastDirAsInit.getBoolean - End Function - - Public Function InitDirectory() As String - If String.IsNullOrEmpty(InitDir) Then - Return My.Application.Info.DirectoryPath - End If - - If VisualBasic.FileIO.FileSystem.DirectoryExists(Me.InitDir) Then - Return VisualBasic.FileIO.FileSystem.GetDirectoryInfo(Me.InitDir).FullName - End If - Try - Call VisualBasic.FileIO.FileSystem.CreateDirectory(Me.InitDir) - Catch ex As Exception - Call $"[DEBUG] The specific work directory ""{InitDir}"" is unable to located, using the application directory ""{App.HOME}"" insteaded.".__DEBUG_ECHO - InitDir = App.HOME - Return App.HOME - End Try - - Return VisualBasic.FileIO.FileSystem.GetDirectoryInfo(Me.InitDir).FullName - End Function - - ''' - ''' Get shoal shell registry file path.(获取注册表的文件路径) - ''' - ''' - ''' - Public Function GetRegistryFile() As String - If String.IsNullOrEmpty(SPMRegistry) Then - Return PackageModuleDb.DefaultFile - Else - Return VisualBasic.FileIO.FileSystem.GetFileInfo(Me.SPMRegistry).FullName - End If - End Function - - ''' - ''' The default file location of the shoal configuration data. - ''' - ''' - Public Shared ReadOnly Property DefaultFile As String - Get - Return $"{App.LocalData}/.Settings/{FileIO.FileSystem.GetFileInfo(App.ExecutablePath).Name}.conf" - End Get - End Property - - Public Shared ReadOnly Property [Default] As Settings(Of Config) - Get - Return Settings(Of Config).LoadFile(XmlFile:=Config.DefaultFile) - End Get - End Property - - ''' - ''' Load the configuration file from the default file location: . - ''' - ''' - Public Shared Function LoadDefault() As Config - Return [Default].SettingsData - End Function - - Public Overrides Function Save(Optional FilePath As String = "", Optional Encoding As System.Text.Encoding = Nothing) As Boolean - If LastDir_AsInit() Then - Me.InitDir = VisualBasic.FileIO.FileSystem.GetDirectoryInfo(My.Computer.FileSystem.CurrentDirectory).FullName - End If - - FilePath = Me.getPath(FilePath) - Return Me.GetXml.SaveTo(FilePath, Encoding) - End Function - - Protected Overrides Function __getDefaultPath() As String - Return FilePath - End Function - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Configuration/Configuration.vb b/Shoal.v2/Shoal.v2/Configuration/Configuration.vb deleted file mode 100644 index fd3e55de1..000000000 --- a/Shoal.v2/Shoal.v2/Configuration/Configuration.vb +++ /dev/null @@ -1,32 +0,0 @@ -Imports Microsoft.VisualBasic.ComponentModel.Settings - -Namespace Configuration - - ''' - ''' 配置数据的设置引擎 - ''' - Public Class Configuration : Inherits ConfigEngine - - Sub New(ScriptEngine As Runtime.ScriptEngine) - Call MyBase.New(ScriptEngine.Config) - End Sub - - Public Overrides Function ExistsNode(Name As String) As Boolean - Dim b = MyBase.ExistsNode(Name) - Call Console.WriteLine(If(b, "YES", "NO_EXISTS")) - Return b - End Function - - Public Overrides Function GetSettings(Name As String) As String - Dim str As String = MyBase.GetSettings(Name) - Call Console.WriteLine(str) - Return str - End Function - - Public Overloads Function Prints(data As IEnumerable(Of ProfileItem)) As String - Dim str As String = MyBase.Prints(data) - Call Console.WriteLine(str) - Return str - End Function - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Debugger.vb b/Shoal.v2/Shoal.v2/Debugger.vb deleted file mode 100644 index c195f451d..000000000 --- a/Shoal.v2/Shoal.v2/Debugger.vb +++ /dev/null @@ -1,213 +0,0 @@ -#Disable Warning - -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Configuration - -Module Debugger - - 'Interface aa - ' Property b - - 'End Interface - - 'Interface b : Inherits aa - ' Property c - 'End Interface - - Sub Main() - - Call Interpreter.LDM.SyntaxModel.LoadFile("S:\TSSs\mmx.txt") - - Dim ddddftt = HTML.TypeLinks.PageName(GetType(KeyValuePair(Of String, String))) - - Dim mslScript As String = "dim nn <= { -a, -b, -c, -d, -e, -""a b c d f h"" -} -*T <= { -imports test -return rand -}" - - Dim scrr = Interpreter.Interpreter.MSLParser(mslScript) - - Dim lines As String() = Strings.Split(mslScript, vbCrLf) - Dim parser As New Interpreter.Parser.TextTokenliser.MSLTokens - Dim pppp As Integer - - Call parser.Parsing(lines(pppp.MoveNext)) - - Do While Not parser.FinishYet - - Call parser.Parsing(lines(pppp.MoveNext)) - - Loop - - - - Dim sssDb = SPM.PackageModuleDb.Load(SPM.PackageModuleDb.DefaultFile) - Dim vbc = New Compiler.VBC(sssDb) - Call vbc.Compile("I:\Shoal\Shoal.v2\Console\bin\Debug\TestScript\HelloWorld.txt", "./test.exe") - - - ' Dim ghghgh = Interpreter.SyntaxParser.Parsing("dim ff <= {$g, ""gh $g +$gh\$g""}") - - Dim tt = InputHandler.GetType("int32") - - Dim ssss As String = "" - Dim nnnn = CTypeDynamic(ssss, GetType(Boolean)) - - Dim aa = New Object() {} - Dim bb = New String() {"444"} - - aa = bb - - Dim aaa = New List(Of Object) - Dim bbb = New List(Of String) - - ' aaa = bbb '除了泛型的集合,其他的搜可以转换到基本类型 - - Dim cc As IEnumerable(Of Object) - Dim dd As IEnumerable(Of String) - - cc = dd - - - Dim a = GetType(Object) - Dim b = GetType(Object) - - Console.WriteLine(Interpreter.Linker.APIHandler.Alignment.TypeEquals.TypeEquals(a, b)) - - 'a = GetType(aa) - 'b = GetType(Debugger.b) - - 'Console.WriteLine(Interpreter.Linker.APIHandler.Alignment.TypeEquals.TypeEquals(a, b)) - - - a = GetType(Interpreter.Parser.Tokens.Token) - b = GetType(Interpreter.Parser.Tokens.InternalExpression) - Console.WriteLine(Interpreter.Linker.APIHandler.Alignment.TypeEquals.TypeEquals(a, b)) - - a = GetType(Object()) - b = GetType(String()) - - Console.WriteLine(Interpreter.Linker.APIHandler.Alignment.TypeEquals.TypeEquals(a, b)) - - - a = GetType(Generic.IEnumerable(Of String)) - b = GetType(List(Of String)) - - Console.WriteLine(Interpreter.Linker.APIHandler.Alignment.TypeEquals.TypeEquals(a, b)) - - a = GetType(String()) - b = GetType(List(Of String)) - - Console.WriteLine(Interpreter.Linker.APIHandler.Alignment.TypeEquals.TypeEquals(a, b)) - - - Dim db = Scripting.ShoalShell.SPM.PackageModuleDb.Load(Scripting.ShoalShell.SPM.PackageModuleDb.DefaultFile) - Dim TestLoader = Scripting.ShoalShell.SPM.Nodes.AssemblyParser.LoadAssembly( - "I:\Shoal\Shoal.v2\Shoal.v2\bin\Debug\Microsoft.VisualBasic.Architecture.Framework_v3.0_22.0.76.201__8da45dcd8060cc9a.dll") - - Using spm = New SPM.ShoalPackageMgr(db) - Call spm.MergeNamespace(TestLoader) - Call spm.UpdateDb() - - Dim pTest = New KeyValuePair(Of String, Object)() { - New KeyValuePair(Of String, Object)("dead", False), - New KeyValuePair(Of String, Object)("msg", "yes") - } - Dim score = Interpreter.Linker.APIHandler.Alignment.FunctionCalls.OverloadsAlignment(spm.Item("cowsay").GetEntryPoint("cowsay").OverloadsAPI(0).EntryPoint, pTest) - - Call Console.WriteLine(score) - - End Using - - ' Dim src = Scripting.ShoalShell.Interpreter.SyntaxParser.Parsing("Dim ab <- 123 As Integer") - - Dim ScriptEngine = New ShoalShell.Runtime.ScriptEngine(Config.Default.SettingsData) - Dim value = ScriptEngine.Exec("Dim ab <- 123 As Integer") - - value = ScriptEngine.Exec(" -dddd < (string()) ""I:\Shoal\Shoal.v2\Shoal.v2\bin\Debug\tesssss.dat"" - -Imports cowsay -Dim msg <- ""Hello world!"" as string -Dim varTest = 3333333 - dim array <= {1, 2, 3, 4, 5, 6, 7, 8} as integer -dim matrix <= {$array, $array, $array, $array} - dim matarray <= {$matrix, $matrix, $matrix} - -$array > ./tesssss.dat -dim bytes <= {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250} as byte -$bytes > ./tesbytessss.dat - - dim ddd <= $array [3] - -vartest <- $msg -> cowsay /dead -*4 <- $vartest -> cowsay /dead -$msg > ./testy.txt") - - value = ScriptEngine.Strings.Format("------$msggg----&HOME\$msg------------") - - - value = ScriptEngine.Exec(" -Imports GDI+ -./112649252034fea52ao.jpg -> GrayBitmap -# call $ -> WriteTo ./test.png -call $ -> WriteTo path.save ./test_path2.png") - - - Dim Script As String = -" -$Msgbox -Msgbox -String.IsEmpty arg1 -die ""nothing test"" when {FALSE} - -# 系统保留的命令行函数Command,和VB一样的 -var args <- Command As CommandLine #die ""null exception!"" when {args is nothing} - -a << ""1 + 2"" -b >> ef - -# 关于 => 运算符的使用 -# 当左端的词元为变量的时候表示对字典对象的引用 -# 其他的情况则为函数指针 -# testVar = $args => --ssl -var open <- {$args => /open} As String -var auto-flush = {$args => /auto} As Boolean - -# 测试1. 方法调用 -# ::表示命名空间和函数之间的分隔,当没有导入命名空间的时候需要使用 命名空间::函数 的引用方式来调用函数 - var <- namespace::function arg1, arg2, arg3 #使用逗号的时候变量的排列顺序必须要和函数的定义一致 -var = $var -> namespace::function param1 arg1 param2 arg2 /param3 #直接使用空格来分隔的时候顺序的位置可以不一致,并且可以使用开关来表示Boolean类型的参数值为真 -Call $var -> namespace::function param1 arg1 /param2 #进行方法调用必须要使用Call开头 - -RE: - -Call function param1 arg1 --param2 - -die ""xxxxxx empty"" when {String.IsEmpty arg1} #返回值是Nothing - -On Error Resume Next - -Goto RE -Goto RE When {function $var2} - -Dim variable = {expression} As type #变量variable的类型固定为Type类型,变量的定义使用Dim开始 -Dim variable = {expression} #变量类型为Object类型 -Dim variable = {expression} As object #这一句变量的申明语句和上一个语句的含义相同 - -#For i in => {Delegate(i)} -#Do While => {Delegate(expression)} -#If => {Delegate(expression)} -#ElseIf => {Delegate(expression)} -#Else => {Delegate(expression)}" - - Dim ScriptObject = Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.LDM.SyntaxModel.ScriptParser(Script, "/home/xieguigang/test.sh") - End Sub -End Module diff --git a/Shoal.v2/Shoal.v2/HTML/Cites.vb b/Shoal.v2/Shoal.v2/HTML/Cites.vb deleted file mode 100644 index 4ab27f92e..000000000 --- a/Shoal.v2/Shoal.v2/HTML/Cites.vb +++ /dev/null @@ -1,23 +0,0 @@ -Imports System.Text -Imports Microsoft.VisualBasic.Scripting.MetaData -Imports Microsoft.VisualBasic.Linq.Extensions - -Namespace HTML - - Public Module Cites - - Public Function GetCites(typeDef As Type) As String - Dim cites As Cite() = Cite.GetCiteList(typeDef) - If cites.IsNullOrEmpty Then - Dim ns = GetEntry(typeDef) - If ns Is Nothing Then - Return "" - Else - Return ns.Cites - End If - Else - Return cites.ToArray(Function(c) c.HTML(120)).JoinBy("

") - End If - End Function - End Module -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/HTML/DocRenderer.vb b/Shoal.v2/Shoal.v2/HTML/DocRenderer.vb deleted file mode 100644 index 182f317f5..000000000 --- a/Shoal.v2/Shoal.v2/HTML/DocRenderer.vb +++ /dev/null @@ -1,327 +0,0 @@ -Imports System.Text -Imports Microsoft.VisualBasic.Linq.Extensions -Imports Microsoft.VisualBasic.Scripting.ShoalShell.SPM.Nodes - -Namespace HTML - - ''' - ''' 命名空间的html帮助页面的生成工具 - ''' - Public Module DocRenderer - - Public ReadOnly Property wwwroot As String = $"{App.HOME}/html" - - ''' - ''' 值返回路径 - ''' - ''' - ''' - Public Function RequestHtml([Namespace] As SPM.Nodes.Namespace) As String - Return $"{wwwroot}/{[Namespace].Namespace.NormalizePathString(False)}.html" - End Function - - Public Function RequestHtml(Name As String) As String - Return $"{wwwroot}/{Name.NormalizePathString(False)}.html" - End Function - - Public Sub GenerateHtmlDoc([Namespace] As SPM.Nodes.Namespace) - Dim html As String = HtmlRender([Namespace]) - Call html.SaveTo(RequestHtml([Namespace])) - Call Console.Write(".") - End Sub - - ''' - ''' 已经排过序了的 - ''' - ''' - ''' - Public Function QuickNavigation(nsList As String()) As String - Dim sbr As StringBuilder = New StringBuilder("", 4096) - Dim i As Integer = 0 - Dim d As Integer - - On Error Resume Next - - For Each preChar As Char In INDEX - d = 0 - - Do While __getPrefix(nsList(i + d)) = preChar - d += 1 - If i + d >= nsList.Length - 1 Then - Exit Do - End If - Loop - - i = i + d - - If d = 0 Then - Call sbr.AppendLine($"{preChar} ") - Else - Call sbr.AppendLine($"
{preChar} ") - End If - Next - - Call sbr.AppendLine("") - - Return sbr.ToString - End Function - - Const INDEX As String = "#ABCDEFGHIJKLMNOPQRSTUVWXYZ" - - Private Function __getPrefix(ns As String) As Char - If String.IsNullOrEmpty(ns) Then - Return "#"c - Else - Dim ch As Char = ns.ToUpper.First - Dim asc As Integer = AscW(ch) - - If asc >= AscW("A"c) AndAlso asc <= AscW("Z"c) Then - Return ch - Else - Return "#"c - End If - End If - End Function - - Public Function Indexing(SPMgrDb As SPM.PackageModuleDb) As Boolean - Dim Html As New StringBuilder(My.Resources.index) - Dim doc As New StringBuilder - Dim Namespaces = (From nsValue As SPM.Nodes.Namespace - In SPMgrDb.NamespaceCollection - Select nsValue - Order By nsValue.Namespace Ascending).ToArray - - doc.AppendLine($"

-

  • Type reference manual can be found at here: [^] TypeLinks Library
  • -
  • GCModeller is a collaborative project with many contributors. Goto contributor page for more information: [^] Contributors
  • -

    -

    -


    -

    - -

    Installed Modules

    -

    Currently there are {SPMgrDb.NamespaceCollection.Length} packages({(From ns In SPMgrDb.NamespaceCollection - Select (From api In ns.API Select api.OverloadsNumber).ToArray.Sum).ToArray.Sum} API in totally) have been installed on your ShoalShell system: -



    {QuickNavigation(Namespaces.ToArray(Function(ns) ns.Namespace))}


    - - - - - - ") - For Each ns As SPM.Nodes.Namespace In Namespaces - Call doc.AppendLine($" - - - - ") - Next - - Call doc.AppendLine("
    Package Namespace Description
    [...]{ns.Namespace} {ns.Description}

    ") - Call doc.AppendLine("

    ") - Call doc.AppendLine("

    [↑]
    ") - Call doc.AppendLine("Here is the language environment that was installed in your shoal system:") - - For Each language As HybridEnvir In SPMgrDb.HybridEnvironments - Call doc.AppendLine($"

  • {language.Language}
  • -
    - {If(Not String.IsNullOrEmpty(language.Description), $"{language.Description}
    ", "")} - {language.Path}!{language.TypeId} -

    ") - Next - - Call Html.Replace("%Version%", My.Application.Info.Version.ToString) - Call Html.Replace("%SDK_HELP%", doc.ToString) - Call Html.Replace("%etc%", "") - Call ShoalShell.HTML.TypeLinks.Indexing(SPMgrDb) - Call ShoalShell.HTML.DocRenderer.IndexAuthorsPage(SPMgrDb) - - Return Html.ToString.SaveTo(RequestHtml("index")) - End Function - - Public Function IndexAuthorsPage(SPMgr As SPM.PackageModuleDb) As Boolean - Dim HtmlBuilder As StringBuilder = New StringBuilder(My.Resources.index) - Call HtmlBuilder.Replace("%etc%", "

    < Back To Index

    ") - Call HtmlBuilder.Replace("%Version%", My.Application.Info.Version.ToString) - Call HtmlBuilder.Replace("%SDK_HELP%", __contributors(SPMgr)) - - Return HtmlBuilder.SaveTo(RequestHtml("contributors")) - End Function - - Private Function __contributors(SPMgr As SPM.PackageModuleDb) As String - Dim doc As New StringBuilder( -"GCModeller is a project which is attempting to provide a modern piece of systems biology analysis software for the GNU suite of software. -
    -

    GCModeller has three type of user interface(CLI commandline, Workbench GUI, ShoalShell Scripting), and the ShoalShell scripting language project is the one of the user interface for biologist applied GCModeller in their researches. -As a most important part in the GCModeller, the current ShoalShell is the result of a collaborative effort with contributions from all over the world. -
    - -

    Authors of ShoalShell

    -

    As the project leader of GCModeller, master xie developed the entired ShoalShell runtime core library and the most part of the GCModeller ShoalShell library packages, he is begins written GCModeller since mid-2013 and start writing ShoalShell from a idea of develop a much commandline like debugging tools for the GCModeller virtual cell system since 2014 August.

    - -Here is the currently developer members on developing GCModeller:

    -

  • Master xie (xie.guigang@gcmodeller.org or just contact him via Xanthomonas Wikipedia Public Library Program: xie.guigang@xanthomonas.wiki)
  • -
  • and his research assistant Miss asuka (amethyst.asuka@gcmodeller.org)
  • -
  • Mr Huahao Jiang (jhh1725@gcmodeller.org)

  • - -

    Contributors to GCModeller Library

    -

    -Here are the peoples who is contributes to the algorithm or source code of GCModeller: -

    -
    ") - Call doc.AppendLine("") - Call doc.AppendLine(" - - ") - Dim getAuthors = (From authorMod - In (From obj In SPMgr.NamespaceCollection Select (From [mod] In obj.PartialModules Select [mod].Publisher, [mod]).ToArray).ToArray.MatrixToList - Select authorMod, author = InputHandler.ToString(authorMod.Publisher).ToLower.Trim - Group authorMod By author Into Group).ToArray - - For Each author In getAuthors - Dim modList As String = String.Join(", ", (From [mod] In author.Group - Let typeRef As System.Type = [mod].mod.Assembly.GetType - Where Not typeRef Is Nothing '可能文件被删掉了或者命名空间被修改了,找不到类型的定义入口数据 - Let [namespace] = typeRef.NamespaceEntry.Namespace - Select $"{[namespace]}").ToArray) - Dim authorName As String = author.author - If String.IsNullOrEmpty(authorName) Then - authorName = "Thanks to these anonymous developers" - Else - authorName = author.Group.First.mod.Publisher - End If - - Call doc.AppendLine($" ") - Next - - Call doc.AppendLine("
    Author/Contributors Modules
    {authorName} {modList}
    ") - Call doc.AppendLine("

    -

    -

    Special thanks

    -

    Many thanks to my teacher and doctor niu(niuxiangna@gmail.com), -professor Jiang(weijiang@gxu.edu.cn) and -professor He(yqhe@gxu.edu.cn) from SKLCUSA Laboratory in Guangxi University, -for giving good advices on my research and encouraging me devoted myself into the GCModeller project and bringing out this fantastic language project to you. -

    ") - Call doc.AppendLine($"

    License

    -

    -

    {My.Resources.license}
    -

    ") - Call doc.AppendLine("




    Project Links

    -

    GCModeller was benefits from two special project on the RNA-seq high-performance analysis, these two project which are: -
    - - - - -
    Bioinformatics ProjectHOME
  • Microsoft .NET Bio
  • https://github.com/dotnetbio/bio
  • BOW(Bioinformatics on Windows)
  • http://bow.codeplex.com/
    - -

    Project Folked Branches

    -

    Shoal Shell not just working in systems biology area but also works in financial economics area: -Another Shoal commercial extension project ""MiMaster (pre-alpha state)"" was applied on the financial online trading system from MiPaiMai.com, power this very first online instant auction platform. -


    - - - - -
    Shoal ProjectHOMEScienceLicense
  • GCModeller
  • http://GCModeller.orgSystems Biology/BioinformaticsGPL3 Open Source
  • MiMaster
  • http://mipaimai.com/Financial Online Trading SystemCommercial Licensed($32k/Product System)
    -

    - -

    ") - - Return doc.ToString - End Function - - Public Function HtmlRender([Namespace] As SPM.Nodes.Namespace) As String - Dim htmlTemplate As StringBuilder = New StringBuilder(My.Resources.sdk_doc) - Dim htmlDoc As New StringBuilder() - Dim Navigation As New StringBuilder - - Navigation.AppendLine("") - - For Each API As Interpreter.Linker.APIHandler.APIEntryPoint In [Namespace].API - Call __documents(htmlDoc, API) - Call Navigation.AppendLine($" - ") - Call Navigation.AppendLine($"") - Call Navigation.AppendLine("") - Next - - Navigation.AppendLine("
    - {API.Name} { String.Join("
    ", (From overloadsAPI In API Select overloadsAPI.EntryPoint.Info).ToArray)}
    ") - - Dim Relates = __getRelatedNamespaces([Namespace]) - - Call htmlTemplate.Replace("%Related%", String.Join(vbCrLf, (From ns As String In Relates Select $"
  • {ns}
  • ").ToArray)) - Call htmlTemplate.Replace("%Contents%", Navigation.ToString) - Call htmlTemplate.Replace("%SDK_HELP%", htmlDoc.ToString) - Call htmlTemplate.Replace("%Namespace%", [Namespace].Namespace) - Call htmlTemplate.Replace("%Url%", [Namespace].Url) - Call htmlTemplate.Replace("%Publisher%", [Namespace].Publisher) - Call htmlTemplate.Replace("%Description%", [Namespace].Description) - Call htmlTemplate.Replace("%Cites%", String.Join("

    ", If([Namespace].Cites Is Nothing, New String() {}, [Namespace].Cites))) - - Return htmlTemplate.ToString - End Function - - Private Function __getRelatedNamespaces([Namespace] As SPM.Nodes.Namespace) As String() - Dim LQuery = (From pm In [Namespace].PartialModules.AsParallel Let assm = pm.Assembly.LoadAssembly Let types = assm.GetTypes Select types).ToArray.MatrixToList - Dim GetNames = (From type In LQuery.AsParallel - Let Name = type.NamespaceEntry - Where Not Name Is Nothing AndAlso Not String.IsNullOrEmpty(Name.Namespace) AndAlso Not Name.AutoExtract - Select nsTag = Name.Namespace.ToLower, Name - Group By nsTag Into Group).ToArray - Return (From obj In GetNames Select str = obj.Group.ToArray()(Scan0).Name.Namespace Order By str Ascending).ToArray - End Function - - Private Sub __documents(ByRef htmlDoc As StringBuilder, API As Interpreter.Linker.APIHandler.APIEntryPoint) - - If API.IsOverloaded Then - Call htmlDoc.AppendLine($"{API.Name}
    ") - Call htmlDoc.AppendLine($"+ {API.OverloadsNumber} Overloads

    ") - - For Each cmdEntryPoint In API.OverloadsAPI - Call htmlDoc.AppendLine(cmdEntryPoint.EntryPointFullName(True)) - Call __documents(htmlDoc, cmdEntryPoint) - Next - - Else - Call __documents(htmlDoc, API.OverloadsAPI(Scan0)) - End If - End Sub - - Private Sub __documents(ByRef htmlDoc As StringBuilder, API As CommandLine.Reflection.EntryPoints.APIEntryPoint) - Dim doc As String = CommandLine.Reflection.ExportAPIAttribute.GenerateHtmlDoc(API, NameOf(API), __functionDetails(API)) - Call htmlDoc.AppendLine($"

  • - {doc}") - Call htmlDoc.AppendLine("

    ") - End Sub - - Private Function __functionDetails(API As CommandLine.Reflection.EntryPoints.APIEntryPoint) As String - Dim parameters = API.EntryPoint.GetParameters - Dim doc As New StringBuilder(1024) - - Call doc.AppendLine("
    ") - Call doc.AppendLine($"API Prototype: {API.EntryPoint.DeclaringType.FullName}::{API.EntryPoint.Name}") - Call doc.AppendLine("
    Function Returns: " & MetaData.FunctionReturns.GetDescription(API.EntryPoint)) - - If Not parameters.IsNullOrEmpty Then - Call doc.AppendLine($"

    Parameters:
    -{ String.Join("", (From parm In parameters Let aliass = Scripting.MetaData.Parameter.GetParameterNameAlias(parm, True) - Select $" - - - - - - - ").ToArray) } -
    {If(aliass.ParameterInfo.IsOptional, "[Optional]", "")}{aliass.Alias}{aliass.ParameterInfo.ParameterType.FullName}{aliass.Description}{If(aliass.ParameterInfo.IsOptional, $" = {InputHandler.ToString(aliass.ParameterInfo.DefaultValue)}", "")}

    ") - End If - - Call doc.AppendLine($"

    Returns: {API.EntryPoint.ReturnType.FullName}

    ") - - Return doc.ToString - End Function - End Module -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/HTML/IWikiHandle.vb b/Shoal.v2/Shoal.v2/HTML/IWikiHandle.vb deleted file mode 100644 index 36b611086..000000000 --- a/Shoal.v2/Shoal.v2/HTML/IWikiHandle.vb +++ /dev/null @@ -1,92 +0,0 @@ -Imports System.Text - -Namespace HTML - - ''' - ''' Internal wiki system queriable object.(这个对象是可以接受wiki查询操作的) - ''' - ''' - Public Interface IWikiHandle - - Function GenerateDescription() As String - ''' - ''' 模糊匹配并返回匹配结果,当返回空字符串的时候,则说明没有被匹配上 - ''' - ''' - ''' - ''' - Function Match(keyword As String) As String - End Interface - - Public Class Wiki : Inherits Runtime.SCOM.RuntimeComponent - - Sub New(ScriptEngine As Runtime.ScriptEngine) - Call MyBase.New(ScriptEngine) - End Sub - - ''' - ''' - ''' - ''' 所需要搜索帮助信息的对象的名称 - ''' - Public Function WikiSearchView(obj As String) As String() - Dim Result = HandleWikiSearch(obj) - Return (From element In Result Select element.GenerateDescription).ToArray - End Function - - Public Function HandleWikiSearch(obj As String) As IWikiHandle() - - End Function - - ''' - ''' 不带任何参数的wiki命令,显示概览信息 - ''' - ''' - Public Function WikiHelp() As String - Return __listAllImportsAPI() - End Function - - ''' - ''' 打印出所有导入的API的信息 - ''' - ''' - Private Function __listAllImportsAPI() As String - Dim sBuilder As StringBuilder = New StringBuilder(1024) - Dim ImportsCommands = ScriptEngine.Interpreter.EPMDevice.ImportedAPI - Dim CommandNameMaxLength As Integer = (From strKey As String In ImportsCommands.Keys Select Len(strKey)).ToArray.Max - - Call sBuilder.AppendLine() - Call sBuilder.AppendLine("System Basically Command & Currently Imported Commands" & vbCrLf) - Call sBuilder.AppendLine(vbCrLf & String.Format(" {0} Command(s)", ImportsCommands.Count)) - Call sBuilder.AppendLine() - Call sBuilder.AppendLine(String.Format(" MethodEntry{0} Return Type", New String(" "c, CommandNameMaxLength))) - Call sBuilder.AppendLine(String.Format("+---{0}+----------------------------------------------------", New String("-"c, 1.5 * CommandNameMaxLength - 3))) - - For Each MethodEntryPoint In ImportsCommands - Call sBuilder.AppendLine(String.Format(" {0}{1} {2} {3}", MethodEntryPoint.Key, New String(" "c, 1.5 * CommandNameMaxLength - Len(MethodEntryPoint.Key)), - MethodEntryPoint.Value.First.EntryPoint.EntryPoint.ReturnType.FullName, - If(MethodEntryPoint.Value.IsOverloaded, String.Format("(+ {0} overloads)", MethodEntryPoint.Value.OverloadsNumber), ""))) - Next - - Dim TempShell = ScriptEngine.Interpreter.EPMDevice.AnonymousDelegate.TempDelegate - - If Not TempShell.IsNullOrEmpty Then - - Call sBuilder.AppendLine() - Call sBuilder.AppendLine(String.Format(" {0} Temp Shell Command(s) available in current work directory" & vbCrLf, TempShell.Count)) - Call sBuilder.AppendLine("-Name---------------------------File----------------------") - - CommandNameMaxLength = (From strKey As String In TempShell.Keys Select Len(strKey)).ToArray.Max - - For Each ShellEntry In TempShell - Call sBuilder.AppendLine(String.Format(" {0} {1} {2}", ShellEntry.Key, New String(" "c, CommandNameMaxLength - Len(ShellEntry.Key)), ShellEntry.Value.FilePath)) - Next - End If - - Call Console.WriteLine(sBuilder.ToString) - - Return sBuilder.ToString - End Function - - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/HTML/TypeLinks.vb b/Shoal.v2/Shoal.v2/HTML/TypeLinks.vb deleted file mode 100644 index ac5b617f0..000000000 --- a/Shoal.v2/Shoal.v2/HTML/TypeLinks.vb +++ /dev/null @@ -1,137 +0,0 @@ -Imports System.Text - -Namespace HTML - - Public Module TypeLinks - - Public Function PageName(Type As Type) As String - Dim arrayType As Type - - Try - arrayType = Type.Collection2GenericIEnumerable(False) - Catch ex As Exception - Call Type.FullName.__DEBUG_ECHO - Throw - End Try - - If Type.Equals(arrayType) Then - Dim Name As String - - If String.Equals(Type.Name, GetType(Generic.KeyValuePair(Of ,)).Name) Then - Dim Generics = Type.GetGenericArguments - Name = $"System.Generic.`2+{Generics(Scan0).Name}, {Generics(1).Name}" - Else - Name = Type.FullName '不是集合类型 - End If - - If Len(Name) > 100 Then - Name = SecurityString.MD5Hash.GetMd5Hash(Name.ToLower) - End If - - Return Name - Else - Return $"{NameOf(Collections.IEnumerable)}+{PageName(arrayType.GetGenericArguments(Scan0))}" - End If - End Function - - Public Function NamespaceRequestHtml(Type As Type) As String - Return $"./{NameOf(TypeLinks)}/{PageName(Type)}.html" - End Function - - Private Function __innerReference(Type As Type) As String - Return $"./{PageName(Type)}.html" - End Function - - Public Function Indexing(SPMDb As SPM.PackageModuleDb) As Boolean - Dim TypeGroups = GetSource(SPMDb) - Dim __getPages = (From data In TypeGroups - Select tdef = TypeLinks.__createPage(data) - Order By tdef.FullName Ascending).ToArray - - Dim HTMLBuilder As New StringBuilder(My.Resources.index) - Dim doc As String = String.Join(vbCrLf, (From type In __getPages Select $"
  • {type.FullName}
  • ").ToArray) - - Call HTMLBuilder.Replace("%Version%", My.Application.Info.Version.ToString) - Call HTMLBuilder.Replace("%SDK_HELP%", doc) - Call HTMLBuilder.Replace("%etc%", "

    < Back To Index

    ") - Call HTMLBuilder.ToString.SaveTo($"{HTML.DocRenderer.wwwroot}/{NameOf(TypeLinks)}/index.html") - - Return Not __getPages.IsNullOrEmpty - End Function - - Public Function GetSource(SPMDb As SPM.PackageModuleDb) As KeyValuePair(Of SPM.Nodes.Namespace, KeyValuePair(Of Interpreter.Linker.APIHandler.APIEntryPoint, Interpreter.Linker.APIHandler.SignedFuncEntryPoint))()() - Dim AllAPIs = (From obj As SPM.Nodes.Namespace - In SPMDb.NamespaceCollection.AsParallel - Select (From api As Interpreter.Linker.APIHandler.APIEntryPoint - In obj.API - Select ns = obj, - api).ToArray).ToArray.MatrixToList - Dim AllFunctions = (From obj In AllAPIs.AsParallel Select (From func As Interpreter.Linker.APIHandler.SignedFuncEntryPoint - In obj.api.ToArray - Select func, - obj.api, - obj.ns).ToArray).ToArray.MatrixToList - Dim TypeGroups = (From obj In AllFunctions.AsParallel - Select obj - Group obj By Name = PageName(obj.func.EntryPoint.EntryPoint.ReturnType) Into Group).ToArray - Dim __getPages = (From type In TypeGroups.AsParallel - Let data = (From obj In type.Group - Select New KeyValuePair(Of SPM.Nodes.Namespace, - KeyValuePair(Of Interpreter.Linker.APIHandler.APIEntryPoint, - Interpreter.Linker.APIHandler.SignedFuncEntryPoint))( - obj.ns, - New KeyValuePair(Of Interpreter.Linker.APIHandler.APIEntryPoint, - Interpreter.Linker.APIHandler.SignedFuncEntryPoint)(obj.api, obj.func))).ToArray - Select data).ToArray - Return __getPages - End Function - - Private Function __createPage(data As KeyValuePair(Of SPM.Nodes.Namespace, - KeyValuePair(Of Interpreter.Linker.APIHandler.APIEntryPoint, - Interpreter.Linker.APIHandler.SignedFuncEntryPoint))()) As Type - Dim template As String = My.Resources.typeLinks_doc - Dim typeRef As KeyValuePair(Of String, Type) = CreatePage(template, data) - Dim path As String = $"{HTML.DocRenderer.wwwroot}/{NameOf(TypeLinks)}/{PageName(typeRef.Value)}.html" - Call typeRef.Key.SaveTo(path) - - Return typeRef.Value - End Function - - Public Function CreatePage(htmlTemplate As String, - data As KeyValuePair(Of - SPM.Nodes.Namespace, - KeyValuePair(Of Interpreter.Linker.APIHandler.APIEntryPoint, - Interpreter.Linker.APIHandler.SignedFuncEntryPoint))()) As KeyValuePair(Of String, Type) - Dim Type = data.First.Value.Value.EntryPoint.EntryPoint.ReturnType - Dim HtmlBuilder As New StringBuilder(htmlTemplate) - Dim doc As New StringBuilder - - Call doc.AppendLine("") - Call doc.AppendLine(" - - - ") - For Each func In (From obj In data Select obj Order By obj.Key.Namespace Ascending).ToArray - Call doc.AppendLine($" - - - - ") - Next - - Call doc.AppendLine("
    APIEntryPointDescription
    {func.Key.Namespace}::{func.Value.Key.Name}{func.Value.Value.EntryPoint.EntryPoint.ToString}{func.Value.Value.EntryPoint.Info}
    ") - - Call HtmlBuilder.Replace("%Publisher%", String.Join("
    ", (From obj In Type.Assembly.CustomAttributes - Let str = obj.ToString - Where InStr(str, "System.Reflection.Assembly") > 0 - Let final = str.Replace("System.Reflection.Assembly", "").Replace("Attribute(", "(") - Select If(Len(final) > 128, Mid(final, 1, 128) & "...", final)).ToArray)) - Call HtmlBuilder.Replace("%SDK_HELP%", doc.ToString) - Call HtmlBuilder.Replace("%Description%", Type.Description) - Call HtmlBuilder.Replace("%DefineFile%", ProgramPathSearchTool.RelativePath(Type.Assembly.Location)) - Call HtmlBuilder.Replace("%Type%", Type.FullName) - - Return New KeyValuePair(Of String, Type)(HtmlBuilder.ToString, Type) - End Function - End Module -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/InternalExtension.vb b/Shoal.v2/Shoal.v2/InternalExtension.vb deleted file mode 100644 index 217e7f8d6..000000000 --- a/Shoal.v2/Shoal.v2/InternalExtension.vb +++ /dev/null @@ -1,208 +0,0 @@ -Imports System.Drawing -Imports System.Text -Imports Microsoft.VisualBasic.CommandLine.Reflection -Imports Microsoft.VisualBasic.Language.UnixBash -Imports Microsoft.VisualBasic.Scripting.MetaData - -''' -''' 内部的一些简单的常用命令 -''' -''' - -Public Module InternalExtension - - Public ReadOnly Property License As String - Get - Return My.Resources.license - End Get - End Property - - ''' - ''' 脚本的执行入口点的定义 - ''' - ''' 脚本中的内容 - ''' 如果为Nothing,则说明目标脚本的执行不需求参数 - ''' - ''' - Public Delegate Function ScriptSourceHandle(Script As String, parameters As KeyValuePair(Of String, Object)()) As Object - - - Public Function basename(path As String) As String - If FileIO.FileSystem.DirectoryExists(path) Then - Return FileIO.FileSystem.GetDirectoryInfo(path).Name - Else - Return IO.Path.GetFileNameWithoutExtension(path) - End If - End Function - - - Public Function Version() As Version - Call Cowsay(String.Format("The version of Shoal is {0}", My.Application.Info.Version.ToString)) - Return My.Application.Info.Version - End Function - - - Public Function Wiki( Optional keyword As String = "") As String - Dim url As String = If(String.IsNullOrEmpty(keyword), "https://sourceforge.net/p/shoal/wiki/", "https://sourceforge.net/p/shoal/wiki/search/?q=" & keyword.Replace(" ", "%20")) - Call Process.Start(url) - Return url - End Function - - - Public Function GetLicenseInfo() As String - Dim sBuilder As StringBuilder = New StringBuilder(1024) - Call sBuilder.AppendLine(My.Resources.license) - Call sBuilder.AppendLine() - Call sBuilder.AppendLine() - Call sBuilder.AppendLine("Using gpl() command to see the whole GPL3 license.") - - Call Console.WriteLine(sBuilder.ToString) - - Return sBuilder.ToString - End Function - - - Public Function GPL() As String - Call Console.WriteLine(My.Resources.gpl) - Return My.Resources.gpl - End Function - - - Public Function Echo( Message As String) As String - Call Console.WriteLine(Message) - Return Message - End Function - - - Public Function Cowsay(Optional msg As String = "", Optional dead As Boolean = True) As String - If String.IsNullOrEmpty(msg) Then - Return CowsayTricks.RunCowsay("Moo. Hi!", dead) - End If - - Return CowsayTricks.RunCowsay(msg, dead) - End Function - - - Public Function Cat(path As String) As String - Dim s As String = FileIO.FileSystem.ReadAllText(path) - Call Console.WriteLine(s) - Return s - End Function - - - Public Function Clear() As Integer - Call Console.Clear() - Return 0 - End Function - - - Public Function Pwd() As String - Call Console.WriteLine(My.Computer.FileSystem.CurrentDirectory) - Return My.Computer.FileSystem.CurrentDirectory - End Function - - ''' - ''' 当指定了文件拓展名之后,函数只会返回文件名列表,其他的情况会返回文件名列表和文件夹列表 - ''' - ''' - - Public Function List( Optional dir As String = "", Optional ext As String = "") As String() - If String.IsNullOrEmpty(dir) Then - dir = My.Computer.FileSystem.CurrentDirectory - End If - - If String.IsNullOrEmpty(ext) Then - ext = "*.*" - End If - - Dim Dirs = FileIO.FileSystem.GetDirectories(dir, FileIO.SearchOption.SearchTopLevelOnly) - Dim Files = FileIO.FileSystem.GetFiles(dir, FileIO.SearchOption.SearchTopLevelOnly, ext) - Dim DriveInfo = FileIO.FileSystem.GetDriveInfo(dir) - Dim sBuilder As StringBuilder = New StringBuilder(1024) - - Call sBuilder.AppendLine(String.Format(" Volume in drive {0} is {1}", DriveInfo.RootDirectory, DriveInfo.VolumeLabel)) - Call sBuilder.AppendLine(String.Format(" Volume drive Format is {0}" & vbCrLf, DriveInfo.DriveFormat)) - Call sBuilder.AppendLine(String.Format(" Directory of {0}" & vbCrLf, dir)) - If Not Dirs.IsNullOrEmpty Then Call sBuilder.AppendLine(String.Format(" {0} Directories", Dirs.Count)) - If Not Files.IsNullOrEmpty Then Call sBuilder.AppendLine(String.Format(" {0} Files", Files.Count)) - Call sBuilder.AppendLine() - - For Each sDir As String In Dirs - Dim dirInfo = FileIO.FileSystem.GetDirectoryInfo(sDir) - Call sBuilder.AppendLine(String.Format("{0}
    {1}", dirInfo.LastWriteTimeUtc.DateToString, dirInfo.Name)) - Next - Call sBuilder.AppendLine() - For Each File As String In Files - Dim fileInfo = FileIO.FileSystem.GetFileInfo(File) - - If String.Equals(fileInfo.Extension, ".shl") Then - Call sBuilder.AppendLine(String.Format("{0} {1}", fileInfo.LastWriteTimeUtc.DateToString, fileInfo.Name)) - Else - Call sBuilder.AppendLine(String.Format("{0} {1}", fileInfo.LastWriteTimeUtc.DateToString, fileInfo.Name)) - End If - Next - Call Console.WriteLine(sBuilder.ToString) - - If String.Equals(ext, "*.*") Then - '返回所有 - Dim ChunkBuffer = Dirs.ToArray.Join(Files) - Return ChunkBuffer.ToArray - Else - Return Files.ToArray - End If - End Function - - ''' - ''' - ''' - ''' - ''' - [ args]""")> - Public Function ProcessStart(argv As CommandLine.CommandLine) As Process - Dim file As String = FileIO.FileSystem.GetFileInfo(argv("-file")).FullName, arguments As String = argv("-argv") - Dim Process As Process = New Process() - Process.StartInfo = New System.Diagnostics.ProcessStartInfo(file) - If Not String.IsNullOrEmpty(arguments) Then - Process.StartInfo.Arguments = arguments - End If - Call Process.Start() - Return Process - End Function - - ''' - ''' - ''' - ''' - ''' - - Public Function Source(path As String, Optional args As Generic.IEnumerable(Of KeyValuePair(Of String, Object)) = Nothing) As Object - Dim Environment As New Runtime.ScriptEngine() - Dim requiredCwork As Boolean = Not (InStr(path, "http://", CompareMethod.Text) > 0 OrElse InStr(path, "https://", CompareMethod.Text) > 0) ' url 无法切换路径 - Dim currentWork As String = My.Computer.FileSystem.CurrentDirectory - - If Not args.IsNullOrEmpty Then - For Each item In args - Call Environment.MMUDevice.InitLocals(item.Key, item.Value, "string") - Next - End If - - If requiredCwork Then - My.Computer.FileSystem.CurrentDirectory = FileIO.FileSystem.GetParentPath(path) -#If DEBUG Then - Call $"Change current work directory to {My.Computer.FileSystem.CurrentDirectory}".__DEBUG_ECHO -#End If - End If - Call Environment.Source(path) - If requiredCwork Then - My.Computer.FileSystem.CurrentDirectory = currentWork - End If - - Return Environment.MMUDevice.SystemReserved.Value - End Function -End Module diff --git a/Shoal.v2/Shoal.v2/Interpreter/AnonymousDelegate.vb b/Shoal.v2/Shoal.v2/Interpreter/AnonymousDelegate.vb deleted file mode 100644 index fef0b3a6c..000000000 --- a/Shoal.v2/Shoal.v2/Interpreter/AnonymousDelegate.vb +++ /dev/null @@ -1,154 +0,0 @@ - -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.LDM -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.LDM.Expressions - -Namespace Interpreter - - ''' - ''' 匿名函数 - ''' - Public Class AnonymousDelegate : Inherits Runtime.SCOM.RuntimeComponent - Implements IReadOnlyDictionary(Of String, LDM.SyntaxModel) - - Public ReadOnly Delegates As SortedDictionary(Of String, LDM.SyntaxModel) = - New SortedDictionary(Of String, SyntaxModel) - Public ReadOnly Property TempDelegate As SortedDictionary(Of String, LDM.SyntaxModel) = - New SortedDictionary(Of String, SyntaxModel) - - - Sub New(ScriptEngine As Runtime.ScriptEngine) - Call MyBase.New(ScriptEngine) - End Sub - - ''' - ''' 当切换目录之后扫描当前目录之下的所有的临时命令脚本 - ''' - Public Sub CdTemp() - Dim Files As Dictionary(Of String, String) = - FileIO.FileSystem.CurrentDirectory _ - .LoadSourceEntryList(ScriptEngine.Config.GetExtensionList, True) - - Call _TempDelegate.Clear() - - If Files.IsNullOrEmpty Then - Return - End If - - Dim LQuery = (From path In Files.AsParallel - Let script = ___load(path.Value) - Where Not script Is Nothing - Select path.Key.ToLower, - script).ToArray - - For Each script In LQuery - Call _TempDelegate.Add(script.ToLower, script.script) - Next - End Sub - - Const _1MB As Long = 1024 * 1024 - - Private Function ___load(path As String) As LDM.SyntaxModel - Try - If FileIO.FileSystem.GetFileInfo(path).Length > _1MB Then ' 文件太大了,可能不是脚本文件而仅仅是普通的文本类型的数据文件,放弃解析,否则程序会被卡在这里 - Return Nothing - End If - Return LDM.SyntaxModel.LoadFile(path) - Catch ex As Exception - Return Nothing '不是脚本文件,则不必被加入临时命令之中了 - End Try - End Function - - Public Sub [Declare](Name As String, Func As LDM.SyntaxModel) - Name = Name.ToLower - If Delegates.ContainsKey(Name) Then - Call Delegates.Remove(Name) '新的会替换掉旧的 - End If - Call Delegates.Add(Name, Func) - End Sub - - ''' - ''' - ''' - ''' - ''' 这个变量主要是用来指示是否找到了相应的函数入口点 - ''' - Public Function Exec(ExecName As String, Expr As LDM.Expressions.FunctionCalls, ByRef success As Boolean) As Object - Dim Func = Me(ExecName) - success = Not Func Is Nothing - - If Not success Then Return Nothing - - Dim params = ScriptEngine.ExecuteModel.ArgumentsLinker.GetParameters(Expr) - - For Each arg In params - Call ScriptEngine.MMUDevice.Update(arg.Key, arg.Value) - Next - - Dim value As Object = New Runtime.FSMMachine(Me.ScriptEngine, Func).Execute - Return value - End Function - -#Region "Implements IReadOnlyDictionary(Of String, LDM.SyntaxModel)" - - Public ReadOnly Property NumbersOfDelegate As Integer Implements IReadOnlyCollection(Of KeyValuePair(Of String, SyntaxModel)).Count - Get - Return Delegates.Count - End Get - End Property - - ''' - ''' 会在两个字典之中进行查找,由于可能会因为不小心重名的缘故会造成临时脚本被执行,产生无法察觉的BUG,所以在这里临时脚本命令的优先级是最低的 - ''' - ''' - ''' - Default Public ReadOnly Property GetScriptDelegate(key As String) As SyntaxModel Implements IReadOnlyDictionary(Of String, SyntaxModel).Item - Get - If String.IsNullOrEmpty(key) Then - Return Nothing - End If - - key = key.ToLower - If Delegates.ContainsKey(key) Then - Return Delegates(key) - Else - If _TempDelegate.ContainsKey(key) Then - Return _TempDelegate(key) - Else - Return Nothing - End If - End If - End Get - End Property - - Public ReadOnly Property Keys As IEnumerable(Of String) Implements IReadOnlyDictionary(Of String, SyntaxModel).Keys - Get - Return Delegates.Keys - End Get - End Property - - Public ReadOnly Property Values As IEnumerable(Of SyntaxModel) Implements IReadOnlyDictionary(Of String, SyntaxModel).Values - Get - Return Delegates.Values - End Get - End Property - - Public Function ContainsKey(key As String) As Boolean Implements IReadOnlyDictionary(Of String, SyntaxModel).ContainsKey - Return Delegates.ContainsKey(key.ToLower) - End Function - - Public Iterator Function GetEnumerator() As IEnumerator(Of KeyValuePair(Of String, SyntaxModel)) Implements IEnumerable(Of KeyValuePair(Of String, SyntaxModel)).GetEnumerator - For Each __func In Delegates - Yield __func - Next - End Function - - Public Function TryGetValue(key As String, ByRef value As SyntaxModel) As Boolean Implements IReadOnlyDictionary(Of String, SyntaxModel).TryGetValue - Return Delegates.TryGetValue(key.ToLower, value) - End Function - - Private Iterator Function IEnumerable_GetEnumerator() As IEnumerator Implements IEnumerable.GetEnumerator - Yield GetEnumerator() - End Function -#End Region - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Interpreter/Interpreter.vb b/Shoal.v2/Shoal.v2/Interpreter/Interpreter.vb deleted file mode 100644 index 1cde64463..000000000 --- a/Shoal.v2/Shoal.v2/Interpreter/Interpreter.vb +++ /dev/null @@ -1,107 +0,0 @@ -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.LDM -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.LDM.Expressions -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.LDM.Expressions.Keywords -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.Parser.TextTokenliser - -Namespace Interpreter - - ''' - ''' Parsing the script text into a LDM data model for the script executing. - ''' - ''' - ''' 命令行输入的脚本行,一般认为是完整的一行,则直接使用来解析 - ''' 从脚本文件之中输入的脚本文件可能含有Delegate函数或者多行的数组定义,则脚本文件是使用来解析的 - ''' - Public Class Interpreter : Inherits Runtime.SCOM.RuntimeComponent - - Public ReadOnly Property SPMDevice As SPM.ShoalPackageMgr - Public ReadOnly Property EPMDevice As Linker.EntryPoint - - Sub New(ScriptEngine As Runtime.ScriptEngine, SPMDevice As SPM.ShoalPackageMgr) - Call MyBase.New(ScriptEngine) - - Me.SPMDevice = SPMDevice - Me.EPMDevice = New Linker.EntryPoint(ScriptEngine) - End Sub - - ''' - ''' 使用来解析 - ''' - ''' - ''' The parser function supports both local file system url or http network file. - ''' (文件路径) - ''' - ''' - Public Function ParseFile(File As String) As SyntaxModel -#If Not DEBUG Then - Try -#End If - Return __parsingFile(File) -#If Not DEBUG Then - Catch ex As Exception - Call App.LogException(ex, $"{NameOf(Interpreter)}::{NameOf(ParseFile)}") - - Return New LDM.SyntaxModel With { - .Expressions = New PrimaryExpression() {} - } - End Try -#End If - End Function - - ''' - ''' 同时支持网络位置或者本地文件系统的位置 - ''' - ''' - ''' - Private Function __parsingFile(path As String) As SyntaxModel - Dim Script As String = path.GET - Return SyntaxModel.ScriptParser(Script, path) - End Function - - Public Function TryGetAPI(Name As String) As Linker.APIHandler.APIEntryPoint - Return EPMDevice.ImportedAPI(Name) - End Function - - Protected Overrides Sub Dispose(disposing As Boolean) - Call SPMDevice.Dispose() - Call MyBase.Dispose(disposing) - End Sub - - Delegate Function Parser(Script As String) As PrimaryExpression() - - ''' - ''' 处理来自于文件之中的可能具有多行分行的脚本代码 - ''' - ''' - ''' - Public Shared Function MSLParser(Script As String) As PrimaryExpression() - Dim lines As String() = Script.lTokens - Dim Expressions As New List(Of PrimaryExpression) - Dim ExprQueue As New Queue(Of String)(lines) - - Do While Not ExprQueue.IsNullOrEmpty - Expressions += SyntaxParser.MSLParser(ExprQueue) - Expressions.Last.LineNumber = Expressions.Count - Loop - - Return Expressions - End Function - - ''' - ''' 处理来自于终端输入的只有一行的脚本代码 - ''' - ''' - ''' - Public Shared Function InternalExpressionParser(Line As String) As PrimaryExpression - If String.IsNullOrEmpty(Line) Then - Return SyntaxError.BlankCode - Else - - Dim Parser As MSLTokens = New MSLTokens().Parsing(Line) - Dim Expr As PrimaryExpression = - SyntaxParser.Parsing(Line, Parser.Tokens, Parser.Comments) - Return Expr ' 假若需要进行Tokens的类型的判断,则可以在得到表达式之后,通过表达式的类型的计算出Tokens的类型 - End If - End Function - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Interpreter/Linker/API/APIEntryPoint.vb b/Shoal.v2/Shoal.v2/Interpreter/Linker/API/APIEntryPoint.vb deleted file mode 100644 index d21362bd4..000000000 --- a/Shoal.v2/Shoal.v2/Interpreter/Linker/API/APIEntryPoint.vb +++ /dev/null @@ -1,203 +0,0 @@ -Imports Microsoft.VisualBasic.CommandLine.Reflection -Imports Microsoft.VisualBasic.ComponentModel.Collection.Generic -Imports Microsoft.VisualBasic.Scripting.MetaData - -Namespace Interpreter.Linker.APIHandler - - ''' - ''' 命令执行的入口点,使用这个对象进行函数重载的处理 - ''' - ''' - ''' 重载函数的签名冲突的条件: - ''' 1. 具有完全一样的参数列表,即参数名和参数类型完全一致,参数的顺序对签名冲突没有影响 - ''' 2. 除了满足上面的条件,两个函数之间的返回值完全一样的时候,即可认为两个函数的签名完全一样 - ''' - Public Class APIEntryPoint - - Implements IReadOnlyId - Implements IReadOnlyList(Of SignedFuncEntryPoint) - -#Region "Public Property & Fields" - - ''' - ''' Shoal脚本命令的函数重载 - ''' - ''' - Dim _OverloadAPIEntryPoints As List(Of SignedFuncEntryPoint) = New List(Of SignedFuncEntryPoint) - Dim _OverloadSignatureHandles As Dictionary(Of String, OverloadsSignatureHandle) = - New Dictionary(Of String, OverloadsSignatureHandle) - - ''' - ''' Shoal API命令的名称 - ''' - ''' - Public ReadOnly Property Name As String Implements IReadOnlyId.Identity - - ''' - ''' 当前的这个执行入口点是否有重载的命令 - ''' - ''' - ''' - ''' - Public ReadOnly Property IsOverloaded As Boolean - Get - Return _OverloadAPIEntryPoints.Count > 1 - End Get - End Property - - Public ReadOnly Property OverloadsAPI As EntryPoints.APIEntryPoint() - Get - Return (From api In Me._OverloadAPIEntryPoints Select api.EntryPoint).ToArray - End Get - End Property -#End Region - - ''' - ''' 共享方法 - ''' - ''' - ''' 如果不知道该怎么处理这个参数,请使用Nothing - ''' - Sub New(Name As String, InitMethod As System.Reflection.MethodInfo) - Me.Name = Name - - If Not InitMethod Is Nothing Then - Dim [SignatureHandles] = __getTypeSignatureHandles(InitMethod) - Dim EntryInfo As New ExportAPIAttribute(Name) - Dim InitEntry As EntryPoints.APIEntryPoint = - New EntryPoints.APIEntryPoint(Invoke:=InitMethod, attribute:=EntryInfo) - - Call _OverloadAPIEntryPoints.Add(New SignedFuncEntryPoint(InitEntry, [Handles]:=SignatureHandles)) - Call __addSignatureHandles(SignatureHandles) - End If - End Sub - - Sub New(Name As String, InitOverloadsMethod As System.Reflection.MethodInfo()) - Me.Name = Name - - If Not InitOverloadsMethod.IsNullOrEmpty Then - For Each InitMethod In InitOverloadsMethod - Dim [SignatureHandles] = __getTypeSignatureHandles(InitMethod) - Dim EntryInfo As New ExportAPIAttribute(Name) - Dim InitEntry As EntryPoints.APIEntryPoint = New EntryPoints.APIEntryPoint(Invoke:=InitMethod, attribute:=EntryInfo) - - Call _OverloadAPIEntryPoints.Add(New SignedFuncEntryPoint(InitEntry, [Handles]:=SignatureHandles)) - Call __addSignatureHandles(SignatureHandles) - Next - End If - End Sub - - ''' - ''' 共享方法和实例方法 - ''' - ''' - ''' 如果不知道该怎么处理这个参数,请使用Nothing - ''' - Sub New(Name As String, InitEntryPoint As EntryPoints.APIEntryPoint) - Me.Name = Name - - If Not InitEntryPoint Is Nothing Then - Dim [SignatureHandles] = __getTypeSignatureHandles(InitEntryPoint.EntryPoint) - Call _OverloadAPIEntryPoints.Add(New SignedFuncEntryPoint(InitEntryPoint, [Handles]:=SignatureHandles)) - Call __addSignatureHandles(SignatureHandles) - End If - End Sub - - Sub New(Name As String, APIList As EntryPoints.APIEntryPoint()) - Me.Name = Name - - If Not APIList Is Nothing Then - For Each InitEntryPoint In APIList - Dim [SignatureHandles] = __getTypeSignatureHandles(InitEntryPoint.EntryPoint) - Call _OverloadAPIEntryPoints.Add(New SignedFuncEntryPoint(InitEntryPoint, [Handles]:=SignatureHandles)) - Call __addSignatureHandles(SignatureHandles) - Next - End If - End Sub - - ''' - ''' 向当前的执行入口点添加一个重载函数,当当前的执行入口点之中具备有两个完全相同的函数签名的入口点的时候,新的入口点会替换掉旧的入口点 - ''' - ''' - ''' - Public Sub OverloadsAPIEntryPoint(EntryPoint As EntryPoints.APIEntryPoint) - Dim SignatureHandles = __getTypeSignatureHandles(EntryPoint.EntryPoint) - Dim SignatureSignedEntryPoint = New SignedFuncEntryPoint(EntryPoint, SignatureHandles) - Dim LQuery = (From p As SignedFuncEntryPoint - In Me._OverloadAPIEntryPoints - Where p.Equals(SignatureSignedEntryPoint) - Select p).ToArray - - If Not LQuery.IsNullOrEmpty Then - Call _OverloadAPIEntryPoints.Remove(LQuery.First) '当出现了两个具有完全一样的数字签名的函数的时候,新的入口点会替换掉旧的入口点 - End If - - Call _OverloadAPIEntryPoints.Add(SignatureSignedEntryPoint) - Call __addSignatureHandles([Handles]:=SignatureHandles) - End Sub - - Private Sub __addSignatureHandles([Handles] As MetaData.OverloadsSignatureHandle()) - For Each HWND In [Handles] - Dim Name As String = HWND.TypeIDBrief - If _OverloadSignatureHandles.ContainsKey(Name) Then - Call _OverloadSignatureHandles.Remove(Name) - End If - Call _OverloadSignatureHandles.Add(Name, HWND) - Next - End Sub - - ''' - ''' 获取用于支持函授重载所需要的数字签名信息 - ''' - ''' - ''' - ''' - Private Shared Function __getTypeSignatureHandles(EntryInfo As System.Reflection.MethodInfo) As MetaData.OverloadsSignatureHandle() - Dim Assembly = EntryInfo.DeclaringType - Dim Signature As Type = GetType(MetaData.OverloadsSignatureHandle) - Dim [Handles] = (From attr As Object - In Assembly.GetCustomAttributes(attributeType:=Signature, inherit:=True) - Select DirectCast(attr, MetaData.OverloadsSignatureHandle)).ToArray - Return [Handles] - End Function - - Public Overrides Function ToString() As String - If _OverloadAPIEntryPoints.Count = 1 Then - Return $"{Name} --> {_OverloadAPIEntryPoints.First.ToString}" - Else - Return $"{Name} has {_OverloadAPIEntryPoints.Count} overloads..." - End If - End Function - -#Region "Implements IReadOnlyList(Of InternalGetTypeSignatureHandles(InitMethod))" - - Public Iterator Function GetEnumerator() As IEnumerator(Of SignedFuncEntryPoint) Implements IEnumerable(Of SignedFuncEntryPoint).GetEnumerator - For Each Item As SignedFuncEntryPoint In _OverloadAPIEntryPoints - Yield Item - Next - End Function - - ''' - ''' Overloads Entry Point Counts. (当前的这个执行入口点之中的重载的函数的反射入口点的数目) - ''' - ''' - ''' - ''' - Public ReadOnly Property OverloadsNumber As Integer Implements IReadOnlyCollection(Of SignedFuncEntryPoint).Count - Get - Return _OverloadAPIEntryPoints.Count - End Get - End Property - - Default Public ReadOnly Property OverloadsEntryPoint(index As Integer) As SignedFuncEntryPoint Implements IReadOnlyList(Of SignedFuncEntryPoint).Item - Get - Return _OverloadAPIEntryPoints(index) - End Get - End Property - - Private Iterator Function GetEnumerator1() As IEnumerator Implements IEnumerable.GetEnumerator - Yield GetEnumerator() - End Function -#End Region - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Interpreter/Linker/API/APIInvoker.vb b/Shoal.v2/Shoal.v2/Interpreter/Linker/API/APIInvoker.vb deleted file mode 100644 index 27b312c97..000000000 --- a/Shoal.v2/Shoal.v2/Interpreter/Linker/API/APIInvoker.vb +++ /dev/null @@ -1,41 +0,0 @@ -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.Linker.APIHandler.Alignment -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.Linker.APIHandler.Alignment.FunctionCalls -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Exceptions - -Namespace Interpreter.Linker.APIHandler - - Public Module APIInvoker - - ''' - ''' 参数的位置适合函数的定义是一一对应的 - ''' - ''' - ''' - ''' - Public Function TryInvoke(API As APIEntryPoint, args As Object()) As Object - Dim LQuery = (From Method As SignedFuncEntryPoint - In API.AsParallel - Let ref = __tryInvoke(Method.EntryPoint.EntryPoint, args) - Where Not ref Is Nothing - Select Method, ref - Order By ref.Score Descending).ToArray - - If LQuery.IsNullOrEmpty Then - Throw New MethodNotFoundException( - API, - (From obj In args Select New KeyValuePair(Of String, Object)(OrderReference, obj)).ToArray, - Nothing, - Nothing) - End If - - Dim APIEntryPoint = LQuery(Scan0) - Dim value As Object = APIEntryPoint.Method.EntryPoint.DirectInvoke(APIEntryPoint.ref.args) - Return value - End Function - - Private Function __tryInvoke(FuncDef As System.Reflection.MethodInfo, args As Object()) As ParamAlignments - Dim ref As ParamAlignments = FunctionCalls.OrderReferenceAlignment(FuncDef.GetParameters, args) - Return ref - End Function - End Module -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Interpreter/Linker/API/Alignment/Alignments/OneParameter.vb b/Shoal.v2/Shoal.v2/Interpreter/Linker/API/Alignment/Alignments/OneParameter.vb deleted file mode 100644 index 39b3279bd..000000000 --- a/Shoal.v2/Shoal.v2/Interpreter/Linker/API/Alignment/Alignments/OneParameter.vb +++ /dev/null @@ -1,70 +0,0 @@ -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.Parser.Tokens.ParameterName -Imports Microsoft.VisualBasic.Scripting.MetaData.Parameter -Imports System.Reflection - -Namespace Interpreter.Linker.APIHandler.Alignment - - Friend Class OneParameter : Inherits SpecialAlignment(Of System.Reflection.ParameterInfo) - - Sub New(FuncDef As System.Reflection.ParameterInfo, ByRef InputParam As Dictionary(Of String, Object)) - Call MyBase.New(FuncDef, InputParam) - End Sub - - Public Overrides Function OverloadsAlignment() As ParamAlignments - If InputParam.IsNullOrEmpty Then '输入的参数是空的,则判断函数参数是否为可选参数 - - If Not FuncDef.IsOptional Then - Return Nothing - Else - Return New ParamAlignments With { - .Score = 10, - .args = {FuncDef.DefaultValue} - } - End If - - End If - - Dim pName As String = GetAliasNameView(FuncDef).ToLower - - If InputParam.ContainsKey(pName) Then - Return __equals(pName) - End If - - If InputParam.ContainsKey(FunctionCalls.ExtensionMethodCaller) Then '拓展方法参数 - Return __equals(FunctionCalls.ExtensionMethodCaller) - End If - - If InputParam.ContainsKey(FunctionCalls.SingleParameter) Then - Return __equals(FunctionCalls.SingleParameter) - End If - - Return Nothing '都找不到相同的定义,则肯定不可以进行调用 - End Function - - Private Function __equals(Name As String) As ParamAlignments - Dim equalsValue As Integer - Dim valueInput As Object = InputParam(Name) - - If __boolsEquals(FuncDef, valueInput) Then Return New ParamAlignments With {.Score = 100, .args = {True}} - - Dim inputType As Type = valueInput.GetType - - If TypeEquals.TypeEquals(FuncDef.ParameterType, inputType).ShadowCopy(equalsValue) > 0 Then - Return New ParamAlignments With { - .Score = equalsValue, - .args = {valueInput} - } - Else - - If InputHandler.Convertible(inputType, FuncDef.ParameterType) Then - Return New ParamAlignments With { - .Score = 20, - .args = {CTypeDynamic(valueInput, FuncDef.ParameterType)} - } - Else - Return Nothing - End If - End If - End Function - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Interpreter/Linker/API/Alignment/Alignments/SpecialAlignment(Of T).vb b/Shoal.v2/Shoal.v2/Interpreter/Linker/API/Alignment/Alignments/SpecialAlignment(Of T).vb deleted file mode 100644 index c8a139169..000000000 --- a/Shoal.v2/Shoal.v2/Interpreter/Linker/API/Alignment/Alignments/SpecialAlignment(Of T).vb +++ /dev/null @@ -1,18 +0,0 @@ -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.Parser.Tokens.ParameterName -Imports Microsoft.VisualBasic.Scripting.MetaData.Parameter -Imports System.Reflection - -Namespace Interpreter.Linker.APIHandler.Alignment - - Public MustInherit Class SpecialAlignment(Of T) - Protected InputParam As Dictionary(Of String, Object) - Protected FuncDef As T - - Sub New(FuncDef As T, ByRef InputParam As Dictionary(Of String, Object)) - Me.FuncDef = FuncDef - Me.InputParam = InputParam - End Sub - - Public MustOverride Function OverloadsAlignment() As ParamAlignments - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Interpreter/Linker/API/Alignment/Alignments/TwoParameter.vb b/Shoal.v2/Shoal.v2/Interpreter/Linker/API/Alignment/Alignments/TwoParameter.vb deleted file mode 100644 index 84f01a290..000000000 --- a/Shoal.v2/Shoal.v2/Interpreter/Linker/API/Alignment/Alignments/TwoParameter.vb +++ /dev/null @@ -1,66 +0,0 @@ -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.Parser.Tokens.ParameterName -Imports Microsoft.VisualBasic.Scripting.MetaData.Parameter -Imports System.Reflection - -Namespace Interpreter.Linker.APIHandler.Alignment - - Friend Class TwoParameter : Inherits SpecialAlignment(Of ParameterInfo()) - - Sub New(FuncDef As ParameterInfo(), ByRef InputParam As Dictionary(Of String, Object)) - Call MyBase.New(FuncDef, InputParam) - End Sub - - Public Overrides Function OverloadsAlignment() As ParamAlignments - If InputParam.ContainsKey(ExtensionMethodCaller) Then - Return __extends() - Else '普通的, 直接按照顺序进行比较 - Return OrderAlignment(FuncDef, InputParam) - End If - End Function - - Private Function __extends() As ParamAlignments - Dim score As Integer - Dim valueInput As Object = InputParam(ExtensionMethodCaller) - Dim args As New List(Of Object) - Dim paramType As Type = FuncDef(Scan0).ParameterType - - If Not __alignType(paramType, valueInput, score, valueInput) Then - Return Nothing - Else - Call args.Add(valueInput) - End If - - If InputParam.ContainsKey(ExtSingle) Then - - Dim paramDef As ParameterInfo = FuncDef(1) - valueInput = InputParam(ExtSingle) - - If __boolsEquals(paramDef, valueInput) Then - score += 100 - Call args.Add(True) - Else - - If Not __alignType(paramDef.ParameterType, valueInput, score, valueInput) Then - Return Nothing - Else - Call args.Add(valueInput) - End If - End If - - Return New ParamAlignments With {.Score = score, .args = args.ToArray} - Else - - Call InputParam.Remove(ExtensionMethodCaller) - - Dim tmpAlign = New OneParameter(FuncDef(1), InputParam).OverloadsAlignment - - If tmpAlign Is Nothing Then - Return Nothing - End If - - score += tmpAlign.Score - Return New ParamAlignments With {.Score = score, .args = args.Join(tmpAlign.args).ToArray} - End If - End Function - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Interpreter/Linker/API/Alignment/FunctionCalls.vb b/Shoal.v2/Shoal.v2/Interpreter/Linker/API/Alignment/FunctionCalls.vb deleted file mode 100644 index 4c43e0d1f..000000000 --- a/Shoal.v2/Shoal.v2/Interpreter/Linker/API/Alignment/FunctionCalls.vb +++ /dev/null @@ -1,306 +0,0 @@ -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.Parser.Tokens.ParameterName -Imports Microsoft.VisualBasic.Scripting.MetaData.Parameter -Imports System.Reflection - -Namespace Interpreter.Linker.APIHandler.Alignment - - ''' - ''' 所输入的参数是可能没有顺序的,但是函数的参数定义是有顺序的 - ''' - Public Module FunctionCalls - - Public ReadOnly Property ExtensionMethodCaller As String = NameOf(ParameterType.ExtensionMethodCaller) - Public ReadOnly Property OrderReference As String = NameOf(ParameterType.OrderReference) - - ''' - ''' 用户所输入的参数是否是和函数的定义的顺序是一致的 - ''' - ''' - ''' - ''' - Public Function IsOrderReference(Of T)(InputParam As KeyValuePair(Of String, T)()) As Boolean - If InputParam.IsNullOrEmpty OrElse InputParam.Length = 1 Then - Return False - End If - - Return String.Equals(OrderReference, InputParam(1).Key) - End Function - - Friend Function __alignType(paramDef As Type, valueInput As Object, ByRef score As Integer, ByRef outRef As Object) As Boolean - Dim equalsValue As Integer - Dim inputType As Type = valueInput.GetType - - If TypeEquals.TypeEquals(paramDef, inputType).ShadowCopy(equalsValue) > 0 Then - score += equalsValue - outRef = valueInput - Else - If InputHandler.Convertible(inputType, paramDef) Then - score += 20 - outRef = CTypeDynamic(valueInput, paramDef) - Else - Return False - End If - End If - - Return True - End Function - - ''' - ''' - ''' - ''' 函数之中的参数类型的定义 - ''' - ''' - Public Function AlignType(paramDef As Type, valueInput As Object) As Object - Dim out As Object = Nothing - Call __alignType(paramDef, valueInput, 0, out) - Return out - End Function - - ''' - ''' 一一对应比较 - ''' - ''' - ''' - ''' - ''' 一一对应比较和参数名无关 - Public Function OrderReferenceAlignment(FuncDef As ParameterInfo(), InputParam As Object()) As ParamAlignments - Dim score As Integer - Dim args As New List(Of Object) - - For i As Integer = 0 To FuncDef.Length - 1 - If __orderStep(i, FuncDef(i), InputParam, score, args) Then - Return Nothing - End If - Next - - Return New ParamAlignments With {.Score = score, .args = args.ToArray} - End Function - - Private Function __orderStep(i As Integer, paramDef As ParameterInfo, InputParam As Object(), ByRef score As Integer, ByRef args As List(Of Object)) As Boolean - If i <= InputParam.Length - 1 Then - - Dim valueInput As Object = InputParam(i) - - If __boolsEquals(paramDef, valueInput) Then - - score += 100 - Call args.Add(True) - - Else - - If Not __alignType(paramDef.ParameterType, valueInput, score, valueInput) Then - Return False - Else - Call args.Add(valueInput) - End If - End If - - Else '判断函数参数是否为可选类型的 - - If paramDef.IsOptional Then - score += 100 - Call args.Add(paramDef.DefaultValue) - Else - Return False - End If - End If - - Return True - End Function - - ''' - ''' 处理逻辑开关标记的 - ''' - ''' - ''' - ''' 函数不会计算拓展函数的调用参数 - Public Function __boolsEquals(FuncDef As ParameterInfo, inputParam As Object) As Boolean - If Not FuncDef.Equals(Bool) Then Return False - If Not inputParam.GetType.Equals(GetType(String)) Then Return False - - Dim str As String = DirectCast(inputParam, String) - - If CommandLine.IsPossibleLogicFlag(str) Then - str = CommandLine.TrimParamPrefix(str) - - Return String.Equals(FuncDef.Name, '开关还要和参数名相同 - str, - StringComparison.OrdinalIgnoreCase) - Else - Return False - End If - End Function - - ReadOnly Bool As Type = GetType(Boolean) - - ''' - ''' 使用这个函数来进行判断 - ''' - ''' - ''' - ''' - Public Function OverloadsAlignment(FuncDef As MethodInfo, InputParam As KeyValuePair(Of String, Object)()) As ParamAlignments - Dim inputParamType = (From obj In InputParam Select New KeyValuePair(Of String, Type)(obj.Key, obj.Value.GetType)).ToArray - - If IsOrderReference(inputParamType) Then - Return OrderReferenceAlignment(FuncDef.GetParameters, (From obj In InputParam Select obj.Value).ToArray) '需要顺序比较,所以不用并行来破环原有的顺序 - Else - Return OverloadsAlignment(FuncDef, InputParam.ToDictionary(Function(obj) obj.Key, elementSelector:=Function(obj) obj.Value)) - End If - End Function - - ''' - ''' - ''' - ''' - ''' - ''' - Private Function OverloadsAlignment(FuncDef As MethodInfo, InputParam As Dictionary(Of String, Object)) As ParamAlignments - Dim FuncParameters = FuncDef.GetParameters - - If FuncParameters.IsNullOrEmpty Then - Dim score As Integer - - If InputParam.IsNullOrEmpty Then - score = Integer.MaxValue - Else - score = 1 '函数没有任何参数,也可以调用 - End If - - Return New ParamAlignments With {.Score = score, .args = New Object() {}} - End If - - If FuncParameters.Length = 1 Then '函数只有一个参数 - Return New OneParameter(FuncParameters(Scan0), InputParam).OverloadsAlignment - End If - - If FuncParameters.Length = 2 Then - Return New TwoParameter(FuncParameters, InputParam).OverloadsAlignment - End If - - Return MultipleAlignment(FuncParameters, InputParam) - End Function - - ''' - ''' - ''' - ''' - ''' - ''' - Private Function MultipleAlignment(FuncDef As ParameterInfo(), ByRef InputParam As Dictionary(Of String, Object)) As ParamAlignments - Dim score As Integer - Dim offset As Integer = 0 - Dim args As New List(Of Object) - - If InputParam.ContainsKey(ExtensionMethodCaller) Then - Dim valueInput As Object = InputParam(ExtensionMethodCaller) - Dim paramType As Type = FuncDef(Scan0).ParameterType - - If Not __alignType(paramType, valueInput, score, valueInput) Then - Return Nothing - Else - Call args.Add(valueInput) - End If - - Call InputParam.Remove(ExtensionMethodCaller) - End If - - FuncDef = FuncDef.Skip(offset).ToArray - Dim tmpAlign = OrderAlignment(FuncDef, InputParam) '已经没有其他的特殊的类型了直接顺序比较 - - If tmpAlign Is Nothing Then - Return Nothing - End If - - score += tmpAlign.Score - args.AddRange(tmpAlign.args) - - Return New ParamAlignments With {.Score = score, .args = args.ToArray} - End Function - - Private Function __orderSingle(FuncDef As ParameterInfo(), ByRef InputParam As Dictionary(Of String, Object)) As ParamAlignments - Dim value As Object = InputParam.First.Value - Dim paramType As Type = FuncDef(Scan0).ParameterType - Dim score As Integer = 0 - Dim args As New List(Of Object) - - If __alignType(paramType, value, score, value) Then - Call args.Add(value) - Else - Return Nothing - End If - - If Not FuncDef(1).IsOptional Then - Return Nothing - - Else - - For Each param In FuncDef.Skip(1) - score += 10 - Call args.Add(param.DefaultValue) - Next - - Return New ParamAlignments With {.Score = score, .args = args.ToArray} - End If - End Function - - ''' - ''' 输入的参数里面是没有任何的特殊的名称的,会使用字典查询,不会像 - ''' - ''' - ''' - ''' - Public Function OrderAlignment(FuncDef As ParameterInfo(), ByRef InputParam As Dictionary(Of String, Object)) As ParamAlignments - If InputParam.Count = 1 AndAlso - (String.Equals(InputParam.First.Key, SingleParameter) OrElse String.Equals(InputParam.First.Key, ExtSingle)) Then - - Return __orderSingle(FuncDef, InputParam) - End If - - Dim score As Integer = 0 - Dim args As New List(Of Object) - - For Each param In FuncDef - Dim Name As String = GetAliasNameView(param).ToLower - - If Not InputParam.ContainsKey(Name) Then - '在输入的参数里面找不到,可能是函数的这个参数为可选的 - If param.IsOptional Then - score += 10 - Call args.Add(param.DefaultValue) - Continue For - Else - Return Nothing - End If - End If - - Dim valueInput As Object = InputParam(Name) - Dim InputType As Type = valueInput.GetType - - If __boolsEquals(param, valueInput) Then - - score += 100 - Call args.Add(True) - - Else - - If Not __alignType(param.ParameterType, valueInput, score, valueInput) Then - Return Nothing - Else - Call args.Add(valueInput) - End If - - End If - Next - - Return New ParamAlignments With { - .Score = score, - .args = args.ToArray - } - End Function - - Public ReadOnly Property ExtSingle As String = NameOf(ParameterType.EXtensionSingleParameter) - Public ReadOnly Property SingleParameter As String = NameOf(ParameterType.SingleParameter) - End Module -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Interpreter/Linker/API/Alignment/ParamAlignments.vb b/Shoal.v2/Shoal.v2/Interpreter/Linker/API/Alignment/ParamAlignments.vb deleted file mode 100644 index 5f684a30e..000000000 --- a/Shoal.v2/Shoal.v2/Interpreter/Linker/API/Alignment/ParamAlignments.vb +++ /dev/null @@ -1,11 +0,0 @@ -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.Parser.Tokens.ParameterName -Imports Microsoft.VisualBasic.Scripting.MetaData.Parameter - -Namespace Interpreter.Linker.APIHandler.Alignment - - Public Class ParamAlignments - - Public Property Score As Integer - Public Property args As Object() - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Interpreter/Linker/API/Alignment/TypeEquals.vb b/Shoal.v2/Shoal.v2/Interpreter/Linker/API/Alignment/TypeEquals.vb deleted file mode 100644 index f3783d38e..000000000 --- a/Shoal.v2/Shoal.v2/Interpreter/Linker/API/Alignment/TypeEquals.vb +++ /dev/null @@ -1,104 +0,0 @@ -Imports System.Runtime.CompilerServices - -Namespace Interpreter.Linker.APIHandler.Alignment - - ''' - ''' 这个模块只是用来判断函数如何重载的,数据类型的转换有系统自动完成 - ''' - Public Module TypeEquals - - ''' - ''' 判断两种类型是否相等 - ''' - ''' 当前的这个重载方法的参数定义的类型 - ''' 从脚本传递进来的函数参数的类型 - ''' - ''' - Public Function TypeEquals(FuncDef As Type, InputParam As Type) As Integer - If FuncDef.Equals(InputParam) OrElse - String.Equals(FuncDef.FullName, InputParam.FullName) Then ' 为什么这个会不相等,明明都已经是同一个类型了 - Return 10000 - End If - - If FuncDef.Equals(_ObjectType) Then ' Object类型说明那个函数的参数可以接受任何类型 - Return 1000 - End If - - If InputParam.IsInheritsFrom(FuncDef) Then '继承类型具有基本类型的所有特性,函数的参数是基本类型的话,则可以使用 - Return 2000 - End If - - If InputParam.IsInterfaceInheritsFrom(FuncDef) Then - Return 2000 - End If - - If CollectionEquals(FuncDef, InputParam) Then - Return 500 - End If - - Return -10000 '最后实在没辙了,则只能够认为二者不相等 - End Function - - Public Function CollectionEquals(FuncDef As Type, InputParam As Type) As Boolean - Dim BaseCollection = FuncDef.GetInterfaces - Dim InputCollection = InputParam.GetInterfaces - - If Array.IndexOf(BaseCollection, GetType(IEnumerable)) = -1 Then Return False - - Dim baseElements = FuncDef.GenericTypeArguments - - If baseElements.Length = 1 Then - - Dim inputElement = InputParam.GetElementType '是否为数组类型 - If inputElement Is Nothing Then - If InputParam.GenericTypeArguments.IsNullOrEmpty Then - Return False - End If - inputElement = InputParam.GenericTypeArguments.First - End If - - Dim b = TypeEquals(baseElements(Scan0), inputElement) - Return b - - ElseIf baseElements.IsNullOrEmpty Then '假若函数参数是一个枚举的泛型,则可以被使用 - - Dim baseElement = FuncDef.GetElementType - Dim inputElement = InputParam.GetElementType - - If baseElement Is Nothing Then - Return True - ElseIf inputElement Is Nothing Then '基本类型是一个数组但是输入的参数数据不是数组,则肯定不相同 - Return False - Else - - Dim b = TypeEquals(FuncDef:=baseElement, InputParam:=inputElement) - Return b - - End If - - End If - - Return False - End Function - - ''' - ''' Is a inherits from b - ''' - ''' 继承类型继承自基本类型,具备有基本类型的所有特性 - ''' 基本类型 - ''' - Private Function IsInterfaceInheritsFrom(a As Type, b As Type) As Boolean - Dim [Implements] = a.GetInterfaces - - If [Implements].IsNullOrEmpty Then - Return False '不是接口类型,则不可以使用本函数判断 - End If - - Dim IsInherits As Boolean = Array.IndexOf([Implements], b) > -1 - - Return IsInherits - End Function - - Private ReadOnly _ObjectType As Type = GetType(System.Object) - End Module -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Interpreter/Linker/API/Arguments.vb b/Shoal.v2/Shoal.v2/Interpreter/Linker/API/Arguments.vb deleted file mode 100644 index 7683bed2f..000000000 --- a/Shoal.v2/Shoal.v2/Interpreter/Linker/API/Arguments.vb +++ /dev/null @@ -1,54 +0,0 @@ -Imports System.Collections.ObjectModel -Imports System.Text -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.Parser.Tokens -Imports Microsoft.VisualBasic.SecurityString.MD5Hash - -Namespace Interpreter.Linker.APIHandler - - Public Class Arguments : Inherits Runtime.SCOM.RuntimeComponent - - Sub New(ScriptEngine As ShoalShell.Runtime.ScriptEngine) - Call MyBase.New(ScriptEngine) - End Sub - - Public Function GetParameters(LDM As LDM.Expressions.FunctionCalls) As KeyValuePair(Of String, Object)() - Dim args As New List(Of KeyValuePair(Of String, InternalExpression)) - - If Not LDM.ExtensionVariable Is Nothing Then - Dim extValue = New KeyValuePair(Of String, InternalExpression)( - APIHandler.Alignment.FunctionCalls.ExtensionMethodCaller, - LDM.ExtensionVariable) - Call args.Add(extValue) - End If - - If Not LDM.Parameters.IsNullOrEmpty Then - Call args.AddRange((From arg As KeyValuePair(Of ParameterName, InternalExpression) - In LDM.Parameters - Let Name As String = __getName(arg.Key) - Select New KeyValuePair(Of String, InternalExpression)(Name, arg.Value)).ToArray) - End If - - Dim argsValue = (From arg In args Select New KeyValuePair(Of String, Object)(arg.Key, ScriptEngine.ExecuteModel.Exec(arg.Value.Expression))).ToArray - Return argsValue - End Function - - Private Function __getName(ref As Parser.Tokens.ParameterName) As String - Select Case ref.Type - Case ParameterName.ParameterType.ExtensionMethodCaller : Return APIHandler.Alignment.FunctionCalls.ExtensionMethodCaller - Case ParameterName.ParameterType.EXtensionSingleParameter : Return APIHandler.Alignment.FunctionCalls.ExtSingle - Case ParameterName.ParameterType.OrderReference : Return APIHandler.Alignment.OrderReference - Case ParameterName.ParameterType.SingleParameter : Return APIHandler.Alignment.SingleParameter - Case Else - Return __calculateRefName(ref) - End Select - End Function - - Private Function __calculateRefName(ref As Parser.Tokens.ParameterName) As String - If ref.Expression.ExprTypeID = LDM.Expressions.ExpressionTypes.DynamicsExpression Then - Return ref.Expression.PrimaryExpression - Else - Return CStr(ScriptEngine.ExecuteModel.Exec(ref.Expression)) - End If - End Function - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Interpreter/Linker/API/FunctionSignature.vb b/Shoal.v2/Shoal.v2/Interpreter/Linker/API/FunctionSignature.vb deleted file mode 100644 index 4e8020f03..000000000 --- a/Shoal.v2/Shoal.v2/Interpreter/Linker/API/FunctionSignature.vb +++ /dev/null @@ -1,179 +0,0 @@ -Imports System.Collections.ObjectModel -Imports System.Text -Imports Microsoft.VisualBasic.CommandLine.Reflection -Imports Microsoft.VisualBasic.Scripting.MetaData -Imports Microsoft.VisualBasic.SecurityString.MD5Hash - -Namespace Interpreter.Linker.APIHandler - - ''' - ''' 用于表示一个已经被签名的函数 - ''' - ''' - Public Class SignedFuncEntryPoint - - ''' - ''' 返回值的数字签名 - ''' - ''' - ''' - ''' - Public ReadOnly Property TypeSignature As String - - Public ReadOnly Property ParameterCounts As Integer - Get - Return Me.Parameters.Count - End Get - End Property - - Public ReadOnly Property EntryPoint As EntryPoints.APIEntryPoint - - ''' - ''' 当参数有多个的时候,出了第一个之外,其他的参数都是可选的或者类型为逻辑值,则该函数被定义为伪单参数函数 - ''' - ''' - Public ReadOnly Property FakeSingleParameter As Boolean - Get - If Me.Parameters.IsNullOrEmpty Then - Return False '函数没有参数,很明显不是单参数函数 - ElseIf Me.Parameters.Count = 1 Then - Return False '这个是真实的单参数函数,但是我们要的是伪单参数函数 - End If - - Dim Tokens = Me.Parameters.ToArray - For i As Integer = 1 To Tokens.Length - 1 '跳过第一个参数 - Dim Parameter = Tokens(i) - If Not (Parameter.Value.ParameterType.Equals(GetType(Boolean)) OrElse Parameter.Value.ParameterInfo.IsOptional) Then - Return False - End If - Next - - Return True - End Get - End Property - - ''' - ''' 参数列表按照从小到大排序之后计算MD5哈希值作为参数列表的数字签名 - ''' - ''' - ''' - ''' - Public ReadOnly Property ParameterSignature As String - - Public ReadOnly Property Parameters As ReadOnlyDictionary(Of String, ParameterWithAlias) - - ''' - ''' 非可选参数的数目 - ''' - ''' - Dim _numOfNonOptional As Integer - - Sub New(EntryPoint As EntryPoints.APIEntryPoint, [Handles] As OverloadsSignatureHandle()) - Call Me._EntryPoint.InvokeSet(EntryPoint) - Call Me.__handlesTypeSignature([Handles]) - - Dim pInfo As System.Reflection.ParameterInfo() = EntryPoint.EntryPoint.GetParameters '在这里生成变量名的别名 - Dim InternalGetSigned = (From parameter As System.Reflection.ParameterInfo In pInfo - Let pAlias = MetaData.Parameter.GetParameterNameAlias(parameter, False) - Let Name As String = If(pAlias Is Nothing, parameter.Name, pAlias.Alias).ToLower - Select Name, - parameter.ParameterType.FullName, - pAlias, - parameter).ToArray '这里不能够打乱原始顺序!!! - Me.ParameterSignature = String.Join("+", (From sign In InternalGetSigned Let strSignValue As String = sign.ToString Select strSignValue).ToArray) - - If String.IsNullOrEmpty(ParameterSignature) Then - Me.ParameterSignature = "NULL" '函数不需要任何参数 - Else - Me.ParameterSignature = SecurityString.GetMd5Hash(ParameterSignature) - End If - - Me.Parameters = New ReadOnlyDictionary(Of String, ParameterWithAlias)( - InternalGetSigned.ToDictionary(Function(p) p.Name.ToLower, - Function(obj) New ParameterWithAlias(obj.parameter, obj.pAlias))) - Me._numOfNonOptional = (From p As KeyValuePair(Of String, ParameterWithAlias) - In Parameters - Where Not p.Value.ParameterInfo.IsOptional - Select 1).ToArray.Sum - End Sub - - Private Sub __handlesTypeSignature([Handles] As OverloadsSignatureHandle()) - If [Handles].IsNullOrEmpty Then - Me._TypeSignature = EntryPoint.EntryPoint.ReturnType.FullName - End If - - Dim TypeSignature = (From Hwnd As OverloadsSignatureHandle - In [Handles] - Where Hwnd.FullName = EntryPoint.EntryPoint.ReturnType - Select Hwnd).FirstOrDefault - - If TypeSignature Is Nothing Then '没有定义返回值的签名,则直接使用返回值的全名 - Me._TypeSignature = EntryPoint.EntryPoint.ReturnType.FullName - Else - Me._TypeSignature = TypeSignature.TypeIDBrief 'var <- [typeidbrief] function - End If - End Sub - - ''' - ''' 创建共享方法的签名实例 - ''' - ''' - ''' - Public Shared Function CreateObject(EntryPoint As System.Reflection.MethodInfo, [Handles] As OverloadsSignatureHandle()) As SignedFuncEntryPoint - Dim EntryPointInfo As New EntryPoints.APIEntryPoint(New ExportAPIAttribute("VB$InternalAnonymousSharedMethod"), Invoke:=EntryPoint) - Return New SignedFuncEntryPoint(EntryPointInfo, [Handles]) - End Function - - Public Overrides Function ToString() As String - Return String.Format("({0}) {1}", ParameterSignature, EntryPoint.ToString) - End Function - - Public Function GetDescription(DescriptionGeneration As Func(Of System.Reflection.MethodInfo, String, String)) As String - Dim sBuilder As StringBuilder = New StringBuilder(1024) - - Call sBuilder.AppendLine("[" & Me.EntryPoint.EntryPointFullName(False) & "]" & vbCrLf) - Call sBuilder.AppendLine(DescriptionGeneration(Me.EntryPoint.EntryPoint, ParameterSignature)) - - Return sBuilder.ToString - End Function - - Public Function CanDelegateCalling(paras As Object()) As Boolean - - If Parameters.IsNullOrEmpty Then - Return True - ElseIf ParameterCounts > paras.Length Then '可能有可选参数 - Dim p As KeyValuePair(Of String, ParameterWithAlias)() = - Me.Parameters.ToArray.Skip(paras.Length).ToArray - Dim LQuery = (From ParameterInfo In p Where ParameterInfo.Value.ParameterInfo.IsOptional Select ParameterInfo).ToArray - Return LQuery.Length = p.Length - End If - - Dim InternalHashList = Parameters.ToArray - - For i As Integer = 0 To paras.Length - 1 - If Alignment.TypeEquals.TypeEquals(InternalHashList(i).Value.ParameterType, paras(i).GetType) < 0 Then - Return False - End If - Next - - Return True - End Function - - ''' - ''' 判断两个函数入口点对象是否具有完全一样的数字签名 - ''' - ''' - ''' - ''' - Public Overrides Function Equals(obj As Object) As Boolean - If Not TypeOf (obj) Is SignedFuncEntryPoint Then - Return False - End If - - Dim Signature As SignedFuncEntryPoint = DirectCast(obj, SignedFuncEntryPoint) - - Return String.Equals(ParameterSignature, Signature.ParameterSignature) AndAlso - String.Equals(TypeSignature, Signature.TypeSignature, StringComparison.OrdinalIgnoreCase) - End Function - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Interpreter/Linker/API/ParameterWithAlias.vb b/Shoal.v2/Shoal.v2/Interpreter/Linker/API/ParameterWithAlias.vb deleted file mode 100644 index cc5461652..000000000 --- a/Shoal.v2/Shoal.v2/Interpreter/Linker/API/ParameterWithAlias.vb +++ /dev/null @@ -1,31 +0,0 @@ -Imports System.Collections.ObjectModel -Imports System.Text -Imports Microsoft.VisualBasic.CommandLine.Reflection -Imports Microsoft.VisualBasic.Scripting.MetaData -Imports Microsoft.VisualBasic.SecurityString.MD5Hash - -Namespace Interpreter.Linker.APIHandler - - Public Structure ParameterWithAlias - Dim ParameterInfo As System.Reflection.ParameterInfo, [Alias] As Parameter - - Public ReadOnly Property ParameterType As Type - Get - Return ParameterInfo.ParameterType - End Get - End Property - - Sub New(ParameterInfo As System.Reflection.ParameterInfo, [Alias] As Parameter) - Me.ParameterInfo = ParameterInfo - Me.Alias = If([Alias] Is Nothing, New Parameter(ParameterInfo.Name.ToLower), [Alias]) - End Sub - - Public Overrides Function ToString() As String - If String.IsNullOrEmpty([Alias].Description) Then - Return [Alias].Alias - Else - Return [Alias].Alias & ": " & [Alias].Description - End If - End Function - End Structure -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Interpreter/Linker/EntryPoint.vb b/Shoal.v2/Shoal.v2/Interpreter/Linker/EntryPoint.vb deleted file mode 100644 index 13eeafe9e..000000000 --- a/Shoal.v2/Shoal.v2/Interpreter/Linker/EntryPoint.vb +++ /dev/null @@ -1,161 +0,0 @@ -Imports Microsoft.VisualBasic.CommandLine.Reflection -Imports Microsoft.VisualBasic.CommandLine.Reflection.EntryPoints -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.Linker.APIHandler -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.HybridsScripting -Imports Microsoft.VisualBasic.CommandLine.Interpreter -Imports Microsoft.VisualBasic.Linq - -Namespace Interpreter.Linker - - Public Class EntryPoint : Inherits Runtime.SCOM.RuntimeComponent - - Public ReadOnly Property ImportedAPI As SortedDictionary(Of String, APIHandler.APIEntryPoint) = - New SortedDictionary(Of String, APIHandler.APIEntryPoint) - Public ReadOnly Property AnonymousDelegate As AnonymousDelegate - Public ReadOnly Property HybridAdapter As InteropAdapter - - Sub New(ScriptEngine As ShoalShell.Runtime.ScriptEngine) - Call MyBase.New(ScriptEngine) - Call [Imports](GetType(ShoalShell.InternalExtension)) '导入内部的一些简单的常用命令 - AnonymousDelegate = New AnonymousDelegate(ScriptEngine) - HybridAdapter = New InteropAdapter(ScriptEngine) - - For Each preLoad As String In ScriptEngine.Config.PreLoadedModules - Call [Imports](preLoad) - Next - End Sub - - ''' - ''' - ''' - ''' - ''' 主要是为了方便查找函数指针的,因为后面可以直接使用这个变量而不需要再计算一遍了 - ''' - Public Function TryGetEntryPoint(EntryPoint As Parser.Tokens.EntryPoint, - ByRef execName As String, - ByRef execValue As Object) As APIHandler.APIEntryPoint - Dim API = TryGetEntryPoint(TryGetName(EntryPoint, execValue).ShadowCopy(execName)) - Return API - End Function - - Public Function TryGetName(EntryPoint As Parser.Tokens.EntryPoint, ByRef __execValue As Object) As String - Dim value As Object = - If(EntryPoint.Name.Expression.ExprTypeID = LDM.Expressions.ExpressionTypes.DynamicsExpression, - EntryPoint.Name.Expression.PrimaryExpression, - ScriptEngine.ExecuteModel.Exec(EntryPoint.Name.Expression)) - - If value Is Nothing Then - Throw New MissingMethodException(className:=NameOf(EntryPoint), methodName:=EntryPoint.Name.GetTokenValue) - Else - __execValue = value - End If - - Dim Name As String = InputHandler.ToString(value) - Return Name - End Function - - Public Function TryGetEntryPoint(NameRef As String) As APIHandler.APIEntryPoint - If String.IsNullOrEmpty(NameRef) Then - Return Nothing - End If - - If InStr(NameRef, "::") > 0 Then - - Dim p As Integer = InStrRev(NameRef, "::") - Dim [Namespace] = Mid(NameRef, 1, p - 1) - NameRef = Mid(NameRef, p + 2) - - Return __tryGetEntryPoint([Namespace], NameRef) - Else '从已经导入了的函数之中进行查找 - NameRef = NameRef.ToLower - - If ImportedAPI.ContainsKey(NameRef) Then - Return ImportedAPI(NameRef) - Else - Return Nothing - End If - End If - End Function - - Public Function [Imports]([Namespace] As String) As SPM.Nodes.Namespace - Dim nsEntry = ScriptEngine.Interpreter.SPMDevice([Namespace].ToLower) - If nsEntry Is Nothing Then Return Nothing - For Each partialModule In nsEntry.PartialModules - Call [Imports](partialModule.Assembly.GetType) - Next - - Return nsEntry - End Function - - Public Sub [Imports](apiList As APIHandler.APIEntryPoint()) - For Each api As APIHandler.APIEntryPoint In apiList - Call __imports(api) - Next - End Sub - - Private Sub __imports(API As APIHandler.APIEntryPoint) - Dim apiName As String = API.Name.ToLower - - If Not Me.ImportedAPI.ContainsKey(apiName) Then - Call Me.ImportedAPI.Add(apiName, API) - Return - End If - - Dim ImportedAPI As APIHandler.APIEntryPoint = - Me.ImportedAPI(apiName) - - For Each EntryPoint In API.OverloadsAPI - Call ImportedAPI.OverloadsAPIEntryPoint(EntryPoint) - Next - End Sub - - Public Function [Imports]([module] As Type) As Boolean - Dim apiList = SPM.Nodes.AssemblyParser.Imports([module]) - Call [Imports](apiList) - Call ScriptEngine.MMUDevice.MappingImports.Imports([module]) - Call ScriptEngine.ExecuteModel.Imports([module]) - - Return True - End Function - - Private Function __tryGetEntryPoint(nsValue As String, Name As String) As APIHandler.APIEntryPoint - Dim [Namespace] = ScriptEngine.Interpreter.SPMDevice(nsValue.ToLower) - - If [Namespace] Is Nothing Then - Return Nothing - Else - Return [Namespace].GetEntryPoint(Name) - End If - End Function - - ''' - ''' 请使用这个方法导入实例对象之中的定义的命令 - ''' - ''' - ''' - Public Sub ImportsInstance(Of T As Class)(InvokedObject As T) - Dim setValue = New SetValue(Of EntryPoints.APIEntryPoint)().GetSet(NameOf(EntryPoints.APIEntryPoint.InvokeOnObject)) - Dim Commands = (From EntryPoint As EntryPoints.APIEntryPoint - In __allInstanceCommands(InvokedObject.GetType) - Select setValue(EntryPoint, InvokedObject)).ToList '解析出命令并连接目标实例对象与函数的执行入口点 - Dim API = SPM.Nodes.AssemblyParser.APIParser(Commands) - Call [Imports](API) - End Sub - - Protected Function __allInstanceCommands(Type As Type) As List(Of EntryPoints.APIEntryPoint) - Dim InternalChunkList = GetAllCommands(Type) - Dim commandAttribute As System.Type = GetType(ExportAPIAttribute) - Dim commandsSource = (From MethodHandle As System.Reflection.MethodInfo - In Type.GetMethods() - Select Entry = MethodHandle.GetCustomAttributes(commandAttribute, True), MethodInfo = MethodHandle).ToArray - Dim commandsInfo = (From methodInfo In commandsSource - Where Not methodInfo.Entry.IsNullOrEmpty - Let commandInfo = New EntryPoints.APIEntryPoint(TryCast(methodInfo.Entry.First, ExportAPIAttribute), methodInfo.MethodInfo) - Select commandInfo - Order By commandInfo.Name Ascending).ToArray - Call InternalChunkList.AddRange(commandsInfo) - - Return InternalChunkList - End Function - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Interpreter/Linker/Linker.vb b/Shoal.v2/Shoal.v2/Interpreter/Linker/Linker.vb deleted file mode 100644 index 1b897bc6e..000000000 --- a/Shoal.v2/Shoal.v2/Interpreter/Linker/Linker.vb +++ /dev/null @@ -1,60 +0,0 @@ -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.Linker.APIHandler -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.Parser.Tokens - -Namespace Interpreter.Linker - - Public Class Linker : Inherits Runtime.SCOM.RuntimeComponent - - Sub New(ScriptEngine As ShoalShell.Runtime.ScriptEngine) - Call MyBase.New(ScriptEngine) - End Sub - - ''' - ''' 得到内存之中的实际引用位置 - ''' - ''' - Public Function GetAddress(var As LeftAssignedVariable) As Long - Dim Addr As String = var.RefEntry - Dim Ref As Object - - If String.Equals(Addr, "$") Then - Return 0 '系统保留变量总是处在0位置 - End If - - If var.IsPointer Then '$var的值为所需要写入的变量名 - Ref = ScriptEngine.MMUDevice.GetValue(Addr) - Addr = var.GetAddress(Ref) - Return __addressOf(Addr) - End If - - If Addr.First = "*"c Then '内存指针 - Addr = Mid(Addr, 2) - Return CLng(Val(Addr)) - End If - - If Len(var.RefEntry) <= 2 Then Return __addressOf(Addr) - - '表达式的指针引用形式长度至少要大于2 - - If var.RefEntry.First = "{"c AndAlso var.RefEntry.Last = "}"c Then '内部表达式指针引用 - Addr = Mid(var.RefEntry, 2, Len(var.RefEntry) - 2) '得到表达式 - Call ScriptEngine.Exec(Addr) - Ref = ScriptEngine.TopOfStack - Addr = var.GetAddress(Ref) - Return __addressOf(Addr) - Else - Return __addressOf(Addr) - End If - End Function - - Private Function __addressOf(var As String) As Long - Return ScriptEngine.MMUDevice.AddressOf("$" & var, True) - End Function - - Public Function GetValue(var As Parser.Tokens.LeftAssignedVariable) As Object - Dim Addr As String = GetAddress(var) - Dim value As Object = ScriptEngine.MMUDevice.GetValue(Addr) - Return value - End Function - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/Expressions/Collection/CollectionAppends.vb b/Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/Expressions/Collection/CollectionAppends.vb deleted file mode 100644 index 859864327..000000000 --- a/Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/Expressions/Collection/CollectionAppends.vb +++ /dev/null @@ -1,29 +0,0 @@ -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.Parser.Tokens - -Namespace Interpreter.LDM.Expressions - - ''' - ''' 向集合之中添加一个元素 - ''' - ''' [$experiments] <= $exper ' 添加至末尾; - ''' [$experiments[index]] <= $exper ' 给指定元素赋值 - ''' 元素位置可用的位置表达式: ~First, ~Last - ''' 元素位置可用的条件表达式: [Where <Element Bool Expression>] - ''' - Public Class CollectionAppends : Inherits PrimaryExpression - - Public Overrides ReadOnly Property ExprTypeID As ExpressionTypes - Get - Return ExpressionTypes.CollectionElementAssigned - End Get - End Property - - Public Property Collection As DynamicsExpression - Public Property ElementIndex As DynamicsExpression - Public Property Value As LDM.Expressions.PrimaryExpression - - Sub New(Expression As String) - Call MyBase.New(Expression) - End Sub - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/Expressions/Collection/CollectionOpr.vb b/Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/Expressions/Collection/CollectionOpr.vb deleted file mode 100644 index e5c63607d..000000000 --- a/Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/Expressions/Collection/CollectionOpr.vb +++ /dev/null @@ -1,25 +0,0 @@ -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.Parser.Tokens - -Namespace Interpreter.LDM.Expressions - - ''' - ''' Dim array <= {expression} as type - ''' - Public Class CollectionOpr : Inherits PrimaryExpression - - Public Overrides ReadOnly Property ExprTypeID As ExpressionTypes - Get - Return ExpressionTypes.CollectionOpr - End Get - End Property - - Public Property DeclareNew As Boolean - Public Property InitLeft As LeftAssignedVariable - Public Property Array As InternalExpression() - Public Property Type As String - - Sub New(Expression As String) - Call MyBase.New(Expression) - End Sub - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/Expressions/Collection/CollectionRef.vb b/Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/Expressions/Collection/CollectionRef.vb deleted file mode 100644 index 875418480..000000000 --- a/Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/Expressions/Collection/CollectionRef.vb +++ /dev/null @@ -1,8 +0,0 @@ -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.Parser.Tokens - -Namespace Interpreter.LDM.Expressions - - Public Class CollectionRef - - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/Expressions/Comments.vb b/Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/Expressions/Comments.vb deleted file mode 100644 index c56a51d28..000000000 --- a/Shoal.v2/Shoal.v2/Interpreter/Parser/LDM/Expressions/Comments.vb +++ /dev/null @@ -1,51 +0,0 @@ -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.Parser.Tokens - -Namespace Interpreter.LDM.Expressions - - Public Class Comments : Inherits PrimaryExpression - - Public Overrides ReadOnly Property ExprTypeID As ExpressionTypes - Get - Return ExpressionTypes.Comments - End Get - End Property - - Sub New(Expression As String) - Call MyBase.New(Expression) - - Dim Expr As String = Trim(Expression) - Dim Length As Integer = CommentFLAGLen(Expr) + 1 - Me.Comments = Mid(Expr, Length).Trim - End Sub - - ''' - ''' -1表示不是注释 - ''' - ''' - ''' - Private Shared Function CommentFLAGLen(Expression As String) As Integer - If Expression.First = "#"c OrElse Expression.First = "'"c OrElse Expression.First = ";"c Then - Return 1 - End If - - If String.Equals(Expression, "rem", StringComparison.OrdinalIgnoreCase) Then - Return 3 - End If - - If InStr(Expression, "::") = 1 OrElse InStr(Expression, "//") = 1 Then - Return 2 - End If - - If InStr(Expression, " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - ..\Resources\gpl.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252 - - - ..\Resources\license.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252 - - - ..\Resources\sdk_doc.html;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 - - - ..\Resources\Shoal.ico_dat;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ..\Resources\index.html;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252 - - - ..\Resources\typeLinks_doc.html;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252 - - \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/My Project/Settings.Designer.vb b/Shoal.v2/Shoal.v2/My Project/Settings.Designer.vb deleted file mode 100644 index b1c0d7faa..000000000 --- a/Shoal.v2/Shoal.v2/My Project/Settings.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) - -#Region "My.Settings Auto-Save Functionality" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings( sender As Global.System.Object, e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.Microsoft.VisualBasic.Scripting.ShoalShell.My.MySettings - Get - Return Global.Microsoft.VisualBasic.Scripting.ShoalShell.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/Shoal.v2/Shoal.v2/My Project/Settings.settings b/Shoal.v2/Shoal.v2/My Project/Settings.settings deleted file mode 100644 index 85b890b3c..000000000 --- a/Shoal.v2/Shoal.v2/My Project/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/Shoal.v2/Shoal.v2/My Project/Settings1.Designer.vb b/Shoal.v2/Shoal.v2/My Project/Settings1.Designer.vb deleted file mode 100644 index 5f282702b..000000000 --- a/Shoal.v2/Shoal.v2/My Project/Settings1.Designer.vb +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Resources/Shoal.ico_dat b/Shoal.v2/Shoal.v2/Resources/Shoal.ico_dat deleted file mode 100644 index 043d8d9884e6cfb16db09e755b95acb45ddf9c35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 341782 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%0A;!gSy|M&GB@r<2O)OegTx07o-7zc8;J%jDr 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 z

    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 t%j0t#j%}aj-&hoHBZI6K#Qp%Bi$4IG&jy; - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/Shoal.v2/Shoal.v2/Resources/index.html b/Shoal.v2/Shoal.v2/Resources/index.html deleted file mode 100644 index 680fe6b79..000000000 --- a/Shoal.v2/Shoal.v2/Resources/index.html +++ /dev/null @@ -1,199 +0,0 @@ - - - - - - - - GCModeller ShoalShell Document Library - - - - - -

    - -

    ShoalShell Library :-)

    -
    - - - -
    - - %etc% - -

    - - - - - - - - - - - - - - - - - - - - - -
    HOMEGCModeller.org
    Publisherxie.guigang@gcmodeller.org
    Version%Version%
    LicenseGPL3 -
    GCModeller ShoalShell is an open source program which it's distributed under the GPL3 license, you can download the latest source code from SourceForge.net: -
  • SourceForge.net/projects/shoal
  • -

    -
    -
    - -
    -
    -


    - -

    %SDK_HELP%

    - -
    - - \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Resources/license.txt b/Shoal.v2/Shoal.v2/Resources/license.txt deleted file mode 100644 index da76ca0a9..000000000 --- a/Shoal.v2/Shoal.v2/Resources/license.txt +++ /dev/null @@ -1,12 +0,0 @@ -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Resources/sdk_doc.html b/Shoal.v2/Shoal.v2/Resources/sdk_doc.html deleted file mode 100644 index dba3585ee..000000000 --- a/Shoal.v2/Shoal.v2/Resources/sdk_doc.html +++ /dev/null @@ -1,269 +0,0 @@ - - - - - - - - %Namespace% - - - - - -
    - -

    Document for %Namespace% :-)

    -
    - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -

    < Back To Index

    -

    - - - - - - - - - - - - - - - - - -
    Related Namespace %Related%
    - -

    -
    Package%Namespace%
    HOME%Url%
    Publisher%Publisher%
    Description%Description%
    Cited References%Cites%
    -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Summary Contents %Contents%
    -
    -
    - -

    %SDK_HELP%

    - -
    -


    -
    - -

    Copyright (c) GCModeller Virtual Cell System. 2015 All rights reserved.

    -
    - - \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Resources/typeLinks_doc.html b/Shoal.v2/Shoal.v2/Resources/typeLinks_doc.html deleted file mode 100644 index 174951920..000000000 --- a/Shoal.v2/Shoal.v2/Resources/typeLinks_doc.html +++ /dev/null @@ -1,204 +0,0 @@ - - - - - - - - %Type% - - - - - -
    - -

    Document for %Type% :-)

    -
    - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -

    < Back To Index

    -
    Type Name%Type%
    Define From%DefineFile%
    Publisher%Publisher%
    Description%Description%
    -
    -

    -

    -
    Here list the functions which can generate this type of data, which you can reference to the function parameter: -


    - -

    %SDK_HELP%

    - -
    -


    -

    -[↑] -
    - -

    Copyright (c) GCModeller Virtual Cell System. 2015 All rights reserved.

    -
    - \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Runtime/Debugger/Debugger.vb b/Shoal.v2/Shoal.v2/Runtime/Debugger/Debugger.vb deleted file mode 100644 index d85351b4f..000000000 --- a/Shoal.v2/Shoal.v2/Runtime/Debugger/Debugger.vb +++ /dev/null @@ -1,142 +0,0 @@ -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Configuration -Imports Microsoft.VisualBasic.Net -Imports Microsoft.VisualBasic.Net.Protocols -Imports Microsoft.VisualBasic.Parallel -Imports Microsoft.VisualBasic.Terminal.STDIO__ -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.LDM -Imports Microsoft.VisualBasic.Net.Http - -Namespace Runtime.Debugging - - ''' - ''' 这个对象是运行于Shoal内部的,用作为调试的客户端的。当IDE启动的时候,会打开调试服务,接着通过命令行启动Shoal程序,将端口号传递给本对象,二者之间通过Tcp协议进行通信 - ''' - ''' - Public Class Debugger : Inherits ScriptEngine - Implements I_ConsoleDeviceHandle - - ''' - ''' 主动向IDE发送调试消息 - ''' - ''' - Dim __tcpClient As AsynInvoke - ''' - ''' 监听来自于IDE的控制命令 - ''' - ''' - Dim ReadListenerServices As TcpSynchronizationServicesSocket - - Public ReadOnly Property DebuggerExit As Boolean - - ''' - ''' - ''' - ''' - ''' IDE调试监听器的监听端口号 - Sub New(ScriptEngine As ShoalShell.Runtime.ScriptEngine, DebugListenerPort As Integer) - Call MyBase.New(Config.Default.SettingsData) - __tcpClient = New Net.AsynInvoke("127.0.0.1", DebugListenerPort) - Call $"Shoal debugger listeners at 127.0.0.1:{ DebugListenerPort}".__DEBUG_ECHO - Call RunTask(AddressOf __startListen) - Call Threading.Thread.Sleep(100) - Call __sendMessage(ReadListenerServices.LocalPort, DebuggerMessage.MessageTypes.CTRL_DEBUGGER_INIT_INFO) - End Sub - - Private Sub __sendMessage(Message As String, Type As DebuggerMessage.MessageTypes) - Message = New DebuggerMessage() With {.Message = Message, .MessageType = Type}.GetXml - Call RunTask(Sub() Call __tcpClient.SendMessage(Message)) - End Sub - - ''' - ''' - ''' - ''' - ''' IDE调试监听器的监听端口号 - Sub New(Config As Config, DebugListenerPort As Integer) - Call Me.New(New ScriptEngine(Config), DebugListenerPort) - End Sub - - Private Sub __startListen() - ReadListenerServices = New TcpSynchronizationServicesSocket(AddressOf __internalProtocol, GetFirstAvailablePort) - Try -RESTART: ReadListenerServices.Run() - Catch ex As Exception - Call App.LogException(ex, NameOf(Debugger) & "::" & NameOf(__startListen)) - GoTo RESTART - End Try - End Sub - - Dim _InternalScriptDebugger As Runtime.Debugging.ShellScriptDebuggerModel - Dim _RunningScript As Boolean = False - - Protected Sub InternalExecuteScript(Script As SyntaxModel) - _InternalScriptDebugger = New ShellScriptDebuggerModel(Script, ScriptEngine:=Me) - _RunningScript = True - _InternalScriptDebugger.Execute() - _InternalScriptDebugger.Free() - _RunningScript = False - End Sub - - Private Function __internalProtocol(uid As Long, request As RequestStream, remoteDevice As System.Net.IPEndPoint) As RequestStream - Dim strMessage As String = request.GetUTF8String - Dim data As DebuggerMessage = strMessage.CreateObjectFromXml(Of DebuggerMessage)(False) - - If data Is Nothing Then - Return NetResponse.RFC_TOKEN_INVALID - End If - - Dim currentProcess = Process.GetCurrentProcess - - If data.Pid <> currentProcess.Id Then - - End If - - If data.MessageType = DebuggerMessage.MessageTypes.OUTPUT_MESSAGE Then - data.Message.__DEBUG_ECHO - Return NetResponse.RFC_OK - End If - - If data.MessageType = DebuggerMessage.MessageTypes.CTRL_PUSH_SCRIPT Then - Call "Execute pushed script....".__DEBUG_ECHO - Call (Sub() Call __execuPushedScript(data.Message)).BeginInvoke(Nothing, Nothing) - - If Me._RunningScript Then - strMessage = New DebuggerMessage() With { - .MessageType = DebuggerMessage.MessageTypes.OUTPUT_MESSAGE, - .Message = "Currently running a script, waiting for the script exit..." - }.GetXml - Return New RequestStream(0, 0, strMessage) - Else - Return NetResponse.RFC_OK - End If - End If - - Return NetResponse.RFC_NOT_FOUND - End Function - - Private Sub __execuPushedScript(Script As String) - Do While Me._RunningScript - Threading.Thread.Sleep(100) - Loop - - Call Exec(Script) - End Sub - - Public Function Read() As Integer Implements I_ConsoleDeviceHandle.Read - Throw New NotImplementedException - End Function - - Public Function ReadLine() As String Implements I_ConsoleDeviceHandle.ReadLine - Throw New NotImplementedException - End Function - - Public Sub WriteLine(s As String) Implements I_ConsoleDeviceHandle.WriteLine - Call __sendMessage(s, DebuggerMessage.MessageTypes.OUTPUT_MESSAGE) - End Sub - - Public Sub WriteLine(s As String, ParamArray args() As String) Implements I_ConsoleDeviceHandle.WriteLine - Dim Message As String = String.Format(s, args) - Call __sendMessage(Message, DebuggerMessage.MessageTypes.OUTPUT_MESSAGE) - End Sub - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Runtime/Debugger/DebuggerListener.vb b/Shoal.v2/Shoal.v2/Runtime/Debugger/DebuggerListener.vb deleted file mode 100644 index 62d4206c2..000000000 --- a/Shoal.v2/Shoal.v2/Runtime/Debugger/DebuggerListener.vb +++ /dev/null @@ -1,135 +0,0 @@ -Imports Microsoft.VisualBasic.CommandLine -Imports Microsoft.VisualBasic.Net -Imports Microsoft.VisualBasic.Net.Http -Imports Microsoft.VisualBasic.Net.Protocols - -Namespace Runtime.Debugging - - ''' - ''' 这个对象为服务器对象,运行在IDE模块之中 - ''' - ''' - Public Class DebuggerListener : Implements System.IDisposable - - Dim _DebuggerListener As TcpSynchronizationServicesSocket - Dim _InternalMessageSender As AsynInvoke - Dim pid As Integer - Dim DebuggerProcess As IORedirect - Dim LocalPort As Integer = GetFirstAvailablePort() - Dim DebuggerStarted As Boolean = False - - ''' - ''' /debug listener_port <listen_port> [-work <working_Dir>] - ''' - ''' - ''' - ''' - Sub New(Debugger As String, WorkDir As String) - Call (Sub() Call InternalStartListener()).BeginInvoke(Nothing, Nothing) - Call Threading.Thread.Sleep(100) - - Dim DebuggerArgvs As String = "/debug listener_port " & LocalPort - If Not String.IsNullOrEmpty(WorkDir) Then DebuggerArgvs = DebuggerArgvs & " -work """ & WorkDir & """" - Debugger = FileIO.FileSystem.GetFileInfo(Debugger).FullName - DebuggerProcess = New IORedirect(Debugger, DebuggerArgvs, _disp_debug:=True) - Call DebuggerProcess.Start(_DISP_DEBUG_INFO:=True) - Call InternalWaitForDebuggerStart() - Call (Sub() SendHelloWorld()).BeginInvoke(Nothing, Nothing) - End Sub - - Private Sub InternalStartListener() - Try -RESTART: _DebuggerListener = New TcpSynchronizationServicesSocket(AddressOf __protocol, LocalPort) - Call _DebuggerListener.Run() - Catch ex As Exception - Call Console.WriteLine(ex.ToString) - GoTo RESTART - End Try - End Sub - - Private Sub InternalWaitForDebuggerStart() - Do While Not DebuggerStarted - Call Threading.Thread.Sleep(10) - Loop - End Sub - - Private Function __protocol(uid As Long, request As RequestStream, remote As System.Net.IPEndPoint) As RequestStream - Dim str As String = request.GetUTF8String - - Call Console.WriteLine(str) - - Dim Message As DebuggerMessage = str.CreateObjectFromXml(Of DebuggerMessage)(False) - - If Message Is Nothing Then - Return NetResponse.RFC_TOKEN_INVALID - End If - - If Message.MessageType = DebuggerMessage.MessageTypes.CTRL_DEBUGGER_INIT_INFO AndAlso Not DebuggerStarted Then - DebuggerStarted = True - _InternalMessageSender = New AsynInvoke("127.0.0.1", Val(Message.Message)) - Return NetResponse.RFC_OK - End If - - Return NetResponse.RFC_NOT_FOUND - End Function - - Private Sub SendHelloWorld() - Call Threading.Thread.Sleep(1500) - pid = DebuggerProcess.ProcessInfo.Id - Dim Message As String = SendMessage("[DEBUGGING] Hello World!") - Call Console.WriteLine(Message) - End Sub - - Public Function PushScript(Script As String) As String - Dim Message = New Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Debugging.DebuggerMessage() With - { - .Pid = pid, .MessageType = DebuggerMessage.MessageTypes.CTRL_PUSH_SCRIPT, .Message = Script} - Dim s_Message As String = _InternalMessageSender.SendMessage(Message.GetXml) - Call Console.WriteLine(s_Message) - Return s_Message - End Function - - Public Function SendMessage(s As String) As String - Dim msg As New DebuggerMessage() With { - .Pid = pid, - .Message = s, - .MessageType = DebuggerMessage.MessageTypes.OUTPUT_MESSAGE - } - Return _InternalMessageSender.SendMessage(msg.GetXml) - End Function - -#Region "IDisposable Support" - Private disposedValue As Boolean ' To detect redundant calls - - ' IDisposable - Protected Overridable Sub Dispose(disposing As Boolean) - If Not Me.disposedValue Then - If disposing Then - ' TODO: dispose managed state (managed objects). - Call DebuggerProcess.ProcessInfo.Kill() - Call DebuggerProcess.Free() - End If - - ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below. - ' TODO: set large fields to null. - End If - Me.disposedValue = True - End Sub - - ' TODO: override Finalize() only if Dispose( disposing As Boolean) above has code to free unmanaged resources. - 'Protected Overrides Sub Finalize() - ' ' Do not change this code. Put cleanup code in Dispose( disposing As Boolean) above. - ' Dispose(False) - ' MyBase.Finalize() - 'End Sub - - ' This code added by Visual Basic to correctly implement the disposable pattern. - Public Sub Dispose() Implements IDisposable.Dispose - ' Do not change this code. Put cleanup code in Dispose(disposing As Boolean) above. - Dispose(True) - GC.SuppressFinalize(Me) - End Sub -#End Region - - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Runtime/Debugger/DebuggerMessage.vb b/Shoal.v2/Shoal.v2/Runtime/Debugger/DebuggerMessage.vb deleted file mode 100644 index 44c54b25c..000000000 --- a/Shoal.v2/Shoal.v2/Runtime/Debugger/DebuggerMessage.vb +++ /dev/null @@ -1,57 +0,0 @@ -Imports System.Xml.Serialization - -Namespace Runtime.Debugging - - Public Class DebuggerMessage - - Public Property Message As String - Public Property Pid As Integer - Public Property MessageType As MessageTypes - - Public Enum MessageTypes - - ''' - ''' IDE向Shoal调试程序推送脚本 - ''' - ''' - CTRL_PUSH_SCRIPT - ''' - ''' IDE发送终止脚本调试的信号 - ''' - ''' - CTRL_KILL_SCRIPT - ''' - ''' IDE请求Shoal的变量内容 - ''' - ''' - CTRL_GETS_MEMORY - ''' - ''' IDE修改Shoal内存之中的变量的内容 - ''' - ''' - CTRL_MODIFY_VALUE - ''' - ''' 调试客户端向服务器返回初始化信息 - ''' - ''' - CTRL_DEBUGGER_INIT_INFO - - ''' - ''' Shoal向IDE发送一般的消息 - ''' - ''' - OUTPUT_MESSAGE - ''' - ''' Shoal向IDE发送错误消息 - ''' - ''' - OUTPUT_ERROR - ''' - ''' Shoal向IDE发送警告消息 - ''' - ''' - OUTPUT_WARNING - End Enum - End Class - -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Runtime/Debugger/DebuggerProtocol.vb b/Shoal.v2/Shoal.v2/Runtime/Debugger/DebuggerProtocol.vb deleted file mode 100644 index 0ba52275d..000000000 --- a/Shoal.v2/Shoal.v2/Runtime/Debugger/DebuggerProtocol.vb +++ /dev/null @@ -1,7 +0,0 @@ -Namespace Runtime.Debugging - - Module DebuggerProtocol - - - End Module -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Runtime/Debugger/ShellScriptDebuggerModel.vb b/Shoal.v2/Shoal.v2/Runtime/Debugger/ShellScriptDebuggerModel.vb deleted file mode 100644 index 86386d649..000000000 --- a/Shoal.v2/Shoal.v2/Runtime/Debugger/ShellScriptDebuggerModel.vb +++ /dev/null @@ -1,52 +0,0 @@ -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.LDM - -Namespace Runtime.Debugging - - Public Class ShellScriptDebuggerModel : Inherits SyntaxModel - - Public ReadOnly Property ScriptEngine As Runtime.ScriptEngine - - Sub New(LDM As SyntaxModel, ScriptEngine As ScriptEngine) - Me.Expressions = LDM.Expressions - Me.FilePath = LDM.FilePath - Me.GotoJumpsLabel = LDM.GotoJumpsLabel - Me.ScriptEngine = ScriptEngine - End Sub - - Dim p As Integer - - Public Function Execute() As Object - Throw New NotImplementedException - End Function - - Protected Sub __executeScript() - 'If String.Equals(CodeLine.OrignialScriptLine, FLAG_STATEMENT_RETURN_STACK, StringComparison.OrdinalIgnoreCase) Then - ' Call _InternalEXEC_Pointer.MoveNext() - ' Return - 'ElseIf InternalExecuteGoto(CodeLine) Then - ' Return - 'End If - - 'Dim CurrentExecHandle = CodeLine.InvokeMethod.BeginInvoke(Nothing, Nothing) - - 'Do While Not CurrentExecHandle.IsCompleted - ' If _KillScript Then - ' Call CurrentExecHandle.Free() - ' Return - ' End If - - ' Call Threading.Thread.Sleep(1) - 'Loop - - 'Dim Value As Object = CodeLine.InvokeMethod.EndInvoke(CurrentExecHandle) - 'Dim sys As Objects.I_MemoryManagementDevice = ScriptEngine._EngineMemoryDevice - 'Call sys.InsertOrUpdate(CodeLine.VariableAssigned, Value) - End Sub - - Dim _KillScript As Boolean = False - - Public Sub KillScript() - _KillScript = True - End Sub - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Runtime/Driver/DriverBase.vb b/Shoal.v2/Shoal.v2/Runtime/Driver/DriverBase.vb deleted file mode 100644 index 8eb5d143f..000000000 --- a/Shoal.v2/Shoal.v2/Runtime/Driver/DriverBase.vb +++ /dev/null @@ -1,89 +0,0 @@ -Imports System.Reflection -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.DeviceDriver.DriverHandles -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.SCOM -Imports Microsoft.VisualBasic.Scripting.ShoalShell.SPM.Nodes - -Namespace Runtime.DeviceDriver - - Public MustInherit Class DriverBase(Of - HwndEntry As HwndEntryPoint, - Handler, - __TYPE_ID) : Inherits RuntimeComponent - - Protected _MMUDevice As MMU.MMUDevice - Protected _innerHwnds As Dictionary(Of __TYPE_ID, Handler) - - Dim _HwndTrace As Dictionary(Of __TYPE_ID, String) = New Dictionary(Of __TYPE_ID, String) - - Protected MustOverride Function HandleEntryToString(hwnd As __TYPE_ID) As String - - Public Function GetMountEntries() As String() - If _HwndTrace.IsNullOrEmpty Then - Return {"No external device was mount at here yet..." & vbCrLf} - End If - - Dim LQuery = (From hwnd In _HwndTrace - Select $" ----> [{HandleEntryToString(hwnd.Key)}] Mount at ""{hwnd.Value}""" & vbCrLf).ToList - Call LQuery.Insert(0, "Device TYPE_ID is " & Me.GetType.FullName & vbCrLf) - Return LQuery.ToArray - End Function - - Protected Sub __recordHandleTrace(Entry As __TYPE_ID, MountPoint As MethodInfo) - If _HwndTrace.ContainsKey(Entry) Then - Call _HwndTrace.Remove(Entry) - End If - - Dim Assembly = MountPoint.DeclaringType - Dim sPoint As String = - $"{Assembly.Assembly.Location}!{Assembly.FullName}::{MountPoint.ToString}" - - Call _HwndTrace.Add(Entry, sPoint) - End Sub - - Sub New(ScriptEngine As ScriptEngine) - Call MyBase.New(ScriptEngine) - _MMUDevice = ScriptEngine.MMUDevice - End Sub - - Public MustOverride Function ImportsHandler([Module] As System.Type) As Integer - - Protected Shared Function GetMethods([module] As PartialModule) As __TYPEHwnd() - Dim HwndEntry = GetType(HwndEntry) - Dim Methods = (From Entry As System.Type - In [module].Assembly.LoadAssembly.DefinedTypes - Select (From MethodInfo As MethodInfo - In Entry.GetMethods(System.Reflection.BindingFlags.Public Or System.Reflection.BindingFlags.Static) - Let attrs As Object() = MethodInfo.GetCustomAttributes(attributeType:=HwndEntry, inherit:=True) - Where Not attrs.IsNullOrEmpty - Let Handle = DirectCast(attrs.First, HwndEntry) - Select New __TYPEHwnd With { - .Type = Handle.SupportType, - .Handle = Handle, - .MethodInfo = MethodInfo}).ToArray).ToArray - Return Methods.MatrixToVector - End Function - - Protected Shared Function GetMethods([module] As System.Type) As __TYPEHwnd() - Dim Methods = (From MethodInfo As System.Reflection.MethodInfo - In [module].GetMethods(System.Reflection.BindingFlags.Public Or System.Reflection.BindingFlags.Static) - Let attrs As Object() = MethodInfo.GetCustomAttributes(attributeType:=GetType(HwndEntry), inherit:=True) - Where Not attrs.IsNullOrEmpty - Let Handle = DirectCast(attrs.First, HwndEntry) - Select New __TYPEHwnd With { - .Handle = Handle, - .Type = Handle.SupportType, - .MethodInfo = MethodInfo}).ToArray - Return Methods - End Function - - Protected Structure __TYPEHwnd - Dim Type As Type - Dim MethodInfo As MethodInfo - Dim Handle As HwndEntry - - Public Overrides Function ToString() As String - Return Handle.ToString - End Function - End Structure - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Runtime/Driver/DriverHandles.vb b/Shoal.v2/Shoal.v2/Runtime/Driver/DriverHandles.vb deleted file mode 100644 index cab34ee9d..000000000 --- a/Shoal.v2/Shoal.v2/Runtime/Driver/DriverHandles.vb +++ /dev/null @@ -1,90 +0,0 @@ -Imports System.Drawing -Imports System.Reflection - -Namespace Runtime.DeviceDriver.DriverHandles - - Public MustInherit Class HwndEntryPoint : Inherits Attribute - - Public ReadOnly Property SupportType As Type - - Sub New(dataType As Type) - _SupportType = dataType - End Sub - End Class - - ''' - ''' 将目标变量在终端进行输出 - ''' - ''' - - Public Class OutputDeviceHandle : Inherits HwndEntryPoint - - Sub New(DataType As Type) - Call MyBase.New(DataType) - End Sub - End Class - - ''' - ''' 参数指的是目标函数所返回的值的类型,驱动程序会自动根据函数的参数的类型来决定函数方法的调用 - ''' - ''' - - Public Class InputDeviceHandle : Inherits HwndEntryPoint - - Public ReadOnly Property Description As String - Public ReadOnly Property TypeHandleId As String - - ''' - ''' - ''' - ''' - ''' The brief name of the type information, usage syntax of this input type casting driver in the shoal scripting is: var < (TypeId) $variable - ''' (类型简称,在脚本之中的使用语法为: var < (TypeId) $variable) - ''' - ''' - Sub New(TypeId As String, Optional Description As String = "") - Call MyBase.New(Nothing) - Me.TypeHandleId = TypeId - Me._Description = Description - End Sub - - Public Overrides Function ToString() As String - If String.IsNullOrEmpty(Description) Then - Return $"Input Device Handle => ""{Me.TypeHandleId}""" - Else - Return $"Input Device Handle => ""{Me.TypeHandleId}""; //{_Description}" - End If - End Function - End Class - - ''' - ''' Target delegate must compatible with delegate Func(Of T, String, Boolean), the first parameter in the delegate is the - ''' data type and the data to write to the file, the second parameter is the file path of the IO operation and the last bool - ''' return value indicated that the io operation success or not. please notices that, for the considerations of the data - ''' type compatible, the collection data type is recommended implement as generic enumeration interface. - ''' (目标接口委托对象必须要符合以下接口类型Func(Of T, String, Boolean),其中第一个将要写文件的数据类型,第二个参数为 - ''' 文件路径,最后一个参数是文件是否写入成功,请注意,对于任意的集合类型推荐使用泛型集合) - ''' - ''' - - Public Class IO_DeviceHandle : Inherits HwndEntryPoint - - ''' - ''' - ''' - ''' 目标数据类型,脚本引擎会自动根据函数的数据类型自动选择文件系统的写入方式的驱动程序 - ''' - Sub New(DataType As Type) - Call MyBase.New(DataType) - End Sub - - Sub New(TypeId As String) - Call MyBase.New(System.Type.GetType(TypeId, throwOnError:=True, ignoreCase:=True)) - End Sub - - Public Overrides Function ToString() As String - Return $"IOSupport::{SupportType.FullName}" - End Function - End Class - -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Runtime/Driver/DynamicsCast.vb b/Shoal.v2/Shoal.v2/Runtime/Driver/DynamicsCast.vb deleted file mode 100644 index b1aeaea0a..000000000 --- a/Shoal.v2/Shoal.v2/Runtime/Driver/DynamicsCast.vb +++ /dev/null @@ -1,108 +0,0 @@ -Imports System.Drawing -Imports System.Reflection -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.DeviceDriver.DriverHandles - -Namespace Runtime.DeviceDriver - - ''' - ''' 字典之中的Key属性分别为所需要转换的目标类型的简称和输入的第一个参数的类型,目标方法只能够有一个参数 - ''' - ''' - Public Class DynamicsCast : Inherits DriverBase(Of - InputDeviceHandle, - Func(Of Object, Object), - KeyValuePair(Of String, Type)) - - Sub New(ScriptEngine As Runtime.ScriptEngine) - Call MyBase.New(ScriptEngine) - MyBase._innerHwnds = - New Dictionary(Of KeyValuePair(Of String, Type), Func(Of Object, Object)) From { - _ - {New KeyValuePair(Of String, Type)("string", GetType(String)), AddressOf DynamicsCast.__readText}, - {New KeyValuePair(Of String, Type)("string()", GetType(String)), AddressOf IO.File.ReadAllLines}, - {New KeyValuePair(Of String, Type)("byte()", GetType(String)), AddressOf IO.File.ReadAllBytes}, - {New KeyValuePair(Of String, Type)("int", GetType(String)), AddressOf DynamicsCast.__getInteger}, - {New KeyValuePair(Of String, Type)("int32", GetType(String)), AddressOf DynamicsCast.__getInteger}, - {New KeyValuePair(Of String, Type)("integer", GetType(String)), AddressOf DynamicsCast.__getInteger}} - End Sub - - - - - Private Shared Function __getInteger(value As String) As Integer - Return CInt(Val(value)) - End Function - - - Private Shared Function __readText(path As String) As String - Return VisualBasic.FileIO.FileSystem.ReadAllText(path) - End Function - - - Private Shared Function InternalReadTextLines(path As String) As String() - Return IO.File.ReadAllLines(path).ToArray - End Function - - Public Overrides Function ImportsHandler([Module] As Type) As Integer - Dim Entries = GetMethods([Module]) - Dim LQuery = (From hwnd As __TYPEHwnd In Entries - Let n = hwnd.Handle - Let Method = hwnd.MethodInfo - Let p = Method.GetParameters - Where p.Length = 1 - Let objType = p.First.ParameterType - Let DeviceHandle = Function(obj As Object) Method.Invoke(Nothing, {obj}) - Select DriverHandle = DeviceHandle, - Entry = New KeyValuePair(Of String, Type)(n.TypeHandleId, objType), - Mounts = Method).ToArray - - For Each Line In LQuery - If _innerHwnds.ContainsKey(Line.Entry) Then - Call _innerHwnds.Remove(Line.Entry) - End If - - If Line.Entry.Value.Equals(GetType(String)) Then - Call InputHandler.CapabilityPromise( - Line.Entry.Key, - Line.Mounts.ReturnType, - Function(s) Line.Mounts.Invoke(Nothing, {s})) - End If - - Call _innerHwnds.Add(Line.Entry, Line.DriverHandle) - Call __recordHandleTrace(Line.Entry, Line.Mounts) - Next - - Return LQuery.Length - End Function - - ''' - ''' - ''' - ''' 目标函数的第一个参数,本方法会根据这个参数以及参数查找最合适的句柄来处理本参数的输入 - ''' 类型标记信息的简写 - ''' - ''' - Public Function TypeCastDynamics(obj As Object, typeId As String) As Object - Dim EntryType As System.Type = obj.GetType - Dim LQuery = (From Hwnd As KeyValuePair(Of KeyValuePair(Of String, Type), Func(Of Object, Object)) - In Me._innerHwnds - Where String.Equals(Hwnd.Key.Key, typeId, StringComparison.OrdinalIgnoreCase) - Select Val = Hwnd.Value).ToArray - - If LQuery.IsNullOrEmpty Then - Dim ex As String = String.Format(MISSING_HANDLE, typeId, EntryType.FullName) - Throw New MissingPrimaryKeyException(ex) - End If - - Dim DriverHandle As Func(Of Object, Object) = LQuery.First - Dim value As Object = DriverHandle(obj) - Return value - End Function - - Const MISSING_HANDLE As String = "[MISSING_HANDLER {0}, {1}] You should imports a namespace which was contains the handle of this type and then run this program again." - - Protected Overrides Function HandleEntryToString(hwnd As KeyValuePair(Of String, Type)) As String - Return $"[{hwnd.Key}, {hwnd.Value.FullName}]" - End Function - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Runtime/Driver/IODeviceDriver.vb b/Shoal.v2/Shoal.v2/Runtime/Driver/IODeviceDriver.vb deleted file mode 100644 index 910019db7..000000000 --- a/Shoal.v2/Shoal.v2/Runtime/Driver/IODeviceDriver.vb +++ /dev/null @@ -1,174 +0,0 @@ -Imports System.Drawing -Imports System.Reflection -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.DeviceDriver.DriverHandles -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Exceptions - -Namespace Runtime.DeviceDriver - - Public Class IODeviceDriver : Inherits DriverBase(Of IO_DeviceHandle, Func(Of Object, String, Boolean), Type) - - Delegate Function IWriteData(data As Object, path As String) As Boolean - - Private Shared Function WriteDat(data As Object, path As String) As Boolean - Return CastArray(Of Byte)(data).FlushStream(path) - End Function - - Private Shared Function WriteBooleanBytes(data As Object, path As String) As Boolean - Dim value = (From b As Boolean - In InputHandler.CastArray(Of Boolean)(data) - Select If(b, CByte(1), CByte(0))).ToArray - Return value.FlushStream(path) - End Function - - ReadOnly GenericCollection As New Dictionary(Of Type, IWriteData) From { - {GetType(Integer), AddressOf WriteTextCollection}, - {GetType(Double), AddressOf WriteTextCollection}, - {GetType(Byte), AddressOf WriteDat}, - {GetType(Long), AddressOf WriteTextCollection}, - {GetType(Boolean), AddressOf WriteBooleanBytes}, - {GetType(Date), AddressOf WriteTextCollection}, - {GetType(Object), AddressOf WriteTextCollection} - } - - Sub New(ScriptEngine As Runtime.ScriptEngine) - MyBase.New(ScriptEngine) - MyBase._innerHwnds = New Dictionary(Of Type, Func(Of Object, String, Boolean)) From { - {GetType(String), AddressOf IODeviceDriver.WriteTextFile}, - {GetType(Char()), AddressOf IODeviceDriver.WriteCharCollectionAsText}, - {GetType(String()), AddressOf IODeviceDriver.WriteTextCollection}, - {GetType(Image), AddressOf IODeviceDriver.WriteImageFile}, - {GetType(Bitmap), AddressOf IODeviceDriver.WriteBitmapFile}, - {GetType(Microsoft.VisualBasic.Logging.LogFile), AddressOf IODeviceDriver.SaveLogFile}, - {GetType(Byte), Function(byt As Object, path As String) {DirectCast(byt, Byte)}.FlushStream(path)}} - End Sub - - Private Shared Function SaveLogFile(log As Microsoft.VisualBasic.Logging.LogFile, path As String) As Boolean - Return log.Save(path) - End Function - - ''' - ''' 返回成功导入的IO方法 - ''' - ''' - ''' - ''' - Public Overrides Function ImportsHandler([Module] As System.Type) As Integer - Dim Methods As __TYPEHwnd() = GetMethods([Module]) - - For Each hwnd In Methods - If _innerHwnds.ContainsKey(hwnd.Type) Then - Call $"[UPDATE] {hwnd.Type.FullName} ==> {[Module].FullName}::{hwnd.MethodInfo.Name}".__DEBUG_ECHO - Call _innerHwnds.Remove(hwnd.Type) '如果已经存在该类型的写入方法,则进行更新 - End If - Call _innerHwnds.Add(hwnd.Type, value:=Function(data As Object, path As String) As Boolean - Dim rtvl As Object = hwnd.MethodInfo.Invoke(Nothing, New Object() {data, path}) - Return CType(rtvl, Boolean) - End Function) - Call __recordHandleTrace(hwnd.Type, hwnd.MethodInfo) - Next - - Return Methods.Length - End Function - - Private Shared Function WriteImageFile(data As Image, path As String) As Boolean - Call data.Save(path, Drawing.Imaging.ImageFormat.Png) - Return True - End Function - - Private Shared Function WriteBitmapFile(data As Bitmap, path As String) As Boolean - Call data.Save(path) - Return True - End Function - - Private Shared Function WriteTextFile(data As Object, path As String) As Boolean - Dim sValue As String = InputHandler.ToString(data) - Return sValue.SaveTo(path) - End Function - - Private Shared Function WriteTextCollection(data As Object, path As String) As Boolean - Dim textBuffer As String() = (From line In DirectCast(data, IEnumerable) - Let sValue As String = Scripting.ToString(line) - Select sValue).ToArray - Call IO.File.WriteAllLines(path, textBuffer) - Return True - End Function - - Private Shared Function WriteCharCollectionAsText(data As Object, path As String) As Boolean - Dim sValue As String = If(data Is Nothing, "", New String((From c In DirectCast(data, IEnumerable) Let ch As Char = DirectCast(c, Char) Select ch).ToArray)) - Call VisualBasic.FileIO.FileSystem.WriteAllText(path, sValue, False) - Return True - End Function - - Const EXCEPTION_MESSAGE_IO_HANDLER_MISSING As String = - "IO method is missing for type: {0}, please try using ""imports "" command for imports the io method." - - ''' - ''' This function will trying to save the data in a properly method from the data type: - ''' Function will trying save the string as a text file; - ''' Basic data type collection will be save as a csv data table; - ''' All of the other data type will be saved based on the registry data; - ''' If the method is not found in the registry for the data type, then function will throw a method missing exception! - ''' (函数会尝试根据文件的类型来选择合适的保存格式: - ''' 字符串类型会保存为文本文件 - ''' 数组会保存为Csv - ''' 其他的复杂类型会尝试根据注册的句柄来执行相应的数据保存操作) - ''' - ''' - ''' - ''' - ''' - Public Function WriteData(value As Object, path As String) As Boolean - Dim type As Type = value.GetType - - path = VisualBasic.FileIO.FileSystem.GetFileInfo(MyBase.ScriptEngine.Strings.Format(path)).FullName - - Call $"Flush data to handle *""{path.ToFileURL}""...".__DEBUG_ECHO - Call VisualBasic.FileIO.FileSystem.CreateDirectory(VisualBasic.FileIO.FileSystem.GetParentPath(path)) - - If Not _innerHwnds.ContainsKey(type) Then Return __writeCollection(type, value, path) - - Try - Return _innerHwnds(type)(value, path) - Catch ex As Exception - Throw New ShoalShell.Runtime.Exceptions.RuntimeException( - $"An unexpected exception occurs while trying flush the data to the handle *""{path.ToFileURL}""...", ex, ScriptEngine) - End Try - End Function - - Private Function __writeCollection(type As Type, value As Object, path As String) As Boolean - Dim GenericCollection As Type = __genericCollection(type) - - If Not Me.GenericCollection.ContainsKey(GenericCollection) Then _ - Throw New MethodNotFoundException(String.Format(EXCEPTION_MESSAGE_IO_HANDLER_MISSING, type.FullName), ScriptEngine) - - Try - Dim Hwnd = Me.GenericCollection(GenericCollection) '???字典查找有问题?? - Return Hwnd(value, path) - Catch ex As Exception - Throw New ShoalShell.Runtime.Exceptions.RuntimeException( - $"An unexpected exception occurs while trying flush the data to the handle *""{path.ToFileURL}""...", ex, ScriptEngine) - End Try - End Function - - Private Function __genericCollection(type As Type) As Type - Dim GenericCollection As Type = Nothing - - Try - GenericCollection = type.Collection2GenericIEnumerable - GenericCollection = GenericCollection.GenericTypeArguments.First - Catch ex As Exception - Dim Message As String = String.Format(EXCEPTION_ON_HANDLE_GENERIC_TYPE, type.FullName) - Throw New ShoalShell.Runtime.Exceptions.RuntimeException(Message, ex, ScriptEngine) - End Try - - Return GenericCollection - End Function - - Public Const EXCEPTION_ON_HANDLE_GENERIC_TYPE As String = - "Unable to handle the type to generic: ""{0}"". The reason for this error maybe is you haven't imports the io device handler for target type." - - Protected Overrides Function HandleEntryToString(item As Type) As String - Return item.FullName - End Function - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Runtime/Driver/OutputDeviceDriver.vb b/Shoal.v2/Shoal.v2/Runtime/Driver/OutputDeviceDriver.vb deleted file mode 100644 index 6ab08a8a7..000000000 --- a/Shoal.v2/Shoal.v2/Runtime/Driver/OutputDeviceDriver.vb +++ /dev/null @@ -1,115 +0,0 @@ -Imports System.Drawing -Imports System.Reflection -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.DeviceDriver.DriverHandles -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Exceptions - -Namespace Runtime.DeviceDriver - - ''' - ''' Output support module for that data type.(各种数据类型的输出模块) - ''' - ''' - Public Class OutputDeviceDriver : Inherits DriverBase(Of OutputDeviceHandle, Func(Of Object, Object), Type) - - Sub New(ScriptEngine As Runtime.ScriptEngine) - MyBase.New(ScriptEngine) - MyBase._innerHwnds = New Dictionary(Of Type, Func(Of Object, Object)) _ - From - { - {GetType(String), AddressOf OutputDeviceDriver.WriteLineText}, - {GetType(Generic.IEnumerable(Of String)), AddressOf OutputDeviceDriver.WriteStringCollection}, - {GetType(Generic.IEnumerable(Of Object)), AddressOf OutputDeviceDriver.WriteObjectCollection}, - {GetType(Double), AddressOf OutputDeviceDriver.WriteLineText}, - {GetType(Integer), AddressOf OutputDeviceDriver.WriteLineText}, - {GetType(UInteger), AddressOf OutputDeviceDriver.WriteLineText}, - {GetType(Short), AddressOf OutputDeviceDriver.WriteLineText}, - {GetType(Long), AddressOf OutputDeviceDriver.WriteLineText}, - {GetType(Date), AddressOf OutputDeviceDriver.WriteLineText}, - {GetType(Boolean), AddressOf OutputDeviceDriver.WriteLineText}, - {GetType(Byte), AddressOf OutputDeviceDriver.WriteLineText}, - {GetType(Object), AddressOf OutputDeviceDriver.WriteLineText}} - End Sub - - Private Shared Function WriteLineText(s As Object) As Object - Call Console.WriteLine(" = [0] " & s.ToString) - Return s - End Function - - Private Shared Function WriteObjectCollection(data As Generic.IEnumerable(Of Object)) As Object() - If data.IsNullOrEmpty Then - Call Console.WriteLine(" = null array") - End If - - Call WriteStringCollection((From obj In data Select InputHandler.ToString(obj)).ToArray) - Return data.ToArray - End Function - - Private Shared Function WriteStringCollection(data As Generic.IEnumerable(Of String)) As String() - If data.IsNullOrEmpty Then - Call Console.WriteLine(" = null array") - End If - - Call Console.WriteLine(" =") - For i As Integer = 0 To data.Count - 1 - Call Console.WriteLine(" [{0}] {1}", i, data(i)) - Next - - Return data.ToArray - End Function - - Public Overrides Function ImportsHandler([Module] As Type) As Integer - Dim Methods As __TYPEHwnd() = GetMethods([Module]) - - For Each item As __TYPEHwnd In Methods - - If _innerHwnds.ContainsKey(item.Type) Then - Call Console.WriteLine("[UPDATE] {0} ==> {1}::{2}", item.Type.FullName, [Module].FullName, item.MethodInfo.Name) - Call _innerHwnds.Remove(item.Type) '如果已经存在该类型的写入方法,则进行更新 - End If - - Call _innerHwnds.Add(item.Type, value:=Function(data As Object) item.MethodInfo.Invoke(Nothing, New Object() {data})) - Call __recordHandleTrace(item.Type, item.MethodInfo) - Next - - Return Methods.Length - End Function - - Const EXCEPTION_MESSAGE_OUTPUT_HANDLER_MISSING As String = "Output handler method is missing for type: {0}, please try using ""imports "" command for imports the io method." - Const NULL As String = "NULL" - - Public Function HandleOutput(var As Object) As Object - If var Is Nothing Then var = NULL ' var是空值,则输出空值所指示的字符串 - - Dim Type As Type = var.GetType - - If _innerHwnds.ContainsKey(Type) Then - Dim DriverHandle = _innerHwnds(Type) - Return DriverHandle(var) - Else - Return __processArrayOutput(Type, var) - End If - End Function - - Private Function __processArrayOutput(TypeInfo As Type, var As Object) As Object - Dim GenericCollection As Type = TypeInfo.Collection2GenericIEnumerable - - If _innerHwnds.ContainsKey(GenericCollection) Then - Return _innerHwnds(GenericCollection)(var) - Else - Try - Dim cString As String = var.ToString '尝试将目标对象转换为字符串进行输出 - Call Console.WriteLine(cString) - Return cString - Catch ex As Exception '但是转换失败了,最终只能够跑出错误 - Dim Msg As String = String.Format(EXCEPTION_MESSAGE_OUTPUT_HANDLER_MISSING, TypeInfo.FullName) - ex = New Exception(Msg, ex) - Throw New MethodNotFoundException(ex.ToString, ScriptEngine) - End Try - End If - End Function - - Protected Overrides Function HandleEntryToString(item As Type) As String - Return item.FullName - End Function - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Runtime/Dynamics.vb b/Shoal.v2/Shoal.v2/Runtime/Dynamics.vb deleted file mode 100644 index 0233af2cb..000000000 --- a/Shoal.v2/Shoal.v2/Runtime/Dynamics.vb +++ /dev/null @@ -1,324 +0,0 @@ -Imports System.Dynamic -Imports System.Text -Imports Microsoft.VisualBasic.CommandLine.Reflection -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.MMU - -Namespace Runtime - - ''' - ''' Dynamics programming environment. If the environment thorw member not found exception, then you should consider of the - ''' target method namespace may be not registered yet so then you should try using - ''' to initialize the environment. - ''' (Shoal脚本的动态编程环境,注意:假若提示找不到方法或者空引用,请使用带参数的 - ''' 创建方法在扫描完插件文件夹之后再来创建对象实例) - ''' - ''' 所返回的是Shoal的系统保留变量的值 - ''' - ''' - Public Class Dynamics : Inherits Dynamic.DynamicObject - Implements System.IDisposable - Implements IConvertible - - Public ReadOnly Property ScriptEngine As Runtime.ScriptEngine - - Public ReadOnly Property SysTopStack As Object - Get - Return ScriptEngine.MMUDevice.SystemReserved.Value - End Get - End Property - - Sub New(ScriptEngine As Runtime.ScriptEngine) - Me.ScriptEngine = ScriptEngine - End Sub - - ''' - ''' Initialize the dynamics programming runtime environment from the configuration data. - ''' - ''' - ''' - Public Shared Function CreateDefaultEnvironment() As Dynamics - Return New ShoalShell.Runtime.Dynamics(New ScriptEngine(ShoalShell.Configuration.Config.LoadDefault)) - End Function - - Public Shared Function CreateDefaultEnvironment(scanPlugins As String) As Dynamics - Call Runtime.SCOM.RuntimeEnvironment.ScanPlugins($"-scan.plugins -dir {scanPlugins.CliPath}") - Return Dynamics.CreateDefaultEnvironment - End Function - - Public Function [Imports]([Namespace] As String) As Integer - Return Me.ScriptEngine.Interpreter.EPMDevice.Imports([Namespace]).API?.Length - End Function - - Public Function Install(AssemblyPath As String) As Boolean - Dim b As Boolean = Not ScriptEngine.Interpreter.SPMDevice.Imports(AssemblyPath).IsNullOrEmpty - Call ScriptEngine.Interpreter.SPMDevice.UpdateDb() - Return b - End Function - - Public Function Evaluate(script As String) As Object - Return ScriptEngine.Exec(script) - End Function - -#Region "Dynamics Support" - - Public Overrides Function GetDynamicMemberNames() As IEnumerable(Of String) - Return (From var In ScriptEngine.MMUDevice Select var.Value.Name).ToArray - End Function - - Public Overrides Function TryGetMember( binder As GetMemberBinder, ByRef result As Object) As Boolean - If ScriptEngine.MMUDevice.Exists(binder.Name) Then - result = ScriptEngine.MMUDevice(binder.Name).Value - Else - result = Nothing - End If - - Return True - End Function - - Public Overrides Function TrySetMember(binder As SetMemberBinder, value As Object) As Boolean - Call ScriptEngine.MMUDevice.Update(binder.Name, value) - Return False - End Function - - Dim _VirtualInvokeAPINsCache As StringBuilder = New StringBuilder(1024) - - ''' - ''' 首先尝试查看里面的数据,假若没有的话在直接查找,假若有数据,则执行命名空间的连接操作之后在查找执行 - ''' - ''' - ''' 按照函数的定义排序的 - ''' - ''' - ''' - Public Overrides Function TryInvokeMember(binder As InvokeMemberBinder, args() As Object, ByRef result As Object) As Boolean - Dim MethodName As String - - If _VirtualInvokeAPINsCache.Length = 0 Then - MethodName = binder.Name - Else - MethodName = String.Format("{0}.{1}", _VirtualInvokeAPINsCache.ToString, binder.Name) - End If - - Try - Dim API = ScriptEngine.Interpreter.TryGetAPI(MethodName) - result = Interpreter.Linker.APIHandler.APIInvoker.TryInvoke(API, args) - _VirtualInvokeAPINsCache.Clear() - Catch ex As Exception - If _VirtualInvokeAPINsCache.Length = 0 Then - _VirtualInvokeAPINsCache.Append(binder.Name) - Else - Call _VirtualInvokeAPINsCache.Append("." & binder.Name) - End If - - result = Me - End Try - - Return True - End Function - - Public Overrides Function TryConvert(binder As ConvertBinder, ByRef result As Object) As Boolean - Return MyBase.TryConvert(binder, result) - End Function -#End Region - -#Region "Implements IConvertible" - -#Region "GetTypeCode" - - Public Shared ReadOnly Property TypeCodes As SortedDictionary(Of Type, TypeCode) = - New SortedDictionary(Of Type, TypeCode) From { - _ - {GetType(Object), TypeCode.Object}, - {GetType(Boolean), TypeCode.Boolean}, - {GetType(Byte), TypeCode.Byte}, - {GetType(Char), TypeCode.Char}, - {GetType(DateTime), TypeCode.DateTime}, - {GetType(DBNull), TypeCode.DBNull}, - {GetType(Decimal), TypeCode.Decimal}, - {GetType(Double), TypeCode.Double}, - {GetType(Int16), TypeCode.Int16}, - {GetType(Int32), TypeCode.Int32}, - {GetType(Int64), TypeCode.Int64}, - {GetType(SByte), TypeCode.SByte}, - {GetType(Single), TypeCode.Single}, - {GetType(String), TypeCode.String}, - {GetType(UInt16), TypeCode.UInt16}, - {GetType(UInt32), TypeCode.UInt32}, - {GetType(UInt64), TypeCode.UInt64} - } - - ''' - ''' Specifies the type of an object. - ''' - ''' - Public Function GetTypeCode() As TypeCode Implements IConvertible.GetTypeCode - Dim typeRef = InputHandler.GetType(Me.SysTopStack, True) - - If _TypeCodes.ContainsKey(typeRef) Then - Return _TypeCodes(typeRef) - Else - Return TypeCode.Object - End If - End Function -#End Region - - Public Function ToBoolean(provider As IFormatProvider) As Boolean Implements IConvertible.ToBoolean - Return InputHandler.ToString(SysTopStack).getBoolean - End Function - - Public Function ToByte(provider As IFormatProvider) As Byte Implements IConvertible.ToByte - Return CType(SysTopStack, Byte) - End Function - - Public Function ToChar(provider As IFormatProvider) As Char Implements IConvertible.ToChar - Dim value As String = InputHandler.ToString(SysTopStack) - If String.IsNullOrEmpty(value) Then - Return NIL - Else - Return value(Scan0) - End If - End Function - - Public Function ToDateTime(provider As IFormatProvider) As Date Implements IConvertible.ToDateTime - Dim value As Object = SysTopStack - If value Is Nothing Then - Return New Date - Else - Dim d As DateTime = CType(value.ToString, DateTime) - Return d - End If - End Function - - Public Function ToDecimal(provider As IFormatProvider) As Decimal Implements IConvertible.ToDecimal - Dim value As Object = SysTopStack - If value Is Nothing Then - Return 0 - Else - Return CType(value, Decimal) - End If - End Function - - Public Function ToDouble(provider As IFormatProvider) As Double Implements IConvertible.ToDouble - Dim value = SysTopStack - If value Is Nothing Then - Return 0 - Else - Return Val(value.ToString) - End If - End Function - - Public Function ToInt16(provider As IFormatProvider) As Short Implements IConvertible.ToInt16 - Dim value = SysTopStack - If value Is Nothing Then - Return 0 - Else - Return CType(Val(value.ToString), Int16) - End If - End Function - - Public Function ToInt32(provider As IFormatProvider) As Integer Implements IConvertible.ToInt32 - Dim value = SysTopStack - If value Is Nothing Then - Return 0 - Else - Return CInt(Val(value.ToString)) - End If - End Function - - Public Function ToInt64(provider As IFormatProvider) As Long Implements IConvertible.ToInt64 - Dim value = SysTopStack - If value Is Nothing Then - Return 0 - Else - Return CLng(Val(value.ToString)) - End If - End Function - - Public Function ToSByte(provider As IFormatProvider) As SByte Implements IConvertible.ToSByte - Dim value = SysTopStack - If value Is Nothing Then - Return 0 - Else - Return CType(Val(value.ToString), SByte) - End If - End Function - - Public Function ToSingle(provider As IFormatProvider) As Single Implements IConvertible.ToSingle - Dim value = SysTopStack - If value Is Nothing Then - Return 0 - Else - Return CSng(Val(value.ToString)) - End If - End Function - - Public Overloads Function ToString(provider As IFormatProvider) As String Implements IConvertible.ToString - Return InputHandler.ToString(Me.SysTopStack) - End Function - - Public Function ToType(conversionType As Type, provider As IFormatProvider) As Object Implements IConvertible.ToType - Return SysTopStack.GetType - End Function - - Public Function ToUInt16(provider As IFormatProvider) As UShort Implements IConvertible.ToUInt16 - Dim value = SysTopStack - If value Is Nothing Then - Return 0 - Else - Return CType(Val(value.ToString), UInt16) - End If - End Function - - Public Function ToUInt32(provider As IFormatProvider) As UInteger Implements IConvertible.ToUInt32 - Dim value = SysTopStack - If value Is Nothing Then - Return 0 - Else - Return CType(Val(value.ToString), UInteger) - End If - End Function - - Public Function ToUInt64(provider As IFormatProvider) As ULong Implements IConvertible.ToUInt64 - Dim value = SysTopStack - If value Is Nothing Then - Return 0 - Else - Return CType(Val(value.ToString), ULong) - End If - End Function -#End Region - -#Region "IDisposable Support" - Private disposedValue As Boolean ' To detect redundant calls - - ' IDisposable - Protected Overridable Sub Dispose(disposing As Boolean) - If Not Me.disposedValue Then - If disposing Then - ' TODO: dispose managed state (managed objects). - End If - - ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below. - ' TODO: set large fields to null. - End If - Me.disposedValue = True - End Sub - - ' TODO: override Finalize() only if Dispose(disposing As Boolean) above has code to free unmanaged resources. - 'Protected Overrides Sub Finalize() - ' ' Do not change this code. Put cleanup code in Dispose(disposing As Boolean) above. - ' Dispose(False) - ' MyBase.Finalize() - 'End Sub - - ' This code added by Visual Basic to correctly implement the disposable pattern. - Public Sub Dispose() Implements IDisposable.Dispose - ' Do not change this code. Put cleanup code in Dispose(disposing As Boolean) above. - Dispose(True) - ' TODO: uncomment the following line if Finalize() is overridden above. - ' GC.SuppressFinalize(Me) - End Sub -#End Region - - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Runtime/Exceptions/DriverNotFound.vb b/Shoal.v2/Shoal.v2/Runtime/Exceptions/DriverNotFound.vb deleted file mode 100644 index aa92587d7..000000000 --- a/Shoal.v2/Shoal.v2/Runtime/Exceptions/DriverNotFound.vb +++ /dev/null @@ -1,15 +0,0 @@ -Namespace Runtime.Exceptions - - Public Class DriverNotFound : Inherits RuntimeException - - Public Property Driver As String - - Sub New(Message As String, ScriptEngine As Runtime.ScriptEngine) - Call MyBase.New(Message, ScriptEngine) - End Sub - - Sub New(Message As String, InnerException As Exception, ScriptEngine As Runtime.ScriptEngine) - Call MyBase.New(Message, InnerException, ScriptEngine) - End Sub - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Runtime/Exceptions/MethodNotFoundException.vb b/Shoal.v2/Shoal.v2/Runtime/Exceptions/MethodNotFoundException.vb deleted file mode 100644 index 0629321c0..000000000 --- a/Shoal.v2/Shoal.v2/Runtime/Exceptions/MethodNotFoundException.vb +++ /dev/null @@ -1,85 +0,0 @@ -Imports System.Text - -Namespace Runtime.Exceptions - - Public Class FunCallFailured : Inherits RuntimeException - - Sub New(Expr As Interpreter.LDM.Expressions.FunctionCalls, ScriptEngine As Runtime.ScriptEngine) - Call MyBase.New($"Unable call function: {Expr.ToString}", ScriptEngine) - End Sub - End Class - - ''' - ''' The exception that is thrown when there is an attempt to dynamically access a - ''' method that does not exist. - ''' - Public Class MethodNotFoundException : Inherits RuntimeException - - Dim API As Interpreter.Linker.APIHandler.APIEntryPoint, - args As KeyValuePair(Of String, Object)(), - Expr As Interpreter.LDM.Expressions.FunctionCalls - - ''' - ''' Initializes a new instance of the class with the - ''' specified class name and method name. - ''' - ''' The name of the class in which access to a nonexistent method was attempted. - ''' - ''' The name of the method that cannot be accessed. - ''' - Sub New(API As Interpreter.Linker.APIHandler.APIEntryPoint, - args As KeyValuePair(Of String, Object)(), - Expr As Interpreter.LDM.Expressions.FunctionCalls, - ScriptEngine As Runtime.ScriptEngine) - - Call MyBase.New(MethodNotFoundException.__innerMessage(API, args, Expr, ScriptEngine), - New MissingMethodException(className:=NameOf(ExecuteModel), - methodName:=Expr.EntryPoint.Name.Expression.PrimaryExpression), - ScriptEngine) - - Me.Script = Expr - Me.API = API - Me.args = args - Me.Expr = Expr - End Sub - - Public Sub New(innerMessage As String, ScriptEngine As Runtime.ScriptEngine) - Call MyBase.New(innerMessage, ScriptEngine) - End Sub - - Private Shared Function __innerMessage(API As Interpreter.Linker.APIHandler.APIEntryPoint, - args As KeyValuePair(Of String, Object)(), - Expr As Interpreter.LDM.Expressions.FunctionCalls, - ScriptEngine As Runtime.ScriptEngine) As String - - Dim sbr As StringBuilder = New StringBuilder(Expr.PrimaryExpression) - Call sbr.AppendLine() - Call sbr.AppendLine() - - If Not Expr Is Nothing Then - Call sbr.AppendLine("Source Details:") - Call sbr.AppendLine($"{NameOf(Expr.ExtensionVariable)} = $[{If(Expr.ExtensionVariable Is Nothing, "", Expr.ExtensionVariable.Expression.ExceptionExpr)}]") - Call sbr.AppendLine($"{NameOf(Expr.Comments)} = {Expr.Comments}") - Call sbr.AppendLine($"{NameOf(Expr.LeftAssignedVariable)} = {Expr.LeftAssignedVariable.ExceptionExpr}") - Call sbr.AppendLine($"{NameOf(Expr.EntryPoint)} = {Expr.EntryPoint.ExceptionExpr}") - Call sbr.AppendLine($"{NameOf(Expr.Parameters)} = ") - Call sbr.AppendLine(String.Join(vbCrLf & " ", (From param In Expr.Parameters Select $"[{param.Key.ExceptionExpr}, {param.Value.ExceptionExpr}]").ToArray)) - Call sbr.AppendLine() - End If - - Call sbr.AppendLine($"{NameOf(args)} =") - Call sbr.AppendLine(String.Join(vbCrLf & " ", (From param In args Select $"{param.Key} ==> {InputHandler.ToString(param.Value)}"))) - Call sbr.AppendLine() - Call sbr.AppendLine() - Call sbr.AppendLine($"{NameOf(API)} Details:") - Call sbr.AppendLine($"{NameOf(API.Name)} = {API.Name} {If(API.IsOverloaded, $"(+{API.OverloadsNumber} Overloads)", "")}") - Call sbr.AppendLine("[") - For Each func In API - Call sbr.AppendLine($" {func.EntryPoint.EntryPoint.ToString}") - Next - Call sbr.AppendLine("]") - - Return sbr.ToString - End Function - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Runtime/Exceptions/RuntimeException.vb b/Shoal.v2/Shoal.v2/Runtime/Exceptions/RuntimeException.vb deleted file mode 100644 index 39afe1563..000000000 --- a/Shoal.v2/Shoal.v2/Runtime/Exceptions/RuntimeException.vb +++ /dev/null @@ -1,18 +0,0 @@ -Namespace Runtime.Exceptions - - Public Class RuntimeException : Inherits Exception - - Public Property Script As Interpreter.LDM.Expressions.PrimaryExpression - Public ReadOnly Property ScriptEngine As Runtime.ScriptEngine - - Sub New(Message As String, ScriptEngine As Runtime.ScriptEngine) - Call MyBase.New(Message) - Me.ScriptEngine = ScriptEngine - End Sub - - Sub New(Message As String, InnerException As Exception, ScriptEngine As Runtime.ScriptEngine) - Call MyBase.New(Message, InnerException) - Me.ScriptEngine = ScriptEngine - End Sub - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Runtime/HybridScripting/EntryPoint.vb b/Shoal.v2/Shoal.v2/Runtime/HybridScripting/EntryPoint.vb deleted file mode 100644 index 43eb1ac14..000000000 --- a/Shoal.v2/Shoal.v2/Runtime/HybridScripting/EntryPoint.vb +++ /dev/null @@ -1,73 +0,0 @@ -Imports System.Reflection - -Namespace Runtime.HybridsScripting - - Public Structure EntryPoint - - ''' - ''' Script name.(混合编程的脚本名称) - ''' - ''' - Dim Language As LanguageEntryPoint - Dim Init, Evaluate, SetValue As MethodInfo - ''' - ''' Basic type data convert interface.(基本数据类型的转换接口) - ''' - ''' - Dim DataConvertors As SortedDictionary(Of Char, System.Reflection.MethodInfo) - ''' - ''' When the handlers can not found the data type - ''' convert method for the basically type then it will try this system preserved string type convert - ''' method to convert the data as string as default. - ''' (当之中没有查找到目标类型的转换操作接口的时候,则默认使用本方法转换 - ''' 为字符串的格式,保留的字符串类型的转换函数) - ''' - ''' - Dim ConservedString As System.Reflection.MethodInfo - Dim TypeFullName As String - Dim DeclaredAssemblyType As System.Type - - Public Function EvaluateInvoke(Script As String) As Object - Return Evaluate.Invoke(Nothing, {Script}) - End Function - - Public Function SetValueInvoke(Name As String, value As Object) As Boolean - Return SetValue.Invoke(Nothing, {Name, value}) - End Function - - Public Function ReservedConvert(value As String) As Object - Return ConservedString.Invoke(Nothing, {value}) - End Function - - Public Overrides Function ToString() As String - Return Language.ToString - End Function - - Public Function Converts(ch As Char, value As String) As Object - Return DataConvertors(ch).Invoke(Nothing, {value}) - End Function - - ''' - ''' 初始化外部环境 - ''' - Public Sub InitInvoke() - If Not Init Is Nothing Then - Call Init.Invoke(Nothing, Nothing) - End If - End Sub - - ''' - '''This property indicated that the entry data which was parsing from the assembly module is valid or not.(可以使用本属性来判断目标解析数据是否可用) - ''' - ''' - ''' - ''' - Public ReadOnly Property IsNull As Boolean - Get - Return Language Is Nothing OrElse - Evaluate Is Nothing OrElse - SetValue Is Nothing - End Get - End Property - End Structure -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Runtime/HybridScripting/EnvironmentParser.vb b/Shoal.v2/Shoal.v2/Runtime/HybridScripting/EnvironmentParser.vb deleted file mode 100644 index 3850c8b12..000000000 --- a/Shoal.v2/Shoal.v2/Runtime/HybridScripting/EnvironmentParser.vb +++ /dev/null @@ -1,63 +0,0 @@ -Imports System.Reflection - -Namespace Runtime.HybridsScripting - - Public Module EnvironmentParser - - Public Function [Imports](assm As System.Type) As EntryPoint - Dim attributes As Object() = assm.GetCustomAttributes(LanguageEntryPoint.TypeInfo, True) - - If attributes.IsNullOrEmpty Then - Return Nothing - End If - - Dim InitEntry As MethodInfo = GetEntry(assm, InterfaceTypes.EntryPointInit) - Dim Evaluate As MethodInfo = GetEntry(assm, InterfaceTypes.Evaluate) - Dim SetValue As MethodInfo = GetEntry(assm, InterfaceTypes.SetValue) - Dim DataConvertors = GetEntries(Of DataTransform)(assm) - Dim ConservedString As MethodInfo = (From cMethod As KeyValuePair(Of DataTransform, MethodInfo) - In DataConvertors - Where cMethod.Key.ReservedStringTLTR = True - Select cMethod.Value).FirstOrDefault - If Evaluate Is Nothing Then - Return Nothing - Else - Return New EntryPoint With { - .DeclaredAssemblyType = assm, - .ConservedString = ConservedString, - .Language = DirectCast(attributes(0), LanguageEntryPoint), - .Init = InitEntry, - .Evaluate = Evaluate, - .TypeFullName = assm.FullName, - .SetValue = SetValue, - .DataConvertors = New SortedDictionary(Of Char, MethodInfo)( - DataConvertors.ToDictionary(Function(item) item.Key.TypeChar, - Function(item) item.Value)) - } - End If - End Function - - Private Function GetEntries(Of TEntryType As EntryInterface)(TypeInfo As Type) As KeyValuePair(Of TEntryType, MethodInfo)() - Dim EntryType As Type = GetType(TEntryType) - Dim LQuery = (From LoadHandle As MethodInfo - In TypeInfo.GetMethods(BindingFlags.Public Or BindingFlags.Static) - Let attributes As Object() = LoadHandle.GetCustomAttributes(EntryType, False) - Where Not attributes.IsNullOrEmpty - Select (From attr As Object - In attributes - Let Entry As TEntryType = DirectCast(attr, TEntryType) - Select New KeyValuePair(Of TEntryType, MethodInfo)(Entry, LoadHandle)).ToArray).ToArray - Return LQuery.MatrixToVector - End Function - - Private Function GetEntry(TypeInfo As System.Type, EntryType As InterfaceTypes) As MethodInfo - Dim LQuery = (From LoadHandle As MethodInfo - In TypeInfo.GetMethods(BindingFlags.Public Or BindingFlags.Static) - Let attributes As Object() = LoadHandle.GetCustomAttributes(EntryInterface.TypeInfo, False) - Where Not attributes.IsNullOrEmpty AndAlso - DirectCast(attributes(0), EntryInterface).InterfaceType = EntryType - Select LoadHandle).FirstOrDefault - Return LQuery - End Function - End Module -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Runtime/HybridScripting/Interface/DataTransform.vb b/Shoal.v2/Shoal.v2/Runtime/HybridScripting/Interface/DataTransform.vb deleted file mode 100644 index 01ed48911..000000000 --- a/Shoal.v2/Shoal.v2/Runtime/HybridScripting/Interface/DataTransform.vb +++ /dev/null @@ -1,35 +0,0 @@ -Imports System.Reflection - -Namespace Runtime.HybridsScripting - - - Public Class DataTransform : Inherits EntryInterface - - Public ReadOnly Property TypeChar As Char - Public ReadOnly Property ReservedStringTLTR As Boolean - - ''' - ''' - ''' - ''' - ''' 数据类型的后缀,推荐: - ''' $ ; - ''' & ; - ''' % ; - ''' ? ; - ''' ! ; - ''' @ - ''' - ''' 在脚本环境之中必须要有一个保留的字符串转换方法 - ''' - Sub New(type As Char, Optional ReservedString As Boolean = False) - Call MyBase.New(InterfaceTypes.DataTransform) - _TypeChar = type - _ReservedStringTLTR = ReservedString - End Sub - - Public Overrides Function ToString() As String - Return _TypeChar.ToString - End Function - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Runtime/HybridScripting/Interface/EntryInterface.vb b/Shoal.v2/Shoal.v2/Runtime/HybridScripting/Interface/EntryInterface.vb deleted file mode 100644 index 9e9ad77f9..000000000 --- a/Shoal.v2/Shoal.v2/Runtime/HybridScripting/Interface/EntryInterface.vb +++ /dev/null @@ -1,49 +0,0 @@ -Imports System.Reflection - -Namespace Runtime.HybridsScripting - - ''' - ''' 必须要具备两种类型的接口,目标脚本执行环境才会被成功挂载 - ''' - ''' - - Public Class EntryInterface : Inherits Attribute - - Public ReadOnly Property InterfaceType As InterfaceTypes - - Sub New(Type As InterfaceTypes) - _InterfaceType = Type - End Sub - - Public Overrides Function ToString() As String - Return _InterfaceType.ToString - End Function - - Public Shared ReadOnly Property TypeInfo As Type = GetType(EntryInterface) - - End Class - - ''' - ''' The hybrids programming interface description.(混合编程的接口类型) - ''' - ''' - Public Enum InterfaceTypes - - ''' - ''' 有些简单类型可能并不需要初始化过程,所以这一个接口现在是可选的 - ''' - ''' - EntryPointInit - ''' - ''' 接口类型:Public Function Evaluate(script As String) As Object - ''' - ''' - Evaluate - ''' - ''' Public Function SetValue(variableName As String, value As Object) As Boolean - ''' - ''' - SetValue - DataTransform - End Enum -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Runtime/HybridScripting/Interface/ScriptEntryPoint.vb b/Shoal.v2/Shoal.v2/Runtime/HybridScripting/Interface/ScriptEntryPoint.vb deleted file mode 100644 index 05493d706..000000000 --- a/Shoal.v2/Shoal.v2/Runtime/HybridScripting/Interface/ScriptEntryPoint.vb +++ /dev/null @@ -1,28 +0,0 @@ -Imports System.ComponentModel -Imports System.Reflection - -Namespace Runtime.HybridsScripting - - ''' - ''' 与ShellScript进行混合编程的脚本语言,必须要在API的命名空间之中实现这个自定义属性 - ''' - ''' 每一次切换脚本语句环境之前先使用!EntryName来进行,之后直接可以只用左移运算符尽心计算求值 - ''' - - Public Class LanguageEntryPoint : Inherits DescriptionAttribute - - Public ReadOnly Property Language As String - - ''' - ''' 设置脚本的名称 - ''' - ''' 脚本语言的名称 - Sub New(Language As String, Optional Description As String = "") - Call MyBase.New(Description) - Me.Language = Language - End Sub - - Public Shared ReadOnly Property TypeInfo As System.Type = GetType(LanguageEntryPoint) - - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Runtime/HybridScripting/InteropAdapter.vb b/Shoal.v2/Shoal.v2/Runtime/HybridScripting/InteropAdapter.vb deleted file mode 100644 index 2e4658b06..000000000 --- a/Shoal.v2/Shoal.v2/Runtime/HybridScripting/InteropAdapter.vb +++ /dev/null @@ -1,132 +0,0 @@ -Imports System.Reflection -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.SCOM - -Namespace Runtime.HybridsScripting - - ''' - ''' 和外部脚本进行编程计算 - ''' - ''' 外部脚本的脚本命令行 - ''' 返回所输入的脚本的文本行所执行的结果 - Delegate Function Evaluation(Line As String) As Object - ''' - ''' 从Shoal语言环境之中向外部脚本环境设置变量的值 - ''' - ''' 在外部脚本环境之中的变量的名称 - ''' 值,需要进行类型转换的 - ''' 是否成功 - Delegate Function SetValue(var As String, value As Object) As Boolean - - Public Class InteropAdapter : Inherits RuntimeComponent - Implements IDisposable - - ''' - ''' 小写的键名称 - ''' - Dim _Environments As SortedDictionary(Of String, EntryPoint) = New SortedDictionary(Of String, EntryPoint) - Dim _currentEnvironment As EntryPoint - - ''' - ''' Attach the hybrid scripting environment onto the script host. - ''' - ''' - ''' - Public Function RedirectStream(pointName As String) As Boolean - _currentEnvironment = _Environments(pointName.ToLower) - - Call $"Dynamic load the external ""{ _currentEnvironment.Language.Language}"" runtime enviroment entry point, this may taks a while...".__DEBUG_ECHO - Call _currentEnvironment.InitInvoke() - - If _currentEnvironment.ConservedString Is Nothing Then - Call "[WARNING] Empty string type convertor, data convertion maybe failure in the hybrid scripting!".__DEBUG_ECHO - End If - - Call $"Load entry point and connect to the ""{ _currentEnvironment.Language.Language}"" runtime enviroment successfully!".__DEBUG_ECHO - - Return True - End Function - - ''' - ''' 这个函数会自动调用进行格式化的 - ''' - ''' - ''' - Public Function Evaluate(script As String) As Object - script = ScriptEngine.Strings.Format(script) - Return _currentEnvironment.EvaluateInvoke(script) - End Function - - Sub New(ScriptEngine As ShoalShell.Runtime.ScriptEngine) - Call MyBase.New(ScriptEngine) - - If Not ScriptEngine.PMgrDb.HybridEnvironments.IsNullOrEmpty Then - For Each Environment In ScriptEngine.PMgrDb.HybridEnvironments - Call [Imports](Environment) - Next - End If - End Sub - - '''' - '''' - '''' - '''' 这个参数需要已经去除了第一个!标识符,会临时切换混合编程的脚本环境 - '''' 脚本对象名[ 参数列表] - '''' - '''' - 'Public Function Evaluate(envir As String, Cmdl As CommandLine.CommandLine) As Object - ' Dim ScriptText As String '= ScriptEngine.InternalEntryPointManager.GetHybridsScript(Cmdl.Name) - ' Dim Environment = _Environments(envir.ToLower) - - ' For Each var In Cmdl '其中的参数的值为变量引用,假若找不到变量值,则一律转换为字符串 - ' Dim value As Object = ScriptEngine.MMUDevice.GetValue(var.Value) - - ' If value.GetType = GetType(String) Then '说明不存在目标变量,则现在需要使用类型转换来转换目标字符串参数值 - ' Dim type As Char = var.Key.Last - - ' If Environment.DataConvertors.ContainsKey(type) Then - ' value = Environment.Converts(type, InputHandler.ToString(value)) - ' Else - ' value = Environment.ReservedConvert(InputHandler.ToString(value)) '假若找不到转换器,则默认转换为字符串 - ' End If - ' End If - ' Call Environment.SetValueInvoke(var.Key, value) - ' Next - - ' ScriptText = ScriptEngine.Strings.Format(ScriptText) - - ' Return Environment.EvaluateInvoke(ScriptText) - 'End Function - - Public Function SetValue(variableName As String, value As Object) As Boolean - variableName = ScriptEngine.Strings.Format(variableName) - Return _currentEnvironment.SetValueInvoke(variableName, value) - End Function - - Public Function [Imports](Environment As SPM.Nodes.HybridEnvir) As Boolean - Dim assm As Assembly = Environment.LoadAssembly - - If assm Is Nothing Then - Call $"!!! Missing Module @ {Environment.Path.ToFileURL}..".__DEBUG_ECHO - Return False - End If - - Dim EntryPoint = EnvironmentParser.[Imports](assm.GetType(Environment.TypeId)) - - If EntryPoint.IsNull Then - Return False - End If - - Dim name As String = EntryPoint.Language.Language.ToLower - - If _Environments.ContainsKey(name) Then - Call $"Script entry point ""{name}"": { EntryPoint.TypeFullName}::{EntryPoint.Init.Name} is already mount in the shellscript".__DEBUG_ECHO - Call _Environments.Remove(name) - End If - - Call _Environments.Add(name, EntryPoint) - Call ScriptEngine.MMUDevice.MappingImports.Imports(EntryPoint.DeclaredAssemblyType) - - Return True - End Function - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Runtime/MMU/MMUDevice.vb b/Shoal.v2/Shoal.v2/Runtime/MMU/MMUDevice.vb deleted file mode 100644 index f94cb3df1..000000000 --- a/Shoal.v2/Shoal.v2/Runtime/MMU/MMUDevice.vb +++ /dev/null @@ -1,342 +0,0 @@ -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.SCOM - -Namespace Runtime.MMU - - ''' - ''' Memory Management Unit Device.(大小写不敏感的,直接使用即可) - ''' - Public Class MMUDevice : Inherits RuntimeComponent - - Implements IReadOnlyDictionary(Of String, IPageUnit) - - ''' - ''' 内存设备 - ''' - Protected Friend MMU_CHUNKS As MMU.IPageUnit() - Public ReadOnly Property HeapSize As Integer - Public ReadOnly Property Linker As Linker.Linker - - ''' - ''' 寄存器 - ''' - ReadOnly MTRR As SortedDictionary(Of String, MMU.Variable) = - New SortedDictionary(Of String, Variable) - ReadOnly SRAM As SortedDictionary(Of String, MMU.Variable) = - New SortedDictionary(Of String, Variable) - Protected Friend ReadOnly PageMapping As SortedDictionary(Of String, MMU.PageMapping.DataSourceModel) = - New SortedDictionary(Of String, PageMapping.DataSourceModel) - - ReadOnly __SYS_RESERVED As MMU.Variable - - Public ReadOnly Property ImportedConstants As KeyValuePair(Of String, Object)() - Get - Return (From var In SRAM - Select New KeyValuePair(Of String, Object)(var.Key, var.Value.Value)).ToArray - End Get - End Property - - Public ReadOnly Property Variables As KeyValuePair(Of String, Object)() - Get - Return (From var In Me.MTRR - Select New KeyValuePair(Of String, Object)(var.Key, var.Value.Value)).ToArray - End Get - End Property - - Public ReadOnly Property PageMappings As KeyValuePair(Of String, Object)() - Get - Return (From var In Me.PageMapping - Select New KeyValuePair(Of String, Object)(var.Key, var.Value.Value)).ToArray - End Get - End Property - - ''' - ''' The pointer address of this variable in the memory is always ZERO. - ''' (内存之中的地址总是 0; 函数会写入返回数据到这个保留变量之中) - ''' - ''' - Public ReadOnly Property SystemReserved As MMU.Variable - Get - Return __SYS_RESERVED - End Get - End Property - - Public ReadOnly Property MappingImports As PageMapping.MappingImports - - Sub New(ScriptEngine As Runtime.ScriptEngine, ChunkSize As Integer) - Call MyBase.New(ScriptEngine) - - MappingImports = New PageMapping.MappingImports(Me) - Linker = New Linker.Linker(ScriptEngine) - MMU_CHUNKS = New MMU.Variable(ChunkSize - 1) {} - - __SYS_RESERVED = New Variable("$", "Any", Nothing, False) - Call Allocate(__SYS_RESERVED) - Call __importsConstantsInit() - End Sub - - ''' - ''' 导入系统初始的默认常量 - ''' - Private Sub __importsConstantsInit() - Dim strType As String = GetType(String).FullName - - Call Me.ImportConstant("Null", New MMU.Variable.Any, GetType(MMU.Variable.Any).Name) - Call Me.ImportConstant("HOME", App.HOME, strType) - Call Me.ImportConstant("BIN", App.ExecutablePath, strType) - Call Me.ImportConstant("TEMP", My.Computer.FileSystem.SpecialDirectories.Temp, strType) - Call Me.ImportConstant("DESKTOP", My.Computer.FileSystem.SpecialDirectories.Desktop, strType) - Call Me.ImportConstant("MY_DOCUMENTS", My.Computer.FileSystem.SpecialDirectories.MyDocuments, strType) - Call Me.ImportConstant("APP_DATA", App.LocalData, strType) - Call Me.ImportConstant("PID", App.PID, GetType(Integer).FullName) - End Sub - - Public Sub Update(Addr As Long, value As Object) - PointTo(Addr).Value = value - End Sub - - Public Sub Update(Name As String, value As Object) - Dim var = Me(Name) - var.Value = value - End Sub - - Public Function Read(p As Long) As Object - Return PointTo(p).Value - End Function - - Public Function PointTo(Addr As Long) As MMU.IPageUnit - Dim var = MMU_CHUNKS(Addr) - If var Is Nothing Then '这个内存块还没有被初始化,说明这个指针指向了一个无效的内存地址 - Throw New NullReferenceException($"Invalid Memory: pointer &{Addr} reference to null location!") - Else - Return var - End If - End Function - - ''' - ''' 目标内存对象不存在则会返回-1指针值 - ''' - ''' - ''' 内存对象不存在的时候是否自动分配内存空间 - ''' - Public Function [AddressOf](Name As String, autoAlloc As Boolean) As Long - Dim var = __getPageUnit(Name) - - If var Is Nothing Then - If autoAlloc Then - var = New MMU.Variable(Name, "Any", Nothing, False) - Call Me.MTRR.Add(Name.ToLower, var) - Call Allocate(var) - Else - Return -1 - End If - End If - - Return var.Address - End Function - - ''' - ''' - ''' - ''' 必须为小写的 - ''' - Private Sub __addInternal(keyFind As String, ByRef var As MMU.IPageUnit) - Call Me.MTRR.Add(keyFind, var) - Call Allocate(var) - End Sub - - ''' - ''' 常量是大小写敏感的,但是变量大小写不敏感 - ''' - ''' 不需要加前导符号 - ''' - ''' - ''' - Public Function ImportConstant(Name As String, value As Object, Type As String) As Boolean - Dim KeyFind As String = "&" & Name - - If Me.SRAM.ContainsKey(KeyFind) Then ' 已经存在一个同名的常量,则将新导入的常量替换掉旧的常量 - Dim str As String - Try - str = value.ToString - Catch ex As Exception - str = "null" - End Try - - Call $"Const with name ""{Name}"" was overridden to new value ""{str}""!".__DEBUG_ECHO - Call Me.SRAM.Remove(KeyFind) - End If - - Dim [const] = New Variable(Name, Type, value, True) - - Call Me.SRAM.Add(KeyFind, [const]) - Call Allocate([const]) - - Return True - End Function - - ''' - ''' 函数会返回该新申请的变量的内存之中的地址 - ''' - ''' - ''' - ''' - ''' - Public Function InitLocals(Name As String, value As Object, Type As String) As Long - Dim KeyFind As String = "$" & Name.ToLower - - If Me.MTRR.ContainsKey(KeyFind) Then ' 已经存在一个同名的变量了,不可以再添加了 - Throw New Exception($"A variable with same name ""{Name}"" is already been declared!") - End If - - Dim var As New Variable(Name, Type, value, False) - Call __addInternal(KeyFind, var) - - Return var.Address - End Function - - ''' - ''' 为新的变量分配新的内存区域 - ''' - ''' - Friend Sub Allocate(var As MMU.IPageUnit) - Call __increaseMemory() - MMU_CHUNKS(HeapSize) = var - var.Address = HeapSize - _HeapSize += 1 - End Sub - - Private Sub __increaseMemory() - If HeapSize < MMU_CHUNKS.Length Then - Return - End If - - Dim ChunkBuffer = New MMU.IPageUnit(HeapSize * 1.5) {} - Call Array.ConstrainedCopy(MMU_CHUNKS, Scan0, ChunkBuffer, Scan0, MMU_CHUNKS.Length) - Me.MMU_CHUNKS = ChunkBuffer - End Sub - - Public Function GetValue(Name As String) As Object - Return Me(Name).Value - End Function - - Public Sub WriteMemory(var As Interpreter.Parser.Tokens.LeftAssignedVariable, value As Object) - Dim varAddr = Linker.GetAddress(var) - Call ScriptEngine.MMUDevice.Update(varAddr, value) - End Sub - - Public Sub WriteMemory(var As String, value As Object) - Dim varAddr As Long = [AddressOf](var, True) - Call ScriptEngine.MMUDevice.Update(varAddr, value) - End Sub - - Public Function Exists(Name As String) As Boolean - Name = Name.ToLower - - If Me.MTRR.ContainsKey(Name) Then - Return True - End If - - If Me.SRAM.ContainsKey(Name) Then - Return True - End If - - If Me.PageMapping.ContainsKey(Name) Then - Return True - End If - - Return False - End Function - -#Region "Implements IReadOnlyDictionary(Of String, MMU.IPageUnit)" - - Public ReadOnly Property MTRRSize As Integer Implements IReadOnlyCollection(Of KeyValuePair(Of String, MMU.IPageUnit)).Count - Get - Return MTRR.Count - End Get - End Property - - Private Function __getPageUnit(hashKey As String) As MMU.IPageUnit - If String.IsNullOrEmpty(hashKey) OrElse String.Equals(hashKey, "$") Then - Return __SYS_RESERVED - End If - - If hashKey.First = "&" Then '常量是大小写敏感的 - If Me.SRAM.ContainsKey(hashKey) Then - Return Me.SRAM(hashKey) - Else - Throw New Exception($"Constant ""{hashKey}"" haven't been imports yet!") - End If - End If - - Dim keyFind = hashKey.ToLower '变量是大小写不敏感的 - - If Me.PageMapping.ContainsKey(keyFind) Then '这个方法会优先读取映射的内存 - Return Me.PageMapping(keyFind) - End If - - If Me.MTRR.ContainsKey(keyFind) Then - Return Me.MTRR(keyFind) - Else '不存在则分配新的内存 - Return Nothing - End If - End Function - - ''' - ''' 请不要删除前面的前导符号,这个方法会优先读取映射的内存不,但是更新的时候会两个部分都会更新掉 - ''' - ''' - ''' - Default Public ReadOnly Property GetPageUnit(hashKey As String) As MMU.IPageUnit Implements IReadOnlyDictionary(Of String, MMU.IPageUnit).Item - Get - Dim var = __getPageUnit(hashKey) - - If var Is Nothing Then '不存在则分配新的内存 - var = New MMU.Variable(hashKey, "Any", Nothing, False) - Call Me.MTRR.Add(hashKey.ToLower, var) - Call Allocate(var) - End If - - Return var - End Get - End Property - - Public ReadOnly Property Keys As IEnumerable(Of String) Implements IReadOnlyDictionary(Of String, MMU.IPageUnit).Keys - Get - Return MTRR.Keys - End Get - End Property - - Public ReadOnly Property Values As IEnumerable(Of MMU.IPageUnit) Implements IReadOnlyDictionary(Of String, MMU.IPageUnit).Values - Get - Return MTRR.Values - End Get - End Property - - Public Function ContainsKey(key As String) As Boolean Implements IReadOnlyDictionary(Of String, MMU.IPageUnit).ContainsKey - Return Me.MTRR.ContainsKey(key.ToLower) - End Function - - Public Function TryGetValue(key As String, ByRef value As MMU.IPageUnit) As Boolean Implements IReadOnlyDictionary(Of String, MMU.IPageUnit).TryGetValue - Return Me.MTRR.TryGetValue(key.ToLower, value) - End Function - -#Region "请注意,这里是遍历整个内存模块的" - - Public Iterator Function GetEnumerator() As IEnumerator(Of KeyValuePair(Of String, MMU.IPageUnit)) Implements IEnumerable(Of KeyValuePair(Of String, MMU.IPageUnit)).GetEnumerator - For i As Integer = 0 To Me.HeapSize - Dim var = Me.MMU_CHUNKS(i) - Yield New KeyValuePair(Of String, IPageUnit)(var.Name, var) - Next - End Function - - Private Iterator Function IEnumerable_GetEnumerator() As IEnumerator Implements IEnumerable.GetEnumerator - Yield GetEnumerator() - End Function -#End Region - -#End Region - - End Class -End Namespace - diff --git a/Shoal.v2/Shoal.v2/Runtime/MMU/PageMapping/DDM.vb b/Shoal.v2/Shoal.v2/Runtime/MMU/PageMapping/DDM.vb deleted file mode 100644 index 318440a0f..000000000 --- a/Shoal.v2/Shoal.v2/Runtime/MMU/PageMapping/DDM.vb +++ /dev/null @@ -1,54 +0,0 @@ -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter - -Namespace Runtime.MMU.PageMapping - - Public Class Field : Inherits DataSourceModel - Implements IPageUnit - - Dim BindingField As System.Reflection.FieldInfo - - Sub New(Target As System.Reflection.FieldInfo, Name As String) - Call MyBase.New(Name) - BindingField = Target - End Sub - - Public Overrides Function GetValue() As Object - Return BindingField.GetValue(Nothing) - End Function - - Public Overrides Sub SetValue(value As Object) - Call BindingField.SetValue(Nothing, value) - End Sub - - Public Overrides ReadOnly Property [TypeOf] As Type - Get - Return BindingField.FieldType - End Get - End Property - End Class - - Public Class [Property] : Inherits DataSourceModel - Implements IPageUnit - - Dim BindingProperty As System.Reflection.PropertyInfo - - Sub New(Target As System.Reflection.PropertyInfo, Name As String) - Call MyBase.New(Name) - BindingProperty = Target - End Sub - - Public Overrides Function GetValue() As Object - Return BindingProperty.GetValue(Nothing) - End Function - - Public Overrides Sub SetValue(value As Object) - Call BindingProperty.SetValue(Nothing, value) - End Sub - - Public Overrides ReadOnly Property [TypeOf] As Type - Get - Return BindingProperty.PropertyType - End Get - End Property - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Runtime/MMU/PageMapping/MappingImports.vb b/Shoal.v2/Shoal.v2/Runtime/MMU/PageMapping/MappingImports.vb deleted file mode 100644 index 9079c5542..000000000 --- a/Shoal.v2/Shoal.v2/Runtime/MMU/PageMapping/MappingImports.vb +++ /dev/null @@ -1,110 +0,0 @@ -Imports Microsoft.VisualBasic.ComponentModel -Imports Microsoft.VisualBasic.ComponentModel.DataSourceModel.SchemaMaps -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter - -Namespace Runtime.MMU.PageMapping - - Public Class MappingImports - - ReadOnly MMUDevice As MMUDevice - - Sub New(MMUDevice As MMU.MMUDevice) - Me.MMUDevice = MMUDevice - End Sub - - Public Function [Imports]([Module] As System.Reflection.TypeInfo) As Integer - Dim DataSource As DataSourceModel() = - MappingImports.Imports([Module], False) - For Each Entry As DataSourceModel In DataSource - Call __imports(Entry) - Next - - Return DataSource.Length - End Function - - Private Sub __imports(Page As MMU.PageMapping.DataSourceModel) - Dim KeyFind As String = "$" & Page.Name.ToLower - Dim Handle As Long - - If MMUDevice.PageMapping.ContainsKey(KeyFind) Then ' 已经存在一个同名的变量了,则新的会替换掉旧的 - Handle = MMUDevice.PageMapping(KeyFind).Address - Call MMUDevice.PageMapping.Remove(KeyFind) - End If - - Call MMUDevice.PageMapping.Add(KeyFind, Page) - - If Handle > 0 Then '更新内存区块 - Page.Address = Handle - MMUDevice.MMU_CHUNKS(Handle) = Page - Else - Call MMUDevice.Allocate(Page) - End If - End Sub - -#Region "DataSource Mapping Imports" - - ''' - ''' 只会绑定非实例的属性或者域 - ''' - ''' - ''' - ''' - Public Shared Function [Imports](Assembly As System.Reflection.TypeInfo, Explicit As Boolean) As DataSourceModel() - Return If(Explicit, __importsExplicit(Assembly), __imports(Assembly)) - End Function - - ''' - ''' 只会绑定非实例的属性或者域 - ''' - ''' - ''' - ''' - Private Shared Function __imports(Assembly As System.Reflection.TypeInfo) As DataSourceModel() - Dim MappingEntry = GetType(DataFrameColumnAttribute) - Dim Fields As Field() = (From p As System.Reflection.FieldInfo - In Assembly.GetFields(System.Reflection.BindingFlags.NonPublic Or - System.Reflection.BindingFlags.Public Or - System.Reflection.BindingFlags.Static) - Let attrs As Object() = p.GetCustomAttributes(MappingEntry, inherit:=True) - Let Name As String = __getName(p.Name, attrs) - Select New Field(p, Name)).ToArray - Dim [Property] As [Property]() = (From p As System.Reflection.PropertyInfo - In Assembly.GetProperties(System.Reflection.BindingFlags.NonPublic Or - System.Reflection.BindingFlags.Public Or - System.Reflection.BindingFlags.Static) - Let attrs As Object() = p.GetCustomAttributes(MappingEntry, inherit:=True) - Let Name As String = __getName(p.Name, attrs) - Select New [Property](p, Name)).ToArray - Return Fields.Cast(Of DataSourceModel).Join([Property]).ToArray - End Function - - Private Shared Function __importsExplicit(Assembly As System.Reflection.TypeInfo) As DataSourceModel() - Dim MappingEntry = GetType(DataFrameColumnAttribute) - Dim Fields As Field() = (From p In Assembly.GetFields(System.Reflection.BindingFlags.NonPublic Or - System.Reflection.BindingFlags.Public Or - System.Reflection.BindingFlags.Static) - Let attrs As Object() = p.GetCustomAttributes(MappingEntry, inherit:=True) - Where Not attrs.IsNullOrEmpty - Let Name = __getName(p.Name, attrs) - Select New Field(p, Name)).ToArray - Dim [Property] As [Property]() = (From p In Assembly.GetProperties(System.Reflection.BindingFlags.NonPublic Or - System.Reflection.BindingFlags.Public Or - System.Reflection.BindingFlags.Static) - Let attrs As Object() = p.GetCustomAttributes(MappingEntry, inherit:=True) - Where Not attrs.IsNullOrEmpty - Let Name = __getName(p.Name, attrs) - Select New [Property](p, Name)) - Return Fields.Cast(Of DataSourceModel).Join([Property]).ToArray - End Function - - Private Shared Function __getName(pName As String, attrs As Object()) As String - If attrs.IsNullOrEmpty Then Return pName - - Dim datEntry = DirectCast(attrs(Scan0), DataFrameColumnAttribute) - Dim Name = If(String.IsNullOrEmpty(datEntry.Name), pName, datEntry.Name) - Return Name - End Function -#End Region - - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Runtime/MMU/PageMapping/PageMapping.vb b/Shoal.v2/Shoal.v2/Runtime/MMU/PageMapping/PageMapping.vb deleted file mode 100644 index 4b79c31c6..000000000 --- a/Shoal.v2/Shoal.v2/Runtime/MMU/PageMapping/PageMapping.vb +++ /dev/null @@ -1,57 +0,0 @@ -Imports Microsoft.VisualBasic.ComponentModel -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter -Imports Microsoft.VisualBasic.ComponentModel.DataSourceModel.DataFramework - -Namespace Runtime.MMU.PageMapping - - Public MustInherit Class DataSourceModel : Inherits MMU.Variable - Implements IPageUnit - - Public MustOverride Overrides ReadOnly Property [TypeOf] As Type Implements IPageUnit.TypeOf - - Public Overrides ReadOnly Property PageType As IPAGE_TYPES Implements IPageUnit.PageType - Get - Return IPAGE_TYPES.PageMapping - End Get - End Property - - Public Overrides Property Value As Object Implements IPageUnit.Value - Get - Return GetValue() - End Get - Set(value As Object) - Call SetValue(value) - End Set - End Property - - Public Overrides ReadOnly Property [ReadOnly] As Boolean Implements IPageUnit.ReadOnly - Get - Return False - End Get - End Property - -#Region "Public Property" - - Public MustOverride Sub SetValue(value As Object) - Public MustOverride Function GetValue() As Object -#End Region - - Sub New(Name As String) - Me._Name = Name - End Sub - - Public Overrides Function ToString() As String - Dim o As Object = GetValue() - Dim value As String = If(o Is Nothing, "&NULL", o.ToString) - Return $"{Name} = {value} As {[TypeOf].FullName}" - End Function - - Public Function Convertable(sourceType As Type) As Boolean - Dim convertType As Type = Me.TypeOf - Dim YON As Boolean = - ToStrings.ContainsKey(convertType) AndAlso - ToStrings.ContainsKey(sourceType) - Return YON - End Function - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Runtime/MMU/PageUnit.vb b/Shoal.v2/Shoal.v2/Runtime/MMU/PageUnit.vb deleted file mode 100644 index 75d92a467..000000000 --- a/Shoal.v2/Shoal.v2/Runtime/MMU/PageUnit.vb +++ /dev/null @@ -1,80 +0,0 @@ -Imports System.Text -Imports Microsoft.VisualBasic.ComponentModel -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter - -Namespace Runtime.MMU - - Public Interface IPageUnit : Inherits IAddressHandle - - ReadOnly Property PageType As IPAGE_TYPES - ReadOnly Property Name As String - Property Value As Object - ReadOnly Property Type As String - ReadOnly Property [ReadOnly] As Boolean - ''' - ''' 在使用变量申明语句的时候的注释信息 - ''' - ''' - Property [REM] As String - ''' - ''' 得到变量的值的当前的数据类型 - ''' - ''' - ReadOnly Property [TypeOf] As Type - ''' - ''' 详细信息 - ''' - ''' - Function View() As String - End Interface - - Public Enum IPAGE_TYPES - PageMapping - ''' - ''' Variable - ''' - MMU - ''' - ''' Constant - ''' - SMMU - End Enum - - Public Module PageUnitView - - ''' - ''' 详细信息 - ''' - ''' - Public Function View(PageUnit As MMU.IPageUnit) As String - Dim sbr As StringBuilder = New StringBuilder(1024) - - Call sbr.AppendLine($"{If(PageUnit.[ReadOnly], "[ReadOnly] ", "")}({NameOf(PageUnit.Address)}-> &{PageUnit.Address})") - Call sbr.AppendLine($"{NameOf(PageUnit.Name)}:= {PageUnit.Name}{vbTab}{vbTab}{PageUnit.[REM]}") - Call sbr.AppendLine($"{NameOf(PageUnit.Type)}:= {PageUnit.Type}") - Call sbr.AppendLine() - - If PageUnit.Value() Is Nothing Then - Call sbr.AppendLine(" = null") - Return sbr.ToString - End If - - Dim type As Type = PageUnit.Value.GetType - Dim array As Object() - - If System.Array.IndexOf(type.GetInterfaces, GetType(System.Collections.IEnumerable)) > -1 Then - array = InputHandler.CastArray(Of Object)(PageUnit.Value) - Else - array = {PageUnit.Value()} - End If - - Call sbr.AppendLine(" =") - - For i As Integer = 0 To array.Length - 1 - Call sbr.AppendLine($" [{i}] { InputHandler.ToString(array(i))}") - Next - - Return sbr.ToString - End Function - End Module -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Runtime/MMU/Strings.vb b/Shoal.v2/Shoal.v2/Runtime/MMU/Strings.vb deleted file mode 100644 index e5aa718e2..000000000 --- a/Shoal.v2/Shoal.v2/Runtime/MMU/Strings.vb +++ /dev/null @@ -1,79 +0,0 @@ -Imports System.Text -Imports System.Text.RegularExpressions -Imports Microsoft.VisualBasic.Scripting.InputHandler -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.SCOM -Imports Variable = System.Collections.Generic.KeyValuePair(Of String, Object) - -Namespace Runtime.MMU - - ''' - ''' 字符串服务 - ''' - Public Class Strings : Inherits RuntimeComponent - - Sub New(ScriptEngine As ScriptEngine) - Call MyBase.New(ScriptEngine) - End Sub - - Const Variable As String = "(^|\\)?\$[^$^\\]+" - Const Constant As String = "(^|\\)?&[^&^\\]+" - - ''' - ''' 常量是区分大小写的 - ''' - ''' - ''' - Public Function Format(Expr As String) As String - Dim matches As String() = Regex.Matches(Expr, Variable, RegexOptions.Multiline).ToArray - Dim exprBuilder As StringBuilder = New StringBuilder(Expr) - - For Each var As KeyValuePair(Of String, Object) In (From varRef In MyBase.ScriptEngine.MMUDevice.ImportedConstants - Select varRef - Order By VisualBasic.Strings.Len(varRef.Key) Descending).ToArray - Call exprBuilder.Replace(var.Key, InputHandler.ToString(var.Value)) - Next - - If matches.IsNullOrEmpty Then '没有任何匹配,说明仅仅是一个字符串常量 - Return Expr - End If - - Dim OriginalTokens = (From i As Integer In matches.Sequence - Let strValue As String = matches(i) - Where strValue.First = "\"c - Select i, strValue).ToArray - Dim EscapeTokens As List(Of KeyValuePair(Of String, String)) = New List(Of KeyValuePair(Of String, String)) - - For Each orinlToken In OriginalTokens '先处理需要被转义的部分 - Dim ESC As String = orinlToken.i & "___//-$" - Call EscapeTokens.Add(New KeyValuePair(Of String, String)(ESC, orinlToken.strValue)) - Call exprBuilder.Replace(orinlToken.strValue, ESC) - Next - - Dim ReplacedTokens = (From m As String In matches Where m.First <> "\"c Select m).ToArray - Dim vars = ScriptEngine.MMUDevice.Variables - - For Each token As String In ReplacedTokens - Call __replaceString(token, exprBuilder, vars) - Next - - For Each ESC In EscapeTokens '替换回转义字符 - Call exprBuilder.Replace(ESC.Key, Mid(ESC.Value, 2)) - Next - - Return exprBuilder.ToString - End Function - - Private Sub __replaceString(Token As String, ByRef ExprBuilder As StringBuilder, varList As KeyValuePair(Of String, Object)()) - Dim Variable = (From varEntry In varList - Where InStr(Token, varEntry.Key, CompareMethod.Text) = 1 - Select varEntry - Order By Len(varEntry.Key) Descending).ToArray - - If Variable.IsNullOrEmpty Then Return - - Dim var = Variable(Scan0) - Token = Mid(Token, 1, Len(var.Key)) '主要是因为大小写的问题,所以需要原始的等长字符串来进行替换 - Call ExprBuilder.Replace(Token, InputHandler.ToString(var.Value)) - End Sub - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Runtime/MMU/Variable.vb b/Shoal.v2/Shoal.v2/Runtime/MMU/Variable.vb deleted file mode 100644 index 5614f3634..000000000 --- a/Shoal.v2/Shoal.v2/Runtime/MMU/Variable.vb +++ /dev/null @@ -1,136 +0,0 @@ -Imports System.Text -Imports Microsoft.VisualBasic.ComponentModel - -Namespace Runtime.MMU - - Public Class Variable - Implements IPageUnit, IAddressHandle - - ''' - ''' 内存之中的位置指针,使用 *p 来表示 - ''' - ''' - Public Property Address As Integer Implements IAddressHandle.Address - Public Overridable ReadOnly Property Name As String Implements IPageUnit.Name - Get - Return _Name - End Get - End Property - - Public Overridable Property Value As Object Implements IPageUnit.Value - Get - Return _value - End Get - Set(value As Object) - If [ReadOnly] Then - Throw New Exception($"Constant {Name} can not be re-assigned value!") - Else - _value = value - End If - End Set - End Property - - Public ReadOnly Property Type As String Implements IPageUnit.Type - Public Overridable ReadOnly Property [ReadOnly] As Boolean = False Implements IPageUnit.ReadOnly - ''' - ''' 在使用变量申明语句的时候的注释信息 - ''' - ''' - Public Property [REM] As String Implements IPageUnit.[REM] - - Dim _value As Object - Protected _Name As String - - ''' - ''' 得到变量的值的当前的数据类型 - ''' - ''' - Public Overridable ReadOnly Property [TypeOf] As Type Implements IPageUnit.TypeOf - Get - If _value Is Nothing Then - Return InputHandler.GetType(Type, True) - Else - Return _value.GetType - End If - End Get - End Property - - Public Overridable ReadOnly Property PageType As IPAGE_TYPES Implements IPageUnit.PageType - Get - Return If([ReadOnly], IPAGE_TYPES.SMMU, IPAGE_TYPES.MMU) - End Get - End Property - - ''' - ''' For Serialization - ''' - Sub New() - End Sub - - ''' - ''' - ''' - ''' - ''' - ''' 是否为常量 - Sub New(Name As String, Type As String, value As Object, [ReadOnly] As Boolean) - Me._Name = Name - Me.Type = Type - Me.Value = value - Me.ReadOnly = [ReadOnly] - End Sub - - Public Overrides Function ToString() As String - Dim value As String = "" - Try - value = Me.Value.ToString - Catch ex As Exception - value = "null" - End Try - Return $"{If([ReadOnly], "[ReadOnly] ", "")}({NameOf(Address)}-> &{Address}) ""{Name}"" As {Type} = {value}" - End Function - -#Region "IDisposable Support" - Private disposedValue As Boolean ' To detect redundant calls - - ' IDisposable - Protected Overridable Sub Dispose(disposing As Boolean) - If Not Me.disposedValue Then - If disposing Then - ' TODO: dispose managed state (managed objects). - End If - - ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below. - ' TODO: set large fields to null. - End If - Me.disposedValue = True - End Sub - - ' TODO: override Finalize() only if Dispose(disposing As Boolean) above has code to free unmanaged resources. - 'Protected Overrides Sub Finalize() - ' ' Do not change this code. Put cleanup code in Dispose(disposing As Boolean) above. - ' Dispose(False) - ' MyBase.Finalize() - 'End Sub - - ' This code added by Visual Basic to correctly implement the disposable pattern. - Public Sub Dispose() Implements IDisposable.Dispose - ' Do not change this code. Put cleanup code in Dispose(disposing As Boolean) above. - Dispose(True) - ' TODO: uncomment the following line if Finalize() is overridden above. - ' GC.SuppressFinalize(Me) - End Sub -#End Region - - Public Function View() As String Implements IPageUnit.View - Return MMU.PageUnitView.View(Me) - End Function - - Public Class Any - - Public Overrides Function ToString() As String - Return "Any Data Type" - End Function - End Class - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Runtime/RuntimeComponent.vb b/Shoal.v2/Shoal.v2/Runtime/RuntimeComponent.vb deleted file mode 100644 index 46227bf25..000000000 --- a/Shoal.v2/Shoal.v2/Runtime/RuntimeComponent.vb +++ /dev/null @@ -1,57 +0,0 @@ -Namespace Runtime.SCOM - - ''' - ''' This type of the class object consist of the shoal shell scripting engine. - ''' - ''' - Public MustInherit Class RuntimeComponent : Implements System.IDisposable - - ''' - ''' Script engine.(脚本引擎) - ''' - ''' - ''' - ''' - Public Overridable ReadOnly Property ScriptEngine As ScriptEngine - - Sub New(ScriptEngine As ShoalShell.Runtime.ScriptEngine) - Me.ScriptEngine = ScriptEngine - End Sub - - Public Overrides Function ToString() As String - Return ScriptEngine.ToString & "::" & Me.GetType.FullName - End Function - -#Region "IDisposable Support" - Protected disposedValue As Boolean ' To detect redundant calls - - ' IDisposable - Protected Overridable Sub Dispose(disposing As Boolean) - If Not Me.disposedValue Then - If disposing Then - ' TODO: dispose managed state (managed objects). - End If - - ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below. - ' TODO: set large fields to null. - End If - Me.disposedValue = True - End Sub - - ' TODO: override Finalize() only if Dispose(disposing As Boolean) above has code to free unmanaged resources. - 'Protected Overrides Sub Finalize() - ' ' Do not change this code. Put cleanup code in Dispose(disposing As Boolean) above. - ' Dispose(False) - ' MyBase.Finalize() - 'End Sub - - ' This code added by Visual Basic to correctly implement the disposable pattern. - Public Sub Dispose() Implements IDisposable.Dispose - ' Do not change this code. Put cleanup code in Dispose(disposing As Boolean) above. - Dispose(True) - ' TODO: uncomment the following line if Finalize() is overridden above. - ' GC.SuppressFinalize(Me) - End Sub -#End Region - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Runtime/RuntimeEnvironment.vb b/Shoal.v2/Shoal.v2/Runtime/RuntimeEnvironment.vb deleted file mode 100644 index f9f8f673a..000000000 --- a/Shoal.v2/Shoal.v2/Runtime/RuntimeEnvironment.vb +++ /dev/null @@ -1,49 +0,0 @@ -Imports Microsoft.VisualBasic.CommandLine.Reflection -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Configuration - -Namespace Runtime.SCOM - - Public Module RuntimeEnvironment - - Public Const SCAN_PLUGINS_ARGVS As String = "-scan.plugins -dir ""{0}""" - - ''' - ''' -scan.plugins -dir <dir>[ -ext *.*/*.dll/*.exe/*.lib /top_only /clean] - ''' - ''' - ''' - - Public Function ScanPlugins(args As CommandLine.CommandLine) As Integer - Dim Dir As String = args("-dir"), Ext As String = args("-ext") - Ext = If(String.IsNullOrEmpty(Ext), "*.dll;*.exe;*.lib", Ext) - Dim ExtList As String() = Ext.Split(";"c) - Dim [option] = If(args.GetBoolean("/recursive") = False, - FileIO.SearchOption.SearchTopLevelOnly, - FileIO.SearchOption.SearchAllSubDirectories) - Dim FilesForScan = FileIO.FileSystem.GetFiles(Dir, [option], ExtList) - - If args.GetBoolean("/clean") Then - Try - Call FileIO.FileSystem.DeleteFile(Config.LoadDefault.GetRegistryFile) - Catch ex As Exception - - End Try - End If - - Dim Db As Microsoft.VisualBasic.Scripting.ShoalShell.SPM.PackageModuleDb = - Microsoft.VisualBasic.Scripting.ShoalShell.SPM.PackageModuleDb.Load(Config.LoadDefault.GetRegistryFile) - - Using SPM As New Scripting.ShoalShell.SPM.ShoalPackageMgr(Db) - For Each File As String In FilesForScan - Call SPM.Imports(File) - Next - - Call SPM.UpdateDb() - End Using - - Return 0 - End Function - End Module -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Runtime/ScriptEngine.vb b/Shoal.v2/Shoal.v2/Runtime/ScriptEngine.vb deleted file mode 100644 index 1ea089315..000000000 --- a/Shoal.v2/Shoal.v2/Runtime/ScriptEngine.vb +++ /dev/null @@ -1,165 +0,0 @@ -Imports System.ComponentModel -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Configuration -Imports Microsoft.VisualBasic.Scripting.ShoalShell.HTML -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.LDM.Expressions -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.MMU -Imports Microsoft.VisualBasic.Linq - -Namespace Runtime - - ''' - ''' Shoal Shell script Engine, you can using this object to embedded a script engine into - ''' your application or using this script engine as a powerfully debugging tool. - ''' Try using object to dynamics programming in your .NET program. - ''' - - Public Class ScriptEngine : Inherits SCOM.RuntimeComponent - - ''' - ''' Shoal Shell memory management device. - ''' - ''' - Public ReadOnly Property MMUDevice As MMU.MMUDevice - Public ReadOnly Property Interpreter As Interpreter.Interpreter - Public ReadOnly Property PMgrDb As SPM.PackageModuleDb - Public ReadOnly Property WikiEngine As HTML.Wiki - - Public Function GetHelpInfo(obj As String, ShowManual As Boolean) As String() - Return WikiEngine.WikiSearchView(obj) - End Function - - Public Overrides ReadOnly Property ScriptEngine As ScriptEngine - Get - Return Me - End Get - End Property - - ''' - ''' String interpolated services.(字符串服务) - ''' - ''' - Public ReadOnly Property Strings As Runtime.MMU.Strings - Public ReadOnly Property ExecuteModel As ExecuteModel - - Public ReadOnly Property TopOfStack As Object - Get - Return MMUDevice.SystemReserved.Value - End Get - End Property - - Public ReadOnly Property ImportsAPI As String() - Get - Return Interpreter.EPMDevice.ImportedAPI.ToArray(Function(api) api.Value.Name) - End Get - End Property - - Public ReadOnly Property Config As Config - - ''' - ''' Create the Shoal instance using the default configuration file: . - ''' (采用默认的配置文件数据来初始化脚本引擎) - ''' - Sub New() - Call Me.New(Config.LoadDefault) - End Sub - - Sub New(Config As Config) - Call MyBase.New(Nothing) - - Me.Config = Config - PMgrDb = ShoalShell.SPM.PackageModuleDb.Load(Config.GetRegistryFile) - Dim SPM = New SPM.ShoalPackageMgr(PMgrDb) - - ExecuteModel = New ExecuteModel(Me) - MMUDevice = New MMU.MMUDevice(Me, Config.GetInitHeapSize) - Interpreter = New Interpreter.Interpreter(Me, SPM) - Strings = New Runtime.MMU.Strings(Me) - WikiEngine = New Wiki(Me) - - Call Interpreter.EPMDevice.AnonymousDelegate.CdTemp() - Call [Imports](Of ShoalShell.Configuration.Configuration)(New ShoalShell.Configuration.Configuration(Me)) - End Sub - - ''' - ''' Evaluate the script line which is user input from the terminal. - ''' (处理来自于终端输入的一行脚本代码) - ''' - ''' User input from the terminal. - ''' - Public Function Exec(Script As String) As Object - Dim Expr As PrimaryExpression = - ShoalShell.Interpreter.Interpreter.InternalExpressionParser(Script) - - If Expr.IsNonExecuteCode = True Then Return Nothing - -#Const DEBUG_ENABLE = 0 - -#If DEBUG_ENABLE Then - Return __execInner(Expr) -#Else - Try - Return __execInner(Expr) - Catch ex As Exception - ex = New Exception(vbCrLf & vbCrLf & - $" ({Script.GetHashCode}::ERROR_LINE) ==> "" {Script} """ & - vbCrLf & vbCrLf, ex) - Call ex.PrintException - Call App.LogException(ex) - Return Nothing - End Try -#End If - End Function - - Private Function __execInner(Expr As PrimaryExpression) As Object - Dim value As Object = ExecuteModel.Exec(Expr) '从终端输入的脚本需要额外的错误处理来避免崩溃 - Return value - End Function - - ''' - ''' Evaluate script which is on a specific file system location: . - ''' (处理来自于文件之中的脚本代码) - ''' - ''' The file path of the script file. - ''' - Public Function Source(path As String) As Object - Dim Pager As Interpreter.LDM.SyntaxModel = Interpreter.ParseFile(path) - Dim value As Object = - New Runtime.FSMMachine(Me, Pager).Execute - Return value - End Function - - Public Function GetValue(Name As String) As Object - Return MMUDevice(Name).Value - End Function - - Public Function [TypeOf](Name As String) As Type - Return MMUDevice(Name).TypeOf - End Function - - Public Overrides Function ToString() As String - Return MMUDevice.HeapSize - End Function - - Public Function [Imports](type As Type) As Boolean - Return Me.Interpreter.EPMDevice.Imports(type) - End Function - - Public Function [Imports](Of T As Class)(obj As T) As Boolean - Try - Call Interpreter.EPMDevice.ImportsInstance(Of T)(obj) - Catch ex As Exception - Call App.LogException(ex, $"{NameOf(ScriptEngine)}::{NameOf(Runtime.ScriptEngine.Imports)}") - Return False - End Try - - Return True - End Function - - Protected Overrides Sub Dispose(disposing As Boolean) - Call Interpreter.Dispose() - Call Me.Config.Save() - Call MyBase.Dispose(disposing) - End Sub - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Runtime/StatusMachine/ExecuteModel.vb b/Shoal.v2/Shoal.v2/Runtime/StatusMachine/ExecuteModel.vb deleted file mode 100644 index 46b092dea..000000000 --- a/Shoal.v2/Shoal.v2/Runtime/StatusMachine/ExecuteModel.vb +++ /dev/null @@ -1,813 +0,0 @@ -Imports System.Text -Imports Microsoft.VisualBasic.CommandLine.Reflection -Imports Microsoft.VisualBasic.FileIO.FileSystem -Imports Microsoft.VisualBasic.Linq.Extensions -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.LDM.Expressions -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.Linker.APIHandler -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.Linker.APIHandler.Alignment -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Exceptions -Imports arg = System.Collections.Generic.KeyValuePair(Of String, Object) - -Namespace Runtime - - ''' - ''' 执行依据脚本语句 - ''' - Public Class ExecuteModel : Inherits Runtime.SCOM.RuntimeComponent - - ReadOnly __Exechash As SortedDictionary(Of Interpreter.LDM.Expressions.ExpressionTypes, ExecuteModel.Execute) = - New SortedDictionary(Of Interpreter.LDM.Expressions.ExpressionTypes, Execute) From { - {Interpreter.LDM.Expressions.ExpressionTypes.Die, AddressOf Die}, - {Interpreter.LDM.Expressions.ExpressionTypes.DoUntil, AddressOf DoUntil}, - {Interpreter.LDM.Expressions.ExpressionTypes.DoWhile, AddressOf DoWhile}, - {Interpreter.LDM.Expressions.ExpressionTypes.DynamicsExpression, AddressOf DynamicsExpression}, - {Interpreter.LDM.Expressions.ExpressionTypes.Else, AddressOf [Else]}, - {Interpreter.LDM.Expressions.ExpressionTypes.ElseIf, AddressOf [ElseIf]}, - {Interpreter.LDM.Expressions.ExpressionTypes.ForLoop, AddressOf ForLoop}, - {Interpreter.LDM.Expressions.ExpressionTypes.FunctionCalls, AddressOf FunctionCalls}, - {Interpreter.LDM.Expressions.ExpressionTypes.HashTable, AddressOf Hashtable}, - {Interpreter.LDM.Expressions.ExpressionTypes.HybirdsScriptPush, AddressOf HybirdsScriptPush}, - {Interpreter.LDM.Expressions.ExpressionTypes.HybridsScript, AddressOf HybridsScript}, - {Interpreter.LDM.Expressions.ExpressionTypes.If, AddressOf [If]}, - {Interpreter.LDM.Expressions.ExpressionTypes.Imports, AddressOf [Imports]}, - {Interpreter.LDM.Expressions.ExpressionTypes.Include, AddressOf Include}, - {Interpreter.LDM.Expressions.ExpressionTypes.Library, AddressOf Library}, - {Interpreter.LDM.Expressions.ExpressionTypes.OutDeviceRef, AddressOf OutDeviceRef}, - {Interpreter.LDM.Expressions.ExpressionTypes.VariableDeclaration, AddressOf VariableDeclaration}, - {Interpreter.LDM.Expressions.ExpressionTypes.FileIO, AddressOf FileIO}, - {Interpreter.LDM.Expressions.ExpressionTypes.DynamicsCast, AddressOf DynamicsCast}, - {Interpreter.LDM.Expressions.ExpressionTypes.CollectionOpr, AddressOf CollectionOpr}, - {Interpreter.LDM.Expressions.ExpressionTypes.Memory, AddressOf Memory}, - {Interpreter.LDM.Expressions.ExpressionTypes.Delegate, AddressOf [Delegate]}, - {Interpreter.LDM.Expressions.ExpressionTypes.CD, AddressOf Cd}, - {Interpreter.LDM.Expressions.ExpressionTypes.Wiki, AddressOf Wiki}, - {Interpreter.LDM.Expressions.ExpressionTypes.Source, AddressOf Source}, - {Interpreter.LDM.Expressions.ExpressionTypes.RedirectStream, AddressOf RedirectStream} - } - - Public ReadOnly Property ArgumentsLinker As Interpreter.Linker.APIHandler.Arguments - Public ReadOnly Property IODevice As Runtime.DeviceDriver.IODeviceDriver - Public ReadOnly Property DynamicsHwnd As Runtime.DeviceDriver.DynamicsCast - Public ReadOnly Property OutputDevice As Runtime.DeviceDriver.OutputDeviceDriver - Public ReadOnly Property Stack As Stack(Of Runtime.Stack) = New Stack(Of Stack) - - Sub New(ScriptEngine As ShoalShell.Runtime.ScriptEngine) - Call MyBase.New(ScriptEngine) - - _ArgumentsLinker = New Arguments(ScriptEngine) - - DynamicsHwnd = New DeviceDriver.DynamicsCast(ScriptEngine) - OutputDevice = New DeviceDriver.OutputDeviceDriver(ScriptEngine) - IODevice = New DeviceDriver.IODeviceDriver(ScriptEngine) - End Sub - - ''' - ''' ShoalShell evaluation. - ''' - ''' - ''' - Public Delegate Function Execute(Expression As Interpreter.LDM.Expressions.PrimaryExpression) As Object - - ''' - ''' Evaluate the Shoal Language DataModel and returns the script value. - ''' (出于性能方面的考虑,这个执行函数是没有进行任何错误处理的) - ''' - ''' - ''' - Public Function Exec(Expression As Interpreter.LDM.Expressions.PrimaryExpression) As Object - Dim Execute = Me.__Exechash(Expression.ExprTypeID) - Dim value = Execute(Expression) - Return value - End Function - - Public Function [Imports](Type As Type) As Boolean - Try - Call IODevice.ImportsHandler(Type) - Call DynamicsHwnd.ImportsHandler(Type) - Call OutputDevice.ImportsHandler(Type) - - Return True - Catch ex As Exception - Return Conversion.CTypeDynamic(Of Boolean)(App.LogException(ex, NameOf(ExecuteModel) & "::" & NameOf([Imports]))) - End Try - End Function - -#Region "Language Syntax" - - Public Function RedirectStream(Expression As Interpreter.LDM.Expressions.PrimaryExpression) As Object - Dim Expr = Expression.As(Of Interpreter.LDM.Expressions.HybridScript.RedirectStream) - Return ScriptEngine.Interpreter.EPMDevice.HybridAdapter.RedirectStream(Expr.EntryPoint) - End Function - - Public Function Source(Expression As Interpreter.LDM.Expressions.PrimaryExpression) As Object - Dim Expr = Expression.As(Of Interpreter.LDM.Expressions.Source) - Dim args As KeyValuePair(Of String, Object)() - - If Expr.args.IsNullOrEmpty Then - args = New KeyValuePair(Of String, Object)() {} - Else - args = (From obj In Expr.args - Select New KeyValuePair(Of String, Object)(obj.Key, Exec(obj.Value.Expression))).ToArray - End If - - Dim path As String = ScriptEngine.Strings.Format(InputHandler.ToString(Exec(Expr.Path.Expression))) - Dim value As Object = InternalExtension.Source(path, args) - Return value - End Function - - Public Function CollectionOpr(Expression As Interpreter.LDM.Expressions.PrimaryExpression) As Object - Dim Expr = Expression.As(Of Interpreter.LDM.Expressions.CollectionOpr) - Dim Type As Type = InputHandler.GetType(Expr.Type, True) - Dim ArrayValue = (From obj In Expr.Array Select Microsoft.VisualBasic.Conversion.CTypeDynamic(Exec(obj.Expression), Type)).ToArray - Dim Array = If(GetType(Object).Equals(Type), ArrayValue, [DirectCast](ArrayValue, Type)) - - If Expr.DeclareNew Then - Dim addr = ScriptEngine.MMUDevice.InitLocals(Expr.InitLeft.GetTokenValue, Array, Expr.Type) - ScriptEngine.MMUDevice.PointTo(addr).[REM] = Expr.Comments - Else - Call ScriptEngine.MMUDevice.WriteMemory(Expr.InitLeft, Array) - End If - - Return Array - End Function - - ''' - ''' 在入口点管理器之中生成一个匿名函数 - ''' - ''' - ''' - Public Function [Delegate](Expression As Interpreter.LDM.Expressions.PrimaryExpression) As Object - Dim Expr = Expression.As(Of Interpreter.LDM.Expressions.Delegate) - Call ScriptEngine.Interpreter.EPMDevice.AnonymousDelegate.Declare(Expr.FuncPointer, Expr.FuncExpr) - Return Expr.FuncExpr - End Function - - Public Function Die(Expression As Interpreter.LDM.Expressions.PrimaryExpression) As Object - Dim Expr = Expression.As(Of Interpreter.LDM.Expressions.Die) - Dim Trigger As Object = Exec(Expr.When.Expression) - - If Microsoft.VisualBasic.Conversion.CTypeDynamic(Of Boolean)(Trigger) Then - Throw New RuntimeException(Expr.ExceptionMessage, ScriptEngine) - Else - Return 0 - End If - End Function - - ''' - ''' 在解释器阶段由于缺少类型信息无法判断目标类型,所以被设置为动态类型 - ''' - Public Function DynamicsExpression(Expression As Interpreter.LDM.Expressions.PrimaryExpression) As Object - Dim Expr = Expression.As(Of Interpreter.LDM.Expressions.DynamicsExpression) - - If Expr.IsVariable OrElse Expr.IsConstant Then - Dim p = ScriptEngine.MMUDevice.AddressOf(Expr.PrimaryExpression, False) - - If p > -1 Then - Return ScriptEngine.MMUDevice.PointTo(p).Value - End If - End If - - Dim API As Interpreter.Linker.APIHandler.APIEntryPoint = - ScriptEngine.Interpreter.EPMDevice.TryGetEntryPoint(Expr.PrimaryExpression) - - If API Is Nothing Then - Return Expr.PrimaryExpression - Else - Dim LQuery = (From entryPoint In API '不带任何参数的函数调用 - Let params = entryPoint.EntryPoint.EntryPoint.GetParameters - Let args As Object() = __fillBool(params) - Where Not args Is Nothing - Select args, entryPoint.EntryPoint - Order By args.Length Ascending).ToArray '优先调用不带任何参数的方法 - - If LQuery.IsNullOrEmpty Then '找不到符合条件的命令,则只当作字符串处理 - Return Expr.PrimaryExpression - Else - Dim invoke = LQuery(Scan0) - Return invoke.EntryPoint.DirectInvoke(invoke.args) - End If - End If - End Function - - ''' - ''' 逻辑值默认为False - ''' - ''' - ''' - Private Function __fillBool(params As System.Reflection.ParameterInfo()) As Object() - If params.IsNullOrEmpty Then - Return {} - End If - - Dim args As New List(Of Object) - For Each param In params - If Not param.ParameterType.Equals(GetType(Boolean)) Then - Return Nothing - Else - Call args.Add(False) - End If - Next - - Return args.ToArray - End Function - - ''' - ''' 函数调用。函数的执行级别优先于Delegate函数指针 - ''' - Public Function FunctionCalls(Expression As Interpreter.LDM.Expressions.PrimaryExpression) As Object - Dim Expr = Expression.As(Of Interpreter.LDM.Expressions.FunctionCalls) - Dim __execName As String = "" - Dim value As Object = Nothing - Dim API As Interpreter.Linker.APIHandler.APIEntryPoint = - ScriptEngine.Interpreter.EPMDevice.TryGetEntryPoint(Expr.EntryPoint, __execName, execValue:=value) - - If API Is Nothing Then '假若找不到,则说明是变量之间的赋值操作了 - Dim __execDelegate As Boolean = False - Dim __execValue As Object = value - - value = ScriptEngine.Interpreter.EPMDevice.AnonymousDelegate.Exec( - __execName, - Expr, - __execDelegate) - - If Not __execDelegate Then '没有找到相应的函数指针,则可能只是简单的赋值函数 - - If Not __execMemberAccessor(Expr, __execValue) Then ' 好像这个if并没有什么卵用, 但是为了以后的拓展方便,现在留着他 - If Expr.Parameters.IsNullOrEmpty Then - value = __execValue ' EntryPoint表达式这个已经在寻找函数名称的时候计算过了,不需要再计算一遍了,直接赋值 - Else - Throw New ShoalShell.Runtime.Exceptions.FunCallFailured(Expr, Me.ScriptEngine) - End If - Else - value = __execValue ' 返回对象的实例方法和属性的计算值 - End If - End If - Else - value = __functionCalls(API, Expr) - End If - - Call ScriptEngine.MMUDevice.WriteMemory(Expr.LeftAssignedVariable, value) - - Return value - End Function - - ''' - ''' -> - ''' 执行的是对象本身所具有的实例方法或者属性值的获取,请注意,这个必须要为拓展方法形式 - ''' - ''' 方法所执行的对象 - ''' - Private Function __execMemberAccessor(Expr As Interpreter.LDM.Expressions.FunctionCalls, ByRef obj As Object) As Boolean - If obj Is Nothing Then - Return False ' 无法计算入口点, 代码没有被执行 - End If - - Dim Name As String = InputHandler.ToString(Exec(Expr.EntryPoint.Name.Expression)) - - If String.IsNullOrEmpty(Name) Then - Return False - End If - - Dim type As Type = obj.GetType - Dim properties = type.GetProperties - Dim [Property] = (From prop In properties Where String.Equals(prop.Name, Name, StringComparison.OrdinalIgnoreCase) Select prop).FirstOrDefault - - If Not [Property] Is Nothing Then - obj = [Property].GetValue(obj) - Return True - End If - - Dim methods As System.Reflection.MethodInfo() = type.GetMethods - methods = (From method As System.Reflection.MethodInfo - In methods - Where String.Equals(Name, method.Name, StringComparison.OrdinalIgnoreCase) - Select method).ToArray ' 可能有重载方法 - - Dim argsValue As arg() = Me._ArgumentsLinker.GetParameters(Expr) - Dim OverloadsAlignments = (From MethodEntryPoint As System.Reflection.MethodInfo - In methods - Let match As ParamAlignments = OverloadsAlignment(MethodEntryPoint, argsValue) - Where Not match Is Nothing - Select match, MethodEntryPoint - Order By match.Score Descending).ToArray - If OverloadsAlignments.IsNullOrEmpty Then '找不到可以访问的方法 - Return False ' 也不是对象实例方法的调用 - End If - - Dim FoundEntryPoint = OverloadsAlignments(Scan0) - Dim args As Object() = (From argValue As Object - In FoundEntryPoint.match.args - Select If(InputHandler.GetType(argValue, True).Equals(GetType(String)), - ScriptEngine.Strings.Format(InputHandler.ToString(argValue)), - argValue)).ToArray - - obj = FoundEntryPoint.MethodEntryPoint.Invoke(obj, args) - - Return True - End Function - - Private Function __nonOverlaodsDirectInvoke(API As EntryPoints.APIEntryPoint, args As Object()) As Object - Dim value As Object = API.DirectInvoke((From argValue As Object - In args - Select If(InputHandler.GetType(argValue, True).Equals(GetType(String)), - ScriptEngine.Strings.Format(InputHandler.ToString(argValue)), argValue)).ToArray, True) - Return value - End Function - - ''' - ''' 执行的是API方法 - ''' - ''' - ''' - ''' - Private Function __functionCalls(API As Interpreter.Linker.APIHandler.APIEntryPoint, Expr As Interpreter.LDM.Expressions.FunctionCalls) As Object - Dim argsValue As arg() = Me._ArgumentsLinker.GetParameters(Expr) - - If (Not API.IsOverloaded) AndAlso Alignment.FunctionCalls.IsOrderReference(argsValue) Then - Dim EntryPoint = API(Scan0).EntryPoint - Dim params = EntryPoint.EntryPoint.GetParameters - Dim defaults As Object() = (From param As System.Reflection.ParameterInfo - In params - Where param.IsOptional - Select param.DefaultValue).ToArray - Dim args As Object() = New Object(EntryPoint.EntryPoint.GetParameters.Length - 1) {} - Dim inputs As Object() = argsValue.ToArray(Function(arg, idx) Alignment.FunctionCalls.AlignType(params(idx).ParameterType, arg.Value)) - Dim offset As Integer = args.Length - inputs.Length - - Call Array.ConstrainedCopy(inputs, Scan0, args, Scan0, inputs.Length) - Call Array.ConstrainedCopy(defaults, defaults.Length - offset, args, inputs.Length, offset) - - Return __nonOverlaodsDirectInvoke(EntryPoint, args) - End If - - Dim OverloadsAlignments = (From EntryPoint As SignedFuncEntryPoint In API - Let EntryPointRef = EntryPoint.EntryPoint - Let match = Interpreter.Linker.APIHandler.Alignment.FunctionCalls.OverloadsAlignment(EntryPointRef.EntryPoint, argsValue) - Where Not match Is Nothing - Select match, EntryPointRef - Order By match.Score Descending).ToArray - If OverloadsAlignments.IsNullOrEmpty Then '找不到可以访问的方法 - Throw New Runtime.Exceptions.MethodNotFoundException(API, argsValue, Expr, ScriptEngine) - Else - Dim FoundEntryPoint = OverloadsAlignments(Scan0) - Dim value As Object = __apiCall(FoundEntryPoint.EntryPointRef, FoundEntryPoint.match) - Return value - End If - End Function - - Private Function __apiCall(apiEntryPoint As EntryPoints.APIEntryPoint, argValues As ParamAlignments) As Object - Dim args As Object() = (From argValue As Object - In argValues.args - Select If(InputHandler.GetType(argValue, True).Equals(GetType(String)), - ScriptEngine.Strings.Format(InputHandler.ToString(argValue)), - argValue)).ToArray - Dim value As Object = apiEntryPoint.DirectInvoke(args, True) - Return value - End Function - - Public Function VariableDeclaration(Expression As PrimaryExpression) As Object - Dim Expr = Expression.As(Of VariableDeclaration) - Dim value As Object = Exec(Expr.Initializer.Expression) - Dim refType As Type = InputHandler.GetType(Expr.Type, True) - - If value Is Nothing Then - Return Nothing - End If - - Dim valType As Type = value.GetType - If valType.IsArray Then - value = Scripting.CastArray(value, refType) - Else - value = Conversion.CTypeDynamic(value, refType) - End If - - Dim p = ScriptEngine.MMUDevice.InitLocals(Expr.Name, value, Expr.Type) - ScriptEngine.MMUDevice.PointTo(p).[REM] = Expr.Comments - - Return value - End Function - - ''' - ''' 单独执行输出设备的调用,在终端输出或者打开绘图窗口 - ''' - Public Function OutDeviceRef(Expression As Interpreter.LDM.Expressions.PrimaryExpression) As Object - Dim Expr = Expression.As(Of Driver.OutDeviceRef) - Dim value = Exec(Expr.InnerExpression.Expression) - - Call Me.OutputDevice.HandleOutput(value) - - Return value - End Function - - Public Function Hashtable(Expression As Interpreter.LDM.Expressions.PrimaryExpression) As Object - - End Function - - ''' - ''' << Hybrids scripting; - ''' - Public Function HybridsScript(Expression As Interpreter.LDM.Expressions.PrimaryExpression) As Object - Dim Expr = Expression.As(Of Interpreter.LDM.Expressions.HybridScript.HybridsScript) - Dim Script As String = InputHandler.ToString(Exec(Expr.ExternalScript.Expression)) - Dim value = ScriptEngine.Interpreter.EPMDevice.HybridAdapter.Evaluate(Script) - - Call ScriptEngine.MMUDevice.WriteMemory(Expr.LeftAssignedVariable, value) - - Return value - End Function - - ''' - ''' >> Setup variable of hybrids scripting; - ''' - Public Function HybirdsScriptPush(Expression As Interpreter.LDM.Expressions.PrimaryExpression) As Object - Dim Expr = Expression.As(Of Interpreter.LDM.Expressions.HybridScript.HybirdsScriptPush) - Dim var As String = InputHandler.ToString(Exec(Expr.ExternalVariable.Expression)) - Dim value As Object = Exec(Expr.InternalExpression.Expression) - - Return ScriptEngine.Interpreter.EPMDevice.HybridAdapter.SetValue(var, value) - End Function - - ''' - ''' > 操作符将数据写入文件 - ''' - ''' - ''' - Public Function FileIO(Expression As Interpreter.LDM.Expressions.PrimaryExpression) As Object - Dim Expr = Expression.As(Of Driver.FileIO) - Dim value = Exec(Expr.Value.Expression) - Dim Path = Exec(Expr.Path.Expression) - - Return Me.IODevice.WriteData(value, Path) - End Function - - Public Function DynamicsCast(Expression As Interpreter.LDM.Expressions.PrimaryExpression) As Object - Dim Expr = Expression.As(Of Driver.DynamicsCast) - Dim TypeID = InputHandler.ToString(Exec(Expr.TypeID.Expression)) - Dim value As Object = Exec(Expr.SourceExpr.Expression) - value = Me.DynamicsHwnd.TypeCastDynamics(value, TypeID) - Call ScriptEngine.MMUDevice.WriteMemory(Expr.LeftAssigned, value) - - Return value - End Function -#End Region - -#Region "流程控制结构" - - ''' - ''' For n in {a, b, c, d, e} => {delegate} - ''' For i in {5 to 100 step 9} => {delegate} - ''' - ''' - ''' - Public Function ForLoop(Expression As Interpreter.LDM.Expressions.PrimaryExpression) As Object - Dim Expr = Expression.As(Of Interpreter.LDM.Expressions.ControlFlows.ForLoop) - Dim value As Object = - If(Expr.Collection.LoopType = ControlFlows.ForLoopStatus.LoopTypes.ForEach, - __forEach(Expr), - __forStep(Expr)) - - Return value - End Function - - Private Function __forEach(Expr As Interpreter.LDM.Expressions.ControlFlows.ForLoop) As Object - Dim Collection = Expr.Collection.As(Of Interpreter.LDM.Expressions.ControlFlows.ForLoopStatus.ForEach).ToArray - Dim i As Integer - - For Each Expression In Collection - Dim value = Exec(Expression.Expression) - Call ScriptEngine.MMUDevice.Update(Expr.LoopVariable, value) - Call New FSMMachine(ScriptEngine, Expr.Invoke).Execute() - Call i.MoveNext - Next - - Return i - End Function - - Private Function __forStep(Expr As Interpreter.LDM.Expressions.ControlFlows.ForLoop) As Object - Dim n As Integer = 0, Status = Expr.Collection.As(Of Interpreter.LDM.Expressions.ControlFlows.ForLoopStatus.ForStep) - Dim InitStart As Double = InputHandler.CTypeDynamic(InputHandler.ToString(Exec(Status.InitStart.Expression)), GetType(Double)) - Dim LoopStop As Double = InputHandler.CTypeDynamic(InputHandler.ToString(Exec(Status.LoopStop.Expression)), GetType(Double)) - Dim MoveStep As Double = InputHandler.CTypeDynamic(InputHandler.ToString(Exec(Status.MoveStep.Expression)), GetType(Double)) - - For i As Double = InitStart To LoopStop Step MoveStep - Call ScriptEngine.MMUDevice.Update(Expr.LoopVariable, i) - Call New FSMMachine(ScriptEngine, Expr.Invoke).Execute() - Call n.MoveNext - Next - - Return n - End Function - - Public Function [If](Expression As Interpreter.LDM.Expressions.PrimaryExpression) As Object - Dim Expr = Expression.As(Of Interpreter.LDM.Expressions.ControlFlows.If) - Dim BoolIf As Boolean = InputHandler.ToString(Exec(Expr.BooleanIf.Expression)).getBoolean - Dim Stack = Me.Stack.Peek - Dim value As Object - - Stack.If = BoolIf - - If Stack.If = True Then - value = New Runtime.FSMMachine(ScriptEngine, Expr.Invoke).Execute - Else - value = False - End If - - Return value - End Function - - Public Function [ElseIf](Expression As Interpreter.LDM.Expressions.PrimaryExpression) As Object - Dim Expr = Expression.As(Of Interpreter.LDM.Expressions.ControlFlows.ElseIf) - Dim Stack = Me.Stack.Peek - Dim value As Object - - If Not Stack.If = True Then Return True - - Dim BoolIf As Boolean = InputHandler.ToString(Exec(Expr.BooleanIf.Expression)).getBoolean - - If BoolIf = True Then - value = New Runtime.FSMMachine(ScriptEngine, Expr.Invoke).Execute - Else - value = False - End If - - Return value - End Function - - Public Function [Else](Expression As Interpreter.LDM.Expressions.PrimaryExpression) As Object - Dim Expr = Expression.As(Of Interpreter.LDM.Expressions.ControlFlows.Else) - Dim Stack = Me.Stack.Peek - Dim value As Object - - If Not Stack.If = True Then - value = New Runtime.FSMMachine(ScriptEngine, Expr.Invoke).Execute - Else - value = True - End If - - Return value - End Function - - Public Function DoWhile(Expression As Interpreter.LDM.Expressions.PrimaryExpression) As Object - Dim Expr = Expression.As(Of Interpreter.LDM.Expressions.ControlFlows.DoWhile) - Dim i As Integer = 0 - - Do While __getBoolean(Expr.BooleanIf) - Call New Runtime.FSMMachine(ScriptEngine, Expr.Invoke).Execute() - Call i.MoveNext - Loop - - Return i - End Function - - Public Function DoUntil(Expression As Interpreter.LDM.Expressions.PrimaryExpression) As Object - Dim Expr = Expression.As(Of Interpreter.LDM.Expressions.ControlFlows.DoUntil) - Dim i As Integer = 0 - - Do Until __getBoolean(Expr.BooleanIf) - Call New Runtime.FSMMachine(ScriptEngine, Expr.Invoke).Execute() - Call i.MoveNext - Loop - - Return i - End Function - - Private Function __getBoolean(Expr As Interpreter.Parser.Tokens.InternalExpression) As Boolean - Dim __execed As Object = Exec(Expr.Expression) - Dim bool As Boolean = InputHandler.ToString(__execed).getBoolean - Return bool - End Function - -#End Region - -#Region "这些表达式是关键词表达式" - - ''' - ''' ~ 是主文件夹的简写 - ''' - ''' - ''' - Public Function Cd(Expression As Interpreter.LDM.Expressions.PrimaryExpression) As Object - Dim Expr = Expression.As(Of Interpreter.LDM.Expressions.Keywords.Cd) - Dim Path As String = Exec(Expr.Path.Expression) - - If String.Equals(Path, "~") Then - Path = App.HOME - End If - - Microsoft.VisualBasic.FileIO.FileSystem.CurrentDirectory = Path - Call ScriptEngine.Interpreter.EPMDevice.AnonymousDelegate.CdTemp() - - If Not ScriptEngine.Interpreter.EPMDevice.AnonymousDelegate.TempDelegate.IsNullOrEmpty Then - Dim sbr As StringBuilder = New StringBuilder() - Dim NameMaxLen As Integer = (From name As String - In ScriptEngine.Interpreter.EPMDevice.AnonymousDelegate.TempDelegate.Keys - Select Len(name)).ToArray.Max - - Call sbr.AppendLine($"There are {ScriptEngine.Interpreter.EPMDevice.AnonymousDelegate.TempDelegate.Count} script command is current directory: {Microsoft.VisualBasic.FileIO.FileSystem.CurrentDirectory}") - Call sbr.AppendLine(String.Join(vbCrLf, (From obj - In ScriptEngine.Interpreter.EPMDevice.AnonymousDelegate.TempDelegate - Let name As String = IO.Path.GetFileNameWithoutExtension(obj.Value.FilePath) - Select $" {name} {New String(" "c, NameMaxLen - Len(name))}{GetFileInfo(obj.Value.FilePath).Name } // {obj.Value.Expressions.Length} Expressions").ToArray)) - Call sbr.ToString.__DEBUG_ECHO - End If - - If ScriptEngine.Config.LastDir_AsInit Then - ScriptEngine.Config.InitDir = Path - ScriptEngine.Config.Save() - End If - - Return Path - End Function - - ''' - ''' 动态注册一个链接库,在进行挂载 - ''' - ''' - ''' - Public Function Library(Expression As Interpreter.LDM.Expressions.PrimaryExpression) As Object - Dim Expr = Expression.As(Of Interpreter.LDM.Expressions.Keywords.Library) - - If String.IsNullOrEmpty(Expr.Assembly) Then - Return __libraries() - - ElseIf String.Equals(Expr.Assembly, "/index") - Dim html As String = ShoalShell.HTML.RequestHtml("index") - html = Microsoft.VisualBasic.FileIO.FileSystem.GetFileInfo(html).FullName - Call Process.Start(html) - Return html.ToFileURL - - Else - Return __importsLibrary(Expr.Assembly) - End If - End Function - - Private Function __importsLibrary(Assembly As String) As Boolean - Dim NsModules As SPM.Nodes.PartialModule() = - ScriptEngine.Interpreter.SPMDevice.Imports(Assembly) - - For Each ns As SPM.Nodes.PartialModule In NsModules - Call ScriptEngine.Interpreter.EPMDevice.Imports(ns.Assembly.GetType) - Next - - Call ScriptEngine.Interpreter.SPMDevice.UpdateDb() - - Return True - End Function - - ''' - ''' 列举出所有已经注册的动态链接库 - ''' - ''' - ''' - ''' - Private Function __libraries() As String - Dim str As String - - If ScriptEngine.PMgrDb.NamespaceCollection.IsNullOrEmpty Then - str = "Shoal didn't install any plugin module yet..." - Else - str = __printLibraries() - End If - - Call str.__DEBUG_ECHO - Return str - End Function - - Private Function __printLibraries() As String - Dim sBuilder As StringBuilder = New StringBuilder(1024) - Dim MaxLength As Integer = (From ns As SPM.Nodes.Namespace - In ScriptEngine.PMgrDb.NamespaceCollection - Select Len(ns.Namespace)).ToArray.Max - - Call sBuilder.AppendLine() - Call sBuilder.AppendLine(String.Format(" Namespaces{0} assembly library", New String(" "c, MaxLength - Len("namespaces") + 4))) - Call sBuilder.AppendLine(String.Format("+----------{0}+-------------------------------------------------------------------------+", New String("-"c, MaxLength - Len("namespaces") + 4))) - - For Each nsEntry As SPM.Nodes.Namespace In (From ns As SPM.Nodes.Namespace - In ScriptEngine.PMgrDb.NamespaceCollection - Select ns - Order By ns.Namespace).ToArray - If nsEntry.PartialModules.Length > 1 Then - Call sBuilder.AppendLine() - End If - Call sBuilder.AppendLine($" {nsEntry.Namespace} {New String(" "c, MaxLength - Len(nsEntry.Namespace))} @{nsEntry.PartialModules.First.Assembly.Path}") - - For Each Partition As SPM.Nodes.PartialModule In nsEntry.PartialModules.Skip(1) - Call sBuilder.AppendLine(String.Format(" {0} @{1}", New String(" "c, MaxLength), Partition.Assembly.Path)) - Next - - If nsEntry.PartialModules.Length > 1 Then - Call sBuilder.AppendLine() - End If - Next - - Return sBuilder.ToString - End Function - - Public Function Include(Expression As Interpreter.LDM.Expressions.PrimaryExpression) As Object - - End Function - - ''' - ''' Memory [varName] - ''' - ''' - ''' - Public Function Memory(Expression As Interpreter.LDM.Expressions.PrimaryExpression) As Object - Dim Expr = Expression.As(Of Interpreter.LDM.Expressions.Keywords.Memory) - Dim value As Object - - If String.IsNullOrEmpty(Expr.var) Then - value = __printMemoryAbstract() - Else - Dim var = ScriptEngine.MMUDevice(Expr.var) - Dim view As String = var.View - value = {view} - - Call Console.WriteLine(view) - End If - - Return value - End Function - - Private Function __printMemoryAbstract() As Object - Dim Constants = ScriptEngine.MMUDevice.ImportedConstants - - If ScriptEngine.MMUDevice.IsNullOrEmpty AndAlso Constants.IsNullOrEmpty Then - Const NO_VALUE = "Currently no variables exists in the script host memory!" - Call Console.WriteLine(NO_VALUE) - Return New String() {NO_VALUE} - End If - - Dim Variables = ScriptEngine.MMUDevice.Variables - Dim List As New List(Of String) - Dim sBuilder As StringBuilder = New StringBuilder - - If Not Variables.IsNullOrEmpty Then - Dim LQuery = __variableViews(Variables) - - Call sBuilder.AppendLine() - Call sBuilder.AppendLine($" {Variables.Length} VARIABLES") - Call sBuilder.AppendLine() - Call sBuilder.AppendLine(String.Join(vbCrLf, LQuery)) - - Call List.AddRange(LQuery) - End If - - If Not Constants.IsNullOrEmpty Then - Dim LQuery = __variableViews(Constants) - - Call sBuilder.AppendLine() - Call sBuilder.AppendLine(String.Format(" {0} CONSTANTS", Constants.Length)) - Call sBuilder.AppendLine() - Call sBuilder.AppendLine(String.Join(vbCrLf, LQuery)) - - Call List.AddRange(LQuery) - End If - - Call Console.WriteLine(sBuilder.ToString) - - Return List.ToArray - End Function - - Private Function __variableViews(variables As KeyValuePair(Of String, Object)()) As String() - Dim Views = (From var As arg In variables - Select Name = var.Key, - value = InputHandler.ToString(var.Value), - Type = If(var.Value Is Nothing, "Any", var.Value.GetType.FullName)).ToArray - Dim nameMaxLength As Integer = (From var In Views.AsParallel Select Len(var.Name)).ToArray.Max - Dim valueMaxLength As Integer = (From var In Views.AsParallel Select Len(var.value)).ToArray.Max - Dim LQuery = (From var In Views - Let sp1 = New String(" "c, nameMaxLength - Len(var.Name) + 2) - Let sp2 = New String(" "c, valueMaxLength - Len(var.value) + 2) - Select $"{var.Name} {sp1}--> {var.value} {sp2}//{var.Type}").ToArray - Return LQuery - End Function - - Public Function [Imports](Expression As Interpreter.LDM.Expressions.PrimaryExpression) As Object - Dim Expr = Expression.As(Of Interpreter.LDM.Expressions.Keywords.Imports) - - For Each [Namespace] As String In Expr.Namespaces - Dim ns = ScriptEngine.Interpreter.EPMDevice.Imports([Namespace]) - - If Not ns Is Nothing Then - Call Console.WriteLine($"Imports <{ns.Namespace}>") - Else - Dim ex As String = $"Imported namespace ""{[Namespace]}"" is not found!" - Throw New RuntimeException(ex, ScriptEngine) - End If - Next - - Return True - End Function - - Public Function Wiki(Expression As Interpreter.LDM.Expressions.PrimaryExpression) As Object - Dim Expr = Expression.As(Of Interpreter.LDM.Expressions.Keywords.Wiki) - Return If(String.IsNullOrEmpty(Expr.Object), - ScriptEngine.WikiEngine.WikiHelp, - ScriptEngine.WikiEngine.HandleWikiSearch(Expr.Object)) - End Function -#End Region - - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Runtime/StatusMachine/FSMMachine.vb b/Shoal.v2/Shoal.v2/Runtime/StatusMachine/FSMMachine.vb deleted file mode 100644 index 6a9c6a6f6..000000000 --- a/Shoal.v2/Shoal.v2/Runtime/StatusMachine/FSMMachine.vb +++ /dev/null @@ -1,102 +0,0 @@ -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.LDM -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.LDM.Expressions -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.SCOM - -Namespace Runtime - - ''' - ''' 执行整个脚本的模块 - ''' - Public Class FSMMachine : Inherits RuntimeComponent - - Dim Script As SyntaxModel - Dim p As Integer - Dim OnErrorResumeNext As Boolean - - ''' - ''' Initialize a runtime state machine for running a script file. - ''' - ''' - ''' - Sub New(ScriptEngine As ScriptEngine, Script As SyntaxModel) - Call MyBase.New(ScriptEngine) - Me.Script = Script - Me.ExecuteModel = ScriptEngine.ExecuteModel - End Sub - - ReadOnly ExecuteModel As ExecuteModel - - ''' - ''' 已经包含有错误处理的代码了,由于这个是执行的是脚本文件,故而出错的时候会直接退出运行 - ''' - ''' - ''' Dirty works here in this function. - Public Function Execute() As Object - Dim __executeReturn As Boolean = False - Dim consoleTitleEnable As Boolean = ScriptEngine.Config.EnableConsoleTitle - - Call ExecuteModel.Stack.Push(New Stack(Script.FilePath)) - - Do While p <= Script.Expressions.Length - 1 -#If Not DEBUG Then '调试的模式会不处理错误,让错误自动定位到原始的位置方便调试程序 - Try -#End If - If consoleTitleEnable Then - Call Console.Title.InvokeSet(Script.Expressions(p).PrimaryExpression) - End If - - Call __execute(__executeReturn) -#If Not DEBUG Then - Catch ex As Exception - Call App.LogException(ex, $"{NameOf(FSMMachine)}::{NameOf(Execute)}") - - If OnErrorResumeNext Then '忽略掉错误继续执行 - - Else - Return -1 '执行错误,则返回错误代码 - End If - End Try -#End If - If __executeReturn Then - Exit Do - Else - Call p.MoveNext '移动到下一行代码执行 - End If - Loop - - Call ExecuteModel.Stack.Pop() - - If consoleTitleEnable Then - Call Console.Title.InvokeSet(App.ExecutablePath.ToFileURL) - End If - - Return ScriptEngine.MMUDevice.SystemReserved.Value '执行了Return代码之后,Return的表达式会被写入到这个变量之中 - End Function - - ''' - ''' - ''' - ''' 是否执行了代码 - Private Sub __execute(ByRef __return As Boolean) - Dim Line As PrimaryExpression = Script.Expressions(p) - - If Line.IsNonExecuteCode Then Return - - If Line.ExprTypeID = ExpressionTypes.OnErrorResumeNext Then - OnErrorResumeNext = True - - ElseIf Line.ExprTypeID = ExpressionTypes.Return Then '退出脚本的运行并返回指定的代码 - Dim rtvlExpr = Line.As(Of Keywords.Return) - Dim value = ExecuteModel.Exec(rtvlExpr.ValueExpression.Expression) - __return = True - ScriptEngine.MMUDevice.SystemReserved.Value = value - - Else - - Dim value = ExecuteModel.Exec(Line) - ScriptEngine.MMUDevice.SystemReserved.Value = value - - End If - End Sub - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Runtime/StatusMachine/Stack.vb b/Shoal.v2/Shoal.v2/Runtime/StatusMachine/Stack.vb deleted file mode 100644 index 53ac81552..000000000 --- a/Shoal.v2/Shoal.v2/Runtime/StatusMachine/Stack.vb +++ /dev/null @@ -1,19 +0,0 @@ -Namespace Runtime - - Public Class Stack - - Public Property [If] As Boolean - Public Property DoWhile As Interpreter.LDM.Expressions.PrimaryExpression - - ReadOnly _uid As String - - Sub New(uid As String) - _uid = uid - End Sub - - Public Overrides Function ToString() As String - Return _uid - End Function - - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/SPM/Nodes/Assembly.vb b/Shoal.v2/Shoal.v2/SPM/Nodes/Assembly.vb deleted file mode 100644 index 5dbd71eff..000000000 --- a/Shoal.v2/Shoal.v2/SPM/Nodes/Assembly.vb +++ /dev/null @@ -1,106 +0,0 @@ -Imports System.Runtime.Versioning -Imports System.Xml.Serialization -Imports Microsoft.VisualBasic.Scripting.ShoalShell.HTML - -Namespace SPM.Nodes - - ''' - ''' 用于引用的程序的定位的,用来处理相对路径以及网络路径 - ''' - Public Class Assembly : Implements HTML.IWikiHandle - - Public Property Path As String - Public Property Version As String - Public Property UpdateTime As Long - Public Property Company As String - Public Property FrameworkVersion As String - ''' - ''' 这个属性使用于记录重复的命名空间模块之间的相互比较的 - ''' 路径可以不一样,但是这个必须要一样 - ''' - ''' - Public Property TypeId As String - Public Property Description As String - - Public Overrides Function ToString() As String - Return $"{Path}!{TypeId}" - End Function - - ''' - ''' Gets this partial module defined type information.(出错会返回空值) - ''' - ''' - Public Overloads Function [GetType]() As Type - Return [GetType](TypeId) - End Function - - Public Overloads Function [GetType](Type As String) As Type - Dim Assembly As System.Reflection.Assembly = LoadAssembly() - If Assembly Is Nothing Then - Return Nothing - Else - Return Assembly.GetType(Type) - End If - End Function - - Public Shared Function CreateObject(Of T As Assembly)(Assembly As System.Reflection.Assembly) As T - Dim attrs = Assembly.CustomAttributes - Dim Company As String = (From attr In attrs - Where attr.AttributeType = GetType(System.Reflection.AssemblyCompanyAttribute) - Let value = attr.ConstructorArguments.First.Value.ToString - Select value).FirstOrDefault - Dim Version As String = (From attr In attrs - Where attr.AttributeType = GetType(System.Reflection.AssemblyFileVersionAttribute) - Let value = attr.ConstructorArguments.First.Value.ToString - Select value).FirstOrDefault - Dim FrameworkVersion As String = (From attr In attrs - Where attr.AttributeType = GetType(TargetFrameworkAttribute) - Let value = attr.ToString - Select value).FirstOrDefault - Dim FileInfo = VisualBasic.FileIO.FileSystem.GetFileInfo(Assembly.Location) - Dim Updates As Long = FileInfo.LastWriteTime.ToBinary - Dim assmDef = Activator.CreateInstance(Of T) - - assmDef.Path = __createPath(FileInfo.FullName) - assmDef.Company = Company - assmDef.FrameworkVersion = FrameworkVersion - assmDef.UpdateTime = Updates - assmDef.Version = Version - - Return assmDef - End Function - - Private Shared Function __createPath(path As String) As String - path = ProgramPathSearchTool.RelativePath(App.HOME, path) - Call FileIO.FileSystem.WriteAllText(App.HOME & "/Imports.txt", path & vbCrLf, append:=True) - Return path - End Function - - Public Function GenerateDescription() As String Implements IWikiHandle.GenerateDescription - Throw New NotImplementedException() - End Function - - Public Function Match(keyword As String) As String Implements IWikiHandle.Match - Throw New NotImplementedException() - End Function - - ''' - ''' 出错的时候会返回空值 - ''' - ''' - ''' 请注意,在执行的时候可能当前的工作目录会发生改变,所以计算相对路径的时候总是需要以当前的程序的位置来计算 - Public Function LoadAssembly() As System.Reflection.Assembly - Try - Dim currentWork As String = FileIO.FileSystem.CurrentDirectory ' 切换当前的工作目录 - FileIO.FileSystem.CurrentDirectory = App.HOME - Dim path As String = VisualBasic.FileIO.FileSystem.GetFileInfo(Me.Path).FullName - FileIO.FileSystem.CurrentDirectory = currentWork - Return System.Reflection.Assembly.LoadFile(path) - Catch ex As Exception - Dim Trace As String = $"{GetType(Assembly).FullName}::{NameOf(LoadAssembly)}" - Call App.LogException(Path.ToFileURL, Trace) - Return App.LogException(ex, Trace) - End Try - End Function - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/SPM/Nodes/AssemblyParser.vb b/Shoal.v2/Shoal.v2/SPM/Nodes/AssemblyParser.vb deleted file mode 100644 index 38fc6b414..000000000 --- a/Shoal.v2/Shoal.v2/SPM/Nodes/AssemblyParser.vb +++ /dev/null @@ -1,132 +0,0 @@ -Imports Microsoft.VisualBasic.Scripting.MetaData -Imports Microsoft.VisualBasic.Scripting.ShoalShell.HTML -Imports Microsoft.VisualBasic.CommandLine.Interpreter -Imports Microsoft.VisualBasic.CommandLine.Reflection -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.Linker.APIHandler -Imports Microsoft.VisualBasic.ComponentModel - -Namespace SPM.Nodes - - Public Module AssemblyParser - - ''' - ''' 解析出错或返回空集合并在终端上面打印出错误信息 - ''' - ''' 不需要特殊处理,函数会自动转换为全路径 - ''' - Public Function LoadAssembly(Path As String) As PartialModule() - Dim Assembly As System.Reflection.Assembly - - Try - Assembly = System.Reflection.Assembly.LoadFile(VisualBasic.FileIO.FileSystem.GetFileInfo(Path).FullName) - Catch ex As Exception - Return __exHandler(ex, Path) - End Try - - Try - Dim assemblyValue = Nodes.Assembly.CreateObject(Of Assembly)(Assembly) - Dim Namespaces = (From Type In Assembly.DefinedTypes '.AsParallel - Let [Namespace] = __getNamespaceEntry(Type, assemblyValue) '得到原始的部分的模块定义 - Where Not [Namespace] Is Nothing - Select [Namespace]).ToArray - Return Namespaces - Catch ex As Exception - Return __exHandler(ex, Path) - End Try - End Function - - Private Function __exHandler(ex As Exception, path As String) As PartialModule() - ex = New Exception($"Assembly Parsing Error: {path.ToFileURL}", ex) - Call App.LogException(ex, $"{NameOf(AssemblyParser)}::{NameOf(LoadAssembly)}") - Call ex.PrintException() - - Return New PartialModule() {} - End Function - - Private Function __getNamespaceEntry(Type As Type, Assembly As Assembly) As SPM.Nodes.PartialModule - If Not Type.IsClass Then - Return Nothing - End If - - Dim attrs As Object() = - Type.GetCustomAttributes( - attributeType:=PackageNamespace.TypeInfo, - inherit:=False) - - If attrs.IsNullOrEmpty Then - attrs = (From ns As Object - In Type.GetCustomAttributes( - attributeType:=Microsoft.VisualBasic.CommandLine.Reflection.Namespace.TypeInfo, - inherit:=False) - Let nsEntry = DirectCast(ns, Microsoft.VisualBasic.CommandLine.Reflection.Namespace) - Select New PackageNamespace(nsEntry)).ToArray - If attrs.IsNullOrEmpty Then - Return Nothing - End If - End If - - Dim nsAttr As PackageNamespace = DirectCast(attrs(Scan0), PackageNamespace) - Return __nsParser(Type, nsAttr, Assembly) - End Function - - Private Function __nsParser(type As Type, - nsEntry As PackageNamespace, - assembly As Assembly) As PartialModule - Dim Functions = GetAllCommands(type, False) - Dim EntryPoints = (From Func In Functions Select __entryPointParser(Func)).ToArray - Dim assm As Assembly = Serialization.ShadowsCopy.ShadowsCopy(assembly) - - assm.TypeId = type.FullName - - Return New PartialModule(nsEntry) With { - .Assembly = assm, - .EntryPoints = EntryPoints - } - End Function - - ''' - ''' 直接导入静态方法 - ''' - ''' - ''' - Public Function [Imports]([module] As Type) As APIEntryPoint() - Dim Functions = GetAllCommands([module], False) - Return APIParser(Functions.ToArray) - End Function - - Public Function APIParser(EntryPoints As IEnumerable(Of EntryPoints.APIEntryPoint)) As APIEntryPoint() - Dim OverloadsGroup = (From api As EntryPoints.APIEntryPoint - In EntryPoints - Select api - Group api By api.Name.ToLower Into Group).ToArray - Dim __LoadedEntryPoints = (From apiGroup - In OverloadsGroup - Select New APIEntryPoint( - apiGroup.Group.First.Name, - apiGroup.Group.ToArray)).ToArray - Return __LoadedEntryPoints - End Function - - Private Function __entryPointParser(Command As EntryPoints.APIEntryPoint) As EntryPointMeta - Return New EntryPointMeta() With { - .Description = Command.Info, - .Name = Command.Name, - .ReturnedType = Command.EntryPoint.ReturnType.FullName, - .Parameters = __getParameters(Command.EntryPoint) - } - End Function - - Private Function __getParameters(Method As System.Reflection.MethodInfo) As TripleKeyValuesPair() - Dim parameters = Method.GetParameters - Dim LQuery = (From p As System.Reflection.ParameterInfo - In parameters - Let attrs = p.GetCustomAttributes(Parameter.TypeInfo, True) - Let attr = If(attrs.IsNullOrEmpty, New Parameter(p.Name), DirectCast(attrs(Scan0), Parameter)) - Select New TripleKeyValuesPair With { - .Key = attr.Alias, - .Value1 = attr.Description, - .Value2 = p.ParameterType.FullName}).ToArray - Return LQuery - End Function - End Module -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/SPM/Nodes/EntryPointMeta.vb b/Shoal.v2/Shoal.v2/SPM/Nodes/EntryPointMeta.vb deleted file mode 100644 index c0a7cfea2..000000000 --- a/Shoal.v2/Shoal.v2/SPM/Nodes/EntryPointMeta.vb +++ /dev/null @@ -1,84 +0,0 @@ -Imports System.Text -Imports System.Xml.Serialization -Imports Microsoft.VisualBasic.ComponentModel -Imports Microsoft.VisualBasic.Scripting.ShoalShell.HTML - -Namespace SPM.Nodes - - ''' - ''' 一个方法的元数据 - ''' - ''' - Public Class EntryPointMeta : Implements HTML.IWikiHandle - - Public Property Name As String - Public Property Description As String - Public Property Parameters As TripleKeyValuesPair() - Public Property ReturnedType As String - - Public Overrides Function ToString() As String - If String.IsNullOrEmpty(Description) Then - Return Name - Else - Return $"{Name}: {Description}" - End If - End Function - - Public Function Match(keyword As String) As String Implements IWikiHandle.Match - Dim Head As String = String.Format("[{0}]", keyword) - - If InStr(Name, keyword, CompareMethod.Text) > 0 Then - Head = "Function Entry: " & Name.ToLower.Replace(keyword.ToLower, Head) - ElseIf InStr(Description, keyword, CompareMethod.Text) > 0 Then - Head = Description.ToLower.Replace(keyword.ToLower, Head) - ElseIf InStr(ReturnedType, keyword, CompareMethod.Text) > 0 Then - Head = "Function Return Type: " & ReturnedType.ToLower.Replace(keyword.ToLower, Head) - Else - Dim n = MatchParameters(keyword) - - If n.IsNullOrEmpty Then - Return "" '没有匹配上任何数据 - Else - Head = String.Join(vbCrLf, (From item In n Select String.Format("{0} {1} {2}", item.Key, item.Value1, item.Value2).ToLower.Replace(keyword.ToLower, Head))) - End If - End If - - Return ">>>> " & Head & vbCrLf & vbCrLf & GenerateDescription() - End Function - - Public Function MatchParameters(keyword As String) As TripleKeyValuesPair() - If Parameters.IsNullOrEmpty Then - Return Nothing - End If - - Dim LQuery = (From item In Parameters - Where InStr(item.Key, keyword, CompareMethod.Text) > 0 OrElse - InStr(item.Value1, keyword, CompareMethod.Text) > 0 OrElse - InStr(item.Value2, keyword, CompareMethod.Text) > 0 - Select item).ToArray - Return LQuery - End Function - - Public Function GenerateDescription() As String Implements IWikiHandle.GenerateDescription - Dim sBuilder As StringBuilder = New StringBuilder(1024) - Call sBuilder.AppendLine("Name: " & Name) - Call sBuilder.AppendLine("Description: " & If(String.IsNullOrEmpty(Description), "This function have no description data defined.", Description)) - Call sBuilder.AppendLine("Return: " & ReturnedType) - - If Not Parameters.IsNullOrEmpty Then - Dim Max As Integer = (From item In Parameters Select Len(item.Key)).ToArray.Max - - Call sBuilder.AppendLine(vbCrLf & String.Format("Function have {0} parameters:", Parameters.Length)) - Call sBuilder.AppendLine(String.Format("-Name-{0}------Type--------------", New String("-"c, Max))) - - For Each p In Parameters - Call sBuilder.AppendLine(String.Format(" {0} {1} {2} {3}", p.Key, New String(" "c, 6 + Max - Len(p.Key)), p.Value1, If(Not String.IsNullOrEmpty(p.Value2), "// " & p.Value2, ""))) - Next - Else - Call sBuilder.AppendLine("This function doesn't required of the parameters.") - End If - - Return sBuilder.ToString - End Function - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/SPM/Nodes/HybridEnvir.vb b/Shoal.v2/Shoal.v2/SPM/Nodes/HybridEnvir.vb deleted file mode 100644 index 47873441e..000000000 --- a/Shoal.v2/Shoal.v2/SPM/Nodes/HybridEnvir.vb +++ /dev/null @@ -1,11 +0,0 @@ -Imports System.Xml.Serialization -Imports Microsoft.VisualBasic.Scripting.ShoalShell.HTML - -Namespace SPM.Nodes - - Public Class HybridEnvir : Inherits Assembly - Implements HTML.IWikiHandle - - Public Property Language As String - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/SPM/Nodes/Namespace.vb b/Shoal.v2/Shoal.v2/SPM/Nodes/Namespace.vb deleted file mode 100644 index aec91e6e4..000000000 --- a/Shoal.v2/Shoal.v2/SPM/Nodes/Namespace.vb +++ /dev/null @@ -1,107 +0,0 @@ -Imports System.Xml.Serialization -Imports Microsoft.VisualBasic.Scripting.MetaData -Imports Microsoft.VisualBasic.Scripting.ShoalShell.HTML -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.Linker.APIHandler - -Namespace SPM.Nodes - - - Public Class [Namespace] : Implements HTML.IWikiHandle - - ''' - ''' 命名空间是可以被分隔为多个模块分别开发于不同的程序模块之中的 - ''' - ''' - Public Property PartialModules As PartialModule() - - Public Property Url As String - Public Property Publisher As String - Public Property Revision As Integer - Public Property Cites As String() - - ''' - ''' A brief description text about the function of this namespace.(关于本模块之中的描述性的摘要文本) - ''' - ''' - ''' - ''' - Public Property Description As String - - ''' - ''' The name value of this namespace module.(本命名空间模块的名称值) - ''' - ''' - ''' - ''' - Public Property [Namespace] As String - Public Property Category As APICategories - - Public Overrides Function ToString() As String - Return [Namespace] - End Function - - Public Function GenerateDescription() As String Implements IWikiHandle.GenerateDescription - Throw New NotImplementedException() - End Function - - Public Function Match(keyword As String) As String Implements IWikiHandle.Match - Throw New NotImplementedException() - End Function - - Private Sub __LoadEntryPoints() - Dim LQuery = (From [module] As PartialModule In Me.PartialModules - Let assm As System.Reflection.Assembly = [module].Assembly.LoadAssembly - Let EntryType As Type = __loadTypeInfo(assm, [module].Assembly.TypeId, [module].Assembly.Path) - Select CommandLine.Interpreter.GetAllCommands(EntryType)).ToArray - Dim __loadedAPIList = APIParser(LQuery.MatrixToVector) - Dim hash = __loadedAPIList.ToDictionary(Function(api) api.Name.ToLower) - Me.__loadedEntryPoints = New SortedDictionary(Of String, APIEntryPoint)(hash) - End Sub - - ''' - ''' - ''' - ''' - ''' - ''' 输出调试信息的时候使用 - ''' - Private Function __loadTypeInfo(assm As System.Reflection.Assembly, TypeId As String, path As String) As Type - If assm Is Nothing Then - Return Nothing - End If - - Dim type As Type = assm.GetType(TypeId) - - If type Is Nothing Then '找不到类型,则可能是开发人员修改了类型的命令空间或者其名称属性,则给出警告信息 - Call $"{path.ToFileURL}!{TypeId} missing!".__DEBUG_ECHO - End If - Return type - End Function - - Dim __loadedEntryPoints As SortedDictionary(Of String, APIEntryPoint) - - Public ReadOnly Property API As APIEntryPoint() - Get - If __loadedEntryPoints Is Nothing Then - Call __LoadEntryPoints() - End If - - Return __loadedEntryPoints.Values.ToArray - End Get - End Property - - Public Function GetEntryPoint(Name As String) As APIEntryPoint - Name = Name.ToLower - - If __loadedEntryPoints Is Nothing Then - Call __LoadEntryPoints() - End If - - If __loadedEntryPoints.ContainsKey(Name) Then - Return __loadedEntryPoints(Name) - Else - Return Nothing - End If - End Function - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/SPM/Nodes/PartialModule.vb b/Shoal.v2/Shoal.v2/SPM/Nodes/PartialModule.vb deleted file mode 100644 index 9dc9487ba..000000000 --- a/Shoal.v2/Shoal.v2/SPM/Nodes/PartialModule.vb +++ /dev/null @@ -1,75 +0,0 @@ -Imports System.Xml.Serialization -Imports Microsoft.VisualBasic.Scripting.MetaData -Imports Microsoft.VisualBasic.Scripting.ShoalShell.HTML - -Namespace SPM.Nodes - - Public Class PartialModule : Inherits PackageNamespace - Implements HTML.IWikiHandle - - Public Property Assembly As Assembly - Public Property EntryPoints As EntryPointMeta() - - Public Sub New() - End Sub - - Public Sub New([Namespace] As PackageNamespace) - Me.Description = [Namespace].Description - Me.Namespace = [Namespace].Namespace - Me.Publisher = [Namespace].Publisher - Me.Revision = [Namespace].Revision - Me.AutoExtract = [Namespace].AutoExtract - Me.Url = [Namespace].Url - Me.Cites = [Namespace].Cites - Me.Category = [Namespace].Category - End Sub - - ''' - ''' 从文件之中解析出来的新的数据更新当前的模块 - ''' - ''' - Public Sub Copy(ns As PartialModule) - Me.Description = ns.Description - Me.Assembly = ns.Assembly - Me.EntryPoints = ns.EntryPoints - Me.Namespace = ns.Namespace - Me.Publisher = ns.Publisher - Me.Revision = ns.Revision - Me.Url = ns.Url - Me.Cites = ns.Cites - Me.Category = ns.Category - End Sub - - Public Overloads Shared Function Equals(ns1 As PartialModule, ns2 As PartialModule) As Boolean - Dim nsAssm1 = ns1.Assembly?.LoadAssembly - Dim nsAssm2 = ns2.Assembly?.LoadAssembly - - If nsAssm1 Is Nothing OrElse nsAssm2 Is Nothing Then - Return False '无法判断则肯定不相等 - End If - - If Not String.Equals(ns1.Assembly.TypeId, ns2.Assembly.TypeId) Then - Return False '来源不一样,则肯定不一样 - End If - - Return True - End Function - - Public Function GetCites() As String - Dim typeDef As Type = Assembly.GetType - If typeDef Is Nothing Then - Return "" - Else - Return HTML.Cites.GetCites(typeDef) - End If - End Function - - Public Function GenerateDescription() As String Implements IWikiHandle.GenerateDescription - Throw New NotImplementedException() - End Function - - Public Overloads Function Match(keyword As String) As String Implements IWikiHandle.Match - Throw New NotImplementedException() - End Function - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/SPM/PackageModuleDb.vb b/Shoal.v2/Shoal.v2/SPM/PackageModuleDb.vb deleted file mode 100644 index e07b66e66..000000000 --- a/Shoal.v2/Shoal.v2/SPM/PackageModuleDb.vb +++ /dev/null @@ -1,86 +0,0 @@ -Imports System.Text -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.HybridsScripting -Imports Microsoft.VisualBasic.Scripting.ShoalShell.SPM.Nodes - -Namespace SPM - - ''' - ''' 包管理器的数据库文件 - ''' - Public Class PackageModuleDb : Inherits ComponentModel.ITextFile - - Public Property NamespaceCollection As [Namespace]() - Public Property HybridEnvironments As HybridEnvir() - Get - If __innerListEnvir Is Nothing Then - __innerListEnvir = New List(Of Nodes.HybridEnvir) - End If - Return __innerListEnvir.ToArray - End Get - Set(value As SPM.Nodes.HybridEnvir()) - If value Is Nothing Then - value = New Nodes.HybridEnvir() {} - End If - - __innerListEnvir = value.ToList - End Set - End Property - - Dim __innerListEnvir As List(Of SPM.Nodes.HybridEnvir) - - ''' - ''' 默认的注册表配置文件,该文件是在与本程序同一个文件夹之下的以程序名开始的XML文件.在该文件之中包含有所有的类型注册信息 - ''' - ''' - Public Shared ReadOnly Property DefaultFile As String = $"{App.ProductSharedDir}/.Settings/shoal-spm.xml" - - Public Shared Function Load(path As String) As PackageModuleDb - Dim Db = path.LoadXml(Of PackageModuleDb)(ThrowEx:=False) - - If Db Is Nothing Then - Db = New PackageModuleDb - Call Db.GetXml(False).SaveTo(path) - End If - - Db.FilePath = path - - Return Db - End Function - - Public Shared Function LoadDefault() As PackageModuleDb - Call $"Load SPM Database from ==> {DefaultFile.ToFileURL}...".__DEBUG_ECHO - Return Load(DefaultFile) - End Function - - Public Overrides Function Save(Optional FilePath As String = "", - Optional Encoding As Encoding = Nothing) As Boolean - - FilePath = getPath(FilePath) - Return Me.GetXml.SaveTo(FilePath, Encoding) - End Function - - Public Sub Update(Environment As EntryPoint) - Dim LQuery As HybridEnvir() = (From obj As HybridEnvir - In HybridEnvironments - Where String.Equals(obj.Language, Environment.Language.Language, StringComparison.OrdinalIgnoreCase) - Select obj).ToArray - - Dim Node As HybridEnvir = - Assembly.CreateObject(Of HybridEnvir)(Environment.DeclaredAssemblyType.Assembly) - - Node.Language = Environment.Language.Language - Node.TypeId = Environment.DeclaredAssemblyType.FullName - Node.Description = Environment.Language.Description - - If Not LQuery.IsNullOrEmpty Then - Call __innerListEnvir.Remove(LQuery(Scan0)) - End If - - Call __innerListEnvir.Add(Node) - End Sub - - Protected Overrides Function __getDefaultPath() As String - Return DefaultFile - End Function - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/SPM/ShoalPackageMgr.vb b/Shoal.v2/Shoal.v2/SPM/ShoalPackageMgr.vb deleted file mode 100644 index c2f8c103f..000000000 --- a/Shoal.v2/Shoal.v2/SPM/ShoalPackageMgr.vb +++ /dev/null @@ -1,317 +0,0 @@ -Imports System.Reflection -Imports System.Text.RegularExpressions -Imports Microsoft.VisualBasic.Scripting.ShoalShell.SPM.Nodes -Imports Microsoft.VisualBasic.Linq.Extensions - -Namespace SPM - - ''' - ''' Shoal模块管理器 - ''' - Public Class ShoalPackageMgr - - Implements IDictionary(Of String, SPM.Nodes.Namespace) - Implements System.IDisposable - - Dim _NamespaceHash As Dictionary(Of String, SPM.Nodes.Namespace) - Dim _LibraryDb As SPM.PackageModuleDb - - Sub New(ByRef Library As SPM.PackageModuleDb) - If Library.NamespaceCollection Is Nothing Then - Library.NamespaceCollection = New [Namespace]() {} - End If - - _LibraryDb = Library - _NamespaceHash = Library.NamespaceCollection.ToDictionary(Function(ns) ns.Namespace.ToLower) - End Sub - - ''' - ''' 将所得到的模块合并到现有的模块之中 - ''' - ''' - ''' - Public Function MergeNamespace(NsCollection As Nodes.PartialModule()) As Integer - Dim LQuery = (From ns As Nodes.PartialModule - In NsCollection '不需要并行,因为给出的集合之中可能含有同名的命名空间,合并的时候使用并行化会产生冲突 - Where Me.__mergeNamespace(ns) Select 1).ToArray.Sum - Return LQuery - End Function - - ''' - ''' 向脚本环境之中安装注册一个外部的模块 - ''' - ''' 文件路径不需要特殊处理,函数会自动转换为全路径 - ''' - Public Function [Imports](assemPath As String) As PartialModule() - Dim nsModules = AssemblyParser.LoadAssembly(assemPath) - Call MergeNamespace(nsModules) - Call __safelyImports(System.Reflection.Assembly.LoadFile(FileIO.FileSystem.GetFileInfo(assemPath).FullName)) - - Return nsModules - End Function - - Private Sub __safelyImports(assm As System.Reflection.Assembly) - Try - Call __importsEnvir(assm) - Catch ex As Exception - Call Console.WriteLine(vbCrLf) - Call $"{MethodBase.GetCurrentMethod.GetFullName}{vbCrLf} >> {assm.Location.ToFileURL}::{assm.FullName}".__DEBUG_ECHO - Call Console.WriteLine(ex.ToString) - End Try - End Sub - - Private Sub __importsEnvir(Assembly As System.Reflection.Assembly) - Dim LQuery = (From typeRef In Assembly.GetTypes.AsParallel - Let envir = Runtime.HybridsScripting.EnvironmentParser.Imports(typeRef) - Where Not envir.IsNull - Select envir).ToArray - For Each environment In LQuery - Call Me._LibraryDb.Update(environment) - Next - End Sub - - Public Sub UpdateDb() - _LibraryDb.NamespaceCollection = _NamespaceHash.Values.ToArray - _LibraryDb.Save() - - Call HTML.DocRenderer.Indexing(_LibraryDb) - Call $"[Job DONE!] {NameOf(UpdateDb)}".__DEBUG_ECHO - End Sub - - Private Function __mergeNamespace(ns As Nodes.PartialModule) As Boolean - Dim [Namespace] As SPM.Nodes.Namespace - Dim Name As String = ns.Namespace.ToLower - - If _NamespaceHash.ContainsKey(Name) Then - [Namespace] = _NamespaceHash(Name) - - Dim EqualsModule = (From [module] In [Namespace].PartialModules - Where SPM.Nodes.PartialModule.Equals([module], ns) - Select [module]).FirstOrDefault - If EqualsModule Is Nothing Then '没有相同的模块,则直接添加 - [Namespace].PartialModules = [Namespace].PartialModules.Join(ns).ToArray - Else - Call EqualsModule.Copy(ns) - End If - - [Namespace].Cites = __mergeCites([Namespace].Cites, ns.Cites) - [Namespace].Publisher = __mergeAuthors([Namespace].Publisher, ns.Publisher) - Else - [Namespace] = New [Namespace] With { '不存在则新建添加 - .Description = ns.Description, - .Publisher = ns.Publisher, - .Revision = ns.Revision, - .Cites = {ns.Cites}, - .Url = ns.Url, - .PartialModules = {ns}, - .Namespace = ns.Namespace - } - Call _NamespaceHash.Add(Name, [Namespace]) - End If - - Call HTML.DocRenderer.GenerateHtmlDoc([Namespace]) - - Return True - End Function - - ''' - ''' 这个是参照EndNote使用逗号以及分号分割的 - ''' - ''' - ''' - ''' - Private Shared Function __mergeAuthors(DbValue As String, Merge As String) As String - If String.IsNullOrEmpty(DbValue) Then - Return Merge - End If - If String.IsNullOrEmpty(Merge) Then - Return DbValue - End If - - Dim Tokens = DbValue.Split(";"c).ToArray(Function(name) name.Split(","c)).MatrixToList - Dim mToken = Merge.Split(";"c).ToArray(Function(name) name.Split(","c)).MatrixToList - Dim Values As List(Of String) = Tokens.Join(mToken) - Dim GroupName = (From name As String - In Values - Let tName As String = Trim(name) - Where Not String.IsNullOrEmpty(tName) - Select tName.ToUpper, tName - Group By ToUpper Into Group).ToArray - Dim Names As String() = GroupName.ToArray(Function(ng) ng.Group.First.tName) - Return String.Join(", ", Names) - End Function - - Private Shared Function __mergeCites(cites As String(), imported As String) As String() - If cites.IsNullOrEmpty Then - If String.IsNullOrEmpty(imported) Then - Return New String() {} - Else - Return Strings.Split(imported, "///") - End If - - ElseIf String.IsNullOrEmpty(imported) - Return cites - - Else - For Each cite As String In Strings.Split(imported, "///") - cites = ___mergeCites2(cites, cite) - Next - Return cites - End If - End Function - - Private Shared Function ___mergeCites2(cites As String(), imported As String) As String() - Dim ImportedTitle As String = Regex.Match(imported, """[^""]+", RegexOptions.Singleline).Value - - If String.IsNullOrEmpty(ImportedTitle) Then - ImportedTitle = imported - End If - - For i As Integer = 0 To cites.Length - 1 - If InStr(cites(i), ImportedTitle, CompareMethod.Text) > 0 Then - cites(i) = imported - Return cites - End If - Next - - cites = cites.Join(imported).ToArray - - Return cites - End Function - -#Region "Implements System.Collections.Generic.IDictionary(Of String, SPM.Nodes.Namespace)" - - ''' - ''' 大小写不敏感 - ''' - ''' - ''' - Default Public Property Item(key As String) As [Namespace] Implements IDictionary(Of String, [Namespace]).Item - Get - key = key.ToLower - - If Me._NamespaceHash.ContainsKey(key) Then - Return Me._NamespaceHash(key) - Else - Return Nothing - End If - End Get - Set(value As [Namespace]) - key = key.ToLower - - If Me._NamespaceHash.ContainsKey(key) Then - Call Me._NamespaceHash.Remove(key) - End If - - Call Me._NamespaceHash.Add(key, value) - End Set - End Property - - Public ReadOnly Property Keys As ICollection(Of String) Implements IDictionary(Of String, [Namespace]).Keys - Get - Return Me._NamespaceHash.Keys - End Get - End Property - - Public ReadOnly Property Values As ICollection(Of [Namespace]) Implements IDictionary(Of String, [Namespace]).Values - Get - Return Me._NamespaceHash.Values - End Get - End Property - - Public ReadOnly Property Count As Integer Implements ICollection(Of KeyValuePair(Of String, [Namespace])).Count - Get - Return Me._NamespaceHash.Count - End Get - End Property - - Public ReadOnly Property IsReadOnly As Boolean Implements ICollection(Of KeyValuePair(Of String, [Namespace])).IsReadOnly - Get - Return False - End Get - End Property - - Public Function ContainsKey(key As String) As Boolean Implements IDictionary(Of String, [Namespace]).ContainsKey - Return Me._NamespaceHash.ContainsKey(key.ToLower) - End Function - - Public Sub Add(key As String, value As [Namespace]) Implements IDictionary(Of String, [Namespace]).Add - Call Me._NamespaceHash.Add(key.ToLower, value) - End Sub - - Public Function Remove(key As String) As Boolean Implements IDictionary(Of String, [Namespace]).Remove - Return Me._NamespaceHash.Remove(key.ToLower) - End Function - - Public Function TryGetValue(key As String, ByRef value As [Namespace]) As Boolean Implements IDictionary(Of String, [Namespace]).TryGetValue - Return Me._NamespaceHash.TryGetValue(key.ToLower, value) - End Function - - Public Sub Add(item As KeyValuePair(Of String, [Namespace])) Implements ICollection(Of KeyValuePair(Of String, [Namespace])).Add - Call Me._NamespaceHash.Add(item.Key.ToLower, item.Value) - End Sub - - Public Sub Clear() Implements ICollection(Of KeyValuePair(Of String, [Namespace])).Clear - Call Me._NamespaceHash.Clear() - End Sub - - Public Function Contains(item As KeyValuePair(Of String, [Namespace])) As Boolean Implements ICollection(Of KeyValuePair(Of String, [Namespace])).Contains - Return Me._NamespaceHash.ContainsKey(item.Key.ToLower) - End Function - - Public Sub CopyTo(array() As KeyValuePair(Of String, [Namespace]), arrayIndex As Integer) Implements ICollection(Of KeyValuePair(Of String, [Namespace])).CopyTo - Call Me._NamespaceHash.ToArray.CopyTo(array, arrayIndex) - End Sub - - Public Function Remove(item As KeyValuePair(Of String, [Namespace])) As Boolean Implements ICollection(Of KeyValuePair(Of String, [Namespace])).Remove - Return Me._NamespaceHash.Remove(item.Key.ToLower) - End Function - - Public Iterator Function GetEnumerator() As IEnumerator(Of KeyValuePair(Of String, [Namespace])) _ - Implements IEnumerable(Of KeyValuePair(Of String, [Namespace])).GetEnumerator - - For Each obj In Me._NamespaceHash - Yield obj - Next - End Function - - Private Iterator Function IEnumerable_GetEnumerator() As IEnumerator Implements IEnumerable.GetEnumerator - Yield GetEnumerator() - End Function -#End Region - -#Region "IDisposable Support" - Private disposedValue As Boolean ' To detect redundant calls - - ' IDisposable - Protected Overridable Sub Dispose(disposing As Boolean) - If Not Me.disposedValue Then - If disposing Then - ' TODO: dispose managed state (managed objects). - Call UpdateDb() - End If - - ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below. - ' TODO: set large fields to null. - End If - Me.disposedValue = True - End Sub - - ' TODO: override Finalize() only if Dispose(disposing As Boolean) above has code to free unmanaged resources. - 'Protected Overrides Sub Finalize() - ' ' Do not change this code. Put cleanup code in Dispose(disposing As Boolean) above. - ' Dispose(False) - ' MyBase.Finalize() - 'End Sub - - ' This code added by Visual Basic to correctly implement the disposable pattern. - Public Sub Dispose() Implements IDisposable.Dispose - ' Do not change this code. Put cleanup code in Dispose(disposing As Boolean) above. - Dispose(True) - ' TODO: uncomment the following line if Finalize() is overridden above. - ' GC.SuppressFinalize(Me) - End Sub -#End Region - - End Class -End Namespace \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Shoal.v2.Designer.cd b/Shoal.v2/Shoal.v2/Shoal.v2.Designer.cd deleted file mode 100644 index 071580f77..000000000 --- a/Shoal.v2/Shoal.v2/Shoal.v2.Designer.cd +++ /dev/null @@ -1,1039 +0,0 @@ - - - - - - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - Compiler\CodeDOM\Expression.vb - - - - - - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - Compiler\CodeDOM\Tokens.vb - - - - - - ABAAAAAAAAAAAAAAAAAAIAAEAAAAAAAAAAAAAAAAAEA= - Compiler\VBC.vb - - - - - - AIAEQIKAIAgQABCgAAUBAAAAACBAAAAAASAAAAkCAAA= - Configuration\Config.vb - - - - - - - - - Interpreter\Interpreter.vb - - - - - AAAAAAAAACAAEAAEAgABAAAAAAAgAAAAAAAAABAAAQA= - Interpreter\Interpreter.vb - - - - - - AAAAgAAAAAAAAAAAEAAACBAAARAAAmAAAAQAAAAAAAA= - Interpreter\Linker\EntryPoint.vb - - - - - - BAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAAAAAAAAA= - Interpreter\Parser\LDM\Expressions\Comments.vb - - - - - - BAAAAIAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAA= - Interpreter\Parser\LDM\Expressions\Die.vb - - - - - - DAAAAQAAAAAAAAAGAAAIAAAEAAAAAAAAAAAAAAAAIAA= - Interpreter\Parser\LDM\Expressions\Expression.vb - - - - - - BAAAAAEAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAA= - Interpreter\Parser\LDM\Expressions\DynamicsExpression.vb - - - - - - BAAACCAAAAAAAAAAAAAAAIAAAAAQAAAAAIABAAAAAAA= - Interpreter\Parser\LDM\Expressions\FunctionCalls.vb - - - - - - BAAACAAAAAAAAAQAAAAAQAAAAAAAAAAAAAAAAAAAAAA= - Interpreter\Parser\LDM\Expressions\HashTable.vb - - - - - - BAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAQAAAAAABAA= - Interpreter\Parser\LDM\Expressions\VariableDeclaration.vb - - - - - - BAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAACAAAAAAAAAA= - Interpreter\Parser\LDM\Expressions\ControlFlow\DoWhile.vb - - - - - - BAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAACAAAAAAAAAA= - Interpreter\Parser\LDM\Expressions\ControlFlow\DoWhile.vb - - - - - - BAAAAAAAAAAIQAAAAAAAAAAAAABAAAAAAAAAAAAAAAA= - Interpreter\Parser\LDM\Expressions\ControlFlow\For.vb - - - - - - BACAAAAAAAAACAAEAAAAAAAAAAAAAAAAAAAAAAAAAAA= - Interpreter\Parser\LDM\Expressions\ControlFlow\GotoJumps.vb - - - - - - BAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - Interpreter\Parser\LDM\Expressions\ControlFlow\GotoJumps.vb - - - - - - BAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAACAAAAAAAAAA= - Interpreter\Parser\LDM\Expressions\ControlFlow\If.vb - - - - - - BAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAACAAAAAAAAAA= - Interpreter\Parser\LDM\Expressions\ControlFlow\If.vb - - - - - - BAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - Interpreter\Parser\LDM\Expressions\ControlFlow\If.vb - - - - - - BQAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAA= - Interpreter\Parser\LDM\Expressions\HybridScript\HybirdsScriptPush.vb - - - - - - BAAACAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAA= - Interpreter\Parser\LDM\Expressions\HybridScript\HybridsScript.vb - - - - - - BAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - Interpreter\Parser\LDM\Expressions\Keywords\Imports.vb - - - - - - BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAA= - Interpreter\Parser\LDM\Expressions\Keywords\Include.vb - - - - - - BAAAAAAAAAAAAAAEAAAAAAAAAAAAAIAAAAAAAAAAAAA= - Interpreter\Parser\LDM\Expressions\Keywords\Library.vb - - - - - - BAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAA= - Interpreter\Parser\LDM\Expressions\Keywords\OnErrorResumeNext.vb - - - - - - BEAAAAAAAAAAAAAECAAAAAAAAAAAAAAIAAAAEAAAAAA= - Interpreter\Parser\LDM\Expressions\Keywords\SyntaxError.vb - - - - - - AAAgAIAAQAAAAAAEAAABAAIAQAQAAgAAAABAAgAAhAA= - Interpreter\Parser\LDM\SyntaxModel.vb - - - - - - AAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAACAAABAAA= - Interpreter\Parser\Tokenliser\FullTokenliser.vb - - - - - - AAAAAAAAAAAAAAAEAAAAAAQAAAAAAAAAAAAAAAAAAgA= - Interpreter\Parser\Tokenliser\Tokens\EntryPoint.vb - - - - - - AAAAAAEAAAAAAAAEAAAAAIAAAAAAAAAQAAAEAAACAgA= - Interpreter\Parser\Tokenliser\Tokens\InternalExpression.vb - - - - - - AACAAAAAAAAAAAAEAAAAAIAAEAAAAAgCAAAAACAAAgA= - Interpreter\Parser\Tokenliser\Tokens\LeftAssignedVariable.vb - - - - - - - - Interpreter\Parser\Tokenliser\Tokens\Operator.vb - - - - - AAAAAAIAAAAAAAAEAAAAAAAAAAAAAAAAAQAAAAAAAgA= - Interpreter\Parser\Tokenliser\Tokens\Operator.vb - - - - - - - - - - - Interpreter\Parser\Tokenliser\Tokens\ParameterName.vb - - - - - AAAACAAAAAAAQBAEAAAAAAAAAAAAABAAAQAAAAAAAkA= - Interpreter\Parser\Tokenliser\Tokens\ParameterName.vb - - - - - - DAAAABAAAAAAAAAEBAABAQAAAAAAAQQAAAAAAAAAAgE= - Interpreter\Parser\Tokenliser\Tokens\Tokens.vb - - - - - - AAAAAAAAAAAAAAAAAAEAAAAAAAABAAAAAAAAAAAAAAA= - - - - - - - - - - - Runtime\ExecuteModel.vb - - - - - IggAAIAAi0zEAgggCQAQCAAJoCQE8VAAAgCBKEIAAAA= - Runtime\StatusMachine\ExecuteModel.vb - - - - - - AAAAAAAAAAAAAAQAAAAAAABAAAAEAAABAEAAAAAgAAA= - Runtime\StatusMachine\FSMMachine.vb - - - - - - AAgAAAMAIjAAAAAEAAgAAggAAEAEAFAAAAAAAAAAIAA= - Runtime\ScriptEngine.vb - - - - - - CCRgAEAEIlAEABAAiCBCQAAgBABIgAAEAAQgAAEACMA= - Runtime\MMU\MMUDevice.vb - - - - - - - - - Runtime\MMU\Variable.vb - - - - - ABAAAAAAACIAAAAEAAgAIAQAAAgBAgACAQAgAgAAAAA= - Runtime\MMU\Variable.vb - - - - - - - AAAAAAIAACAAAAAEAAAAAAAAAAAAAAAAAAAAAgAAAAA= - Runtime\RuntimeComponent.vb - - - - - - - IAAAAgAAACQgAQIEAAAEAEAAAAAAAgAggAAABAAAAAA= - SPM\Nodes\Assembly.vb - - - - - - - AAAAEgAAAAAgAAAEAAAEAAQAAAAAAAAAAIAAAAAAAgA= - SPM\Nodes\EntryPointMeta.vb - - - - - - - AAAAEgAAAAAgAAAETAAEAgEgQEAABAAACAAAAAAACAA= - SPM\Nodes\Namespace.vb - - - - - - - AIAAAgAAAABAAAAAgAAEAAAAAgAAAIAAAAAAAAAAAAA= - SPM\Nodes\PartialModule.vb - - - - - - - ACQEgIAAACAAAAAAAAABAAAIAABAAAAAAAAAAAAAAAA= - SPM\PackageModuleDb.vb - - - - - - CEYIAAAAACAEBBAQGAAQBAQEAAAAAEoUAAAgAgBQIAA= - SPM\ShoalPackageMgr.vb - - - - - - - CAAAAACgAAAAEBBEAAACAAQAAAACAAAAAIEAAABAAAA= - Interpreter\Linker\API\APIEntryPoint.vb - - - - - - - AIBAAAEAAAAAAAAEoAAAAAAAAABAAgAAAIABAAAEAAA= - Interpreter\Linker\API\FunctionSignature.vb - - - - - - AAAAAAAAIAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAA= - Interpreter\Linker\Linker.vb - - - - - - AAAAAQAgIAAAAAAEAAAAAAAAAAAAAJAAAAAAABAAAAQ= - Compiler\CodeDOM\Program.vb - - - - - - AAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAEAAA= - Configuration\Configuration.vb - - - - - - AAAACAAAAAAAIAAABAAAAAAAAAAAAAAAAAgAAAAAAAA= - HTML\IWikiHandle.vb - - - - - - KQCAABAAAgAEABAACAAAAAAAIAAAABAEAAAgAAAAAIA= - Interpreter\AnonymousDelegate.vb - - - - - - - AAAAAAAAAEAAAAAAACAAAAAAAAAAAAAAAAAAgAAAAAA= - Interpreter\Linker\API\Arguments.vb - - - - - - BAAAAAAAAAAACAAAAABAAAAAACAAAAAAAQAAAAAAAAA= - Interpreter\Parser\LDM\Expressions\Collection\CollectionOpr.vb - - - - - - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - Interpreter\Parser\LDM\Expressions\Collection\CollectionRef.vb - - - - - - BAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAQAAAAA= - Interpreter\Parser\LDM\Expressions\Delegate.vb - - - - - - BAQAAAAAAAAAAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAA= - Interpreter\Parser\LDM\Expressions\Source.vb - - - - - - BAAAAAAAAAAAAAAAAAEAAAIAAAAAAAAgAAAAAAAAAAA= - Interpreter\Parser\LDM\Expressions\Driver\DynamicsCast.vb - - - - - - BAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAgAAAAAAA= - Interpreter\Parser\LDM\Expressions\Driver\FileIO.vb - - - - - - BAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAA= - Interpreter\Parser\LDM\Expressions\Driver\OutDeviceRef.vb - - - - - - BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAA= - Interpreter\Parser\LDM\Expressions\HybridScript\RedirectStream.vb - - - - - - BAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - Interpreter\Parser\LDM\Expressions\Keywords\Cd.vb - - - - - - BAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - Interpreter\Parser\LDM\Expressions\Keywords\Memory.vb - - - - - - BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAA= - Interpreter\Parser\LDM\Expressions\Keywords\Return.vb - - - - - - BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAA= - Interpreter\Parser\LDM\Expressions\Keywords\Wiki.vb - - - - - - CAAQAAAAAAQAACAAAIAAwAAAgAAAAAAACgAASAABIAg= - Interpreter\Parser\Tokenliser\MSLTokens.vb - - - - - - ABBACAAAIAAAAAAIAAAEAAAggAACAAABAABAAAgAAAA= - Runtime\Debugger\Debugger.vb - - - - - - - AAAIAAAIASAAIAIAACAAAAQAAAIAAAAAQAAICgAABAA= - Runtime\Debugger\DebuggerListener.vb - - - - - - - AAAAAAAAAAAEAAAAAAACAAAAAAAAAAAAAAAAIAAAAAA= - Runtime\Debugger\DebuggerMessage.vb - - - - - - IAAAAAIABAAAAAQAAAAAAAAAAAAAAAAAAEAAAAAAAAI= - Runtime\Debugger\ShellScriptDebuggerModel.vb - - - - - - - - Runtime\Driver\DriverBase.vb - - - - - QAAAAgAEAAEAAAAAAAACAAAIAAAAAAAAAAAAAAgAIAA= - Runtime\Driver\DriverBase.vb - - - - - - AAAAAAAAAAAAAAAQQAACAAAAAAAACAAAIAAAAAiAAAA= - Runtime\Driver\DynamicsCast.vb - - - - - - - - - - - Runtime\Driver\IODeviceDriver.vb - - - - - AAAkAACACAAAAIAAAEACggAAAACgAAAAAAAAAAiAAAA= - Runtime\Driver\IODeviceDriver.vb - - - - - - BAAAAAAAAAAAAAAAAAECAAAAFAABAIAAAAAAAAwAAAA= - Runtime\Driver\OutputDeviceDriver.vb - - - - - - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE= - Runtime\Driver\DriverHandles.vb - - - - - - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - Runtime\Driver\DriverHandles.vb - - - - - - AAAAAAAAAAAgAAAEAAAAAAAAAAAAAAAQAAAAAAAAAAA= - Runtime\Driver\DriverHandles.vb - - - - - - AAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAA= - Runtime\Driver\DriverHandles.vb - - - - - - AAAAAAIABCAAAAUEAAAARoBEDAgCAEAgANgAogYQAAI= - Runtime\Dynamics.vb - - - - - - - AAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAA= - Runtime\Exceptions\DriverNotFound.vb - - - - - - AAQAAAAAAAAAAAAAAAAAAAAgACAAAAAACAAAAAAAAAA= - Runtime\Exceptions\MethodNotFoundException.vb - - - - - - AAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAA= - Runtime\Exceptions\RuntimeException.vb - - - - - - AAAAAAAAQAAAAAAEAAAAAAAAAAAAAAAAAAAQAAAAAAA= - Runtime\HybridScripting\Interface\DataTransform.vb - - - - - - - - - AAAAAAAAAAAAAAAEAAAAAAAAEAAAAAAAAAEAAAAAAAA= - Runtime\HybridScripting\Interface\EntryInterface.vb - - - - - - AAAAAAAAAAAAggAAAAAAAgAAAAAEAEAAAAAACAAAAAA= - Runtime\HybridScripting\InteropAdapter.vb - - - - - - - AAAAIAAAAAAAAAAAAAAAAAAAAAgAAAgAAAQAAAAAAAA= - Runtime\MMU\Strings.vb - - - - - - AAAQAAAAIAAAAgAAAAgAAAAAAAAAAAAAAAAAAAAAAAA= - Runtime\MMU\PageMapping\DDM.vb - - - - - - - AAAAAAAAJAAAAgAAAAgAAAAAAAAAAAAAAAAAAAAAAAA= - Runtime\MMU\PageMapping\DDM.vb - - - - - - - AAgAAAAAAAAAAAAAACAACAAAAAAAAEAAAAAAAAAQAAA= - Runtime\MMU\PageMapping\MappingImports.vb - - - - - - AAAAgAAAIAIAAgAEAAgAAAAAAAAAAgAAAAAgAAAAAAA= - Runtime\MMU\PageMapping\PageMapping.vb - - - - - - - AAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - SPM\Nodes\HybridEnvir.vb - - - - - - - - - - - - Interpreter\Parser\LDM\Expressions\ControlFlow\For.vb - - - - - Interpreter\Parser\LDM\Expressions\ControlFlow\For.vb - - - - - Interpreter\Parser\LDM\Expressions\ControlFlow\For.vb - - - - - AAAAAAAAAIAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAA= - Interpreter\Parser\LDM\Expressions\ControlFlow\For.vb - - - - - - IgAAAAAAAAAAAAAEAAAAAAAABAAAAAAAAAAAAAAAAAA= - Runtime\StatusMachine\Stack.vb - - - - - - CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - Interpreter\Parser\MachineElement.vb - - - - - - AAAAAAAACAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAA= - Runtime\HybridScripting\Interface\ScriptEntryPoint.vb - - - - - - BAAAAAAAAAAAQAAAAAAAAAAAACAAAAAAAAAgAAAAAAA= - Interpreter\Parser\LDM\Expressions\Collection\CollectionAppends.vb - - - - - - AAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAEAAAAAAgA= - Interpreter\Parser\Tokenliser\Tokens\CollectionElement.vb - - - - - - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAgAAA= - Interpreter\Linker\API\Alignment\Alignments\OneParameter.vb - - - - - - AAAAAAAAAAAAAEAAAAQAAAAAAAAAAAAAACAAAAAAAAA= - Interpreter\Linker\API\Alignment\Alignments\SpecialAlignment(Of T).vb - - - - - - AAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAACAAAAAAAAA= - Interpreter\Linker\API\Alignment\Alignments\TwoParameter.vb - - - - - - AAQAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - Interpreter\Linker\API\Alignment\ParamAlignments.vb - - - - - - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA= - Interpreter\Parser\Tokenliser\ParserCommon.vb - - - - - - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - Runtime\Exceptions\MethodNotFoundException.vb - - - - - - EAAAAAEAiAAIAgoEAAAAAgAAAAEAAAEIAAASAAAAAAA= - Runtime\HybridScripting\EntryPoint.vb - - - - - - AAAAIAAAAABAAAAEAAABAAAAAAAAAAAAAAAAAAAAAAA= - Interpreter\Linker\API\ParameterWithAlias.vb - - - - - - AAAAAgAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAA= - HTML\IWikiHandle.vb - - - - - - AAAAAAAAAAIAAAAAAAgAAAQAAAgBAgAAAQAgAAAAAAA= - Runtime\MMU\PageUnit.vb - - - - - - IggAAoBgAghGAiAgCQAQGAABACAEAGABAgDAKAIAIAA= - Interpreter\Parser\LDM\Expressions\ExpressionTypes.vb - - - - - - AAAAAAAAABAAAAAAAAgBAAAAAAAAAAAAAAAAAAAAAAA= - Runtime\MMU\PageUnit.vb - - - - - - AAAACCAAACAAAAAAgAAAAAAAAAAAABAAAAABAAAAACA= - Interpreter\Parser\Tokenliser\Tokens\TokenTypes.vb - - - - - - AAAAAAAAAAAAAgAAAAAAAgAAAAAAAAAAAgAAAAQAAAA= - Runtime\HybridScripting\Interface\EntryInterface.vb - - - - - - AAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAA= - Runtime\HybridScripting\InteropAdapter.vb - - - - - - AAAAAAAAAAAAAAAAAAAAAAAAAgCAAAAAAAAAAAAAAAA= - Runtime\HybridScripting\InteropAdapter.vb - - - - - - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAA= - Debugger.vb - - - - - - AAAgAAgAEAgAAEAAAQAAAAAAAAgAAQAQAAIAAIEAAEA= - HTML\DocRenderer.vb - - - - - - AIApQgJJgRBAEEhAASCAQgADAEkiCABAAAgAQoEAAAA= - Interpreter\Parser\SyntaxParser.vb - - - - - - AAAAAAAAABAAAAAAAAABEAAAAQAAAACAAAgIAAABAKA= - - - - - - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAA= - - - - - - AAAAAAAIAAAAAAAEAAAAEEAAAAAAAEAgACAAAAAAACA= - SPM\Nodes\AssemblyParser.vb - - - - - - AAABAAEgAIAAEAAgCAQAAAABAAAACAAAAiAQAAAEBAA= - Interpreter\Linker\API\Alignment\FunctionCalls.vb - - - - - - AAAAAAAAAAAAAAAAAABAAAAEAAABAAAAAAQAAAAAAAA= - Interpreter\Linker\API\Alignment\TypeEquals.vb - - - - - - IAAAAAAAAgQAAAgEAAAAIAAIAAAAIAAAAICAAABAGAI= - InternalExtension.vb - - - - - - AAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAA= - Interpreter\Linker\API\APIInvoker.vb - - - - - - AAAAAAAAAAAAAAAAAQACCAAAAAAAAAAAAAAgAAAAAAA= - Interpreter\Parser\Tokenliser\ParserCommon.vb - - - - - - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - Runtime\Debugger\DebuggerProtocol.vb - - - - - - AAAAAAAAAAAAAQAAAAAAAAAAgAAAAEAAAAAAAAAAAAA= - Runtime\HybridScripting\EnvironmentParser.vb - - - - - - AAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAA= - Runtime\MMU\PageUnit.vb - - - - - - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAEAAAAAAA= - Runtime\RuntimeEnvironment.vb - - - - - - AAAggAABAAAQAAAAAAAAAAAAAAAAQAAAAAAAAAIAAIA= - HTML\TypeLinks.vb - - - - - - AAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - HTML\Cites.vb - - - - \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/ShoalShell_Core.v2.vbproj b/Shoal.v2/Shoal.v2/ShoalShell_Core.v2.vbproj deleted file mode 100644 index dc98afc0d..000000000 --- a/Shoal.v2/Shoal.v2/ShoalShell_Core.v2.vbproj +++ /dev/null @@ -1,363 +0,0 @@ - - - - - Debug - AnyCPU - {A7CB16FF-75C6-4746-8449-86C121D723C4} - Library - - - Microsoft.VisualBasic.Scripting.ShoalShell - Microsoft.VisualBasic.Scripting.ShoalShell - 512 - Windows - v4.6 - true - - - - AnyCPU - true - full - true - true - bin\Debug\ - Microsoft.VisualBasic.Scripting.ShoalShell.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - x64 - pdbonly - false - true - true - ..\..\..\GCModeller\GCModeller-x64\ - Microsoft.VisualBasic.Scripting.ShoalShell.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - false - - - On - - - Binary - - - Off - - - On - - - true - true - true - bin\x64\Debug\ - Microsoft.VisualBasic.Scripting.ShoalShell.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - full - x64 - MinimumRecommendedRules.ruleset - - - true - bin\x64\Release\ - Microsoft.VisualBasic.Scripting.ShoalShell.xml - false - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x64 - MinimumRecommendedRules.ruleset - - - true - bin\Publish\ - Microsoft.VisualBasic.Scripting.ShoalShell.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x64 - MinimumRecommendedRules.ruleset - - - true - bin\x64\Publish\ - Microsoft.VisualBasic.Scripting.ShoalShell.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x64 - MinimumRecommendedRules.ruleset - - - true - true - true - bin\x86\Debug\ - Microsoft.VisualBasic.Scripting.ShoalShell.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - full - x86 - MinimumRecommendedRules.ruleset - - - true - bin\x86\Release\ - Microsoft.VisualBasic.Scripting.ShoalShell.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x86 - MinimumRecommendedRules.ruleset - - - true - bin\x86\Publish\ - Microsoft.VisualBasic.Scripting.ShoalShell.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x86 - MinimumRecommendedRules.ruleset - - - true - bin\docs\ - Microsoft.VisualBasic.Scripting.ShoalShell.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x64 - MinimumRecommendedRules.ruleset - - - true - bin\x64\docs\ - Microsoft.VisualBasic.Scripting.ShoalShell.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x64 - MinimumRecommendedRules.ruleset - - - true - bin\x86\docs\ - Microsoft.VisualBasic.Scripting.ShoalShell.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x86 - MinimumRecommendedRules.ruleset - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - - True - True - Settings.settings - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings1.Designer.vb - - - - - - - - - - - - - - - - - - - - - {fecce1fd-e1d4-49e3-a668-60bb5e7aed99} - +Microsoft.VisualBasic.Architecture.Framework - - - - - \ No newline at end of file diff --git a/Shoal.v2/Shoal.v2/Syntax Manual.docx b/Shoal.v2/Shoal.v2/Syntax Manual.docx deleted file mode 100644 index ede58a1943274fd273f5bcbd7acfefff5e427827..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12045 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 diff --git a/ShoalShell.Debugger/Debugger.vb b/ShoalShell.Debugger/Debugger.vb deleted file mode 100644 index f2dd4feed..000000000 --- a/ShoalShell.Debugger/Debugger.vb +++ /dev/null @@ -1,9 +0,0 @@ - -''' -''' 在IDE端所使用的调试服务器终端 -''' -''' -Public Class DebuggerWorker - - -End Class diff --git a/ShoalShell.Debugger/My Project/Application.Designer.vb b/ShoalShell.Debugger/My Project/Application.Designer.vb deleted file mode 100644 index 88dd01c78..000000000 --- a/ShoalShell.Debugger/My Project/Application.Designer.vb +++ /dev/null @@ -1,13 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - diff --git a/ShoalShell.Debugger/My Project/Application.myapp b/ShoalShell.Debugger/My Project/Application.myapp deleted file mode 100644 index 758895def..000000000 --- a/ShoalShell.Debugger/My Project/Application.myapp +++ /dev/null @@ -1,10 +0,0 @@ - - - false - false - 0 - true - 0 - 1 - true - diff --git a/ShoalShell.Debugger/My Project/AssemblyInfo.vb b/ShoalShell.Debugger/My Project/AssemblyInfo.vb deleted file mode 100644 index a0dfd5622..000000000 --- a/ShoalShell.Debugger/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,35 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - -' General Information about an assembly is controlled through the following -' set of attributes. Change these attribute values to modify the information -' associated with an assembly. - -' Review the values of the assembly attributes - - - - - - - - - - -'The following GUID is for the ID of the typelib if this project is exposed to COM - - -' Version information for an assembly consists of the following four values: -' -' Major Version -' Minor Version -' Build Number -' Revision -' -' You can specify all the values or you can default the Build and Revision Numbers -' by using the '*' as shown below: -' - - - diff --git a/ShoalShell.Debugger/My Project/Resources.Designer.vb b/ShoalShell.Debugger/My Project/Resources.Designer.vb deleted file mode 100644 index 4ced1cd23..000000000 --- a/ShoalShell.Debugger/My Project/Resources.Designer.vb +++ /dev/null @@ -1,63 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - -Imports System - -Namespace My.Resources - - 'This class was auto-generated by the StronglyTypedResourceBuilder - 'class via a tool like ResGen or Visual Studio. - 'To add or remove a member, edit your .ResX file then rerun ResGen - 'with the /str option, or rebuild your VS project. - ''' - ''' A strongly-typed resource class, for looking up localized strings, etc. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Returns the cached ResourceManager instance used by this class. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Debugging.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Overrides the current thread's CurrentUICulture property for all - ''' resource lookups using this strongly typed resource class. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set - resourceCulture = value - End Set - End Property - End Module -End Namespace diff --git a/ShoalShell.Debugger/My Project/Resources.resx b/ShoalShell.Debugger/My Project/Resources.resx deleted file mode 100644 index af7dbebba..000000000 --- a/ShoalShell.Debugger/My Project/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/ShoalShell.Debugger/My Project/Settings.Designer.vb b/ShoalShell.Debugger/My Project/Settings.Designer.vb deleted file mode 100644 index 52e7b276c..000000000 --- a/ShoalShell.Debugger/My Project/Settings.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) - -#Region "My.Settings Auto-Save Functionality" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings( sender As Global.System.Object, e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Debugging.My.MySettings - Get - Return Global.Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Debugging.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/ShoalShell.Debugger/My Project/Settings.settings b/ShoalShell.Debugger/My Project/Settings.settings deleted file mode 100644 index 85b890b3c..000000000 --- a/ShoalShell.Debugger/My Project/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/ShoalShell.Debugger/ShoalShell.Debugger.vbproj b/ShoalShell.Debugger/ShoalShell.Debugger.vbproj deleted file mode 100644 index 3bf456a4e..000000000 --- a/ShoalShell.Debugger/ShoalShell.Debugger.vbproj +++ /dev/null @@ -1,222 +0,0 @@ - - - - - Debug - AnyCPU - {98B35793-A1A2-4E78-BAFD-75E0D95E6367} - Library - Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Debugging - Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Debugging - 512 - Windows - v4.6 - - - - true - full - true - true - bin\Debug\ - Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Debugging.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - pdbonly - false - true - true - ..\..\GCModeller\GCModeller\ - Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Debugging.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - true - true - true - bin\x64\Debug\ - Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Debugging.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - full - x64 - MinimumRecommendedRules.ruleset - - - true - ..\..\GCModeller\GCModeller-x64\ - Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Debugging.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x64 - MinimumRecommendedRules.ruleset - - - true - bin\Publish\ - Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Debugging.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - AnyCPU - MinimumRecommendedRules.ruleset - - - true - bin\x64\Publish\ - Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Debugging.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x64 - MinimumRecommendedRules.ruleset - - - true - true - true - bin\x86\Debug\ - Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Debugging.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - full - x86 - MinimumRecommendedRules.ruleset - - - true - bin\x86\Release\ - Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Debugging.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x86 - MinimumRecommendedRules.ruleset - - - true - bin\x86\Publish\ - Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Debugging.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x86 - MinimumRecommendedRules.ruleset - - - true - bin\docs\ - Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Debugging.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - AnyCPU - MinimumRecommendedRules.ruleset - - - true - bin\x64\docs\ - Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Debugging.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x64 - MinimumRecommendedRules.ruleset - - - true - bin\x86\docs\ - Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Debugging.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x86 - MinimumRecommendedRules.ruleset - - - - - - - - - - - - - - - - - - - - - - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - {fecce1fd-e1d4-49e3-a668-60bb5e7aed99} - +Microsoft.VisualBasic.Architecture.Framework - - - {a7cb16ff-75c6-4746-8449-86c121d723c4} - ShoalShell_Core.v2 - - - - - \ No newline at end of file diff --git a/ShoalShell.Legacy/App.config b/ShoalShell.Legacy/App.config deleted file mode 100644 index 2d2a12d81..000000000 --- a/ShoalShell.Legacy/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/ShoalShell.Legacy/Code b/ShoalShell.Legacy/Code deleted file mode 100644 index 3d73f97268228fbdd58084e429c3c3b4d7746ba2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1520704 zcmb@v378~Bng5@inUz(Q)!j_>QPp#HGcZlkRXxMZ2n>V30E+G?3WzuZD3=$ABvvsV z6x9sgs{@Lx7mCLyuJ?VfH>;?->WH^Ot9y8@>#e)GYxDnn-^i@09>DeYJpXy7Gb7%3 zd1*iJ{GrNF$@6|x^E_Vq_s+2Hc{3K|vBQOZ$G4#3-~L?)9`K#N ztMl6N9M4-}|NHMOnxjMaAqvmby$=>LpkBYKc{?7!dq>?H=JoBM?yV90ul+aEW8HF; zh(CBB@5ZYh_w=iXzyIH;BWYGw_#XT><9QcuY_(gL05sm<(Tj-ugggWPcEIJv*5fWu zK@_jznaX?KFYbYNijoKay;ySPpLp}Vf_LFpO5W4&H;PX9-ffij=FKJViO)2Yzv?l5 zRKfcvFo!&^>L)zoHk`!qL?uDZ;*@rZ6XYDXNV_tjHt}#NDe`JQpiNuHm10`vRV*bj zue73YO0D9kn7rTjB0ow-i222Ilvi?y3)9GPQdPK~jOkTN#$9Z}y(ZlYfy92BD#s(` zsdS2WIaw)KYg+8AQn1FqWHq5S4IU?JdCYm^NBN$FM`fyQY7$k7ewRpC47x zVR52My~5&BL@a8r6BQ`Oaa2oZct`1>M$TL3C+ihjeN^E65W3K)`qzk3av1RD(45~9 zdB0<@!+|Xzws5{Wu@n)A+8Y4v70BQz#WvC-fGtL|cfCZMwgE-Pj^7~|rU|JK*T0D! z$&thcsQXJ1jS;oy0H+NevyL6$v`*A+0!ro$z7)|=QF|j1D5%;|x@ic=CLpe?yFqu%xhdl3Q{^1V-a<6rY=QZm%%yblKHWsVf6rp+d zQsOZVsg_EUC_it<*Z3V#aukjc&mEDxJd^kC9p|OTDu?ulqUmW~HHe)uN6s zM+e)-fp)bYB&atD!beTj?W@yEZR&1Z(;>nr=zMg>Y?Y$ni}+neVC}>Tfz$pazccMxf~b<*#kCgJqb){0;2 zD(J_JVl5Y1M?&k;tYPGLB)KkHhxpWn*o=t2SnvWm9XYFxRHgVpB&EjkP%!U1=!fjq zwy*Q>CtVR8QA`k8+}z+V?Bw00(xG3s9I zskQ+}DKmH9efPD#!DZ>9E+#IdZm=7IVy}+D92W$mE{0EuV$1I+Qr~T&?qUjo=$SlJ z?2h^yvh+NUWwo5vUK>|r=xP<3wJ}udVn{>3bt5X#r3*k$fac1BNVRV2A>^DmW?cyi z?@mvL3BMyM$-^WI%(58Q%ZYGhCc?#5E+SVUSO0@*BAWGGxoAwTPBaILFB6;OW3@c# zy-RoB?aTH@wRo}UComA*iC&zHty1&r-=AnW{n5wl-#WjeR-RkcJ_FXT_EytRv1jVr zneN2V)b0nOO&SXAZ%(vTiVWcpB2~}!S2>b7y~n$8!4I5Dn0j}m-Q>BVr*f)Yv*L6l zJ&RK39`Co$mJG2KVUGmXLix7)9f5-|#l^yCZE^AR9E+jaS^QC192;l&=`IJz({~@7 zey#)b>7QqSUjFl!=YMpTKd#Mrr)6b62G~A2=4$x7H&~C>1uk&A@9nJ zPXUv*rCioi#ta3KrJA3c#CNN>j^3V^vhwD}79-)`N2ZQU+PX_htH`AqY@}{r3#Tq4Utf^nW5m=>I3;gtHkaQ#F z(+TY_b~h-y<(8-8Cm4~aJ1gL5*gaD3j!KxH@;ibySF~O${){2x&%x)X3-!&bTf2Pk z%7UY>W?zP;l3HH}A;A_kYFm!=I|AKsX?<%cBQntgZC>eXB#Y{sSG2xMo&kZN6v$da zkjy0oy~Ui~VpealK1V-R5$VMnmt)XrI(Ghgu}r0p?&C z)v%bHNoCCKa`bPw^rQ=MK%#lSMtiA=>qjL;vqH_8)?*>;paYs`9V=5%%dmNu%P@bq zKV>aHUZ@sotzVLPf3;9={niD#5>lh-aO+#^#ab#`quDs!cvv*KvDW%8Rl;oLfGmpj zU2)?<(d5?qNDuv}7&-SPeID#g#*LL=Plj2EBV$4Gd~vTth%r@kj>ct@=6x1B_gp_n zA3+lY6Y|CNy1!oODLm5|9@Ynw(-hKN2Al1nxz(wj^*P~|s6M^@mT0dO2HkUW%wzoI zZ{eh#obPC?XLg(gd-Ds_SM!U6rh$#G-s|E27cej#_)mEnrqbk8DJW<@TZa4+S7 zu2xN7MA;igx{`Z&d&ivU$I-5}iX7dG3Ef$o8}y;SLR09kNHz2i+o<|2^Pw3~ys@4> zREl-ib;-5dk5)l_KYESluj~2IMzilno6fajg*hhHV*OT;A3HE8dw($csWRzUX zW7a3{EV6k!q!pg?gNZP?&ZL?7($7>xvio$a+~B&ru{VgR!mJejgB(flEpmdLC596lJ_0q`y=K zBY$JgqtAtf_B&z4>dab|>KG2By{nhjlB{m(RmCZOkiI(;5B;ybUA)R){T}jQmS=kV z`hFG-01Tv)De{Wy74!FoedmWGxp+R9XjHPeG<+mzqiB)bJE=)D9yQLZM(M*z8ZSf} zG^|DST}G{1XnlZ!5@Z`U!&;@Wr8qxQDo52qf?`IqjrD#tByv5G`I=uXL@Aby8R!5G zr0F2>{Hqs-t5LH^^em!xMmAS%4!gGjqmt`$zIUeg#E-b`1@!?M!&^nYop4fG3Z-3# ze$pJc?BUo@%5nj2X;4h*5K(=2aW$zQP^sT>+KbpS?XAsG3QD>{`aA43j&=I`!C=1Z z7tD*os+t>ANT(qd2Id*LsdXscBc}2AGLd&XbXI5W@ejTB2n(a(XklVQ<;>!S;WJAc zM$Rms>33w~g7kyNaQY!}hNH_`_J;|!zC`BqBZShA@;DPI8u(kw!5Q?2J*dbuAC!TA zx*UAeXimJ3Z^TD)>irA`XY3e1s_6YAb)svd8kpOti5UwM#+#^)5|4RfLt{RYWiWP* zdNGlLH81pwW;@5jke!o8SdK^4s8%eMlYgMV{naS>81GQSo}ty~-=X(g%2}&6YF^^1Bt4Jj zNBcA8{l&(SELW+zmX-xkI#z;D5%h2#yKCvkAwOIjX-t&LH^(k1GOo+@T_fev4VP~D z(Lja)G8;#;h@?>8I^trkmYJ?u83S21pX_(wC~WgQQd(y4r`j%@$=eK6-w9}1^V+TRzx1Q&RwI0^#WZO`2?R-ks&hbH68XGY& zL%}dJTD3bGre-gg^hzcoBI-HyIoEeW?+@@r_o@cAdYgQLQkwLLTDYZr*4jJFl2crAs#1Dmih0`dTQm2lj5bg?RhX-EvBC$ z7S}3Kx|7`Vdm>xk87?)a{2)pn1k9Grr_Y!^L!MpKcm!~^U|vqR`Jm$T+D+rZ^vv|y z;_mjRp_G1xM`JQbZ{uwVeQ-_?^l5`mZ=K$3L}3HoxT$2c_kP`s$uPB3)dN;W|XRBzkX^p za>-TXD_bC1TfSW_P`L@KL$&bN)UGV=D7t6u;8-Kb_ES{5(XrA}tv`q`POZ`SQSxry z@5U+L`v>o{dxy*y(wOxK>U1det1;h`R)z`HjjWSuct~EY80{1fH&&Hocj5|zV^FY` zU>w5^$Mv{m0-j%7j7!a^LZw}jA*I+e-SkM?vS>8;hwyfm+?yHzPeFhVTkQb|AtF9 z9pVQ!J70`$5YPW8nDZVMY}o0{!LGCY&|2Jl(O)Bq!_)t`@SZ*$HqWwmdIId*bc!o+{_e7Bi9Ql8#^{Bwzy2bbJB02uDQ z#xqLAts~KN$E}V`RvK3qYnz^`z23%^gpMcVsBawc3EOBh-Q8Gi9VuyGi-*k<3MbuFOw7hvh?V>I6w4Qra4 zlEu5h;sx8F7+pS%(USiTI^5h&zoU1y;P*wy%y|pst0#=RQDJ^?e#I8VKM8^DBE4On zT6#2yfzH=7QaW*#f9l@ze@O_R@jH6oGrxn>Gm4QYe%UChF72-n>{97`ud$ViJqQqMV*)x0{EN$zrnaT?DJ0dJ)5kbyOSk8OB*)43HfN z<|TY>Ifj92Cp->)l266Di0Jp$x1$sQs zHV4kqSY=Xcr{53?eo4W50+Klb*^YTjlNt(V?mlGNt0mtAA^jGQFdenOPrkhZ8C-|S8u7$P`{$&|B1Y|_Iej!-no94-yVSi+ zH8|x^FDlQER>P&}KSkq*&=@Hn;MkU9d?MWm28$w}6_vu`=1Mi}C}->Y^zov3lB?5W zAh@(DOKA>g0p}A`3sfUJ?{t}0+2gHNJ+zX3`ir%EB$<@GhZk6Hp-%Aoi;Um)zrafu z*@PK`zZ8Q_V=#H<2H1((zXCK|s)k+IqYsv-a;s8i*GPkEV0*7_1l~t2f(2%TPF^%> zCNF^uZt`lDaQ5!HE#$yXt@}BWc-^koL>F_a7gkNLFS-{tM=@-SURV&lun&4+8}vHh zUi3x9=!>FBhY8zP!9=ClIu(Akl^4wxTYozczERuR8T{h|@UN(TKjcwbihiwn{3{~S z-ku2Tj!Aqn4-$WKaN_Ms{GLl>^0_?cGb<#%gaUra;NX99v^?>rN-VFi#Q!}w@kzj2*So|& zADsBFN*tpelS{n&;KZ3R5>Mj+L+k@AZ@|we@#`*;-Ja!%zfod5ZaMut zu_w&ulF)j;OAYRkx^9Bhhw`A*Fi*|Iu=kx3njV2RZlc*zNBw1f)KAd=Xp-Kv2lwAW z$C-q&kx{14)7`y`_-pZZ1AkaokIw8t-<#s^R>IpF1ln6DF)nq~8RusX1I)h_?${=F zM&=>?H#$J1eSLfzLySrtb=TzINl3^U*@@5`{YOBz!JX$%B=lpKxa|`HxO@`{y*x^P ztlU2l^8Udz>X&6O_6!J6(o0;gyE+iyIjUByw zcL)Y*)Mze;kuhS;zSJ?>(lOK0ku6Ce7A;@Itj)>tYTpULcpLd!fzVInZ3+yWuPHE*=6YB-BFa|lcdt9jWO>U0h0d! z6Jsv=JE7mq=p#z<1YHR64!b|Ix1)=!jV^5?x{5lwv7;-%Al*}-JD<`0Z_5*OF%sl; z^e{C>4|^nfiaL4~M^Au3dg2oq;WPMMdKP(tE}e*X*rmVlPJW^K(#^^a;Z+(wGorA7`=Qhhr z@zoim_54ZfCIbvdOsW$bETh3}K(zwG4fD}#Yae(k{DOt|D;$ivgf}U|>cVeCgGEw? zoOpILv{UZ$s}ly9!E^AR0Nc*NugC}TJAi=xFyU$Z4%-YpaSVT|Z7Jiy#g6r2a6k(;=(`VI1Hm1jz9)CoMGFw7;)vbO0|s5 z@vx2AXBm*Q#zg|nsj7ll`#3>6;^ak#VG+;=R!Y#QczkjjmWY!XDS8!;N13;>3VQ52 zs4o4QW`J7zUC@x#%qm+<-w(j*S(vDf&mW>w@T+o@JU(6>Pd^C4Y?;Nb_p10^kcBOT z|1wc3RZGnWOtf!YPq6wS+RF@oKedvy23D5jUeY)`C7+Z9Se=nRyl()E)&gQ^pWf zS5#NraH$rkqxl|UE&0?ye6cpp?4|^_tt+KzW9fc+(xSImqIfmPos#TYNft95PbEiS z8Zu_lXji+OdB!C-#xdu)pT?E<4}Ir)--Z+4d%eH@HW&81+kz*|g|+qO=ie4wdrAlc z^7BIvh4ePVd5|2U>Ty6qZo=F|@^xPE%1W3pkBf$Fg*cj+Xg~3AFB&NarSWhqOjeL( zJ}5SdglYG+dG^0W=?nOk1F#~|9_U5whk^b+pnAVrXQM@S@15x zb=g8a+lL}r){mE0mu<-aY4^VZ>SD{$@{V4~{b+)N>_{9f(8|u1F+^rsE0DpHNgB9X zSc=xGA+e5eQj;EkGS9>Cnay_uGPsU+WB&qE(>CLS_Sj8PzKEif^ifcwWF5EYPIW|W z#*+BzQd;LVU(b+#XUHo-cFBb%mJP=ww{H)wiKuhNFookGK<0SJ?~>nfbVh%xWeK`W`yt`{BfM%O$D%p!j-rm-T1QTR-0#T! zxMMPU$6KDDdw+X}-4pEX=x(?0WcN6GcNBGW*EzZZ(dr(hU!3SHvSKq)U z;Y4X2?A6reSSx#J5}%JYk?q+2Jixv?ajfNy+H~_4)Z(e+trW)#H8y50WZZ~u9zO7} zd^Mv~OV*L~Rslv3g$zn_o)NY@UK%Sp`!YOMcEwc7jY9y+&{Rtowx@aX8BN&*dK)_h zR*+v2&3)q9chRvpc}@Go^{qp5liKpdENcfinw|b#g5$ya_wLSato$cZzA-vKkwKoCL-ehamik!xN?#z3SRa2bZ~F!+hp{duS8(oJmpeth za~gx?}*q-?9zEDU=3 zW3l;8p!d?>ZFZR@_nqtRU10m2@9=b1_5cduXlNh0;dg{!e)sn4U~v$2Y^6{wy*G7m zSX;uyX54k+(?=ti(T~ zbA9*U+{E;Sq<0s|%lYje=+!PTOm}~%V8=Zr9KR!+%;)K<1)L~l+)S8wg5K--^W_9b z-R~QQdx}c;8wTjh>|zsyl3aW4p*{O^3|I6(%5PzP*6;KQ_S0H7K*}72uG-y6+oAFi ztb7hRkF7Uafg)h)VPz$!;>`?{<#)bo6p%Y>&I~_MyP@uVIn1R^LUyiVp1}O6oL!bK zadxZA1TOS#bz!XFCx;^bTIDW0Z(3eS;{|^#TAI9?vAh~N|w^%;)351 ze7xwhGe3DhMyzVdVP-rP6Ncn?cC6@97Y{8q*A9rNxndyV{MyC(us^-ziZv;e5=QfQ zaeO&6IU3;H$rR~(o_9Lp`6++L&^M9TvVXgQ>8}oyIu0Ge22U@QO5+GI+2>FYo{v*$k@wNkU+R6$ zk9m&aEFbPv`t9Pmqa;=cq#(ygeToiwva7t%!UKz??@Amm`KZ^=Ma%@1u_r)!HXJN` zkdX0+dC7Pb$l&Q^y>3??D<@gEt6MpKwcKT3&Uq~R$p*(`$#_)Kc-bF|vu+nVvp(O>XY~2Y~e#WQ&@|PDS-^0K1odBUB=^;u}Xq_DZx!;OjWu#5jj&8Kbdt*wXJ=W zG+yz?hLi68;S)IeUB#s?p31hSnvs)91N!l1^dqwA#nP%l_>TcEzNy5PO6mNL^x2G!Fqb0c^_j6TMYrUGjm^l|NN#LaX7wKFVxaSS zkNC+EJ!2#I_=rC?ni-o>hnZD+Br`T6%ZyErX&IYdWSOxsJvIFtG&X&xGd6UOlOM{1 zf8XTq=QP7-(2r9IuUE_Sehzn|Go=Me*<<%J>njAi2dN-srnt}27SLH z@Mu17yKE6n`3I6XD02LD!2C9IgsA%`%j2GZB-~YYzw_TbwLj0mq_ntzjv2h?ABL zGBzv)E^!gJ3G;3QjZ$&Iy!WA*#NB+?^FH+{uPzy5yH)x54-L&iyN@(iuxT-Q@aw?Z=JPT zc6~_khv664;w`xZaCvhB&H@w=mCz@Cz@@tT#I z9+e$(#$L(k5q^dexqQP|Gp5ePigwlNh~5Ba$gFC1mT80m&$>6D#tlbnDPq|&YCizw zNE)z};OI5lrxESq#3BVflilD{7B@!Cao1M*mPl>p?1{N9R#R($Qt}|OFHT6~`_N+Y zU@2hkyF8w{{}au#8C{fZ82tBOVEP-d8ERO*L=pvB2_NN9^4>qwVePG87dB!;u)Ud% zzT0$kMDal#6<|QK6?L~fa9IW6Tya@~rS2j;Qm$>hKlf-5OrI=Snh&eh%6YiKS*+RK z4ySRuSR@)5XM$8;cgV<4;4BKx>Q?TfqOFFRZ3>01g)=jfm2@Q~E!IumDp~S24$h*x z-I-Yvap#H~v?hIM&wl6M%RKY0zNr83hn{T_!}qW)0c&Z<&HiyY1}O7GbAg*+9g4@l zz#^gRtSq=>6D)xYZWAmnvtdakYVSl$tCEdK!!~JYzhn3)U;9=0+Qy=9tNaTr5IT~q zv1BWt0vSBn1OaF7686U$T6lN?H-nJQT^T&vSFM#!Ydb9Y8XYt%?7r3_b_TW<;i{J0 zK?Yl&u(gfcH|9GXad`5VUF6S6*nNKKWm z#s8io%&XyE=ri6pt4>iDjfM;N1Q2!|^A2#h0FF-wV0kC(iZ8#jo~Iicenz*;#{;2V zBcV(rn~-34qv47ZThBZG&s5cKAEAmSV`qkZL_l`CPn^*Rp3 zc4vukZ-6~}Z1opFYzvEf1V~RFMw4~bd@gP+X?r&rVafP7EU8B39x3aJU4$p|ub0~q z{S=1M#!y_-tXm4Spod%c_;ilJd@E`{oU-={w4g__nXc7kB@R~HQ`#{gBEIBl5Nr zPa4x$E}-pL7qKyog$J$6+$u&pO3H>c$gM`_4SBMwywEyZZO5>tMA{fdV5N{+>6t!~ z#OC3xml$KN1_SIdqu}E@cU&RMa1I&luuisAVhkE%gR_@DG#mYNJ|_Q10iON_+C>%X zjeYVfUP+tg?V>#nwaX%TxY6ZNaL_%)s-S0!Pq7gy)7UUwHNnc;(dq@eK=M15zN(+T zp7ag#8)h@~LoHgHZEf$P)J4KPl>rjF`spsu>YRk5IGjh7d!X#@iDHv4|HS8&Mua5= z7qm~-+IV#F!e??*@H3f$a{=uY$lwX?aHD&Y=yddKUDfAhN~K*d&;NY#z{3e3G}mN^ z-!?>n?0i;+)B0b)-5o|x&->Er+H|hh2jimGN*ti!3N%jsqB5%?rOc=5eGPL5Q|4ox zGQSn|;1D;!<;rZx*+$pBDf7u9*3r``^O3D4+;Ozs;7)LsYMQ%Tqx*2obew6lacSHQ zYIGmk^XCS2`U><_e*-$L`t@{L--t6C@=n6m_?-um6mupuNFGhYU4@NWJ?vj2XsMWN zLmu2dx%K<k&^dU+sHYX8an35< z(-P}o{|Hgvk{q56Cc8QJxVQauPleh!?1#Y9$?yap7|m!CTVV8UF}9(?=Hew3#94Ww zt&?X^+Q$+f9`jp|P~>q$g7on`7vreOm#I%6$VCn+N8kS5Z%2NXz}G&p_H*rft$U%K zK9Q`hp!Cv%2|9Ydcf^s79zN=2;OGvi+S9pG}`wgB6ioy%`u0aEvGsD!@t zFnROMeA)xz11mAm%9?y&?Xf?G{HLm|_)?=oWwRTm{Paq)ExY3jd8JPQIMP^IPVsE{ z(2S3J;$SN~^GTcd@M5j(4h(&N@R-MheJJhf*6=o*;p(Mf>SbbAW#SryC&0f5yT1S09YuF~DVxJ{y+T5a*>DWW40Gx-P5t#bvn0p$w$> z%krlxB_rZ?SJe;BLADP-w)!;xSv}eM$wLr7N{g!)4L1%eIbjAN(p=%cXeaGbyiU)k zzI#JlJIY_2$Ufiu#`4eiGW}cQZF-24Y0mdT#<%W?V;()or%CTL2TQL7Zyy~ayT{Jt zJqSbpc1u$+EQ*^&$!O znUs9Boj*7f9!~>@HO6M0o3cpYgRh{-_vW4qWprjE2qw<7y;9jl271qECiqQJ984s8 zu_*J0Ma|JDeKxs+1me;B7%L6Yth!;ubr|%iXwGPG2gQWEBSjwL_pk5@3}}~h%?-jG zvV*Jq8OnbU{LUOGa$4+m%8mmroWSH@+UNa=x$GmaExwhVAn1(u&|^7XcOY}P z^!>T^3q*hq+&(~(UqYjX?TfTZar*onuN2I_-Yo6rCgGEAG#vMRG~1Tb=WjhEnm)h( zsac~9aQ)V?$h;2s)tWv*OL7Z6Y`)~+{dePeQ=mf_F z5wrL!Fs^&Li+oUjp~AS$cSsv{ZW!mA>a(lSP5S8a^SIu@PQGP5{vQdsWIpUXyIQ;n z{anAbSRdZ@R#K#^f7io(MGqIsv zI@qd{?jnZQv~yMac{J*buIWvlPl)-{-}2fpUOuZ@o_Al^&&_z>MvUPp&n8oqOLWSb#?#5&s zy@oH`zv^nt1uR*JlGf}xyKw|fYa0%8ASF16k?Z%45$+|-yXkRTxH~J?@XSW({FnOa zA(ZFWwv_mo@9q^I*D`(_URz&~p*|UguePfCM@^9qKSyQhs}If7{TZ~++f??yT5o@v z408^!dxh7#HO`-oFEKK^zRLA+q=%mOXsf9JHWI0y7Q7e3&qKveu9Q3FZt^7`ZNz7` zh^}bz94WVS9)5ND0$OHr>mlXVweXWgH_oaV9pcR0G=JWVF9i9lYPgSHIyBrk{9dsN z$v(p>?7K-=fqF!VZ$<;{xmn*1;>JYlSrq3-H>KCB{Ee~Q^+3aK`4MgaeeDH}sn#2W z670-yIJZWtK+O8omLIw?QXOCRf_u6d@MI*Ny?Q!apWc^)<mZ|aT zU1v|nbH!C#HUYkg0Zmzyxn)_Dd5>jLW|xJ&I9={%xuTb4PcO^my)2hoDaumexSjgO zH>e8+8s8+?vk_gW6q_TQ_Gd~E#oIngVz38SWHq;MtmM1z8&HH&`XZiT!rTLtmm3P& zyn3YEtoh~i#Uz%~8~Z4Yrv-ahlN-{SY;%}ta;UjV6gMsiG?m~U9tO8d4RU(0M@GK6 zHVkf6fQ`oYpkLg+@Nr(*H|j|+KN_}f?*r=G-cv}KXV8PV)Tdeq%~hGre3HPElksrs zSg`8?GUK7EQerNZ(W_D)Zag~DosscK(O%Fv*d0SnZKzp@YTJpOtE>-lX#y2pJB_ci1<7?W@#5= zailR@HqI*1{BStHm``iTGn)@oys=r5;tvMa|w<-{0cr?r?N6smyTU#dc1)jH;o0QLXz7N%io(-6 z--XUuz}>U-_LY{dsPP=wVFBaWEgSe7mWs^rqxP$)UHjEMx_F2zLjq@}9JOx|{568( zD?9jAg1=Vq*9ndj2Jx7CO0Eck^!0$|iwk%ZVWY5s{~0D2ICr1wZ4~?n^r*cbBqm%q zM^X9)!sB7%Bzn^u33A`kt-P9>iV1@*Lsj}FqVqGQ^zQ|p;xY}p?^sI|tk9r(QTk?5 z$Zmb~!+gUO@(okgH-m(6K1$yL#(1G|RJD-4l_0kYy^YuWOgVi!Z&5Axsg@HoHKS^` zEyeSm@@l{1FID^0ezo6Ap82g=^&46BDQK|z z>H9z`C+PcNL761pe-BBZpqVTlby+TpXL)CQ&4tflK9b^;L|m6g=oy6O)PJ;Y|A&I- zJrWtQ1GiU}ywds(y)9drvaul!5A272{|arI%1we-jMbMWl~%3q(`zo!ylSEn9mg<9 z>#=qkAGd~Jc;LEa6y~SHBA)BO^ie}&MMC2P3@ zRn8Zx4p+7vLOsF*OfLqi%T;BSZGWIfj*swQHsDX=NSJ;S+UciwjIVB-UR|AjTEWq3 zacngC48gHO(%X17xA@gV0R5v<*Nm-6K1;xu8}EVFj;&2T2e?>0MD{d-n2iu`y$iS2 ztFDIW?26A|&qWv{zWH2n+#{5|Cwuq`G0A+kGv50Fo|C-KoY* zb*5IG++UqBrLZ>0YIJDz(1U7p=wOZV>a1_9uC900sa41PD%4yZE}#yxBv~cyL?_l$ zgY}tCj8%$rnHede&MdImPbFpFtL_W7elpNn7vpI?eDqae7QQn)x?0G>Z!08UbK%pt zz8=YG7>sQ?&R8NJ^_}ED2gzy9bsg1i&NAOoKz`*vfsEs5hMoKCjKDtwJF{_3utzqz znSiZ;xsG2VN$%k?{4X2+LxVjs!_6u16)+$1U*#iy#nPL>p4TZo=2$0Yf)Z8*drkqu z9I&E0_@74Q&ukQGG1qZxG9_POAG|*b-nD=5wo%IxLPx9+AAN=DHgYo9q8HD{n1{zeJk^y7-{{MD(x@UTbtMGJ=MCv z-g`C5y8Fsr#+@JEf}i=Zd|4h}A^El-jOhfwL(pX9dl$mPZg}w1?*c?L-{UpX*j!HU zBv2`8uOe!$FQ(Tb{R7*PeBb6aNtOZSLchhe*_`h7!7VI5OJ)-1>Obn8knOpM$GwpJ zzj)+(IkYaGV;#REId>I-XYFe+E!KK6>-b{QZXh)_gE83Zqi z{XmrwxRUNNA*md)S~&+^pXcyXrP@5A&(<;q(7ypm&3P{y;GZ=JC(g!lBz;`?7{572 z3(1q}k7f8CdHt`+>W^F&#h~^g{}%qvGdVmD_G!cKlQLdxoX;rq1A@5cKNKVkZn#vJ zbZ$Mh#%e+a4+LRVe$w&7%`@Ra?_=?R|)M>C>IQ&-&B%PyZE~)X~EK=ECd!diw7!$oG5o^ha5k zJv1E8$o6nwqCnQ>t9YMJUE2&6x>u~rupaUYevA%Lo4JS()n>wbv}9uT4a|w;$B>>c zMhQzpe2i~+p(kgCz1(V>F@+l-e3Mjs;K^7LQ}osg>0QZB$Xen4% zB|jx$JdDaWo7~0=Oq7zJ38wo{3(0>d$Q8-e;(oitQde+()-NSL7aX^ve*N1ZIL_@6 zwc`G2B{_~oJ478<%jqvb={|wVRpX_I!7Z!Z|4}!Snd*l8n5^4fd#})2`KGBW1534y z{g&)(M%aC#6Cn0G(nJyg=4D(cT#UEL`BI05+0N0xE10dlNO;)mh%Yu?DD=Lw(t2r6 ze17^%s+2qzgytx}l43Cls4<+!eno7!T#Axk6X+931kXgJkDw8i{p4XI{S67-%iyfM z6k*dd&cqi^fOoO@!l*~XeOi5n5I~;?Klv@BDy3o{(;Cl}$^ocoe_6ku*hqh;BA-N& zTolDfkqZNP-$G2^>%KogxZt$V};B3V)AAsLVC@( zlB0nad0(Smj}smSo;w$Oo9Pb7s$aiKzbY-=HEv2g{8zTZh;P&5thKm2^IcTiB+}4T znif;5uwYs!b04_+h1~~U4Y}Gh`8`QfPPe((MGaQ0mv|(Yj7Eyz8h3FT$-5LWEaeqc zyX~cZoQtov8Kdr_-R`YkmC`+16Rmn*&UNxy$T^N&W7g@B1KgypK^X%xX5<4M125=N z^}r5%DYFJ{c;=kFpZ*u5_m|A^YyCY+p8hw0n9G`zKN7%0>z|e0;^qf?FQyQ{v}0f! zjZcI&+j;SIEvyZC!0-C4$Gms{1cCe*O80+=n5_zQM8~^Sc{=|KaK40X`?FGAoa^D! zrDbs0LX8j4BHv|}PsD=sZk}eW876Fqa3At;}kcJ$_pB@ zf|`XQzoV6v-uA&5E^+y_Q2ml+U#ygITMO>oPc+9*XJu=-hj@=|n+UvBZMOF~gTOf! z6&R#!jH>YKJszy z!+42F-*+{|!r#5Y==*BFIqITODM%}h-~e0(JxGU_!*}`}8R1|-3X+ak;y@l*-XI-a zo`*7I_kxt!p(;CoFXQCA(gC>omc~TZ@6jLGAb!YBb4q;8aDQZ_&JN&nPDmDrC8ib2 z_yMk-3%q(TTz#kqKc}a_^*8x&4C>Wj&jQ$N!fZ-vgEUa+wIVap)>QOv5{ZJGe`HH^D z_u)T3?ZloKT~n!udzG)s$mE;1NWYNuP*V8;0M~xnFiqi~1Acf|QM~Xpw3eIs)AeB4 zuL3zpF+B``%fq>-zm%u8c?CB1` zvw2FC^6g%nF>pT@OSfd)D2ZceTl*MeF6Qvs_fxvR=hM()HDhNnJsQ9;+piK>dJK=` zSRT!zN?L~Arr?IMqt0@4F+C1QRx~@pij^HrH@6Aw`{bvJ-*h{P82U||uJ`#3OU`^v zAG&e4INjX1qBwp0#tH7*WbG6W#+`10foLvyjh<2RaOKeWB7HI0o{Jpri*9{mvpDld z5H{9|GfTYP?;@88G1_I}zN}XdlYtc$0 zRpAI!v9>Zf5iq~$f;LMf_G*|*Md(oRWq&`2v~-( z+NL{HS6m!0tsPHRk@Cw<$;#&JXPBJoA{Kst3saXD@ysD2CBx_8suneT#zV*^C)fez%sJG z-G@B`Sn?1(81^9-CJZX%V&spK6HtC`A$%y|_G#2NIS~M28{yRI=|W%trd!nA+id$A z;Ncqa$A`di-2NM$6?<|nH`E*}Vr7TP6u)T{xzzF=`X;}18R4Na zvi8zOogEn1hYyk`15X%tkvwB~ls=XRqXkW6(aV%?3DSP&Q9UEa*h|a z)E6-wt}lijaF6BL>Y95uQ;cAUf-y2$wQ;QVSH@wj=6}KnMYNtr8Imx3QyLNC>G)g?NyJy(m@vGkA!zSc<@KPsI`ebv^C!S>G&Rwi_cD8b@TLrh!L`XkkI!zMR93X+_~ zT17BZs;23q{1CH$PUegUoLm=D-v-)m z2C|3Z;VH8hQEW4`#f_nfm?P5sV2NcM_Di**WsI8Th;Yil!73yY> z_r~#1ullYVS-T`KMIb7bUnC^`vS2l8Gue)=Q`}ZCgDs!8-|zc`pZ+hFr&X26Aj~zA zR&`%X1CfmZt;6y(e6q{@lvM?W&y`zPTT-xYdZfb(8(R%9+hYLdTCGtgBgb0Y zSRr#B?JDq7(2s&0rW1uNKbJ0`^RLNu*#Zvs+8ky9gDoF-Sd*!?cT-~qh()3ksq=k+GnZqpLU@WjYnOgvu=KivY z&yifOgJq2YdwIjV#>dx_Cb_P?Z?Rsfisxc&DeJ0x2=6N46sNDeVAUo3?$}c;wl0_4 z(-j?%+|`Olt8YxM$pX#s=|hO`y8JM>;oliM&TEvjFo(YvKy!V@=?Xgip1htGAPcbf z<}eF5*!yyr1sse$GAAPoIM@erm<1f{gE`Cs4)&oOW&sELa1OJ8gMB22S-`TAEMTx~{2uUMo~yQd1wv4t57So>>WwF#B9F~AM((WvZ%m#g5hu^&IX%o=<0}}f zX$C0)vbjcPP?P5fGg|5T$nz|++C~1>B5Pgbg%+7E-AmWa8HMz^B#@LwvFL5Jz(0I*Y;-^Mt;s{Lw#yvr6abn$`jVUgu)#R=vv-urQh zjPX45IPGKqdP@?YAc=|3C-v&sb18Z~q}u0`F~vN@eAg{_`WV99PYKWO=#^qF;_jyj zEr@==1uXk}881}EjuKN02|<-(yk(g$2Fls#3KI#oQOMZsag^-9tzEbcpxuk{ZixhQ5bqVp;K|8g z=vSPTgmH+IQvfhOVOfQ_PCPd`r~34Sr+z$s)R688(Ec<0TUAvxKD7#f`uvS%f2=RK ztR~YejID|1+Ix87NU1(Yg8c%c^%>Z5-)Lik;;RYHqT86r*fiH6FH>K9&`f71WcjrgB3=zEBdwBod!xJpnr+6Rl^Y?-$*fP9x{e>?G z51SS{1}~wJ^gXn}gY*SG{{HD+=zXzI&mq1^A9DW@tJ=me##ig;P+>NY`3wIn{B)nA z`B&j$Rn-8}>v80MgW4#LxIijekS)oH-FLbppmYvWdH7ANJIaI_5x$wefdclZRVqZV z+%7U)G3Bh0E=8a1L0$rca}XZ@paTpM_jeQI+ZaBhd?%sE=~t<_ zWjQ5=f`cgioggVA0YBmpC7&m+`i1Pm81EM^=edU3kjR&W{4+1QO4&ReGPUG_X zt76V%>f70=m)uAGqciDba)64$q#90G3xW{~l%+WrOEbmYVD-bwRUOC7yT@EF-Bvbtr^iR5D-XOUX+ z35(=8RQ#SLSm}OmfX>Tkf=Z6^AyCkRpwt+uj{p>6^3MQS`f;)29x{a4I_`lytKs$& zc}?&`bH5Y{`}JJ4dY7ZEoGIga+&sViYo)Se#NB}3S84&YA6Q_b`$Gp{JO4Le*)Z*3 zt~h@5K^Q5%57*3F%`--vAybiq(BunH=`MRi>W1kyM0 zU=^~M+(Ewd?}=psi*y7l%BA-cSvWiI<t13$MzU z-RSef|fA&usyTM3i~MInYN+y2KC}j+a zn>s_QK&A0SLYs}=CM5_{QNBhR+)+EFWE*1h+cR*E=+FG9R>5}3 zcpXiYbIc#-H5<(zRcwwIYnP=M+PGM*C!Z8DKMS61uA$OffHcb`(mtg$*Z-Pqr+t~0 zo ziW{SChH17L{S+fhRhlaq7MMGV>5)Z#B$b{PI$fNYD`$Fiju&6())zm=2}!H7Z#q9e z?Wal&PZC&A~QhuV}=jE<+v3~YV_(3x>wc<)Lwrp$6r9^s^5f@gsTEBXBwtgY z$j_-Te({C%u)iQc{o zlTX8WI`1{)t;MbLz^*vGE9&>D8^evArPh;j8u)-KZH`~IIllU+Eo;MUX|DAg(D*QR zL+qAS8HnQLv`X{u)86wpgXT=2(;iVu|A@oQV=fk^bb~ng7725{japn#Eyyi>2w$wQ=;!NZS*@+Ca?Oe=BlROdNgjj% z5>7fu3bUp3SYXYuq6;{IST-P-&dBoWT%vU1ba;F{JO<5mfzD33ZA}KilyH2XRKkPoU!&sQ{0KzUF~DbJ~VUeZt!t(+5rB3$tlai z!FS8DhlS474pBdEtyng%D0=KI+L@8o8z}yOra!i%bl`CeYZjVds)KEe+NfFF#u18> z@9@~GnQZIR%A_uMP$m^4aAZ?fC}1`3K|%A}*7rq0Gl7FB)NB$vJwsmXY?k-Cz0x($ zZ55My&s(>=?eF!lHQQ~i7WO51wFW9ES;w-8@m@`VTc_R!S;vwiYuK9fF6d#i=DnI1 zx1K=e`hh>)vqH(D3edc_^}N4~qvYm9UN5$ zZOO-XVxsHG&~I;mqP4nTk~Dq(#ua&Rlet)pp_)U(@_}Xq>YJxow(H?%!9IRYdj84Y zRAp+o5qaFbRPi`muHuh6oNv&w%xpxt;HIr{i96_q;Z3>oQs+OboLR=D5Vpng{IEy9 zUqLJ8w+KDEL`YR`T%7Z_BIj>=RtZJqtKsT)n#%T z7N`r$Qo~;BTPR)o6tZ4zZ5DZGy!ZENvs%23XLVtoP3yO&Og%AQFWoi>{{{*vFu*e@Wxlezb1^@o#vKGqrMc5E9ckz4TFVst>9W$ zq#$GUGGZ=M$#!=6q{3yY7IwJ|gCw-bE{3xLPJoQbB_kus(<^XEy?{&BqUja8V&dFR z2u+u^%ay+EeMo|vuVT|)V|KfuySXFy9u%ulk77026=$>vI$DjDqGRf$N>^GVN9Jwd zXr(^fFu@rwH8y*i+TZAe=Y(1$1 zoz|cMg{kx4M~Ek^x?a;C^^#iaiy(5Rc%5X+NqDNo&w2~E(h(z+{JuwuBXhr^J=hr1 z%PH+|1(;sZ{T=ThocT$>VbVX4BX0i}&q{GB{cqlkVgq@811_y1BIzGVWs{&E8S(kL zEBzDT?yp5Vnlha3?-ePx|3?XbP?%r3{BPcxYSY(>-fwun#cWwe@R9QTILahcIv?%* zzvP@%r_mw}DdKo~g&6>FcYEBJmsujeBMyr%x*bt%c#59&U3Y9453f^@ucelT$nbT) zWBeIz%~infNF25F&nk+aa8ME6Xc&zab_G$m3oS8mZLqTWOr*ZcP^yI+FS_H^x**52 zVWhnM(X7$%dov5_3=?+PO;E4>?7rNQi(eK)T)gJQJlh1y!`l@~j@YRRlT z$H%?Fi{z6n^y-FcG!BMsr)){pX3J*phP)B-@lBuV^(T_9aJlupNY)|zWCh((LmC$i z@*_*aBCPT4B=Ww!pO;(UIMu)qE0pOKkF7+(3=r>vT{FMt{TS{k&O$oBwc=t7f+Hq5 z%C|QDb>g{ao}VbOybwuoAgadKpvky+p?JzKcq8=Pcc}a<4|;=1=;xt%vlgy;t*1h& z^=#1_l9(9+`e|=no~G|km!#r(wh#8Qh3FcI8pB<>W&KSr-Btb`l4zXm&3v29#ont7XFvk@PmsSgZ2j&>iw=$*f!Uy9ssMMYUR2scxY$ z9wh7YKD+baj9I^zJ$skyyLVHTX@q?Cd+&$(9y9NUNr5uD%H-P4*(7TRes2mEjTSl+ zbQQ~Nh4z)-ZRG{YEX=JK3I_aPR*@3EB=%UKmVa2^T{n+!#gG@Y-b}qxezJk#Zhn!a z1F!XV)$}tV$0WH?(d@8q_gfo%2?os5Jbr*h0!xmx(j04aThd}LNQw}Iyx&npTo!)i z*kXK;=Mud}*;^>Puq(;gy?N^L9;-`p#yPYzA&q#{xR0={yd)+Ug*mm#%)HsGhmiNZ z%9~U`iFLpbAN%@kwEtcocB9&YUUqQ*L`30Pl<#$>=WcPqsom2jWxsE<}ioPI46c0R+XZ63*|A?Ld)K zdF%8uO!Sg6ufCV>i+<~OYQPcIwlU@TQC`|$0zQ6jj_>lVn(3&C2QY=7?)`t%y$hUV zRdw%wrmFhXqq}Firn;+o9&|MWJshTHnqdaC8I-4>K~zA%Zct|!P@yAJIPH_Rki=*b z5zWZNYX}k_iOD62kK8=es8La4)EL1;^DyHxM$O}z_v0q=|Nhq6=hUh09zbvI{oMaR z*EwfD)?RzNviKJEuiuj%8*^-5f;s

    obJ+G#jam3N9sY025C%t}2u`$RsH1ni;x; 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:N6j#ShBeiG;~XhS?=BX zQm`a$Xpz2uGkL#hd5Z~acc!_>q-K-(tHE#wfy15iBP3s(u)6WTUJu9KdO96D1|CtCw# zWx|kHUm9sHjtY?mw`tXfa@+69+}A}Y4$15wvK2iQ6|fW3z0rD3Tkt(^-26wfQaDZl zta&$?4$#u#!Widtmlj#g!Zo&edS$)&J6K;9pxdi580+nX=36-ES_JTESae=$l^#Lwe>zk*SrB(VdnZVt5 zEjwU2sy&o4<&EskTMq~1pn`?<{S2G5k;?;(OuMKbKc44zM4Jg_DsFF2)T`VUQSLq) zcvQ=DsWfaqVZVSg$h!WK`UYz*4=efp!Due?GGP3b@r!9SFxly}mSccfD=sD%OA^qO zQZ}t8;rLLRnjP+(94~bh*Lh6buKF(Vr8kj?saN+No>5t6d4Gg{;h9%DM5NaPV2g{R z7sE4uEj-3+CFlQi8BYCcH{$a;l@*MA*6DB>T$bqd^lV=vLHD(WZMIQ&Ulq9EEges8 zXTv4ye*+4U3PA2yL^<8Nwk-r$%5v!D@cq9@9(|NTZpCZ2JHty4HMH(CCl!pF}DjvH;33Zbs9M!PY4<+C$km+TOeoR=q{fBGvD^Bp(3yLr-g}#LMs@rnHwW# z*mq_=1&jb9K%h#wGJhzXd|cpyBGJMrk}o0jpTPu4M<~jsP>5#1?;VDpt2=I(I_uK3 zr?S)_f5g;h*8O;GtQv~;rg>MaCD7GhDFCK=a00d#8dA65UC zrZ$c^HMcKw@;UVo&5u)P8eYEw1bl(&VmSA+}ar4oPI@g7KUBL^d-m4i; zky59E0>Gap+Wmr!lwsMRbK+W1y-G{_DRh|03uA5>v%^pvx0^Qo?!JH+)PtZ|sW@nI ze@4{ujIq478oJ7mTeoPG7$Q)_U!ofEidL1X<#b(b4DB9J1vB?5LC?Eatw}vL83(f7 zMLoR{Y{@b>W{0y_J{rAvE|ptD(YqPh+2=Wdry%u93ryjkyK6sB=jQ;0;3f?58mvC3QPGk zr9w0-tG)0jYn$!`Z@9>q>5F@{xsMUTKAdcQ4~4gGUQkqNADw~NAv2`uR93S^4H2f< z!Q=RwdnG@1Hi0Mr^GXfcSWM0oPEm)EO99Da{Byy-&d^uqQm5W79VqT1ULdsJ%P3fN z0tNtkl_e`@Lz>7~VAS@bP=}wFZYQ*NqHeK}So4L%k@|?nOF^&Har=_q%B~@6yGJTL zAY5%GJZB|Q{Yr<9N06lr6ldiiC^|q0bPe+tYuKHnOmQ)z$Vnv6g$ci| zg+-lwT7?H31_7jq35OhKeVv=RAF1W=Jlsyv-R}ZB!qc8t3H?-&5oyH07ML6~@x}I! zjJbCaXFZ_ovMp_^y-JymKtWP0#SOXrB=G}fyM`{@6;iYtjoxYSO}B9kM;B#fJ}gDsoA8gG z<~(@(P;j|yPlr^}B_y5ysgI`#2&Q~&-Dcjd;duDinD|jk{+TN>I|jV|qtS+~zQ(UL zQPjTZpZl4k#7560NEcfKoFi1~+5jGy#9l8G5 zY*fppqRj5B`19ndJr`%U)VcGIMXklzdVL7rt>L;1j_xjpOBjXjV^beJq)}DXW9Iv| zQOxSAJ+7&`6DakweM(tPP-4$lJ7}pkvoqXSCy><39jWefYHt zgWjM4-1+$?TPrhmHp{BV(+RA4>HRX=b7d;6%f+COUrZM-|$P)UX(4?yC3ZbTOS2xSQ zx>m*nTxV#{iBP*{c((j`s4ABY{`%Hj&h4Q^>(F6qpaXS)5?hTDU4}LE zKlfIvH(pcU_O__rz`I6{kJaxDSqF+4OI@z6hXsDwWDHx8if}?E?@G~8_~Ty`Cwq>3 zYukJFFnG$A;r_IyJ<=!Xbi1DBCx8xP7%<VIThRb-F3Db03bc5~_P zO`4aICxQT)ZA*+9irni{FN)ZQ{HJ2ahhKeK%Jn6!%QG)C5|0+E!N4ueUFKfl`#3+q zNUC-7@bk#|w)$|ZVjg?EO&-3}gEnC#l-Z83+`&bY-gZMp433j#*xc?%FHK$BKon~i zY!$CzJE2qpvx^%g*IVHDdxRWE_KwsmE#6v3+zZ1H8b16p!v6wDacdD7yYwF%Z|Y|E zPiGYaN)_dzP1v8t6S-c|zDxFR6k~@+QUcMbVLvr{Z~s`IrQR3xDE9u8N3=ud{``>Y#=l1mVreH$=Wvz6}d zfp8ximc=<1&hS$-KC*u3Fhd$~RX>fsR;Lli_0#Cf(iEbTsoVb&4&#^{)da31>y$fv zb?<;g=+U+tmUAS;(=cSQcZ^8pCQOao-~HlT+?PXO>VF>QLQ0#}ae{Jz1g(>s)Cz@V z<;u1zBQN}pDL*G6pQdl#F<`(^8=b^6R}MX!84>gR@t$F$Q?0tNF{P_#Zs*1NM zS!}IWSzL!!T;Pw~9soynFppB27qS-!d94l&p5DgY8@--N=$IemNa3&Xl_T9(^W`b; zMa~}zFDxtZ-JTbI@XXeZMLd&j-vjiVv1G0JnPCIYXrjz=eoyH|TcNCZJAOSBsPmCU z^Ofgg@1tdu#?M{%G}==UXl+p|&&FN}LvSnPF@Dt@)V818_htkhHaIeFra0#DF+R!N zNw*S~(q0_!%+Bh9E=6qT=TWZyWmPWqzDacoL%qM$quBd~9))E+Y#P=33k8&V-?GQh zeDB-5L_4%kVn1;H!`s7Rmlb7B)^^kU6AH`9J2R3^zYWyPvJ%gX%F$YH)zqeMsk=6z zK31uulXLEG@j2=CX!c5E#a;G_+VSR0>wog4vT$EjZ36AIwb*T4v>c z;y74r_}G(4U?^I?0klL$ts85qFE<9V7;C8lIvG??&8ho%XLIQdQSY^m_f)jRe)`(2 z=~Mmm)zsm8eHzx-y>Av)*;#NEu(^Kc#KN)~smMLR+&7@I^oqel1lOxhgH(!~jp2th zEHqRcao#YlUcFKg&r?Jp_Et5BVSm5#S;6+O23}No4t~M8QFuQQ+}`ha2h{Q?xU#ec z3Lar7_-crw;QdJYLMT(rnDvXb`cD?tN^#2d)m&JvZ>nj#H|F|OUPgb1NC`ISv$AzD z@z=Pg;B=|R3d)~5q_nb^h4CT`6(hMEVW1#QzO28>%JOk5Qr9mmD>&4-kgX-L2KV12 zCs{NP7DN~2Ok;jE8~9oMS7h&R9Ppk(v6T=(-auD3d{Oz zCBH!Oo?b)9=E!k%v*i%Tu_I4Vw4JX!Pw2bB(gX zx@iau+rA^E_X`R=uAD4VG6XX8EV+lYM#^qH^>kS~MaPoujNcV2ZcBv3R}pzAeVZ%S z0NH&%k}*-VJ9^?vqU1AXw=6|ZCdBxl7|?M*d14vll!hGH0Gj@_Y17j4MK4t*M;h9q zXlGy<&lGpEJy4^CW-eIbPO{x}yy#4BGv`uk;U1td3*&_9RQ&)}!T2wXJ%P>)+R|3~ zR5Tt?n|y@&6xAkBJv4~c^+zLXTJEs9M>J>-CljF5C~qt$+jtr2+!~cz^TUVtUe300 zpPBlOvgBMO;%GIwS;+QUNAjiXFVz|`+oKi5X}h87 zNh~v&kZs?~SkGb7ImD!MNIdQ9@m=;arKaiUMyK2vjmzdd%aKanX`&som~YefRR1bD zUw#+DX8lceZtwF;mr<+U|Fm|~uO%^BpQCa;uOgg;F46iNP5Udd%PFM*FaQjX*tCkem7)&-f5`c)k2{0+8n^=*s|wZwpiG7$@21F< zEH~o=hmG-O#H=c1US#?n=K8GPrF4nNX8FN;I8w7bb%UOh<@T7pY%0r^NXX_`zguFD z--=nqf=`G;y!MK!VtI#IvkM8Wcx64{$CqmrM>VsaKgwD$-siP&yZzEFyr*Fc)3?9z zP0`}DH`UsHdc@4<{_w>A3o4Q@%lp?u^Ne4AtIw~Oq?ZS$ zmjTl_YKxaphxdxlI)|v{zX6O2z;(&{$jhq~#}4Q)MXobI=Mi9(r|+Q9e)hAkNVBKVb6{kOvfTxttUf9g9M@6|-rfgMaRhT90VAE6kOF)t1K7klTkbVk#oSx;H~?95Hi)d*va=ed+=@fJQ2$_ca|(ao z+bL`SBHD5vyiRu5Q`35u$}pecRdr{4^>VbbZw1y_I;_VB8kPS|eCw5f@CU*v5{CT` z>2O^gNaU5vp*zFg^T1KZu>2j5&{@`Mdn~2HuKz-)b`FlAiaf~?Q!8)B!6~1NHTdHt ztJffG^?aGanTMw-~~WmlQT zt#GI5)WHMsWO&zta=htCd-C7`acsfllno9yQAq)KQn*dPmRS$KhhpAVFSoKqi1Os& zzw`N3TAL7lS%y>%V`QBDo z7R132!Oe%TiZEY`k!+~DAAn4MD#{d+FZkn&{`i`at3Q_y^Ae$8O6ztRO7%s9r8-^%YF_ONnpj1&Lm34JbIkB6L-rJ@rOgXHLg>E?X*rlPBY0{Ce%mHTKPKl^?KF+ zMdZWpU3&Ib>hEfc-Ijcyuq;+Xx{1|BtF48L)F9i#pA1;T;avt58A>|a3&~%INjj{q zf74!Au>VVY!6D&W_EOTm)%5sA(|?{xR`ol%K5Y;Zwa$g$qy85E6d1vivwT~BTUG)T z*21#78>6hg`JAyA4n5X4YN^w^cRJXF^@Fvgmoy z@FSJwMal<8MK^}xc5ClR<@VvdQ(X1K7a3IrMlDgyT&JxB{}qT8C3w|zUmo&E zy?}-p@y9R^vu!^En8tHWS)Q!3n`JsWHjKsMJBBKT3hiZd4x|De3Yvm4b&xYm0J8r; zPoFTLikOMwYi4o1%Kw`uxv#;)%80Lx!^$y?e_lbTSa~k zwifp5JQ5X9T(AOi{ihJE2kx(1|CzGpd%#TyMmyP<8AIt?MT-kj*6;Qb#~v`^JYOxI zIv8FL9RJ-7$&KCR=vR;dBjWL`cfOH9j9c_N9Mf3#p=S>7rMH=3sVs$Ahhl!cJ!T{6 zh$XC)``mVqCv1;}lwTvo^P);wz2CC#=77?Ub~;NaFoV6OI-k$2QzTJCL+(G0Ix|Yo z&V^k1<~7GkK?zR+bAxk) zC{iB58)Mw_@YPy4a*uu+atM}2DB^yV=|#PYT$I{T=50m!zuLr|`NpWQ#p^L_rF2e7 zD*&NWTG!BX!D%?^0DqWb5c4al`FnA_c6Yfx{J@(-DXdHw7Qc!sEqT$bv--SN1-~?E zPd7%IjZum{nFBQ~|6S&F)flahgikb_8Yg->;Zl$fxJE;PuE^Mn^cP-~uRc;A&%+VFt%!769veJd}2S}uR~bHJxdo|a3VdbM@1UOUjJ;vE!PrhIq3auhZc&bKR6 z`exli7n*w}SA>{&2*^TU%)Q&v}%r4I(xJ=3lAbM01)iuYx5gtCE89!jT52A=uo=G`{-! zBRS++j$0lTuMWxXA#-CxhvQo68~9&RGSZ{Lag`~KU*}$%_4oY$zI8izC6CShEw}Dy zZX%iXPdwL~Ok)MZCw`bJoA){?n{jJevd-`2Y7KX$7^ib&72S_IXU1Ui^9XGz z;A;Nz5w_!v^AcB%mhX)#IUu2J9Dwse3gM%yNO`uxvPA09-gbUb%b1GkajG6xW^YEX z%hEpSxXf}kNv%G`lO=j2UpKC@j`aGgb&kr6RREw?kASyL{5Sc;-}G${@1lOv%R0Kh^N&T3Lb7VU zUW|@HfHi5e>!u%sFvmx5>-UeK?C{!O8}M@uP%D{Uzf~(A!P;T$5*T2PV*`w)3WQV^ zx2)gIxc^1aBvmLe+>KrO- zHZaX$pHHO%oh;+BpqM!nUfZ2DrSZxtCPAJn6U5R(T5?L-!S)ROGL&ue*`Mi`yP|#Q zpj!sp$9rYx`I7l-H;%f}U=KWA%beh#1DV`}VDt%PCSKV8G5UmJ)}~JoKeD4NLLZ+` z7I&XeY*%+r;>jaza`y&*wyP!#rK9+g^1ozi8M9QS)Y>}#6I+Zr)25IXuc;McQ&4-x z#<5xSdXm2gJ#0)TT#asbeXwWo{UUvvt_MDR|JI7{hw|SVH}=x+kek}qzP>cvIRg*m zPCFW^+{HNtAS3HBb_S&Vy)vm__vSd)%6d&|6!Qfa_UngS;Z)Fv7%W)fE~63q>`L0D zBL0d9ju;y%-_@Ew-l&lQ{-TXh#rzmmTscOyQ^;SmA`5F3IjTx+jjCjxKUypwU6>y& zlrd%9ix$gCAe#Q=k^jPaI>)eXf-e_TTx-5{P`N@~@=3q6L%zlBYVuthgT#Q6V-ia0 zpM~~%Ypa>h{m*nkvxntPCfhUha1-<6^=jjuo0!@6k$!9b+&gc@_xbj1CT5GjV8!=^ z_MMr2dza{YqIa1dnGa-A!=xA$+IxCWCcG3F6Y;^_t<^CM@!2XptCW1>95`nHHd($T z_D5L{>vzNOf0KIKKkh_&ky%ZTJ?x!Gsjo(mWui&nhO956XU^vmj!c!UugjYLYCv>Dh~@n?N;ckwQ{1 zUI`q?mCvLJs*1<7JacR;>M{O42tC?yF(wFSto$8X#VBt(J{Rc0cC3z+w;fwYT2_Mi zfj1YH)sL_p>zmIRd!ZuwUek75iq1x*8xtE9mLEf^!t#~;27>Ra5lMvgUL#ZM9`L|j ze%U&>1qC(Di0{O*7WgxNAHke+ktVo9{LS*W%-`H!@&k4%5bV6%Cs^qo|L>%6tRK9m6PUY_6Oo}4ASqLsM;{a) z?W3wDqU3Y*3TR;RONQDPsh<{>uU3M17sr~ndU|(OVJb@(^qGbCFS*9Mh!5pft$24~ z$2*T>_dEv%)a36OuKY_5OD5|Wmq5uKmQsJEE3b+Yg~=b@64_GN4)Za;KoR=K%tn>q z@iaZ!7bK%ra{HR}<;L`7cVStB$b9&2_MXm{$@rq}`!V_B{Ut0kOc=w{kGOZhm?Or5 zYu(4>ll7jzC%`NMM)ARL^yGEha^eEb~t|V%YLUcKmv44ejD=q18`f^eFGMBzw7G7*c$=`*L zYM3IF3_En)+lh862B47{Gxa#zA8L8`U%HCIt^GPrpe~BWJ&WN(+2U}DFeFsO)IrZa zvn*g!3l4L}`T`XdOh70OHfIcZm$&6m^s1~3MuMyiUh{=W27Z5~Or>MyeIaY9J?-T$ z6lDNCcp#5&ao+G1PS``HiryIPT`RF4Bm5(n+WXQ_Xh%ZER)$Qi49Mr80N~@uV0>UU z>vO6I4UIpKVy$I+efzGjv&`TF9P1d>W@EipEwGMpCUJfJ-SrLa4R4llY+lB(dKDGj zGI943K`bX|$wncc<`#8t4Ew~Uw)$8^8*tLy~%|?S!bd)tH zt@G3yg=ML~)uZf4W@mDJ<7riVg1F7XuVYv3zEG{4zM1XZqqF1nvDWMc781r5CZCmB zlesiUsgyf~wa{n)V$?|aSO{3zQ?74dW@l@%O1vKWjN z1K$xU(O78IqxzU^m4MoJGA_~X9?}?RhQs>Lcsb|R;j@>tp}w}&rW=ikt#|4csYbKe zD9^o5dWqV8eN>;Quh$|)Xy5v1Xy9+=S%dA};ti!cK5JxIKLv~7nno)$RSxW?W(jaH z&Q}QK-llozg)u)Dhaj_0C!}GARTg@!#;!iP)#sri$bVO3H)k4KXBt~(8k=Vtn`Ro5 zjaFs2!%FY+6Dhp>hQ_-JD8?5H_i+#gUPnusX23FioV3k+ElrmtzM>`;oC%UcC8Vhd{?9065%q zpY$+&8mi5`MNH4)X${|Aa-3&GEZ!Zl%}GI7bA)U$!KhvLp-n zBsS{o`tr)MQ{~_-s|3luB^tZQvi`{2tHq^*BLGIs=uCTb|omYv6=3YclVfkWU#7FS~8}4xXhkdfduTW0zJbEub!(||#zqki* zLGCd91Vi)np`rO?l1dm39|%$PAv4_OOQa665PE`84!>G(iCl_$eu<}ybWPGnGu=U&QkxEhdl(t+P5E@_T^m)eOnK7TwP zjBQ@SBy?{eQ1K`e8&!fmTzZs_vczgH@x8^?{Mb5pVyrOKS{N(p%xTSGKCbzK&PM%D z3_K0-)%3S`yYua|fr)keRfb=$uVRnQ8**Rq&r)wb|2foK(5Lz4%)J8$cr6$t*p5@A z`fTni^BI_B0cAW*!7d9benr{0z;eVMo<HMu+E~s$SIT zv54&*Nu|=XFU$juLv9W~@%r zGR2H47%m!}TSm}40vc(ZkBa#M=!G|iaV!b@bn)S*cZ!)o(&$B1nnIiF1 zTv^yN#80QBuLuXGdYMfp3mh1VYRVZ`Y-^~NNyASErL#(!xWL8R^%&7x=Rz|}RgUK? z3-r|?Qj`~nLB<^ywV{=$g-iH6y!pfWjmFnk>SL9qpj9iIyQcdV+vwfFl z{u*)gOzb}6CJW35O%68=HiSYppT`aP`@bqYM*i%`dXh|8@%-ex^E$1nfY$u8=vTo$ zrrUSz`q57Z>lv2il3dixdgdA09`VK$x@-& zJ&8Rkhl!ayGv`tl&H5MT26&?Iee+U%q7yLes8_ua(j|GS3kBsNi~&-0MwHiqm3pzKm-6Z?Fq0+EgFDh7Ks7Ipfhjp}s-TrfYT5 zS*`PO23K^88tTk8UOC7XcTwpv{0{SDdW>KqPcI6@4QX2QQwNVa-XVnVg%E&uX+M^I zTt}r33C`V0TMOJci1)r*5Yyo1b{(bOcZD=pPDYmDLWts$JclBW(3(0}W{udWRy|5% zPDlIg7hO^r?^2>H`k{xu{Lp?$ZxI<0c$5<*2|-fP-|HiN(wxr-il6FaGH&v$s#wGr zrn!gHSX3_tQ+AhSW#;(L&^lmD5~d(4s(qT&;JDJd$34|uu&WZE>Q{pL2BhV7r)n_n zWnuO8c+WK(V^Vgg&t%M;mAhma4Il4Y~@g z*EilyP)9Hbtdz#=gg*dFTfIIHp1vMiSe6@uGto6R&@lA) zK-1H@3X5kp5G51pdJogxP}Q-zCrwMnur*>(Dh{&cu)?6`u(a-`i6msz*+Z^wG27sO zV6lQ1TQui%uB-{spY=&-et(IZ)_qNd73ye0`hnApsl|~%XU6&?BjxlqAsn15bi<*! zIvM&CkVl(~^VWWVT)*%G}&vt^(k$q>YLMpL>0hF1M?{6Xmei$Iv-)8Ox(V=c!*|g zb3ftllh4x5AWrN66aIGb*SXr)6xc%ZX5T^Mb#3Oxz~ETk>7+?nexc!X0`4d3k*9Pql`_9QLw4!=hx__Ce2U80y9==)5zOW+Qi|T*9CM=kBj>^oX@1sZQ9NIYd zNBYih7z@HlaraOasufaZD(Boc)tOkPIy$056Ux|Bqz5rOVuxFb!Y!I{9MnW0^i~0c z6Q4!EX`2jRxVj6(%k@zzI7;9;c0dwu)j#O&>Zsb$z46ksXuQYAsjx zT-<9`ccagXG3I_Fvpp5%)AgwL{6kbeAA45lA zF|^eEgdDcx;>v^4BEK*L)x3XU2Itq=`T>FcBm3-NFF&8|lxXTAzel4GwWECtepa3E zx&^#8KMK5xLrc`k5&H)rR*1iE#0u$=W1KkVcqP%)#eKZazQ*zDpHZ2dEG0wE+bqgX z^q%YTUH*yMOa9B^jl!}*pX;aB`g+LYh%+6^<8X5-UZ?Z0B)DwCGmV18y>c|Xru&N=r1#7K=N&2|G#D;kOp?S(OmL(oE6z{&)OzXIhw^(8&b*ykC*={7WnVdUM ze_go2pVaxzGtk{;KKFMSf2!6yu1@*5u=Hdy_iiLm6?)AY;e}du$a5e*HYYvWOEhLxpQ>l%LcJFXLUF-?F7v~ZR9$vE134&LA(Jz9tUDSzafY?@i z+%+U#Ow$c_N+`CGos*^v=~)Jj<}9_ZWoN(m-G1-M@s&5|OT-68D2_q|lTgQ(06t_+ z{c@*NgcHVM6s|Jg<^913b}10jGI7iet@aev5W7SkMAxapt1X8J1!(&zEH ze$DhZ95?-Q)=d9gOMeO6o;+5soJxC^1w|Hib_jdCho$x8yrh&~-DeQBnlAH}A*FA? zTl_ab-ym;{zE`aY=js5b5M4)mSQ|StGtHuvH9->8n~vB<<6>%RFlApo&{*jH4=krK*2fwA+ok z&lW|Bao0G{EAGIb9~Gzn3ca~|nWbo-*?p$Hbj7)Lcl*w%qJ8+U1+^BsocT%deo_qO zY>J8=Z>1+!3sWo0&KkA$h*)4LPJj4E`ep47WtG~eS#_*3OD_lWq{mO!vlR!TliP?H z;nt$BbUR4v52%0|l0khNZDJ~mUCsNiWLpujn=M#O>+qYUIC zZ>hbzQ)r(VIsFSc776br5W>54b|4y!d1f@0FZmL6(!X@fDI9(k@-sOgA`}h}Rd_$> z??)ou9r?rdZY){2?d|G_j`eLnuXo4%ws+_~;K8i1lmt8$6K4zQk$zrwkQ1*bQIHdb zXd0YW>kQw{h>Guo(whv%ES<{i91MqDb6NgVDQxtgVozVzrUPk?45ZQ5>NIZ{NTaV@ znjqKiO4EpEwrBMS*N36}pp~d1hwsWX7I0Fo9IPN~kM?1eqiZr)x4n+=QHp2w6w+WwgK$BF*f#$#zKKRuO{E5GJ+`{{o9PAhAZ!txtehX1Cg|8Hry z(OF+Pn4z8Dl%^4Vrn5SEpK{%Bpq-U|Wjp`O_X$JkSHiga`-GwND`EU>AI4C0C3ShX z=paFWaF~MEn(gVLiQHr}RPMe~q*f-~S(*G8UmQuPVWB`-kq zluCb>liOX9Yae-+m+@9BY%&*a zvXj++tL=0y!USX7o?abeVls^h=p`n*SJc|%ILEmyP^n^a8^0XmrjAL|(8fd23uyzJ z_XoaU_RfT73vA)~F>R1YOR$E}K!>ZFMB}0w;8y!iq|fHRrLX3{rN5DXBw6-BU=O#UqDLvY+o}G2WWIj2G~|&f+I+ zT;@~iFv+LWZ>hWaZ&L#I&T@I8y`5o;bDTS^(IJlX74{n=I+Y*3&UTu&2-HdX)b5;BGx={8RTnO zLs@LU$(8hvv;Nsa)jqMc(s_TO0BfMQt7bay4=q3~#0{Vdpz%qeCW^cIJx@2g6%w@( z7lQGdyox@17OvQYijBBnOv&!B08uP9HF|H)8z%0mc?_MMiv??&xT_ZOpl5jV#9cL# z2R*@?DDJAEJm~a7qE?E#`t=|#6H`OPUH$ImhD$X=+|_STP<5Jpb2uv737DT^-`DLw z2O(~k?oph%{jGYJzEPUF{VjTz9x^m@``h#`-D5{|UvyiRI#6exx|s!9SsTgrS}PEg{z5YY1si&yMJ^J7Z&u-DWHJX~L5% z;XvLgXcuofXjvC@Z#Awfqw@T-Ja^%1$dGKTh;^w?zWW zTH^~DeTSkafVbPKoW8D`_m%L0d0Wo(WMdD9y{|7NFQ&n=@#{x{_g)*<93J)xT5AegNhASscESxq6jWdDv-w&q<{lujUkL#+WP@jFBgZA1pw@x~G9gu8J&6MD7mqe|6z2%0 zuJRE&x48|evuUvUPS!_?Hh(x?`e_{)WjVg(OUqJC9Fz~#f5W)V5x0*}40!onb*HFZ zHbiz4gw0llH?Fgf{uK~rb&>5{=aME$A6ZHn2fFn3f?pPK&HU0&NHo|rt80{!4Udh}O3+_oSa`KdX%>+N>av#9d^pFGdqyE~-Qo!gxR(#_KGp>KCW5|$8eQ)Ir%s)!I#qQl>iQr~oS*FLuwitOGdWIQ2t9thNhhxi$nO6%AozviC&7fiTY??fxU&9hqvkb}Y&YuQ)9(i@toQvf}$*RuVmidWAK7 zU=4KoqPul5RroNRxh8IlH_j&cR?|zM=_}OIwsUiF0jLZ30_9MSe!^JwBFcEXjh#9B z3kJTl$l6~9RnE)s+V_-Ub$73=aobx}g<14PdZeB9cSnc))C3KozEa{I7-vtcuk_Gl z20(`OpLVHoA<)W5k~Gj_sIUxPGOwHH)xf#QV2%BRcgYs%995)G=Y+PAj<9%JlPhGr?bAz3@&-Mo;`(qdjW5ei(Y003Jg#rL z@*TIO6nf`UQ;*BVqbvL5n!@otDa6@h5!M>^l|EWpyRw`_kqtMA>1*LIC($@bwYXJR zY*Vu>e1BQmyW{>++E06YPJ5}jy;ic7TzA{J>u$+~s&|KQCYpaIne*!TqusHM6<$ld znRZ`li7vYDwRD-?O+AA=bQ{CF;7gv6SI8^t$Z@_esr6T>J;9yAa6(qn(l3(mvJ_oG z89uLE(%^sJQ-*T;Sufg74-+ZEdmu&wRg8T$m0g)jucO_I*6pPN5jK7I^d;ivo+%g_2|Ku zlrk6_DC)xRA+B4$pp&e8bHrcJ@9%Z?q%-gJw^{|lJlM+bzSpah7s4ie;x;V5KmlW(&gSBj877>EdA@dj}*&fq(P%H@lf9i z!fGOm-u%NZVY8;YiB}2xO8mO5)OK((H#PdV8zlYP&74WrU+mcKuo=Z+0?Bt~J7vzU z5c6s=jrGIB;i5oL?fT(xhbe^~jNINZ0N3;~?rpBxx2`Z*@A5JXV^r1G`z zHcB3(a+l^~$=5NCC)qhb%WE0zPtj4pwUB_y=*_{0HUT!IxaO)@=fK=`Y@3*iy&`ElW&Q|~<4ygZWr{H>E+n$e}NaoKhx zgMrpsAhKMeoKlVQ?e;k=zhN5v=4CGGeM|etG-rG@r2QW6XIZ`viZnY`rZapW%0qg0 zOX~)g(#2rx)58V?n_Wc*a*3gf3xE*U?o z5N7%~ocvH3%f(@k$j3FqbBJ-$(zh3*o}Hckd-a^7iKD-oUp)ibVZ)%#R`;b7KK9Zc zc*4(F6#isySbFPz;N7Br9#larJ)rf89)FCH1>SWUY;nPMe{Q3yL|;KSZ0*qvdWuAr z&F<`(wNLvKuq|$XoWIzJ1)--Vt2G)#09;dh8kt#O(s?CS2A~s){*7?q)^BDl?+j-v!a}xtQ z#N1_>^uBlFdz#i~Ka#fNvfYZcJ zQ%TkABFUCYr+;0D7=@)UlM?G+Roj#6h^?c8RX?xxP~W%FHIti!(xyblRSrK1a-_8I z_Xy))>rreGHHS-eahZeXSGE#9Bjd2-Iq*1?{t}h`amcx*My7IiA3FO7kZs04Sa~m= zQP>2sR#2`t1cvqUE86)9XbPl0xgd3R19NQSZa?tLyTH%w0?SSCQsCAV0qtY%74nn- zdEAy!|C-6UcS7*|BKmc@bZIehTYV#Rc7bsNw6ee2kGEteNPC8egV+5U+ikYzY0 z+A&nJALM!PiW(Z!v)B~VS~WWOXb$)**}6^+=0Y?7McO3r>n3o8DUx-<{dt%-VjszP zVGpy*Lz=f?F5EmU#l?W>=*+_?e5mc+@{y72P%>mIto?+9ac%d1?80LiaPJd zI-j-O#+-Bu>83oSn|k7PG;f)BYZ;4Yi&%FAY`u9L`0!&t9JfD56X9~8nxxMr@hT?q z@nHOX#n!6ngK4k^Zc?<1%3%1t74ts#KIJXhlZPDqmd^2lkrpbhjTh!=Ke4K-&M)+X zcbzXmNBI1TJ{Q~kwFh?xJUujcpGD%R`_qxbDe%spgVgO9F?NLi9Qpt&}7j{FhKy9aEeAQ%F-6SH1-&5u73L>8h_qP<3Haw8W-d1rSY6z z8f8>kPzk*>9tDkRU*zR4U@x_E8$IytF97~Km!V9d zjQd1W54>m!YvWLdr8Ir*_n}Fddg^^|Wqh@-jB<2;=;8wHA$dFTxNyFD%sfFdE1uYT zYc+c*obL!9#hWah&hNdp(-+CWDR1l3<<6HCT3zZ`zaHy+-LU0*X7|>Hg8rS`(2Fp7 z)h5AayJDM&+}<+oOFOD=i}T!DIby`(Jona?Vp?yW$K8keNY}Z#8@^?LfN}44L_mS`>ZIn&DL%^2XypDNsvNG_8IapWC*`-B-!gN!sgUjjh#`~wTbzD z#%X?!>@DsSEneDjBEKs_Dz2k|Vt`#8S4Oj+8fta{ziWNqzmGGiq=`t33Y_IgehqgS zouyDBR&k>zZP5qNN4l*#JBrmlogu<3YxymN-Xr}Du-5<>D488C&$v3OrVT4}=YEPJ z^fG`3YaTf^RJE%Bn&)TN_mn56NYZ*anh~y_%-@7gbgne<{d_c8ZXnB;Jv1*OVRmW$ zJH0>=@4Z_E{JRz@>F}~Ml2v+ zO>II8atnF57N$v>%xiy71ksYu?_!!`eJqcytuu91b6`In^$PcM_lwd~nPJ$C&4J;@ zTy}p#JUNI%w(J!Yu6x5gp^4%*SAX)h%92-QykF9YV;V@PhbbACJBM~&%6hO{HqLFU z*?u9?c}1p-$J@8tWi~SZ)7uiJ-}6N~|C&I7zn4{_eEDr}8&_ zCVyZRR-3X(!oiU|6St?IWr==&at%McOW44Ofc3%{=uK$>(Sz$<6|HAjz;< zRIYjpu-F5n^75uSQQk(SY_gMulz_BIcK;BNy30-q0qL>q6a~1~8YJIkVy0Fz2{!+b zaCp}zMT^UaIKGQ1Gn>g*!oWr~y^$Y0db?DyE<7u$XRjo#$6gR5Vb)u?oSm!Wiu^6J z*hgwEq^Vg|O*Fz=EVN$hqX@TIfw*ltY%5e@!Elj1QqVu(1&6hDG=_;lwVub;Dm^!A z9-!JW<&r$dZ4G95hLfY3UwgCIjoASx%9(h0Uz&CIvEA0;=>W*P#^f9iCXMRMsK?m_ zmf>o861ZAe6$NK;UX;a0pct;^xd-G8Ff5x~oz}AVSo8F0kh8lDydB!k1wuZ?>$-?Z zf2rS`iy6$nEDMDE_cezH^1eGbJlNBB$DArb4CbpH z+U9F&lSW<(?pWvCugt9WgZjQZkP8q7he~=G#fyC!H8S6GnqI}g6VvM+{TsiF8%MWB z&mLK|R`L}`=f)3uc|5A`2Vz{vs_Htu@7(ykH|w)LcVwV?w9F71?=?*({D4p*#1di& z?&X_gg>P2`J`y>YHdHm*_34P|f`;j6@!L*DT6E~Qoz$04rY@)2SYwy+80u!JX!K`_xwZG#jAIGN7#wQsiQ+h;OYkS42Xf+JmE1|yZ ztf<<+<+g*s6R|DK@k-HE&|mj8l;XX&(mybl^_9+0Yv|CPcLOKl1i#6w8Ng#6ITZY+ zCvvV=@8KvjKgvrRlucf}{3%1s4yDrkX%PdSvWU`d%M((0k(@I39JAQ@I$>Vc#F{xP%;&F|EAOq1B@O-6UnFZWM>~r(lUhY8$#(F?gU^$;#`r!Gj3pmc)vG!3XU zkHY*2g}s8gEZCGGN6Z8rmAm!P`tZ3fQ$0kut-H5Gv!^XrW;lt)9$De%LVTJ_IR7C& z?R*el)a7p|SSsrrW-d{ge;4rYkWB+JiCVz|4Qvi^?J9Jecun1xh)h2c&42K^-10ILrWNLBZ84YZp+?Ct(0+L zQe6KLUl=)i3E2<`iCPaPzg63jPK|IN+wcza$mHEqBel*ykbSsD7xQAoEnhCEq&j0! zX(w_aiBLgFb`)h!4NUxtt%d}1D;s?3b3JwBf%~XBF&xOn64$h1BA(&!asbbBRHKDY z;(O#8Zdyn;{5^%}QCF9TXy0EGj@ybofD?OT>JaOmMFpb&B2ta1^?l#(=8-#9Rjkei zp;gVc$wYQuE)H#0W>H(*xh1Mk;Rst3Hf6kXc~)uIF7bLN&*_TxogcvIjYjgF@8N?B zEl{X_#!MtS-Sv?=L*8-KM$HP-Sw(uctyuGR&*qlRCr8LD3GdD88HGS8%OFUOOYB|> z#YgLdOBG|S+!TZj zH%{E(K%mO?x`9o%L{)p}%WjeUyoGhv;wS1#h{$3IKPxgEp?Ey`c>K?cctfNj9FcS8 z+MkQON#{aOsT)DU4OSg({+|KzpMZ=G4sDL+U#*4ar%c|a!yIo_^p>|qLz?5Am+M5% z3>+!FWOJiRv>7#UhT4qBMZ}Co_|;XyS>$fNB+>+ndHrlNs??YB-)3G+?X)NB?ZMeE zqZTKbe&d&XY=}cjReU<$hCAT;fr&MBd;W{rpSQ#@RD|9?M&5ngC*;;^CClbK`|n0kx0mkEl}xVFKG$hI=q z(k(D%xOT;c%j$b@;8q)}Pvq3rqMBVB;gMdP1UlJYff}~ORSk7`Rs5wq+3^*LVPKqT z0wv&WSW8~&scEkjG*SmW{Z7eP%$x@NcZJgHl+HV8tj6$qW%UZhekanNq)|))tcotV zailRe+?Y7*66L^ITVuoJSFlbCKsW`Ps9(NkS;RbdQ&Y zbHbARr}{e{Jkx7hYl@YxsqbBwWb>+2Zk)nHyK8kl{0n)m#Ht%E$93UdVh3~%Dq$#D zglP7dyiqEm{lNQMrq{3PiT3$->u0~Bi$?F~K(p2@~r=$u~^I_KZi*VkBIpSttk zi|AjdV^88cCo=iI_TMGn7S!hdwf{kob2XFEJ|$Epj;r8a+63#?eM+8oLZ;2;*CPNUu4MF&}x)}O)nUbtNa~rdDp374O zZ>eMbDanSp4GxLCY=$xiSF!B`Wcwt5l>__NJCJiXG3MUwRf^k2HuRlc6>P$~7vG6?53 zTr73j+=iR`jo~psb!APpR0;er+KO*%j&2^Pucf>Q!%-t|fZ?*^!%OMK_ze{@A3J){ z)RsZx`xBz5>KJs3&>k^Rg9mLlrt?BZwsjc?)Z3vYI~SnJ1xi88vYb`O|tRI)5GG~1ve`DThXvdNa_3WOP@NmFtPvAL7c9NH2q7}YX z$IzT7cT@XgtoaRoLt|pC9t-pIuKeKJJ#ZEtGu$y3Z_u=O@2pnBO`We#tgfuTh{>v9 z+euk`o4|)}qbhu>Kkddgt=}PLK${{w`U}`Rb_SZXYUd*j-zHxsB?k^M#Ym6PkhB%g2gG(au-Ww7Cmk zr9UP#^mx(IyNjk4*`}q9=t)eHBDx<@ujxuAKhsT_8U`gZ9z79UQfN2WtxIhvV7>Hn#fL3a6eg2zS0)t1%;5{^Ti(3cwYs6;Lm&pS$}O{+KFY6ferEEK^oxvW}2%AF52^?TZBn!o zx7(&nXezk|*=@QRN8EF!8PG&su~-JVy^g3BbXzj zbi$+1~1>g=P98{z!gWbe|*H+t!p}EreBY&o&&98 zOzrD6m&ykGnT+XbbBr8Qf53iTiNi&9;W|3Uh0X_Fo>3g0#~&BN|3lB9S*N+$wCUmL<+|HHQ+Rer?%F?c`0C78=D@+Boo4{cG6BhFop&9LHG|IIl3Rvs-6p^K#+M z_bUA1Y|VcZOC-=mXVIsfoKj8>Ww>4K0WQ0a1A!DHtmZ6?Fj08C^F=f_hj_xRTCd%P znN6%=rE^$VI}G}w#ZjPYusfllSWiC!;>88*=fxsRiFy)EIC*%51;zoN)9JH!+|(v2byUXF|okItSOF<9>& z#0bw0^l$}3Jsy#(9JOQDZQHmbBYq73-xyyG+&GN$S~K-4^EdR;hgN+(0xW>8z2jd3ygP6p)Em2H2vXbv;=2IJ~Z>U`~K4)z) z(ipE@G#0+u&gIEO_Lfe9*r5X)=xvM-4_yRG{}|i74u{pl%rnG<;o6Nj^#yQv2-m*m z5_)(@o;pPPr#K~hU}SZbXOE`_59pKKo;Jis1nscjt_=B1rAc$n6YTus}Q!c>rQ z7jL@2Fu~n6yoP;^HRF2ShlgI)+;F9|aS%{?boq+h=z;U+^b`$= zwnwA0n4gy}HJ=R|I67#}UcJ%#oMr;K2Zzup?AFV7gBu6*Koad{bg?<@I`xvB97W;S z2Xm6pX+u|0Z_#XWFq*s$fW~?b=p7dw&M(fYL)t`?xYU)G8FBR7%W!$fI|(YyKQO6G z4XVQkH-{jOB;Gss*40df0uAoA$6&r(!!VH(lNVU;DX+%M&Hfy6>zQ_@Lzr{Gi8Vct z`J^#wom< zs&V8&wZs!W#!C!xbAwT>xo!0@D#+vACy|x&8j_GA5v#W|oR}Q02X`&6vx@fg@m`+P zoV4-kMLMTqOs=)&@=7p{9pJFXNzr)107K(c4_q|T;Ef1xxV+MOI!t;+k4FsG?!JY? zAaj@>u|EbH85psO&grfUdGc(p)m$n+H!fTJ9~0JpHjSJ74Rbjgbgn%b+!GBOxu@>@ z4+3tWKc+YOmqqkcZ}hK<=*_*+zb>Nh*BkwtB0A;E#)GFo4^zY8I6YNkgl2xHk;bv- zDZ-u8^}TRd!si+KoW#!KM*q$Z4_}*GgYb~1^ddZ?a6HC&f^B?NIxPN~8B4dlh%(Pr z|HCSEo=Qz-*2L{o1>e3ue}m7pxP3B#q53%q@O0UT8B;XQzt)j)wUj=boDKiHz&@Lb zz0f`f=1{so2!R2YD~%*MZ34s7(q0M zcy!lcL)X`mzYxO7;h>aF$ba2 zd|!um!dh0bUSQY+*Ib>nJY5YZQ^^Re7?sysJ=pE1)Bh1b<;h>;o5W^nMDqNAN6c}h z(^A$Xb}GVJyRDYYceT@pz)-oBT9dSNr{?% z6YrBoAaJ4uqz4F`WC8Vl0w?gZPhCFYJwbIU9ogD7r#Xd(2ddV|%0yhmzqj&lCmsPv zRU5@^_1#=VjwjaCLfd6RX}xfB&CF~;y$y_bn6#J)v={hyKsqgP>qENpPpkrJb9xX= z(xI7N(o7WRf~hr|k%0cbRa#m)!q+2h448q#9Wl7DMV8=VuxE>!$zR_i0Yr_+Kg7dS zrD*3{s75p?%^J5Q&%8Y0(wSdtyp`ObQHw1o$@6Q-O z&vSlC8(_JSh6wCq?IwZ41fZX|E%nJv)j!6~$e>g0F2IZyb4`z9N@Z~|;;>uuALp9p zrTg{LthhN`-p?a!@ND!Q;Q*vudoaZJIxnCW-_iV_VL|AEf`V&P7Q@jT4PR)l=h#Y zZP-I3zwgk=vVyOid&hGQk#_MR(oR1_+R=wdJH6DiD`37;^Cm0SAW*K3I zU^MzThFaaH8TZzW9`;^XtJrL3YelD_EsTQijLEpSWiT$wXI z9mjq8^n8Xd9%A{}SR<-_!wD{L!GmergQK34I5rs1nv zJX7U2sBSGCBJJh8D%m%^=r5FzDl_Kw40*Gbv&}FgVl$!2LGIASy(LJ5`r5X(v~9KM z9BNI1U!^S;r(GZCab}JiMRml_ z?$f+0OqUK_yX7PoTAlCTFwOq-nuYvs?7v>t`+iJ z>yu|yQ(mNmaN}`1Jmc7w%^tIU$NIccRPdagxi=*tsg?RL>2+oXQG$x<`t1-WlswUx zL+rZV2n>9YM2*c==Bn0RHdn{x#-v~N`-H0KF4hp@h^@nHi&^K4+!FVRL!#)L$VRQl z{ywcc=9A$=PzqKFb|L;^&ND-+2ED}uq*tss?tnRs9x~#!oP~KI-Nq6+#^SERfx6H? zTnX1*3F~+Rx9_kTF4IROB;)EM`3t^V;%53to0{tkO&pz}2I9Y-?ZAtvNwAAtYM(a% z-+7#U-mcHb>oc*#4dYSg5riDq6^;sIaa%}wA+(OYNcs4k({Eb{vsa6hxGjv?8|{0v z^8_W2b}sRsJ^E>OcI&4tdVIO;{XL1^K$)NMHLDO}hP5+c=x(uv9YAvu`vNbH)K{nw z+{;%sUB1WX$~btNc)Y{15dCO<^X`y4R~KEw z#3249kjuY?HF*#K=PSj$%@X&W59y9-?m*|!V#mIR_eL2{>}c$fPs(?R%;KvAxI}~5 zZtMl@qI)|T&CW$@4gAk8q6D*BgrASZ`-W(Kn*$|M0WOQFQaFO&?ih=aOY7{VJ*K0}V&K z^_q+OqMplCabV}0#3*Csrf|pLzITT^g2FI6mS?k${J?0#^&iC~!4CZV+o;U#b#oS&WpZ{A+V>DE^3$f`hxc1^FuH%V8V~KY<=v2LaKyP5bK{m9!mz^WquKE~8 z;pkZYsh|B3|9;HBlYrm1=-&~*yo9)&FXj(#jL;54J6~kqkFoFP+4pYye!9NfQjfW4 zKY*~*Zyv^`l2baglUqAEL$d>F;9O6|69ZNoy4nUqDRsK&)`$0bdg?EW9uaPSRQxu% z02rsoOkHypghzFUONEVljH0zi+j@|Y=B-L z9S-*_&H4XD6S;ez^cbv%-Y`_*u@Icl~YMZIyls7*dVaOuH@HEtsI z;aJ*}|G8jio|l!sim}1v(x7b^SjL{5t0QiMbdlRw8dQ+7Ww%gCc_LJxHfIz&LYgyg z(ZPJYVd{&YBO6I?A|L5PEzZ!`2p_h&VzKrndsW5xmC| zH`F=|{V_2Akb?ZW{G$1*vKIq@HBe_;Wi+@$BHnioe#st#TYDL7g0(m7F?e*(?m&7e zs6F;YD%o~ByptB@{@y;D_ioSf;eyxz;}&+CW+?luqB{)POeBi>Jl^Z`!qDgfeT{)m zwKaFa1*gqneC|<_|BFNJs{}4xqN>P>EO9M>62iTkjB`>L8A z7194$L~Dw~QTy*P=uO>uPZ6#8M-lyBMYLujlJV{Fx@NkU!uj@a(iax5pG}&0ov$Af zcaBFttVV~gSrxS=?{&jx;b@BJTuq^9C;cp(rif=NqSTq!Pcwav$lxB+)%Ke{RX-x? z`_l4)(PAT>SQB*?EW_T;Rr)o2*=ozw7RKysefxfwR>7ku0{eg?p zd-lUrm}TXB;Z$2BY}jLzh;I+f<0b}+NbznW@Q&`J921*%ut*dGY(G~$z^Tb;2{LW8 zoY_N5p}(%m>sE?p`f+d4MBJ6*3#1r=J{2l;@G~r3 zl_B@tJvFstu7bk`bNl&Oa7UB6dW>=q6=QQ_moxR>UazeW#*QXO6hTyq)(=M2+ToY& z0a9pus-vW;ZszU5zvjdQ|37|C{>fGedb6VIJ zs2;^c4eeyr7`(*ADBAf9MiY<Gh8Zi^eox63;52lo<%5N zMo06-mHf7aG=#OLc6f_6(8iCThAWFWKOFYa3f6D(qBy692czq-@mn3uOKi{lp)Fc{ zKD4O+QC(As3$L*~?lIR=F7Y(nS(fpvIB^FT9R*$Is!yKDxB7mrW9eG^pt>~4XydDK zaC2f@!8I|?oczewbAdrQ>ZfxJf21ypaVhk_=MZmQDj%f1ZhX);(<(nO7k!Q#e2qRD1r5dv076NPQR`=dPTb6pQ|+H9zFdc?-pW9=(Krn_WoiC)?YSb2iTAoZN>DKV!Eo| zr$<#jcXQt-e@FpbSA>Rv>aIWVx?W3M-2MapT3tDxfsgh^t4(XY(2`!Dzf*0&P02-y zK5Ai$D{dbul?II4D${+<7`iEsShKsM1lXY1XN)BR8JpXCiJzQ$vF3hCQT!7-Jvoy( z%V_#Aj*g@buE&zJu!A9utjdzq?2RnJWZVTV*VQg(Mn=%RiLHG?yf_hCZD|V8xc>6p z26snJlSdz+E98BoP5knbUfO!jiV3tcn z;KM+f%_%3N996Ljgl0D`F@q{j!>FEktMTe~D?Mj(KPs_RlG`gWBRUr-KyLQ<^;f5U zlS@aX`<7+d)}7u)O$TxpRjQ9%RH@x6hKt75neKn08u#t|=F&Gu!Z1Q-$n6Qe4~ukb z7W$I3-|u*mvur$}fD>}D3hi0+ELCht$Jvzko1|lWEIG3)R(+pCNoV`{vZ?kTgTuUX z>4UAAYqcq3-CrcPuI#R9UJL+z?j?B!eN=Rr(c}CeM@O-+*Z8Y@kyZ{~2;=s$`8_(3 zoUYox461NGgat3MJhuiJi{Z$7Rga3D!TP+-tGpfww>&zkN6qUIByv$bL?OGcb`-2( zfXUoIrFtAz2POH%4{fv}jv0N(UZv2cjVi#z*6LxPNg>wCnC!O7M;r}rF)Qn z_PHhwsVamwBZ}U*Q`5dK#ntRpWa)7*&MS`rpjoQUS*q?DjU*7 zpKGdBGuJHT9)hq3#@#cwy=)7Ug++Q^)E7GUJO!FC&=P(S`-P zsy21h9C$6XyZ$rReAZHymkxQEONh@zOd#B^m-^~|>ph)MFr5R3@G!6VWFFFcI-d#w z!~f|#C5k@Qv*7v@v2Wr2tlm1;bw6LK&-4SKA8e#OH-R6&AG)i`3Uzqlwd5Fx4pyOroJRQ58SJtF&kPZSp=k&nwS}+PzmpGfjOrWpHW7@848wH_xo$k9isO z#>-D!%svBK#m!B79($tY3u2u{7+3UIo@Z<>`$GuB8}RX6=-GRR=8k{u=Aoz_DmGH$ zLOj=cYE|$l>{x*>b7gKK)ac^+;sg(u9+tK>R4s`OVT&Y-%Rqn+YrTsQ7i zyt-hUom(a^!{r`d+ zh%SzBWUr$L@DA&0S0558mOpE*%)3U#;o6;_!; zJr`NZWMM=A;>}P)#J3J^94=kW!DHKLM~;cBaZNAxz?-Yy;NNpL+V%u<*NNZaIC>KF zaR*cML4*2NCK`rXN7t99Agptt0l731Eat9*hu3>)u*e=Naw6Qv=$dH9**0}%ypHWH z3L6j54ezDj&G2M+`aVA3QP(Q#b_{fI#AO4mE5&DDRas$J)P5mpvv}*j9If1`a~8M_ zqyO?}asNeK?s``M2wm7a$j9>5p8GqA5hSfv)AD`!c`O5kKbA|lk!xQrSFYC*1HTYRhz`rg< zkoVlAB;i)MmDe?x^5Cl*`Gt4AtPS< z0E$eqZ>Tw$Bl$ks!7jXks-I5f^mONKxT5IRHEOZTnOL>^Y@c6uT;fBw4hr?uA=LAh zJ{X0T!ra;iqYy9{pc8X$E(bEJ%jq}Ow8Y~8q8mS2M4Qic&aFm!ter~>DYZ|(piJz6 zy&9a{TKpjQvA8346QL?o@U~d$>J`5wZAE)r_Ih0?%cIgSgC+ZfqD09;UEHqlqN3pM zseGH%g@5CZKl8)%KJHjj`e`D4R5*rm+wXJuZwdZi3iv-4ypkwRlH&9{EriDS0NTik?g#>}FDmXS!3Fl!7+JfIci?i4LyOBU21F)mlEnGX_`&X4VyyE@)u-IKSwFa2d7XYs3llU@ z=ZzLuUU(;nJFl@o#RIRkK(!+x5rzK=^wd!2RfOuy!U|cSILU(IgDl`1&tySSt7{p4 zzYr+{$nc57nZVn`hl&rb&w;B0)$EBRKtIT|AXd@U?0n+v4T|jj5I2JbT=aRoMRhC8 z$X!jpE8Z}nIkTEwUZC6Fht4q##JQwt4(lebZg#a>+!o7bY84yaH3IWO?}IfBI=I%H z{FAB2#s9RA=~qX;d8Ye>*BBsE(2v!YrR?WW#&O%;Qdz4%i(-NR6T&iSp;GoEpgm9a zQ9d_=;BWY)wt$^NNC0tLT{Pt|m!?uA=rFF-m?vjnQ=juLTFE{GJD?`AbDH1b<1*Ln zDqWX_^=rcvQWVzr*l4@ayoY5YRhJSDNxVWB12u)T_7m}Ch+u=#)Q1xhJ9(A#JJdnl zNB-E=eefbrRqVNhozgVjp3RHSy_~6KA0n%Xw0tG7H>0MyXG4U(Hl3?;fH9uYw!Jv- za_2;kzB$^7-dH6Y_NRcm!`j9B3@d5uAU#iUwGV)>NLw4RKBVvZ`cO%Mx`J^xIJg)G zuC3|^t{DX!xF{I^%s!^pOVTfx{@`hZKJfJO7G2cemieLnN%oPV=ID!!$JHX8o4Z_X zsd z%Y#cKr!lc^ntiyS%)1UUX<6IK3M~(Z7S1g9u-4H0PRz9&XMjYCCCP9hR$-gzP)s)3 zl8nMD=@*^fa_YAv|6;B$Tg5K(Q3A!ZvRcgr*VTEb`0QaK@u4c1p|Jt`(yzm!nUO@3 z+sX`Yqp-5CaCF6%(VCz#F|@eB+T@$y*(HOxihYCSjSikLw21#);c@=s%J2~VK^@{u zCWF#x$b7^+BzhK2B6~>wpR_T)uIy~+34E)c$Tq;dAbO%?E6J{aR33GaLLQJFGX6Y@ zgrK%9EHTn(Qq7JKT-4f>+ga(${ z!%4;b^BAgTx+|VpAFLGH*2L)m49Pf2EC;#8a`7?_#lDU9;0}vP5%bcw5;Pr|&vC=N zS@EF^FWbv#D|>gosu1#YGkD*{XAj=DD_H8hLqFxtJNcoMMP&$PxiW;RTZTfEp}F=+ z)b$D=|P zC}l0o=q;trpAp+rhrkcT8tlHF%D6O6ua?xEkE+(HuKJ9H-@hpcavOp2Ug>#1uu@)IS1*(IIP&iGyjp=6 zPbk+op*6J?Y-{TN%;)KZx|pJ;wbp7R(!0k=^b&OJQ-v=|(l^pevDe@comOwFMJm`^ z-vL&;jK=n2ZS-~x&SL|?2I>|N*;@ZX`ecpp#%&cdQ{e!G4=qZ@Elp*l+T?}V^Ko`A zdun7)QYnp*yq>P^X0^hS=-_r{XXBdaV{A-^NDm2NriF)|-8$YhTo__!-wbm+3y!kW z!Npl}%Cv=Unvl|W$>)SBf4eH56ZudhlEYWLaj(j(^UC$Z~qPMfBgd`(1Hu3b-b_xE>+)@L&A9;_9P| zHE8O{F;fKWuJf+|_tUL^CFv-|>h%wC@O(P<^QkZ6`Ff(OS%<)J$H(c$BD8&ToE~AJ zKP4@_gFoDKOeeZgZz0M?$G~XH%Jp;@3qB4vgFcR?nxB z`R~XWU@SrqPU!H)^F%5 zXOo8$rRedV_O^K#{;j>my{!l1^l0+c*o#i5^kJJJp*7v`x~MHb-CLi}1!Je4D)j!AQCQiSV&v`!m^yE`e`F7p9&pyfbxbV5&uvzQ| zVKaWj(fQE!9-C7oX$zXytP0xAe>Z;C>cbXGSr7=p!3)F%P2&N@AUM<}FFe)*eEn zv}FFR6y*dBk_B>8-co{W$Vi%F*}pnfp%UAMlCbTuRl}5duJ~Syw-`K~Guw+Zj2210 z1=`K`wPb$XULHafr31`YlWLy1HzB{3N)3LPOk9#~F`mkjysvKbMv09JxqOE?r7Bv; zqVD*auA+Y{!TG@GgA%}}cwmdzXvy?G@w*iLA;0gpwzSr_HH5vm1Tox_l&d-@-x^hU zEOZUuST4eDCjh)g!8Dw{Yk4^$l??;ZV6IUd%K8$oMvA?R7?#hDmz$iBpHmHM$#6~V z8`PTf>n^~Djh@{8Lh~}gI)j$74=Q8wov(Hv0Cx#p;+yzU;+g2TgO>~@8(LO&*90+F zbMtq(XExny&SEW5w)OBcO;rlyeOjWlsMwQ<9hUZ^FZe5XkAblc8dfBo@nW=`G7 z)l9!UBj?hm!>&s6rntI41*n40%gWeIMBKgGKPSt7RKxu+q4CQ2O{7hXKk;q{^?k57 z-v^uh;KZO=sW@H%0zVUW_bs(C0-Kjh;Tq+AhRukd&`yn!-`#Ek@c@*b}8d-5LP z^c3KmAh8Hc)Cu)uo@fy6%{?)oh@PTNk>lg>9W=l~le*v);a?InGjPGew zDr1*k#3On6TCW`40<4eMx$MZUcXrV__#&Mcv>rk9BNgpeQoL0H(A>rqyJQZM#C(G7(uW`M3Sxu!U zsx<2PJJ#>4#r4zva9%&`Q{5_c>sei)c6WL0eBSl{s(uq~LUt*Es}5k)?$UfFWi0K_HsiK4a((^z-9>HUq>HSh zLaCn7BD>L5rb~jFwA6(&DOs)o1)7~Dnv5T@ork~L;1h$4vv-rauoIauB2_<~nO_Fx zj2wo3wVm%`PdUsZzf4(%1KCVE3R#(b>xM7&!6>v8<|{c2=KW;dGcM^ULiNr2b3SJX z<$g7Xw{jI)it}rIFbV;aXHSg@Z>V7x{~pUAT{;Rs;Izg*E1ErLT_rM>Jg_Iy z9wj#(#&-T?mC3B-Y2eyKd3k)DzcUqWw#oED55z@7(;6**U>+GQMPFm1;MvNbWRGSr zYK&oyiYG642v)1-A;&bkc5N%^b3)*xZlH2^5qlo7S9%7Sq0A)nRONkSHzCP*CDm;G zvg5FWye^awexnxGMiL1D7tNCFLgj3+2Vox*gS(@GAnopi(r{q$Lbzs%#!BUgY-k9z zX7+fIO~pO0)X{QK7aNolIKw;CU31m4bh3vP5az#HvWPRjW0HQ8&!PGaS9T}ARw_F9 zm{W>HP_`SWg*Q<&@5~u*W`=ml+Dq>`!1CPAngl$&$g=gK~$1ck&Y59!eI zaB1D%JT3nsax8nV!;fX}QrT(@2s^(ZtY8vjI>o*NpuL%MC~6HDh7S|BnXl~4!cdN> zY7m9ta{ftNIP$9!n8llX)|s;7WO2BIU zq7+?>H{(pw<*OJUYp$cbp1yAB4RxeSCCKf>%-*yO7LM%h2;7>O4IhidiMg0V z=D(#7E{9*?tp>b#-bzRt^Z39Ay$ovi4!AwQM0)Sm!ScFiY^|2oJ;OJSPz-Fo>zwtx zXk+X9f`^oIlDQIZ1c%>%!raobM{fwz=Nd%MchsV9Cr=4k^N+|%^wQR)*H~FdQ(VeB zGGrNIsOe2F=jr}ZRcUqUhAY{0@AfQEjz#m|Wi}9ewBT~D;dTaGEE@eN9i2UQ9k{yG z6pmb4WP>=Dw)=cn?`FHCbh}GhR;}-)wXX>hsnpy@i?3-dwNho#kgsd|?%!QSW#d$T zSH6EI@#6lSe!BPX-k0nAu)xYrgN!_G)8&1!G8 zL&x$Sjq{P&d=-t^+_a}%|0Z$Xq_A2G0^T=@R5tAfI*cU1VheD^m-iUo`?u}`zq!Dn z$BM%!QXuRZL4>fd7I?Y@C>>zz-X<>S1fZBBq*N;(SBHk!|CFW=@< z-Ls0&d(u;LKF7Y6>-+^-bZbPv`K=L9fWzl)*LYu0vX!$^yp=B~D}Plq01l&Z^3jiC zCSz;1jhw$Z6&>_kn`4y9&4u?N#Er_r9vDLZuUc=ryYo%Z@D@9N$1b^hrc&PM4ovA_ zr$^OHJYrh%K2|zoW6frB;c$?Ql-8Eg&3q71YcAZ6uQbi$kL9CtC+O%C!a9D*-LAX; z8|d!pqTBF)0o~m~$AKuFERiB9&Xp{4Mrt}g)1h-5W%xP9Ka6blA5%EvJ$8K#7j)yr z`!fhXPrP5az_eQ6d$pNeCW+)YjkuF*mcV~FW&WJ-Yy5oi(73#q`<1m7i%;JVs|VL| zMTOrhhd3T#6URQj7udwY{{}W^dx1?H{JpSMvPZy;k{yRniWThFl-Ww?o>1c{ z@|^#x;dKL^YFt%Y=s)paYjE9B760>iojtoh@zy8f$)^J|F*q?aF*-3jalDCesvWA? z_3`AtOR^_M)=#WH!V|QcrHQ-uqHf;|dpBy8&^MEweXI0kG^(%mdp4@3ykG4Jy)3bQ z5&G;P^aY%1o8J-Vco(N~FU6@A`W{*#azPSZaM0rTrzJ1jgC&RGrn zV?nbx&l#;#|vbDSSmQ<;TS6KR5Nk;TzV_P_1ynT^KP`1z_?e~hZt6XX4I@ZjWPow(%CsC

    9-Gu*CN6#><$2&lBY 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�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

    *F8&dIBOfX`tOryuik z$P(v?lV9_5OB3gbi^S2#eg8Odnm9{bB=&arWdmS0f6Bq`+CK(%-%A`P{{-nt(z9R} zCr?}?_MY&4qQr6HBypNJ{`KJT@ApU&XNmLgV0qT!`5)o?+(`Gn;kP|XoFq;Y=ZTBN z(Vc!iapEL#9_;$0NbEi7>rvu3agsPqoF&c^d*7s(#Bt&zaT@HtFC|NyCoU3u-}3#V z#Bt&zah|wH>;w*8VIJ?J>nI|q1$A9emB#G0+S>~Vk*DQJBB60M2KW3abNt`Cm z66cAF#NIwXW|TNioFq;YXNmK~MPfX-cYOYogWWooBt1=>CC(EUiM^lsF{8wB;v{jJ zI7^%-E)sh`r})Hi;w*8VxJc~nr#QrM;v{jJI7^%-_FkZv#96SctFQkKALk{G|HAjr z|5AObU&7jJ`983BK=pUMj6ECJ9q)1CBypNJOYHsHFB>I}6DNtϛz^Fht+H$|Mg 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%0DbNnr3v|HAflj!7pbKsg=!zQ# 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%0Ak~ydqLu_YM_FG%Q$eR&74!S|by47y2KI&IB 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 diff --git a/ShoalShell.Legacy/ConsoleApplication/CommandLines.vb b/ShoalShell.Legacy/ConsoleApplication/CommandLines.vb deleted file mode 100644 index 932697b5a..000000000 --- a/ShoalShell.Legacy/ConsoleApplication/CommandLines.vb +++ /dev/null @@ -1,142 +0,0 @@ -Imports Microsoft.VisualBasic.CommandLine.Reflection - -'''

    -''' This module define the shoal commandlines for the command line interpreter. -''' -''' -Module CommandLines - - - Public Function Version() As Integer - Call Console.WriteLine($"Shoal Shell {My.Application.Info.Version.ToString}") - Return 0 - End Function - - - Public Function Start() As Integer - Dim work As String = Environment.CurrentDirectory - Return Program.ScriptShellTerminal(-1, work) - End Function - - - Public Function SetValue(argvs As CommandLine.CommandLine) As Integer - Using Profile = Config.Default - Dim var As String = argvs.Parameters.First - Dim value As String = argvs.Parameters(1) - Call Profile.Set(var, value) - End Using - - Return 0 - End Function - - - Public Function GetValue(argvs As CommandLine.CommandLine) As Integer - Dim Profile = Config.Default - Call Console.WriteLine(Profile.WriteLine(argvs.Parameters.FirstOrDefault)) - Return 0 - End Function - - msgbox title ""This is a hello world tesing example!""")> - Public Function Shell(scriptLine As CommandLine.CommandLine) As Integer - Dim strLine As String = Mid(scriptLine.CLICommandArgvs, 3).Trim - If Not String.IsNullOrEmpty(strLine) Then - strLine = strLine.GetString(wrapper:="""") - Else - Call Console.WriteLine("Syntax error on the shell commandline!") - Return -1 - End If - - Using ScriptHost As Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Objects.ShellScript = - New Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Objects.ShellScript(ShowInitializeMessage:=False, LibraryRegistry:=Program.Configuration.TargetSettingsData.get_RegistryFile) - Call ScriptHost.Imports(GetType(InternalCommands)) - Return ScriptHost.EXEC(ShellScript:=strLine) - End Using - End Function - - - - - Public Function RegisterModule(argvs As CommandLine.CommandLine) As Integer - Dim Path As String = argvs("-path") - Dim AssemblyName As String = argvs("-module_name") - - If String.IsNullOrEmpty(Path) Then - Return -1 - End If - - If Not String.IsNullOrEmpty(Path) AndAlso Not FileIO.FileSystem.FileExists(Path) Then - Call Console.WriteLine("FILE_NOT_FOUND: " & Path) - Return -2 - End If - - Using Registry As Microsoft.VisualBasic.Scripting.ShoalShell.DelegateHandlers.TypeLibraryRegistry.DelegateRegistry = - Microsoft.VisualBasic.Scripting.ShoalShell.DelegateHandlers.TypeLibraryRegistry.DelegateRegistry.CreateDefault - Call Registry.RegisterAssemblyModule(FileIO.FileSystem.GetFileInfo(Path).FullName, AssemblyName) - End Using - - Return 0 - End Function - - - Public Function ScanPlugins(argvs As CommandLine.CommandLine) As Integer - Dim Dir As String = argvs("-dir"), Ext As String = argvs("-ext") - Ext = If(String.IsNullOrEmpty(Ext), "*.*", Ext) - - Dim FilesForScan = FileIO.FileSystem.GetFiles(Dir, FileIO.SearchOption.SearchTopLevelOnly, Ext) - Dim Registry As Microsoft.VisualBasic.Scripting.ShoalShell.DelegateHandlers.TypeLibraryRegistry.DelegateRegistry = - Microsoft.VisualBasic.Scripting.ShoalShell.DelegateHandlers.TypeLibraryRegistry.DelegateRegistry.CreateFromFile(Program.Configuration.TargetSettingsData.get_RegistryFile) - - For Each File As String In FilesForScan - On Error Resume Next - Call Registry.RegisterAssemblyModule(File, "") - Next - - Call Registry.Save() - - Return 0 - End Function - - - Public Function ShowInfo(argvs As CommandLine.CommandLine) As Integer - Dim ScriptFile As String = argvs.Parameters.First - If FileIO.FileSystem.FileExists(ScriptFile) Then - Call Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Objects.ObjectModels.ScriptInfo.LoadInfo(ScriptFile, Microsoft.VisualBasic.Scripting.ShoalShell.DelegateHandlers.TypeLibraryRegistry.DelegateRegistry.CreateFromFile(Program.Configuration.TargetSettingsData.get_RegistryFile)).DisplayInfo() - Else - Call Console.WriteLine("'{0}' is not exists on the filesystem!", ScriptFile) - Return -1 - End If - - Return 0 - End Function - - - Public Function Start(argvs As CommandLine.CommandLine) As Integer - Throw New NotImplementedException - End Function - - ''' - ''' 以调试模式启动脚本引擎 - ''' - ''' - ''' - ''' 本应用程序作为客户端,与主机程序进行TcpSocket通信来完成调试信息的数据 - ''' - - Public Function DEBUG(argvs As CommandLine.CommandLine) As Integer - Dim Port As Integer = Val(argvs("listener_port")) - Dim Work As String = argvs("-work") - Return Program.ScriptShellTerminal(Port, Work) - End Function -End Module \ No newline at end of file diff --git a/ShoalShell.Legacy/ConsoleApplication/Config.vb b/ShoalShell.Legacy/ConsoleApplication/Config.vb deleted file mode 100644 index ab8184a1c..000000000 --- a/ShoalShell.Legacy/ConsoleApplication/Config.vb +++ /dev/null @@ -1,102 +0,0 @@ -Imports Microsoft.VisualBasic.ComponentModel.Settings - -Public Class Config : Inherits Microsoft.VisualBasic.ComponentModel.ITextFile - Implements Microsoft.VisualBasic.ComponentModel.Settings.IProfile - -#Region "Configuration storage property region" - - ''' - ''' 应用程序启动的时候的初始工作目录,默认为应用程序所在的文件夹 - ''' - ''' - ''' - ''' - Public Property InitDir As String - ''' - ''' 脚本引擎的类型注册表的文件位置,为空的话会使用默认的文件位置 - ''' - ''' - ''' - ''' - Public Property RegistryFileLocation As String - Get - Return _RegistryFileLocation - End Get - Set(value As String) - value = FileIO.FileSystem.GetFileInfo(value).FullName - _RegistryFileLocation = value - End Set - End Property - - Public Property LastDirAsInit As String - Public Property PreLoadModules As String - Public Property ManualPreferIndexPages As String = "TRUE" - Public Property SaveHistory As String = "TRUE" - - Dim _RegistryFileLocation As String - -#End Region - - Public Function get_PreferIndexingManual() As Boolean - Return ManualPreferIndexPages.getBoolean - End Function - - Public Function get_PreLoadedModules() As String() - Return PreLoadModules.Split - End Function - - Public Function get_LastDir_AsInit() As Boolean - Return LastDirAsInit.getBoolean - End Function - - Public Function get_InitDirectory() As String - If String.IsNullOrEmpty(InitDir) Then - Return My.Application.Info.DirectoryPath - Else - If Not FileIO.FileSystem.DirectoryExists(InitDir) Then - Try - Call FileIO.FileSystem.CreateDirectory(InitDir) - Catch ex As Exception - Call Console.WriteLine("[DEBUG] The specific work directory ""{0}"" is unable to located, using the application directory ""{1}"" insteaded.", InitDir, My.Application.Info.DirectoryPath) - Return My.Application.Info.DirectoryPath - End Try - End If - - Return FileIO.FileSystem.GetDirectoryInfo(InitDir).FullName - End If - End Function - - ''' - ''' Get shoal shell registry file path.(获取注册表的文件路径) - ''' - ''' - ''' - Public Function get_RegistryFile() As String - If String.IsNullOrEmpty(RegistryFileLocation) Then - Return Microsoft.VisualBasic.Scripting.ShoalShell.DelegateHandlers.TypeLibraryRegistry.DelegateRegistry.DefaultFile - Else - Return FileIO.FileSystem.GetFileInfo(RegistryFileLocation).FullName - End If - End Function - - Public Shared ReadOnly Property DefaultFile As String - Get - Return String.Format("{0}/{1}.cfg", My.Application.Info.DirectoryPath, My.Application.Info.AssemblyName) - End Get - End Property - - Public Shared ReadOnly Property [Default] As Microsoft.VisualBasic.ComponentModel.Settings.Settings(Of Config) - Get - Return Microsoft.VisualBasic.ComponentModel.Settings.Settings(Of Config).LoadFile(XmlFile:=Config.DefaultFile) - End Get - End Property - - Public Overrides Function Save(Optional FilePath As String = "", Optional Encoding As System.Text.Encoding = Nothing) As Boolean - If get_LastDir_AsInit() Then - InitDir = FileIO.FileSystem.GetDirectoryInfo(My.Computer.FileSystem.CurrentDirectory).FullName - End If - - FilePath = Me.getPath(FilePath) - Return Me.GetXml.SaveTo(FilePath, Encoding) - End Function -End Class diff --git a/ShoalShell.Legacy/ConsoleApplication/Program.vb b/ShoalShell.Legacy/ConsoleApplication/Program.vb deleted file mode 100644 index 0ae1a0032..000000000 --- a/ShoalShell.Legacy/ConsoleApplication/Program.vb +++ /dev/null @@ -1,190 +0,0 @@ -Imports Microsoft.VisualBasic.CommandLine.Reflection -Imports Microsoft.VisualBasic.ConsoleDevice.STDIO - -''' -''' The shoal program main entry. -''' -''' -Module Program - - Public Const STATUS_PREALPHA As String = "pre-alpha" - Public Const STATUS_BETA As String = "beta" - Public Const SHOAL_SHELL As String = "Shoal Shell" - - ''' - ''' Shoal主程序的欢迎文本 - ''' - ''' - ''' - ''' - Private ReadOnly Property ConsoleSplashPrintPage As String - Get - Return _ -LANS Shoal Shell [version {0} - {1}; {2}] -Copyright (c) 2014 LANS SystemsBiology Engineering Workstation. - -Shoal was developed by: xieguigang(xie.guigang@gmail.com) - - "A lot of fish in a shoal, in a gigantic scientific ocean." - -Shoal running cross-platform(Windows7/8/10, Linux/Ubuntu, OS X), and you can hybrid scripting using shoal with R/Perl -ShoalShell project source code is available on SourceForge via SVN command: - - svn checkout svn://svn.code.sf.net/p/shoal/Source/ shoal-Source. - -Commands quick guide: - - libraries - list all of the installed package for shoal shell - - library - Install a assembly library for Shoal - Usage: library <assembly_path> - The alias command for the "library" is "install" - - ? - Get the help information about the installed package or command - Usage: ? Namespace/<command name>/keyword - - ! - Attaching the external hybrid scripting language environment entry point onto Shoal - Usage: !<hybrid_script_name> - - imports - Imports the namespace from a installed package - Usage: imports namespace - - source - Calling the script file on your filesystem - Usage: source <script_file> argvs - - ver() - Display the version of Shoal - wiki() - Open the wiki page to get help information, this command required a Internet connection. - Usage: wiki() <keyword> - - q() - quit the shoal shell - -For more details help information, please visit the WIKI page on Shoal shell's SourceForge project home: sourceforge.net/projects/shoal/wiki - -Program files and source code was distributed under the GPL3 Licensed to "{3}", using license() command to view the license details. - - - End Get - End Property - - Public ReadOnly Property Configuration As Microsoft.VisualBasic.ComponentModel.Settings.Settings(Of Config) = - Config.Default - - Public Function Main() As Integer - Return GetType(CommandLines).RunCLI(Command, - AddressOf Program.ExecuteScriptFile, - AddressOf Program.ExecuteEmpty) - End Function - - Private Function ExecuteScriptFile(path As String, args As CommandLine.CommandLine) As Integer - Return Program.RunScriptFile(path, argvs:=args.ToArray) - End Function - - Private Function ExecuteEmpty() As Integer - Return Program.ScriptShellTerminal(-1, "") - End Function - - Private Function RunScriptFile(ScriptFile As String, argvs As KeyValuePair(Of String, String)()) As Integer - Using ScriptHost As Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Objects.ShellScript = - New Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Objects.ShellScript( - ShowInitializeMessage:=False, - LibraryRegistry:=Program.Configuration.TargetSettingsData.get_RegistryFile) - Return __runScriptFile(ScriptHost, ScriptFile, argvs) - End Using - End Function - - Private Function __runScriptFile(ScriptHost As Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Objects.ShellScript, - ScriptFile As String, - argvs As KeyValuePair(Of String, String)()) As Integer - - Call ScriptHost.Imports(GetType(InternalCommands)) - - For Each item In argvs - Call ScriptHost.ScriptEngineMemoryDevice.InsertOrUpdate(item.Key, item.Value) - Next - - Dim currentWork As String = My.Computer.FileSystem.CurrentDirectory - Dim work As String = FileIO.FileSystem.GetParentPath(ScriptFile) - - If String.IsNullOrEmpty(work) Then - work = "./" - End If - - My.Computer.FileSystem.CurrentDirectory = work - ScriptHost.ExceptionHandleRedirect = ScriptFile & ".ERROR.log" - Dim i = ScriptHost.EXEC(ShellScript:=FileIO.FileSystem.ReadAllText(ScriptFile)) - My.Computer.FileSystem.CurrentDirectory = currentWork - - Return i - End Function - - ''' - ''' 打开Shoal的交互终端 - ''' - ''' - ''' 空字符串表示使用配置文件之中的路径,反之使用本参数所制定的路径做出初始化路径 - ''' - Public Function ScriptShellTerminal(ListenerPort As Integer, work As String) As Integer - Dim UserName As String = If(String.IsNullOrEmpty(My.Computer.Name), "EMPTY_USER_NAME", My.Computer.Name) - - Call System.Console.WriteLine(Program.ConsoleSplashPrintPage, - My.Application.Info.Version.ToString, - STATUS_BETA, - $"{Environment.OSVersion.Platform.ToString} - {Environment.OSVersion.Version.ToString}", - UserName) - - work = If(String.IsNullOrEmpty(work), - Program.Configuration.TargetSettingsData.get_InitDirectory, - FileIO.FileSystem.GetDirectoryInfo(work).FullName) - - My.Computer.FileSystem.CreateDirectory(work) - My.Computer.FileSystem.CurrentDirectory = work - - Using ScriptEngine As Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Objects.ShellScript = - If(ListenerPort > 0, - New Scripting.ShoalShell.Runtime.Debugging.Debugger( - LibraryRegistry:=Program.Configuration.TargetSettingsData.get_RegistryFile, - DebugListenerPort:=ListenerPort, - ShowInitializeMessage:=True), - New Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Objects.ShellScript( - ShowInitializeMessage:=True, - LibraryRegistry:=Program.Configuration.TargetSettingsData.get_RegistryFile)) - Return __scriptShellTerminal(ScriptEngine, ListenerPort > 0) - End Using - End Function - - Public Function __scriptShellTerminal(ScriptEngine As Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Objects.ShellScript, - DebuggerMode As Boolean) As Integer - Call ScriptEngine.Imports(GetType(InternalCommands)) - - If DebuggerMode Then - Call __runDebugger(ScriptEngine) - Else - Call __runTerminal(ScriptEngine) - End If - - Call Console.WriteLine("[MESSAGE] Auto save shoal environment variables..." & vbCrLf & " -----> ""file:///{0}""", Program.Configuration.TargetSettingsData.FilePath) - Call Program.Configuration.TargetSettingsData.Save() - Call Console.WriteLine("[DONE!]") - - Return 0 - End Function - - Private Sub __runTerminal(ScriptEngine As Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Objects.ShellScript) - Do While True - Dim CommandLine As String = scanf("$ ") - If String.Equals(CommandLine, "q()", StringComparison.OrdinalIgnoreCase) Then - Exit Do - Else - Call ScriptEngine.EXEC(ShellScript:=CommandLine) - End If - Loop - End Sub - - Private Sub __runDebugger(ScriptEngine As Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Objects.ShellScript) - Dim Debugger = DirectCast(ScriptEngine, Scripting.ShoalShell.Runtime.Debugging.Debugger) - - Do While Not Debugger.DebuggerExit - Call Threading.Thread.Sleep(2000) - Loop - End Sub -End Module \ No newline at end of file diff --git a/ShoalShell.Legacy/InternalCommands.vb b/ShoalShell.Legacy/InternalCommands.vb deleted file mode 100644 index 3c2c320b0..000000000 --- a/ShoalShell.Legacy/InternalCommands.vb +++ /dev/null @@ -1,234 +0,0 @@ -Imports Microsoft.VisualBasic.CommandLine.Reflection -Imports System.Drawing -Imports Microsoft.VisualBasic.Scripting.EntryPointMetaData -Imports System.Runtime.CompilerServices - -''' -''' This module provides some common operation in the shoal scripting. -''' -''' -<[Namespace]("System.Extensions", Description:="This module provides some common operation in the shoal scripting.")> -Module InternalCommands - - - Public Function TrimLinux(Path As String) As Boolean - Dim s_Data As String() = System.IO.File.ReadAllLines(Path) - Dim Temp As String = String.Join(vbCr, s_Data) - Return Temp.SaveTo(Path, System.Text.Encoding.UTF8) - End Function - - ''' - ''' 批量执行指定的文件夹之中的所有Shoal脚本 - ''' - ''' - ''' - - Public Function BatchInvoke( Optional dir As String = "./", - Optional Parallel As Boolean = True) As Integer - Dim Shoal As String = ExecutablePath - Dim ScriptSource = dir.LoadSourceEntryList({"*.txt", "*.shl"}).ToArray - - If Parallel Then - Call System.Threading.Tasks.Parallel.ForEach(Of KeyValuePair(Of String, String))( - ScriptSource, - Sub(PathEntry As KeyValuePair(Of String, String)) - Call Threading.Thread.Sleep(5 * 1000) - Dim proc = Process.Start(Shoal, PathEntry.Value.CliPath) '执行脚本 - Call proc.WaitForExit() - End Sub) - Else - For Each PathEntry In ScriptSource - Dim proc = Process.Start(Shoal, PathEntry.Value.CliPath) '执行脚本 - Call Console.WriteLine($"[DEBUG {Now.ToString}] Execute task {PathEntry.Value.ToFileURL}.....") - Call proc.WaitForExit() - Next - End If - - Call Console.WriteLine("Job Done!") - Return 0 - End Function - - Public Function Invoke(Of T As Class)(obj As T, Entry As String) As Double - Dim Method = (From m In GetType(T).GetMethods(System.Reflection.BindingFlags.Public Or System.Reflection.BindingFlags.Instance) - Where String.Equals(m.Name, Entry) - Select m).ToArray.FirstOrDefault - If Method Is Nothing Then - Return -1 - Else - Call Threading.Thread.Sleep(5 * 1000) '有可能出现同一个资源被占用的情况,则可能会出错,则批量调用的时候会有一个时间差以避免这个错误 - Dim sw = Stopwatch.StartNew - Call Method.Invoke(obj, Nothing) - Return sw.ElapsedMilliseconds - End If - End Function - - - Public Function Beep() As Integer - Call Console.Beep() - Return 0 - End Function - - - Public Function Sum(dat As Generic.IEnumerable(Of Double)) As Double - Return dat.Sum - End Function - - - Public Function Locate(Optional path As String = "") As String - If String.IsNullOrEmpty(path) OrElse Not FileIO.FileSystem.FileExists(path) Then - path = My.Computer.FileSystem.CurrentDirectory - End If - - path = FileIO.FileSystem.GetDirectoryInfo(path).FullName - - Call Process.Start(path) - Return path - End Function - - - Public Function Format(Expression As String, argvs As Generic.IEnumerable(Of Object)) As String - Return String.Format(Expression, argvs.ToArray) - End Function - - - Public Function WriteArray(array As Generic.IEnumerable(Of Object), saveTo As String) As Integer - Call IO.File.WriteAllLines(saveTo, (From item In array Let strValue As String = item.ToString Select strValue).ToArray) - Return array.Count - End Function - - - Public Function ReadTxt(file As String) As String - Dim strData = FileIO.FileSystem.ReadAllText(FileIO.FileSystem.GetFileInfo(file).FullName) - Return strData - End Function - - - Public Function ReadAllLines(path As String) As String() - Return IO.File.ReadAllLines(path) - End Function - - - Public Function WriteAllLines(data As Generic.IEnumerable(Of String), saveto As String) As Boolean - Call IO.File.WriteAllLines(saveto, data.ToArray) - Return True - End Function - - - Public Function _Msgbox(Message As String, Optional Title As String = "") As String - MsgBox(Message, MsgBoxStyle.Information, Title) - Return Message - End Function - - - Public Function [AND](logicals As Boolean()) As Boolean - For Each item In logicals - If item = False Then - Return False - End If - Next - - Return True - End Function - - - Public Function GreaterThan(a As Double, b As Double) As Boolean - Return a > b - End Function - - - Public Function [OR](logicals As Boolean()) As Boolean - Dim LQuery = (From item In logicals.AsParallel Where item = True Select 1).ToArray - Return Not LQuery.IsNullOrEmpty - End Function - - - Public Function [NOT](value As Boolean) As Boolean - Return Not value - End Function - - - Public Function ReadImage(path As String) As Image - Return Image.FromFile(path) - End Function - - - Public Function SplitCollection(collection As Generic.IEnumerable(Of Object), n As Integer) As Object()() - Return collection.Split(parTokens:=n) - End Function - - - Public Function Sleep(n As Integer) As Integer - Call System.Threading.Thread.Sleep(n * 1000) - Return n - End Function - - - Public Function Sequence(n As Integer) As Integer() - Return n.Sequence - End Function - - - Public Function Pause() As Integer - Call Console.WriteLine() - Call Console.WriteLine("Press any key to continute...") - Return Console.Read - End Function - - ''' - ''' 更加一般性的复制函数,当目标文件夹之中的文件数目非常的多的时候,可以使用这个函数进行批量的文件复制,只需要把文件名填入列表之中即可,大小写无关 - ''' - ''' 复制失败的文件名列表 - - Public Function SourceCopy( IDList As Generic.IEnumerable(Of String), - Source As String, - CopyTo As String) As String() - - Dim FailuredList As New List(Of String) - Dim FileList = FileIO.FileSystem.GetFiles(Source, FileIO.SearchOption.SearchTopLevelOnly).ToList - - Call FileIO.FileSystem.CreateDirectory(CopyTo) - - For Each ID As String In IDList - Dim Files = (From path As String In FileList.AsParallel Let Name As String = IO.Path.GetFileNameWithoutExtension(path) Where String.Equals(ID, Name, StringComparison.OrdinalIgnoreCase) Select path).ToArray - If Files.IsNullOrEmpty Then - Call FailuredList.Add(ID) - End If - - For Each path As String In Files - Try - Call FileIO.FileSystem.CopyFile(path, CopyTo & "/" & FileIO.FileSystem.GetFileInfo(path).Name) - Catch ex As Exception - Call Console.WriteLine(path.ToFileURL) - Call Console.WriteLine(ex.ToString) - End Try - Next - Next - - Return FailuredList.ToArray - End Function - -#Const DEBUG = 1 - -#If DEBUG Then - - - Public Function TestException() As Boolean - Throw New Exception("Dont worried, this is a test for shellscript exception handler.") - End Function - - - Public Function OverloadsTest(n As Integer) As Integer - Call Console.WriteLine(Integer.MaxValue) - Call Console.WriteLine(RandomDouble() * n) - Return Integer.MaxValue - End Function - - - Public Function OverloadsTest( s1 As String, s2 As String) As String - Call Console.WriteLine(s1) - Call Console.WriteLine(s2 & " anysdfs") - Return s1 - End Function -#End If - -End Module diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/BuildInModules/Array.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/BuildInModules/Array.vb deleted file mode 100644 index 18d65beb9..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/BuildInModules/Array.vb +++ /dev/null @@ -1,332 +0,0 @@ -Imports Microsoft.VisualBasic.CommandLine.Reflection -Imports System.Text.RegularExpressions -Imports System.Runtime.CompilerServices -Imports System.Text -Imports Microsoft.VisualBasic.Scripting.EntryPointMetaData - -Imports kyp = System.Collections.Generic.KeyValuePair(Of Object, Object) - -Namespace BuildInModules.System - - <[Namespace]("System")> - Module System - - - Public Function [GetType]( [object] As Object) As Global.System.Type - Try - Return [object].GetType - Catch ex As Exception - Return GetType(Object) - End Try - End Function - End Module - - <[Namespace]("System.Array")> - Module Array - - ''' - ''' A regex expression string that use for split the line text. - ''' - ''' - Const SplitRegxExpression As String = "[" & vbTab & ",](?=(?:[^""]|""[^""]*"")*$)" - - Public ReadOnly CastedTypes As Dictionary(Of String, Func(Of Object(), Object)) = - New Global.System.Collections.Generic.Dictionary(Of String, Global.System.Func(Of Object(), Object)) From { - {"integer", Function(argv As Object()) (From s In argv Let n = CInt(Val(s.ToString)) Select n).ToArray}, - {"double", Function(argv As Object()) (From s In argv Let n = Val(s.ToString) Select n).ToArray}, - {"string", Function(argv As Object()) (From s In argv Let str As String = s.ToString Select str).ToArray}, - {"boolean", Function(argv As Object()) (From s In argv Let b As Boolean = s.ToString.getBoolean Select b).ToArray}, - {"long", Function(argv As Object()) (From s In argv Let l As Long = CLng(Val(s.ToString)) Select l).ToArray}, - {"string()", AddressOf StringArray}} - - 'var <= $array [$index] - 'var <= $dict <$key> - - '[$index], $var => $array - '<$key>, $var => $dict/$hash - - 'dict <= <$array> - 'array <= [$dict] - - Private Function StringArray(val As Object()) As Object - If val.IsNullOrEmpty Then - Return New Object() {} - End If - Dim ref As String = CStr(val(0)) - Dim vec = ParseVector(ref) - Return {vec} - End Function - - ''' - ''' Row parsing into column tokens - ''' - ''' - ''' - - Public Function ParseVector(s As String) As String() - If String.IsNullOrEmpty(s) Then - Return New String() {} - End If - - Dim Row = Regex.Split(s, SplitRegxExpression) - - For i As Integer = 0 To Row.Count - 1 - If Not String.IsNullOrEmpty(Row(i)) Then - If Row(i).First = """"c AndAlso Row(i).Last = """"c Then - Row(i) = Mid(Row(i), 2, Len(Row(i)) - 2) - End If - End If - Next - - Return Row - End Function - - - Public Function get_Counts(Collection As Generic.IEnumerable(Of Object)) As Integer - If Collection.IsNullOrEmpty Then - Return 0 - Else - Return Collection.Count - End If - End Function - - - Public Function get_Item(collection As Generic.IEnumerable(Of Object), index As Integer) As Object - If collection.IsNullOrEmpty OrElse index > collection.Count - 1 Then - Return Nothing - Else - Return collection(index) - End If - End Function - - Const INDEXER_DICTIONARY As String = "<$?.+?>,?" - Const INDEXER_ARRAY As String = "\[\$?.+?\],?" - - - Public Function CreateList(obj As Object) As IEnumerable - Dim TypeID As Type = obj.GetType - Dim Array = Global.System.Array.CreateInstance(TypeID, 1) - Call Array.SetValue(obj, index:=0) - - Return Array - End Function - - - Public Function CreateHashTable() As Hashtable - Return New Hashtable - End Function - - ' [$Collection] <= element - - ''' - ''' 向目标集合之中添加一个元素 - ''' - ''' - ''' - ''' - Public Function AppendCollection(Collection As Object, element As Object) As IEnumerable - - If Collection Is Nothing Then - Throw New Exception($"Target {NameOf(Collection)} data is null value!!!") - End If - - Try - Return InternalAppendCollection(Collection, element) - Catch ex As Exception - Throw New Exception($"Target {NameOf(Collection)} maybe it is not a valid collection type!" & vbCrLf & vbCrLf & ex.ToString) - End Try - - End Function - - Private Function InternalAppendCollection(Collection As IEnumerable, element As Object) As IEnumerable - Dim ElementType = (From item In (From obj In Collection.AsParallel Select typeID = obj.GetType Group By typeID Into Count).ToArray Select item Order By item.Count Descending).ToArray.First.typeID - Dim IListType = GetType(List(Of )).MakeGenericType({ElementType}) - Dim IListInit = Activator.CreateInstance(IListType) - Dim IList = DirectCast(IListInit, IList) - - For Each elementItem In Collection - Call IList.Add(elementItem) - Next - - Call Console.WriteLine($"[DEBUG {Now.ToString}] {NameOf(element)}:= { element} //{element.GetType.FullName }") - Call IList.Add(element) - - Return IList - End Function - - Public Function set_Item(expression As String, [object] As String, memory As ShoalShell.Runtime.Objects.I_MemoryManagementDevice) As Boolean - Dim index As String = Regex.Match(expression, INDEXER_ARRAY).Value - - If Not String.IsNullOrEmpty(index) Then '从集合之中按照下标取元素 - Dim value As String = expression.Replace(index, "").Trim.GetString("""") - index = Mid(index, 2, Len(index) - 3) - Return set_ArrayItem(index, value, [object], memory) - End If - - index = Regex.Match(expression, INDEXER_DICTIONARY).Value - - If Not String.IsNullOrEmpty(index) Then '从字典之中按照关键词取元素 - Dim value As String = expression.Replace(index, "").Trim.GetString("""") - index = Mid(index, 2, Len(index) - 3) - Return set_DictItem(index, value, [object], memory) - Else '无法获取到索引值,则认为语法错误 - Throw New ShoalShell.Runtime.Objects.ObjectModels.Exceptions.SyntaxErrorException("Unable to get the collection indexer!") - End If - End Function - - Public Function set_ArrayItem(index As String, value As String, [object] As String, memory As ShoalShell.Runtime.Objects.I_MemoryManagementDevice) As Boolean - Dim idx As Object = memory.TryGetValue(index) - Dim var As Object = memory.TryGetValue(value) - Dim collection As Object() = Object2Collection(memory.TryGetValue([object])) - Dim i As Integer = Val(If(idx Is Nothing, 0, idx.ToString)) - - If collection.Count - 1 < i Then - ReDim Preserve collection(i) - End If - - collection(i) = var - Call memory.SetValue(Mid([object], 2), collection) - - Return True - End Function - - Public Function set_DictItem(index As String, value As String, [object] As String, memory As ShoalShell.Runtime.Objects.I_MemoryManagementDevice) As Boolean - Dim idx As Object = memory.TryGetValue(index) - Dim var As Object = memory.TryGetValue(value) - Dim collection = DirectCast(memory.TryGetValue([object]), IDictionary) - - If collection.Contains(idx) Then - Call collection.Remove(idx) - End If - Call collection.Add(idx, var) - - Return True - End Function - - ''' - ''' 字典和集合的元素获取方法统一从这里开始 - ''' - ''' - ''' - ''' - ''' - Public Function get_Item(script As String, Memory As ShoalShell.Runtime.Objects.I_MemoryManagementDevice) As Object - Dim Index As String = Regex.Match(script, INDEXER_ARRAY).Value - - If Not String.IsNullOrEmpty(Index) Then '从集合之中按照下标取元素 - If String.Equals(Index, script.Trim) Then '这个是字典转换为集合的操作 - Dim value = Memory.TryGetValue(Mid(Index, 2, Len(Index) - 2).Trim) - Return ConvertDictionaryToArray(DirectCast(value, IDictionary)) - End If - - Return get_ArrayItem(script, Index, Memory) - End If - - Index = Regex.Match(script, INDEXER_DICTIONARY).Value - - If String.Equals(Index, script.Trim) Then '这个是字典转换操作 - Dim value = Memory.TryGetValue(Mid(Index, 2, Len(Index) - 2).Trim) - Return ConvertArrayToDictionary(Object2Collection(value)) - End If - - If Not String.IsNullOrEmpty(Index) Then '从字典之中按照关键词取元素 - Return get_DictItem(script, Index, Memory) - Else '无法获取到索引值,则认为语法错误 - Throw New ShoalShell.Runtime.Objects.ObjectModels.Exceptions.SyntaxErrorException("Unable to get the collection indexer!") - End If - End Function - - Public Function ConvertDictionaryToArray(dict As IDictionary) As Object - Return (From item In dict.Values Select item).ToArray - End Function - - Public Function ConvertArrayToDictionary(array As Object()) As Object - Dim dict As Hashtable = New Hashtable - Dim LQuery = (From i As Integer In array.Sequence.AsParallel Select GenerateKeyItem(array(i), i)).ToArray - - For Each item In LQuery - Call dict.Add(item.Key, item.Value) - Next - - Return dict - End Function - - Private Function GenerateKeyItem(item As Object, i As Integer) As KeyValuePair(Of Object, Object) - If item Is Nothing Then - Return New KeyValuePair(Of Object, Object)(i, item) - End If - - If Global.System.Array.IndexOf(item.GetType.GetInterfaces, GetType(KeyValuePair(Of ,))) > -1 Then - Dim kyp = DirectCast(item, KeyValuePair(Of Object, Object)) - Return New kyp(kyp.Key, kyp) - ElseIf Global.System.Array.IndexOf(item.GetType.GetInterfaces, GetType(Microsoft.VisualBasic.ComponentModel.Collection.Generic.IAccessionIdEnumerable)) > -1 Then - Dim kyp = DirectCast(item, Microsoft.VisualBasic.ComponentModel.Collection.Generic.IAccessionIdEnumerable) - Return New kyp(kyp.UniqueId, kyp) - Else - Return New kyp(i, item) - End If - End Function - - ''' - ''' 当所引用的集合为空的时候,返回空,当应用的指针为空或者下标越界的时候,返回空值 - ''' - ''' - ''' - ''' - ''' - ''' - Public Function get_ArrayItem(script As String, indexer As String, Memory As ShoalShell.Runtime.Objects.I_MemoryManagementDevice) As Object - Dim var = Memory.TryGetValue(script.Replace(indexer, "").Trim) - - If var Is Nothing Then - Return Nothing - End If - - Dim Collection As Object() = Object2Collection(var) - - indexer = Mid(indexer, 2, Len(indexer) - 2) - Dim idx As Object = Memory.TryGetValue(indexer) - Dim i As Integer = Val(If(idx Is Nothing, 0, idx.ToString)) - - If i > Collection.Count - 1 Then - Return Nothing - Else - Return Collection(i) - End If - End Function - - ''' - ''' 字符串对象会被转换为字符数组 - ''' - ''' - ''' - ''' - Private Function Object2Collection(var As Object) As Object() - If var.GetType = GetType(String) Then - Return (From c As Char In var.ToString Select CType(c, Object)).ToArray - End If - - Dim collection As IEnumerable = DirectCast(var, IEnumerable) - Return (From item In collection Select item).ToArray - End Function - - Public Function get_DictItem(script As String, key As String, Memory As ShoalShell.Runtime.Objects.I_MemoryManagementDevice) As Object - Dim var = Memory.TryGetValue(script.Replace(key, "").Trim) - - If var Is Nothing Then - Return Nothing - End If - - Dim dict = DirectCast(var, IDictionary) - - key = Mid(key, 2, Len(key) - 2) - Dim idx As Object = Memory.TryGetValue(key) - - If dict.Contains(idx) Then - Return dict(idx) - Else - Return Nothing - End If - End Function - End Module -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/BuildInModules/Cowsay.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/BuildInModules/Cowsay.vb deleted file mode 100644 index 2e715a028..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/BuildInModules/Cowsay.vb +++ /dev/null @@ -1,64 +0,0 @@ -Imports System.Text -Imports Microsoft.VisualBasic.CommandLine.Reflection -Imports Microsoft.VisualBasic.Scripting.EntryPointMetaData - -Namespace BuildInModules.System - - <[Namespace]("System")> - Module System - - - Public Function [GetType]( [object] As Object) As Global.System.Type - Try - Return [object].GetType - Catch ex As Exception - Return GetType(Object) - End Try - End Function - End Module - - Public Module CowsayTricks - - Public ReadOnly NormalCow As String = - | - | ^__^ - -- (oo)\_______ - (__)\ )\/\ - ||----W | - || || - - - Public ReadOnly DeadCow As String = - | - | ^__^ - -- (XX)\_______ - (__)\ )\/\ - ||----W | - || || - - - Public Function Cowsay(msg As String, argvs As CommandLine.CommandLine) As String - Select Case argvs("-t").ToLower - Case "dead" - msg = Msgbox(msg) & DeadCow - Case Else - msg = Msgbox(msg) & NormalCow - End Select - - Call Console.WriteLine(msg) - - Return msg - End Function - - Private Function Msgbox(msg As String) As String - Dim l = Len(msg) - Dim offset As String = New String(" ", 8) - Dim sBuilder As StringBuilder = New StringBuilder(vbCrLf, 1024) - Call sBuilder.AppendLine(offset & " " & New String("_", l + 4) & " ") - Call sBuilder.AppendLine(offset & String.Format("< {0} >", msg)) - Call sBuilder.AppendLine(offset & " " & New String("-", l + 4) & " ") - - Return sBuilder.ToString - End Function - End Module -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/BuildInModules/Threading.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/BuildInModules/Threading.vb deleted file mode 100644 index ec30dee81..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/BuildInModules/Threading.vb +++ /dev/null @@ -1,54 +0,0 @@ -Imports Microsoft.VisualBasic.CommandLine.Reflection -Imports System.Runtime.CompilerServices - -Namespace BuildInModules.System.Threading - - Public Structure ThreadingHandle - - Implements Microsoft.VisualBasic.ComponentModel.Collection.Generic.IKeyValuePairObject(Of Global.System.IAsyncResult, Global.System.Func(Of Object)) - - Public Property ThreadingInvoke As Global.System.IAsyncResult Implements ComponentModel.Collection.Generic.IKeyValuePairObject(Of IAsyncResult, Func(Of Object)).Key - Public Property [Delegate] As Global.System.Func(Of Object) Implements ComponentModel.Collection.Generic.IKeyValuePairObject(Of IAsyncResult, Func(Of Object)).Value - - Public Overrides Function ToString() As String - Return [Delegate].ToString - End Function - End Structure - - <[Namespace]("System.Threading")> - Public Module ShoalThreading - - 't <- $command -> begin_invoke - 'r <- $t -> end_invoke - - - Public Function BeginInvoke(entry As ShoalShell.Runtime.Objects.ShellScript, Operation As Object) As ThreadingHandle - Dim [Delegate] As Func(Of Object) - - If TypeOf Operation Is String Then - [Delegate] = Function() entry.InternalSourceScript(ShellScript:=Operation, parameters:=Nothing) - ElseIf TypeOf Operation Is Global.System.Action Then - [Delegate] = Function() As Object - Call DirectCast(Operation, Global.System.Action) - Return True - End Function - Else - [Delegate] = DirectCast(Operation, Func(Of Object)) - End If - - Return New ThreadingHandle With {.Delegate = [Delegate], .ThreadingInvoke = [Delegate].BeginInvoke(Nothing, Nothing)} - End Function - - - Public Function EndInvoke(handle As ThreadingHandle) As Object - Return handle.Delegate.EndInvoke(handle.ThreadingInvoke) - End Function - - - Public Function Threading(entry As ShoalShell.Runtime.Objects.ShellScript, command As String) As Boolean - Call New Global.System.Threading.Thread(Sub() Call entry.InternalSourceScript(command, Nothing)).Start() - Return True - End Function - End Module -End Namespace - diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/CommonExtensions.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/CommonExtensions.vb deleted file mode 100644 index 901ce07ec..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/CommonExtensions.vb +++ /dev/null @@ -1,70 +0,0 @@ -Imports System.Text -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Objects - -Module CommonExtensions - - ' ''' - ' ''' 为整个ShellScript提供LINQ查询支持的LINQ运行时环境 - ' ''' - ' ''' - 'Public ReadOnly LINQFramework As LINQ.Framework.LQueryFramework = New LINQ.Framework.LQueryFramework(String.Format("{0}/LINQ.Framework.TypeDef.xml", My.Application.Info.DirectoryPath)) - - Public Function GetPrintValue([Obj] As Object) As String() - Dim Type As ObjectTypes = [GetType](Obj) - If Type = ObjectTypes.Array Then - Dim DataArray = I_MemoryManagementDevice.GetArrayValue(DataSource:=DirectCast(Obj, IEnumerable)) - Dim LQuery = (From item In DataArray Let value As String = item.ToString Select value).ToArray - Return LQuery - Else - Return New String() {Obj.ToString} - End If - End Function - - Public Function CreatePrintValue(strData As String()) As String - If strData.IsNullOrEmpty Then - Return "" - End If - - Dim sBuilder As StringBuilder = - New StringBuilder("[0] " & strData.First & vbCrLf, capacity:=1024) - For i As Integer = 1 To strData.Count - 1 - Call sBuilder.AppendLine(String.Format("[{0}] {1}", i, strData(i))) - Next - - Return sBuilder.ToString - End Function - - Public Enum ObjectTypes - Value - Array - Reference - End Enum - - Private ReadOnly TYPE_IENUMERABLE As System.Type = GetType(IEnumerable) - Private ReadOnly TYPE_STRING As System.Type = GetType(String) - - Public Function [GetType](obj As Object) As ObjectTypes - Dim Type As System.Type = obj.GetType - - If IsGenericEnumerable(Type) OrElse Type.IsArray Then - Return ObjectTypes.Array - ElseIf Type.IsClass AndAlso Not Type Is TYPE_STRING Then - Return ObjectTypes.Reference - Else - Return ObjectTypes.Value - End If - End Function - - ''' - ''' 判断目标类型是否为一个Array类型 - ''' - ''' - ''' - ''' - Public Function IsGenericEnumerable(Type As Type) As Boolean - Dim IsGenericType = Type.IsGenericType - Dim p = Array.IndexOf(Type.GetInterfaces, TYPE_IENUMERABLE) - Dim f = IsGenericType AndAlso p > -1 - Return f - End Function -End Module diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/DelegateHandlers/EntryPointHandlers/CommandMethodEntryPoint.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/DelegateHandlers/EntryPointHandlers/CommandMethodEntryPoint.vb deleted file mode 100644 index 62cbca242..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/DelegateHandlers/EntryPointHandlers/CommandMethodEntryPoint.vb +++ /dev/null @@ -1,276 +0,0 @@ -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Objects.ObjectModels.Exceptions - -Namespace DelegateHandlers.EntryPointHandlers - - ''' - ''' 命令执行的入口点,使用这个对象进行函数重载的处理 - ''' - ''' - ''' 重载函数的签名冲突的条件: - ''' 1. 具有完全一样的参数列表,即参数名和参数类型完全一致,参数的顺序对签名冲突没有影响 - ''' 2. 除了满足上面的条件,两个函数之间的返回值完全一样的时候,即可认为两个函数的签名完全一样 - ''' - Public Class CommandMethodEntryPoint - - Implements Microsoft.VisualBasic.ComponentModel.Collection.Generic.IReadOnlyAccessionId - Implements IReadOnlyList(Of SignatureSignedFunctionEntryPoint) - -#Region "Public Property & Fields" - - ''' - ''' Shoal脚本命令的函数重载 - ''' - ''' - Dim _InternalOverloadMethodEntryPointList As List(Of SignatureSignedFunctionEntryPoint) = New Generic.List(Of SignatureSignedFunctionEntryPoint) - Dim _InternalOverloadSignatureHandles As Dictionary(Of String, Microsoft.VisualBasic.Scripting.EntryPointMetaData.OverloadsSignatureHandle) = - New Dictionary(Of String, Scripting.EntryPointMetaData.OverloadsSignatureHandle) - - ''' - ''' Shoal API命令的名称 - ''' - ''' - Dim _Name As String - - Public ReadOnly Property Name As String Implements ComponentModel.Collection.Generic.IReadOnlyAccessionId.UniqueId - Get - Return _Name - End Get - End Property - - ''' - ''' 当前的这个执行入口点是否有重载的命令 - ''' - ''' - ''' - ''' - Public ReadOnly Property IsOverloaded As Boolean - Get - Return _InternalOverloadMethodEntryPointList.Count > 1 - End Get - End Property - - ''' - ''' 当没有函数重载的时候,会返回一个唯一值,返回,当具有重载函数的时候,本属性返回空,请使用方法来获取被调用的重载函数 - ''' - ''' - ''' - ''' - Public ReadOnly Property NonOverloadsMethod As Microsoft.VisualBasic.CommandLine.Reflection.EntryPoints.CommandEntryPointInfo - Get - If _InternalOverloadMethodEntryPointList.Count = 1 Then - Return _InternalOverloadMethodEntryPointList.First.EntryPoint - Else - Return Nothing - End If - End Get - End Property -#End Region - - ''' - ''' 共享方法 - ''' - ''' - ''' 如果不知道该怎么处理这个参数,请使用Nothing - ''' - Sub New(Name As String, InitMethod As System.Reflection.MethodInfo) - _Name = Name.ToLower - - If Not InitMethod Is Nothing Then - Dim [SignatureHandles] = InternalGetTypeSignatureHandles(InitMethod) - Dim EntryInfo As New Microsoft.VisualBasic.CommandLine.Reflection.CommandAttribute(Name) - Dim InitEntry As Microsoft.VisualBasic.CommandLine.Reflection.EntryPoints.CommandEntryPointInfo = New CommandLine.Reflection.EntryPoints.CommandEntryPointInfo(Invoke:=InitMethod, attribute:=EntryInfo) - - Call _InternalOverloadMethodEntryPointList.Add(New SignatureSignedFunctionEntryPoint(InitEntry, [Handles]:=SignatureHandles)) - Call InternalAddSignatureHandles(SignatureHandles) - End If - End Sub - - Sub New(Name As String, InitOverloadsMethod As System.Reflection.MethodInfo()) - _Name = Name.ToLower - - If Not InitOverloadsMethod.IsNullOrEmpty Then - For Each InitMethod In InitOverloadsMethod - Dim [SignatureHandles] = InternalGetTypeSignatureHandles(InitMethod) - Dim EntryInfo As New Microsoft.VisualBasic.CommandLine.Reflection.CommandAttribute(Name) - Dim InitEntry As Microsoft.VisualBasic.CommandLine.Reflection.EntryPoints.CommandEntryPointInfo = New CommandLine.Reflection.EntryPoints.CommandEntryPointInfo(Invoke:=InitMethod, attribute:=EntryInfo) - - Call _InternalOverloadMethodEntryPointList.Add(New SignatureSignedFunctionEntryPoint(InitEntry, [Handles]:=SignatureHandles)) - Call InternalAddSignatureHandles(SignatureHandles) - Next - End If - End Sub - - ''' - ''' 共享方法和实例方法 - ''' - ''' - ''' 如果不知道该怎么处理这个参数,请使用Nothing - ''' - Sub New(Name As String, InitEntryPoint As Microsoft.VisualBasic.CommandLine.Reflection.EntryPoints.CommandEntryPointInfo) - _Name = Name.ToLower - - If Not InitEntryPoint Is Nothing Then - Dim [SignatureHandles] = InternalGetTypeSignatureHandles(InitEntryPoint.MethodEntryPoint) - Call _InternalOverloadMethodEntryPointList.Add(New SignatureSignedFunctionEntryPoint(InitEntryPoint, [Handles]:=SignatureHandles)) - Call InternalAddSignatureHandles(SignatureHandles) - End If - End Sub - - ''' - ''' 相当前的执行入口点添加一个重载函数,当当前的执行入口点之中具备有两个完全相同的函数签名的入口点的时候,新的入口点会替换掉旧的入口点 - ''' - ''' - ''' - Public Sub HashAddMethodEntryPoint(MethodEntryPoint As CommandLine.Reflection.EntryPoints.CommandEntryPointInfo) - Dim SignatureHandles = InternalGetTypeSignatureHandles(MethodEntryPoint.MethodEntryPoint) - Dim SignatureSignedEntryPoint = New SignatureSignedFunctionEntryPoint(MethodEntryPoint, SignatureHandles) - Dim LQuery = (From item In Me._InternalOverloadMethodEntryPointList Where item.Equals(SignatureSignedEntryPoint) Select item).ToArray - - If Not LQuery.IsNullOrEmpty Then - Call _InternalOverloadMethodEntryPointList.Remove(LQuery.First) '当出现了两个具有完全一样的数字签名的函数的时候,新的入口点会替换掉旧的入口点 - End If - - Call _InternalOverloadMethodEntryPointList.Add(SignatureSignedEntryPoint) - Call InternalAddSignatureHandles([Handles]:=SignatureHandles) - End Sub - - Private Sub InternalAddSignatureHandles([Handles] As Microsoft.VisualBasic.Scripting.EntryPointMetaData.OverloadsSignatureHandle()) - For Each item In [Handles] - Dim Name As String = item.TypeIDBrief - If _InternalOverloadSignatureHandles.ContainsKey(Name) Then - Call _InternalOverloadSignatureHandles.Remove(Name) - End If - Call _InternalOverloadSignatureHandles.Add(Name, item) - Next - End Sub - - ''' - ''' 获取用于支持函授重载所需要的数字签名信息 - ''' - ''' - ''' - ''' - Private Shared Function InternalGetTypeSignatureHandles(EntryInfo As System.Reflection.MethodInfo) As Microsoft.VisualBasic.Scripting.EntryPointMetaData.OverloadsSignatureHandle() - Dim Assembly = EntryInfo.DeclaringType - Dim Signature As Type = GetType(Microsoft.VisualBasic.Scripting.EntryPointMetaData.OverloadsSignatureHandle) - Dim [Handles] = (From attr As Object In Assembly.GetCustomAttributes(attributeType:=Signature, inherit:=True) Select DirectCast(attr, Microsoft.VisualBasic.Scripting.EntryPointMetaData.OverloadsSignatureHandle)).ToArray - Return [Handles] - End Function - - ''' - ''' 利用参数名列表以及返回值的签名信息来获取可能被调用的重载函数 - ''' - ''' 变量名列表 - ''' 返回值的签名信息,可以为空字符串 - ''' - ''' 第一个参数可能为拓展方法的参数,则其可以与任意字符串进行匹配 - Public Function getMethodInfo(paras As Dictionary(Of String, Type), Signature As String) As CommandLine.Reflection.EntryPoints.CommandEntryPointInfo - If paras.IsNullOrEmpty Then '函数不包含有任何参数,由于包含有开关参数,故而那些逻辑值类型的函数参数都会被当作为开关参数赋值默认值False - - End If - If paras.Count = 1 AndAlso String.Equals(NameOf(ShoalShell.Interpreter.ObjectModels.Tokens.ParameterName.ParameterType.SingleParameter), paras.First.Key, StringComparison.OrdinalIgnoreCase) Then - Dim SingleParameterMethod = (From EntryPoint In Me._InternalOverloadMethodEntryPointList - Where EntryPoint.ParameterCounts = 1 AndAlso SignatureSignedFunctionEntryPoint.TypeEquals(EntryPoint.Parameters.First.Value.ParameterType, paras.First.Value) - Select EntryPoint).ToArray '在调用的时候只包含有一个参数 - '默认先查询最符合的函数 - If SingleParameterMethod.IsNullOrEmpty Then - '查找不到则会从可选参数或者开关参数入手 - SingleParameterMethod = (From EntryPoint In Me._InternalOverloadMethodEntryPointList - Where EntryPoint.FakeSingleParameter AndAlso SignatureSignedFunctionEntryPoint.TypeEquals(EntryPoint.Parameters.First.Value.ParameterType, paras.First.Value) - Select EntryPoint).ToArray - If Not SingleParameterMethod.IsNullOrEmpty Then - Return SingleParameterMethod.First.EntryPoint - Else - Throw New MethodNotFoundException(Me.Name, $"{String.Join(", ", (From obj In paras Select $"{obj.Key} As {obj.Value.FullName}").ToArray)} //{Signature}") - End If - Else - Return SingleParameterMethod.First.EntryPoint - End If - End If - - Dim LQuery = (From EntryPoint As SignatureSignedFunctionEntryPoint - In Me._InternalOverloadMethodEntryPointList - Let psigInfo = (From item In paras Select item).ToArray.ToDictionary(Function(item) item.Key, elementSelector:=Function(item) item.Value) - Select EntryPoint = EntryPoint.EntryPoint, Score = EntryPoint.Equals(psigInfo, Signature) - Order By Score Descending).ToArray '重新创建一个字典对象进行按值传递的原因是Equals操作里面会存在移除字典之中的拓展方法的参数的操作,故而按址传递会影响到第一个之后的重载方法的评分 - Dim EntryPointInfo = LQuery.First - Return EntryPointInfo.EntryPoint - End Function - - Public Overrides Function ToString() As String - If _InternalOverloadMethodEntryPointList.Count = 1 Then - Return String.Format("{0} --> {1}", Name, _InternalOverloadMethodEntryPointList.First.ToString) - Else - Return String.Format("{0} has {1} overloads...", Name, _InternalOverloadMethodEntryPointList.Count) - End If - End Function - - Public Function TryInvoke(Target As Object, argvs As Object()) As Object - Dim LQuery = (From EntryPoint As SignatureSignedFunctionEntryPoint - In Me._InternalOverloadMethodEntryPointList - Where EntryPoint.CanDelegateCalling(argvs) - Select EntryPoint - Order By EntryPoint.ParameterCounts Descending).ToArray - If LQuery.IsNullOrEmpty Then - Throw New ShoalShell.Runtime.Objects.ObjectModels.Exceptions.MethodNotFoundException(Me._Name, "") - End If - - Dim MethodInfo = LQuery.First - Dim Parameters = MethodInfo.EntryPoint.MethodEntryPoint.GetParameters - - If argvs.Count < Parameters.Count Then - Dim ChunkBuffer As Object() = New Object(Parameters.Count - 1) {} - Call Array.ConstrainedCopy(argvs, 0, ChunkBuffer, 0, argvs.Length) - For i As Integer = argvs.Length To Parameters.Count - 1 - Dim DefaultValue As Object = Parameters(i).DefaultValue - ChunkBuffer(i) = DefaultValue - Next - - argvs = ChunkBuffer - End If - - Return MethodInfo.EntryPoint.Invoke(argvs, Target) - End Function - -#Region "Implements IReadOnlyList(Of InternalGetTypeSignatureHandles(InitMethod))" - - Public Iterator Function GetEnumerator() As IEnumerator(Of SignatureSignedFunctionEntryPoint) Implements IEnumerable(Of SignatureSignedFunctionEntryPoint).GetEnumerator - For Each Item As SignatureSignedFunctionEntryPoint In _InternalOverloadMethodEntryPointList - Yield Item - Next - End Function - - ''' - ''' 当前的这个执行入口点之中的重载的函数的反射入口点的数目 - ''' - ''' - ''' - ''' - Public ReadOnly Property CountOfOverloadsCommand As Integer Implements IReadOnlyCollection(Of SignatureSignedFunctionEntryPoint).Count - Get - Return _InternalOverloadMethodEntryPointList.Count - End Get - End Property - - Default Public ReadOnly Property OverloadsMethodInfo(index As Integer) As SignatureSignedFunctionEntryPoint Implements IReadOnlyList(Of SignatureSignedFunctionEntryPoint).Item - Get - Return _InternalOverloadMethodEntryPointList(index) - End Get - End Property - - Public Iterator Function GetEnumerator1() As IEnumerator Implements IEnumerable.GetEnumerator - Yield GetEnumerator() - End Function -#End Region - - ''' - ''' 直接从命名空间之中直接调用 - ''' - ''' - ''' - ''' - Public Shared Function NamespaceDirectlyCalled(MethodInfo As System.Reflection.MethodInfo()) As CommandMethodEntryPoint - Return New CommandMethodEntryPoint("VB$AnonymousDelegate$NamespaceDirectlyCall", MethodInfo) - End Function - End Class -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/DelegateHandlers/EntryPointHandlers/EntryPointHashTable.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/DelegateHandlers/EntryPointHandlers/EntryPointHashTable.vb deleted file mode 100644 index 37e8db0f1..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/DelegateHandlers/EntryPointHandlers/EntryPointHashTable.vb +++ /dev/null @@ -1,61 +0,0 @@ -Namespace DelegateHandlers.EntryPointHandlers - - ''' - ''' Imports Command, Delegate and Hybrid Scripting Delegate - ''' - ''' - Public Class EntryPointHashTable - - ''' - ''' Key都为小写的 - ''' - ''' - Dim _InternalHashDictionary As SortedDictionary(Of String, ShoalShell.DelegateHandlers.EntryPointHandlers.CommandMethodEntryPoint) = New SortedDictionary(Of String, CommandMethodEntryPoint) - - ''' - ''' Key为小写的,Value为Key的原先的值,即没有经过ToLower方法修剪的值 - ''' - ''' - Dim _InternalKeys As Dictionary(Of String, String) = New Dictionary(Of String, String) - - Public ReadOnly Property InternalKeys As Dictionary(Of String, String) - Get - Return _InternalKeys - End Get - End Property - - Public ReadOnly Property InternalHashDictionary As SortedDictionary(Of String, ShoalShell.DelegateHandlers.EntryPointHandlers.CommandMethodEntryPoint) - Get - Return _InternalHashDictionary - End Get - End Property - - ''' - ''' - ''' - ''' 小写的 - ''' - ''' - ''' - Default Public ReadOnly Property EntryPoint(Name As String) As DelegateHandlers.EntryPointHandlers.CommandMethodEntryPoint - Get - If _InternalHashDictionary.ContainsKey(Name) Then - Return _InternalHashDictionary(Name) - Else - Return Nothing - End If - End Get - End Property - - ''' - ''' - ''' - ''' 小写的 - ''' - ''' - Public Sub InternalAddEntryPoint(CommandName As String, EntryPointInfo As DelegateHandlers.EntryPointHandlers.CommandMethodEntryPoint) - Call _InternalHashDictionary.Add(CommandName, EntryPointInfo) '挂载新的入口点 - Call _InternalKeys.Add(CommandName, EntryPointInfo.Name) - End Sub - End Class -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/DelegateHandlers/EntryPointHandlers/FunctionSignature.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/DelegateHandlers/EntryPointHandlers/FunctionSignature.vb deleted file mode 100644 index cb608f4fc..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/DelegateHandlers/EntryPointHandlers/FunctionSignature.vb +++ /dev/null @@ -1,304 +0,0 @@ -Imports System.Collections.ObjectModel -Imports System.Text -Imports Microsoft.VisualBasic.SecurityString.MD5Hash - -Namespace DelegateHandlers.EntryPointHandlers - - ''' - ''' 用于表示一个已经被签名的函数 - ''' - ''' - Public Class SignatureSignedFunctionEntryPoint - - Dim _InternalTypeSignatureValue As String - Dim _InternalEntryPoint As Microsoft.VisualBasic.CommandLine.Reflection.EntryPoints.CommandEntryPointInfo - ''' - ''' 参数列表按照从小到大排序之后计算MD5哈希值作为参数列表的数字签名 - ''' - ''' - Dim _InternalParameterSignature As String - - ''' - ''' 返回值的数字签名 - ''' - ''' - ''' - ''' - Public ReadOnly Property TypeSignature As String - Get - Return _InternalTypeSignatureValue - End Get - End Property - - Public ReadOnly Property ParameterCounts As Integer - Get - Return Me._MyParametersHash.Count - End Get - End Property - - Public ReadOnly Property EntryPoint As Microsoft.VisualBasic.CommandLine.Reflection.EntryPoints.CommandEntryPointInfo - Get - Return _InternalEntryPoint - End Get - End Property - - ''' - ''' 当参数有多个的时候,出了第一个之外,其他的参数都是可选的或者类型为逻辑值,则该函数被定义为伪单参数函数 - ''' - ''' - Public ReadOnly Property FakeSingleParameter As Boolean - Get - If Me._MyParametersHash.IsNullOrEmpty Then - Return False '函数没有参数,很明显不是单参数函数 - ElseIf Me._MyParametersHash.Count = 1 - Return False '这个是真实的单参数函数,但是我们要的是伪单参数函数 - End If - - Dim Tokens = Me._MyParametersHash.ToArray - For i As Integer = 1 To Tokens.Count - 1 '跳过第一个参数 - Dim Parameter = Tokens(i) - If Not (Parameter.Value.ParameterType.Equals(GetType(Boolean)) OrElse Parameter.Value.ParameterInfo.IsOptional) Then - Return False - End If - Next - - Return True - End Get - End Property - - ''' - ''' 参数列表按照从小到大排序之后计算MD5哈希值作为参数列表的数字签名 - ''' - ''' - ''' - ''' - Public ReadOnly Property ParameterSignature As String - Get - Return _InternalParameterSignature - End Get - End Property - - Public ReadOnly Property Parameters As ReadOnlyDictionary(Of String, ParameterWithAlias) - Get - Return _MyParametersHash - End Get - End Property - - Dim _MyParametersHash As ReadOnlyDictionary(Of String, ParameterWithAlias) - ''' - ''' 非可选参数的数目 - ''' - ''' - Dim _InternalNonOptionalCounts As Integer - - Public Structure ParameterWithAlias - Dim ParameterInfo As System.Reflection.ParameterInfo, [Alias] As Microsoft.VisualBasic.Scripting.EntryPointMetaData.ParameterAlias - - Public ReadOnly Property ParameterType As Type - Get - Return ParameterInfo.ParameterType - End Get - End Property - - Sub New(ParameterInfo As System.Reflection.ParameterInfo, [Alias] As Microsoft.VisualBasic.Scripting.EntryPointMetaData.ParameterAlias) - Me.ParameterInfo = ParameterInfo - Me.Alias = If([Alias] Is Nothing, New Microsoft.VisualBasic.Scripting.EntryPointMetaData.ParameterAlias(ParameterInfo.Name.ToLower), [Alias]) - End Sub - - Public Overrides Function ToString() As String - If String.IsNullOrEmpty([Alias].Description) Then - Return [Alias].Alias - Else - Return [Alias].Alias & ": " & [Alias].Description - End If - End Function - End Structure - - Sub New(EntryPoint As Microsoft.VisualBasic.CommandLine.Reflection.EntryPoints.CommandEntryPointInfo, [Handles] As Microsoft.VisualBasic.Scripting.EntryPointMetaData.OverloadsSignatureHandle()) - Call Me._InternalEntryPoint.InvokeSet(EntryPoint) - Call Me._InternalHandlesTypeSignature([Handles]) - - Dim pInfo As System.Reflection.ParameterInfo() = EntryPoint.MethodEntryPoint.GetParameters '在这里生成变量名的别名 - Dim InternalGetSigned = (From parameter As System.Reflection.ParameterInfo In pInfo - Let pAlias = Microsoft.VisualBasic.Scripting.EntryPointMetaData.ParameterAlias.GetParameterNameAlias(parameter, True) - Let Name As String = If(pAlias Is Nothing, parameter.Name, pAlias.Alias).ToLower - Select Name, parameter.ParameterType.FullName, pAlias, parameter).ToArray '这里不能够打乱原始顺序!!! - Me._InternalParameterSignature = String.Join("+", (From sign In InternalGetSigned Let strSignValue As String = sign.ToString Select strSignValue).ToArray) - - If String.IsNullOrEmpty(ParameterSignature) Then - _InternalParameterSignature = "NULL" '函数不需要任何参数 - Else - _InternalParameterSignature = GetMd5Hash(ParameterSignature) - End If - - Me._MyParametersHash = New ReadOnlyDictionary(Of String, ParameterWithAlias)( - InternalGetSigned.ToDictionary(keySelector:=Function(p) p.Name.ToLower, elementSelector:=Function(obj) New ParameterWithAlias(obj.parameter, obj.pAlias))) - Me._InternalNonOptionalCounts = (From p As KeyValuePair(Of String, ParameterWithAlias) - In _MyParametersHash - Where Not p.Value.ParameterInfo.IsOptional - Select 1).ToArray.Sum - End Sub - - Private Sub _InternalHandlesTypeSignature([Handles] As Microsoft.VisualBasic.Scripting.EntryPointMetaData.OverloadsSignatureHandle()) - If [Handles].IsNullOrEmpty Then - Me._InternalTypeSignatureValue = EntryPoint.MethodEntryPoint.ReturnType.FullName - End If - - Dim TypeSignature = (From Hwnd In [Handles] Where Hwnd.FullName = EntryPoint.MethodEntryPoint.ReturnType Select Hwnd).ToArray.FirstOrDefault - - If TypeSignature Is Nothing Then '没有定义返回值的签名,则直接使用返回值的全名 - Me._InternalTypeSignatureValue = EntryPoint.MethodEntryPoint.ReturnType.FullName - Else - Me._InternalTypeSignatureValue = TypeSignature.TypeIDBrief 'var <- [typeidbrief] function - End If - End Sub - - ''' - ''' 创建共享方法的签名实例 - ''' - ''' - ''' - Public Shared Function CreateObject(EntryPoint As System.Reflection.MethodInfo, [Handles] As Microsoft.VisualBasic.Scripting.EntryPointMetaData.OverloadsSignatureHandle()) As SignatureSignedFunctionEntryPoint - Dim EntryPointInfo As New CommandLine.Reflection.EntryPoints.CommandEntryPointInfo(New CommandLine.Reflection.CommandAttribute("VB$InternalAnonymousSharedMethod"), Invoke:=EntryPoint) - Return New SignatureSignedFunctionEntryPoint(EntryPointInfo, [Handles]) - End Function - - Public Overrides Function ToString() As String - Return String.Format("({0}) {1}", ParameterSignature, EntryPoint.ToString) - End Function - - Public Function GetDescription(DescriptionGeneration As Func(Of System.Reflection.MethodInfo, String, String)) As String - Dim sBuilder As StringBuilder = New StringBuilder(1024) - - Call sBuilder.AppendLine("[" & Me.EntryPoint.EntryPointFullName & "]" & vbCrLf) - Call sBuilder.AppendLine(DescriptionGeneration(Me.EntryPoint.MethodEntryPoint, ParameterSignature)) - - Return sBuilder.ToString - End Function - - ''' - ''' 判断两种类型是否相等 - ''' - ''' 当前的这个重载方法的参数类型 - ''' 从脚本传递进来的函数参数的类型 - ''' - ''' - Public Shared Function TypeEquals(InternalHashValue As Type, InputType As Type) As Boolean - Dim InputTypeName As String = InputType.FullName - Dim InternalHashValueTypeName As String = InternalHashValue.FullName - - If String.Equals(InternalHashValueTypeName, _InternalObjectType) Then Return True ' Object类型说明那个函数的参数可以接受任何类型 - If String.Equals(InternalHashValueTypeName, InputTypeName) Then Return True - If Not InputType.HasElementType Then Return False - If Not InternalHashValue.IsGenericType Then Return False - - InternalHashValue = InternalHashValue.GenericTypeArguments.First ' 本重载方法的这个参数的类型可能是通用的集合枚举类型的接口 - InputType = InputType.GetElementType - InputTypeName = InputType.FullName - InternalHashValueTypeName = InternalHashValue.FullName - - If String.Equals(InternalHashValueTypeName, InputTypeName) Then Return True - - ' 可能是继承类和基类型的关系 - ' 二者之间的关系只能够是脚本的参数的类型必须要继承自API参数的类型 - - Do While Not String.Equals(InputTypeName, _InternalObjectType) - If String.Equals(InternalHashValueTypeName, InputTypeName) Then - Return True - Else - InputType = InputType.BaseType - InputTypeName = InputType.FullName - End If - Loop - - Return False '最后实在没辙了,则只能够认为二者不相等 - End Function - - Private Shared ReadOnly _InternalObjectType As String = GetType(System.Object).FullName - - ''' - ''' 完全不相似的两个函数会返回0,值越高,则越有可能被用作为重载函数 - ''' - ''' - ''' 本参数只是在可能发生参数列表签名冲突的时候使用,故而大多数的时候可能为空 - ''' - ''' - Public Overloads Function Equals(paras As Dictionary(Of String, Type), SignatureHandle As String) As Integer - Dim ScoreValue As Integer - - If Not paras.IsNullOrEmpty AndAlso String.Equals(paras.First.Key, Interpreter.Interpreter.EXTENSION_OPERATOR) Then '假若第一个参数为拓展方法 - '假若本函数没有参数,很明显不是想要调用的重载方法 - If Me._MyParametersHash.IsNullOrEmpty Then - Return Integer.MinValue - End If - - Dim Type = Me._MyParametersHash.First.Value.ParameterInfo.ParameterType '假若类型对应不上,很明显也不是想要的调用方法 - If TypeEquals(InternalHashValue:=Type, InputType:=paras.First.Value) Then - ScoreValue += 1 - Else - Return Integer.MinValue - End If - - Call paras.Remove(paras.First.Key) - End If - - For Each pInfo As KeyValuePair(Of String, Type) In paras - - If Me._MyParametersHash.ContainsKey(pInfo.Key) Then - - Dim Type As System.Type = - _MyParametersHash(pInfo.Key).ParameterInfo.ParameterType - ScoreValue += If(TypeEquals(Type, InputType:=pInfo.Value), 1, -10) - Else - ScoreValue -= 100 - End If - Next - - If Not String.IsNullOrEmpty(SignatureHandle) AndAlso Not String.Equals(SignatureHandle, Me.TypeSignature, StringComparison.OrdinalIgnoreCase) Then - ScoreValue -= 10 - End If - - ScoreValue -= _InternalNonOptionalCounts - - Return ScoreValue - End Function - - Public Function CanDelegateCalling(paras As Object()) As Boolean - - If _MyParametersHash.IsNullOrEmpty Then - Return True - ElseIf ParameterCounts > paras.Count Then '可能有可选参数 - Dim p As KeyValuePair(Of String, ParameterWithAlias)() = - Me._MyParametersHash.ToArray.Skip(paras.Count).ToArray - Dim LQuery = (From ParameterInfo In p Where ParameterInfo.Value.ParameterInfo.IsOptional Select ParameterInfo).ToArray - Return LQuery.Count = p.Count - End If - - Dim InternalHashList = _MyParametersHash.ToArray - - For i As Integer = 0 To paras.Count - 1 - If Not TypeEquals(InternalHashList(i).Value.ParameterType, paras(i).GetType) Then - Return True - End If - Next - - Return True - End Function - - ''' - ''' 判断两个函数入口点对象是否具有完全一样的数字签名 - ''' - ''' - ''' - ''' - Public Overrides Function Equals(obj As Object) As Boolean - If Not TypeOf (obj) Is SignatureSignedFunctionEntryPoint Then - Return False - End If - - Dim Signature As SignatureSignedFunctionEntryPoint = DirectCast(obj, SignatureSignedFunctionEntryPoint) - - Return String.Equals(ParameterSignature, Signature.ParameterSignature) AndAlso String.Equals(TypeSignature, Signature.TypeSignature, StringComparison.OrdinalIgnoreCase) - End Function - End Class -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/DelegateHandlers/EntryPointHandlers/ImportsEntryPointManager.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/DelegateHandlers/EntryPointHandlers/ImportsEntryPointManager.vb deleted file mode 100644 index 4256d74ad..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/DelegateHandlers/EntryPointHandlers/ImportsEntryPointManager.vb +++ /dev/null @@ -1,350 +0,0 @@ -Imports Microsoft.VisualBasic.Scripting.ShoalShell.DelegateHandlers.TypeLibraryRegistry -Imports Microsoft.VisualBasic.CommandLine.Reflection -Imports System.Collections.ObjectModel -Imports Microsoft.VisualBasic.CommandLine.Reflection.EntryPoints - -Namespace DelegateHandlers.EntryPointHandlers - - Public Class ImportsEntryPointManager : Inherits ShoalShell.Runtime.Objects.ObjectModels.IScriptEngineComponent - - Implements Generic.IReadOnlyCollection(Of ShoalShell.DelegateHandlers.EntryPointHandlers.CommandMethodEntryPoint) - Implements Generic.IReadOnlyDictionary(Of String, DelegateHandlers.EntryPointHandlers.CommandMethodEntryPoint) - - Dim _InternalImportsEntryPointHash As EntryPointHashTable = New EntryPointHashTable - - ''' - ''' 与所不同的是,这个存储的是Delegate,里面的命令会优先于中的命令被调用 - ''' - ''' - Dim _InternalDelegateHash As EntryPointHashTable = New EntryPointHashTable - - ''' - ''' 当切换工作目录的时候,程序会自动扫描当前工作目录之下的所有可用的脚本文件,使用文件名作为临时的函数名 - ''' - ''' - Dim _TEMP_HANDLERS As Dictionary(Of String, String) = New Dictionary(Of String, String) - - ''' - ''' 请注意,这里面的所有的对象的键值都是小写字母的 - ''' - ''' - Dim _HybridScriptingDelegates As Dictionary(Of String, String) = New Dictionary(Of String, String) - - ''' - ''' 当前的工作目录之下的脚本文件都会被当作为临时的脚本命令来使用 - ''' - ''' - ''' - ''' - Public ReadOnly Property TempShellCommands As ReadOnlyDictionary(Of String, String) - Get - Return New ReadOnlyDictionary(Of String, String)(_TEMP_HANDLERS) - End Get - End Property - - Public ReadOnly Property ImportsCommandEntryPoints As Dictionary(Of String, DelegateHandlers.EntryPointHandlers.CommandMethodEntryPoint) - Get - Dim LQuery = (From item In _InternalImportsEntryPointHash.InternalHashDictionary Select cmdName = _InternalImportsEntryPointHash.InternalKeys(item.Key), item.Value).ToArray - Return LQuery.ToDictionary(keySelector:=Function(item) item.cmdName, elementSelector:=Function(item) item.Value) - End Get - End Property - - Sub New(ScriptEngine As ShoalShell.Runtime.Objects.ShellScript, Dir As String, Disp_Inits_Message As Boolean) - Call MyBase.New(ScriptEngine) - Me._InternalEntryPointLoader = New InternalEntryPointLoader(Me) - Call InternalScanTempShell(Dir, Disp_Inits_Message) - End Sub - - ''' - ''' - ''' - ''' 大小写不敏感 - ''' - ''' - Public Function GetHybridsScript(name As String) As String - name = name.ToLower - Return _HybridScriptingDelegates(name) - End Function - - ''' - ''' 旧的脚本会被新的脚本所替换 - ''' - ''' 大小写不敏感 - ''' - ''' - Public Function DeclaresHybridScripting(Name As String, script As String) As Object - Name = Name.ToLower - If _HybridScriptingDelegates.ContainsKey(Name) Then - Call _HybridScriptingDelegates.Remove(Name) - End If - - Call _HybridScriptingDelegates.Add(Name, script) - Return 0 - End Function - - ''' - ''' - ''' - ''' - ''' 假若这个命令是在初始化的时候调用的话,则使用这个参数来根据配置数据来决定是否显示程序的初始化消息 - ''' - Friend Sub InternalScanTempShell(dir As String, disp_inits_message As Boolean) - Dim ScriptFiles = FileIO.FileSystem.GetFiles(dir, FileIO.SearchOption.SearchTopLevelOnly, "*.shl") - - Call Me._TEMP_HANDLERS.Clear() - - For Each file In ScriptFiles - Dim FileName As String = FileIO.FileSystem.GetFileInfo(file).Name - FileName = Mid(FileName, 1, Len(FileName) - 4).ToLower - Call Me._TEMP_HANDLERS.Add(FileName, file) - Next - - If disp_inits_message AndAlso Not ScriptFiles.IsNullOrEmpty Then - Call Console.WriteLine("There are {0} command(s) avaliable in the current work directory ""{1}"".", ScriptFiles.Count, My.Computer.FileSystem.CurrentDirectory) - End If - End Sub - - ''' - ''' 请使用这个方法导入实例对象之中的定义的命令 - ''' - ''' - ''' - ''' - Public Function ImportsInstanceNamespace(InvokedObject As Object) As Integer - Dim Commands = (From EntryPoint As Microsoft.VisualBasic.CommandLine.Reflection.EntryPoints.CommandEntryPointInfo - In InternalAllInstanceCommands(InvokedObject.GetType) - Select EntryPoint.InvokeSet(Sub() EntryPoint.InvokeOnObject = InvokedObject)).ToList '解析出命令并连接目标实例对象与函数的执行入口点 - Return InternalMountEntryPoint(EntryPointList:=Commands) - End Function - - Protected Function InternalAllInstanceCommands(Type As Type) As List(Of Microsoft.VisualBasic.CommandLine.Reflection.EntryPoints.CommandEntryPointInfo) - Dim InternalChunkList = Microsoft.VisualBasic.CommandLine.Interpreter.GetAllCommands(Type) - Dim commandAttribute As System.Type = GetType(CommandAttribute) - Dim commandsSource = (From MethodHandle As System.Reflection.MethodInfo - In Type.GetMethods() - Select Entry = MethodHandle.GetCustomAttributes(commandAttribute, True), MethodInfo = MethodHandle).ToArray - Dim commandsInfo = (From methodInfo In commandsSource - Where Not methodInfo.Entry.IsNullOrEmpty - Let commandInfo = New CommandEntryPointInfo(TryCast(methodInfo.Entry.First, CommandAttribute), methodInfo.MethodInfo) - Select commandInfo - Order By commandInfo.Name Ascending).ToArray - Call InternalChunkList.AddRange(commandsInfo) - - Return InternalChunkList - End Function - - ''' - ''' 使用本方法导入外部命令,这样子就可以直接调用方法而不需要每一个命令行都添加模块名称了(这个方法导入的是共享方法,对于实例方法不能够通过本方法进行导入) - ''' - ''' - ''' - ''' - Public Function ImportsNamespace([Namespace] As String) As Integer - If _RuntimeEnvironment._ImportsNamespace.IndexOf([Namespace].ToLower) > -1 Then - Return 0 '已经将命名空间导入了,则跳过这个操作 - End If - - Dim Modules As KeyValuePair(Of System.Type, CommandLine.Reflection.Namespace)() - Dim LoadedModule = _RuntimeEnvironment._Interpreter._DelegateRegistry.LoadedModules.get_LoadedModule([Namespace]) - - If Not LoadedModule Is Nothing Then - [Modules] = LoadedModule._InternalOriginalAssemblys.ToArray - Else - Dim assemblyPaths As String() = _RuntimeEnvironment._Interpreter._DelegateRegistry.GetAssemblyPaths([Namespace]) - - Modules = (From item As KeyValuePair(Of CommandLine.Reflection.Namespace, Type) - In (From path As String - In assemblyPaths - Select _RuntimeEnvironment._Interpreter._DelegateRegistry._RegisteredModuleLoader.get_ModuleFromAssembly(path)).ToArray.MatrixToVector - Select New KeyValuePair(Of Type, CommandLine.Reflection.Namespace)(item.Value, item.Key)).ToArray - Modules = (From [mod] In Modules Where String.Equals([mod].Value.Namespace, [Namespace], StringComparison.OrdinalIgnoreCase) Select [mod]).ToArray - End If - - Call Console.WriteLine(" '{0}'", [Namespace]) - - Return ImportsModule(Modules) - End Function - - Public Function ImportsModule([Module] As Type) As Integer - Dim Modules = RegistryModuleLoader.GetModule([Module]) - Call Console.WriteLine(" '{0}'", Modules.First.Value.Namespace) - Return ImportsModule(Modules) - End Function - - Public Function ImportsModule([Modules] As KeyValuePair(Of System.Type, Microsoft.VisualBasic.CommandLine.Reflection.[Namespace])()) As Integer - Dim ModuleItem As ShoalShell.DelegateHandlers.TypeLibraryRegistry.RegistryNodes.Module = New RegistryNodes.Module(Modules.First.Value, Modules.First.Key) - Dim i As Integer - - For Each [Module] In Modules - -1: Call _RuntimeEnvironment._ImportsNamespace.Add([Module].Value.Namespace.ToLower) - Call _RuntimeEnvironment._EngineMemoryDevice.ImportsConstant([Module].Key) '导入常量 - Call _RuntimeEnvironment.ImportsIOSupports([Module].Key) - - i += InternalMountEntryPoint(EntryPointList:=CommandLine.Interpreter.GetAllCommands([Module].Key)) - Next - - For Each Item As KeyValuePair(Of Type, Microsoft.VisualBasic.CommandLine.Reflection.Namespace) In Modules.Skip(1) - Call ModuleItem.MergeNamespace(Item.Value, Item.Key) - Next - - Call _RuntimeEnvironment.ImportsOutputHandlers(ModuleItem) - Call _RuntimeEnvironment.ImportsNewNamespace() - - Return i - End Function - - ''' - ''' 从命名空间之中导入方法 - ''' - ''' - ''' - ''' - Private Function InternalMountEntryPoint(EntryPointList As List(Of CommandLine.Reflection.EntryPoints.CommandEntryPointInfo)) As Integer - Dim i As Integer - - For Each MethodEntryPoint In EntryPointList - i += InternalMountEntryPoint(EntryPointInfo:=MethodEntryPoint, Hash:=Me._InternalImportsEntryPointHash) - Next - - Return i - End Function - - Private Shared Function InternalMountEntryPoint(EntryPointInfo As CommandLine.Reflection.EntryPoints.CommandEntryPointInfo, Hash As EntryPointHashTable) As Integer - Dim EntryPoint As DelegateHandlers.EntryPointHandlers.CommandMethodEntryPoint - Dim CommandName As String = EntryPointInfo.Name.ToLower - - If Hash.InternalHashDictionary.ContainsKey(CommandName) Then - EntryPoint = Hash(CommandName) '具有重载函数 - Else - EntryPoint = New CommandMethodEntryPoint(CommandName, InitEntryPoint:=Nothing) '没有重载函数 - Call Hash.InternalAddEntryPoint(CommandName, EntryPoint) - End If - - '向入口点之中添加新的执行入口点 - Try - Call EntryPoint.HashAddMethodEntryPoint(EntryPointInfo) - Catch ex As Exception -#Const DEBUG = 0 -#If DEBUG Then - Call EntryPoint.HashAddMethodEntryPoint(EntryPointInfo) -#End If - Dim exMessage As String = EntryPointInfo.EntryPointFullName & vbCrLf & vbCrLf & ex.ToString - Throw New ShoalShell.Runtime.Objects.ObjectModels.Exceptions.InterpreterException(exMessage) - End Try - - Return 1 - End Function - - ''' - ''' 这个函数是为了Delegate和混合编程的Delegate所准备的 - ''' - ''' - ''' - ''' - Private Function InternalMountEntryPoint(EntryPoint As System.Reflection.MethodInfo) As Boolean - Dim InfoData As CommandLine.Reflection.CommandAttribute = New CommandAttribute(EntryPoint.Name) - Dim EntryPointInfo As CommandLine.Reflection.EntryPoints.CommandEntryPointInfo = New CommandEntryPointInfo(InfoData, EntryPoint) - Return InternalMountEntryPoint(EntryPointInfo, Me._InternalDelegateHash) > 0 - End Function - - ''' - ''' Delegate也可以与导入的函数产生重载 - ''' - ''' Delegate函数指针 - ''' - Public Sub DeclaresDelegate([Delegate] As ShoalShell.Interpreter.Reflection.Delegate) - Call InternalMountEntryPoint(EntryPoint:=[Delegate]) - End Sub - -#Region "Implements Generic.IReadOnlyCollection(Of ShoalShell.DelegateHandlers.EntryPointHandlers.CommandMethod)" - - Public Iterator Function GetEnumerator() As IEnumerator(Of CommandMethodEntryPoint) Implements IEnumerable(Of CommandMethodEntryPoint).GetEnumerator - For Each ItemObject In _InternalImportsEntryPointHash.InternalHashDictionary - Yield ItemObject.Value - Next - End Function - - Public ReadOnly Property Count As Integer Implements IReadOnlyCollection(Of CommandMethodEntryPoint).Count, IReadOnlyCollection(Of KeyValuePair(Of String, CommandMethodEntryPoint)).Count - Get - Return _InternalImportsEntryPointHash.InternalHashDictionary.Count - End Get - End Property - - Public Iterator Function GetEnumerator1() As IEnumerator Implements IEnumerable.GetEnumerator - Yield GetEnumerator() - End Function -#End Region - -#Region "Implements Generic.IReadOnlyDictionary(Of String, DelegateHandlers.EntryPointHandlers.CommandMethod)" - - Public Function GetEnumerator2() As IEnumerator(Of KeyValuePair(Of String, CommandMethodEntryPoint)) Implements IEnumerable(Of KeyValuePair(Of String, CommandMethodEntryPoint)).GetEnumerator - Return Me._InternalImportsEntryPointHash.InternalHashDictionary.GetEnumerator - End Function - - ''' - ''' - ''' - ''' 对大小写不敏感 - ''' - ''' - Public Function ExistsCommand(CommandName As String) As Boolean Implements IReadOnlyDictionary(Of String, CommandMethodEntryPoint).ContainsKey - CommandName = CommandName.ToLower - Return _TEMP_HANDLERS.ContainsKey(CommandName) OrElse Me._InternalDelegateHash.InternalHashDictionary.ContainsKey(CommandName) OrElse Me._InternalImportsEntryPointHash.InternalHashDictionary.ContainsKey(CommandName) - End Function - - ''' - ''' 大小写不敏感 - ''' - ''' - ''' - ''' - ''' - Default Public ReadOnly Property EntryPoint(key As String) As CommandMethodEntryPoint Implements IReadOnlyDictionary(Of String, CommandMethodEntryPoint).Item - Get - Dim value As CommandMethodEntryPoint = Nothing - Call TryGetValue(key, value) - Return value - End Get - End Property - - ''' - ''' 获取所有已经导入进来的方法的名称 - ''' - ''' - ''' - ''' - Public ReadOnly Property ImportsMethods As IEnumerable(Of String) Implements IReadOnlyDictionary(Of String, CommandMethodEntryPoint).Keys - Get - Return Me._InternalImportsEntryPointHash.InternalKeys.Values - End Get - End Property - - ''' - ''' 大小写不敏感,所以无需在进行ToLower的额外处理,临时脚本命令会优先于内部命令被调用 - ''' - ''' - ''' - ''' - ''' - Public Function TryGetValue(key As String, ByRef value As CommandMethodEntryPoint) As Boolean Implements IReadOnlyDictionary(Of String, CommandMethodEntryPoint).TryGetValue - key = key.ToLower - value = _InternalImportsEntryPointHash(key) - Return True - End Function - - Private Function __getTempShellCommand(Command As CommandLine.CommandLine) - Dim tmp_command = Me._TEMP_HANDLERS(Command.Name.ToLower) '获取临时的脚本路径 - Dim tmp_tokens As String() = {New String() {"source", tmp_command}, Command.Parameters}.MatrixToVector - Command = Microsoft.VisualBasic.CommandLine.CommandLine.Join(tmp_tokens) - Return Function() Me.ScriptEngine.Interpreter.InternalCommands.Source(Command) - End Function - - Public ReadOnly Property Values As IEnumerable(Of CommandMethodEntryPoint) Implements IReadOnlyDictionary(Of String, CommandMethodEntryPoint).Values - Get - Return _InternalImportsEntryPointHash.InternalHashDictionary.Values - End Get - End Property -#End Region - End Class -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/DelegateHandlers/EntryPointHandlers/InternalEntryPointLoader.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/DelegateHandlers/EntryPointHandlers/InternalEntryPointLoader.vb deleted file mode 100644 index 37a9f6560..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/DelegateHandlers/EntryPointHandlers/InternalEntryPointLoader.vb +++ /dev/null @@ -1,54 +0,0 @@ -Imports Microsoft.VisualBasic.CommandLine.Reflection -Imports System.Collections.ObjectModel - -Namespace DelegateHandlers.EntryPointHandlers - - Partial Class ImportsEntryPointManager - - Dim _InternalEntryPointLoader As InternalEntryPointLoader - - Public ReadOnly Property MethodLoader As InternalEntryPointLoader - Get - Return _InternalEntryPointLoader - End Get - End Property - - Public Class InternalEntryPointLoader : Inherits ShoalShell.Runtime.Objects.ObjectModels.IScriptEngineComponent - - Dim InternalManager As ImportsEntryPointManager - - Sub New(ImportsEntryPointManager As ImportsEntryPointManager) - Call MyBase.New(ImportsEntryPointManager.ScriptEngine) - InternalManager = ImportsEntryPointManager - End Sub - - ''' - ''' - ''' - ''' - ''' - ''' - Public Function GetCommand(Command As CommandLine.CommandLine) As Func(Of Object) - Dim EntryName As String = Command.Name.ToLower - - If Me.ScriptEngine._InternalEntryPointManager._TEMP_HANDLERS.ContainsKey(EntryName) Then '临时脚本命令是具有最高的优先级的 - Return Function() Me._RuntimeEnvironment.InternalSourceScript( - ShellScript:=FileIO.FileSystem.ReadAllText(InternalManager._TEMP_HANDLERS(EntryName)), - parameters:=(From p In Command.ToArray Select New KeyValuePair(Of String, Object)(p.Key, InternalManager.ScriptEngine.ScriptEngineMemoryDevice.TryGetValue(p.Value))).ToArray) - End If - - If InternalManager._InternalDelegateHash.InternalHashDictionary.ContainsKey(EntryName) Then '其次是在脚本之中创建的Delegate函数指针 - Return Function() Me._RuntimeEnvironment.Interpreter._InternalMethodInvoker.CallMethod(EntryPoint:=InternalManager._InternalDelegateHash.InternalHashDictionary(EntryName), argvs:=Command, MemoryDevice:=_RuntimeEnvironment._EngineMemoryDevice, TypeSignature:="") - End If - - If InternalManager._InternalImportsEntryPointHash.InternalHashDictionary.ContainsKey(EntryName) Then '最后才从外部程序包之中调用命令 - Dim Method As ShoalShell.DelegateHandlers.EntryPointHandlers.CommandMethodEntryPoint = - InternalManager._InternalImportsEntryPointHash.InternalHashDictionary(EntryName) - Return Function() Me._RuntimeEnvironment._Interpreter._InternalMethodInvoker.CallMethod(EntryPoint:=Method, argvs:=Command, MemoryDevice:=_RuntimeEnvironment._EngineMemoryDevice, TypeSignature:="") - Else - Throw New ShoalShell.Runtime.Objects.ObjectModels.Exceptions.MethodNotFoundException(Command.Name, "") - End If - End Function - End Class - End Class -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/DelegateHandlers/EntryPointHandlers/MethodDelegateCaller.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/DelegateHandlers/EntryPointHandlers/MethodDelegateCaller.vb deleted file mode 100644 index 3b44400e1..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/DelegateHandlers/EntryPointHandlers/MethodDelegateCaller.vb +++ /dev/null @@ -1,380 +0,0 @@ -Imports System.Text.RegularExpressions -Imports System.Text - -Namespace DelegateHandlers.EntryPointHandlers - - ''' - ''' 对于第一个参数为脚本引擎的类型,则可以在调用的时候直接忽略第一个参数 - ''' - ''' - Public Class MethodDelegateCaller : Inherits ShoalShell.Runtime.Objects.ObjectModels.IScriptEngineComponent - - ''' - ''' This method required the host memory, when this attribute was applied on a method, - ''' then the host memory object will be append to the last of the parameter value list. - ''' - ''' - - Public Class RequiredHostMemory : Inherits Attribute - - Public Overrides Function ToString() As String - Return "This method required the host memory." - End Function - End Class - - Private ReadOnly CommandLineTypeName As String = GetType(Microsoft.VisualBasic.CommandLine.CommandLine).FullName - Protected Shared ReadOnly StringTYPE As System.Type = GetType(String) - - Sub New(ScriptEngine As ShoalShell.Runtime.Objects.ShellScript) - Call MyBase.New(ScriptEngine:=ScriptEngine) - End Sub - - ''' - ''' - ''' - ''' 参数名,参数类型 - ''' - Public Function GetParameters([Delegate] As System.Reflection.MethodInfo) As KeyValuePair(Of Microsoft.VisualBasic.Scripting.EntryPointMetaData.ParameterAlias, System.Type)() - Dim Parameters As System.Reflection.ParameterInfo() = [Delegate].GetParameters - Dim LQuery = (From pInfo As System.Reflection.ParameterInfo - In Parameters - Let ap = Microsoft.VisualBasic.Scripting.EntryPointMetaData.ParameterAlias.GetParameterNameAlias(pInfo, [Default]:=Nothing) - Select New KeyValuePair(Of Microsoft.VisualBasic.Scripting.EntryPointMetaData.ParameterAlias, System.Type)(ap, pInfo.ParameterType)).ToArray ' 由于拓展方法传递参数的需要,请不要排序而将原始顺序给打乱 - Return LQuery - End Function - - Const EXCEPTION_METHOD_MISSING_REQUIRED_PARAMETER As String = "MISSING_PARAMETER:: Could not found the required parameter ""{0}""!" - - Private Shared Function InternalCallCommandLine(Parameter As System.Reflection.ParameterInfo, - _Delegate As Microsoft.VisualBasic.CommandLine.Reflection.EntryPoints.CommandEntryPointInfo, - argvs As CommandLine.CommandLine, - MemoryBlocks As Runtime.Objects.I_MemoryManagementDevice) As Object - If argvs.Parameters.IsNullOrEmpty Then - - If Parameter.IsOptional Then - Return InternalDelegateInvoke(_Delegate, New Object() {Parameter.DefaultValue}, MemoryBlocks.ScriptEngine) - Else - Dim ExMessage As String = String.Format(EXCEPTION_METHOD_MISSING_REQUIRED_PARAMETER, Parameter.Name) - Throw New ShoalShell.Runtime.Objects.ObjectModels.Exceptions.ScriptRunTimeException(ExMessage, MemoryBlocks) - End If - End If - - If argvs.Parameters.First.First = "$" Then '命令行对象的参数之中只有最基本的数据类型 - Dim strValue = MemoryBlocks.Item(Mid(argvs.Parameters.First, 2)).ToString - argvs = CommandLine.CommandLine.TryParse("call " & strValue) - ElseIf argvs.Parameters.First.First = "&" Then - Dim strValue = MemoryBlocks.GetConstant(Mid(argvs.Parameters.First, 2)).ToString - argvs = CommandLine.CommandLine.TryParse("call " & strValue) - End If - - Return InternalDelegateInvoke(_Delegate, New Object() {argvs}, MemoryBlocks.ScriptEngine) - End Function - - Private Shared Function InternalCallOnlyOneParameterMethod(Parameter As System.Reflection.ParameterInfo, - _Delegate As Microsoft.VisualBasic.CommandLine.Reflection.EntryPoints.CommandEntryPointInfo, - argvs As CommandLine.CommandLine, - MemoryDevice As Runtime.Objects.I_MemoryManagementDevice) As Object - If argvs.Parameters.IsNullOrEmpty Then - If Parameter.IsOptional Then - Return InternalDelegateInvoke(_Delegate, New Object() {Parameter.DefaultValue}, MemoryDevice.ScriptEngine) - ElseIf Parameter.ParameterType = GetType(ShoalShell.Runtime.Objects.ShellScript) Then - Return InternalDelegateInvoke(_Delegate, New Object() {MemoryDevice.ScriptEngine}, MemoryDevice.ScriptEngine) - Else - Throw New ShoalShell.Runtime.Objects.ObjectModels.Exceptions.ScriptRunTimeException(String.Format(EXCEPTION_METHOD_MISSING_REQUIRED_PARAMETER, Parameter.Name), MemoryDevice) - End If - End If - - Dim argvsValue As String = argvs.Parameters.First '只有一个参数则可以直接忽略参数名,这里得到的是参数值的表达式,对于拓展方法,这里需要额外的处理 - If String.Equals(argvsValue, Parameter.Name, StringComparison.OrdinalIgnoreCase) Then - '当第一个参数和目标函数的参数名一致的时候,则认为第二个参数才是真正想要的参数,对于其他的任意情况,任然维持原来的形式 - If argvs.Parameters.Count > 1 Then - argvsValue = argvs.Parameters(1) - End If - End If - - If String.Equals(ShoalShell.Interpreter.Interpreter.EXTENSION_OPERATOR, argvsValue) Then - argvsValue = argvs.Parameters(1) '对于拓展方法,列表之中的第二个元素才是想要的参数信息 - End If - - Dim paraValue As Object = InternalGetVariable(Parameter, argvsValue, MemoryDevice) - - Return InternalDelegateInvoke(_Delegate, New Object() {paraValue}, MemoryDevice.ScriptEngine) - End Function - - Private Shared Function InternalGetVariable(p As System.Reflection.ParameterInfo, refValue As String, MemoryDevice As ShoalShell.Runtime.Objects.I_MemoryManagementDevice) As Object - Dim pType As Type = p.ParameterType - - If pType = StringTYPE Then - refValue = MemoryDevice.FormatString(refValue) - Return refValue - End If - - If refValue.First = "$"c Then - refValue = Mid(refValue, 2) - Dim paraValue = MemoryDevice.Item(refValue) - If InternalCreateBasicValue.ContainsKey(pType) Then - paraValue = InternalCreateBasicValue(pType)(paraValue) - End If - Return paraValue - ElseIf refValue.First = "&"c Then - Return MemoryDevice.GetConstant(Mid(refValue, 2)) - ElseIf refValue.First = "*"c Then - Return MemoryDevice.ScriptEngine.InternalEntryPointManager.MethodLoader.GetCommand(Mid(refValue, 2)) - ElseIf String.Equals(refValue, "%") Then - Return MemoryDevice - Else - If InternalCreateBasicValue.ContainsKey(pType) Then - Dim objValue = InternalCreateBasicValue(pType)(refValue) - - Return objValue - Else - Return refValue - End If - End If - End Function - - Private Shared Function InternalCallMultipleParametersMethod(Parameters As KeyValuePair(Of Microsoft.VisualBasic.Scripting.EntryPointMetaData.ParameterAlias, Type)(), - _Delegate As Microsoft.VisualBasic.CommandLine.Reflection.EntryPoints.CommandEntryPointInfo, - argvs As CommandLine.CommandLine, - MemoryDevice As Runtime.Objects.I_MemoryManagementDevice) As Object - - Dim paraList As List(Of Object) = New System.Collections.Generic.List(Of Object) '在这里生成与Parameters中的元素的顺序一致的参数列表 - - If argvs.ContainsParameter(Interpreter.Interpreter.EXTENSION_OPERATOR) Then - If Parameters.First.Value = GetType(ShoalShell.Runtime.Objects.ShellScript) Then - Call argvs.Add(Parameters(1).Key.Alias, argvs(Interpreter.Interpreter.EXTENSION_OPERATOR)) - Else - Call argvs.Add(Parameters.First.Key.Alias, argvs(Interpreter.Interpreter.EXTENSION_OPERATOR)) - End If - End If - - If Parameters.First.Value = GetType(ShoalShell.Runtime.Objects.ShellScript) Then - Call paraList.Add(MemoryDevice.ScriptEngine) - Parameters = Parameters.Skip(1).ToArray - End If - - For Each p As KeyValuePair(Of Microsoft.VisualBasic.Scripting.EntryPointMetaData.ParameterAlias, Type) In Parameters - Dim valueRef As String = argvs.Item(p.Key.Alias) - - If String.IsNullOrEmpty(valueRef) Then - If p.Key.AssociatedParameterInfo.IsOptional Then - Call paraList.Add(p.Key.AssociatedParameterInfo.DefaultValue) - Continue For - End If - - '说明在用户传递进来的参数列表中找不到函数调用说需要的一个参数,则抛出错误 - Throw New ShoalShell.Runtime.Objects.ObjectModels.Exceptions.ScriptRunTimeException(String.Format(EXCEPTION_METHOD_MISSING_REQUIRED_PARAMETER, p.Key), MemoryDevice) - End If - - Call paraList.Add(InternalGetVariable(p.Key.AssociatedParameterInfo, valueRef, MemoryDevice)) - Next - - Return InternalDelegateInvoke(_Delegate, paraList.ToArray, MemoryDevice.ScriptEngine) - End Function - - ''' - ''' 这个函数处理共享方法和实例方法的调用 - ''' - ''' - ''' - ''' - ''' - ''' - Public Function CallMethod([Delegate] As Microsoft.VisualBasic.CommandLine.Reflection.EntryPoints.CommandEntryPointInfo, - argvs As CommandLine.CommandLine, - MemoryDevice As Runtime.Objects.I_MemoryManagementDevice) As Object - - Dim Parameters = GetParameters([Delegate].MethodEntryPoint) '首先得到方法的参数列表 - - If Parameters.IsNullOrEmpty Then '这个方法是不需要任何参数的 - Return InternalDelegateInvoke([Delegate], New Object() {}, Me.ScriptEngine) - ElseIf Parameters.Count = 1 AndAlso String.Equals(Parameters.First.Value.FullName, CommandLineTypeName) Then '这个方法仅包含有一个参数,并且为命令行格式,则直接传递参数 - Return InternalCallCommandLine(Parameters.First.Key.AssociatedParameterInfo, [Delegate], argvs, MemoryDevice) - ElseIf Parameters.Count = 1 Then '该方法仅包含有一个参数,则直接从内存中查找出变量然后赋值 - Return InternalCallOnlyOneParameterMethod(Parameters.First.Key.AssociatedParameterInfo, [Delegate], argvs, MemoryDevice) - Else - Return InternalCallMultipleParametersMethod(Parameters, [Delegate], argvs, MemoryDevice) - End If - End Function - - ''' - ''' 这个方法处理共享方法的调用 - ''' - ''' - ''' - ''' - ''' - ''' - Public Function CallMethod([Delegate] As System.Reflection.MethodInfo, argvs As CommandLine.CommandLine, MemoryDevice As Runtime.Objects.I_MemoryManagementDevice) As Object - Dim EntryInfo As New Microsoft.VisualBasic.CommandLine.Reflection.EntryPoints.CommandEntryPointInfo(New CommandLine.Reflection.CommandAttribute("VB$AnonymousSharedMethod"), Invoke:=[Delegate]) - Return CallMethod(EntryInfo, argvs, MemoryDevice) - End Function - - ''' - ''' - ''' - ''' - ''' - ''' - ''' 函数会根据这个值来决定重载函数的调用,可以为空字符串 - ''' - ''' - Public Function CallMethod(EntryPoint As ShoalShell.DelegateHandlers.EntryPointHandlers.CommandMethodEntryPoint, - argvs As CommandLine.CommandLine, - MemoryDevice As Runtime.Objects.I_MemoryManagementDevice, - TypeSignature As String) As Object - - If Not EntryPoint.IsOverloaded Then '目标函数不是一个重载函数,则直接调用 - Return CallMethod(EntryPoint.NonOverloadsMethod, argvs, MemoryDevice) - Else - Return InternalCallOverloadsMethod(EntryPoint, argvs, MemoryDevice, TypeSignature) - End If - End Function - - Private Function InternalCallOverloadsMethod(EntryPoint As ShoalShell.DelegateHandlers.EntryPointHandlers.CommandMethodEntryPoint, - argvs As CommandLine.CommandLine, - MemoryDevice As Runtime.Objects.I_MemoryManagementDevice, - TypeSignature As String) As Object - - Dim paraList As Dictionary(Of String, Object) = Nothing - - If argvs.Parameters.Count = 1 Then - paraList = New Dictionary(Of String, Object) - paraList.Add(Interpreter.Interpreter.EXTENSION_OPERATOR, MemoryDevice.TryGetValue(argvs.Parameters.First)) '函数可能只有一个参数 - Else - paraList = InternalGetVariable(argvs, MemoryDevice) - End If - - Dim CalledMethodEntryPoint = FindOverloadsMethod(EntryPoint, paraList, MemoryDevice, TypeSignature) - Return CallMethod(CalledMethodEntryPoint, argvs, MemoryDevice) - End Function - - Public Function FindOverloadsMethod(EntryPoint As ShoalShell.DelegateHandlers.EntryPointHandlers.CommandMethodEntryPoint, - argvs As Dictionary(Of String, Object), - MemoryDevice As Runtime.Objects.I_MemoryManagementDevice, - TypeSignature As String) As CommandLine.Reflection.EntryPoints.CommandEntryPointInfo - Dim ParameterTypeSignature = (From item As KeyValuePair(Of String, Object) In argvs - Select KEY = item.Key.ToLower, - TYPE = item.Value.GetType).ToArray.ToDictionary(keySelector:=Function(item) item.KEY, elementSelector:=Function(item) item.TYPE) - Dim CalledMethodEntryPoint = EntryPoint.getMethodInfo(ParameterTypeSignature, TypeSignature) - Return CalledMethodEntryPoint - End Function - - ''' - ''' 拓展方法的函数肯定会有一个参数,并且该函数的第一个参数为拓展方法的目标参数对象 - ''' - ''' - ''' - ''' - ''' - Private Shared Function InternalGetVariable(argvs As CommandLine.CommandLine, MemoryDevice As Runtime.Objects.I_MemoryManagementDevice) As Dictionary(Of String, Object) - Dim paraDict As Dictionary(Of String, Object) = New Dictionary(Of String, Object) - Dim ExtTemp As String = "" - - If argvs.ContainsParameter(Interpreter.Interpreter.EXTENSION_OPERATOR) Then - Dim ref As String = argvs(Interpreter.Interpreter.EXTENSION_OPERATOR) - Call paraDict.Add(Interpreter.Interpreter.EXTENSION_OPERATOR, MemoryDevice.TryGetValue(ref)) - Call argvs.Remove(Interpreter.Interpreter.EXTENSION_OPERATOR) - ExtTemp = ref - - For Each p In argvs.ToArray - Dim value As Object = MemoryDevice.TryGetValue(p.Value) '获取参数引用表达式所引用的在内存设备之中的映射数据 - Call paraDict.Add(p.Key, value) - Next - - Call argvs.Add(Interpreter.Interpreter.EXTENSION_OPERATOR, ExtTemp) - Else - For Each p In argvs.ToArray - Dim value As Object = MemoryDevice.TryGetValue(p.Value) '获取参数引用表达式所引用的在内存设备之中的映射数据 - Call paraDict.Add(p.Key, value) - Next - End If - - Return paraDict - End Function - - Private Shared Function InternalDelegateInvoke(EntryPointHandle As Microsoft.VisualBasic.CommandLine.Reflection.EntryPoints.CommandEntryPointInfo, argvs As Object(), ScriptEngine As ShoalShell.Runtime.Objects.ShellScript) As Object - If EntryPointHandle.MethodEntryPoint.IsStatic Then Return EntryPointHandle.Invoke(argvs, Nothing) - - Dim Entry As System.Type = EntryPointHandle.MethodEntryPoint.DeclaringType - Dim Target As Object = If(Entry = GetType(ShoalShell.Interpreter.InternalCommands), ScriptEngine._Interpreter._InternalCommands, EntryPointHandle.InvokeOnObject) - - Return EntryPointHandle.Invoke(argvs, Target) - End Function - - ''' - ''' 基本数据类型的转换操作 - ''' - ''' - Friend Shared ReadOnly InternalCreateBasicValue As Dictionary(Of System.Type, Func(Of Object, Object)) = - New Dictionary(Of Type, Func(Of Object, Object)) From { - _ - {GetType(Long), Function(Value As Object) CLng(Val(Value.ToString))}, - {GetType(Single), Function(value As Object) CSng(Val(value.ToString))}, - {GetType(Double), Function(value As Object) Val(value.ToString)}, - {GetType(Date), Function(value As Object) CDate(value.ToString)}, - {GetType(String), Function(value As Object) value.ToString}, - {GetType(Integer), Function(value As Object) CInt(Val(value.ToString))}, - {GetType(Boolean), Function(value As Object) CBool(value.ToString)}, - {GetType(Microsoft.VisualBasic.CommandLine.CommandLine), Function(value As Object) CommandLine.CommandLine.TryParse(value.ToString)}} - - ''' - ''' Get the help information description for the target command method.(获取一个方法的详细帮助信息) - ''' - ''' - ''' - ''' - Public Function GetDescription(MethodInfo As System.Reflection.MethodInfo, Optional ParameterSignature As String = "") As String - Dim EntryInfo = DirectCast(MethodInfo.GetCustomAttributes(CommandLine.Reflection.CommandAttribute.TypeInfo, True).First, CommandLine.Reflection.CommandAttribute) - Dim ParameterInfo = MethodInfo.GetParameters - Dim sBuilder As StringBuilder = New StringBuilder(1024) - - Call sBuilder.AppendLine(String.Format(" (*IntPtr) ", MethodInfo.MethodHandle.GetFunctionPointer)) - Call sBuilder.AppendLine() - Call sBuilder.AppendLine(String.Format("Description Summary for command ""{0}""", EntryInfo.Name)) - Call sBuilder.AppendLine(String.Format("Description: {0}", If(String.IsNullOrEmpty(EntryInfo.Info), "No descript data", EntryInfo.Info))) - Call sBuilder.AppendLine(String.Format("Return: {0}", MethodInfo.ReturnType.FullName)) - - If ParameterInfo.IsNullOrEmpty Then - Call sBuilder.AppendLine(vbCrLf & "This command does not required of any parameters.") - Else - Call InternalGetParametersDescription(sBuilder:=sBuilder, - ParameterInfo:=(From pInfo As System.Reflection.ParameterInfo - In ParameterInfo - Select Microsoft.VisualBasic.Scripting.EntryPointMetaData.ParameterAlias.GetParameterNameAlias(pInfo, [Default]:=Nothing)).ToArray, - MethodEntryPoint:=MethodInfo, - ParameterSignature:=ParameterSignature) - End If - - Return sBuilder.ToString - End Function - - Private Shared Sub InternalGetParametersDescription(ByRef sBuilder As StringBuilder, ParameterInfo As Microsoft.VisualBasic.Scripting.EntryPointMetaData.ParameterAlias(), MethodEntryPoint As System.Reflection.MethodInfo, ParameterSignature As String) - Dim MaxLength As Integer = (From p In ParameterInfo Select Len(p.Alias)).ToArray.Max - Dim MaxTypeLength As Integer = (From p In ParameterInfo Select Len(p.AssociatedParameterInfo.ParameterType.FullName)).ToArray.Max - - Call sBuilder.AppendLine(vbCrLf & String.Format(" {0} Parameter(s)", ParameterInfo.Count) & If(String.IsNullOrEmpty(ParameterSignature), "", vbTab & ParameterSignature) & vbCrLf) - Call sBuilder.AppendLine(String.Format("+-ParameterName{0}-+-ParameterType-------------------------------------------------------------------------------------", - New String("-"c, If(MaxLength > Len("parametername"), MaxLength - Len("ParameterName") + 4, MaxLength)))) - For Each pEntry As Microsoft.VisualBasic.Scripting.EntryPointMetaData.ParameterAlias In ParameterInfo - Dim p = pEntry.AssociatedParameterInfo - Call sBuilder.AppendLine(String.Format(" {0}{1} {2}{3} {4}{5}", If(p.IsOptional, String.Format("[{0}]", pEntry.Alias), pEntry.Alias), - New String(" "c, MaxLength - Len(pEntry.Alias) + 10), - p.ParameterType.FullName, - New String(" ", MaxTypeLength - Len(p.ParameterType.FullName)), - If(p.IsOptional, If(p.DefaultValue Is Nothing, "= NULL", "= " & p.DefaultValue.ToString), ""), - If(String.IsNullOrEmpty(pEntry.Description), "", " // " & pEntry.Description))) - Next - - Dim ParameterDescriptions As Object() = MethodEntryPoint.GetCustomAttributes(attributeType:=GetType(Microsoft.VisualBasic.CommandLine.Reflection.ParameterDescription), inherit:=True) - - If Not ParameterDescriptions.IsNullOrEmpty Then - Call sBuilder.AppendLine(vbCrLf & vbCrLf & "Parameter detail information:" & vbCrLf) - - For Each desc As Microsoft.VisualBasic.CommandLine.Reflection.ParameterDescription In (From item In ParameterDescriptions Select DirectCast(item, Microsoft.VisualBasic.CommandLine.Reflection.ParameterDescription)) - Call sBuilder.AppendLine(desc.ToString) - Next - End If - End Sub - End Class -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/DelegateHandlers/TypeLibraryRegistry/DelegateRegistry.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/DelegateHandlers/TypeLibraryRegistry/DelegateRegistry.vb deleted file mode 100644 index e38a07fef..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/DelegateHandlers/TypeLibraryRegistry/DelegateRegistry.vb +++ /dev/null @@ -1,485 +0,0 @@ -Imports System.Text -Imports Microsoft.VisualBasic.Scripting.ShoalShell.DelegateHandlers.TypeLibraryRegistry.RegistryNodes - -Namespace DelegateHandlers.TypeLibraryRegistry - - Public Class LoadedModulesManager - - Protected _LoadedModules As Dictionary(Of String, [Module]) = New Dictionary(Of String, [Module]) - - Public Sub Add(ns As CommandLine.Reflection.Namespace, [module] As Type) - Dim Nspace = get_LoadedModule(ns.Namespace) - If Nspace Is Nothing Then - Nspace = New [Module](ns, [module]) - Call _LoadedModules.Add(ns.Namespace.ToLower, Nspace) - Else - Call Nspace.MergeNamespace(ns, [module]) - End If - End Sub - - Public Function ModuleIsLoaded(ns As String) As Boolean - Return Not get_LoadedModule(ns) Is Nothing - End Function - - Public Function get_LoadedModule(ns As String) As [Module] - Dim LQuery = (From item In _LoadedModules Where String.Equals(ns, item.Key, StringComparison.OrdinalIgnoreCase) Select item.Value).ToArray - Return LQuery.FirstOrDefault - End Function - End Class - - ''' - ''' The type registry of the external plugin module assembly, the assembly file should be a standard.NET DLL or exe which was written by VisualBasic or C#. - ''' (外部命令必须通过这个类型注册表才可以被用户调用) - ''' - ''' - - Public Class DelegateRegistry : Implements System.IDisposable - - Protected Friend _RegisteredModuleLoader As RegistryModuleLoader - Protected Friend _FilePath As String - Protected Friend _InnerList As List(Of RegistryNodes.Namespace) = New Generic.List(Of [Namespace]) - ''' - ''' 这个挂载点列表是全部被一次性加载的 - ''' - ''' - Protected Friend _HybridsScriptingEntrypoints As List(Of RegistryNodes.HybridScriptingModuleLoadEntry) = New Generic.List(Of RegistryNodes.HybridScriptingModuleLoadEntry) - Protected Friend ReadOnly _LoadedModules As LoadedModulesManager = New LoadedModulesManager - - Public Property CurrentRegister As String - - Public ReadOnly Property LoadedModules As LoadedModulesManager - Get - Return _LoadedModules - End Get - End Property - - Sub New() - CurrentRegister = My.Computer.Name - End Sub - - ''' - ''' This property list all of the module which was registered in the shoal shell. - ''' - ''' - ''' - ''' - Public Property RegisteredModules As RegistryNodes.Namespace() - Get - If _InnerList.IsNullOrEmpty Then - _InnerList = New Generic.List(Of [Namespace]) - End If - Return _InnerList.ToArray - End Get - Set(value As RegistryNodes.Namespace()) - _InnerList = value.ToList - End Set - End Property - - ''' - ''' 与外部脚本环境进行交互所需要的挂载点的注册表 - ''' - ''' - ''' - ''' - Public Property HybridsScriptingEntrypoints As RegistryNodes.HybridScriptingModuleLoadEntry() - Get - Return _HybridsScriptingEntrypoints.ToArray - End Get - Set(value As RegistryNodes.HybridScriptingModuleLoadEntry()) - If value.IsNullOrEmpty Then - _HybridsScriptingEntrypoints = New Generic.List(Of HybridScriptingModuleLoadEntry) - Else - _HybridsScriptingEntrypoints = value.ToList - End If - End Set - End Property - - Public ReadOnly Property IsEmpty As Boolean - Get - Return Me.HybridsScriptingEntrypoints.IsNullOrEmpty AndAlso Me.RegisteredModules.IsNullOrEmpty - End Get - End Property - - Public Function GetMethod(assemblyName As String, cmdName As String, hostMemoryDevice As Runtime.Objects.I_MemoryManagementDevice) As System.Reflection.MethodInfo() - Dim [Module] = TryGetModule(assemblyName.ToLower, hostMemoryDevice) - Dim Method = [Module].Item(cmdName) - Return Method - End Function - - ''' - ''' 返回错误的插件模块的数目 - ''' - ''' - ''' - Public Function CheckForLibraryConsists(showMessage As Boolean) As Integer - If showMessage Then - Call Console.WriteLine("Checking for the missing plugins....") - End If - - Dim LQuery = (From nsEntry As RegistryNodes.Namespace - In Me.RegisteredModules - Let modPathList As String() = (From mldEntry As DelegateHandlers.TypeLibraryRegistry.RegistryNodes.ModuleLoadEntry - In nsEntry.Entries - Let path As String = Internal_getFullPath(mldEntry.AssemblyPath) - Where Not FileIO.FileSystem.FileExists(path) - Select path).ToArray - Where Not modPathList.IsNullOrEmpty - Select nsID = nsEntry.ModuleName, modPathList).ToList - Call LQuery.AddRange((From hyLdEntry As DelegateHandlers.TypeLibraryRegistry.RegistryNodes.HybridScriptingModuleLoadEntry - In Me.HybridsScriptingEntrypoints - Let path As String = Internal_getFullPath(hyLdEntry.AssemblyPath) - Where Not FileIO.FileSystem.FileExists(path) - Select nsID = hyLdEntry.EntryId, modPathList = New String() {path}).ToArray) - - If LQuery.IsNullOrEmpty Then - If showMessage Then - Call Console.WriteLine("None missing plugins, all good to go!") - End If - - Return 0 - End If - - If Not showMessage Then - Return LQuery.Count - End If - - Dim sBuilder As StringBuilder = New StringBuilder(2048) - - For Each Entry In LQuery - For Each path In Entry.modPathList - Call sBuilder.AppendLine($"[DEBUG] Plugin module is missing ({Entry.nsID}) {path.ToFileURL}!!!") - Next - Next - - Call Console.WriteLine(sBuilder.ToString) - Call Console.WriteLine($"There are {LQuery.Count } plugin modules was missing, if you have move the location of the plugins module show upon, please registered again...") - Return LQuery.Count - End Function - - Const TYPE_ACCESS_EXCEPTION As String = "ASSEMBLY_MODULE_LOAD_FAILURE:: Could not load any module from a path {0}, the assembly module file maybe deleted or not a standard .NET Class library!" - - ''' - ''' 挂载一个模块 - ''' - ''' - ''' - Public Sub LoadLibrary(assemblyPath As String, hostMemoryDevice As Runtime.Objects.I_MemoryManagementDevice) - Dim [Modules] = _RegisteredModuleLoader.get_ModuleFromAssembly(AssemblyPath:=FileIO.FileSystem.GetFileInfo(assemblyPath).FullName) - -EXCEPTION_HANDLER: - If [Modules].IsNullOrEmpty Then - Throw New TypeAccessException(String.Format(TYPE_ACCESS_EXCEPTION, assemblyPath)) - Else - For Each [Module] In Modules - - If Not String.IsNullOrEmpty([Module].Key.Namespace) Then - Call Console.WriteLine("Load registered plugin module '{0}'; @""{1}""", [Module].Key.Namespace, assemblyPath) - Call _LoadedModules.Add([Module].Key, [Module].Value) '动态挂载模块 - Call hostMemoryDevice.ImportsConstant([Module].Value) '导入模块之中所定义的常数 - End If - Next - End If - End Sub - - Public Function TryGetModule(assemblyName As String, hostMemoryDevice As Runtime.Objects.I_MemoryManagementDevice) As [Module] - If _LoadedModules.ModuleIsLoaded(assemblyName) Then Return _LoadedModules.get_LoadedModule(assemblyName) - - Dim AssemblyPathList As String() = GetAssemblyPaths(assemblyName) - Dim [Modules] = (From path As String In AssemblyPathList Select _RegisteredModuleLoader.get_ModuleFromAssembly(path)).ToArray.MatrixToVector - -EXCEPTION_HANDLER: - If [Modules].IsNullOrEmpty Then - Throw New TypeAccessException(String.Format("ASSEMBLY_MODULE_LOAD_FAILURE:: Could not load one of the namespace module ""{0}""!" & vbCrLf & - " Path List:" & vbCrLf & - " {1}", assemblyName, String.Join(";" & vbCrLf & " ", AssemblyPathList))) - End If - - For Each [Module] In Modules - If Not String.IsNullOrEmpty([Module].Key.Namespace) Then - Call Console.WriteLine("Load registered plugin module '{0}'; @""{1}""", [Module].Value.FullName, [Module].Value.Assembly.Location) - Call _LoadedModules.Add([Module].Key, [Module].Value) '动态挂载模块 - Call hostMemoryDevice.ImportsConstant([Module].Value) '导入模块之中所定义的常数 - End If - Next - - Dim LoadModule = LoadedModules.get_LoadedModule(assemblyName) - If LoadModule.IsNullOrEmpty Then - Modules = Nothing - GoTo EXCEPTION_HANDLER - Else - Return LoadModule - End If - End Function - - Protected Friend Function GetAssemblyPaths(AssemblyName As String) As String() - Dim [Module] As RegistryNodes.Namespace = GetNamespaceModule(AssemblyName) - Dim pathList As String() = (From Entry As RegistryNodes.ModuleLoadEntry In [Module].Entries Select Internal_getFullPath(Entry.AssemblyPath) Distinct).ToArray - Return pathList - End Function - - ''' - ''' 获取目标路径的全路径,这个函数要处理相对路径和全路径 - ''' - ''' - ''' - ''' - Friend Shared Function Internal_getFullPath(path As String) As String - Dim FullPath As String = FileIO.FileSystem.GetFileInfo(path).FullName - - If Not FileIO.FileSystem.FileExists(FullPath) Then - FullPath = My.Application.Info.DirectoryPath & "/" & path '可能为相对路径 - - If Not FileIO.FileSystem.FileExists(FullPath) Then - Return path - Else - Return FullPath - End If - Else - Return FullPath - End If - End Function - - Public Sub Save() - Dim Xml As String = Me.GetXml - Call Xml.SaveTo(_FilePath) - End Sub - - Const MISSING_ASSEMBLY_TYPE As String = "MISSING_ASSEMBLY_TYPE:: Assembly module {0} is not found in the registry!" - - Public Function GetNamespaceModule(assemblyName As String) As RegistryNodes.Namespace - Dim [Modules] As RegistryNodes.Namespace() = (From nsEntry As RegistryNodes.Namespace - In RegisteredModules - Where String.Equals(assemblyName, nsEntry.ModuleName, StringComparison.OrdinalIgnoreCase) - Select nsEntry).ToArray - If Modules.IsNullOrEmpty Then - Dim ex_Msg As String = String.Format(MISSING_ASSEMBLY_TYPE, assemblyName) - Throw New MissingPrimaryKeyException(ex_Msg) - Else - Return Modules.First - End If - End Function - - Private Shared Sub InsertOrUpdateItem(Of EntryType As RegistryNodes.ModuleLoadEntry)(RegistryItem As EntryType, ByRef Registry As List(Of EntryType)) - Dim Items = (From item As EntryType In Registry Where item.Equals(Of EntryType)(RegistryItem) Select item).ToArray - - If Items.IsNullOrEmpty Then - Call Console.WriteLine("Register new assembly module: {0} ""{1}"" " & vbCrLf & - " @{0}", RegistryItem.TypeId, RegistryItem.Guid, RegistryItem.AssemblyPath) - Call Registry.Add(RegistryItem) 'INSERT - Else - Dim Entry = Items.First - Call Entry.CopyFrom(RegistryItem) 'UPDATE - Call Console.WriteLine("Update assembly module registry entry: {0} ""{1}""" & vbCrLf & - " @{0}", RegistryItem.AssemblyPath, RegistryItem.TypeId) - End If - End Sub - - Private Shared Function RegistryInternalInsertOrUpdateRegistryEntryValue(nsName As String, Registry As List(Of RegistryNodes.Namespace), RegistryItem As ModuleLoadEntry) As RegistryNodes.Namespace - Dim NamespaceEntries As RegistryNodes.Namespace() = (From nsEntry In Registry Where String.Equals(nsName, nsEntry.ModuleName, StringComparison.OrdinalIgnoreCase) Select nsEntry).ToArray - Dim RegistryEntry As RegistryNodes.Namespace - - If NamespaceEntries.IsNullOrEmpty Then - RegistryEntry = New RegistryNodes.Namespace With {.ModuleName = nsName, .Entries = New List(Of RegistryNodes.ModuleLoadEntry)} - - Call Console.WriteLine("Register new module namespace: {0}", nsName) - Call Registry.Add(RegistryEntry) 'INSERT - Call InsertOrUpdateItem(Of RegistryNodes.ModuleLoadEntry)(RegistryItem, RegistryEntry.Entries) - Else - RegistryEntry = NamespaceEntries.First 'UPDATE - - Call Console.WriteLine("Update assembly module registry entry: {0} @{1}", nsName, RegistryItem.AssemblyPath) - Call InsertOrUpdateItem(Of RegistryNodes.ModuleLoadEntry)(RegistryItem, RegistryEntry.Entries) - End If - - Return RegistryEntry - End Function - - ''' - ''' Register the external assembly module entry points for dynamic load.(注册动态调用的外部模块) - ''' - ''' - ''' 一个Dll文件之内可能会定义多个模块,当仅定义一个模块的时候,则本参数会覆盖掉模块内的名称定义,当定义有多个模块的时候,则本参数不会起任何作用,假若留空,则使用模块之中的默认值 - ''' - ''' - Public Function RegisterAssemblyModule(AssemblyPath As String, AssemblyName As String) As Boolean - Dim FileInfo = FileIO.FileSystem.GetFileInfo(AssemblyPath) - Dim Modules = Me._RegisteredModuleLoader.get_ModuleFromAssembly(FileInfo.FullName) - - If Modules.IsNullOrEmpty Then - Return False - End If - - Dim EntryPoints = InternalGetExternalInteropEntryPoints(AssemblyPath) - Dim c = Modules.First.Value.Assembly.CustomAttributes - Dim Company As String = (From item In c Where item.AttributeType = GetType(System.Reflection.AssemblyCompanyAttribute) Let value = item.ConstructorArguments.First.Value.ToString Select value).First - Dim Version As String = (From item In c Where item.AttributeType = GetType(System.Reflection.AssemblyFileVersionAttribute) Let value = item.ConstructorArguments.First.Value.ToString Select value).First - Dim FrameworkVersion As String = (From item In c Where item.AttributeType = GetType(System.Runtime.Versioning.TargetFrameworkAttribute) Let value = item.ToString Select value).First - Dim Updates As Long = FileInfo.LastWriteTime.ToBinary - - If Not EntryPoints.IsNullOrEmpty Then '注册脚本的交互挂载点 - - For Each Line In EntryPoints - Dim RegistryItem = New RegistryNodes.HybridScriptingModuleLoadEntry With - { - .Namespace = Line.Key.ScriptName, - .TypeId = Line.Value.FullName, - .EntryId = Line.Key.ScriptName, - .AssemblyPath = Internal_getRelativePath(AssemblyPath), - .Guid = Line.Value.GUID.ToString, - .Company = Company, - .Version = Version, - .FrameworkVersion = FrameworkVersion, - .UpdateTime = Updates} - Call InsertOrUpdateItem(RegistryItem, Registry:=Me._HybridsScriptingEntrypoints) - Next - End If - - If Modules.IsNullOrEmpty Then - Return False - End If - - Dim UpdateOrRegisterModule = Sub(ModuleToRegister As KeyValuePair(Of Microsoft.VisualBasic.CommandLine.Reflection.Namespace, Type)) - Dim ModuleName = If(String.IsNullOrEmpty(AssemblyName), ModuleToRegister.Key.Namespace, AssemblyName) - Dim RegistryItem As ModuleLoadEntry = New ModuleLoadEntry With - { - .Namespace = ModuleToRegister.Key.Namespace, - .TypeId = ModuleToRegister.Value.FullName, - .AssemblyPath = Internal_getRelativePath(AssemblyPath), - .Guid = ModuleToRegister.Value.GUID.ToString, - .Company = Company, - .Version = Version, - .FrameworkVersion = FrameworkVersion, - .Description = ModuleToRegister.Key.Description, - .UpdateTime = Updates} - RegistryItem.CommandHandles = (From item As CommandLine.Reflection.EntryPoints.CommandEntryPointInfo - In CommandLine.Interpreter.GetAllCommands(ModuleToRegister.Value) - Select New ShoalShell.DelegateHandlers.TypeLibraryRegistry.RegistryNodes.MethodMeta With - { - .Name = item.Name, .Description = item.Info, - .ReturnedType = item.MethodEntryPoint.ReturnType.FullName, - .Parameters = (From p - In item.MethodEntryPoint.GetParameters - Select New Microsoft.VisualBasic.ComponentModel.KeyValuePair With - { - .Key = p.Name, .Value = p.ParameterType.FullName}).ToArray}).ToArray - - Call RegistryInternalInsertOrUpdateRegistryEntryValue(ModuleName, _InnerList, RegistryItem) - End Sub - - If Modules.Count = 1 Then - Dim ModuleToRegister = Modules.First - Call UpdateOrRegisterModule(ModuleToRegister) - Else - For Each [Module] In Modules - Call UpdateOrRegisterModule([Module]) - Next - End If - - Return True - End Function - - ''' - ''' 假若目标模块文件在与程序模块是同一个文件夹之下的,则会返回相对路径,假若为不同文件夹之下的,则会返回全路径 - ''' - ''' - ''' - ''' - Private Shared Function Internal_getRelativePath(path As String) As String - Dim s1 As String = FileIO.FileSystem.GetParentPath(path) - Dim s2 As String = My.Application.Info.DirectoryPath - - If String.Equals(s1, s2) Then - Return "./" & FileIO.FileSystem.GetFileInfo(path).Name - Else - Return path - End If - End Function - - ''' - ''' 解析混合编程的脚本环境的环境入口点 - ''' - ''' 模块文件的文件路径 - ''' - ''' - Private Function InternalGetExternalInteropEntryPoints(AssemblyPath As String) As KeyValuePair(Of ShoalShell.HybridsScripting.ScriptEntryPoint, System.Type)() - Dim Assembly = System.Reflection.Assembly.LoadFrom(AssemblyPath) - Dim Types = (From Type In Assembly.DefinedTypes - Let attrs As Object() = Type.GetCustomAttributes(attributeType:=ShoalShell.HybridsScripting.ScriptEntryPoint.TypeInfo, inherit:=True) - Where Not attrs.IsNullOrEmpty - Let EntryInfo = DirectCast(attrs.First, ShoalShell.HybridsScripting.ScriptEntryPoint) - Select New KeyValuePair(Of ShoalShell.HybridsScripting.ScriptEntryPoint, System.Type)(EntryInfo, Type)).ToArray - Return Types - End Function - - ''' - ''' 默认的注册表配置文件,该文件是在与本程序同一个文件夹之下的以程序名开始的XML文件.在该文件之中包含有所有的类型注册信息 - ''' - ''' - Protected Shared ReadOnly _DefaultFile As String = String.Format("{0}/B0DC054A-A16E-4249-8C3B-E3AB1123F13C.REG".ToLower, My.Application.Info.DirectoryPath) - - ''' - ''' 默认的注册表配置文件,该文件是在与本程序同一个文件夹之下的以程序名开始的XML文件.在该文件之中包含有所有的类型注册信息 - ''' - ''' - Public Shared ReadOnly Property DefaultFile As String - Get - Return _DefaultFile - End Get - End Property - - ''' - ''' Load the registry file from a default registry file.(从默认的配置文件加载注册表) - ''' - ''' - ''' - Public Shared Function CreateDefault() As DelegateRegistry - Return New RegistryModuleLoader(_DefaultFile, New String() {})._RegistryFile - End Function - - ''' - ''' 请使用本方法或者方法进行创建,否则都将会创建失败 - ''' - ''' - ''' - ''' - Public Shared Function CreateFromFile(XmlFile As String) As DelegateRegistry - Return New RegistryModuleLoader(XmlFile, New String() {})._RegistryFile - End Function - - Public Overrides Function ToString() As String - Return _FilePath - End Function - -#Region "IDisposable Support" - Private disposedValue As Boolean ' To detect redundant calls - - ' IDisposable - Protected Overridable Sub Dispose(disposing As Boolean) - If Not Me.disposedValue Then - If disposing Then - ' TODO: dispose managed state (managed objects). - Call Me.GetXml.SaveTo(_FilePath) - End If - - ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below. - ' TODO: set large fields to null. - End If - Me.disposedValue = True - End Sub - - ' TODO: override Finalize() only if Dispose(ByVal disposing As Boolean) above has code to free unmanaged resources. - 'Protected Overrides Sub Finalize() - ' ' Do not change this code. Put cleanup code in Dispose(ByVal disposing As Boolean) above. - ' Dispose(False) - ' MyBase.Finalize() - 'End Sub - - ' This code added by Visual Basic to correctly implement the disposable pattern. - Public Sub Dispose() Implements IDisposable.Dispose - ' Do not change this code. Put cleanup code in Dispose(disposing As Boolean) above. - Dispose(True) - GC.SuppressFinalize(Me) - End Sub -#End Region - End Class -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/DelegateHandlers/TypeLibraryRegistry/RegistryModuleLoader.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/DelegateHandlers/TypeLibraryRegistry/RegistryModuleLoader.vb deleted file mode 100644 index 7b9b72c86..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/DelegateHandlers/TypeLibraryRegistry/RegistryModuleLoader.vb +++ /dev/null @@ -1,111 +0,0 @@ -Imports System.Text -Imports Microsoft.VisualBasic.Scripting.ShoalShell.DelegateHandlers.TypeLibraryRegistry.RegistryNodes - -Namespace DelegateHandlers.TypeLibraryRegistry - - Public Class RegistryModuleLoader - - Protected Friend _RegistryFile As DelegateRegistry - - ''' - ''' - ''' - ''' 注册表的文件路径 - ''' 预加载的模块名称 - ''' - Public Sub New(RegistryFile As String, PreLoadAssembly As String()) - If FileIO.FileSystem.FileExists(RegistryFile) Then - _RegistryFile = FileIO.FileSystem.ReadAllText(RegistryFile).CreateObjectFromXml(Of DelegateRegistry)(ThrowEx:=False) - If _RegistryFile Is Nothing Then _RegistryFile = InternalCreateDefaultRegistry(RegistryFile) - Else - _RegistryFile = InternalCreateDefaultRegistry(RegistryFile) - End If - - _RegistryFile._RegisteredModuleLoader = Me - _RegistryFile._FilePath = RegistryFile - - If _RegistryFile.IsEmpty Then - '安装Shoal的核心模块的内建的命名空间以及外部空间 - _RegistryFile.RegisterAssemblyModule(GetType(ShoalShell.Runtime.Objects.ShellScript).Assembly.Location, "") - _RegistryFile.RegisterAssemblyModule(My.Application.Info.DirectoryPath & "/" & My.Application.Info.AssemblyName & ".exe", "") - End If - - For Each AssemblyName As String In PreLoadAssembly - Dim AssemblyPaths As String() = _RegistryFile.GetAssemblyPaths(AssemblyName) - Dim Modules = (From path As String In AssemblyPaths Select Me.get_ModuleFromAssembly(path)).ToArray.MatrixToVector - - For Each ModuleItem In Modules - Call _RegistryFile._LoadedModules.Add(ModuleItem.Key, ModuleItem.Value) - Next - Next - - Call LoadSystemModules() - End Sub - - Private Sub LoadSystemModules() - Dim AssemblyPath As String = String.Format("{0}/{1}.exe", My.Application.Info.DirectoryPath, My.Application.Info.AssemblyName) - Dim Modules = get_ModuleFromAssembly(AssemblyPath) - For Each ModuleItem In Modules - Call _RegistryFile._LoadedModules.Add(ModuleItem.Key, ModuleItem.Value) - Next - End Sub - - Private Shared Function InternalCreateDefaultRegistry(RegistryFile As String) As DelegateRegistry - Dim _RegistryFile = New DelegateRegistry With {.RegisteredModules = New [Namespace]() {}} - _RegistryFile._FilePath = RegistryFile - - Call _RegistryFile.Save() - Return _RegistryFile - End Function - - ''' - ''' 空的Namespace属性值的Namespace对象将会被忽略 - ''' - ''' - ''' - ''' - Public Function get_ModuleFromAssembly(AssemblyPath As String) As KeyValuePair(Of Microsoft.VisualBasic.CommandLine.Reflection.[Namespace], System.Type)() - Dim Assembly = System.Reflection.Assembly.LoadFrom(AssemblyPath) - Dim Types = (From Type As System.Reflection.TypeInfo In Assembly.DefinedTypes - Let attrs As Object() = Type.GetCustomAttributes(attributeType:=Microsoft.VisualBasic.CommandLine.Reflection.[Namespace].TypeInfo, inherit:=True) - Where Not attrs.IsNullOrEmpty - Let EntryInfo = DirectCast(attrs.First, Microsoft.VisualBasic.CommandLine.Reflection.[Namespace]) - Select New KeyValuePair(Of Microsoft.VisualBasic.CommandLine.Reflection.[Namespace], System.Type)(EntryInfo, Type)).ToArray - Dim LQuery = (From item In Types Where Not String.IsNullOrEmpty(item.Key.Namespace) Select item).ToArray - Return LQuery - End Function - - Public Shared Function GetModule(Type As Type) As KeyValuePair(Of Type, Microsoft.VisualBasic.CommandLine.Reflection.[Namespace])() - Dim attrs As Object() = Type.GetCustomAttributes(attributeType:=Microsoft.VisualBasic.CommandLine.Reflection.[Namespace].TypeInfo, inherit:=True) - - If attrs.IsNullOrEmpty Then - Return Nothing - End If - - Dim EntryInfo = DirectCast(attrs.First, Microsoft.VisualBasic.CommandLine.Reflection.[Namespace]) - Dim [Module] = New KeyValuePair(Of Type, Microsoft.VisualBasic.CommandLine.Reflection.[Namespace])(Type, EntryInfo) - - If String.IsNullOrEmpty([Module].Key.Namespace) Then - Return Nothing - Else - Return New KeyValuePair(Of Type, Microsoft.VisualBasic.CommandLine.Reflection.[Namespace])() {[Module]} - End If - End Function - - ' ''' - ' ''' - ' ''' - ' ''' 必须是完整的路径字符串 - ' ''' - ' ''' - 'Public Function LoadModules(AssemblyPath As String) As Microsoft.VisualBasic.ComponentModel.Collection.Generic.KeyValuePairObject(Of CommandLine.Reflection.Namespace, Type)() - ' Dim Types = get_ModuleFromAssembly(AssemblyPath) - ' Dim LQuery = (From item As KeyValuePair(Of Microsoft.VisualBasic.CommandLine.Reflection.[Namespace], System.Type) - ' In Types - ' Select New Microsoft.VisualBasic.ComponentModel.Collection.Generic.KeyValuePairObject(Of String, [Module]) With { - ' .Key = item.Key.Namespace, - ' .Value = New [Module](item.Key, item.Value)}).ToArray - ' Return LQuery - 'End Function - End Class -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/DelegateHandlers/TypeLibraryRegistry/RegistryNodes/AssemblyModule.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/DelegateHandlers/TypeLibraryRegistry/RegistryNodes/AssemblyModule.vb deleted file mode 100644 index 10ba0b343..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/DelegateHandlers/TypeLibraryRegistry/RegistryNodes/AssemblyModule.vb +++ /dev/null @@ -1,283 +0,0 @@ -Imports System.Text - -Namespace DelegateHandlers.TypeLibraryRegistry.RegistryNodes - - ''' - ''' 一个方法的元数据 - ''' - ''' - Public Class MethodMeta : Implements I_Wiki_Handler - - Public Property Name As String - Public Property Description As String - Public Property Parameters As Microsoft.VisualBasic.ComponentModel.KeyValuePair() - Public Property ReturnedType As String - - Public Overrides Function ToString() As String - If String.IsNullOrEmpty(Description) Then - Return Name - Else - Return Name & ": " & Description - End If - End Function - - Public Function Match(keyword As String) As String Implements I_Wiki_Handler.Match - Dim Head As String = String.Format("[{0}]", keyword) - - If InStr(Name, keyword, CompareMethod.Text) > 0 Then - Head = "Function Entry: " & Name.ToLower.Replace(keyword.ToLower, Head) - ElseIf InStr(Description, keyword, CompareMethod.Text) > 0 Then - Head = Description.ToLower.Replace(keyword.ToLower, Head) - ElseIf InStr(ReturnedType, keyword, CompareMethod.Text) > 0 Then - Head = "Function Return Type: " & ReturnedType.ToLower.Replace(keyword.ToLower, Head) - Else - Dim n = MatchParameters(keyword) - - If n.IsNullOrEmpty Then - Return "" '没有匹配上任何数据 - Else - Head = String.Join(vbCrLf, (From item In n Select String.Format("{0} {1}", item.Key, item.Value).ToLower.Replace(keyword.ToLower, Head))) - End If - End If - - Return ">>>> " & Head & vbCrLf & vbCrLf & GenerateDescription() - End Function - - Public Function MatchParameters(keyword As String) As Microsoft.VisualBasic.ComponentModel.KeyValuePair() - If Parameters.IsNullOrEmpty Then - Return Nothing - End If - - Dim LQuery = (From item In Parameters - Where InStr(item.Key, keyword, CompareMethod.Text) > 0 OrElse InStr(item.Value, keyword, CompareMethod.Text) > 0 - Select item).ToArray - Return LQuery - End Function - - Public Function GenerateDescription() As String Implements I_Wiki_Handler.GenerateDescription - Dim sBuilder As StringBuilder = New StringBuilder(1024) - Call sBuilder.AppendLine("Name: " & Name) - Call sBuilder.AppendLine("Description: " & If(String.IsNullOrEmpty(Description), "This function have no description data defined.", Description)) - Call sBuilder.AppendLine("Return: " & ReturnedType) - - If Not Parameters.IsNullOrEmpty Then - Dim Max As Integer = (From item In Parameters Select Len(item.Key)).ToArray.Max - - Call sBuilder.AppendLine(vbCrLf & String.Format("Function have {0} parameters:", Parameters.Count)) - Call sBuilder.AppendLine(String.Format("-Name-{0}------Type--------------", New String("-"c, Max))) - - For Each p In Parameters - Call sBuilder.AppendLine(String.Format(" {0} {1} {2}", p.Key, New String(" "c, 6 + Max - Len(p.Key)), p.Value)) - Next - Else - Call sBuilder.AppendLine("This function doesn't required of the parameters.") - End If - - Return sBuilder.ToString - End Function - End Class - - ''' - ''' 一个命名空间对象 - ''' - ''' - - Public Class ModuleLoadEntry : Implements I_Wiki_Handler - - Public Property [Namespace] As String - Public Property Version As String - Public Property UpdateTime As Long - - Public Property AssemblyPath As String - Public Property Company As String - Public Property Guid As String - Public Property FrameworkVersion As String - Public Property TypeId As String - Public Property Description As String - - ''' - ''' 本命名空间之下的所有的可以使用的函数命令的简单介绍 - ''' - ''' - ''' - ''' - Public Property CommandHandles As MethodMeta() - - Public Function GenerateDescription() As String Implements I_Wiki_Handler.GenerateDescription - If CommandHandles.IsNullOrEmpty Then - Return String.Format("Namespace ""{0}"" have no command entry...", [Namespace]) - End If - - Dim sBuilder As StringBuilder = New StringBuilder(1024) - Dim MaxLength As Integer = (From strKey In CommandHandles Select Len(strKey.Name)).ToArray.Max - Call sBuilder.AppendLine() - - Call sBuilder.AppendLine("Assembly path: " & AssemblyPath) - Call sBuilder.AppendLine("Assembly Lib: " & TypeId) - Call sBuilder.AppendLine("Module Description: " & Description) - Call sBuilder.AppendLine() - Call sBuilder.AppendLine(vbCrLf & String.Format(" {0} Command(s)", CommandHandles.Count)) - Call sBuilder.AppendLine() - Call sBuilder.AppendLine(String.Format(" MethodEntry{0}Return Type", New String(" "c, MaxLength))) - Call sBuilder.AppendLine(String.Format("+---{0}+----------------------------------------------------", New String("-"c, 1.5 * MaxLength))) - For Each MethodEntry In CommandHandles - Call sBuilder.AppendLine(String.Format(" {0}{1} {2}", MethodEntry.Name, New String(" "c, 2 * MaxLength - Len(MethodEntry.Name)), MethodEntry.ReturnedType)) - Next - - Return sBuilder.ToString - End Function - - ''' - ''' 根据的值来查找目标,然后比较修改时间来判断时候已被更新 - ''' - ''' - ''' - Public Function IsUpdateToDate() As Boolean - Dim File = FileIO.FileSystem.GetFileInfo(AssemblyPath) - Dim ModifyTime As Long = File.LastWriteTime.ToBinary - Return ModifyTime > UpdateTime - End Function - - Public Function IsAvaliable() As Boolean - Return FileIO.FileSystem.FileExists(AssemblyPath) - End Function - - Public Overloads Function Equals(Of T As ModuleLoadEntry)(item As T) As Boolean - If Me.IsEmpty OrElse item.IsEmpty Then - Return False '无法进行比较 - End If - Return String.Equals(item.Namespace, [Namespace]) AndAlso String.Equals(item.TypeId, TypeId) - End Function - - Private ReadOnly Property IsEmpty As Boolean - Get - Return String.IsNullOrEmpty([Namespace]) OrElse String.IsNullOrEmpty(TypeId) - End Get - End Property - - Public Overrides Function ToString() As String - Return String.Format("<(""{0}"")> <== {1}", Guid, AssemblyPath) - End Function - - Public Sub CopyFrom(Of T As ModuleLoadEntry)(obj As T) - Me.Namespace = obj.[Namespace] - Me.AssemblyPath = obj.AssemblyPath - Me.Company = obj.Company - Me.FrameworkVersion = obj.FrameworkVersion - Me.Guid = obj.Guid - Me.TypeId = obj.TypeId - Me.UpdateTime = obj.UpdateTime - Me.Version = obj.Version - Me.CommandHandles = obj.CommandHandles - End Sub - - Public Function Match(keyword As String) As String Implements I_Wiki_Handler.Match - Dim Head As String = String.Format("[{0}]", keyword) - - If InStr(Company, keyword, CompareMethod.Text) > 0 Then - Head = "Company: " & Company.ToLower.Replace(keyword.ToLower, Head) - ElseIf InStr(TypeId, keyword, CompareMethod.Text) > 0 Then - Head = "TypeId: " & TypeId.ToLower.Replace(keyword.ToLower, Head) - ElseIf InStr(Description, keyword, CompareMethod.Text) > 0 Then - Head = Description.ToLower.Replace(keyword.ToLower, Head) - Else - Dim Commands As String() = MatchCommandsHandles(keyword) - - If Commands.IsNullOrEmpty Then - Return "" - Else - Head = String.Join(vbCrLf & vbCrLf, Commands) & vbCrLf & vbCrLf - Head = String.Format("Namespace ""{0}"" have {1} matche(s)...{2}{3}", [Namespace], Commands.Count, vbCrLf & vbCrLf, Head) - Return Head - End If - End If - - Return ">>>> " & Head & vbCrLf & vbCrLf & GenerateDescription() - End Function - - Public Function MatchCommandsHandles(keyword As String) As String() - Dim LQuery = (From MetaData As MethodMeta - In CommandHandles - Let result As String = MetaData.Match(keyword) - Where Not String.IsNullOrEmpty(result) - Select result).ToArray - Return LQuery - End Function - End Class - - Public Class HybridScriptingModuleLoadEntry : Inherits ModuleLoadEntry - Public Property EntryId As String - - Public Overrides Function ToString() As String - Return EntryId - End Function - End Class - - ''' - ''' The namespace is the module which contains some functional related methods. - ''' - ''' - Public Class [Namespace] : Implements I_Wiki_Handler - - Public Property ModuleName As String - ''' - ''' 这些模块都具有相同的命名空间,则在加载进入内存的时候就会被合并在一个模块之中 - ''' - ''' - ''' - ''' - Public Property Entries As List(Of ModuleLoadEntry) - - Public Overrides Function ToString() As String - Return ModuleName - End Function - - Public Function Match(keyword As String) As String Implements I_Wiki_Handler.Match - Dim Head As String = String.Format("[{0}]", keyword) - - If InStr(ModuleName, keyword, CompareMethod.Text) > 0 Then - Head = "Namespace: " & ModuleName.ToLower.Replace(keyword.ToLower, Head) - Else - Dim Entries As String() = MatchEntries(keyword) - - If Entries.IsNullOrEmpty Then - Return "" - Else - Return String.Join(vbCrLf & vbCrLf, Entries) - End If - End If - - Return ">>>> " & Head & vbCrLf & vbCrLf & GenerateDescriptions() - End Function - - Public Function MatchEntries(keyword As String) As String() - Dim LQuery = (From item In Entries Let result As String = item.Match(keyword) Where Not String.IsNullOrEmpty(result) Select result).ToArray - Return LQuery - End Function - - Public Function GenerateDescriptions() As String Implements I_Wiki_Handler.GenerateDescription - Dim sBuilder As StringBuilder = New StringBuilder(String.Format("Entry.Namespace: {0}", ModuleName)) - For Each Entry As RegistryNodes.ModuleLoadEntry In Entries - Call sBuilder.AppendLine(Entry.GenerateDescription) - Next - - Return sBuilder.ToString - End Function - End Class - - ''' - ''' Internal wiki system queriable object.(这个对象是可以接受wiki查询操作的) - ''' - ''' - Public Interface I_Wiki_Handler - - Function GenerateDescription() As String - ''' - ''' 模糊匹配并返回匹配结果,当返回空字符串的时候,则说明没有被匹配上 - ''' - ''' - ''' - ''' - Function Match(keyword As String) As String - End Interface -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/DelegateHandlers/TypeLibraryRegistry/RegistryNodes/Module.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/DelegateHandlers/TypeLibraryRegistry/RegistryNodes/Module.vb deleted file mode 100644 index 848cca1de..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/DelegateHandlers/TypeLibraryRegistry/RegistryNodes/Module.vb +++ /dev/null @@ -1,126 +0,0 @@ -Imports System.Text - -Namespace DelegateHandlers.TypeLibraryRegistry.RegistryNodes - - ''' - ''' Namespace object for the imports operations - ''' - ''' - Public Class [Module] : Inherits Microsoft.VisualBasic.CommandLine.Reflection.Namespace - Implements IReadOnlyDictionary(Of String, System.Reflection.MethodInfo()) - - Dim _InternalHashList As Dictionary(Of String, Microsoft.VisualBasic.CommandLine.Reflection.EntryPoints.CommandEntryPointInfo()) = - New Dictionary(Of String, Microsoft.VisualBasic.CommandLine.Reflection.EntryPoints.CommandEntryPointInfo()) - Protected Friend _InternalOriginalAssemblys As Dictionary(Of System.Type, CommandLine.Reflection.Namespace) - - Public Sub New(EntryInfo As Microsoft.VisualBasic.CommandLine.Reflection.[Namespace], Type As System.Type) - Call MyBase.New(EntryInfo.Namespace) - - Dim InternalGroupedCommands = (From cmdl As Microsoft.VisualBasic.CommandLine.Reflection.EntryPoints.CommandEntryPointInfo - In Microsoft.VisualBasic.CommandLine.Interpreter.GetAllCommands(Type) - Select cmdl - Group By cmdl.Name.ToLower Into Group).ToArray - For Each CommandInfo In InternalGroupedCommands - Call _InternalHashList.Add(CommandInfo.ToLower, CommandInfo.Group.ToArray) - Next - - _InternalOriginalAssemblys = New Dictionary(Of Type, CommandLine.Reflection.Namespace) From {{Type, EntryInfo}} - Description = EntryInfo.Description - End Sub - - Public ReadOnly Property OriginalAssemblys() As KeyValuePair(Of System.Type, String)() - Get - Return (From item In _InternalOriginalAssemblys Select New KeyValuePair(Of System.Type, String)(item.Key, item.Value.Description)).ToArray - End Get - End Property - - Public Function MergeNamespace(EntryInfo As Microsoft.VisualBasic.CommandLine.Reflection.[Namespace], Type As System.Type) As [Module] - Dim groupedCommands = (From cmdl In Microsoft.VisualBasic.CommandLine.Interpreter.GetAllCommands(Type) Select cmdl Group By cmdl.Name Into Group).ToArray - For Each CommandInfo In groupedCommands - Dim Name As String = CommandInfo.Name.ToLower - Dim TempBuffer = CommandInfo.Group.ToArray - - If _InternalHashList.ContainsKey(Name) Then - TempBuffer = {TempBuffer, _InternalHashList(Name)}.MatrixToVector - Call _InternalHashList.Remove(Name) - End If - Call _InternalHashList.Add(CommandInfo.Name.ToLower, TempBuffer) - Next - - Call _InternalOriginalAssemblys.Add(Type, EntryInfo) - Description &= vbCrLf & vbCrLf & EntryInfo.Description - - Return Me - End Function - - Public Overrides Function ToString() As String - Dim sBuilder As StringBuilder = New StringBuilder(1024) - For Each Item As String In _InternalHashList.Keys - Call sBuilder.AppendFormat("{0}; ", Item) - Next - Return String.Format("[{0}] {1}", [Namespace], sBuilder.ToString) - End Function - - Public Iterator Function GetEnumerator() As IEnumerator(Of KeyValuePair(Of String, System.Reflection.MethodInfo())) Implements IEnumerable(Of KeyValuePair(Of String, System.Reflection.MethodInfo())).GetEnumerator - For Each Key As String In _InternalHashList.Keys - Dim EntryPoints = (From entry In _InternalHashList(Key) Select entry.MethodEntryPoint).ToArray - Yield New KeyValuePair(Of String, System.Reflection.MethodInfo())(Key, EntryPoints) - Next - End Function - - Public ReadOnly Property Count As Integer Implements IReadOnlyCollection(Of KeyValuePair(Of String, System.Reflection.MethodInfo())).Count - Get - Return _InternalHashList.Count - End Get - End Property - - Public Function ContainsKey(key As String) As Boolean Implements IReadOnlyDictionary(Of String, System.Reflection.MethodInfo()).ContainsKey - Return _InternalHashList.ContainsKey(key.ToLower) - End Function - - ''' - ''' Gets a command entry point from the registry table using its name property. - ''' - ''' - ''' - ''' - ''' - Default Public ReadOnly Property Item(key As String) As System.Reflection.MethodInfo() Implements IReadOnlyDictionary(Of String, System.Reflection.MethodInfo()).Item - Get - Dim keyName As String = key.ToLower - - If Not _InternalHashList.ContainsKey(keyName) Then - Throw New ShoalShell.Runtime.Objects.ObjectModels.Exceptions.MethodNotFoundException(key, "") - End If - - Return (From entry As CommandLine.Reflection.EntryPoints.CommandEntryPointInfo - In _InternalHashList(keyName) - Select entry.MethodEntryPoint).ToArray - End Get - End Property - - Public ReadOnly Property Keys As IEnumerable(Of String) Implements IReadOnlyDictionary(Of String, System.Reflection.MethodInfo()).Keys - Get - Return _InternalHashList.Keys - End Get - End Property - - Public Function TryGetValue(key As String, ByRef value As System.Reflection.MethodInfo()) As Boolean Implements IReadOnlyDictionary(Of String, System.Reflection.MethodInfo()).TryGetValue - Dim CommandInfo As Microsoft.VisualBasic.CommandLine.Reflection.EntryPoints.CommandEntryPointInfo() = Nothing - Dim f As Boolean = _InternalHashList.TryGetValue(key, CommandInfo) - value = (From entry In CommandInfo Select entry.MethodEntryPoint).ToArray - - Return f - End Function - - Public ReadOnly Property Values As IEnumerable(Of System.Reflection.MethodInfo()) Implements IReadOnlyDictionary(Of String, System.Reflection.MethodInfo()).Values - Get - Return (From item In _InternalHashList.Values Select (From entry In item Select entry.MethodEntryPoint).ToArray).ToArray - End Get - End Property - - Public Iterator Function GetEnumerator1() As IEnumerator Implements IEnumerable.GetEnumerator - Yield GetEnumerator() - End Function - End Class -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/DelegateHandlers/TypeLibraryRegistry/WebServiceDelegateRegistry.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/DelegateHandlers/TypeLibraryRegistry/WebServiceDelegateRegistry.vb deleted file mode 100644 index c84fc3182..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/DelegateHandlers/TypeLibraryRegistry/WebServiceDelegateRegistry.vb +++ /dev/null @@ -1,6 +0,0 @@ -Namespace DelegateHandlers.TypeLibraryRegistry - - Public Class WebService_DelegateRegistry : Inherits DelegateRegistry - - End Class -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/Delegate.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/Delegate.vb deleted file mode 100644 index a0f81d1b4..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/Delegate.vb +++ /dev/null @@ -1,233 +0,0 @@ -Imports System.Text.RegularExpressions -Imports System.Text - -Namespace Interpreter.Reflection - - Public Class Parameter : Inherits System.Reflection.ParameterInfo - - Dim _Name As String, _Type As Type - - Sub New(pInfo As KeyValuePair(Of String, Type)) - _Name = pInfo.Key - _Type = pInfo.Value - End Sub - - Public Overrides ReadOnly Property ParameterType As Type - Get - Return _Type - End Get - End Property - - Public Overrides ReadOnly Property Name As String - Get - Return _Name - End Get - End Property - - Public Overrides Function ToString() As String - Return String.Format("{0} As {1}", Name, ParameterType.FullName) - End Function - End Class - - Public Class [Delegate] : Inherits System.Reflection.MethodInfo - - Dim _Name As String - ''' - ''' 参数的类型都默认为Object类型 - ''' - ''' - Dim _Paramaters As Parameter() - Dim _ReturnType As Type - Dim Source As ShoalShell.Interpreter.InternalCommands.ScriptSourceHandle - Dim MemoryDevice As ShoalShell.Runtime.Objects.I_MemoryManagementDevice - Dim InternalScript As String - - Protected Sub New() - End Sub - - Public Overrides Function ToString() As String - Dim [Function] As StringBuilder = New StringBuilder(1024) - - If _Paramaters.IsNullOrEmpty Then - Call [Function].AppendLine(String.Format("Private Shared Function VB$AnonymousDelegateEntryPoint_{0}() As {1}", Name, ReturnType.FullName)) - Else - Call [Function].AppendLine(String.Format("Private Shared Function VB$AnonymousDelegateEntryPoint_{0}({1}) As {2}", Name, String.Join(", ", (From p In _Paramaters Let s As String = p.ToString Select s).ToArray), ReturnType.FullName)) - End If - - Call [Function].AppendLine(InternalScript) - Call [Function].AppendLine("End Function") - - Return [Function].ToString - End Function - - ''' - ''' '<string> example(obj as text, obj2 as csv, obj3 as fasta) <- * - ''' - ''' Delegate的头部 - ''' 解析的过程之中抛出异常所需要使用的 - ''' - ''' - Public Shared Function InternalCreateObject(strDefinitionData As String, - InternalScript As String, - [Handles] As Microsoft.VisualBasic.Scripting.EntryPointMetaData.OverloadsSignatureHandle(), - Memory As ShoalShell.Runtime.Objects.I_MemoryManagementDevice, sourceHandle As ShoalShell.Interpreter.InternalCommands.ScriptSourceHandle) As [Delegate] - - Dim TypeDeclaration As String = Regex.Match(strDefinitionData, "<.+?>").Value - Dim ReturnType As Type - Dim ParameterDeclared As String = "" - Dim FunctionName As String = "" - - If String.IsNullOrEmpty(TypeDeclaration) Then '没有申明类型则默认为Object类型的返回值 - ReturnType = GetType(Object) - Call InternalParseNameAndParameters(strDefinitionData, ParameterDeclared, FunctionName) - Else - strDefinitionData = Mid(strDefinitionData, Len(TypeDeclaration) + 1).Trim - Call InternalParseNameAndParameters(strDefinitionData, ParameterDeclared, FunctionName) - TypeDeclaration = Mid(TypeDeclaration, 2, Len(TypeDeclaration) - 2) - ReturnType = InternalGetType(TypeDeclaration, [Handles]) - - If ReturnType Is Nothing Then - Dim ExMessage As String = String.Format("TYPE_NOT_FOUND:: could not solve the return type declaration <{0}> for the delegate function ""{1}""!", TypeDeclaration, strDefinitionData) - Throw New ShoalShell.Runtime.Objects.ObjectModels.Exceptions.ScriptRunTimeException(ExMessage, Memory) '抛出类型异常 - End If - End If - - Dim Parameters As KeyValuePair(Of String, Type)() = Nothing - - If Not String.IsNullOrEmpty(ParameterDeclared) Then - ParameterDeclared = Mid(ParameterDeclared, 2, Len(ParameterDeclared) - 2) - - Dim LQuery = (From s As String In ParameterDeclared.Split(CChar(",")) - Let Tokens As String() = Regex.Split(s, "as", RegexOptions.IgnoreCase) - Let Type = If(Tokens.Count = 1, GetType(Object), InternalGetType(Tokens.Last, [Handles])) - Select New KeyValuePair(Of String, Type)(Tokens.First, Type)).ToArray - Parameters = LQuery - LQuery = (From item In LQuery Where item.Value Is Nothing Select item).ToArray '假若存在查找不到的类型,则LQuery会不为空 - - If Not LQuery.IsNullOrEmpty Then - Dim TypeMissingParameters As String = String.Join(", ", (From item In LQuery Select item.Key).ToArray) - Dim ExMessage As String = String.Format("TYPE_NOT_FOUND:: could not solve the parameter type declaration for the delegate function ""{0}""! (Parameters ""{1}"")", strDefinitionData, TypeMissingParameters) - Throw New ShoalShell.Runtime.Objects.ObjectModels.Exceptions.ScriptRunTimeException(ExMessage, Memory) '抛出类型异常 - End If - End If - - Return New [Delegate] With {._Name = FunctionName, .Source = sourceHandle, .InternalScript = InternalScript, ._Paramaters = InternalCreateParameters(Parameters), ._ReturnType = ReturnType, .MemoryDevice = Memory} - End Function - - ''' - ''' 当找不到类型的时候会返回Nothing - ''' - ''' - ''' - ''' - ''' - Private Shared Function InternalGetType(typeName As String, [Handles] As Microsoft.VisualBasic.Scripting.EntryPointMetaData.OverloadsSignatureHandle()) As Type - If [Handles].IsNullOrEmpty Then - Return System.Type.GetType(typeName) - End If - - Dim TypeInfo As Type = (From item In [Handles] Where String.Equals(item.TypeIDBrief, typeName, StringComparison.OrdinalIgnoreCase) Select item.FullName).ToArray.FirstOrDefault - - If TypeInfo Is Nothing Then - Try '没有找到所申明的类型,则尝试将其作为全称来构建新的类型 - TypeInfo = System.Type.GetType(typeName) - Catch ex As Exception - End Try - End If - - Return TypeInfo - End Function - - Private Shared Sub InternalParseNameAndParameters(ByRef strDefinitionData As String, ByRef ParameterDeclared As String, ByRef FunctionName As String) - ParameterDeclared = Regex.Match(strDefinitionData, "\(.+?\)").Value - If Not String.IsNullOrEmpty(ParameterDeclared) Then - strDefinitionData = strDefinitionData.Replace(ParameterDeclared, "") - strDefinitionData = Regex.Replace(strDefinitionData, "<-\s+\*", "") '最后到这里只有函数名了 - End If - FunctionName = strDefinitionData - End Sub - - Private Shared Function InternalCreateParameters(Parameters As KeyValuePair(Of String, Type)()) As System.Reflection.ParameterInfo() - If Parameters.IsNullOrEmpty Then - Return New System.Reflection.ParameterInfo() {} - End If - Dim LQuery = (From pInfo In Parameters Select New Parameter(pInfo)).ToArray - Return LQuery - End Function - - Public Overrides ReadOnly Property ReturnType As Type - Get - Return _ReturnType - End Get - End Property - - Public Overrides ReadOnly Property Attributes As System.Reflection.MethodAttributes - Get - Return System.Reflection.MethodAttributes.Static - End Get - End Property - - Public Overrides ReadOnly Property DeclaringType As Type - Get - Return GetType(DelegateDeclaration) - End Get - End Property - - Public Overrides Function GetBaseDefinition() As System.Reflection.MethodInfo - Return Me - End Function - - Public Overloads Overrides Function GetCustomAttributes(inherit As Boolean) As Object() - Return New Object() {} - End Function - - Public Overloads Overrides Function GetCustomAttributes(attributeType As Type, inherit As Boolean) As Object() - Return New Object() {} - End Function - - Public Overrides Function GetMethodImplementationFlags() As System.Reflection.MethodImplAttributes - Return System.Reflection.MethodImplAttributes.InternalCall - End Function - - Public Overrides Function GetParameters() As System.Reflection.ParameterInfo() - Return Me._Paramaters - End Function - - Public Overloads Overrides Function Invoke(obj As Object, invokeAttr As System.Reflection.BindingFlags, binder As System.Reflection.Binder, parameters() As Object, culture As Globalization.CultureInfo) As Object - If _Paramaters.IsNullOrEmpty Then - Return Source(InternalScript, parameters:=Nothing) - Else - Dim pInfo = (From i As Integer In Me._Paramaters.Sequence Select New KeyValuePair(Of String, Object)(Me._Paramaters(i).Name, parameters(i))).ToArray - Return Source(InternalScript, parameters:=pInfo) - End If - End Function - - Public Overrides Function IsDefined(attributeType As Type, inherit As Boolean) As Boolean - Return False - End Function - - Public Overrides ReadOnly Property MethodHandle As RuntimeMethodHandle - Get - Return Nothing - End Get - End Property - - Public Overrides ReadOnly Property Name As String - Get - Return _Name - End Get - End Property - - Public Overrides ReadOnly Property ReflectedType As Type - Get - Return GetType(DelegateDeclaration) - End Get - End Property - - Public Overrides ReadOnly Property ReturnTypeCustomAttributes As System.Reflection.ICustomAttributeProvider - Get - Return Nothing - End Get - End Property - End Class -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/DelegateDeclaration.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/DelegateDeclaration.vb deleted file mode 100644 index a90c07473..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/DelegateDeclaration.vb +++ /dev/null @@ -1,145 +0,0 @@ -Imports System.Text.RegularExpressions -Imports System.Text - -Namespace Interpreter - - ''' - ''' - ''' - ''' - Public Module DelegateDeclaration - - ''' - ''' 在运行时通过API命令获取一个.NET函数的函数指针作为Delegate的语法: - ''' - ''' Function <- * command - ''' - ''' 函数会自动解析出参数信息,并且使用等式左端的变量名作为函数名 - ''' - ''' - ''' - ''' - ''' - Public Function InternalCreateEntryPoint(obj As Object, MemoryDevice As ShoalShell.Runtime.Objects.I_MemoryManagementDevice) As ShoalShell.DelegateHandlers.EntryPointHandlers.SignatureSignedFunctionEntryPoint - Dim EntryPoint = GetDelegateInvokeEntryPoint(obj) '共享方法 - - If EntryPoint Is Nothing Then - Throw New ShoalShell.Runtime.Objects.ObjectModels.Exceptions.ScriptRunTimeException(String.Format("Target object ""{0}"" is not a function entry pointer!", obj.GetType.FullName), MemoryDevice) '目标对象不是一个Delegate函数指针,则抛出错误 - Else - Return ShoalShell.DelegateHandlers.EntryPointHandlers.SignatureSignedFunctionEntryPoint.CreateObject(EntryPoint, Nothing) - End If - End Function - - Const DELEGATE_REGEX As String = "^.+ <- \*$" - Const HYBRID_SCRIPTING As String = "^.+ << \*$" - - '当调用外部脚本的时候的使用语法: - 'var << !script_environment_name $script_name [par1 $parvalue1 par2 $parvalue2] - - 'Delegate语法 - 'delegate_name(parameterList) <- * - '{ - '} - '假若不需求参数,则可以不添加括号 - '假若需求参数,则必须要使用括号,并且括号内的参数名之间使用逗号分隔开 - - ' example(obj as text, obj2 as csv, obj3 as fasta) <- * - - ''' - ''' 将Delegate解析出来后,替换掉Delegate的申明字符串为空字符串,脚本行在这里已经过Trim处理,并且移除了注释行 - ''' - ''' - ''' - Public Function TryParse(ShellScript As String, EntryPointHandler As ShoalShell.DelegateHandlers.EntryPointHandlers.ImportsEntryPointManager) As String() - Dim Tokens As List(Of String) = (From Token As String In Strings.Split(ShellScript.Replace(vbCr, ""), vbLf) Let s As String = Token.Trim Where Not String.IsNullOrEmpty(s) AndAlso s.First <> "#"c Select s).ToList '将脚本行进行分解 - Dim Declarations = (From Line As String In Tokens Where Regex.Match(Line, DELEGATE_REGEX, RegexOptions.Multiline).Success Select Line).ToArray - - If Declarations.IsNullOrEmpty Then - Return Tokens.ToArray - End If - - Dim Delegates As KeyValuePair(Of String, String)() = TryParseFunctionBody(Source:=Tokens, Declarations:=Declarations) - - For Each DeclaredDelegate As KeyValuePair(Of String, String) In Delegates - Dim DelegateName As String = DeclaredDelegate.Key - Dim [Delegate] As Reflection.Delegate = Reflection.Delegate.InternalCreateObject(DelegateName, DeclaredDelegate.Value, Nothing, Nothing, AddressOf EntryPointHandler.ScriptEngine.InternalSourceScript) - - Call EntryPointHandler.DeclaresDelegate([Delegate]) - Next - - Return TryParseHybridScript(Tokens, EntryPointHandler) - End Function - - ''' - ''' 解析混合编程的脚本块 - ''' - ''' - ''' - ''' - Private Function TryParseHybridScript(ByRef Source As List(Of String), EntryPointHandler As ShoalShell.DelegateHandlers.EntryPointHandlers.ImportsEntryPointManager) As String() - Dim Declarations = (From Line As String In Source Where Regex.Match(Line, HYBRID_SCRIPTING, RegexOptions.Multiline).Success Select Line).ToArray - - If Declarations.IsNullOrEmpty Then - Return Source.ToArray - End If - - Dim HybridScriptBodies As KeyValuePair(Of String, String)() = TryParseFunctionBody(Source:=Source, Declarations:=Declarations) - - For Each DeclaredScript As KeyValuePair(Of String, String) In HybridScriptBodies - Call EntryPointHandler.DeclaresHybridScripting(DeclaredScript.Key, DeclaredScript.Value) - Next - - Return Source.ToArray - End Function - - ''' - ''' 返回{对象名, 对象脚本文本} - ''' - ''' - ''' - Private Function TryParseFunctionBody(ByRef Source As List(Of String), Declarations As String()) As KeyValuePair(Of String, String)() - Dim sBuilder As StringBuilder = New StringBuilder(1024) - Dim ChunkBuffer As List(Of KeyValuePair(Of String, String)) = New Generic.List(Of KeyValuePair(Of String, String)) - - For Each DeclaredHead As String In Declarations - Dim p As Integer = Source.IndexOf(DeclaredHead) - Dim strLine As String = Source(p + 1) - - If Not String.Equals(strLine, "{") Then - Throw New SyntaxErrorException(String.Format("Syntax error at declare delegate ""{0}""", DeclaredHead)) - End If - - Call Source.Remove(DeclaredHead) - Call p.MoveNext() - - Dim TempTokensList As List(Of String) = New List(Of String) - - Do While Not String.Equals(strLine, "}") - If p = Source.Count Then - Dim Err As String = String.Format("Syntax error at declare delegate ""{0}"":" & vbCrLf & "Delegate bracket is not closed!", DeclaredHead) - Throw New ShoalShell.Runtime.Objects.ObjectModels.Exceptions.SyntaxErrorException(Err) - End If - strLine = Source(p.MoveNext) - Call TempTokensList.Add(strLine) - Loop - - Call Source.RemoveAt(p - TempTokensList.Count - 1) - For Each strLine In TempTokensList - Call Source.Remove(strLine) - Next - Call TempTokensList.Remove("}") - - Dim DelegateBuilder As StringBuilder = New StringBuilder(1024) - For Each strLine In TempTokensList - Call DelegateBuilder.AppendLine(strLine) - Next - - Dim DelegateName As String = Regex.Replace(DeclaredHead, "<-\s+\*", "").Trim - - Call ChunkBuffer.Add(New KeyValuePair(Of String, String)(DelegateName, DelegateBuilder.ToString)) - Next - - Return ChunkBuffer.ToArray - End Function - End Module -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/HybridScripting/HybridScriptingInterface.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/HybridScripting/HybridScriptingInterface.vb deleted file mode 100644 index e16666661..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/HybridScripting/HybridScriptingInterface.vb +++ /dev/null @@ -1,131 +0,0 @@ -Imports System.Reflection - -Namespace HybridsScripting - - ''' - ''' 与ShellScript进行混合编程的脚本语言,必须要在API的命名空间之中实现这个自定义属性 - ''' - ''' 每一次切换脚本语句环境之前先使用!EntryName来进行,之后直接可以只用左移运算符尽心计算求值 - ''' - - Public Class ScriptEntryPoint : Inherits Attribute - - Public ReadOnly Property ScriptName As String - Get - Return _Name - End Get - End Property - - Dim _Name As String - - Sub New(ScriptName As String) - _Name = ScriptName - End Sub - - Private Shared ReadOnly _TypeInfo As System.Type = GetType(ScriptEntryPoint) - - Public Shared ReadOnly Property TypeInfo As System.Type - Get - Return _TypeInfo - End Get - End Property - End Class - - ''' - ''' 必须要具备两种类型的接口,目标脚本执行环境才会被成功挂载 - ''' - ''' - - Public Class ScriptEntryInterface : Inherits Attribute - - ''' - ''' 混合编程的接口类型 - ''' - ''' - Public Enum InterfaceTypes - - ''' - ''' 有些简单类型可能并不需要初始化过程,所以这一个接口现在是可选的 - ''' - ''' - EntryPointInit - ''' - ''' 接口类型:Public Function Evaluate(script As String) As Object - ''' - ''' - Evaluate - ''' - ''' Public Function SetValue(variableName As String, value As Object) As Boolean - ''' - ''' - SetValue - DataConvertor - End Enum - - Dim _InterfaceType As InterfaceTypes - - Public ReadOnly Property InterfaceType As InterfaceTypes - Get - Return _InterfaceType - End Get - End Property - - Sub New(Type As InterfaceTypes) - _InterfaceType = Type - End Sub - - Public Overrides Function ToString() As String - Return _InterfaceType.ToString - End Function - - Private Shared ReadOnly _TypeInfo As System.Type = GetType(ScriptEntryInterface) - - Public Shared ReadOnly Property TypeInfo As System.Type - Get - Return _TypeInfo - End Get - End Property - End Class - - - Public Class DataConvert : Inherits ScriptEntryInterface - - Dim _TypeChar As Char, _ConservedString As Boolean - - Public ReadOnly Property TypeChar As Char - Get - Return _TypeChar - End Get - End Property - - Public ReadOnly Property ConservedStringConvertor As Boolean - Get - Return _ConservedString - End Get - End Property - - ''' - ''' - ''' - ''' - ''' 数据类型的后缀,推荐: - ''' $ - ''' & - ''' % - ''' ? - ''' ! - ''' @ - ''' - ''' 在脚本环境之中必须要有一个保留的字符串转换方法 - ''' - Sub New(type As Char, Optional ConservedString As Boolean = False) - Call MyBase.New(InterfaceTypes.DataConvertor) - _TypeChar = type - _ConservedString = ConservedString - End Sub - - Public Overrides Function ToString() As String - Return _TypeChar.ToString - End Function - End Class -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/HybridScripting/HybridScriptingInteropHandler.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/HybridScripting/HybridScriptingInteropHandler.vb deleted file mode 100644 index 9c2a51f1e..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/HybridScripting/HybridScriptingInteropHandler.vb +++ /dev/null @@ -1,267 +0,0 @@ -Imports System.Reflection - -Namespace HybridsScripting - - Public Class HybridScriptingInteropHandler : Inherits ShoalShell.Runtime.Objects.ObjectModels.IScriptEngineComponent - - Implements System.IDisposable - - Public Structure EntryPoint - - ''' - ''' Script name.(混合编程的脚本名称) - ''' - ''' - Dim Name As String - Dim Init, Evaluate, SetValue As System.Reflection.MethodInfo - ''' - ''' Basic type data convert interface.(基本数据类型的转换接口) - ''' - ''' - Dim DataConvertors As KeyValuePair(Of Char, System.Reflection.MethodInfo)() - ''' - ''' When the handlers can not found the data type - ''' convert method for the basically type then it will try this system preserved string type convert - ''' method to convert the data as string as default. - ''' (当之中没有查找到目标类型的转换操作接口的时候,则默认使用本方法转换 - ''' 为字符串的格式,保留的字符串类型的转换函数) - ''' - ''' - Dim ConservedString As System.Reflection.MethodInfo - Dim TypeFullName As String - Dim DeclaredAssemblyType As System.Type - - Public Overrides Function ToString() As String - Return Name - End Function - - Public Sub InitInvoke() - If Not Init Is Nothing Then - Call Init.Invoke(Nothing, Nothing) - End If - End Sub - - ''' - '''This property indicated that the entry data which was parsing from the assembly module is valid or not.(可以使用本属性来判断目标解析数据是否可用) - ''' - ''' - ''' - ''' - Public ReadOnly Property IsNull As Boolean - Get - Return String.IsNullOrEmpty(Name) OrElse Evaluate Is Nothing OrElse SetValue Is Nothing - End Get - End Property - End Structure - - Dim _CurrentScriptPoint As Func(Of String, Object) - Dim _CurrentSetValue As Func(Of String, Object, Boolean) - Dim _EntryPoints As Dictionary(Of String, EntryPoint) = New Dictionary(Of String, EntryPoint) - - ''' - ''' Attach the hybrid scripting environment onto the script host. - ''' - ''' - ''' - Public Sub AttachEntryPoint(pointName As String) - Dim EntryPoint = _EntryPoints(pointName.ToLower) - - Call Console.WriteLine("Dynamic load the external ""{0}"" runtime enviroment entry point, this may taks a while...", EntryPoint.Name) - Call EntryPoint.InitInvoke() - _CurrentScriptPoint = Function(script As String) EntryPoint.Evaluate.Invoke(Nothing, {script}) - _CurrentSetValue = Function(variable As String, value As Object) EntryPoint.SetValue.Invoke(Nothing, {variable, value}) - - If EntryPoint.ConservedString Is Nothing Then - Call Console.WriteLine("[WARNING] Empty string type convertor, data convertion maybe failure in the hybrid scripting!") - ConservedStringConvert = Nothing - Else - ConservedStringConvert = Function(value As String) EntryPoint.ConservedString.Invoke(Nothing, {value}) - End If - - Call DataConverters.Clear() - For Each Convertor In EntryPoint.DataConvertors - Call DataConverters.Add(Convertor.Key, Function(value As String) Convertor.Value.Invoke(Nothing, {value})) - Next - - Call Console.WriteLine("Load entry point and connect to the ""{0}"" runtime enviroment successfully!", EntryPoint.Name) - End Sub - - Public Function Evaluate(script As String) As Object - script = ScriptEngine._EngineMemoryDevice.FormatString(script) - Return _CurrentScriptPoint(script) - End Function - - ''' - ''' 这个对象是为所准备的,当所传递的参数为字符串的时候,则可以根据参数名的后缀来转换为相应的数据类型 - ''' - ''' - ''' - Dim DataConverters As Dictionary(Of Char, Func(Of String, Object)) = New Dictionary(Of Char, Func(Of String, Object)) - Dim ConservedStringConvert As Func(Of String, Object) - - Sub New(ScriptHost As ShoalShell.Runtime.Objects.ShellScript) - Call MyBase.New(ScriptHost) - End Sub - - ''' - ''' - ''' - ''' 这个参数需要已经去除了第一个!标识符,会临时切换混合编程的脚本环境 - ''' 脚本对象名[ 参数列表] - ''' - ''' - Public Function Evaluate(environment As String, Cmdl As CommandLine.CommandLine) As Object - Dim ScriptText As String = ScriptEngine.InternalEntryPointManager.GetHybridsScript(Cmdl.Name) - - Using TempEnvironment As HybridScriptingInteropHandler = New HybridScriptingInteropHandler(Me.ScriptEngine) - TempEnvironment._EntryPoints = _EntryPoints - Call TempEnvironment.AttachEntryPoint(environment) - - For Each var In Cmdl '其中的参数的值为变量引用,假若找不到变量值,则一律转换为字符串 - Dim value As Object = ScriptEngine._Interpreter._InternalCommands.GetValue(var.Value) - - If value.GetType = GetType(String) Then '说明不存在目标变量,则现在需要使用类型转换来转换目标字符串参数值 - Dim type As Char = var.Key.Last - - If TempEnvironment.DataConverters.ContainsKey(type) Then - value = TempEnvironment.DataConverters(type)(value.ToString) - Else - value = TempEnvironment.ConservedStringConvert(value.ToString) '假若找不到转换器,则默认转换为字符串 - End If - End If - Call TempEnvironment.SetValue(var.Key, value) - Next - - ScriptText = ScriptEngine._EngineMemoryDevice.FormatString(ScriptText) - - Return TempEnvironment.Evaluate(ScriptText) - End Using - End Function - - Public Function SetValue(variableName As String, value As Object) As Boolean - variableName = ScriptEngine._EngineMemoryDevice.FormatString(variableName) - Return _CurrentSetValue(variableName, value) - End Function - - Public Function LoadEntryPoints(AssemblyFile As String) As Integer - If Not FileIO.FileSystem.FileExists(AssemblyFile) Then - Call Console.WriteLine("!!! Missing Module @ {0}.", AssemblyFile) - Return -1 - End If - - Dim EntryPoints = _LoadEntryPoints(System.Reflection.Assembly.LoadFrom(AssemblyFile)) - If EntryPoints.IsNullOrEmpty Then - Return 0 - End If - - For Each EntryPoint In EntryPoints - Dim Name As String = EntryPoint.Name.ToLower - - If _EntryPoints.ContainsKey(Name) Then - Call Console.WriteLine("Script entry point ""{0}"": {1}::{2} is already mount in the shellscript", Name, EntryPoint.TypeFullName, EntryPoint.Init.Name) - Return 0 - End If - - Call _EntryPoints.Add(Name, EntryPoint) - Call ScriptEngine.ImportsDataSource.Imports(EntryPoint.DeclaredAssemblyType) - Next - - Return EntryPoints.Count - End Function - - Private Function _LoadEntryPoints(Assembly As System.Reflection.Assembly) As EntryPoint() - Dim LQuery = (From Type As System.Type - In Assembly.GetTypes - Let EntryPoint As EntryPoint = LoadEntryPoint(Type) - Where Not EntryPoint.IsNull - Select EntryPoint).ToArray - Return LQuery - End Function - - Private Function LoadEntryPoint(Assembly As System.Type) As EntryPoint - Dim attributes As Object() = Assembly.GetCustomAttributes(ShoalShell.HybridsScripting.ScriptEntryPoint.TypeInfo, True) - - If attributes.IsNullOrEmpty Then - Return Nothing - End If - - Dim EntryName As String = DirectCast(attributes(0), ShoalShell.HybridsScripting.ScriptEntryPoint).ScriptName - Dim InitEntry As System.Reflection.MethodInfo = GetEntry(Assembly, ScriptEntryInterface.InterfaceTypes.EntryPointInit) - Dim Evaluate As System.Reflection.MethodInfo = GetEntry(Assembly, ScriptEntryInterface.InterfaceTypes.Evaluate) - Dim SetValue As System.Reflection.MethodInfo = GetEntry(Assembly, ScriptEntryInterface.InterfaceTypes.SetValue) - Dim DataConvertors = GetEntries(Of HybridsScripting.DataConvert)(Assembly) - Dim ConservedString As System.Reflection.MethodInfo = (From cMethod As KeyValuePair(Of HybridsScripting.DataConvert, System.Reflection.MethodInfo) - In DataConvertors - Where cMethod.Key.ConservedStringConvertor = True - Select cMethod.Value).ToArray.FirstOrDefault - If Evaluate Is Nothing Then - Return Nothing - Else - Return New EntryPoint With - { - .DeclaredAssemblyType = Assembly, - .ConservedString = ConservedString, - .Name = EntryName, - .Init = InitEntry, - .Evaluate = Evaluate, - .TypeFullName = Assembly.FullName, - .SetValue = SetValue, - .DataConvertors = (From item In DataConvertors Select New KeyValuePair(Of Char, System.Reflection.MethodInfo)(item.Key.TypeChar, item.Value)).ToArray} - End If - End Function - - Private Function GetEntries(Of TEntryType As ScriptEntryInterface)(TypeInfo As System.Type) As KeyValuePair(Of TEntryType, System.Reflection.MethodInfo)() - Dim EntryType As Type = GetType(TEntryType) - Dim LQuery = (From LoadHandle As System.Reflection.MethodInfo - In TypeInfo.GetMethods(BindingFlags.Public Or BindingFlags.Static) - Let attributes As Object() = LoadHandle.GetCustomAttributes(EntryType, False) - Where Not attributes.IsNullOrEmpty - Select (From attr As Object - In attributes - Let Entry As TEntryType = DirectCast(attr, TEntryType) - Select New KeyValuePair(Of TEntryType, System.Reflection.MethodInfo)(Entry, LoadHandle)).ToArray).ToArray - Return LQuery.MatrixToVector - End Function - - Private Function GetEntry(TypeInfo As System.Type, EntryType As ScriptEntryInterface.InterfaceTypes) As System.Reflection.MethodInfo - Dim LQuery = (From LoadHandle As System.Reflection.MethodInfo - In TypeInfo.GetMethods(BindingFlags.Public Or BindingFlags.Static) - Let attributes As Object() = LoadHandle.GetCustomAttributes(ShoalShell.HybridsScripting.ScriptEntryInterface.TypeInfo, False) - Where Not attributes.IsNullOrEmpty AndAlso DirectCast(attributes(0), ShoalShell.HybridsScripting.ScriptEntryInterface).InterfaceType = EntryType - Select LoadHandle).ToArray - Return LQuery.FirstOrDefault - End Function - -#Region "IDisposable Support" - Private disposedValue As Boolean ' To detect redundant calls - - ' IDisposable - Protected Overridable Sub Dispose(disposing As Boolean) - If Not Me.disposedValue Then - If disposing Then - ' TODO: dispose managed state (managed objects). - End If - - ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below. - ' TODO: set large fields to null. - End If - Me.disposedValue = True - End Sub - - ' TODO: override Finalize() only if Dispose(ByVal disposing As Boolean) above has code to free unmanaged resources. - 'Protected Overrides Sub Finalize() - ' ' Do not change this code. Put cleanup code in Dispose(ByVal disposing As Boolean) above. - ' Dispose(False) - ' MyBase.Finalize() - 'End Sub - - ' This code added by Visual Basic to correctly implement the disposable pattern. - Public Sub Dispose() Implements IDisposable.Dispose - ' Do not change this code. Put cleanup code in Dispose(disposing As Boolean) above. - Dispose(True) - GC.SuppressFinalize(Me) - End Sub -#End Region - - End Class -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/InternalCommands.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/InternalCommands.vb deleted file mode 100644 index 56d76971b..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/InternalCommands.vb +++ /dev/null @@ -1,572 +0,0 @@ -Imports System.Text -Imports Microsoft.VisualBasic.CommandLine.Reflection -Imports System.Reflection -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Objects -Imports System.Runtime.CompilerServices -Imports Microsoft.VisualBasic.ComponentModel -Imports System.Drawing -Imports Microsoft.VisualBasic.Scripting.ShoalShell.DelegateHandlers.TypeLibraryRegistry -Imports Microsoft.VisualBasic.Scripting.EntryPointMetaData - -Namespace Interpreter - - ''' - ''' 一个脚本程序中仅允许有一个内建命令的实例 - ''' - ''' - Public Class InternalCommands : Inherits ShoalShell.Runtime.Objects.ObjectModels.IScriptEngineComponent - - Public _InternalVariableName_ForEach As String - Public _InternalVariableName_DoWhile As String - - ''' - ''' 脚本的执行入口点的定义 - ''' - ''' 脚本中的内容 - ''' 如果为Nothing,则说明目标脚本的执行不需求参数 - ''' - ''' - Public Delegate Function ScriptSourceHandle(Script As String, parameters As KeyValuePair(Of String, Object)()) As Object - - - Public Function basename(path As String) As String - If FileIO.FileSystem.DirectoryExists(path) Then - Return FileIO.FileSystem.GetDirectoryInfo(path).Name - Else - Return IO.Path.GetFileNameWithoutExtension(path) - End If - End Function - - - - Public Function CreateArray(argvs As String) As Object() - - If String.IsNullOrEmpty(argvs) Then - Return New Object() {} - End If - - If argvs.First = """"c AndAlso argvs.Last = """"c Then - argvs = Mid(argvs, 2, Len(argvs) - 2) - End If - - If InStr(argvs, ",") = 0 AndAlso argvs.First = "$"c Then - Return CreateArray(ScriptEngine._EngineMemoryDevice.Item(Mid(argvs, 2).ToLower)) - ElseIf InStr(argvs, ",") = 0 AndAlso argvs.First = "&"c Then - Return CreateArray(ScriptEngine._EngineMemoryDevice.GetConstant(Mid(argvs, 2))) - End If - - Dim variables = ShoalShell.BuildInModules.System.Array.ParseVector(argvs) - Dim paraList As List(Of Object) = New List(Of Object) - - For Each var As String In variables - If var.First = "$"c Then - Call paraList.Add(ScriptEngine._EngineMemoryDevice.Item(Mid(var, 2).ToLower)) - ElseIf var.First = "&"c Then - Call paraList.Add(ScriptEngine._EngineMemoryDevice.GetConstant(Mid(var, 2))) - Else - Call paraList.Add(var) - End If - Next - - Return paraList.ToArray - End Function - - - Public Function Version() As Version - Call Cowsay(String.Format("The version of Shoal is {0}", My.Application.Info.Version.ToString)) - Return My.Application.Info.Version - End Function - - - Public Function Wiki( Optional keyword As String = "") As String - Dim url As String = If(String.IsNullOrEmpty(keyword), "https://sourceforge.net/p/shoal/wiki/", "https://sourceforge.net/p/shoal/wiki/search/?q=" & keyword.Replace(" ", "%20")) - Call Process.Start(url) - Return url - End Function - - - Public Function License() As String - Dim sBuilder As StringBuilder = New StringBuilder(1024) - Call sBuilder.AppendLine(My.Resources.license) - Call sBuilder.AppendLine() - Call sBuilder.AppendLine() - Call sBuilder.AppendLine("Using gpl() command to see the whole GPL3 license.") - - Call Console.WriteLine(sBuilder.ToString) - - Return sBuilder.ToString - End Function - - - Public Function GPL() As String - Call Console.WriteLine(My.Resources.gpl) - Return My.Resources.gpl - End Function - - - Public Function Echo( Message As String) As String - Call Console.WriteLine(Message) - Return Message - End Function - - Sub New(ScriptEngineHost As Runtime.Objects.ShellScript, disp_inits_message As Boolean, preferIndexedManual As Boolean) - Call MyBase.New(ScriptEngineHost) - - Me.ScriptEngine._InternalHelpSystem = New Wiki.InternalHelpSearch(ScriptEngineHost, preferIndexedManual) - Me.ScriptEngine.InternalEntryPointManager.ImportsInstanceNamespace(Me) - End Sub - - ''' - ''' 尝试获取脚本宿主内存之中的变量的值 - ''' - ''' - ''' - ''' - Public Function GetValue(name As String) As Object - Return _RuntimeEnvironment._EngineMemoryDevice.TryGetValue(name) - End Function - - - Public Function Cowsay(Optional msg As String = "", Optional argvs As Microsoft.VisualBasic.CommandLine.CommandLine = Nothing) As String - 'If String.IsNullOrEmpty(msg) Then - ' Return CowsayTricks.Cowsay("Moo. Hi!", "") - 'End If - - 'If argvs Is Nothing Then - ' Return CowsayTricks.Cowsay(msg, "") - 'End If - - 'Dim Tokens = argvs.Tokens.Skip(2).ToArray - 'Dim pList As List(Of KeyValuePair(Of String, String)) = New Generic.List(Of KeyValuePair(Of String, String)) - 'For i As Integer = 0 To Tokens.Count - 2 - ' Call pList.Add(New KeyValuePair(Of String, String)(Tokens(i), Tokens(i + 1))) - 'Next - - 'Return CowsayTricks.Cowsay(argvs.Tokens(1), CommandLine.CommandLine.CreateObject("cowsay.argvs", pList.ToArray)) - End Function - - - Public Function ReturnStack() As Boolean - Return True - End Function - - Public Function TryGetArrayValue(obj As Object) As Object() - Dim Type As Type = obj.GetType - If Array.IndexOf(Type.GetInterfaces, GetType(IEnumerable)) > -1 Then - Return GetArray(en:=DirectCast(obj, IEnumerable)) - Else - Throw New DataException("Target object is not a collection type!") - End If - End Function - - Private Function GetArray(en As IEnumerable) As Object() - Dim LQuery = (From obj In en Select CType(obj, Object)).ToArray - Return LQuery - End Function - - - Public Function DoWhile(test As Object, [call] As String) As Object() - Dim ReturnedValue As List(Of Object) = New List(Of Object) - Dim argvs As CommandLine.CommandLine = CommandLine.CommandLine.TryParse([call]) - Dim ScriptFile As String = argvs.Name - Dim sourceArgv As String() = argvs.Parameters - ' Dim CallerStack = _ScriptEngine - Dim IsSourceFile As Boolean = False - Dim SourceDir As String = "" - - If FileIO.FileSystem.FileExists(ScriptFile) Then - SourceDir = FileIO.FileSystem.GetParentPath(ScriptFile) - ScriptFile = FileIO.FileSystem.ReadAllText(ScriptFile) - IsSourceFile = True - Else - ScriptFile = [call] - End If - - Do While _RuntimeEnvironment._EngineMemoryDevice.TryGetValue(_InternalVariableName_DoWhile).ToString.getBoolean - Using Script As Runtime.Objects.ShellScript = New Runtime.Objects.ShellScript '由于在新构造ShellScript对象的时候,会将本模块之中的_scriptHost进行替换,所以下面的语句直接操作_scriptHost对象就A相当于操作所被调用的脚本的宿主程序了 - - If Not sourceArgv.IsNullOrEmpty Then - For Each item In CommandLine.CommandLine.CreateParameterValues(sourceArgv, True) - Call _RuntimeEnvironment._EngineMemoryDevice.InsertOrUpdate(item.Key, ScriptEngine._EngineMemoryDevice.TryGetValue(item.Value)) - Next - End If - - Dim currentWork As String = My.Computer.FileSystem.CurrentDirectory - If IsSourceFile Then My.Computer.FileSystem.CurrentDirectory = SourceDir - Call Script.EXEC(ScriptFile) - If IsSourceFile Then My.Computer.FileSystem.CurrentDirectory = currentWork - Call ReturnedValue.Add(Script.GetStackValue) - Dim Memory = Script._EngineMemoryDevice - Call ScriptEngine._EngineMemoryDevice.SetValue(New KeyValuePair(Of String, Object)("$", Memory)) - ' CommandsEntryHandler._ShellScriptHost = CallerStack - End Using - Loop - - Return ReturnedValue.ToArray - End Function - - ''' - ''' - ''' - ''' - ''' 脚本命令或者脚本文件与参数列表 - ''' - ''' - - Public Function ForEach([in] As Object, [call] As String) As Object() - Dim argvs As CommandLine.CommandLine = CommandLine.CommandLine.TryParse([call]) - Dim ScriptFile As String = argvs.Name - Dim sourceArgv As String() = argvs.Parameters - ' Dim CallerStack = _ShellScriptHost - Dim arrayData As Generic.IEnumerable(Of Object) = TryGetArrayValue([in]) - Dim IsSourceFile As Boolean = False - Dim SourceDir As String = "" - Dim ReturnedValue As List(Of Object) = New List(Of Object) - - If FileIO.FileSystem.FileExists(ScriptFile) Then - SourceDir = FileIO.FileSystem.GetParentPath(ScriptFile) - ScriptFile = FileIO.FileSystem.ReadAllText(ScriptFile) - IsSourceFile = True - Else - ScriptFile = [call] - End If - - For Each obj In arrayData - Using Script As Runtime.Objects.ShellScript = New Runtime.Objects.ShellScript '由于在新构造ShellScript对象的时候,会将本模块之中的_scriptHost进行替换,所以下面的语句直接操作_scriptHost对象就A相当于操作所被调用的脚本的宿主程序了 - - If Not sourceArgv.IsNullOrEmpty Then - For Each item In CommandLine.CommandLine.CreateParameterValues(sourceArgv, True) - Call _RuntimeEnvironment._EngineMemoryDevice.InsertOrUpdate(item.Key, ScriptEngine._EngineMemoryDevice.TryGetValue(item.Value)) - Next - End If - - Call _RuntimeEnvironment._EngineMemoryDevice.InsertOrUpdate(_InternalVariableName_ForEach, obj) - - Dim currentWork As String = My.Computer.FileSystem.CurrentDirectory - If IsSourceFile Then My.Computer.FileSystem.CurrentDirectory = SourceDir - Call Script.EXEC(ScriptFile) - If IsSourceFile Then My.Computer.FileSystem.CurrentDirectory = currentWork - Call ReturnedValue.Add(Script.GetStackValue) - ' CommandsEntryHandler._ShellScriptHost = CallerStack - End Using - Next - - Return ReturnedValue.ToArray - End Function - - - Public Function [If](test As Object, [call] As String) As Object - Dim strValue As String = test.ToString - - _RuntimeEnvironment._EngineMemoryDevice._LastIf_Flag = strValue.getBoolean - - If _RuntimeEnvironment._EngineMemoryDevice._LastIf_Flag Then - Call _RuntimeEnvironment.EXEC([call]) - Return _RuntimeEnvironment._EngineMemoryDevice.TryGetValue("$") - Else - Return -1 - End If - End Function - - - Public Function [Else](Command As String) As Object - If Not _RuntimeEnvironment._EngineMemoryDevice._LastIf_Flag Then - Call _RuntimeEnvironment.EXEC(Command) - End If - - Return _RuntimeEnvironment._EngineMemoryDevice.TryGetValue("$") - End Function - - - Public Function [ElseIf](test As Object, [call] As String) As Object - If Not _RuntimeEnvironment._EngineMemoryDevice._LastIf_Flag Then - Return [If](test, [call]) - End If - - Return _RuntimeEnvironment._EngineMemoryDevice.TryGetValue("$") - End Function - - - Public Function ReturnValue(variable As Object) As Object - Call _RuntimeEnvironment.PushStack(variable) - Return _RuntimeEnvironment.GetStackValue - End Function - - - Public Function Free(variableName) As Boolean - Dim Variable = (From item In _RuntimeEnvironment._EngineMemoryDevice Where String.Equals(item.Key, variableName, StringComparison.OrdinalIgnoreCase) Select item).First - Call _RuntimeEnvironment._EngineMemoryDevice.Remove(Variable) - Call FlushMemory() - Return True - End Function - - ''' - ''' include <filepath> - ''' - ''' - ''' - ''' - declaration line by the target script file. so please consider the order of the include statements in your script.")> - Public Function FileInclude(path As String) As String - Return FileIO.FileSystem.ReadAllText(path) - End Function - - ''' - ''' 使用本方法导入外部命令,这样子就可以直接调用方法而不需要每一个命令行都添加模块名称了 - ''' - ''' - ''' - ''' - - Public Function ImportsNamespace([Namespace] As String) As Integer - Return ScriptEngine.InternalEntryPointManager.ImportsNamespace([Namespace]) - End Function - - ''' - ''' 动态注册一个链接库,在进行挂载 - ''' - ''' - ''' - ''' - ''' - - Public Function Library( assemblyPath As String) As Integer - Call _RuntimeEnvironment._Interpreter._DelegateRegistry.RegisterAssemblyModule(assemblyPath, "") - Call _RuntimeEnvironment._Interpreter._DelegateRegistry.Save() - Call _RuntimeEnvironment._Interpreter._DelegateRegistry.LoadLibrary(assemblyPath, _RuntimeEnvironment._EngineMemoryDevice) - Call _RuntimeEnvironment.ReloadEntryPoints() - - Return 0 - End Function - - - Public Function Cat(path As String) As String - Dim s As String = FileIO.FileSystem.ReadAllText(path) - Call Console.WriteLine(s) - Return s - End Function - - - Public Function Install( assemblyPath As String) As Integer - Return Library(assemblyPath) - End Function - - ''' - ''' 列举出所有已经注册的动态链接库 - ''' - ''' - ''' - ''' - - Public Function Libraries() As Integer - If _RuntimeEnvironment._Interpreter._DelegateRegistry._InnerList.IsNullOrEmpty Then - Call Console.WriteLine("Shoal didn't install any plugin module yet...") - Return 0 - End If - - Dim MaxLength = (From item In _RuntimeEnvironment._Interpreter._DelegateRegistry._InnerList Select Len(item.ModuleName)).ToArray.Max - Dim sBuilder As StringBuilder = New StringBuilder(1024) - - Call sBuilder.AppendLine(String.Format(" Namespaces{0} assembly library", New String(" "c, MaxLength - Len("namespaces") + 4))) - Call sBuilder.AppendLine(String.Format("+----------{0}+-------------------------------------------------------------------------+", New String("-"c, MaxLength - Len("namespaces") + 4))) - - For Each item In (From itemobject In _RuntimeEnvironment._Interpreter._DelegateRegistry._InnerList Select itemobject Order By itemobject.ModuleName).ToArray - Call sBuilder.AppendLine(" " & item.ModuleName) - - For Each Partition As DelegateHandlers.TypeLibraryRegistry.RegistryNodes.ModuleLoadEntry In item.Entries - Call sBuilder.AppendLine(String.Format(" {0} @{1}", New String(" "c, MaxLength), Partition.AssemblyPath)) - Next - Next - Call Console.WriteLine(sBuilder.ToString) - Return _RuntimeEnvironment._Interpreter._DelegateRegistry._InnerList.Count - End Function - - - - Public Function DisplayHelp( Optional ObjectName As String = "") As String - Dim str As String = Me._RuntimeEnvironment._InternalHelpSystem.GetHelpInfo(ObjectName, True) - - If String.IsNullOrEmpty(str) Then - Call Console.WriteLine("Sorry, Shoal could not find any thing for the query keyword ""{0}""... :-(", ObjectName) - End If - - Return str - End Function - - - Public Function Clear() As Integer - Call Console.Clear() - Return 0 - End Function - - - Public Function Pwd() As String - Call Console.WriteLine(My.Computer.FileSystem.CurrentDirectory) - Return My.Computer.FileSystem.CurrentDirectory - End Function - - - Public Function Memories() As String() - Dim sBuilder As StringBuilder = New StringBuilder - Dim maxLength As Integer - Dim LQuery As String() = Nothing - Dim Constants = _RuntimeEnvironment._EngineMemoryDevice.GetConstants - - If _RuntimeEnvironment._EngineMemoryDevice.IsNullOrEmpty AndAlso Constants.IsNullOrEmpty Then - Const NO_VALUE = "Currently no variables exists in the script host memory!" - Call Console.WriteLine(NO_VALUE) - Return New String() {NO_VALUE} - End If - - If Not _RuntimeEnvironment._EngineMemoryDevice.IsNullOrEmpty Then - Call sBuilder.AppendLine() - Call sBuilder.AppendLine(String.Format(" {0} VARIABLES", _RuntimeEnvironment._EngineMemoryDevice.Count)) - Call sBuilder.AppendLine() - - maxLength = (From item In _RuntimeEnvironment._EngineMemoryDevice Select Len(item.Key)).ToArray.Max - LQuery = (From item In _RuntimeEnvironment._EngineMemoryDevice Select String.Format("{0} {1}--> {2} //{3}", item.Key, New String(" "c, maxLength - Len(item.Key) + 2), item.Value.ToString, item.Value.GetType.FullName)).ToArray - - For Each Line As String In LQuery - Call sBuilder.AppendLine(Line) - Next - End If - - If Not Constants.IsNullOrEmpty Then - maxLength = (From item In Constants Select Len(item.Key)).ToArray.Max - LQuery = (From item In Constants Select String.Format("{0} {1}--> {2} //{3}", item.Key, New String(" "c, maxLength - Len(item.Key) + 2), item.Value.ToString, item.Value.GetType.FullName)).ToArray - Call sBuilder.AppendLine() - Call sBuilder.AppendLine(String.Format(" {0} CONSTANTS", Constants.Count)) - - For Each line In LQuery - Call sBuilder.AppendLine(line) - Next - End If - - Call Console.WriteLine(sBuilder.ToString) - Return LQuery - End Function - - ''' - ''' 切换ShoalShell的当前工作目录 - ''' - ''' - ''' - ''' - - Public Function Cd([to] As String) As String - If String.Equals([to], "~") Then - [to] = My.Application.Info.DirectoryPath - End If - - My.Computer.FileSystem.CurrentDirectory = [to] - Call ScriptEngine.InternalEntryPointManager.InternalScanTempShell(dir:=My.Computer.FileSystem.CurrentDirectory, disp_inits_message:=True) - Return [to] - End Function - - ''' - ''' 当指定了文件拓展名之后,函数只会返回文件名列表,其他的情况会返回文件名列表和文件夹列表 - ''' - ''' - ''' - - Public Function List(Optional argv As CommandLine.CommandLine = Nothing) As String() - Dim ext As String = If(argv Is Nothing OrElse argv.IsNullOrEmpty OrElse String.IsNullOrEmpty(argv("-ext")), "", argv("-ext")) - Dim TargetDir As String = If(argv Is Nothing OrElse argv.IsNullOrEmpty OrElse Not FileIO.FileSystem.DirectoryExists(argv.Parameters.First), "", argv.Parameters.First) - - If String.IsNullOrEmpty(TargetDir) Then - TargetDir = If(argv Is Nothing OrElse argv.IsNullOrEmpty OrElse String.IsNullOrEmpty(argv("-d")), My.Computer.FileSystem.CurrentDirectory, argv("-d")) - End If - - If String.IsNullOrEmpty(ext) Then - If argv Is Nothing OrElse argv.Parameters.IsNullOrEmpty Then - ext = "*.*" - Else - ext = If(FileIO.FileSystem.DirectoryExists(argv.Parameters.First), "*.*", argv.Parameters.First) - End If - End If - - Dim Dirs = FileIO.FileSystem.GetDirectories(TargetDir, FileIO.SearchOption.SearchTopLevelOnly) - Dim Files = FileIO.FileSystem.GetFiles(TargetDir, FileIO.SearchOption.SearchTopLevelOnly, ext) - Dim DriveInfo = FileIO.FileSystem.GetDriveInfo(TargetDir) - Dim sBuilder As StringBuilder = New StringBuilder(1024) - - Call sBuilder.AppendLine(String.Format(" Volume in drive {0} is {1}", DriveInfo.RootDirectory, DriveInfo.VolumeLabel)) - Call sBuilder.AppendLine(String.Format(" Volume drive Format is {0}" & vbCrLf, DriveInfo.DriveFormat)) - Call sBuilder.AppendLine(String.Format(" Directory of {0}" & vbCrLf, TargetDir)) - If Not Dirs.IsNullOrEmpty Then Call sBuilder.AppendLine(String.Format(" {0} Directories", Dirs.Count)) - If Not Files.IsNullOrEmpty Then Call sBuilder.AppendLine(String.Format(" {0} Files", Files.Count)) - Call sBuilder.AppendLine() - - For Each Dir As String In Dirs - Dim dirInfo = FileIO.FileSystem.GetDirectoryInfo(Dir) - Call sBuilder.AppendLine(String.Format("{0}
    {1}", dirInfo.LastWriteTimeUtc.ToStringEx, dirInfo.Name)) - Next - Call sBuilder.AppendLine() - For Each File As String In Files - Dim fileInfo = FileIO.FileSystem.GetFileInfo(File) - - If String.Equals(fileInfo.Extension, ".shl") Then - Call sBuilder.AppendLine(String.Format("{0} {1}", fileInfo.LastWriteTimeUtc.ToStringEx, fileInfo.Name)) - Else - Call sBuilder.AppendLine(String.Format("{0} {1}", fileInfo.LastWriteTimeUtc.ToStringEx, fileInfo.Name)) - End If - Next - Call Console.WriteLine(sBuilder.ToString) - - If String.Equals(ext, "*.*") Then - '返回所有 - Dim ChunkBuffer = Dirs.ToArray.Join(Files) - Return ChunkBuffer.ToArray - Else - Return Files.ToArray - End If - End Function - - - Public Function ProcessStart(argv As CommandLine.CommandLine) As Process - Dim file As String = FileIO.FileSystem.GetFileInfo(argv("-file")).FullName, arguments As String = argv("-argv") - Dim Process As Process = New Process() - Process.StartInfo = New System.Diagnostics.ProcessStartInfo(file) - If Not String.IsNullOrEmpty(arguments) Then - Process.StartInfo.Arguments = arguments - End If - Call Process.Start() - Return Process - End Function - - ''' - ''' 脚本与脚本之间的参数传递是通过共享内存变量来实现的 - ''' - ''' - ''' 返回目标脚本执行过后的Memory对象 - ''' - - Public Function Source(argv As CommandLine.CommandLine) As Runtime.Objects.I_MemoryManagementDevice - ' Dim CallerStack = _ShellScriptHost - - Dim ScriptFile As String = FileIO.FileSystem.GetFileInfo(argv.Parameters.First).FullName - Dim sourceArgv As String() = argv.Parameters.Skip(1).ToArray - - If Not sourceArgv.IsNullOrEmpty Then - For Each item In CommandLine.CommandLine.CreateParameterValues(sourceArgv, True) - Call ScriptEngine._EngineMemoryDevice.InsertOrUpdate(item.Key, ScriptEngine._EngineMemoryDevice.TryGetValue(item.Value)) - Next - End If - - Dim currentWork As String = My.Computer.FileSystem.CurrentDirectory - My.Computer.FileSystem.CurrentDirectory = FileIO.FileSystem.GetParentPath(ScriptFile) - Call ScriptEngine.EXEC(FileIO.FileSystem.ReadAllText(ScriptFile)) - My.Computer.FileSystem.CurrentDirectory = currentWork - ' CommandsEntryHandler._ShellScriptHost = CallerStack - - Return Me._RuntimeEnvironment._EngineMemoryDevice - End Function - End Class -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/InternalTextEngine.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/InternalTextEngine.vb deleted file mode 100644 index 9a47d52b7..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/InternalTextEngine.vb +++ /dev/null @@ -1,46 +0,0 @@ -Imports System.Text.RegularExpressions - -Namespace Interpreter - - ''' - ''' 内建的文本处理引擎 - ''' - ''' - Public Module InternalTextEngine - - '使用正则表达式进行文本操作 - 'var <- regex expression <= variable - 'var <- "\d\s{5}" <= $text - - '使用文本引擎进行基本的处理 - 'var <- "'tokens | first','mid 3 2'" <= $text - - Public Function SyntaxParser(Command As Microsoft.VisualBasic.CommandLine.CommandLine, MemoryDevice As ShoalShell.Runtime.Objects.I_MemoryManagementDevice) As ShoalShell.Runtime.Objects.ObjectModels.ScriptCodeLine - - If Command.Tokens.Count < 5 Then - Return Nothing - End If - - If Not (String.Equals(Command.Tokens(1), "<-") AndAlso String.Equals(Command.Tokens(3), "<=")) Then '不是文本处理命令 - Return Nothing - End If - - Dim Script As String = Command.Tokens(2) - Dim ScriptObject = Microsoft.VisualBasic.TextGrepScriptEngine.Compile(Script) - Dim ScriptLine As ShoalShell.Runtime.Objects.ObjectModels.ScriptCodeLine = - New Runtime.Objects.ObjectModels.ScriptCodeLine With - { - .OrignialScriptLine = Command.CLICommandArgvs, .ReturnType = GetType(String).FullName, .VariableAssigned = Command.Tokens.First} - Dim TextSource As String = Command.Tokens(4) - - If ScriptObject Is Nothing Then '正则表达式可能不可用被脚本引擎所正确的编译,则目标操作为正则表达式 - ScriptLine.InvokeMethod = Function() Regex.Match(input:=MemoryDevice.FormatString(TextSource), pattern:=Script).Value - Else - '使用内建的脚本引擎进行文本处理 - ScriptLine.InvokeMethod = Function() ScriptObject.Grep(MemoryDevice.FormatString(TextSource)) - End If - - Return ScriptLine - End Function - End Module -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/Interpreter.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/Interpreter.vb deleted file mode 100644 index 002e5ae70..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/Interpreter.vb +++ /dev/null @@ -1,621 +0,0 @@ -Imports System.Text.RegularExpressions -Imports System.Reflection - -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Objects.ObjectModels.Exceptions -Imports Microsoft.VisualBasic.Scripting.ShoalShell.DeviceDriver -Imports Microsoft.VisualBasic.Scripting.ShoalShell.DelegateHandlers.TypeLibraryRegistry -Imports Microsoft.VisualBasic.Scripting.ShoalShell.DelegateHandlers.EntryPointHandlers - -Namespace Interpreter - - 'REM <- ns function ${ns er df ${dse sd sds $adds}} - - ''' - ''' - ''' - ''' - Public Class Interpreter : Inherits ShoalShell.Runtime.Objects.ObjectModels.IScriptEngineComponent - - Protected Friend _DelegateRegistry As DelegateRegistry - Dim _IOSupport As IODeviceDriver - Dim _OutputSupport As OutputDeviceDriver - Dim _InputSupport As InputDeviceDriver - - Protected Friend _InternalMethodInvoker As ShoalShell.DelegateHandlers.EntryPointHandlers.MethodDelegateCaller - Protected Friend _InternalCommands As InternalCommands - - Public Const VARIABLE_NAME As String = "[^$^&^ ]\S*" - Public Const VARIABLE_ASSIGNMENT As String = VARIABLE_NAME & "\s+(<-|<<|>>|[~]|>|<=|<)\s+" - - Public ReadOnly Property InternalCommands As InternalCommands - Get - Return _InternalCommands - End Get - End Property - - ''' - ''' - ''' - ''' - ''' 注册表文件的文件路径 - ''' - Sub New(ScriptHost As Runtime.Objects.ShellScript, LibraryRegistry As String, Optional ShowInitializeMessage As Boolean = False, Optional preferIndexedManual As Boolean = True) - Call MyBase.New(ScriptHost) - Call InternalInitialize(ScriptHost, LibraryRegistry.LoadXml(Of ShoalShell.DelegateHandlers.TypeLibraryRegistry.DelegateRegistry), ShowInitializeMessage, preferIndexedManual) - End Sub - - Sub New(ScriptHost As Runtime.Objects.ShellScript, LibraryRegistry As ShoalShell.DelegateHandlers.TypeLibraryRegistry.DelegateRegistry, Optional ShowInitializeMessage As Boolean = False, Optional preferIndexedManual As Boolean = True) - Call MyBase.New(ScriptHost) - Call InternalInitialize(ScriptHost, LibraryRegistry, ShowInitializeMessage, preferIndexedManual) - End Sub - - Private Sub InternalInitialize(ScriptHost As Runtime.Objects.ShellScript, LibraryRegistry As ShoalShell.DelegateHandlers.TypeLibraryRegistry.DelegateRegistry, ShowInitializeMessage As Boolean, preferIndexedManual As Boolean) - If ShowInitializeMessage Then Call Console.WriteLine("[Start to Initialize...]") - - Call LibraryRegistry.CheckForLibraryConsists(ShowInitializeMessage) - - _DelegateRegistry = LibraryRegistry - ScriptEngine._InternalEntryPointManager = New DelegateHandlers.EntryPointHandlers.ImportsEntryPointManager(ScriptEngine, My.Computer.FileSystem.CurrentDirectory, disp_inits_message:=ShowInitializeMessage) - _InternalCommands = New InternalCommands(ScriptHost, ShowInitializeMessage, preferIndexedManual) - _InternalMethodInvoker = New MethodDelegateCaller(ScriptHost) - - '加载外部脚本的注册表 - If Not _DelegateRegistry.HybridsScriptingEntrypoints.IsNullOrEmpty Then - If ShowInitializeMessage Then Call Console.WriteLine("Loading hybrid scripting entries....") - - For Each EntryPoint As RegistryNodes.HybridScriptingModuleLoadEntry In _DelegateRegistry.HybridsScriptingEntrypoints - Call _RuntimeEnvironment._HybridScriptingInteropEntryPointHandler.LoadEntryPoints(AssemblyFile:=DelegateHandlers.TypeLibraryRegistry.DelegateRegistry.Internal_getFullPath(EntryPoint.AssemblyPath)) - Next - End If - - If ShowInitializeMessage Then Call Console.WriteLine("Initialize the Output device...") - _IOSupport = New IODeviceDriver(ScriptHost._EngineMemoryDevice) - _OutputSupport = New OutputDeviceDriver(ScriptHost._EngineMemoryDevice) - _InputSupport = New InputDeviceDriver(ScriptHost._EngineMemoryDevice) - ScriptHost._IOSupport = _IOSupport - ScriptHost._OutputSupport = _OutputSupport - ScriptHost._InputSupport = _InputSupport - - If ShowInitializeMessage Then - Call Console.WriteLine("IO device mounted, you can using command ""? mount"" to view the mounted device in shoal shell.") - Call Console.WriteLine() - Call Console.WriteLine("[Done!]" & vbCrLf) - End If - End Sub - - ''' - ''' Parsing the script text into the script objectmodel and then return for execute. - ''' - ''' - ''' - ''' - ''' #为注释符,解析器会自动忽略改行 - ''' - Public Function CreateScriptObject(ShellScript As String) As Runtime.Objects.ObjectModels.ShellScript - Dim Commands As List(Of String) = ShoalShell.Interpreter.DelegateDeclaration.TryParse(ShellScript.Replace(":=", " "), ScriptEngine.InternalEntryPointManager).ToList - Dim CommandList = ProcessIncludes(Commands, New List(Of String)) - - Dim LQuery = (From i As Integer In CommandList.Sequence - Let CmdlToken = CommandList(i) - Select InternalTryParse(Command:=CmdlToken, LineNumber:=i)).ToArray '当脚本之中有library和imports命令的时候,会被tryparse函数首先执行 - - Dim ResumrFlag As Integer() = (From i As Integer In CommandList.Sequence - Let strToken = CommandList(i) - Where strToken.CLICommandArgvs.First = "#"c AndAlso InStr(strToken.CLICommandArgvs.Replace("#", "").Trim, "on error resume next", CompareMethod.Text) = 1 - Select i).ToArray - - If Not ResumrFlag.IsNullOrEmpty Then - Dim i = ResumrFlag.First + 1 - - If Not i > CommandList.Count - 2 Then - Dim strTemp = CommandList(ResumrFlag.First + 1) - Dim XQuery = (From item In LQuery Where String.Equals(strTemp.CLICommandArgvs, item.OrignialScriptLine) Select item).First - XQuery.OnErrorResumeNext = True - End If - End If - - Return New Runtime.Objects.ObjectModels.ShellScript(LQuery, Me.ScriptEngine) - End Function - - ''' - ''' include的作用就是将多个脚本源文件合并在一起进行执行,本函数会将include申明的所在行替换为目标脚本的内容 - ''' - ''' - ''' - ''' - Private Function ProcessIncludes(source As List(Of String), ByRef IncludeList As List(Of String)) As List(Of CommandLine.CommandLine) -#Const DEBUG = 1 - -#If DEBUG Then - Dim LQuery = (From i As Integer In source.Sequence - Let strItemLine As String = source(i) - Let Tokens = CommandLine.CommandLine.TryParse(strItemLine.Trim, DuplicatedAllowed:=True) - Where String.Equals(Tokens.Name, "include", StringComparison.OrdinalIgnoreCase) - Let sourceFile As String = Tokens.Tokens(1) - Select LineNumber = i, sourceLine = strItemLine, sourceFile - Order By LineNumber Ascending).ToArray -#Else - Dim LQuery = (From i As Integer In source.Sequence.AsParallel - Let strItemLine As String = source(i) - Let Tokens = CommandLine.CommandLine.TryParse(strItemLine.Trim) - Where String.Equals(Tokens.Name, "include", StringComparison.OrdinalIgnoreCase) - Let sourceFile As String = Tokens.Tokens(1) - Select LineNumber = i, sourceLine = strItemLine, sourceFile - Order By LineNumber Ascending).ToArray -#End If - Dim sourceList = (From strLine As String In source Select CommandLine.CommandLine.TryParse(strLine, True)).ToList - - If LQuery.IsNullOrEmpty Then - Return sourceList - End If - - Call IncludeList.AddRange((From item In LQuery Select item.sourceFile).ToArray) - - If CheckCycleReference(IncludeList) = True Then - Throw New Runtime.Objects.ObjectModels.Exceptions.CircularReferencesException With {.IncludeList = IncludeList.ToArray} - End If - - For Each Line In LQuery - Call sourceList.RemoveAt(Line.LineNumber) - Call sourceList.InsertRange(Line.LineNumber, InternalProcessIncludes(path:=Line.sourceFile, IncludedList:=IncludeList)) - Next - - Return sourceList - End Function - - ''' - ''' 当函数返回TRUE的时候,表示有循环引用,则抛出错误 - ''' - ''' - ''' - ''' - Private Shared Function CheckCycleReference(includeList As Generic.IEnumerable(Of String)) As Boolean - Dim LQuery = (From s As String In includeList.AsParallel Select FileIO.FileSystem.GetFileInfo(s).FullName Group By FullName Into Group).ToArray - Dim Check = (From item In LQuery Where item.Group.Count > 1 Select 1).ToArray - Return Not Check.IsNullOrEmpty - End Function - - ''' - ''' tokens 0 -> include - ''' tokens 1 - ''' - ''' - ''' - ''' - Private Function InternalProcessIncludes(path As String, IncludedList As List(Of String)) As List(Of CommandLine.CommandLine) - Dim Commands As List(Of String) = ShoalShell.Interpreter.DelegateDeclaration.TryParse(FileIO.FileSystem.ReadAllText(path), ScriptEngine.InternalEntryPointManager).ToList - Dim source = ProcessIncludes(Commands, IncludedList) - Return source - End Function - - Private Function TypeSpecificVector(argvs As String, typeid As String) As Object - Dim array = Me._InternalCommands.CreateArray(argvs) - Dim castMethod = BuildInModules.System.Array.CastedTypes(typeid.ToLower) - Dim LQuery = castMethod(array) - Return LQuery - End Function - - Private Function InternalDelayGetValue(ref As String) As Object - Dim ScriptRef = Me.CreateScriptObject(ref) - Dim value = ScriptRef.Execute - Return value - End Function - - ''' - ''' 返回变量名和变量的赋值方法;对于方法调用,总是将得到的值赋值给一个保留的系统变量 - ''' - ''' - ''' 这个参数是由函数所传递进来的 - ''' - ''' - Private Function InternalTryParse(Command As CommandLine.CommandLine, LineNumber As Integer, Optional ExtensionMethodVariable As String = "") As Runtime.Objects.ObjectModels.ScriptCodeLine - Dim ExtMethod As Runtime.Objects.ObjectModels.ScriptCodeLine - Dim VariableName As String = Regex.Match(Command.CLICommandArgvs, VARIABLE_ASSIGNMENT, RegexOptions.IgnoreCase).Value - Dim GetValue As Func(Of Object) = Function() -1 - Dim OriginalCommand As String = Command.CLICommandArgvs - Dim ReturnType As String - - '请不要再修改本函数之中的语法对象的解析顺序了,当前的解析顺序已经很好的满足了语法特性和解析效率的需求了 - - Dim InternalTextProceeding As ShoalShell.Runtime.Objects.ObjectModels.ScriptCodeLine = ShoalShell.Interpreter.InternalTextEngine.SyntaxParser(Command, Me.ScriptEngine._EngineMemoryDevice) - - If Not InternalTextProceeding Is Nothing Then - InternalTextProceeding.LineNumber = LineNumber - InternalTextProceeding.LineFlag = LineNumber - - Return InternalTextProceeding - End If - - If InStr(OriginalCommand, " > ") > 0 Then - Dim Test As String = "$" & VariableName - If InStr(OriginalCommand, Test) >= 1 Then - VariableName = Test - End If - Dim SavePath As String = OriginalCommand.Replace(VariableName, "").Trim - SavePath = SavePath.GetString(wrapper:="""") - VariableName = VariableName.Replace(" > ", "").Trim - GetValue = Function() _IOSupport.WriteData(VariableName, SavePath) - Return New Runtime.Objects.ObjectModels.ScriptCodeLine With - { - .LineNumber = LineNumber, - .LineFlag = LineNumber, - .VariableAssigned = "$", - .OrignialScriptLine = OriginalCommand, - .InvokeMethod = GetValue} - End If - - If InStr(OriginalCommand, " < ") > 0 Then - Dim Right As String = OriginalCommand.Replace(VariableName, "").Trim - Dim typeid As String = Regex.Match(Right, "\(.+\)").Value - Right = Right.Replace(typeid, "").Trim - Right = Right.GetString(wrapper:="""") - VariableName = VariableName.Replace(" < ", "").Trim - typeid = Mid(typeid, 2) - typeid = Mid(typeid, 1, Len(typeid) - 1) - - GetValue = Function() As Object - Dim source As Object = Me.ScriptEngine._EngineMemoryDevice.TryGetValue(Right) - Dim value = _InputSupport.TypeCasting(source, typeid) - Return value - End Function - - Return New Runtime.Objects.ObjectModels.ScriptCodeLine With - { - .LineNumber = LineNumber, - .LineFlag = LineNumber, - .VariableAssigned = VariableName, - .OrignialScriptLine = OriginalCommand, - .InvokeMethod = GetValue} - End If - - If InStr(OriginalCommand, " <= ") > 0 Then '进行集合相关的操作 - - Dim ArrayGetItem As String = OriginalCommand.Replace(VariableName, "").Trim - - ' [$collection] <= element '向集合的尾部添加一个元素 - Dim testTemp As String = Regex.Match(VariableName, "\[\$.+?\]").Value - If Not String.IsNullOrEmpty(testTemp) Then - VariableName = Mid(testTemp, 2, Len(testTemp) - 2) '集合名称 - VariableName = Mid(VariableName, 2) - Dim value = Function() InternalDelayGetValue(ArrayGetItem) - GetValue = Function() BuildInModules.System.Array.AppendCollection(Me._RuntimeEnvironment._EngineMemoryDevice.TryGetValue(VariableName), element:=value()) - - GoTo COLLECTION_LINE - Else - - - - End If - - VariableName = VariableName.Replace(" <= ", "").Trim - - Const SPECIFIC_TYPE_VECTOR As String = "\((integer|double|boolean|string|long)\)\s+("".+""|\S+)" - - Dim tmp As String = Regex.Match(ArrayGetItem, pattern:=SPECIFIC_TYPE_VECTOR, options:=RegexOptions.IgnoreCase).Value - If Not String.IsNullOrEmpty(tmp) Then - Dim type As String = Regex.Match(tmp, "\(.+?\)").Value - Dim typeId = Mid(type, 2) - typeId = Mid(typeId, 1, Len(typeId) - 1) - tmp = tmp.Replace(type, "").Trim - GetValue = Function() TypeSpecificVector(argvs:=tmp, typeid:=typeId) - Else - GetValue = Function() BuildInModules.System.Array.get_Item(ArrayGetItem, Memory:=Me._RuntimeEnvironment._EngineMemoryDevice) - End If - -COLLECTION_LINE: Return New Runtime.Objects.ObjectModels.ScriptCodeLine With { - .LineNumber = LineNumber, .LineFlag = LineNumber, - .VariableAssigned = VariableName, - .OrignialScriptLine = OriginalCommand, - .InvokeMethod = GetValue, - .ReturnType = GetType(Object).FullName} - End If - - If InStr(OriginalCommand, " => ") > 0 Then - Dim var As String = Mid(OriginalCommand, InStr(OriginalCommand, " => ")) - Dim Expression As String = OriginalCommand.Replace(var, "").Trim - VariableName = var.Replace(" => ", "").Trim - GetValue = Function() BuildInModules.System.Array.set_Item(expression:=Expression, [object]:=VariableName, memory:=Me._RuntimeEnvironment._EngineMemoryDevice) - Return New Runtime.Objects.ObjectModels.ScriptCodeLine With { - .LineNumber = LineNumber, .LineFlag = LineNumber, - .VariableAssigned = VariableName, - .OrignialScriptLine = OriginalCommand, - .InvokeMethod = GetValue} - End If - - ' Pushing the .NET variable into the hybirds scripting environment - If InStr(OriginalCommand, " >> ") > 0 Then - Dim Test As String = "$" & VariableName - If InStr(OriginalCommand, Test) >= 1 Then - VariableName = Test - End If - Dim ExternalScriptVariable As String = OriginalCommand.Replace(VariableName, "").Trim - VariableName = VariableName.Replace(" >> ", "").Trim - GetValue = Function() _RuntimeEnvironment.ExternalScriptInteropSetValue(ExternalScriptVariable, Me._RuntimeEnvironment._EngineMemoryDevice.TryGetValue(VariableName)) - Return New Runtime.Objects.ObjectModels.ScriptCodeLine With { - .LineNumber = LineNumber, - .LineFlag = LineNumber, - .VariableAssigned = VariableName, - .OrignialScriptLine = OriginalCommand, - .InvokeMethod = GetValue} - End If - - 'invoke the external hybrid programming script statement and get the return value.(调用外部的脚本并返回计算结果) - If InStr(OriginalCommand, " << ") > 0 Then - Dim ExternalScript As String = OriginalCommand.Replace(VariableName, "").Trim - VariableName = VariableName.Replace(" << ", "").Trim - - If ExternalScript.First = "!"c Then '引用了之前所解析好的脚本块 - Dim Environment As String = Regex.Match(ExternalScript, "!\S+").Value - Dim Cmdl As CommandLine.CommandLine = CommandLine.CommandLine.TryParse(ExternalScript.Replace(Environment, "").Trim) - - Environment = Mid(Environment, 2) - GetValue = Function() _RuntimeEnvironment._HybridScriptingInteropEntryPointHandler.Evaluate(Environment, Cmdl) - Else - GetValue = Function() _RuntimeEnvironment.ExternalScriptInteropEvaluate(ExternalScript) - End If - - Return New Runtime.Objects.ObjectModels.ScriptCodeLine With { - .LineNumber = LineNumber, .LineFlag = LineNumber, - .VariableAssigned = VariableName, - .OrignialScriptLine = OriginalCommand, - .InvokeMethod = GetValue} - End If - - 'self type cast - 'equals to the statement: var <- $var -> ctype - If InStr(OriginalCommand, " ~ ") > 0 Then - Dim NewToken As String = VariableName.Replace(" ~ ", " -> ") - Command = OriginalCommand.Replace(VariableName, NewToken) - Dim Code = InternalTryParse(Command, LineNumber) - Code.VariableAssigned = VariableName.Split.First - Return Code - End If - - If OriginalCommand.First = "$"c Then '假若开头为$符号,则意味着本行命令可能是内存中的变量的引用,也可能为拓展函数 - ExtMethod = TryParseExtensionMethodSyntax(OriginalCommand, LineNumber) - If Not ExtMethod Is Nothing Then - ExtMethod.OrignialScriptLine = OriginalCommand - Return ExtMethod - End If - - Return New Runtime.Objects.ObjectModels.ScriptCodeLine With { - .LineNumber = LineNumber, .LineFlag = LineNumber, .OrignialScriptLine = Command.CLICommandArgvs, - .VariableAssigned = "$", - .InvokeMethod = Function() _OutputSupport.HandleOutput(variable:=Command.CLICommandArgvs)} - End If - If OriginalCommand.First = "&" Then '假若开头为&符号,则意味着本行命令可能是引用内存中的常数 - Return New Runtime.Objects.ObjectModels.ScriptCodeLine With { - .LineNumber = LineNumber, .LineFlag = LineNumber, .OrignialScriptLine = Command.CLICommandArgvs, - .VariableAssigned = "$", - .InvokeMethod = Function() _RuntimeEnvironment.PrintConstant(Command.CLICommandArgvs)} - End If - - If OriginalCommand.First = "!" Then 'Mount the hybrid programming entry point.(挂载混合编程的脚本环境的执行载入点) - Dim Name As String = Mid(OriginalCommand, 2).Trim - Return New Runtime.Objects.ObjectModels.ScriptCodeLine With { - .LineNumber = LineNumber, .LineFlag = LineNumber, .OrignialScriptLine = Command.CLICommandArgvs, - .VariableAssigned = "$", - .InvokeMethod = Function() _RuntimeEnvironment.AttachesEntryPoint(Name)} - End If - - Dim ExeType As ShoalShell.Runtime.Objects.ObjectModels.ScriptCodeLine.PreExecuteTypes - - If String.IsNullOrEmpty(VariableName) Then '本命令可能是对系统内部命令进行调用,以及没有Call的命令调用 - If InStr(OriginalCommand, "call ", CompareMethod.Text) = 1 Then - Command = Mid(OriginalCommand, 6).Trim - End If - - ExtMethod = TryParseExtensionMethodSyntax(Command.CLICommandArgvs, LineNumber) - If Not ExtMethod Is Nothing Then - ExtMethod.OrignialScriptLine = OriginalCommand - Return ExtMethod - End If - - VariableName = Runtime.Objects.I_MemoryManagementDevice.CONSERVED_SYSTEM_VARIABLE - Dim Handle = TryParseCommand(Command, ExtensionMethodVariable, ExeType) - GetValue = Handle.Value - ReturnType = Handle.Key.FullName - Else - If InStr(OriginalCommand, VariableName) = 1 Then '本句脚本命令调用了一个方法,然后将得到的值返回给一个变量 - Dim strCommand = Mid(OriginalCommand.Trim, Len(VariableName) + 1) - VariableName = VariableName.Split.First - - ExtMethod = TryParseExtensionMethodSyntax(strCommand, LineNumber) - If Not ExtMethod Is Nothing Then - ExtMethod.VariableAssigned = VariableName - ExtMethod.OrignialScriptLine = OriginalCommand - Return ExtMethod '拓展方法通过本路径返回,对于其他方法调用,则在函数的最后进行处理 - End If - - Dim Handle = TryParseCommand(strCommand, ExtensionMethodVariable, ExeType) - GetValue = Handle.Value - ReturnType = Handle.Key.FullName - Else '语法错误 - Throw New SyntaxErrorException("") With {.ScriptLine = Command.CLICommandArgvs, .LineNumber = LineNumber} - End If - End If - - Return New Runtime.Objects.ObjectModels.ScriptCodeLine With - { - .PreExecuteType = ExeType, - .ReturnType = ReturnType, - .LineNumber = LineNumber, .LineFlag = LineNumber, - .VariableAssigned = VariableName, - .OrignialScriptLine = OriginalCommand, - .InvokeMethod = GetValue - } - End Function - - Private Function TryParseExtensionMethodSyntax(Command As String, LineNumber As Integer) As Runtime.Objects.ObjectModels.ScriptCodeLine - Dim p As Integer = InStr(Command, " -> ") - - If Not p > 0 Then Return Nothing '为拓展函数语法 - - Dim ExtVariable As String = Mid(Command, 1, p - 1).Trim - - If ExtVariable.First = """"c AndAlso ExtVariable.Last = """"c Then - ExtVariable = Mid(ExtVariable, 2, Len(ExtVariable) - 2) '在这里不需要TRIM操作了,因为是取目标双引号之中的字符串 - End If - - Dim CodeLine = InternalTryParse(Mid(Command, p + 3).Trim, LineNumber, ExtVariable) - If InStr(ExtVariable, "call ") Then - ExtVariable = Mid(ExtVariable, 6).Trim - End If - - CodeLine.ExtensionMethodVariable = ExtVariable - - Return CodeLine - End Function - - Public Const EXTENSION_OPERATOR As String = "[extension$operator]" - - Private Shared Function ReGenerateExtensionCommand(Command As CommandLine.CommandLine, ExtendedVariable As String) As CommandLine.CommandLine - Dim Tokens = Command.Tokens.ToList - Call Tokens.AddRange(New String() {EXTENSION_OPERATOR, ExtendedVariable}) - Return CommandLine.CommandLine.TryParse(CommandLine.CommandLine.Join(Tokens), DuplicatedAllowed:=True) - End Function - - ''' - ''' 这里是处理已经导入的命令 - ''' - ''' - ''' - ''' - Public Function InternalGetImportsCommandEntryPoint(cmdInfo As CommandLine.CommandLine, ByRef ExeType As ShoalShell.Runtime.Objects.ObjectModels.ScriptCodeLine.PreExecuteTypes) As KeyValuePair(Of Type, Func(Of Object)) - Dim cmd = Me._RuntimeEnvironment.InternalEntryPointManager.MethodLoader.GetCommand(cmdInfo) - - ExeType = Runtime.Objects.ObjectModels.ScriptCodeLine.PreExecuteTypes.Normal - - If String.Equals(cmdInfo.Name, "imports", StringComparison.OrdinalIgnoreCase) OrElse String.Equals(cmdInfo.Name, "library", StringComparison.OrdinalIgnoreCase) Then - Call cmd() - If String.Equals(cmdInfo.Name, "imports", StringComparison.OrdinalIgnoreCase) Then - ExeType = Runtime.Objects.ObjectModels.ScriptCodeLine.PreExecuteTypes.Imports - Else - ExeType = Runtime.Objects.ObjectModels.ScriptCodeLine.PreExecuteTypes.Library - End If - Return New KeyValuePair(Of Type, Func(Of Object))(GetType(String), Function() cmdInfo.CLICommandArgvs) - ElseIf String.Equals(cmdInfo.Name, "for.each", StringComparison.OrdinalIgnoreCase) Then - Me._InternalCommands._InternalVariableName_ForEach = cmdInfo("in") - If Me._InternalCommands._InternalVariableName_ForEach.First = "$"c OrElse Me._InternalCommands._InternalVariableName_ForEach.First = "&"c Then - If Len(Me._InternalCommands._InternalVariableName_ForEach) > 1 Then - Me._InternalCommands._InternalVariableName_ForEach = Mid(Me._InternalCommands._InternalVariableName_ForEach, 2) - End If - End If - Return New KeyValuePair(Of Type, Func(Of Object))(GetType(Object), cmd) - ElseIf String.Equals(cmdInfo.Name, "dowhile", StringComparison.OrdinalIgnoreCase) Then - Me._InternalCommands._InternalVariableName_DoWhile = cmdInfo("test") - If Me._InternalCommands._InternalVariableName_DoWhile.First = "$"c OrElse Me._InternalCommands._InternalVariableName_DoWhile.First = "&"c Then - If Len(Me._InternalCommands._InternalVariableName_DoWhile) > 1 Then - Me._InternalCommands._InternalVariableName_DoWhile = Mid(Me._InternalCommands._InternalVariableName_DoWhile, 2) - End If - End If - Return New KeyValuePair(Of Type, Func(Of Object))(GetType(Object), cmd) - Else - Return New KeyValuePair(Of Type, Func(Of Object))(GetType(Object), cmd) - End If - End Function - - ''' - ''' - ''' - ''' 其实函数返回的也是一个集合 - ''' - ''' - Private Function CastValue(castMethod As Func(Of Object(), Object), value As String) As Object - - Dim val As Object = Me.ScriptEngine.GetValue(value) - val = castMethod({value}) - - Dim IList = DirectCast(val, IEnumerable) - Dim OnlyFirstValue = IList(0) - Return OnlyFirstValue - - End Function - - ''' - ''' 对于拓展方法而言,所调用的目标拓展方法之中的第一个参数为调用目标拓展方法的对象 - ''' - ''' - ''' - ''' - Private Function TryParseCommand(cmdInfo As CommandLine.CommandLine, ExtendedVariable As String, ByRef ExeType As ShoalShell.Runtime.Objects.ObjectModels.ScriptCodeLine.PreExecuteTypes) As KeyValuePair(Of Type, Func(Of Object)) - If Not String.IsNullOrEmpty(ExtendedVariable) Then '假若目标为拓展方法,则会在这里重新生成命令行,添加一个-operator的参数 - cmdInfo = ReGenerateExtensionCommand(cmdInfo, ExtendedVariable) - End If - - If Me._RuntimeEnvironment.InternalEntryPointManager.ExistsCommand(cmdInfo.Tokens.First) Then '这里是处理已经导入的命令 - Return InternalGetImportsCommandEntryPoint(cmdInfo, ExeType) - End If - - If cmdInfo.Tokens.Count = 1 Then '仅解析出一个词元的时候,假若认为目标对象为AssemblyName但是找不到方法,所以认为其应该是一个赋值用的变量 - Dim GetValue As Func(Of Object) = Function() As Object - Dim var As String = cmdInfo.Tokens.First() - Dim obj As Object = If(_RuntimeEnvironment._EngineMemoryDevice.ExistsVariable(var), - _RuntimeEnvironment._EngineMemoryDevice.TryGetValue(var), - _RuntimeEnvironment._EngineMemoryDevice.FormatString(var)) - Call Console.WriteLine(" = [0] {0}", obj.ToString) - Return obj - End Function - Return New KeyValuePair(Of Type, Func(Of Object))(GetType(String), GetValue) - End If - - If Regex.Match(cmdInfo.Tokens(0), "\(.+?\)").Success Then - - ' 进行强制类型转换 - Dim TypeRef As String = Mid(cmdInfo.Tokens(0), 2, Len(cmdInfo.Tokens(0)) - 2) - Dim value As String = cmdInfo.Tokens(1) - - Dim castMethod As Func(Of Object(), Object) = BuildInModules.System.Array.CastedTypes(TypeRef.ToLower) - Return New KeyValuePair(Of Type, Func(Of Object))(GetType(Object), Function() CastValue(castMethod, value)) - - End If - - Dim AssemblyName As String = cmdInfo.Tokens.First - Dim Command As String = Mid(cmdInfo.CLICommandArgvs, 1 + Len(AssemblyName)).Trim - Dim cmdName As String = cmdInfo.Tokens(1) - - If InStr(AssemblyName, "::") > 0 Then - Dim Tokens As String() = Strings.Split(AssemblyName, "::") - AssemblyName = Tokens.First - cmdName = Tokens.Last - Command = "system->invoke() " & Command - End If - - '下面的代码是处理没有导入的方法,所有的通过命名空间导入的方法都是共享方法 - - Dim MethodInfo As System.Reflection.MethodInfo() = _DelegateRegistry.GetMethod(AssemblyName, cmdName, _RuntimeEnvironment._EngineMemoryDevice) - Dim Invoke As Func(Of Object) - Dim ReturnType As Type - - If MethodInfo.Count = 1 Then - Dim EntryPoint = MethodInfo.First - Invoke = Function() Me._InternalMethodInvoker.CallMethod(EntryPoint, Command, _RuntimeEnvironment._EngineMemoryDevice) - ReturnType = EntryPoint.ReturnType - Else - Dim CallEntry = New ShoalShell.DelegateHandlers.EntryPointHandlers.CommandMethodEntryPoint("VB$AnonymousDirectlyNamespace.Invoke", MethodInfo) - Invoke = Function() Me._InternalMethodInvoker.CallMethod(EntryPoint:=CallEntry, argvs:=Command, MemoryDevice:=_RuntimeEnvironment._EngineMemoryDevice, TypeSignature:="") - ReturnType = GetType(System.Object) - End If - - Return New KeyValuePair(Of Type, Func(Of Object))(ReturnType, Invoke) - End Function - - Public Function TryGetCommand(Command As String) As DelegateHandlers.EntryPointHandlers.CommandMethodEntryPoint - Dim cmdInfo = CommandLine.CommandLine.TryParse(Command) - - If Me._RuntimeEnvironment.InternalEntryPointManager.ExistsCommand(cmdInfo.Tokens.First) Then - Return Me.ScriptEngine.InternalEntryPointManager(cmdInfo.Tokens.First) - End If - - If cmdInfo.Tokens.Count = 1 Then '仅解析出一个词元的时候,假若认为目标对象为AssemblyName但是找不到方法,抛出错误 - Throw New SyntaxErrorException("Command name was not specific!") With {.ScriptLine = Command} - End If - - Dim AssemblyName As String = cmdInfo.Tokens.First : Command = Mid(Command, 1 + Len(AssemblyName)).Trim - Dim cmdName As String = cmdInfo.Tokens(1) - Dim MethodInfo As System.Reflection.MethodInfo() = _DelegateRegistry.GetMethod(AssemblyName, cmdName, _RuntimeEnvironment._EngineMemoryDevice) - - Return DelegateHandlers.EntryPointHandlers.CommandMethodEntryPoint.NamespaceDirectlyCalled(MethodInfo) - End Function - End Class -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/ObjectModels/Expressions/Expression.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/ObjectModels/Expressions/Expression.vb deleted file mode 100644 index 0db19370e..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/ObjectModels/Expressions/Expression.vb +++ /dev/null @@ -1,297 +0,0 @@ -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.ObjectModels.Tokens - -Namespace Interpreter.ObjectModels.Statements - - Public MustInherit Class Statement - - Public MustOverride ReadOnly Property TypeID As Statement.Types - ''' - ''' 本句代码在脚本之中的原始的行数 - ''' - ''' - Public Property OriginalLineNumber As Integer - ''' - ''' 语句后面所出现的注释信息 - ''' - ''' - Public Property Comments As String '语句后面所出现的注释信息 - - Protected _originalExpression As String - - ''' - ''' 原始的表达式字符串 - ''' - ''' - Public ReadOnly Property Expression As String - Get - Return _originalExpression - End Get - End Property - - Sub New(Expression As String) - _originalExpression = Expression - End Sub - - Public Overrides Function ToString() As String - Return _originalExpression - End Function - - Public Enum Types - Comment - BlankCode - - Expression - [GoTo] - GotoTag - [Imports] - SyntaxError - OutputRef - MethodCalling - OnErrorResumeNext - Library - Include - - VariableDeclaration - End Enum - End Class - - ''' - ''' Dynamics install a external module in the runtime. - ''' - Public Class Library : Inherits Statement - - Public Overrides ReadOnly Property TypeID As Types - Get - Return Types.Library - End Get - End Property - - Public Property Assembly As String - - Sub New(Expression As String) - Call MyBase.New(Expression) - End Sub - End Class - - Public Class Include : Inherits Statement - - Public Overrides ReadOnly Property TypeID As Types - Get - Return Types.Include - End Get - End Property - - ''' - ''' The file path of the external script - ''' - ''' - Public Property ExternalScript As String - - Sub New(Expression As String) - Call MyBase.New(Expression) - End Sub - End Class - - Public Class SyntaxError : Inherits Statement - - Public Overrides ReadOnly Property TypeID As Types - Get - Return Types.SyntaxError - End Get - End Property - - Dim _Ex As String - -#Region "If any one of the property in this region is true, that means the line of this code is not a True syntax error, it just can't be parsing as any statement expression in the shoal language." - - ''' - ''' 对于空白行,是无法被解析出来的,但是空白行不是语法错误 - ''' - ''' - Public ReadOnly Property IsBlankLineSyntax As Boolean - Get - Return String.IsNullOrEmpty(MyBase._originalExpression.TrimA) - End Get - End Property - - Public ReadOnly Property IsCommentsSyntax As Boolean - Get - If IsBlankLineSyntax Then - Return False - End If - - Return Trim(_originalExpression).First = "#"c - End Get - End Property -#End Region - - Public ReadOnly Property IsSyntaxError As Boolean - Get - Return Not (IsBlankLineSyntax OrElse IsCommentsSyntax) - End Get - End Property - - Sub New(ex As String, Expression As String) - Call MyBase.New(Expression) - _Ex = If(IsBlankLineSyntax OrElse IsCommentsSyntax, Expression, ex) - End Sub - - Public Overrides Function ToString() As String - Return _Ex & " at line: " & Me.OriginalLineNumber - End Function - End Class - - ''' - ''' 解析出来的表达式之中只含有一个词元,并且不是注释,则默认认为是变量查看操作,值默认赋值给系统变量$ - ''' - Public Class OutputRef : Inherits Statement - - Public Overrides ReadOnly Property TypeID As Types - Get - Return Types.OutputRef - End Get - End Property - - Public ReadOnly Property InnerExpression As Tokens.InternalExpression - - Sub New(Expression As String) - Call MyBase.New(Expression) - _InnerExpression = New InternalExpression(Expression) - End Sub - End Class - - Public Class VariableDeclaration : Inherits Statement - - Public Overrides ReadOnly Property TypeID As Types - Get - Return Types.VariableDeclaration - End Get - End Property - - Public Property Variable As String - ''' - ''' 变量的类型约束 - ''' - ''' - Public Property Type As String - Public Property InterExpression As InternalExpression - - Sub New(Expression As String) - Call MyBase.New(Expression) - End Sub - End Class - - ''' - ''' Goto语句 - ''' - Public Class [GOTO] : Inherits Statement - - 'GOTO When - 'GOTO 33 When {$boolean} - - Public Property BooleanExpression As Tokens.InternalExpression - Public Property GotoFlag As Tokens.InternalExpression - - Public Overrides ReadOnly Property TypeID As Types - Get - Return Types.GoTo - End Get - End Property - - Sub New(Expression As String) - Call MyBase.New(Expression) - End Sub - - Public Overrides Function ToString() As String - Return $"GOTO {GotoFlag} When {BooleanExpression.ToString}" - End Function - - End Class - - ''' - ''' Goto的标签 - ''' - Public Class GotoTag : Inherits Statement - - Public Overrides ReadOnly Property TypeID As Types - Get - Return Types.GotoTag - End Get - End Property - - Public Property TagData As String - - Sub New(Expression As String) - Call MyBase.New(Expression) - End Sub - End Class - - ''' - ''' - ''' - Public Class [Imports] : Inherits Statement - - ''' - ''' 字符串常量或者内部表达式 - ''' - ''' - Public Property [Namespace] As String - - Sub New(Expression As String) - Call MyBase.New(Expression) - End Sub - - Public Overrides ReadOnly Property TypeID As Types - Get - Return Types.Imports - End Get - End Property - - Public ReadOnly Property IsNamespaceInternalExpression As Boolean - Get - Return [Namespace].First = "{"c AndAlso [Namespace].Last = "}"c - End Get - End Property - - Public Function Execute(ScriptEngine As ShoalShell.Runtime.Objects.ShellScript) As Boolean - - Dim nsValue As String = [Namespace] - - If IsNamespaceInternalExpression Then - nsValue = New InternalExpression(nsValue).GetValue(ScriptEngine) - End If - - Return ScriptEngine.InternalEntryPointManager.ImportsNamespace(nsValue) > 0 - End Function - End Class - - Public Class OnErrorResumeNext : Inherits Statement - - Public Overrides ReadOnly Property TypeID As Types - Get - Return Types.OnErrorResumeNext - End Get - End Property - - Sub New(Expression As String) - Call MyBase.New(Expression) - End Sub - - Public Shared Function IsOnErrorResumeNext(Tokens As Tokens.Token()) As Boolean - - If Tokens.Count <> 4 Then - Return False - End If - - Dim Flag As String() = {"On", "Error", "Resume", "Next"} - - For p As Integer = 0 To Flag.Count - 1 - If Not String.Equals(Tokens(p).GetTokenValue, Flag(p), StringComparison.OrdinalIgnoreCase) Then - Return False - End If - Next - - Return True - End Function - End Class -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/ObjectModels/Expressions/MethodCalling.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/ObjectModels/Expressions/MethodCalling.vb deleted file mode 100644 index 5ed38e6c3..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/ObjectModels/Expressions/MethodCalling.vb +++ /dev/null @@ -1,187 +0,0 @@ -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.ObjectModels.Tokens - -Namespace Interpreter.ObjectModels.Statements - - ''' - ''' 只是调用方法,函数的返回值直接返回给系统变量$ - ''' - Public Class MethodCalling : Inherits Statement - - Public Overrides ReadOnly Property TypeID As Types - Get - Return Types.MethodCalling - End Get - End Property - - ''' - ''' 对于类型而言,其不仅仅调用一个方法,而且还将方法的返回值赋值给一个指定的左端变量, - ''' 由于变量之间赋值传递的情况也可能存在,故而这个属性也可能是引用一个内存地址,当找不到方法的时候,就会通过这个参数来查找内存变量 - ''' - ''' - Public Property EntryPoint As EntryPoint - - ''' - ''' 解析得到的顺序应该和原始的脚本语句是一致的 - ''' - ''' - Public Property Parameters As Dictionary(Of ParameterName, InternalExpression) - Public Property BooleanSwitches As String() - - Sub New(Expression As String) - Call MyBase.New(Expression) - End Sub - - Public Overridable Function Execute(ScriptEngine As ShoalShell.Runtime.Objects.ShellScript) As Object - Return MethodCalling.Execute(EntryPoint, Parameters, ScriptEngine) - End Function - - ''' - ''' 由于所有的对象都要是动态指针来代替的,所以在这里需要计算参数名以及参数值的实际的位置 - ''' - ''' - ''' - ''' - ''' - Public Shared Function Execute(EntryPoint As EntryPoint, Parameters As Dictionary(Of ParameterName, InternalExpression), ScriptEngine As ShoalShell.Runtime.Objects.ShellScript) As Object - Dim ParameterValue As Dictionary(Of String, Object) = New Dictionary(Of String, Object) '计算过后所得到的参数名和参数值 - For Each Parameter In Parameters - Dim Name As String - If Parameter.Key.Type <> ParameterName.ParameterType.Normal Then - Name = Parameter.Key.Type.ToString - Else - Name = Parameter.Key.GetValue(ScriptEngine) - End If - - Dim value As Object = Parameter.Value.GetValue(ScriptEngine) - Call ParameterValue.Add(Name, value) - Next - - Dim [Function] = EntryPoint.TryGetEntryPoint(ScriptEngine) - Dim Handle = ScriptEngine._Interpreter._InternalMethodInvoker.FindOverloadsMethod([Function], ParameterValue, ScriptEngine._EngineMemoryDevice, "") - Dim params = GenerateParameters(ParameterValue, Handle.MethodEntryPoint) - Dim Result = Handle.Invoke(params, Handle.InvokeOnObject, True) - Return Result - End Function - - ''' - ''' 生成可选参数以及开关参数 - ''' - ''' - Private Shared Function GenerateParameters(ParameterValue As Dictionary(Of String, Object), Method As System.Reflection.MethodInfo) As Object() - Dim List As New List(Of Object) - Dim offset As Integer = 1 - - If ParameterValue.ContainsKey(ShoalShell.Interpreter.ObjectModels.Tokens.ParameterName.s_ExtensionMethodCaller) Then - Call List.Add(ParameterValue(ShoalShell.Interpreter.ObjectModels.Tokens.ParameterName.s_ExtensionMethodCaller)) - Call ParameterValue.Remove(ShoalShell.Interpreter.ObjectModels.Tokens.ParameterName.s_ExtensionMethodCaller) - - If ParameterValue.ContainsKey(ShoalShell.Interpreter.ObjectModels.Tokens.ParameterName.s_EXtensionSingleParameter) Then - Call List.Add(ParameterValue(ShoalShell.Interpreter.ObjectModels.Tokens.ParameterName.s_EXtensionSingleParameter)) - Call ParameterValue.Remove(ShoalShell.Interpreter.ObjectModels.Tokens.ParameterName.s_EXtensionSingleParameter) - - offset = 2 - End If - - Else - If ParameterValue.ContainsKey(ShoalShell.Interpreter.ObjectModels.Tokens.ParameterName.s_SingleParameter) Then - Call List.Add(ParameterValue(ShoalShell.Interpreter.ObjectModels.Tokens.ParameterName.s_SingleParameter)) - Call ParameterValue.Remove(ShoalShell.Interpreter.ObjectModels.Tokens.ParameterName.s_SingleParameter) - End If - End If - - For Each parameter In Method.GetParameters.Skip(offset) - If ParameterValue.ContainsKey(parameter.Name) Then - Call List.Add(ParameterValue(parameter.Name)) - Call ParameterValue.Remove(parameter.Name) - Else - - '但是为可选参数或者为逻辑值 - If parameter.IsOptional Then - Call List.Add(parameter.DefaultValue) - ElseIf parameter.ParameterType.Equals(GetType(Boolean)) - Call List.Add(False) '开关参数默认为False - Else - - '语法错误 - Throw New ShoalShell.Runtime.Objects.ObjectModels.Exceptions.SyntaxErrorException($"Could not found the parameter value for ""{parameter.Name} As {parameter.ParameterType.FullName}""!") - - End If - End If - Next - - Return List.ToArray - End Function - End Class - - ' a <- $b - ' a = $b - ' a = $b -> method - ' call $a -> method - - - ''' - ''' 本表达式对象仅仅解析出词元对象 - ''' - Public Class Expression : Inherits MethodCalling - - Public Property LeftAssignedVariable As LeftAssignedVariable - Public Property [Operator] As [Operator] - Public Property ExtensionVariable As LeftAssignedVariable - - Sub New(Expression As String) - Call MyBase.New(Expression) - End Sub - - ''' - ''' 只有左端引用表达式不为空,其他的元素都为空 - ''' - ''' - Public ReadOnly Property IsVariable As Boolean - Get - If Not [Operator] Is Nothing Then - Return False - End If - If Not EntryPoint Is Nothing Then - Return False - End If - If Not Parameters.IsNullOrEmpty Then - Return False - End If - - Return Not LeftAssignedVariable Is Nothing - End Get - End Property - - Public Overrides ReadOnly Property TypeID As Types - Get - Return Types.Expression - End Get - End Property - - Public Overrides Function Execute(ScriptEngine As ShoalShell.Runtime.Objects.ShellScript) As Object - - If IsVariable Then - Return LeftAssignedVariable.GetValue(ScriptEngine.ScriptEngineMemoryDevice) - End If - - Dim hash = MyBase.Parameters.CopyTypeDef - If Not ExtensionVariable Is Nothing Then - Call hash.Add(New ParameterName(ParameterName.ParameterType.ExtensionMethodCaller, ""), New InternalExpression(ExtensionVariable.GetTokenValue)) - End If - - - Call hash.AddRange(MyBase.Parameters) - - Dim value = MethodCalling.Execute(EntryPoint, hash, ScriptEngine) '得到计算值,然后需要进行赋值 - - ''在这里需要根据运算符的不同来选择不同的处理方法 - 'If [Operator].Type = [Operator].Operators.ValueAssign OrElse [Operator].Type = [Operator].Operators.HybridsScript OrElse [Operator].Type = [Operator].Operators.SelfCast Then - ' Call LeftAssignedVariable.WriteMemory(value, ScriptEngine.ScriptEngineMemoryDevice) - 'End If - - Return value - End Function - - End Class - -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/ObjectModels/ScriptModel.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/ObjectModels/ScriptModel.vb deleted file mode 100644 index 4c8a975b1..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/ObjectModels/ScriptModel.vb +++ /dev/null @@ -1,94 +0,0 @@ -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.ObjectModels.Statements -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.ObjectModels.Tokens - -Namespace Interpreter.ObjectModels - - ''' - ''' 只有解析出来的词元模型,,没有包含有函数指针的句柄信息,还不能够直接运行 - ''' - Public Class ScriptModel - - Public Property Expressions As Statement() - ''' - ''' Value是指向列表之中的元素的位置下表 - ''' - ''' - Public Property GotoFlags As Dictionary(Of String, Integer) - Public Property File As String - - ''' - ''' 脚本文件的文件路径 - ''' - ''' - ''' - ''' - Public Shared Function ScriptParser(ScriptText As String, File As String) As ScriptModel - Dim s_Data As String() = ScriptText.Replace(vbLf, "").Split(CChar(vbCr)) - Dim LQuery = (From i As Integer In s_Data.Sequence'.AsParallel - Let Expr = SyntaxParser.Parsing(s_Data(i))?.InvokeSet(Of Integer)(NameOf(Statement.OriginalLineNumber), i) - Where Not Expr Is Nothing - Select i, Expr - Order By i Ascending).ToList - - '检查是否有语法错误 - Dim GetSyntaxError = (From Token In LQuery.AsParallel - Where Token.Expr.TypeID = Statement.Types.SyntaxError - Select Token.Expr.As(Of Statements.SyntaxError)).ToArray - Dim SyntaxErrorChecks = (From Token In GetSyntaxError - Where Token.IsSyntaxError - Select Token).ToArray - - If Not SyntaxErrorChecks.IsNullOrEmpty Then Call ThrowSyntaxException(SyntaxErrorChecks, File) '有语法错误,则抛出错误 - - Dim GotoTags As Dictionary(Of String, Integer) = ' GotoTag的下一行就是目标起始点 - New Dictionary(Of String, Integer) - Dim p As Integer = -1 - - Do While p.MoveNext < LQuery.Count - 1 - - Dim Line = LQuery(p) - - If Line.Expr.TypeID = Statement.Types.GotoTag Then - - '移除这一行,同时标记下一行的行号,由于移除了这一行,则下一行会上移一行,则行号就是这个i的值 - Call LQuery.RemoveAt(p) - Call GotoTags.Add(DirectCast(Line.Expr, GotoTag).TagData, p) - End If - Loop - - Return New ScriptModel With { - .Expressions = (From Line In LQuery Select Line.Expr).ToArray, - .GotoFlags = GotoTags, - .File = File - } - End Function - - Public Shared Function LoadFile(path As String) As ScriptModel - Dim Script As String = FileIO.FileSystem.ReadAllText(path) - Return ScriptModel.ScriptParser(Script, path) - End Function - - ''' - ''' at Shoal.Testing.Debugger.Main() in G:\Shoal\Shoal.Testing\Debugger.vb:line 21 - ''' - ''' - ''' - Private Shared Sub ThrowSyntaxException(Tokens As Statements.SyntaxError(), File As String) - If Not String.IsNullOrEmpty(File) Then - File = $" {File}" - Else - File = " " - End If - - Dim Details As String = String.Join(vbCrLf, (From Token As Statements.SyntaxError - In Tokens - Select str = $" at {Token.Expression} in{File}:line {Token.OriginalLineNumber}").ToArray) - Details = "The syntax in these statements is currently not support yet:" & vbCrLf & vbCrLf & - Details -#If DEBUG Then - Call Console.WriteLine(Details) -#End If - Throw New SyntaxErrorException(Details) - End Sub - End Class -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/ObjectModels/SyntaxParser.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/ObjectModels/SyntaxParser.vb deleted file mode 100644 index 382d2984e..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/ObjectModels/SyntaxParser.vb +++ /dev/null @@ -1,406 +0,0 @@ -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.ObjectModels.Statements -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.ObjectModels.Tokens - -Namespace Interpreter.ObjectModels - - ''' - ''' 语法解析器 - ''' - Public Module SyntaxParser - - ''' - ''' 从这里开始解析表达式 - ''' - ''' - ''' - Public Function Parsing(Expression As String) As ShoalShell.Interpreter.ObjectModels.Statements.Statement - - Dim Parser As New ShoalShell.Interpreter.ObjectModels.Tokenliser(Expression) - Dim Tokens As Tokens.Token() = Parser.Tokens - Dim Expr As Statement = Nothing - - If Not TryParseVariableAssign(Expression, Tokens).ShadowCopy(Expr) Is Nothing Then - Return Expr.InvokeSet(Of String)(NameOf(Statement.Comments), value:=Parser.Comments) - - ElseIf Not TryParseCollectionOpr(Expression, Tokens).ShadowCopy(Expr) Is Nothing Then - Return Expr.InvokeSet(Of String)(NameOf(Statement.Comments), value:=Parser.Comments) - - ElseIf Not TryParseExtCall(Expression, Tokens).ShadowCopy(Expr) Is Nothing Then - Return Expr.InvokeSet(Of String)(NameOf(Statement.Comments), value:=Parser.Comments) - - ElseIf Not TryParseVariableDeclaration(Expression, Tokens).ShadowCopy(Expr) Is Nothing - Return Expr.InvokeSet(Of String)(NameOf(Statement.Comments), value:=Parser.Comments) - - ElseIf Not TryParseHybirdsScriptPush(Expression, Tokens).ShadowCopy(Expr) Is Nothing Then - Return Expr.InvokeSet(Of String)(NameOf(Statement.Comments), value:=Parser.Comments) - - ElseIf Not TryParseHybridsScript(Expression, Tokens).ShadowCopy(Expr) Is Nothing Then - Return Expr.InvokeSet(Of String)(NameOf(Statement.Comments), value:=Parser.Comments) - - ElseIf Not TryParseSelfCast(Expression, Tokens).ShadowCopy(Expr) Is Nothing Then - Return Expr.InvokeSet(Of String)(NameOf(Statement.Comments), value:=Parser.Comments) - - End If - - If Not TryParseGotoTag(Expression, Tokens).ShadowCopy(Expr) Is Nothing Then - Return Expr.InvokeSet(Of String)(NameOf(Statement.Comments), value:=Parser.Comments) - - ElseIf Not TryParseOutputHandle(Expression, Tokens).ShadowCopy(Expr) Is Nothing Then - Return Expr.InvokeSet(Of String)(NameOf(Statement.Comments), value:=Parser.Comments) - - ElseIf Not TryParseImports(Expression, Tokens).ShadowCopy(Expr) Is Nothing Then - Return Expr.InvokeSet(Of String)(NameOf(Statement.Comments), value:=Parser.Comments) - - ElseIf Not TryParseInclude(Expression, Tokens).ShadowCopy(Expr) Is Nothing - Return Expr.InvokeSet(Of String)(NameOf(Statement.Comments), value:=Parser.Comments) - - ElseIf Not TryParseLibrary(Expression, Tokens).ShadowCopy(Expr) Is Nothing - Return Expr.InvokeSet(Of String)(NameOf(Statement.Comments), value:=Parser.Comments) - - ElseIf Not TryParseMethodCalling(Expression, Tokens).ShadowCopy(Expr) Is Nothing Then - Return Expr.InvokeSet(Of String)(NameOf(Statement.Comments), value:=Parser.Comments) - - ElseIf Not TryParseGoto(Expression, Tokens).ShadowCopy(Expr) Is Nothing - Return Expr.InvokeSet(Of String)(NameOf(Statement.Comments), value:=Parser.Comments) - - End If - - Return New SyntaxError("The syntax is currently not support yet! ===> " & Expression, Expression) - End Function - - Public Function TryParseLibrary(expression As String, Tokens As Tokens.Token()) As ShoalShell.Interpreter.ObjectModels.Statements.Library - If Tokens.Count <> 2 Then - Return Nothing - End If - - If Not String.Equals(Tokens(0).GetTokenValue, "library", StringComparison.OrdinalIgnoreCase) Then - Return Nothing - End If - - Return New Library(expression) With {.Assembly = Tokens(1)} - End Function - - Public Function TryParseInclude(expression As String, Tokens As Tokens.Token()) As ShoalShell.Interpreter.ObjectModels.Statements.Include - If Tokens.Count <> 2 Then - Return Nothing - End If - - If Not String.Equals(Tokens(0).GetTokenValue, "include", StringComparison.OrdinalIgnoreCase) Then - Return Nothing - End If - - Return New Include(expression) With {.ExternalScript = Tokens(1)} - End Function - - Public Function TryParseGoto(expression As String, Tokens As Tokens.Token()) As ShoalShell.Interpreter.ObjectModels.Statements.GOTO - If Tokens.Count <> 4 Then - Return Nothing - End If - - If Not (String.Equals(Tokens(0).GetTokenValue, "goto", StringComparison.OrdinalIgnoreCase) AndAlso String.Equals(Tokens(2).GetTokenValue, "when", StringComparison.OrdinalIgnoreCase)) Then - Return Nothing - End If - - Return New [GOTO](expression) With {.GotoFlag = New ObjectModels.Tokens.InternalExpression(Tokens(1)), .BooleanExpression = New ObjectModels.Tokens.InternalExpression(Tokens(3))} - End Function - - Public Function TryParseGotoTag(expression As String, Tokens As Tokens.Token()) As ShoalShell.Interpreter.ObjectModels.Statements.GotoTag - If Tokens.Count <> 1 Then - Return Nothing - End If - - Dim Tag As String = Tokens(0).GetTokenValue.Trim - If Tag.Last <> ":"c Then - Return Nothing - Else - Tag = Mid(Tag, 1, Len(Tag) - 1) - End If - - Return New GotoTag(expression) With {.TagData = Tag} - End Function - - Public Function TryParseVariableDeclaration(expression As String, Tokens As Tokens.Token()) As ShoalShell.Interpreter.ObjectModels.Statements.VariableDeclaration - If Not (Tokens.Count = 4 OrElse Tokens.Count = 6) Then - Return Nothing - End If - - If Not String.Equals(Tokens(Scan0).GetTokenValue, "Dim", StringComparison.OrdinalIgnoreCase) OrElse - String.Equals(Tokens(Scan0).GetTokenValue, "var", StringComparison.OrdinalIgnoreCase) Then - Return Nothing - End If - - If ShoalShell.Interpreter.ObjectModels.Tokens.Operator.GetOperator(Tokens(2).GetTokenValue) <> [Operator].Operators.ValueAssign Then - Return Nothing - End If - - Dim Type As String - - If Tokens.Count > 4 Then - If Not String.Equals(Tokens(4).GetTokenValue, "As", StringComparison.OrdinalIgnoreCase) Then - Return Nothing - Else - Type = Tokens(5).GetTokenValue - End If - Else - Type = "Object" - End If - - Return New VariableDeclaration(expression) With {.InterExpression = New InternalExpression(Tokens(3)), .Variable = Tokens(1).GetTokenValue, .Type = Type} - End Function - - Public Function TryParseMethodCalling(expression As String, Tokens As Tokens.Token()) As ShoalShell.Interpreter.ObjectModels.Statements.MethodCalling - Dim Parameters As Dictionary(Of Tokens.ParameterName, Tokens.InternalExpression) - Try - If Tokens.IsNullOrEmpty Then - Return Nothing - End If - - Parameters = __createParameters(Tokens, 1) - Catch ex As Exception - Return Nothing - End Try - - Return New Statements.MethodCalling(expression) With {.EntryPoint = New ObjectModels.Tokens.EntryPoint(Tokens(0).GetTokenValue), .Parameters = Parameters} - End Function - - ''' - ''' - ''' - ''' 只是用于显示的原始脚本行 - ''' 使用这个已经解析好的词元进行对象的生成 - ''' - Public Function TryParseOutputHandle(expression As String, Tokens As Tokens.Token()) As ShoalShell.Interpreter.ObjectModels.Statements.OutputRef - If Not Tokens.Count = 1 Then - Return Nothing - End If - - Return New OutputRef(Tokens(0).GetTokenValue) - End Function - - ''' - ''' - ''' - ''' 只是用于显示的原始脚本行 - ''' 使用这个已经解析好的词元进行对象的生成 - ''' - Public Function TryParseImports(expression As String, Tokens As Tokens.Token()) As ShoalShell.Interpreter.ObjectModels.Statements.Imports - If Tokens.Count <> 2 Then '只有两个单词: Imports - Return Nothing - End If - - If Not String.Equals(Tokens(0).GetTokenValue, "Imports", StringComparison.OrdinalIgnoreCase) Then - Return Nothing - End If - - Return New [Imports](expression) With {.Namespace = Tokens(1).GetTokenValue} - End Function - - ''' - ''' - ''' - ''' 只是用于显示的原始脚本行 - ''' 使用这个已经解析好的词元进行对象的生成 - ''' - Public Function TryParseVariableAssign(expression As String, Tokens As Tokens.Token()) As Expression - - If GetOperator(Tokens) <> ObjectModels.Tokens.Operator.Operators.ValueAssign Then - Return Nothing - End If - - Dim Expr As Expression = New Expression(expression) With - { - .Operator = New ObjectModels.Tokens.Operator("<-"), - .LeftAssignedVariable = New ObjectModels.Tokens.LeftAssignedVariable(Tokens(0).GetTokenValue)} - - '第二个元素可能是变量也可能是函数名 - '假若存在第三个元素,并且是拓展函数调用方法 -> 的话,则第二个元素为变量名 - - Dim idx As Integer - - If Tokens.Count > 4 AndAlso String.Equals(Tokens(3).GetTokenValue, "->") Then - ' 2 3 4 .... - '拓展方法调用: 拓展变量 -> 函数名 参数列表 - - idx = 5 - Expr.ExtensionVariable = New Tokens.LeftAssignedVariable(Tokens(2).GetTokenValue) - Expr.EntryPoint = New Tokens.EntryPoint(Tokens(4).GetTokenValue) - - Else - - ' 0 1 2 3 - '普通的方法调用: 变量 <- 函数名称 参数列表 - idx = 3 - Expr.EntryPoint = New Tokens.EntryPoint(Tokens(2).GetTokenValue) - End If - - Try - Expr.Parameters = __createParameters(Tokens, Index:=idx) - Catch ex As Exception - '当可用的参数的数目不是偶数的时候,说明语法错了 - Return Nothing - End Try - - Return Expr - End Function - - Private Function __createParameters(Tokens As Tokens.Token(), Index As Integer) As Dictionary(Of Tokens.ParameterName, Tokens.InternalExpression) - Dim hash = New Dictionary(Of Tokens.ParameterName, Tokens.InternalExpression) - - If Index = Tokens.Count - 1 Then '函数可能只有一个参数,则参数名被省略了 - Call hash.Add(New Tokens.ParameterName(ObjectModels.Tokens.ParameterName.ParameterType.SingleParameter, ""), - New Tokens.InternalExpression(Tokens.Last)) - Return hash - End If - - Dim LQuery = (From obj In Tokens Where obj.GetTokenValue.Last = ","c Select 1).ToArray - - If LQuery.Count = Tokens.Count - Index - 1 Then - - ' 使用逗号来分隔,参数是按照函数的定义顺序来排列的 - Do While Index < Tokens.Count - 1 - - Dim pName = New Tokens.ParameterName(ObjectModels.Tokens.ParameterName.ParameterType.OrderReference, "") - Dim pValue = New Tokens.InternalExpression(Tokens(Index.MoveNext).GetTokenValue) - - pValue.Expression = Mid(pValue.Expression, 1, Len(pValue.Expression) - 1) - - Call hash.Add(pName, pValue) - Loop - - Call hash.Add(New Tokens.ParameterName(ObjectModels.Tokens.ParameterName.ParameterType.OrderReference, ""), New Tokens.InternalExpression(Tokens.Last)) - Else - - Dim valueTokens As String() = (From Token In Tokens.Skip(Index) Select Token.GetTokenValue).ToArray - Dim CommandLine = Microsoft.VisualBasic.CommandLine.CommandLine.CreateParameterValues(valueTokens, True) - - For Each obj In CommandLine - Dim pName As Tokens.ParameterName - - If Microsoft.VisualBasic.CommandLine.CommandLine.IsPossibleBooleanSwitch(obj.Key) Then - pName = New ParameterName(ParameterName.ParameterType.BooleanSwitch, Microsoft.VisualBasic.CommandLine.CommandLine.TrimBooleanSwitchPrefix(obj.Key)) - Else - pName = New Tokens.ParameterName(ObjectModels.Tokens.ParameterName.ParameterType.Normal, obj.Key) - End If - - Dim pValue = New Tokens.InternalExpression(obj.Value) - - Call hash.Add(pName, pValue) - Next - End If - - Return hash - End Function - - Private Function GetOperator(Tokens As Tokens.Token()) As Tokens.Operator.Operators - If Tokens.Count <= 2 Then - Return ObjectModels.Tokens.Operator.Operators.NULL - End If - - Dim Temp = Tokens(1) - Dim [operator] = ShoalShell.Interpreter.ObjectModels.Tokens.Operator.GetOperator(Temp.GetTokenValue) - Return [operator] - End Function - - ''' - ''' - ''' - ''' 只是用于显示的原始脚本行 - ''' 使用这个已经解析好的词元进行对象的生成 - ''' - Public Function TryParseExtCall(expression As String, Tokens As Tokens.Token()) As Expression - - If GetOperator(Tokens) <> ObjectModels.Tokens.Operator.Operators.ExtCall Then - Return Nothing - End If - - Dim Expr As Expression = New Expression(expression) With {.Operator = New ObjectModels.Tokens.Operator("->"), - .EntryPoint = New ObjectModels.Tokens.EntryPoint(Tokens(2)), - .ExtensionVariable = New ObjectModels.Tokens.LeftAssignedVariable(Tokens(0)), - .LeftAssignedVariable = New ObjectModels.Tokens.LeftAssignedVariable("$")} - - Call TryGetParameters(Tokens.Skip(3).ToArray, Expr.Parameters, Expr.BooleanSwitches) - - Return Expr - - End Function - - Private Sub TryGetParameters(Tokens As Token(), ByRef parameters As Dictionary(Of ParameterName, InternalExpression), ByRef BooleanSwitches As String()) - Dim Temp As String() = (From obj In Tokens Select obj.GetTokenValue).ToArray - Dim SingleParameter As String = "" - Dim Parser = Microsoft.VisualBasic.CommandLine.CommandLine.GetPossibleSwitches(Temp, SingleParameter) - Dim params = Microsoft.VisualBasic.CommandLine.CommandLine.CreateParameterValues(Temp, True) - - parameters = New Dictionary(Of ParameterName, InternalExpression) - - If Not String.IsNullOrEmpty(SingleParameter) Then - Call parameters.Add(New ParameterName(ParameterName.ParameterType.SingleParameter, ""), New InternalExpression(SingleParameter)) - End If - - parameters.AddRange((From obj In params - Select Name = New ParameterName(ParameterName.ParameterType.Normal, obj.Key), - value = New InternalExpression(obj.Value)).ToArray.ToDictionary(Function(obj) obj.Name, elementSelector:=Function(obj) obj.value)) - BooleanSwitches = (From s As String In Parser Select CommandLine.CommandLine.TrimBooleanSwitchPrefix(s)).ToArray - End Sub - - ''' - ''' - ''' - ''' 只是用于显示的原始脚本行 - ''' 使用这个已经解析好的词元进行对象的生成 - ''' - Public Function TryParseCollectionOpr(expression As String, Tokens As Tokens.Token()) As Expression - If GetOperator(Tokens) <> ObjectModels.Tokens.Operator.Operators.CollectionOpr Then - Return Nothing - End If - - Dim Expr As Expression = New Expression(expression) With {.Operator = New ObjectModels.Tokens.Operator("<=")} - Return Expr - End Function - - ''' - ''' - ''' - ''' 只是用于显示的原始脚本行 - ''' 使用这个已经解析好的词元进行对象的生成 - ''' - Public Function TryParseSelfCast(expression As String, Tokens As Tokens.Token()) As Expression - If GetOperator(Tokens) <> ObjectModels.Tokens.Operator.Operators.SelfCast Then - Return Nothing - End If - - Dim Expr As Expression = New Expression(expression) With {.Operator = New ObjectModels.Tokens.Operator("=")} - Return Expr - End Function - - ''' - ''' - ''' - ''' 只是用于显示的原始脚本行 - ''' 使用这个已经解析好的词元进行对象的生成 - ''' - Public Function TryParseHybridsScript(expression As String, Tokens As Tokens.Token()) As Expression - If GetOperator(Tokens) <> ObjectModels.Tokens.Operator.Operators.HybridsScript Then - Return Nothing - End If - - Dim Expr As Expression = New Expression(expression) With {.Operator = New ObjectModels.Tokens.Operator("<<")} - Return Expr - End Function - - ''' - ''' - ''' - ''' 只是用于显示的原始脚本行 - ''' 使用这个已经解析好的词元进行对象的生成 - ''' - Public Function TryParseHybirdsScriptPush(expression As String, Tokens As Tokens.Token()) As Expression - If GetOperator(Tokens) <> ObjectModels.Tokens.Operator.Operators.HybirdsScriptPush Then - Return Nothing - End If - - Dim Expr As Expression = New Expression(expression) With {.Operator = New ObjectModels.Tokens.Operator(">>")} - Return Expr - End Function - - End Module -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/ObjectModels/Tokenlisers/FullTokenliser.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/ObjectModels/Tokenlisers/FullTokenliser.vb deleted file mode 100644 index ede64fb40..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/ObjectModels/Tokenlisers/FullTokenliser.vb +++ /dev/null @@ -1,267 +0,0 @@ -Namespace Interpreter.ObjectModels - - ''' - ''' 将表达式之中的所有词元进行完全展开 - ''' - Public Class FullTokenliser - - Protected ReadOnly Tokens As Tokens.Token() - - Public Function GetNormalizedTokens() As Tokens.Token()()() - - Dim Normalized As New List(Of Tokens.Token()) - Dim SetLeft As Boolean = False - Dim SetOperator As Boolean = False - Dim SetFunction As Boolean = False - Dim IsParameter As Boolean = True - Dim PreDepth As Integer = Tokens.First.DepthLevel - - Dim TempCluster As New List(Of Tokens.Token) - - For Each Token In Tokens - - If Token.DepthLevel <> PreDepth Then - - '堆栈的深度发生了变化,则新起一行 - Call Normalized.Add(TempCluster.ToArray) - Call TempCluster.Clear() - - PreDepth = Token.DepthLevel - - End If - - Call TempCluster.Add(Token) - Next - - Call Normalized.Add(TempCluster.ToArray) - - '将第一集调用的都进行分组 - - Dim RootNormalized As New List(Of Tokens.Token()()) - Dim TempChunk As New List(Of Tokens.Token()) - - For i As Integer = 0 To Normalized.Count - 1 - - Dim Token = Normalized(i) - - If Token.First.DepthLevel <> 0 Then - - Call TempChunk.Add(Token) - - Do While Token.First.DepthLevel <> 0 AndAlso i < Normalized.Count - 1 - - i += 1 - Token = Normalized(i) - - If Token.First.DepthLevel <> 0 Then - - Call TempChunk.Add(Token) - - Else - - Exit Do - End If - - Loop - - Call RootNormalized.Add(TempChunk.ToArray) - Call TempChunk.Clear() - End If - - Token = Normalized(i) - - If i = Normalized.Count - 1 AndAlso Token.First.DepthLevel <> 0 Then - Continue For - End If - - For Each RootToken In Token - - Call RootNormalized.Add(New Tokens.Token()() {New Tokens.Token() {RootToken}}) - - Next - - Next - - Return RootNormalized.ToArray - - End Function - - Private Shared Sub NewLine(OprTag As Char, ByRef TempToken As List(Of Char), ByRef Stack As Stack(Of Char), ByRef TokenList As List(Of Tokens.Token)) - If TempToken.IsNullOrEmpty Then - Return - End If - - Dim s_Token As String = New String(TempToken.ToArray) - - Call TokenList.Add(New Tokens.Token(Stack.Count, s_Token) With {.OprTag = OprTag}) - Call TempToken.Clear() - End Sub - - ''' - ''' 将表达式解析为词元,每一个词元都不含有前导或者后置的空白符号 - ''' 断词元的条件是Stack必须为空 - ''' - ''' - Sub New(Expression As String) - - Dim Stack As Stack(Of Char) = New Stack(Of Char) '{ [ " - Dim TokenList As List(Of Tokens.Token) = New List(Of Tokens.Token) - Dim TempToken As List(Of Char) = New List(Of Char) - Dim Prebkt As Char - - For Each ch As Char In Expression - - Call Debug.Write(ch) - Call Trace.Write(ch) -#If DEBUG Then - Call Console.Write(ch) -#End If - - If BRACKETS.Contains(ch) Then - - '假若栈空间之中的最后一个元素为双引号,则说明现在在读取字符串,则这个符号不会作为分隔符来堆栈 - If Not Stack.IsNullOrEmpty Then - Prebkt = Stack.Peek - If Prebkt = """"c Then - '字符串的值,则不可以进行堆栈 - Call TempToken.Add(ch) - Continue For - End If - End If - - Call Stack.Push(ch) '断行 - '进行堆栈调用 - Call NewLine(ch, TempToken, Stack, TokenList) - - Continue For - End If - - If PAIRED_BRACKETS.Contains(ch) Then - - If ch = """"c Then - - If Stack.IsNullOrEmpty Then - '新的字符串的起始标识符 - Call Stack.Push(ch) - Continue For - End If - - Prebkt = Stack.Peek - - If IsPaired(Prebkt, ch) Then - - '得到了一个字符串,字符串是和前面的词元是同等级的,只有当出现新的分隔符之后才会增加堆栈深度 - Call Stack.Pop() - Call NewLine(ch, TempToken, Stack, TokenList) - Continue For - - Else - - '可能是新的字符串的开始位置 - Call Stack.Push(ch) - Continue For - - End If - - End If - - If Stack.IsNullOrEmpty Then - '遇到了结束符号但是栈是空的,则是语法错误 - Throw New SyntaxErrorException(Expression) - Else - Prebkt = Stack.Peek - End If - - If IsPaired(Prebkt, ch) Then '得到了一个匹配的括号,则还需要分情况来进行讨论,主要原因是字符串之中也会包含有这些符号 - - '字符串的双引号在栈空间之中只有一个 - Call NewLine(Prebkt, TempToken, Stack, TokenList) - Call Stack.Pop() - Continue For - - End If - - End If - - - - '空格也会隔断词元 - If ch = " "c Then - - If Stack.IsNullOrEmpty Then - '肯定是新的分隔符 - Call NewLine(" "c, TempToken, Stack, TokenList) - Continue For - - 'Else - - ' '前面的栈空间不为空,则说明这个空格可能是内部表达式之中的一部分 - ' Call TempToken.Add(ch) - ' Continue For - - End If - - '但是假设前面没有双引号 - Prebkt = Stack.Peek - - If Prebkt = """"c Then - - '这个空格是字符串值之中的一部分,则不可以用作分隔符 - Call TempToken.Add(ch) - - Else - - '这个空格不是字符串值之中的一部分,则用作为分隔符 - Call NewLine(" "c, TempToken, Stack, TokenList) - - End If - - Else - - Call TempToken.Add(ch) - - End If - - Next - - '假若解析完毕之后任然有数据,则很明显语法错误 - If Not Stack.IsNullOrEmpty Then - Throw New SyntaxErrorException($"Syntax error at parsing: {Expression} - - {NameOf(Stack)}: { String.Join(" -> ", (From ch In Stack Select CStr(ch)).ToArray)} - {NameOf(TempToken)}: {New String(TempToken.ToArray)}") - End If - - Call NewLine(" "c, TempToken, Stack, TokenList) '当连续为根栈的时候,最后一个元素会被留下来,这个时候需要添加 - -#If DEBUG Then - Call Console.WriteLine() - Call Console.WriteLine() - Call Console.WriteLine() - - For Each Token In TokenList - Call Console.WriteLine(Token.ToString) - Next -#End If - Tokens = TokenList.ToArray - End Sub - - Public Const BRACKETS As String = "{[" - Public Const PAIRED_BRACKETS As String = "}]""" - - Public Shared Function IsPaired(Left As Char, Right As Char) As Boolean - - Select Case Left - Case "{"c : Return Right = "}"c - Case "["c : Return Right = "]"c - Case """"c : Return Right = """"c - - Case Else - - Throw New SyntaxErrorException($"The bracket is not paired! {NameOf(Left)} = { Left }, { NameOf(Right)} = { Right }") - - End Select - - End Function - End Class -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/ObjectModels/Tokenlisers/Tokenliser.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/ObjectModels/Tokenlisers/Tokenliser.vb deleted file mode 100644 index 922e05974..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/ObjectModels/Tokenlisers/Tokenliser.vb +++ /dev/null @@ -1,212 +0,0 @@ -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.ObjectModels.FullTokenliser - -Namespace Interpreter.ObjectModels - - ''' - ''' 保留有内部表达式,只展开一级表达式 - ''' - Public Class Tokenliser - - Public ReadOnly Property Tokens As Tokens.Token() - Public ReadOnly Property Comments As String - - Public ReadOnly Property IsCommentLine As Boolean - Get - Return Tokens.IsNullOrEmpty AndAlso Not String.IsNullOrEmpty(Comments) - End Get - End Property - - Private Shared Sub NewLine(OprTag As Char, ByRef TempToken As List(Of Char), ByRef Stack As Stack(Of Char), ByRef TokenList As List(Of Tokens.Token)) - If TempToken.IsNullOrEmpty Then - If Not OprTag = Nothing Then Call TempToken.Add(OprTag) - Return - End If - - If Not Stack.IsNullOrEmpty Then - If Not OprTag = Nothing Then Call TempToken.Add(OprTag) - Return - End If - - Dim s_Token As String = New String(TempToken.ToArray) - - Call TokenList.Add(New Tokens.Token(Stack.Count, s_Token) With {.OprTag = OprTag}) - Call TempToken.Clear() - End Sub - - ''' - ''' 将表达式解析为词元,每一个词元都不含有前导或者后置的空白符号 - ''' 断词元的条件是Stack必须为空 - ''' - ''' - Sub New(Expression As String) - - Expression = Trim(Expression) - If InStr(Expression, "Call ", CompareMethod.Text) = 1 Then - Expression = Mid(Expression, 6).Trim - ElseIf Len(Expression) > 0 AndAlso Expression.First = "#"c - '这一行是注释行 - Tokens = New Tokens.Token() {} - Comments = Expression - - Return - End If - - Dim Stack As Stack(Of Char) = New Stack(Of Char) '{ [ " - Dim TokenList As List(Of Tokens.Token) = New List(Of Tokens.Token) - Dim TempToken As List(Of Char) = New List(Of Char) '空白或者右边的分隔符之后所出现的#都是注释的开始的标志 - Dim Prebkt As Char - - For p_i As Integer = 0 To Len(Expression) - 1 - - Dim ch As Char = Expression(p_i) - - Call Debug.Write(ch) - Call Trace.Write(ch) -#If DEBUG Then - Call Console.Write(ch) -#End If - - If BRACKETS.Contains(ch) Then - - '假若栈空间之中的最后一个元素为双引号,则说明现在在读取字符串,则这个符号不会作为分隔符来堆栈 - If Not Stack.IsNullOrEmpty Then - Prebkt = Stack.Peek - If Prebkt = """"c Then - '字符串的值,则不可以进行堆栈 - Call TempToken.Add(ch) - Continue For - End If - End If - - '进行堆栈调用 - Call NewLine(ch, TempToken, Stack, TokenList) - Call Stack.Push(ch) '断行 - - Continue For - End If - - If PAIRED_BRACKETS.Contains(ch) Then - - If ch = """"c Then - - If Stack.IsNullOrEmpty Then - '新的字符串的起始标识符 - Call Stack.Push(ch) - Continue For - End If - - Prebkt = Stack.Peek - - If IsPaired(Prebkt, ch) Then - - '得到了一个字符串,字符串是和前面的词元是同等级的,只有当出现新的分隔符之后才会增加堆栈深度 - Call Stack.Pop() - Call NewLine(ch, TempToken, Stack, TokenList) - Continue For - - Else - - '可能是新的字符串的开始位置 - Call Stack.Push(ch) - Continue For - - End If - - End If - - If Stack.IsNullOrEmpty Then - '遇到了结束符号但是栈是空的,则是语法错误 - Throw New SyntaxErrorException(Expression) - Else - Prebkt = Stack.Peek - End If - - If IsPaired(Prebkt, ch) Then '得到了一个匹配的括号,则还需要分情况来进行讨论,主要原因是字符串之中也会包含有这些符号 - - '字符串的双引号在栈空间之中只有一个 - Call NewLine(ch, TempToken, Stack, TokenList) - Call Stack.Pop() - Continue For - - End If - - End If - - - - '空格也会隔断词元 - If ch = " "c Then - - If Stack.IsNullOrEmpty Then - '肯定是新的分隔符 - Call NewLine(Nothing, TempToken, Stack, TokenList) - Continue For - - 'Else - - ' '前面的栈空间不为空,则说明这个空格可能是内部表达式之中的一部分 - ' Call TempToken.Add(ch) - ' Continue For - - End If - - '但是假设前面没有双引号 - Prebkt = Stack.Peek - - If Prebkt = """"c Then - - '这个空格是字符串值之中的一部分,则不可以用作分隔符 - Call TempToken.Add(ch) - - Else - - '这个空格不是字符串值之中的一部分,则用作为分隔符 - Call NewLine(" "c, TempToken, Stack, TokenList) - - End If - - Continue For - End If - - - If ch = "#"c Then '注释符 1. 前面是空格,并且没有出现在字符串之中,即栈空间之中没有双引号 - ' 2. 栈空间必须为空 - - If Stack.IsNullOrEmpty Then '空的栈空间,则这个符号开始后面全都是注释信息,则不要了,只需要前面的就可以了 - Call NewLine("", TempToken, Stack, TokenList) - Comments = Mid(Expression, p_i + 1) - - Exit For - End If - - '栈空间不为空,则这个#号可能是字符串之中的符号 - - End If - - Call TempToken.Add(ch) - Next - - '假若解析完毕之后任然有数据,则很明显语法错误 - If Not Stack.IsNullOrEmpty Then - Throw New SyntaxErrorException($"Syntax error at parsing: {Expression} - - {NameOf(Stack)}: { String.Join(" -> ", (From ch In Stack Select CStr(ch)).ToArray)} - {NameOf(TempToken)}: {New String(TempToken.ToArray)}") - End If - - Call NewLine("", TempToken, Stack, TokenList) '当连续为根栈的时候,最后一个元素会被留下来,这个时候需要添加 - -#If DEBUG Then - Call Console.WriteLine() - Call Console.WriteLine() - Call Console.WriteLine() - - For Each Token In TokenList - Call Console.WriteLine(Token.ToString) - Next -#End If - Tokens = (From Token In TokenList.ToArray Where Not Token.IsNullOrSpace Select Token).ToArray - End Sub - - End Class -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/ObjectModels/Tokens.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/ObjectModels/Tokens.vb deleted file mode 100644 index d24875d33..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Interpreter/ObjectModels/Tokens.vb +++ /dev/null @@ -1,450 +0,0 @@ -Namespace Interpreter.ObjectModels.Tokens - - ''' - ''' 一个表达式对象之中的某一个单词元素 - ''' - Public Class Token - - Public Property DepthLevel As Integer - ''' - ''' 产生 - ''' - ''' - Public Property OprTag As Char - - Protected ReadOnly _TokenValue As String - - Public ReadOnly Property IsNullOrSpace As Boolean - Get - Return String.IsNullOrEmpty(_TokenValue) OrElse String.IsNullOrEmpty(Trim(_TokenValue)) - End Get - End Property - - Sub New(Level As Integer, s_Token As String) - DepthLevel = Level - _TokenValue = s_Token - End Sub - - Public Overrides Function ToString() As String - If DepthLevel = 0 Then - - Return "+ " & _TokenValue '最顶层的调用 - - Else - Return $"{New String(vbTab, DepthLevel)} -> {_TokenValue}" - End If - End Function - - ''' - ''' 获取得到原始的词元数据 - ''' - ''' - Public Overridable Function GetTokenValue() As String - Return _TokenValue - End Function - - Public Shared Narrowing Operator CType(Token As Token) As String - Return Token.GetTokenValue - End Operator - - End Class - - ''' - ''' 这个是参数引用之中的内部表达式,只有单行的 - ''' - Public Class InternalExpression : Inherits Token - - Public Property Expression As String - - Public ReadOnly Property IsExpr As Boolean - Get - Return Len(Expression) > 2 AndAlso Expression.First = "{"c AndAlso Expression.Last = "}"c - End Get - End Property - - Sub New(Expr As String) - Call MyBase.New(0, Expr) - Expression = Expr - End Sub - - Sub New(Token As Token) - Call Me.New(Token.GetTokenValue) - End Sub - - Public Overrides Function GetTokenValue() As String - Return Expression - End Function - - Public Function GetValue(ScriptEngine As ShoalShell.Runtime.Objects.ShellScript) As Object - - If IsExpr Then '由于规定内部表达式只有单行的,则只需要解析出一个表达式就可以了 - Dim Expr As String = Mid(Expression, 2, Len(Expression) - 2) - Dim ExprObj As Statements.Statement = SyntaxParser.Parsing(Expr) - Dim Value As Object = Runtime.Objects.ObjectModels.ExecuteModel.InternalExecute(ExprObj, "", ScriptEngine) - Return Value - Else - Return Expression - End If - - End Function - - Public Overrides Function ToString() As String - If IsExpr Then - Return $"Inner Expression {NameOf(Expression)}:={ Expression }" - Else - Return Expression - End If - End Function - - End Class - - ''' - ''' 包含有函数句柄以及调用的接口的描述信息 - ''' - Public Class EntryPoint : Inherits Token - - Public ReadOnly Property Name As InternalExpression - - Sub New(Name As String) - Call MyBase.New(0, Name) - Me.Name = New InternalExpression(Name) - End Sub - - Public Function TryGetEntryPoint(ScriptEngine As ShoalShell.Runtime.Objects.ShellScript) As Scripting.ShoalShell.DelegateHandlers.EntryPointHandlers.CommandMethodEntryPoint - Dim value As Object = Me.Name.GetValue(ScriptEngine) - If value Is Nothing Then - Throw New ShoalShell.Runtime.Objects.ObjectModels.Exceptions.MethodNotFoundException(Me.Name.GetTokenValue, $"""{Me.Name.GetTokenValue}"" reference to null entry point!") - End If - - Dim Name As String = CStr(value) - Return ScriptEngine.InternalEntryPointManager.EntryPoint(Name) - End Function - - Public Overrides Function ToString() As String - Return MyBase.ToString() - End Function - - End Class - - ''' - ''' 开关参数:只适用于逻辑值参数,有表示True,没有则表示False,开关参数使用-或者--或者\或者/开头 - ''' 例如有如下的函数定义 - ''' Function(a As Object, b as Boolean) - ''' 则调用的时候可以有下面的形式 - ''' Function a $a b T/F/True/False/1/0/yesy/no - ''' 或者开关形式 - ''' Function a $a -b 或者 --b 或者 /b 或者 \b - ''' 当然也可以 - ''' Call $a -> Function True/False/yes/No/1/0/T/F - ''' Call $a -> Function /a 或者 \a 或者 -a 或者 --a - ''' - Public Class ParameterName : Inherits InternalExpression - - ''' - ''' 参数名出了普通类型的参数名需要填充参数名之外,其他类型的参数名都可以留空 - ''' - Public Enum ParameterType - Normal = 0 - ''' - ''' 拓展函数的调用参数,即函数定义之中的第一个参数 - ''' - ExtensionMethodCaller - ''' - ''' 当函数有两个参数的时候,使用拓展函数的形式调用,则第二个参数会可以看作为伪单参数 - ''' - EXtensionSingleParameter - ''' - ''' 函数只有一个参数,则可以忽略参数名直接调用 - ''' - SingleParameter - ''' - ''' 逻辑值类型的开关参数 - ''' - BooleanSwitch - - ''' - ''' 函数的参数之间是按照函数的定义顺序引用的 - ''' - OrderReference - End Enum - -#Region "Reference Type String" - - Friend Shared ReadOnly Property s_Normal As String = NameOf(ParameterType.Normal) - Friend Shared ReadOnly Property s_ExtensionMethodCaller As String = NameOf(ParameterType.ExtensionMethodCaller) - Friend Shared ReadOnly Property s_EXtensionSingleParameter As String = NameOf(ParameterType.EXtensionSingleParameter) - Friend Shared ReadOnly Property s_SingleParameter As String = NameOf(ParameterType.SingleParameter) - Friend Shared ReadOnly Property s_BooleanSwitch As String = NameOf(ParameterType.BooleanSwitch) - -#End Region - - Public ReadOnly Property Type As ParameterName.ParameterType - - ''' - ''' - ''' - ''' 普通类型还是特殊类型 - ''' 获得参数名称的一个表达式字符串 - Sub New(Type As ParameterName.ParameterType, Expression As String) - Call MyBase.New(Expression) - Me.Type = Type - End Sub - - Public Overrides Function ToString() As String - Return If(Type = ParameterType.Normal, Me.Expression, $"({Type.ToString}) {Expression}") - End Function - End Class - - ''' - ''' 该表达式之中的操作符 - ''' - Public Class [Operator] : Inherits Token - - Public Enum Operators As Integer - - NULL = -1 - - ''' - ''' <- Assign value to variable; - ''' - ValueAssign - ''' - ''' -> Extension method calling; - ''' - ExtCall - ''' - ''' <= Collection and hash table operations; - ''' - CollectionOpr - ''' - ''' = Self type cast; - ''' - SelfCast - ''' - ''' << Hybrids scripting; - ''' - HybridsScript - ''' - ''' >> Setup variable ofhybrids scripting; - ''' - HybirdsScriptPush - ''' - ''' => 函数指针 - ''' - [Delegate] - End Enum - - Public ReadOnly Property Type As [Operator].Operators - - ''' - ''' - ''' - ''' - ''' [<- Assign value to variable;] - ''' - ''' - ''' [-> Extension method calling;] - ''' - ''' - ''' [<= Collection and hash table operations;] - ''' - ''' - ''' [= Self type cast;] - ''' - ''' - ''' [<< Hybrids scripting;] - ''' - ''' - ''' [>> Setup variable of hybrids scripting;] - ''' - ''' - Sub New(opr As String) - Call MyBase.New(0, opr) - Type = GetOperator(opr) - End Sub - - Public Shared Function GetOperator(opr As String) As Operators - - Select Case Trim(opr).ShadowCopy(opr) - - Case "<-", "=" : Return Operators.ValueAssign - Case "->" : Return Operators.ExtCall - Case "<=" : Return Operators.CollectionOpr - ' Case "=" : Return Operators.ValueAssign - Case "<<" : Return Operators.HybridsScript - Case ">>" : Return Operators.HybirdsScriptPush - Case "=>" : Return Operators.Delegate - - Case Else - Return Operators.NULL - ' Throw New NotImplementedException($"The operator {NameOf(opr)}:={opr} is currently not support yet!") - End Select - - End Function - - Public Overrides Function ToString() As String - Return $"( {_TokenValue } ) {Type.GetType.FullName}.{Type.ToString}" - End Function - - End Class - - ''' - ''' 可能会存在指针引用的情况,这个对象类型的主要实现的功能是设置内存变量 - ''' - Public Class LeftAssignedVariable : Inherits Token - - ''' - ''' 该变量在内存之中的引用地址 - ''' - ''' - Public ReadOnly Property RefEntry As String - - Public ReadOnly Property IsPointer As Boolean - Get - Return RefEntry.First = "$"c - End Get - End Property - - ''' - ''' 是内部表达式 - ''' - ''' - Public ReadOnly Property IsInnerReference As Boolean - Get - Return Len(RefEntry) > 2 AndAlso RefEntry.First = "{"c AndAlso RefEntry.Last = "}"c - End Get - End Property - - Public ReadOnly Property IsPointerReference As Boolean - Get - Return Len(RefEntry) > 2 AndAlso RefEntry.First = "["c AndAlso RefEntry.Last = "]"c - End Get - End Property - - ''' - ''' - ''' - ''' - ''' 1. Name 普通变量引用 - ''' 2. $var 变量地址引用 -> 值是实际的地址 - ''' 3. {expr} 内部表达式引用 -> 值是实际的地址 - ''' 4. [int] 位置引用 - ''' - Sub New(Ref As String) - Call MyBase.New(0, Ref) - RefEntry = Ref - End Sub - - ''' - ''' 得到内存之中的实际引用位置 - ''' - ''' - ''' - Public Function GetAddress(MemoryDevice As ShoalShell.Runtime.Objects.I_MemoryManagementDevice) As String - Dim Addr As String = RefEntry - Dim Ref As Object - - If IsPointer Then - Ref = MemoryDevice.TryGetValue(Addr) - Addr = InternalGetAddress(Ref) - Return Addr - End If - - If Len(RefEntry) > 2 Then '表达式的指针引用形式长度至少要大于2 - - If RefEntry.First = "{"c AndAlso RefEntry.Last = "}"c Then '内部表达式指针引用 - Addr = Mid(RefEntry, 2, Len(RefEntry) - 2) '得到表达式 - Call MemoryDevice.ScriptEngine.EXEC(Addr) - Ref = MemoryDevice.TryGetValue("$") - Addr = InternalGetAddress(Ref) - Return Addr - ElseIf RefEntry.First = "["c AndAlso RefEntry.Last = "]"c '位置指针引用 - '可能也是内部表达式 - Addr = Mid(RefEntry, 2, Len(RefEntry) - 2) '得到表达式 - Call MemoryDevice.ScriptEngine.EXEC(Addr) - Ref = MemoryDevice.TryGetValue("$") 'Ref必须是Integer/Long/Byte/UInteger/ULong/SByte/Short/UShort - - Dim p As Long = InternalGetPointer(Ref) - - If p > MemoryDevice.Count - 1 OrElse p < 0 Then - Throw New Exception($"The pointer {NameOf(RefEntry)}:={RefEntry} (*{NameOf(p)}={p}) reference to a null address!") - End If - - Addr = MemoryDevice.TryGetValue(Index:=p).Key - Return Addr - End If - - End If - - Return Addr - End Function - - ''' - ''' 会判断是否为有效的指针 - ''' - ''' - ''' - Private Function InternalGetPointer(Ref As Object) As Long - If Ref Is Nothing Then - Throw New Exception($"The pointer {NameOf(RefEntry)}:={RefEntry} reference to a null address!") - End If - - Dim TypeID As Type = Ref.GetType - If TypeID.Equals(GetType(Integer)) OrElse - TypeID.Equals(GetType(Long)) OrElse - TypeID.Equals(GetType(Byte)) OrElse - TypeID.Equals(GetType(UInteger)) OrElse - TypeID.Equals(GetType(ULong)) OrElse - TypeID.Equals(GetType(SByte)) OrElse - TypeID.Equals(GetType(Short)) OrElse - TypeID.Equals(GetType(UShort)) Then - - Return CType(Ref, Long) - - Else - - Return -100 '无效的指针引用类型 - - End If - End Function - - Private Function InternalGetAddress(Ref As Object) As String - If Ref Is Nothing Then - Throw New Exception($"The pointer {NameOf(RefEntry)}:={RefEntry} reference to a null address!") - Else - Dim Addr As String = CStr(Ref) - Return Addr - End If - End Function - - ''' - ''' 具有$前缀表示是内存地址的引用,其余表示普通引用 - ''' - ''' - ''' - Public Function WriteMemory(value As Object, MemoryDevice As ShoalShell.Runtime.Objects.I_MemoryManagementDevice) As Object - Dim Addr As String = GetAddress(MemoryDevice) - Call MemoryDevice.InsertOrUpdate(Addr, value) - Return value - End Function - - Public Function GetValue(MemoryDevice As ShoalShell.Runtime.Objects.I_MemoryManagementDevice) As Object - Dim Addr As String = GetAddress(MemoryDevice) - Dim value As Object = MemoryDevice.TryGetValue(Addr) - Return value - End Function - - Public Overrides Function ToString() As String - If IsPointer Then - '内存地址引用 - Return $"Reference AddressOf {RefEntry}" - ElseIf IsInnerReference - Return $"Reference AddressOf Ref <- {RefEntry}" - ElseIf IsPointerReference - Return $"Reference AddressOf *p <- {RefEntry}" - Else - Return RefEntry '普通引用 - End If - End Function - End Class -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/My Project/Application.Designer.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/My Project/Application.Designer.vb deleted file mode 100644 index 88dd01c78..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/My Project/Application.Designer.vb +++ /dev/null @@ -1,13 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/My Project/Application.myapp b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/My Project/Application.myapp deleted file mode 100644 index 758895def..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/My Project/Application.myapp +++ /dev/null @@ -1,10 +0,0 @@ - - - false - false - 0 - true - 0 - 1 - true - diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/My Project/AssemblyInfo.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/My Project/AssemblyInfo.vb deleted file mode 100644 index e961866d7..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,35 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - -' General Information about an assembly is controlled through the following -' set of attributes. Change these attribute values to modify the information -' associated with an assembly. - -' Review the values of the assembly attributes - - - - - - - - - - -'The following GUID is for the ID of the typelib if this project is exposed to COM - - -' Version information for an assembly consists of the following four values: -' -' Major Version -' Minor Version -' Build Number -' Revision -' -' You can specify all the values or you can default the Build and Revision Numbers -' by using the '*' as shown below: -' - - - diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/My Project/Resources.Designer.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/My Project/Resources.Designer.vb deleted file mode 100644 index 09e53d7b1..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/My Project/Resources.Designer.vb +++ /dev/null @@ -1,104 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - -Imports System - -Namespace My.Resources - - 'This class was auto-generated by the StronglyTypedResourceBuilder - 'class via a tool like ResGen or Visual Studio. - 'To add or remove a member, edit your .ResX file then rerun ResGen - 'with the /str option, or rebuild your VS project. - ''' - ''' A strongly-typed resource class, for looking up localized strings, etc. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Returns the cached ResourceManager instance used by this class. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Microsoft.VisualBasic.Scripting.ShoalShell.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Overrides the current thread's CurrentUICulture property for all - ''' resource lookups using this strongly typed resource class. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set - resourceCulture = value - End Set - End Property - - ''' - ''' Looks up a localized string similar to GNU GENERAL PUBLIC LICENSE - ''' Version 3, 29 June 2007 - ''' - ''' Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> - ''' Everyone is permitted to copy and distribute verbatim copies - ''' of this license document, but changing it is not allowed. - ''' - ''' Preamble - ''' - ''' The GNU General Public License is a free, copyleft license for - '''software and other kinds of works. - ''' - ''' The licenses for most software and other practical works are designed - '''to take away yo [rest of string was truncated]";. - ''' - Friend ReadOnly Property gpl() As String - Get - Return ResourceManager.GetString("gpl", resourceCulture) - End Get - End Property - - ''' - ''' Looks up a localized string similar to This program is free software: you can redistribute it and/or modify - '''it under the terms of the GNU General Public License as published by - '''the Free Software Foundation, either version 3 of the License, or - '''any later version. - ''' - '''This program is distributed in the hope that it will be useful, - '''but WITHOUT ANY WARRANTY; without even the implied warranty of - '''MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - '''GNU General Public License for more details. - ''' - '''You should have received a copy of the GNU [rest of string was truncated]";. - ''' - Friend ReadOnly Property license() As String - Get - Return ResourceManager.GetString("license", resourceCulture) - End Get - End Property - End Module -End Namespace diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/My Project/Resources.resx b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/My Project/Resources.resx deleted file mode 100644 index 5a97acb37..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/My Project/Resources.resx +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - ..\Resources\gpl.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;gb2312 - - - ..\Resources\license.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;gb2312 - - \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/My Project/Settings.Designer.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/My Project/Settings.Designer.vb deleted file mode 100644 index 5cc6f8c7d..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/My Project/Settings.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) - -#Region "My.Settings Auto-Save Functionality" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.Microsoft.VisualBasic.Scripting.ShoalShell.My.MySettings - Get - Return Global.Microsoft.VisualBasic.Scripting.ShoalShell.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/My Project/Settings.settings b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/My Project/Settings.settings deleted file mode 100644 index 85b890b3c..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/My Project/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Resources/gpl.txt b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Resources/gpl.txt deleted file mode 100644 index 94a9ed024..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Resources/gpl.txt +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Resources/license.txt b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Resources/license.txt deleted file mode 100644 index da76ca0a9..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Resources/license.txt +++ /dev/null @@ -1,12 +0,0 @@ -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/Debugging/Debugger.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/Debugging/Debugger.vb deleted file mode 100644 index 2fb637871..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/Debugging/Debugger.vb +++ /dev/null @@ -1,183 +0,0 @@ -Imports Microsoft.VisualBasic.WrapperClassTools.Net - -Namespace Runtime.Debugging - - ''' - ''' 这个对象是运行于Shoal内部的,用作为调试的客户端的。当IDE启动的时候,会打开调试服务,接着通过命令行启动Shoal程序,将端口号传递给本对象,二者之间通过Tcp协议进行通信 - ''' - ''' - Public Class Debugger : Inherits ShoalShell.Runtime.Objects.ShellScript - Implements Microsoft.VisualBasic.ConsoleDevice.STDIO__.I_ConsoleDeviceHandle - - ''' - ''' 主动向IDE发送调试消息 - ''' - ''' - Dim TcpClient As Microsoft.VisualBasic.WrapperClassTools.Net.AsynchronousClient - ''' - ''' 监听来自于IDE的控制命令 - ''' - ''' - Dim ReadListenerServices As Microsoft.VisualBasic.WrapperClassTools.Net.TcpSynchronizationServicesSocket - - Public Class DebuggerMessage - Public Property Message As String - Public Property Pid As Integer - Public Property MessageType As MessageTypes - - Public Enum MessageTypes - ''' - ''' IDE向Shoal调试程序推送脚本 - ''' - ''' - CTRL_PUSH_SCRIPT - ''' - ''' IDE发送终止脚本调试的信号 - ''' - ''' - CTRL_KILL_SCRIPT - ''' - ''' IDE请求Shoal的变量内容 - ''' - ''' - CTRL_GETS_MEMORY - ''' - ''' IDE修改Shoal内存之中的变量的内容 - ''' - ''' - CTRL_MODIFY_VALUE - ''' - ''' 调试客户端向服务器返回初始化信息 - ''' - ''' - CTRL_DEBUGGER_INIT_INFO - - ''' - ''' Shoal向IDE发送一般的消息 - ''' - ''' - OUTPUT_MESSAGE - ''' - ''' Shoal向IDE发送错误消息 - ''' - ''' - OUTPUT_ERROR - ''' - ''' Shoal向IDE发送警告消息 - ''' - ''' - OUTPUT_WARNING - End Enum - End Class - - 'Dim CurrentConsole As IO.FileStream - 'Dim ConsoleSource As IO.StreamWriter - - Public ReadOnly Property DebuggerExit As Boolean - Get - Return _DebuggerExit - End Get - End Property - - Dim _DebuggerExit As Boolean = False - - ''' - ''' - ''' - ''' IDE调试监听器的监听端口号 - ''' - Sub New(LibraryRegistry As String, DebugListenerPort As Integer, Optional ShowInitializeMessage As Boolean = False) - Call MyBase.New(LibraryRegistry:=LibraryRegistry, ShowInitializeMessage:=ShowInitializeMessage) - - TcpClient = New WrapperClassTools.Net.AsynchronousClient("127.0.0.1", DebugListenerPort) - 'CurrentConsole = New IO.FileStream(path:=FileIO.FileSystem.GetTempFileName, mode:=IO.FileMode.OpenOrCreate, access:=IO.FileAccess.ReadWrite) - 'ConsoleSource = New IO.StreamWriter(stream:=CurrentConsole) - 'ConsoleSource.AutoFlush = True - - Call Console.WriteLine("[DEBUG] Shoal debugger listeners at 127.0.0.1:", DebugListenerPort) - 'Call Console.WriteLine("[DEBUG] Shoal debugger listeners at {0} ====> 127.0.0.1:{1}", CurrentConsole.Name, DebugListenerPort) - Call (Sub() Call InternalStartListening()).BeginInvoke(Nothing, Nothing) - Call Threading.Thread.Sleep(100) - Call (Sub() Call TcpClient.SendMessage(New Debugger.DebuggerMessage() With {.Message = ReadListenerServices.LocalPort, .MessageType = DebuggerMessage.MessageTypes.CTRL_DEBUGGER_INIT_INFO}.GetXml)).BeginInvoke(Nothing, Nothing) - 'Console.SetOut(ConsoleSource) - End Sub - - Private Sub InternalStartListening() - ReadListenerServices = New TcpSynchronizationServicesSocket(AddressOf InternalProtocol, GetFirstAvailablePort) - Try -RESTART: ReadListenerServices.Run() - Catch ex As Exception - Call Console.WriteLine(ex.ToString) - GoTo RESTART - End Try - End Sub - - Dim _InternalScriptDebugger As Runtime.Debugging.ShellScriptDebuggerModel - - Protected Overrides Sub InternalExecuteScript(Script As Objects.ObjectModels.ShellScript) - _InternalScriptDebugger = New Runtime.Debugging.ShellScriptDebuggerModel((From CodeLine In Script.ToArray Select CodeLine.Value).ToArray, ScriptEngine:=Me) - _InternalScriptDebugger.Execute() - _InternalScriptDebugger.Free() - End Sub - - Private Function InternalProtocol(strMessage As String, remoteDevice As Net.IPEndPoint) As String - - 'Call Console.WriteLine(strMessage) - - Dim data As DebuggerMessage = strMessage.CreateObjectFromXml(Of DebuggerMessage)(False) - - If data Is Nothing Then - Return ERROR_PROTOCOL - End If - - Dim currentProcess = Process.GetCurrentProcess - - If data.Pid <> currentProcess.Id Then - - End If - - If data.MessageType = DebuggerMessage.MessageTypes.OUTPUT_MESSAGE Then - 'Call Console.WriteLine(data.Message) - Return "" - End If - - If data.MessageType = DebuggerMessage.MessageTypes.CTRL_PUSH_SCRIPT Then - 'Call Console.WriteLine("[DEBUG] Execute pushed script....") - Call (Sub() Call InternalExecutePushedScript(data.Message)).BeginInvoke(Nothing, Nothing) - - If Me._RunningScript Then - Return New Debugger.DebuggerMessage() With {.MessageType = DebuggerMessage.MessageTypes.OUTPUT_MESSAGE, .Message = "Currently running a script, waiting for the script exit..."}.GetXml - Else - Return EXECUTE_OK - End If - End If - - Return ERROR_PROTOCOL - End Function - - Private Sub InternalExecutePushedScript(Script As String) - Do While Me._RunningScript - Threading.Thread.Sleep(100) - Loop - - Call EXEC(Script) - End Sub - - Public Function Read() As Integer Implements ConsoleDevice.STDIO__.I_ConsoleDeviceHandle.Read - Throw New NotImplementedException - End Function - - Public Function ReadLine() As String Implements ConsoleDevice.STDIO__.I_ConsoleDeviceHandle.ReadLine - Throw New NotImplementedException - End Function - - Public Sub WriteLine(s As String) Implements ConsoleDevice.STDIO__.I_ConsoleDeviceHandle.WriteLine - Call TcpClient.SendMessage(New Debugger.DebuggerMessage() With {.Message = s, .MessageType = DebuggerMessage.MessageTypes.OUTPUT_MESSAGE}.GetXml) - End Sub - - Public Sub WriteLine(s As String, ParamArray args() As String) Implements ConsoleDevice.STDIO__.I_ConsoleDeviceHandle.WriteLine - Dim Message As String = String.Format(s, args) - Call TcpClient.SendMessage(New Debugger.DebuggerMessage() With {.Message = Message, .MessageType = DebuggerMessage.MessageTypes.OUTPUT_MESSAGE}.GetXml) - End Sub - End Class -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/Debugging/DebuggerListener.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/Debugging/DebuggerListener.vb deleted file mode 100644 index edad9fdd9..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/Debugging/DebuggerListener.vb +++ /dev/null @@ -1,129 +0,0 @@ -Imports Microsoft.VisualBasic.WrapperClassTools.Net - -Namespace Runtime.Debugging - - ''' - ''' 这个对象为服务器对象,运行在IDE模块之中 - ''' - ''' - Public Class DebuggerListener : Implements System.IDisposable - - Dim _DebuggerListener As Microsoft.VisualBasic.WrapperClassTools.Net.TcpSynchronizationServicesSocket - Dim _InternalMessageSender As AsynchronousClient - Dim pid As Integer - Dim DebuggerProcess As Microsoft.VisualBasic.CommandLine.IORedirect - Dim LocalPort As Integer = GetFirstAvailablePort() - Dim DebuggerStarted As Boolean = False - - ''' - ''' /debug listener_port <listen_port> [-work <working_Dir>] - ''' - ''' - ''' - ''' - Sub New(Debugger As String, WorkDir As String) - Call (Sub() Call InternalStartListener()).BeginInvoke(Nothing, Nothing) - Call Threading.Thread.Sleep(100) - - Dim DebuggerArgvs As String = "/debug listener_port " & LocalPort - If Not String.IsNullOrEmpty(WorkDir) Then DebuggerArgvs = DebuggerArgvs & " -work """ & WorkDir & """" - Debugger = FileIO.FileSystem.GetFileInfo(Debugger).FullName - DebuggerProcess = New Microsoft.VisualBasic.CommandLine.IORedirect(Debugger, DebuggerArgvs, _disp_debug:=True) - Call DebuggerProcess.Start(_DISP_DEBUG_INFO:=True) - Call InternalWaitForDebuggerStart() - Call (Sub() SendHelloWorld()).BeginInvoke(Nothing, Nothing) - End Sub - - Private Sub InternalStartListener() - Try -RESTART: _DebuggerListener = New TcpSynchronizationServicesSocket(AddressOf InternalProtocol, LocalPort) - Call _DebuggerListener.Run() - Catch ex As Exception - Call Console.WriteLine(ex.ToString) - GoTo RESTART - End Try - End Sub - - Private Sub InternalWaitForDebuggerStart() - Do While Not DebuggerStarted - Call Threading.Thread.Sleep(10) - Loop - End Sub - - Private Function InternalProtocol(str As String, remote As Net.IPEndPoint) As String - Call Console.WriteLine(str) - - Dim Message As Debugger.DebuggerMessage = str.CreateObjectFromXml(Of Debugger.DebuggerMessage)(False) - - If Message Is Nothing Then - Return ERROR_PROTOCOL - End If - - If Message.MessageType = Debugger.DebuggerMessage.MessageTypes.CTRL_DEBUGGER_INIT_INFO AndAlso Not DebuggerStarted Then - DebuggerStarted = True - _InternalMessageSender = New AsynchronousClient("127.0.0.1", Val(Message.Message)) - Return EXECUTE_OK - End If - - Return ERROR_PROTOCOL - End Function - - Private Sub SendHelloWorld() - Call Threading.Thread.Sleep(1500) - pid = DebuggerProcess.ProcessInfo.Id - Dim Message As String = SendMessage("[DEBUGGING] Hello World!") - Call Console.WriteLine(Message) - End Sub - - Public Function PushScript(Script As String) As String - Dim Message = New Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Debugging.Debugger.DebuggerMessage() With - { - .Pid = pid, .MessageType = Debugger.DebuggerMessage.MessageTypes.CTRL_PUSH_SCRIPT, .Message = Script} - Dim s_Message As String = _InternalMessageSender.SendMessage(Message.GetXml) - Call Console.WriteLine(s_Message) - Return s_Message - End Function - - Public Function SendMessage(s As String) As String - Return _InternalMessageSender.SendMessage(New Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Debugging.Debugger.DebuggerMessage() With - { - .Pid = pid, - .Message = s, - .MessageType = Debugger.DebuggerMessage.MessageTypes.OUTPUT_MESSAGE}.GetXml) - End Function - -#Region "IDisposable Support" - Private disposedValue As Boolean ' To detect redundant calls - - ' IDisposable - Protected Overridable Sub Dispose(disposing As Boolean) - If Not Me.disposedValue Then - If disposing Then - ' TODO: dispose managed state (managed objects). - Call DebuggerProcess.ProcessInfo.Kill() - Call DebuggerProcess.Free() - End If - - ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below. - ' TODO: set large fields to null. - End If - Me.disposedValue = True - End Sub - - ' TODO: override Finalize() only if Dispose(ByVal disposing As Boolean) above has code to free unmanaged resources. - 'Protected Overrides Sub Finalize() - ' ' Do not change this code. Put cleanup code in Dispose(ByVal disposing As Boolean) above. - ' Dispose(False) - ' MyBase.Finalize() - 'End Sub - - ' This code added by Visual Basic to correctly implement the disposable pattern. - Public Sub Dispose() Implements IDisposable.Dispose - ' Do not change this code. Put cleanup code in Dispose(disposing As Boolean) above. - Dispose(True) - GC.SuppressFinalize(Me) - End Sub -#End Region - - End Class -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/Debugging/DebuggerProtocol.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/Debugging/DebuggerProtocol.vb deleted file mode 100644 index d1861a449..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/Debugging/DebuggerProtocol.vb +++ /dev/null @@ -1,9 +0,0 @@ -Namespace Runtime.Debugging - - Module DebuggerProtocol - - Public Const ERROR_PROTOCOL As String = "ERROR_PROTOCOL" - Public Const EXECUTE_OK As String = "EXECUTE_OK" - - End Module -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/Debugging/ShellScriptDebuggerModel.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/Debugging/ShellScriptDebuggerModel.vb deleted file mode 100644 index 0047aa678..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/Debugging/ShellScriptDebuggerModel.vb +++ /dev/null @@ -1,47 +0,0 @@ -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Objects.ObjectModels -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Objects - -Namespace Runtime.Debugging - - Public Class ShellScriptDebuggerModel : Inherits Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Objects.ObjectModels.ShellScript - - Sub New(CodeLines As Generic.IEnumerable(Of ScriptCodeLine), ScriptEngine As ShoalShell.Runtime.Objects.ShellScript) - Call MyBase.New(CodeLines, ScriptEngine) - End Sub - - Protected Overrides Sub InternalExecuteScript(CodeLine As ObjectModels.ScriptCodeLine) - If String.Equals(CodeLine.OrignialScriptLine, FLAG_STATEMENT_RETURN_STACK, StringComparison.OrdinalIgnoreCase) Then - Call _InternalEXEC_Pointer.MoveNext() - Return - ElseIf InternalExecuteGoto(CodeLine) Then - Return - End If - - Dim CurrentExecHandle = CodeLine.InvokeMethod.BeginInvoke(Nothing, Nothing) - - Do While Not CurrentExecHandle.IsCompleted - If _KillScript Then - Call CurrentExecHandle.Free() - Return - End If - - Call Threading.Thread.Sleep(1) - Loop - - Dim Value As Object = CodeLine.InvokeMethod.EndInvoke(CurrentExecHandle) - Dim sys As Objects.I_MemoryManagementDevice = ScriptEngine._EngineMemoryDevice - Call sys.InsertOrUpdate(CodeLine.VariableAssigned, Value) - End Sub - - Dim _KillScript As Boolean = False - - Protected Overrides Function ExitScript() As Boolean - Return _KillScript - End Function - - Public Function KillScript() As Boolean - _KillScript = True - Return True - End Function - End Class -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/DeviceDriver/DeviceDriver.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/DeviceDriver/DeviceDriver.vb deleted file mode 100644 index 14fa05866..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/DeviceDriver/DeviceDriver.vb +++ /dev/null @@ -1,97 +0,0 @@ -Imports System.Drawing -Imports System.Reflection -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Objects.ObjectModels.Exceptions -Imports Microsoft.VisualBasic.Scripting.ShoalShell.DeviceDriver.DriverHandles - -Namespace DeviceDriver - - ''' - ''' 字典之中的Key属性分别为所需要转换的目标类型的简称和输入的第一个参数的类型,目标方法只能够有一个参数 - ''' - ''' - Public Class InputDeviceDriver : Inherits TypeHandleEntryPointDriverrModule(Of InputDeviceHandle, Func(Of Object, Object), KeyValuePair(Of String, Type)) - - Sub New(Memory As ShoalShell.Runtime.Objects.I_MemoryManagementDevice) - Call MyBase.New(Memory.ScriptEngine) - MyBase._InternalHandles = New Dictionary(Of KeyValuePair(Of String, Type), Func(Of Object, Object)) _ - From - { - {New KeyValuePair(Of String, Type)("string", GetType(String)), AddressOf InputDeviceDriver.InternalReadTextFile}, - {New KeyValuePair(Of String, Type)("string()", GetType(String)), AddressOf IO.File.ReadAllLines}, - {New KeyValuePair(Of String, Type)("byte()", GetType(String)), AddressOf IO.File.ReadAllBytes}, - {New KeyValuePair(Of String, Type)("int", GetType(String)), AddressOf InputDeviceDriver.InternalGetInteger}, - {New KeyValuePair(Of String, Type)("int32", GetType(String)), AddressOf InputDeviceDriver.InternalGetInteger}, - {New KeyValuePair(Of String, Type)("integer", GetType(String)), AddressOf InputDeviceDriver.InternalGetInteger}} - End Sub - - - - - Private Shared Function InternalGetInteger(value As String) As Integer - Return CInt(Val(value)) - End Function - - - Private Shared Function InternalReadTextFile(path As String) As String - Return FileIO.FileSystem.ReadAllText(path) - End Function - - - Private Shared Function InternalReadTextLines(path As String) As String() - Return IO.File.ReadAllLines(path).ToArray - End Function - - Public Overrides Function ImportsHandler([Module] As Type) As Integer - Dim Entries = GetMethods([Module]) - Dim LQuery = (From item As TypeHandle In Entries - Let n = item.Handle - Let Method = item.MethodInfo - Let p = Method.GetParameters - Where p.Count = 1 - Let objType = p.First.ParameterType - Let DeviceHandle = Function(obj As Object) Method.Invoke(Nothing, {obj}) - Select DriverHandle = DeviceHandle, Entry = New KeyValuePair(Of String, Type)(n.TypeHandleId, objType), Mounts = Method).ToArray - - For Each Line In LQuery - If _InternalHandles.ContainsKey(Line.Entry) Then - Call _InternalHandles.Remove(Line.Entry) - End If - - Call _InternalHandles.Add(Line.Entry, Line.DriverHandle) - Call _InternalRecordHandleTrace(Line.Entry, Line.Mounts) - Next - - Return LQuery.Count - End Function - - ''' - ''' - ''' - ''' 目标函数的第一个参数,本方法会根据这个参数以及参数查找最合适的句柄来处理本参数的输入 - ''' - ''' - ''' - Public Function TypeCasting(obj As Object, typeId As String) As Object - Dim EntryType As System.Type = obj.GetType - Dim LQuery = (From Hwnd As KeyValuePair(Of KeyValuePair(Of String, Type), Func(Of Object, Object)) - In Me._InternalHandles - Where String.Equals(Hwnd.Key.Key, typeId, StringComparison.OrdinalIgnoreCase) - Select Val = Hwnd.Value).ToArray - - If LQuery.IsNullOrEmpty Then - Dim exMsg As String = String.Format(MISSING_HANDLER, typeId, EntryType.FullName) - Throw New MissingPrimaryKeyException(exMsg) - End If - - Dim DriverHandle As Func(Of Object, Object) = LQuery.First - Dim value As Object = DriverHandle(obj) - Return value - End Function - - Const MISSING_HANDLER As String = "[MISSING_HANDLER {0}, {1}] You should imports a namespace which was contains the handle of this type and then run this program again." - - Protected Overrides Function HandleEntryToString(item As KeyValuePair(Of String, Type)) As String - Return String.Format("[{0}, {1}]", item.Key, item.Value.FullName) - End Function - End Class -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/DeviceDriver/DriverHandles.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/DeviceDriver/DriverHandles.vb deleted file mode 100644 index 51e13b6c7..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/DeviceDriver/DriverHandles.vb +++ /dev/null @@ -1,106 +0,0 @@ -Imports System.Drawing -Imports System.Reflection - -Namespace DeviceDriver.DriverHandles - - Public MustInherit Class TypeHandlerEntryPoint : Inherits Attribute - Protected _DataType As Type - - Public ReadOnly Property SupportDatatType As Type - Get - Return _DataType - End Get - End Property - - Sub New(dataType As Type) - _DataType = dataType - End Sub - End Class - - ''' - ''' 将目标变量在终端进行输出 - ''' - ''' - - Public Class OutputDeviceHandle : Inherits TypeHandlerEntryPoint - - Sub New(DataType As Type) - Call MyBase.New(DataType) - End Sub - End Class - - ''' - ''' 参数指的是目标函数所返回的值的类型,驱动程序会自动根据函数的参数的类型来决定函数方法的调用 - ''' - ''' - - Public Class InputDeviceHandle : Inherits TypeHandlerEntryPoint - - Dim _InternalTypeId As String, _Description As String - - Public ReadOnly Property Description As String - Get - Return _Description - End Get - End Property - - Public ReadOnly Property TypeHandleId As String - Get - Return _InternalTypeId - End Get - End Property - - ''' - ''' - ''' - ''' - ''' The brief name of the type information, usage syntax of this input type casting driver in the shoal scripting is: var < (TypeId) $variable - ''' (类型简称,在脚本之中的使用语法为: var < (TypeId) $variable) - ''' - ''' - Sub New(TypeId As String, Optional Description As String = "") - Call MyBase.New(Nothing) - Me._InternalTypeId = TypeId - Me._Description = Description - End Sub - - Public Overrides Function ToString() As String - If String.IsNullOrEmpty(Description) Then - Return String.Format("Input Device handle for type ""{0}""", _InternalTypeId) - Else - Return String.Format("Input Device handle for type ""{0}""; // {1}", _InternalTypeId, _Description) - End If - End Function - End Class - - ''' - ''' Target delegate must compatible with delegate Func(Of T, String, Boolean), the first parameter in the delegate is the - ''' data type and the data to write to the file, the second parameter is the file path of the IO operation and the last bool - ''' return value indicated that the io operation success or not. please notices that, for the considerations of the data - ''' type compatible, the collection data type is recommended implement as generic enumeration interface. - ''' (目标接口委托对象必须要符合以下接口类型Func(Of T, String, Boolean),其中第一个将要写文件的数据类型,第二个参数为 - ''' 文件路径,最后一个参数是文件是否写入成功,请注意,对于任意的集合类型推荐使用泛型集合) - ''' - ''' - - Public Class IO_DeviceHandle : Inherits TypeHandlerEntryPoint - - ''' - ''' - ''' - ''' 目标数据类型,脚本引擎会自动根据函数的数据类型自动选择文件系统的写入方式的驱动程序 - ''' - Sub New(DataType As Type) - Call MyBase.New(DataType) - End Sub - - Sub New(TypeId As String) - Call MyBase.New(System.Type.GetType(TypeId, throwOnError:=True, ignoreCase:=True)) - End Sub - - Public Overrides Function ToString() As String - Return String.Format("IOSupport::{0}", _DataType.FullName) - End Function - End Class - -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/DeviceDriver/IODeviceDriver.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/DeviceDriver/IODeviceDriver.vb deleted file mode 100644 index 72dbebe7e..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/DeviceDriver/IODeviceDriver.vb +++ /dev/null @@ -1,141 +0,0 @@ -Imports System.Drawing -Imports System.Reflection -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Objects.ObjectModels.Exceptions -Imports Microsoft.VisualBasic.Scripting.ShoalShell.DeviceDriver.DriverHandles - -Namespace DeviceDriver - - Public Class IODeviceDriver : Inherits TypeHandleEntryPointDriverrModule(Of IO_DeviceHandle, Func(Of Object, String, Boolean), Type) - - Sub New(Memory As Runtime.Objects.I_MemoryManagementDevice) - MyBase.New(Memory.ScriptEngine) - MyBase._InternalHandles = New Dictionary(Of Type, Func(Of Object, String, Boolean)) From { - {GetType(String), AddressOf IODeviceDriver.WriteTextFile}, - {GetType(Char()), AddressOf IODeviceDriver.WriteCharCollectionAsText}, - {GetType(String()), AddressOf IODeviceDriver.WriteTextCollection}, - {GetType(Image), AddressOf IODeviceDriver.WriteImageFile}, - {GetType(Bitmap), AddressOf IODeviceDriver.WriteBitmapFile}, - {GetType(Microsoft.VisualBasic.Logging.LogFile), AddressOf IODeviceDriver.SaveLogFile}} - End Sub - - Private Shared Function SaveLogFile(log As Microsoft.VisualBasic.Logging.LogFile, path As String) As Boolean - Return log.Save(path) - End Function - - ''' - ''' 返回成功导入的IO方法 - ''' - ''' - ''' - ''' - Public Overrides Function ImportsHandler([Module] As System.Type) As Integer - Dim Methods As TypeHandle() = GetMethods([Module]) - - For Each item In Methods - If _InternalHandles.ContainsKey(item.Type) Then - Call Console.WriteLine("[UPDATE] {0} ==> {1}::{2}", item.Type.FullName, [Module].FullName, item.MethodInfo.Name) - Call _InternalHandles.Remove(item.Type) '如果已经存在该类型的写入方法,则进行更新 - End If - Call _InternalHandles.Add(item.Type, value:=Function(data As Object, path As String) As Boolean - Dim rtvl As Object = item.MethodInfo.Invoke(Nothing, New Object() {data, path}) - Return CType(rtvl, Boolean) - End Function) - Call _InternalRecordHandleTrace(item.Type, item.MethodInfo) - Next - - Return Methods.Count - End Function - - Private Shared Function WriteImageFile(data As Image, path As String) As Boolean - Call data.Save(path) - Return True - End Function - - Private Shared Function WriteBitmapFile(data As Bitmap, path As String) As Boolean - Call data.Save(path) - Return True - End Function - - Private Shared Function WriteTextFile(data As Object, path As String) As Boolean - Dim strValue As String = If(data Is Nothing, "", data.ToString) - Call FileIO.FileSystem.WriteAllText(path, strValue, False) - Return True - End Function - - Private Shared Function WriteTextCollection(data As Object, path As String) As Boolean - Dim ChunkBuffer As String() = (From item In DirectCast(data, IEnumerable) Let strValue As String = item.ToString Select strValue).ToArray - Call IO.File.WriteAllLines(path, ChunkBuffer) - Return True - End Function - - Private Shared Function WriteCharCollectionAsText(data As Object, path As String) As Boolean - Dim strValue As String = If(data Is Nothing, "", New String((From c In DirectCast(data, IEnumerable) Let ch As Char = DirectCast(c, Char) Select ch).ToArray)) - Call FileIO.FileSystem.WriteAllText(path, strValue, False) - Return True - End Function - - Const EXCEPTION_MESSAGE_IO_HANDLER_MISSING As String = "IO method is missing for type: {0}, please try using ""imports "" command for imports the io method." - - ''' - ''' This function will trying to save the data in a properly method from the data type: - ''' Function will trying save the string as a text file; - ''' Basic data type collection will be save as a csv data table; - ''' All of the other data type will be saved based on the registry data; - ''' If the method is not found in the registry for the data type, then function will throw a method missing exception! - ''' (函数会尝试根据文件的类型来选择合适的保存格式: - ''' 字符串类型会保存为文本文件 - ''' 数组会保存为Csv - ''' 其他的复杂类型会尝试根据注册的句柄来执行相应的数据保存操作) - ''' - ''' - ''' - ''' - ''' - Public Function WriteData(variable As String, path As String) As Boolean - Dim var As Object = _ShoalMemoryDevice.TryGetValue(variable) - Dim type As Type = var.GetType - - path = FileIO.FileSystem.GetFileInfo(_ShoalMemoryDevice.FormatString(path)).FullName - - Call Console.WriteLine("Flush data to handle *""file:///{0}""...", path) - Call FileIO.FileSystem.CreateDirectory(FileIO.FileSystem.GetParentPath(path)) - - If _InternalHandles.ContainsKey(type) Then - - Try - Return _InternalHandles(type)(var, path) - Catch ex As Exception - Throw New ShoalShell.Runtime.Objects.ObjectModels.Exceptions.ScriptRunTimeException( - String.Format("An unexpected exception occurs while trying flush the data to the handle *""{0}""...", path) & vbCrLf & vbCrLf & ex.ToString, _ShoalMemoryDevice) - End Try - Else - Dim GenericCollection As Type = Nothing - - Try - GenericCollection = type.Collection2GenericIEnumerable - Catch ex As Exception - Dim Message As String = String.Format(EXCEPTION_ON_HANDLE_GENERIC_TYPE, type.FullName) & vbCrLf & vbCrLf & ex.ToString - Throw New ShoalShell.Runtime.Objects.ObjectModels.Exceptions.ScriptRunTimeException(Message, _ShoalMemoryDevice) - End Try - - If _InternalHandles.ContainsKey(GenericCollection) Then - - Try - Return _InternalHandles(GenericCollection)(var, path) - Catch ex As Exception - Throw New ShoalShell.Runtime.Objects.ObjectModels.Exceptions.ScriptRunTimeException( - String.Format("An unexpected exception occurs while trying flush the data to the handle *""{0}""...", path) & vbCrLf & vbCrLf & ex.ToString, _ShoalMemoryDevice) - End Try - Else - Throw New MethodNotFoundException(String.Format(EXCEPTION_MESSAGE_IO_HANDLER_MISSING, type.FullName), "") - End If - End If - End Function - - Public Const EXCEPTION_ON_HANDLE_GENERIC_TYPE As String = "Unable to handle the type to generic: ""{0}"". The reason for this error maybe is you haven't imports the io device handler for target type." - - Protected Overrides Function HandleEntryToString(item As Type) As String - Return item.FullName - End Function - End Class -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/DeviceDriver/OutputDeviceDriver.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/DeviceDriver/OutputDeviceDriver.vb deleted file mode 100644 index 94523c8ac..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/DeviceDriver/OutputDeviceDriver.vb +++ /dev/null @@ -1,122 +0,0 @@ -Imports System.Drawing -Imports System.Reflection -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Objects.ObjectModels.Exceptions -Imports Microsoft.VisualBasic.Scripting.ShoalShell.DeviceDriver.DriverHandles - -Namespace DeviceDriver - - ''' - ''' Output support module for that data type.(各种数据类型的输出模块) - ''' - ''' - Public Class OutputDeviceDriver : Inherits TypeHandleEntryPointDriverrModule(Of OutputDeviceHandle, Func(Of Object, Object), Type) - - Sub New(Memory As ShoalShell.Runtime.Objects.I_MemoryManagementDevice) - MyBase.New(Memory.ScriptEngine) - MyBase._InternalHandles = New Dictionary(Of Type, Func(Of Object, Object)) _ - From - { - {GetType(String), AddressOf OutputDeviceDriver.WriteLineText}, - {GetType(Generic.IEnumerable(Of String)), AddressOf OutputDeviceDriver.WriteStringCollection}, - {GetType(Generic.IEnumerable(Of Object)), AddressOf OutputDeviceDriver.WriteObjectCollection}, - {GetType(Double), AddressOf OutputDeviceDriver.WriteLineText}, - {GetType(Integer), AddressOf OutputDeviceDriver.WriteLineText}, - {GetType(UInteger), AddressOf OutputDeviceDriver.WriteLineText}, - {GetType(Short), AddressOf OutputDeviceDriver.WriteLineText}, - {GetType(Long), AddressOf OutputDeviceDriver.WriteLineText}, - {GetType(Date), AddressOf OutputDeviceDriver.WriteLineText}, - {GetType(Boolean), AddressOf OutputDeviceDriver.WriteLineText}, - {GetType(Byte), AddressOf OutputDeviceDriver.WriteLineText}, - {GetType(Object), AddressOf OutputDeviceDriver.WriteLineText}} - End Sub - - Private Shared Function WriteLineText(s As Object) As Object - Call Console.WriteLine(" = [0] " & s.ToString) - Return s - End Function - - Private Shared Function WriteObjectCollection(data As Generic.IEnumerable(Of Object)) As Object() - If data.IsNullOrEmpty Then - Call Console.WriteLine(" = null array") - End If - - Call WriteStringCollection((From item In data Let strValue As String = If(item = Nothing, "", item.ToString) Select strValue).ToArray) - Return data.ToArray - End Function - - Private Shared Function WriteStringCollection(data As Generic.IEnumerable(Of String)) As String() - If data.IsNullOrEmpty Then - Call Console.WriteLine(" = null array") - End If - - Call Console.WriteLine(" =") - For i As Integer = 0 To data.Count - 1 - Call Console.WriteLine(" [{0}] {1}", i, data(i)) - Next - - Return data.ToArray - End Function - - Public Overrides Function ImportsHandler([Module] As Type) As Integer - Dim Methods As TypeHandle() = GetMethods([Module]) - - For Each item As TypeHandle In Methods - - If _InternalHandles.ContainsKey(item.Type) Then - Call Console.WriteLine("[UPDATE] {0} ==> {1}::{2}", item.Type.FullName, [Module].FullName, item.MethodInfo.Name) - Call _InternalHandles.Remove(item.Type) '如果已经存在该类型的写入方法,则进行更新 - End If - - Call _InternalHandles.Add(item.Type, value:=Function(data As Object) item.MethodInfo.Invoke(Nothing, New Object() {data})) - Call _InternalRecordHandleTrace(item.Type, item.MethodInfo) - Next - - Return Methods.Count - End Function - - Const EXCEPTION_MESSAGE_OUTPUT_HANDLER_MISSING As String = "Output handler method is missing for type: {0}, please try using ""imports "" command for imports the io method." - Const NULL As String = "NULL" - - ''' - ''' - ''' - ''' Variable Name.(变量名) - ''' - ''' - Public Function HandleOutput(variable As String) As Object - Dim var As Object = _ShoalMemoryDevice.TryGetValue(variable) - - If var Is Nothing Then var = NULL 'var是空值,则输出空值所指示的字符串 - - Dim Type As Type = var.GetType - - If _InternalHandles.ContainsKey(Type) Then - Dim DriverHandle = _InternalHandles(Type) - Return DriverHandle(var) - Else - Return InternalProcessCollectionTypeOutput(Type, var) - End If - End Function - - Private Function InternalProcessCollectionTypeOutput(TypeInfo As Type, var As Object) As Object - Dim GenericCollection As Type = TypeInfo.Collection2GenericIEnumerable - - If _InternalHandles.ContainsKey(GenericCollection) Then - Return _InternalHandles(GenericCollection)(var) - Else - Try - Dim cString As String = var.ToString '尝试将目标对象转换为字符串进行输出 - Call Console.WriteLine(cString) - Return cString - Catch ex As Exception '但是转换失败了,最终只能够跑出错误 - Dim Msg As String = String.Format(EXCEPTION_MESSAGE_OUTPUT_HANDLER_MISSING, TypeInfo.FullName) - Throw New MethodNotFoundException(Msg, "") - End Try - End If - End Function - - Protected Overrides Function HandleEntryToString(item As Type) As String - Return item.FullName - End Function - End Class -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/DeviceDriver/TypeHandleEntryPointDriverrModule.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/DeviceDriver/TypeHandleEntryPointDriverrModule.vb deleted file mode 100644 index 5bb282abc..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/DeviceDriver/TypeHandleEntryPointDriverrModule.vb +++ /dev/null @@ -1,79 +0,0 @@ -Imports Microsoft.VisualBasic.Scripting.ShoalShell.DeviceDriver.DriverHandles -Imports System.Reflection - -Namespace DeviceDriver - - Public MustInherit Class TypeHandleEntryPointDriverrModule(Of HandlerEntry As TypeHandlerEntryPoint, Handler, T_TYPE_ID) : Inherits ShoalShell.Runtime.Objects.ObjectModels.IScriptEngineComponent - - Protected _ShoalMemoryDevice As Runtime.Objects.I_MemoryManagementDevice - Protected _InternalHandles As Dictionary(Of T_TYPE_ID, Handler) - - Dim _HandlesTrace As Dictionary(Of T_TYPE_ID, String) = New Dictionary(Of T_TYPE_ID, String) - - Protected MustOverride Function HandleEntryToString(item As T_TYPE_ID) As String - - Public Function GetMountEntries() As String() - If _HandlesTrace.IsNullOrEmpty Then - Return {"No external device was mount at here yet..." & vbCrLf} - End If - - Dim LQuery = (From item In _HandlesTrace Select String.Format(" ----> [{0}] Mount at ""{1}""" & vbCrLf, HandleEntryToString(item.Key), item.Value)).ToList - Call LQuery.Insert(0, "Device TYPE_ID is " & Me.GetType.FullName & vbCrLf) - Return LQuery.ToArray - End Function - - Protected Sub _InternalRecordHandleTrace(Entry As T_TYPE_ID, MountPoint As MethodInfo) - If _HandlesTrace.ContainsKey(Entry) Then - Call _HandlesTrace.Remove(Entry) - End If - - Dim Assembly = MountPoint.DeclaringType - Dim sPoint As String = String.Format("{0}!{1}::{2}", Assembly.Assembly.Location, Assembly.FullName, MountPoint.ToString) - - Call _HandlesTrace.Add(Entry, sPoint) - End Sub - - Sub New(ScriptEngine As ShoalShell.Runtime.Objects.ShellScript) - Call MyBase.New(ScriptEngine) - _ShoalMemoryDevice = ScriptEngine._EngineMemoryDevice - End Sub - - Public MustOverride Function ImportsHandler([Module] As System.Type) As Integer - - Protected Shared Function GetMethods([Module] As ShoalShell.DelegateHandlers.TypeLibraryRegistry.RegistryNodes.Module) As TypeHandle() - Dim Methods = (From Entry As KeyValuePair(Of System.Type, String) - In [Module].OriginalAssemblys - Select (From MethodInfo As System.Reflection.MethodInfo - In Entry.Key.GetMethods(System.Reflection.BindingFlags.Public Or System.Reflection.BindingFlags.Static) - Let attrs As Object() = MethodInfo.GetCustomAttributes(attributeType:=GetType(HandlerEntry), inherit:=True) - Where Not attrs.IsNullOrEmpty - Let Handle = DirectCast(attrs.First, HandlerEntry) - Select New TypeHandle With - { - .Type = Handle.SupportDatatType, .Handle = Handle, .MethodInfo = MethodInfo}).ToArray).ToArray - Return Methods.MatrixToVector - End Function - - Protected Shared Function GetMethods([Module] As System.Type) As TypeHandle() - Dim Methods = (From MethodInfo As System.Reflection.MethodInfo - In [Module].GetMethods(System.Reflection.BindingFlags.Public Or System.Reflection.BindingFlags.Static) - Let attrs As Object() = MethodInfo.GetCustomAttributes(attributeType:=GetType(HandlerEntry), inherit:=True) - Where Not attrs.IsNullOrEmpty - Let Handle = DirectCast(attrs.First, HandlerEntry) - Select New TypeHandle With - { - .Handle = Handle, .Type = Handle.SupportDatatType, .MethodInfo = MethodInfo}).ToArray - Return Methods - End Function - - Protected Structure TypeHandle - Dim Type As Type - Dim MethodInfo As MethodInfo - Dim Handle As HandlerEntry - - Public Overrides Function ToString() As String - Return Handle.ToString - End Function - End Structure - End Class -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/Dynamics.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/Dynamics.vb deleted file mode 100644 index 5089725c5..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/Dynamics.vb +++ /dev/null @@ -1,362 +0,0 @@ -Imports System.Dynamic -Imports System.Text -Imports Microsoft.VisualBasic.CommandLine.Reflection - -Namespace Runtime.Objects - - ''' - ''' Dynamics programming environment. If the environment thorw member not found exception, then you should consider of the - ''' target method namespace may be not registered yet so then you should try using - ''' to initialize the environment. - ''' (Shoal脚本的动态编程环境,注意:假若提示找不到方法或者空引用,请使用带参数的 - ''' 创建方法在扫描完插件文件夹之后再来创建对象实例) - ''' - ''' 所返回的是Shoal的系统保留变量的值 - ''' - ''' - Public Class Dynamics : Inherits Dynamic.DynamicObject - Implements System.IDisposable - Implements IConvertible - - Dim _ShoalShellScriptEngine As ShoalShell.Runtime.Objects.ShellScript - - ''' - ''' 获取Shoal之中的系统保留变量$的值 - ''' - ''' - ''' - ''' - Public ReadOnly Property TopStackValue As Object - Get - Return _ShoalShellScriptEngine._EngineMemoryDevice("") - End Get - End Property - - Sub New(LibraryRegistry As ShoalShell.DelegateHandlers.TypeLibraryRegistry.DelegateRegistry) - _ShoalShellScriptEngine = New ShellScript(LibraryRegistry) - End Sub - - Sub New(ScriptEngine As ShoalShell.Runtime.Objects.ShellScript) - _ShoalShellScriptEngine = ScriptEngine - End Sub - - ''' - ''' - ''' - ''' - ''' - Public Shared Function CreateDefaultEnvironment() As Dynamics - Return New ShoalShell.Runtime.Objects.Dynamics(ShoalShell.DelegateHandlers.TypeLibraryRegistry.DelegateRegistry.CreateDefault) - End Function - - Public Shared Function CreateDefaultEnvironment(scanPlugins As String) As Dynamics - Dim Environment = New ShoalShell.Runtime.Objects.Dynamics(ShoalShell.DelegateHandlers.TypeLibraryRegistry.DelegateRegistry.CreateDefault) - Call Environment.ScanPlugins(scanPlugins) - Call Environment._ShoalShellScriptEngine.ReloadLibraryRegistry() - Return Environment - End Function - - Public Function [Imports]([Namespace] As String) As Integer - Return Me._ShoalShellScriptEngine._Interpreter._InternalCommands.ImportsNamespace([Namespace]) - End Function - - Public Function Install(AssemblyPath As String) As Boolean - Return Me._ShoalShellScriptEngine.InstallModules(AssemblyPath) - End Function - - Public Function Evaluate(script As String) As Object - Call _ShoalShellScriptEngine.EXEC(script) - Return _ShoalShellScriptEngine.GetStackValue - End Function - - Const CMDL_SCAN_PLUG_INS As String = "-scan.plugins -dir ""{0}""" - - - Public Function ScanPlugins(argvs As CommandLine.CommandLine) As Integer - Dim Dir As String = argvs("-dir"), Ext As String = argvs("-ext") - Ext = If(String.IsNullOrEmpty(Ext), "*.*", Ext) - - Dim FilesForScan = FileIO.FileSystem.GetFiles(Dir, FileIO.SearchOption.SearchTopLevelOnly, Ext) - Dim Registry As Microsoft.VisualBasic.Scripting.ShoalShell.DelegateHandlers.TypeLibraryRegistry.DelegateRegistry = Me._ShoalShellScriptEngine.TypeLibraryRegistry - - For Each File As String In FilesForScan - On Error Resume Next - Call Registry.RegisterAssemblyModule(File, "") - Next - - Call Registry.Save() - - Return 0 - End Function - -#Region "Dynamics Support" - - Public Overrides Function GetDynamicMemberNames() As IEnumerable(Of String) - Return (From item In _ShoalShellScriptEngine._EngineMemoryDevice Select item.Key).ToArray - End Function - - Public Overrides Function TryGetMember(ByVal binder As GetMemberBinder, ByRef result As Object) As Boolean - If _ShoalShellScriptEngine._EngineMemoryDevice.ExistsVariable(binder.Name) Then - result = _ShoalShellScriptEngine._EngineMemoryDevice.TryGetValue(binder.Name) - Else - result = Nothing - End If - - Return True - End Function - - Public Overrides Function TrySetMember(binder As SetMemberBinder, value As Object) As Boolean - If _ShoalShellScriptEngine._EngineMemoryDevice.ExistsVariable(binder.Name) Then - Call _ShoalShellScriptEngine._EngineMemoryDevice.SetValue(binder.Name, value) - Return True - End If - - Return False - End Function - - Dim _InternalVirtualInvokeMethodNamespaceCache As StringBuilder = New StringBuilder(1024) - - ''' - ''' 首先尝试查看里面的数据,假若没有的话在直接查找,假若有数据,则执行命名空间的连接操作之后在查找执行 - ''' - ''' - ''' - ''' - ''' - ''' - Public Overrides Function TryInvokeMember(binder As InvokeMemberBinder, args() As Object, ByRef result As Object) As Boolean - Dim MethodName As String - - If _InternalVirtualInvokeMethodNamespaceCache.Length = 0 Then - MethodName = binder.Name - Else - MethodName = String.Format("{0}.{1}", _InternalVirtualInvokeMethodNamespaceCache.ToString, binder.Name) - End If - - Try - Dim Method = _ShoalShellScriptEngine._Interpreter.TryGetCommand(MethodName) - result = Method.TryInvoke(Nothing, args) - _InternalVirtualInvokeMethodNamespaceCache.Clear() - Catch ex As Exception - If _InternalVirtualInvokeMethodNamespaceCache.Length = 0 Then - _InternalVirtualInvokeMethodNamespaceCache.Append(binder.Name) - Else - Call _InternalVirtualInvokeMethodNamespaceCache.Append("." & binder.Name) - End If - - result = Me - End Try - - Return True - End Function - - Public Overrides Function TryConvert(binder As ConvertBinder, ByRef result As Object) As Boolean - Return MyBase.TryConvert(binder, result) - End Function -#End Region - -#Region "IDisposable Support" - Private disposedValue As Boolean ' To detect redundant calls - - ' IDisposable - Protected Overridable Sub Dispose(disposing As Boolean) - If Not Me.disposedValue Then - If disposing Then - ' TODO: dispose managed state (managed objects). - End If - - ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below. - ' TODO: set large fields to null. - End If - Me.disposedValue = True - End Sub - - ' TODO: override Finalize() only if Dispose(ByVal disposing As Boolean) above has code to free unmanaged resources. - 'Protected Overrides Sub Finalize() - ' ' Do not change this code. Put cleanup code in Dispose(ByVal disposing As Boolean) above. - ' Dispose(False) - ' MyBase.Finalize() - 'End Sub - - ' This code added by Visual Basic to correctly implement the disposable pattern. - Public Sub Dispose() Implements IDisposable.Dispose - ' Do not change this code. Put cleanup code in Dispose(disposing As Boolean) above. - Dispose(True) - GC.SuppressFinalize(Me) - End Sub -#End Region - -#Region "Implements IConvertible" - - Protected ReadOnly _TypeCodes As Dictionary(Of Type, TypeCode) = - New Dictionary(Of Type, TypeCode) From - { - {GetType(Object), TypeCode.Object}, - {GetType(Boolean), TypeCode.Boolean}, - {GetType(Byte), TypeCode.Byte}, - {GetType(Char), TypeCode.Char}, - {GetType(DateTime), TypeCode.DateTime}, - {GetType(DBNull), TypeCode.DBNull}, - {GetType(Decimal), TypeCode.Decimal}, - {GetType(Double), TypeCode.Double}, - {GetType(Int16), TypeCode.Int16}, - {GetType(Int32), TypeCode.Int32}, - {GetType(Int64), TypeCode.Int64}, - {GetType(SByte), TypeCode.SByte}, - {GetType(Single), TypeCode.Single}, - {GetType(String), TypeCode.String}, - {GetType(UInt16), TypeCode.UInt16}, - {GetType(UInt32), TypeCode.UInt32}, - {GetType(UInt64), TypeCode.UInt64}} - - Public Function GetTypeCode() As TypeCode Implements IConvertible.GetTypeCode - Dim value = Me.TopStackValue - - If value Is Nothing Then - Return TypeCode.Object - End If - - Dim valueType As Type = value.GetType - - If _TypeCodes.ContainsKey(valueType) Then - Return _TypeCodes(valueType) - Else - Return TypeCode.Object - End If - End Function - - Public Function ToBoolean(provider As IFormatProvider) As Boolean Implements IConvertible.ToBoolean - Return TopStackValue.ToString.getBoolean - End Function - - Public Function ToByte(provider As IFormatProvider) As Byte Implements IConvertible.ToByte - Return CType(TopStackValue, Byte) - End Function - - Public Function ToChar(provider As IFormatProvider) As Char Implements IConvertible.ToChar - Dim value As Object = TopStackValue - If value Is Nothing Then - Return Chr(0) - Else - Return value.ToString.First - End If - End Function - - Public Function ToDateTime(provider As IFormatProvider) As Date Implements IConvertible.ToDateTime - Dim value As Object = TopStackValue - If value Is Nothing Then - Return Now - Else - Dim d As DateTime = CType(value.ToString, DateTime) - Return d - End If - End Function - - Public Function ToDecimal(provider As IFormatProvider) As Decimal Implements IConvertible.ToDecimal - Dim value As Object = TopStackValue - If value Is Nothing Then - Return 0 - Else - Return CType(value, Decimal) - End If - End Function - - Public Function ToDouble(provider As IFormatProvider) As Double Implements IConvertible.ToDouble - Dim value = TopStackValue - If value Is Nothing Then - Return 0 - Else - Return Val(value.ToString) - End If - End Function - - Public Function ToInt16(provider As IFormatProvider) As Short Implements IConvertible.ToInt16 - Dim value = TopStackValue - If value Is Nothing Then - Return 0 - Else - Return Val(value.ToString) - End If - End Function - - Public Function ToInt32(provider As IFormatProvider) As Integer Implements IConvertible.ToInt32 - Dim value = TopStackValue - If value Is Nothing Then - Return 0 - Else - Return Val(value.ToString) - End If - End Function - - Public Function ToInt64(provider As IFormatProvider) As Long Implements IConvertible.ToInt64 - Dim value = TopStackValue - If value Is Nothing Then - Return 0 - Else - Return Val(value.ToString) - End If - End Function - - Public Function ToSByte(provider As IFormatProvider) As SByte Implements IConvertible.ToSByte - Dim value = TopStackValue - If value Is Nothing Then - Return 0 - Else - Return CType(Val(value.ToString), SByte) - End If - End Function - - Public Function ToSingle(provider As IFormatProvider) As Single Implements IConvertible.ToSingle - Dim value = TopStackValue - If value Is Nothing Then - Return 0 - Else - Return Val(value.ToString) - End If - End Function - - Public Overloads Function ToString(provider As IFormatProvider) As String Implements IConvertible.ToString - Dim value = TopStackValue - If value Is Nothing Then - Return "" - Else - Return value.ToString - End If - End Function - - Public Function ToType(conversionType As Type, provider As IFormatProvider) As Object Implements IConvertible.ToType - Return TopStackValue.GetType - End Function - - Public Function ToUInt16(provider As IFormatProvider) As UShort Implements IConvertible.ToUInt16 - Dim value = TopStackValue - If value Is Nothing Then - Return 0 - Else - Return Val(value.ToString) - End If - End Function - - Public Function ToUInt32(provider As IFormatProvider) As UInteger Implements IConvertible.ToUInt32 - Dim value = TopStackValue - If value Is Nothing Then - Return 0 - Else - Return Val(value.ToString) - End If - End Function - - Public Function ToUInt64(provider As IFormatProvider) As ULong Implements IConvertible.ToUInt64 - Dim value = TopStackValue - If value Is Nothing Then - Return 0 - Else - Return Val(value.ToString) - End If - End Function -#End Region - - End Class -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/Exceptions/CircularReferencesException.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/Exceptions/CircularReferencesException.vb deleted file mode 100644 index c1c853f89..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/Exceptions/CircularReferencesException.vb +++ /dev/null @@ -1,47 +0,0 @@ -Imports System.Text - -Namespace Runtime.Objects.ObjectModels.Exceptions - - ''' - ''' One or more circle reference was detected from the include list.(在多个脚本之间使用include语句产生了循环引用) - ''' - ''' - Public Class CircularReferencesException : Inherits ShoalScriptException - - Public Property IncludeList As String() - - Sub New() - Call MyBase.New("Cycle Reference in the script! One or more circle reference was detected from the include list!") - End Sub - - Public Overrides ReadOnly Property ExceptionType As String - Get - Return GetType(CircularReferencesException).FullName - End Get - End Property - - Public Overrides Function ToString() As String - Dim sBuilder As StringBuilder = New StringBuilder(MyBase.ToString) - Call sBuilder.AppendLine() - Call sBuilder.AppendLine("Include List:") - For Each item In IncludeList - Call sBuilder.AppendLine(item) - Next - - Dim CycleIncluded = (From item In (From strLine As String - In IncludeList - Select FileIO.FileSystem.GetFileInfo(strLine).FullName - Group FullName By FullName Into Group).ToArray - Where item.Group.Count > 1 - Select item).ToArray - - Call sBuilder.AppendLine() - Call sBuilder.AppendLine("Cycle Reference at: ") - For Each Line In CycleIncluded - Call sBuilder.AppendLine(Line.FullName) - Next - - Return sBuilder.ToString - End Function - End Class -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/Exceptions/InterpreterException.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/Exceptions/InterpreterException.vb deleted file mode 100644 index 319be96b2..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/Exceptions/InterpreterException.vb +++ /dev/null @@ -1,34 +0,0 @@ -Imports System.Text - -Namespace Runtime.Objects.ObjectModels.Exceptions - - Public Class InterpreterException : Inherits ShoalScriptException - - Sub New(Message As String) - Call MyBase.New(Message) - End Sub - - Public Overrides ReadOnly Property ExceptionType As String - Get - Return GetType(InterpreterException).FullName - End Get - End Property - End Class - - ''' - ''' Syntax error in the shoal shell interpreter script text parsing. - ''' - ''' - Public Class SyntaxErrorException : Inherits InterpreterException - - Sub New(message As String) - Call MyBase.New(message) - End Sub - - Public Overrides ReadOnly Property ExceptionType As String - Get - Return GetType(SyntaxErrorException).FullName - End Get - End Property - End Class -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/Exceptions/MethodNotFoundException.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/Exceptions/MethodNotFoundException.vb deleted file mode 100644 index 470a19310..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/Exceptions/MethodNotFoundException.vb +++ /dev/null @@ -1,28 +0,0 @@ -Imports System.Text - -Namespace Runtime.Objects.ObjectModels.Exceptions - - ''' - ''' Could not found the method entry point in the registry. - ''' - ''' - Public Class MethodNotFoundException : Inherits ShoalShell.Runtime.Objects.ObjectModels.Exceptions.ShoalScriptException - - Const METHOD_NOT_FOUND As String = "Could not found the method entry point for ""{0}""!" - - Public Property MethodName As String - Public Property Info As String - - Sub New(MethodName As String, Details As String) - Call MyBase.New(String.Format(METHOD_NOT_FOUND, MethodName)) - Me.Info = Details - Me.MethodName = MethodName - End Sub - - Public Overrides ReadOnly Property ExceptionType As String - Get - Return NameOf(MethodNotFoundException) - End Get - End Property - End Class -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/Exceptions/RunTimeException.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/Exceptions/RunTimeException.vb deleted file mode 100644 index cebdb0684..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/Exceptions/RunTimeException.vb +++ /dev/null @@ -1,33 +0,0 @@ -Imports System.Text - -Namespace Runtime.Objects.ObjectModels.Exceptions - - Public Class ScriptRunTimeException : Inherits ShoalScriptException - - Public Property InnerExceptionValue As String - Dim MemoryDump As Runtime.Objects.I_MemoryManagementDevice - - Sub New(message As String, MemoryDump As Runtime.Objects.I_MemoryManagementDevice) - MyBase.New(message) - Me.InnerExceptionValue = message - Me.MemoryDump = MemoryDump - End Sub - - Public Overrides Function ToString() As String - Dim sBuilder As StringBuilder = New StringBuilder(1024) - Call sBuilder.AppendLine(String.Format("[ERROR_LINE]" & vbCrLf & " ----> {0} ............................. line: {1}", ScriptLine, LineNumber) & vbCrLf) - Call sBuilder.AppendLine(New String("-", 30) & vbCrLf) - Call sBuilder.AppendLine("[ShellScript Memory Dump Details]" & vbCrLf) - Call sBuilder.AppendLine(" " & MemoryDump.ExportMemoryDetails) - Call sBuilder.AppendLine(vbCrLf & "[Internal System.Exception Caller Stack Details Information]" & vbCrLf & vbCrLf & " " & InnerExceptionValue) - - Return sBuilder.ToString - End Function - - Public Overrides ReadOnly Property ExceptionType As String - Get - Return GetType(ScriptRunTimeException).FullName - End Get - End Property - End Class -End Namespace diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/Exceptions/ShoalScriptException.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/Exceptions/ShoalScriptException.vb deleted file mode 100644 index e742054a2..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/Exceptions/ShoalScriptException.vb +++ /dev/null @@ -1,25 +0,0 @@ -Imports System.Text - -Namespace Runtime.Objects.ObjectModels.Exceptions - - Public MustInherit Class ShoalScriptException : Inherits Exception - - Public Property LineNumber As Integer - Public Property ScriptLine As String - - Public MustOverride ReadOnly Property ExceptionType As String - - Dim InnerExceptionMessage As String - - Public ReadOnly Property ExceptionInformation As String - Get - Return InnerExceptionMessage - End Get - End Property - - Sub New(Message As String) - MyBase.New(Message) - InnerExceptionMessage = Message - End Sub - End Class -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/IScriptEngineComponent.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/IScriptEngineComponent.vb deleted file mode 100644 index b1f415932..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/IScriptEngineComponent.vb +++ /dev/null @@ -1,31 +0,0 @@ -Namespace Runtime.Objects.ObjectModels - - ''' - ''' This type of the class object consist of the shoal shell scripting engine. - ''' - ''' - Public MustInherit Class IScriptEngineComponent - - Protected _RuntimeEnvironment As ShoalShell.Runtime.Objects.ShellScript - - ''' - ''' Script host entry. - ''' - ''' - ''' - ''' - Public ReadOnly Property ScriptEngine As ShoalShell.Runtime.Objects.ShellScript - Get - Return _RuntimeEnvironment - End Get - End Property - - Sub New(ScriptEngine As ShoalShell.Runtime.Objects.ShellScript) - _RuntimeEnvironment = ScriptEngine - End Sub - - Public Overrides Function ToString() As String - Return _RuntimeEnvironment.ToString - End Function - End Class -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/MemoryManagement.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/MemoryManagement.vb deleted file mode 100644 index 95e9a8d0b..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/MemoryManagement.vb +++ /dev/null @@ -1,475 +0,0 @@ -Imports System.Text -Imports System.Text.RegularExpressions - -Imports Variable = System.Collections.Generic.KeyValuePair(Of String, Object) -Imports Variables = System.Collections.Generic.IEnumerable(Of System.Collections.Generic.KeyValuePair(Of String, Object)) - -Namespace Runtime.Objects - - ''' - ''' This class manage the memory of the shellscript, it mainly consist of two parts: - ''' List(Of KeyValuePair(Of String, Object)) was manage for the variables that created by the script executation; - ''' while the SortedDictionary(Of String, Object) was manage for the constants that was imports by the user using the Imports command - ''' (脚本对象的内存管理模块) - ''' - ''' - Public Class I_MemoryManagementDevice : Inherits ShoalShell.Runtime.Objects.ObjectModels.IScriptEngineComponent - Implements IDictionary(Of String, Object) - - Dim _InternalCallerStackValue As Object - ''' - ''' 变量集合 - ''' - ''' - Dim _InnerListHash As List(Of KeyValuePair(Of String, Object)) = New List(Of KeyValuePair(Of String, Object)) - ''' - ''' 从外部插件模块之中所导入的常量的列表 - ''' - ''' - Dim _InternalImportsConstantsHash As SortedDictionary(Of String, Object) = New SortedDictionary(Of String, Object) - ''' - ''' 会优先于本对象被调用 - ''' - ''' - Friend _InternalImportsDataSource As ShoalShell.Runtime.Objects.ObjectModels.DataSourceMapping.DataSourceMappingHandler - - Protected Shared ReadOnly MemoryType As String = GetType(I_MemoryManagementDevice).FullName - Protected Friend _LastIf_Flag As Boolean - - Public Const CONSERVED_SYSTEM_VARIABLE As String = "$" - - Sub New(ScriptEngine As ShellScript) - Call MyBase.New(ScriptEngine) - Call _InternalImportsConstantsHash.Add("Null", Nothing) - Call _InternalImportsConstantsHash.Add("HOME", My.Application.Info.DirectoryPath) - Call _InternalImportsConstantsHash.Add("Bin", FileIO.FileSystem.GetFileInfo(String.Format("{0}/{1}.exe", My.Application.Info.DirectoryPath, My.Application.Info.AssemblyName)).FullName) - Call _InternalImportsConstantsHash.Add("TEMP", My.Computer.FileSystem.SpecialDirectories.Temp) - Call _InternalImportsConstantsHash.Add("Desktop", My.Computer.FileSystem.SpecialDirectories.Desktop) - Call _InternalImportsConstantsHash.Add("My_Documents", My.Computer.FileSystem.SpecialDirectories.MyDocuments) - Call _InternalImportsConstantsHash.Add("APP_DATA", My.Computer.FileSystem.SpecialDirectories.CurrentUserApplicationData) - Call _InternalImportsConstantsHash.Add("PID", Process.GetCurrentProcess.Id) - - _InternalImportsDataSource = New ObjectModels.DataSourceMapping.DataSourceMappingHandler(ScriptEngine) - End Sub - - Public Sub PushStack(value As Object) - _InternalCallerStackValue = value - End Sub - - Public Function GetStackValue() As Object - Return _InternalCallerStackValue - End Function - - Public Function ExportMemoryDetails() As String - Dim sBuilder As StringBuilder = New StringBuilder(1024) - - If Not _InternalImportsConstantsHash.IsNullOrEmpty Then - Call sBuilder.AppendLine("Imports Constants:" & vbCrLf) - Call sBuilder.AppendLine(ExportList(_InternalImportsConstantsHash) & vbCrLf & vbCrLf) - End If - If Not _InnerListHash.IsNullOrEmpty Then - Call sBuilder.AppendLine(" Variables:" & vbCrLf) - Call sBuilder.AppendLine(ExportList(_InnerListHash) & vbCrLf & vbCrLf) - End If - If Not _InternalImportsDataSource.IsEmpty Then - Call sBuilder.AppendLine(" Imports DataSource Handle:" & vbCrLf) - Call sBuilder.AppendLine(ExportList(_InternalImportsDataSource.ToMemorySource)) - End If - - Return sBuilder.ToString - End Function - - Private Shared Function ExportList(Data As Generic.IEnumerable(Of Variable)) As String - Dim MaxLength As Integer = (From item In Data Select Len(item.Key)).ToArray.Max - Dim ChunkBuffer As String() = (From item As Variable - In Data - Let GeneratedLine As String = String.Format(" {0}{1} = {2}", item.Key, New String(" "c, MaxLength - Len(item.Key)), If(item.Value Is Nothing, "NULL", item.Value.ToString)) - Select GeneratedLine).ToArray - Return String.Join(vbCrLf, ChunkBuffer) - End Function - - ''' - ''' 请使用变量引用表达式 - ''' - ''' - ''' - ''' - ''' 普通变量: - ''' var <- expression - ''' - ''' 指针变量 - ''' $p <- expression - ''' 假若$p变量的值为var,即 - ''' $p - ''' = [0] var - ''' - ''' 则 - ''' 上述表达式等同于 - ''' var <- expression - ''' - Public Function TryGetValue(variable As String) As Object - If variable.First = "$"c Then - If Len(variable) = 1 Then - Return Item("$") - Else - Return TryGetValue(Mid(variable, 2)) '变量指针 - End If - ElseIf variable.First = "&"c Then - variable = Mid(variable, 2) - Dim LQuery = (From item In _InternalImportsConstantsHash Where String.Equals(variable, item.Key, StringComparison.OrdinalIgnoreCase) Select item.Value).ToArray - Return LQuery.FirstOrDefault - Else - If ExistsVariable(variable) Then - Return Me(variable) - Else - Return variable - End If - End If - End Function - - Public Function TryGetValue(Index As Long) As Variable - Dim value = Me._InnerListHash(Index) - Return value - End Function - - Public Shared Function GetArrayValue(DataSource As IEnumerable) As Object() - Dim LQuery = (From obj In DataSource Select CType(obj, Object)).ToArray - Return LQuery - End Function - - ''' - ''' 查看目标常量是否存在于脚本引擎的内存之中 - ''' - ''' - ''' - ''' - Public Function ExistsConstant(Name As String) As Boolean - Return _InternalImportsConstantsHash.ContainsKey(Name) - End Function - - ''' - ''' 从变量内存管理模块之中获取一个常量的值,需要注意的是,在Shoal之中,脚本引擎对变量的名称的大小写不敏感,但是对于常量的大小写却是敏感的 - ''' - ''' - ''' - ''' - Public Function GetConstant(Name As String) As Object - Return _InternalImportsConstantsHash(Name) - End Function - - Public Function GetConstants() As KeyValuePair(Of String, String)() - Dim LQuery = (From hashEntry As Variable In _InternalImportsConstantsHash - Let ItemValue As String = If(hashEntry.Value Is Nothing, "NULL", hashEntry.Value.ToString) - Select New KeyValuePair(Of String, String)(hashEntry.Key, ItemValue)).ToArray - Return LQuery - End Function - - ''' - ''' 导入所定义常数 - ''' - ''' - ''' 返回导入成功的常数数目 - ''' - Public Function ImportsConstant(Assembly As System.Type) As Integer - Dim ModuleFields As System.Reflection.FieldInfo() = Assembly.GetFields - Dim LQuery = (From Field As System.Reflection.FieldInfo In ModuleFields - Let Name As String = GetName(Field) - Where Not String.IsNullOrEmpty(Name) - Select Name, Value = Field.GetValue(Nothing)).ToArray - Dim i As Integer - - For Each Imported In LQuery - Dim Name = Imported.Name - If Not _InternalImportsConstantsHash.ContainsKey(Name) Then - Call _InternalImportsConstantsHash.Add(Name, Imported.Value) - i += 1 - End If - Next - - i += Me._InternalImportsDataSource.Imports(Assembly) - - Return i - End Function - - ''' - ''' - ''' - ''' - ''' - ''' - Private Shared Function GetName(field As System.Reflection.FieldInfo) As String - Dim attrs As Object() = field.GetCustomAttributes(Microsoft.VisualBasic.Scripting.EntryPointMetaData.ImportsConstant.TypeInfo, True) - If attrs.IsNullOrEmpty Then - Return "" - End If - - Dim Name As String = DirectCast(attrs.First, Microsoft.VisualBasic.Scripting.EntryPointMetaData.ImportsConstant).Name - If String.IsNullOrEmpty(Name) Then - Name = field.Name - End If - Return Name - End Function - - Public Sub SetValue(key As String, value As Object) - Call SetValue(New KeyValuePair(Of String, Object)(key, value)) - End Sub - - Public Sub SetValue(DataEntry As Variable) Implements ICollection(Of Variable).Add - Dim Entry As ShoalShell.Runtime.Objects.ObjectModels.DataSourceMapping.DataSourceModel = - _InternalImportsDataSource.GetDataEntry(DataEntry.Key) - - If Not (Entry Is Nothing OrElse DataEntry.Value Is Nothing) Then - Dim varType As Type = DataEntry.Value.GetType - - If Entry.Convertable(varType) Then '假若数据源之中也存在相同的变量的话,则会两个都同时设置 - Dim var As Object = DataEntry.Value - ' Dim TypeCast As ComponentModel.DataSourceModel.DataFramework.CTypeDynamics = Scripting.InputHandler.CasterStri(varType) - - ' var = TypeCast(var, Entry.ReflectionType) - - Call Entry.SetValue(var) - End If - End If - - Dim LQuery = (From obj In _InnerListHash.AsParallel Where String.Equals(obj.Key, DataEntry.Key, StringComparison.OrdinalIgnoreCase) Select obj).ToArray - If Not LQuery.IsNullOrEmpty Then - Call _InnerListHash.Remove(LQuery.First) - End If - - LQuery = (From obj In _InnerListHash.AsParallel Where String.Equals(obj.Key, "$") Select obj).ToArray - If Not LQuery.IsNullOrEmpty Then - Call _InnerListHash.Remove(LQuery.First) - Call _InnerListHash.Add(New KeyValuePair(Of String, Object)("$", DataEntry.Value)) - End If - - ' Dim value = item.Value - ' If Not value Is Nothing Then - 'Dim valueType As String = value.GetType.FullName - 'If String.Equals(valueType, MemoryType) Then '通过共享内存,脚本之间的调用得以进行参数的传递 - ' Dim SharedMemory = DirectCast(value, Microsoft.VisualBasic.ShoalShell.Runtime.Objects.MemoryManagement) - ' For Each item In SharedMemory - ' Call InsertOrUpdate(item.Key, item.Value) - ' Next - 'Else - ' Call _InnerList.Add(item) - ' End If - ' Else - Call _InnerListHash.Add(DataEntry) - End Sub - - Public Sub Clear() Implements ICollection(Of KeyValuePair(Of String, Object)).Clear - Call _InnerListHash.Clear() - End Sub - - Public Function Contains(item As KeyValuePair(Of String, Object)) As Boolean Implements ICollection(Of KeyValuePair(Of String, Object)).Contains - Dim LQuery = (From var As Variable In _InnerListHash.AsParallel - Where String.Equals(var.Key, item.Key, StringComparison.OrdinalIgnoreCase) AndAlso var.Value = item.Value - Select var).ToArray - Return Not LQuery.IsNullOrEmpty - End Function - - Public Sub CopyTo(array() As KeyValuePair(Of String, Object), arrayIndex As Integer) Implements ICollection(Of KeyValuePair(Of String, Object)).CopyTo - Call _InnerListHash.CopyTo(array, arrayIndex) - End Sub - - Public ReadOnly Property Count As Integer Implements ICollection(Of KeyValuePair(Of String, Object)).Count - Get - Return _InnerListHash.Count - End Get - End Property - - Public ReadOnly Property IsReadOnly As Boolean Implements ICollection(Of KeyValuePair(Of String, Object)).IsReadOnly - Get - Return False - End Get - End Property - - ''' - ''' 删除一个变量对象 - ''' - ''' - ''' - ''' - Public Function Remove(item As KeyValuePair(Of String, Object)) As Boolean Implements ICollection(Of KeyValuePair(Of String, Object)).Remove - Dim LQuery = (From obj In _InnerListHash.AsParallel Where String.Equals(obj.Key, item.Key, StringComparison.OrdinalIgnoreCase) Select obj).ToArray - If Not LQuery.IsNullOrEmpty Then - Call _InnerListHash.Remove(LQuery.First) - Return True - Else - Return False - End If - End Function - - ''' - ''' 添加新的变量对象或者更新目标变量对象的值 - ''' - ''' - ''' - ''' - Public Sub InsertOrUpdate(key As String, value As Object) Implements IDictionary(Of String, Object).Add - Call SetValue(New KeyValuePair(Of String, Object)(key, value)) - End Sub - - ''' - ''' Indicated that the variable which was specific by is exists in the scripting host memory or not. - ''' (使用本方法来判断目标表达式的所指向的变量是否在脚本宿主引擎之中存在) - ''' - ''' 变量名称 - ''' - ''' - Public Function ExistsVariable(var As String) As Boolean Implements IDictionary(Of String, Object).ContainsKey - If String.IsNullOrEmpty(var) Then - Return False - End If - - If var.First = "$"c Then - var = Mid(var, 2) - End If - Dim LQuery = (From VariableItem As KeyValuePair(Of String, Object) In _InnerListHash.AsParallel Where String.Equals(VariableItem.Key, var, StringComparison.OrdinalIgnoreCase) Select 1).ToArray - Return Not LQuery.IsNullOrEmpty - End Function - - ''' - ''' 获取内存之中的变量值 - ''' - ''' 变量名,不需要添加使用引用符$,假若需要返回系统保留变量$的值,请使用空字符串 - ''' - ''' - ''' - Default Public Property Item(key As String) As Object Implements IDictionary(Of String, Object).Item - Get - If String.IsNullOrEmpty(key) OrElse String.Equals("$", key) Then - key = "$" - End If - - Dim LQuery = (From obj In _InnerListHash.AsParallel Where String.Equals(obj.Key, key, StringComparison.OrdinalIgnoreCase) Select obj).ToArray - If Not LQuery.IsNullOrEmpty Then - Return LQuery.First.Value - Else - '查找导入的数据源 - Return _InternalImportsDataSource.GetValue(key) - End If - End Get - Set(value As Object) - Call InsertOrUpdate(key, value) - End Set - End Property - - Public ReadOnly Property Keys As ICollection(Of String) Implements IDictionary(Of String, Object).Keys - Get - Dim LQuery = (From item In _InnerListHash Select item.Key).ToArray - Return LQuery - End Get - End Property - - ''' - ''' 从内存之中删除一个变量对象 - ''' - ''' - ''' - ''' - Public Function Delete(VariableName As String) As Boolean Implements IDictionary(Of String, Object).Remove - Dim LQuery = (From obj In _InnerListHash.AsParallel Where String.Equals(obj.Key, VariableName, StringComparison.OrdinalIgnoreCase) Select obj).ToArray - If Not LQuery.IsNullOrEmpty Then - Return _InnerListHash.Remove(LQuery.First) - Else - Return False - End If - End Function - - Public Function TryGetValue(key As String, ByRef value As Object) As Boolean Implements IDictionary(Of String, Object).TryGetValue - Dim LQuery = (From var As Variable In _InnerListHash.AsParallel - Where String.Equals(var.Key, key, StringComparison.OrdinalIgnoreCase) - Select var).ToArray - If Not LQuery.IsNullOrEmpty Then - value = LQuery.First.Value - Return True - Else - Return False - End If - End Function - - ''' - ''' 实际上返回其自身内部的变量列表 - ''' - ''' - ''' - ''' - Public ReadOnly Property Values As ICollection(Of Object) Implements IDictionary(Of String, Object).Values - Get - Return Me.ToArray - End Get - End Property - - Public Iterator Function GetEnumerator() As IEnumerator(Of KeyValuePair(Of String, Object)) Implements IEnumerable(Of KeyValuePair(Of String, Object)).GetEnumerator - For Each Item As KeyValuePair(Of String, Object) In _InnerListHash - Yield Item - Next - End Function - - Public Iterator Function GetEnumerator1() As IEnumerator Implements IEnumerable.GetEnumerator - Yield GetEnumerator() - End Function - - ''' - ''' 将会替换掉所有在参数之中出现的变量名为内存之中的变量的ToString()方法所得到的值 - ''' 对于想要输出$variableName这种类型的字符串,而不是输出值,则请使用\进行反义操作 - ''' - ''' - ''' - ''' - Public Function FormatString(expression As String) As String - Dim Matches = (From m As Match In Regex.Matches(expression, "(^|\\)?\$[^$]+", RegexOptions.Multiline) Select m.Value).ToArray - - For Each Item As KeyValuePair(Of String, Object) In (From inn In Me._InternalImportsConstantsHash Select inn Order By Len(inn.Key) Descending).ToArray - expression = Replace(expression, "&" & Item.Key, If(Item.Value Is Nothing, "", Item.Value.ToString), Compare:=CompareMethod.Text) - Next - - If Matches.IsNullOrEmpty Then '没有任何匹配,说明仅仅是一个字符串常量 - Return expression - End If - - Dim ExpressionValueBuilder As StringBuilder = New StringBuilder(expression) - - Dim OriginalTokens = (From i As Integer In Matches.Sequence - Let strValue As String = Matches(i) - Where strValue.First = "\"c - Select i, strValue).ToArray - Dim EscapeTokens As List(Of KeyValuePair(Of String, String)) = New Generic.List(Of KeyValuePair(Of String, String)) - - For Each OriginalToken In OriginalTokens '先处理需要被转义的部分 - Dim ESC As String = OriginalToken.i & "____ESCAPE_FOR_VARIABLES" - Call EscapeTokens.Add(New KeyValuePair(Of String, String)(ESC, OriginalToken.strValue)) - Call ExpressionValueBuilder.Replace(OriginalToken.strValue, ESC) - Next - - Dim ReplacedTokens = (From m As String In Matches Where m.First <> "\"c Select Mid(m, 2)).ToArray - - For Each Token As String In ReplacedTokens - Call InternalReplaceValue(Token, ExpressionValueBuilder) - Next - - '替换回转义字符 - For Each ESC In EscapeTokens - Call ExpressionValueBuilder.Replace(ESC.Key, Mid(ESC.Value, 2)) - Next - - Return ExpressionValueBuilder.ToString - End Function - - Private Sub InternalReplaceValue(Token As String, ByRef ExpressionValueBuilder As StringBuilder) - Dim Variable As Variables = (From varEntry As Variable In Me._InnerListHash - Where InStr(Token, varEntry.Key, CompareMethod.Text) = 1 - Select varEntry - Order By Len(varEntry.Key) Descending).ToArray - - If Variable.IsNullOrEmpty Then Return - - Dim var = Variable.First - Dim objVal As Object = var.Value - Dim ReplacedValue As String = If(objVal Is Nothing, "", objVal.ToString) - Token = "$" & Mid(Token, 1, Len(var.Key)) - Call ExpressionValueBuilder.Replace(Token, ReplacedValue) - End Sub - End Class -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/ObjectModels/DataSource.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/ObjectModels/DataSource.vb deleted file mode 100644 index ed486ce01..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/ObjectModels/DataSource.vb +++ /dev/null @@ -1,215 +0,0 @@ -Namespace Runtime.Objects.ObjectModels.DataSourceMapping - - ''' - ''' 由于数据源的作用主要是设置共享变量或者环境参数,故而在获取参数变量的时候,系统的自由参数会被优先读取 - ''' - ''' - Public Class DataSourceMappingHandler : Inherits ShoalShell.Runtime.Objects.ObjectModels.IScriptEngineComponent - - Dim _InternalImportsDataSource As Microsoft.VisualBasic.ComponentModel.Collection.Generic.HashDictionary(Of DataSourceModel) - - Public ReadOnly Property IsEmpty As Boolean - Get - Return _InternalImportsDataSource.IsNullOrEmpty - End Get - End Property - - Sub New(ScriptEngine As ShoalShell.Runtime.Objects.ShellScript) - Call MyBase.New(ScriptEngine) - _InternalImportsDataSource = New ComponentModel.Collection.Generic.HashDictionary(Of DataSourceModel)(Nothing) - End Sub - - ''' - ''' - ''' - ''' 请去除$前缀符号 - ''' - ''' - Public Function ExistsVariable(Name As String) As Boolean - Return _InternalImportsDataSource.ContainsKey(Name) - End Function - - ''' - ''' 目标对象不存在则会返回空值 - ''' - ''' - ''' - ''' - Public Function GetValue(Name As String) As Object - Dim Entry = _InternalImportsDataSource(Name) - If Entry Is Nothing Then - Return Nothing - Else - Return Entry.GetValue - End If - End Function - - Public Function GetDataEntry(Name As String) As DataSourceModel - Dim Entry = _InternalImportsDataSource(Name) - Return Entry - End Function - - Public Function SetValue(Variable As String, value As Object) As Boolean - Dim Entry = _InternalImportsDataSource(Variable) - Call Entry.SetValue(value) - Return True - End Function - - Public Function [Imports]([Module] As System.Reflection.TypeInfo) As Integer - Dim DataSource = DataSourceModel.Imports([Module], False) - For Each Entry As DataSourceModel In DataSource - _InternalImportsDataSource(Entry.Name) = Entry - Next - - Return DataSource.Count - End Function - - Public Function ToMemorySource() As KeyValuePair(Of String, Object)() - Dim LQuery = (From Handle As KeyValuePair(Of String, DataSourceModel) - In Me._InternalImportsDataSource - Select New KeyValuePair(Of String, Object)(Handle.Value.Name, Handle.Value.GetValue)).ToArray - Return LQuery - End Function - End Class - - Public MustInherit Class DataSourceModel - - Protected _Name As String - - Public ReadOnly Property Name As String - Get - Return _Name - End Get - End Property - - Public MustOverride ReadOnly Property ReflectionType As Type - -#Region "Public Property" - - Public MustOverride Sub SetValue(value As Object) - Public MustOverride Function GetValue() As Object -#End Region - - Public Overrides Function ToString() As String - Dim o As Object = GetValue() - Dim value As String = If(o Is Nothing, "&NULL", o.ToString) - Return String.Format("{0} = {1}", Name, value) - End Function - - ''' - ''' 只会绑定非实例的属性或者域 - ''' - ''' - ''' - ''' - Public Shared Function [Imports](Assembly As System.Reflection.TypeInfo, Explicit As Boolean) As DataSourceModel() - Dim Fields As Field() - Dim MappingEntry = GetType(Microsoft.VisualBasic.ComponentModel.DataSourceModel.DataFrameColumnAttribute) - - If Explicit Then '严格的 - Fields = (From p In Assembly.GetFields(System.Reflection.BindingFlags.NonPublic Or System.Reflection.BindingFlags.Public Or System.Reflection.BindingFlags.Static) - Let attrs As Object() = p.GetCustomAttributes(MappingEntry, inherit:=True) - Where Not attrs.IsNullOrEmpty - Let datEntry = DirectCast(attrs.First, Microsoft.VisualBasic.ComponentModel.DataSourceModel.DataFrameColumnAttribute) - Let Name = If(String.IsNullOrEmpty(datEntry.Name), p.Name, datEntry.Name) - Select New Field(p, Name)).ToArray - Else - Fields = (From p In Assembly.GetFields(System.Reflection.BindingFlags.NonPublic Or System.Reflection.BindingFlags.Public Or System.Reflection.BindingFlags.Static) - Let attrs As Object() = p.GetCustomAttributes(MappingEntry, inherit:=True) - Let Name As String = Function() As String - If attrs.IsNullOrEmpty Then - Return p.Name - Else - Dim datEntry = DirectCast(attrs.First, Microsoft.VisualBasic.ComponentModel.DataSourceModel.DataFrameColumnAttribute) - Dim Name = If(String.IsNullOrEmpty(datEntry.Name), p.Name, datEntry.Name) - Return Name - End If - End Function() Select New Field(p, Name)).ToArray - End If - - Dim [Property] As [Property]() - - If Explicit Then '严格的 - [Property] = (From p In Assembly.GetProperties(System.Reflection.BindingFlags.NonPublic Or System.Reflection.BindingFlags.Public Or System.Reflection.BindingFlags.Static) - Let attrs As Object() = p.GetCustomAttributes(MappingEntry, inherit:=True) - Where Not attrs.IsNullOrEmpty - Let datEntry = DirectCast(attrs.First, Microsoft.VisualBasic.ComponentModel.DataSourceModel.DataFrameColumnAttribute) - Let Name = If(String.IsNullOrEmpty(datEntry.Name), p.Name, datEntry.Name) - Select New [Property](p, Name)) - Else - [Property] = (From p In Assembly.GetProperties(System.Reflection.BindingFlags.NonPublic Or System.Reflection.BindingFlags.Public Or System.Reflection.BindingFlags.Static) - Let attrs As Object() = p.GetCustomAttributes(MappingEntry, inherit:=True) - Let Name As String = Function() As String - If attrs.IsNullOrEmpty Then - Return p.Name - Else - Dim datEntry = DirectCast(attrs.First, Microsoft.VisualBasic.ComponentModel.DataSourceModel.DataFrameColumnAttribute) - Dim Name = If(String.IsNullOrEmpty(datEntry.Name), p.Name, datEntry.Name) - Return Name - End If - End Function() Select New [Property](p, Name)).ToArray - End If - - Dim DataSource As New List(Of DataSourceModel) - Call DataSource.AddRange(Fields) - Call DataSource.AddRange([Property]) - - Return DataSource.ToArray - End Function - - Public Function Convertable(SourceType As Type) As Boolean - Dim ConvertType = Me.ReflectionType - Dim YON As Boolean = Microsoft.VisualBasic.ComponentModel.DataSourceModel.DataFramework.BasicTypesFlushs.ContainsKey(ConvertType) AndAlso - Microsoft.VisualBasic.ComponentModel.DataSourceModel.DataFramework.BasicTypesFlushs.ContainsKey(SourceType) - Return YON - End Function - End Class - - Public Class Field : Inherits DataSourceModel - - Dim BindingField As System.Reflection.FieldInfo - - Sub New(Target As System.Reflection.FieldInfo, Name As String) - BindingField = Target - _Name = Name - End Sub - - Public Overrides Function GetValue() As Object - Return BindingField.GetValue(Nothing) - End Function - - Public Overrides Sub SetValue(value As Object) - Call BindingField.SetValue(Nothing, value) - End Sub - - Public Overrides ReadOnly Property ReflectionType As Type - Get - Return BindingField.FieldType - End Get - End Property - End Class - - Public Class [Property] : Inherits DataSourceModel - - Dim BindingProperty As System.Reflection.PropertyInfo - - Sub New(Target As System.Reflection.PropertyInfo, Name As String) - BindingProperty = Target - _Name = Name - End Sub - - Public Overrides Function GetValue() As Object - Return BindingProperty.GetValue(Nothing) - End Function - - Public Overrides Sub SetValue(value As Object) - Call BindingProperty.SetValue(Nothing, value) - End Sub - - Public Overrides ReadOnly Property ReflectionType As Type - Get - Return BindingProperty.PropertyType - End Get - End Property - End Class -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/ObjectModels/ExecuteModel.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/ObjectModels/ExecuteModel.vb deleted file mode 100644 index 9945e82d7..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/ObjectModels/ExecuteModel.vb +++ /dev/null @@ -1,162 +0,0 @@ -Imports System.Text -Imports Microsoft.VisualBasic.Scripting.ShoalShell -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Interpreter.ObjectModels.Statements - -Namespace Runtime.Objects.ObjectModels - - Public Class ExecuteModel : Inherits ShoalShell.Runtime.Objects.ObjectModels.IScriptEngineComponent - - ''' - ''' Value是指向列表之中的元素的位置下表 - ''' - Dim GotoFlags As Dictionary(Of String, Integer) - Dim _InternalScriptCodeLineHash As IReadOnlyDictionary(Of Integer, ShoalShell.Interpreter.ObjectModels.Statements.Statement) - Protected _InternalEXEC_Pointer As Integer = 0 - - Sub New(ScriptModel As ShoalShell.Interpreter.ObjectModels.ScriptModel, ScriptEngine As ShoalShell.Runtime.Objects.ShellScript) - Call MyBase.New(ScriptEngine) - _InternalScriptCodeLineHash = (From i As Integer In ScriptModel.Expressions.Sequence Select i, Expr = ScriptModel.Expressions(i)).ToArray.ToDictionary(Function(obj) obj.i, elementSelector:=Function(obj) obj.Expr) - GotoFlags = ScriptModel.GotoFlags - End Sub - - Public ReadOnly Property ImportsNewNamespace As Boolean - Get - Return ScriptEngine._ImportsNewNamespace - End Get - End Property - - Private ReadOnly Property HasImportsNamespaceStatements As Boolean - Get - Dim LQuery = (From item In Me._InternalScriptCodeLineHash Where item.Value.TypeID = Interpreter.ObjectModels.Statements.Statement.Types.Imports Select item).ToArray - Return Not LQuery.IsNullOrEmpty - End Get - End Property - - Protected Const EXCEPTION_GOTO_FLAG_MISSING As String = "GOTO_FLAG_MISSING:: Could not found the goto flag ""{0}"": {1}; Line: {2}" - Protected Const FLAG_STATEMENT_RETURN_STACK As String = "Return.Stack" - - Protected Function InternalExecuteGoto(CodeLine As ShoalShell.Interpreter.ObjectModels.Statements.Statement) As Boolean - If Not CodeLine.TypeID = Statement.Types.GoTo Then Return False - - Dim GotoCodeLine = DirectCast(CodeLine, ShoalShell.Interpreter.ObjectModels.Statements.GOTO) - - If Not CBool(GotoCodeLine.BooleanExpression.GetValue(ScriptEngine)) = True Then Return False - - Dim Flag As String = CStr(GotoCodeLine.GotoFlag.GetValue(ScriptEngine)) - - If Me.GotoFlags.ContainsKey(Flag) Then - _InternalEXEC_Pointer = GotoFlags(Flag) - 1 - Else '没有找到相应的跳转标签,则抛出错误 - Dim ex As String = String.Format(EXCEPTION_GOTO_FLAG_MISSING, - Flag, - GotoCodeLine.Expression, - GotoCodeLine.OriginalLineNumber) - Throw New ArgumentException(ex) - End If - - Return True - End Function - - Protected Overridable Sub InternalExecuteScript(CodeLine As ShoalShell.Interpreter.ObjectModels.Statements.Statement) - 'If String.Equals(CodeLine.OrignialScriptLine, FLAG_STATEMENT_RETURN_STACK, StringComparison.OrdinalIgnoreCase) Then - ' Call _InternalEXEC_Pointer.MoveNext() - ' Return - 'Else - If InternalExecuteGoto(CodeLine) Then - Return - End If - - Dim var As String = "" - Dim Value As Object = InternalExecute(CodeLine, var, ScriptEngine) - Dim sys As Objects.I_MemoryManagementDevice = ScriptEngine._EngineMemoryDevice - Call sys.InsertOrUpdate(var, Value) - End Sub - - Public Shared Function InternalExecute(CodeLine As ShoalShell.Interpreter.ObjectModels.Statements.Statement, ByRef LeftAssignedVariable As String, ScriptEngine As Runtime.Objects.ShellScript) As Object - - Select Case CodeLine.TypeID - - Case Statement.Types.Expression - Dim Expr = DirectCast(CodeLine, Expression) '赋值的变量地址是最后才被计算的 - Dim value As Object = Expr.Execute(ScriptEngine) - LeftAssignedVariable = Expr.LeftAssignedVariable.GetAddress(ScriptEngine.ScriptEngineMemoryDevice) - Return value - - Case Statement.Types.MethodCalling - LeftAssignedVariable = "$" - Return DirectCast(CodeLine, Interpreter.ObjectModels.Statements.MethodCalling).Execute(ScriptEngine) - - Case Statement.Types.OutputRef - LeftAssignedVariable = "$" - Return DirectCast(CodeLine, OutputRef).InnerExpression.GetValue(ScriptEngine) - - Case Statement.Types.Imports - Dim ExprObj = DirectCast(CodeLine, [Imports]) - Return ExprObj.Execute(ScriptEngine) - - Case Statement.Types.SyntaxError - Dim ExprObj = DirectCast(CodeLine, SyntaxError) - If ExprObj.IsSyntaxError Then - Throw New SyntaxErrorException(ExprObj.Expression) - Else - Return "" - End If - - Case Statement.Types.Library - Dim ExprObj = DirectCast(CodeLine, Library) - - - - Case Else - Throw New NotImplementedException - - End Select - End Function - - Private Sub InternalExecuteScript(CodeLines As ShoalShell.Interpreter.ObjectModels.Statements.Statement()) - Do While _InternalEXEC_Pointer < _InternalScriptCodeLineHash.Count - - Dim CodeLine As Statement = CodeLines(_InternalEXEC_Pointer) - Dim ConsoleTitle As String = String.Format("ShoalShell: @""{0}""", CodeLine.Expression) - - Call Console.Title.InvokeSet(ConsoleTitle) - Call Debug.Print(CodeLine.ToString) - -#If RELEASE Then - Try -#End If - Call InternalExecuteScript(CodeLine) - If ExitScript() Then - Return - End If -#If RELEASE Then - Catch ex As Exception - If Not _Flag_OnErrorResumeNext Then - Throw New Exceptions.ScriptRunTimeException("", ScriptEngine._EngineMemoryDevice) With - { - .LineNumber = CodeLine.LineNumber, - .ScriptLine = CodeLine.OrignialScriptLine, - .InnerExceptionValue = ex.ToString - } - End If - End Try -#End If - Call _InternalEXEC_Pointer.MoveNext() - Loop - End Sub - - Protected Overridable Function ExitScript() As Boolean - Return False - End Function - - ''' - ''' 执行脚本对象然后返回脚本的运行结果 - ''' - ''' - Public Function Execute() As Object - Call InternalExecuteScript(CodeLines:=_InternalScriptCodeLineHash.Values.ToArray) - Call Console.Title.InvokeSet("Shoal Shell") - Return ScriptEngine._EngineMemoryDevice("$") - End Function - End Class -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/ObjectModels/ObjectModels.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/ObjectModels/ObjectModels.vb deleted file mode 100644 index 98805ed25..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/ObjectModels/ObjectModels.vb +++ /dev/null @@ -1,189 +0,0 @@ -Imports System.Text -Imports Microsoft.VisualBasic.Scripting.ShoalShell - -Namespace Runtime.Objects.ObjectModels - - ''' - ''' The parsed object model result for the target input script text.(对脚本进行解析之后,将会创建出一个脚本的对象模型) - ''' - ''' - Public Class ShellScript : Inherits ShoalShell.Runtime.Objects.ObjectModels.IScriptEngineComponent - - Implements IReadOnlyDictionary(Of String, ObjectModels.ScriptCodeLine) - - Dim _InternalScriptCodeLineHash As IReadOnlyDictionary(Of String, ScriptCodeLine) - Protected _InternalEXEC_Pointer As Integer = 0 - - ''' - ''' This flag variable indicated that the "On Error Resume Next" option is setup or not, - ''' if TRUE then when an exception occurs, the shoal shell will record the exception - ''' information and then trying to ignored the error and continute running the script. - ''' - ''' - Dim _Flag_OnErrorResumeNext As Boolean - Dim _ImportsNewNamespace As Boolean = False - -#Region "ReadOnly Property" - - Public ReadOnly Property ImportsNewNamespace As Boolean - Get - Return ScriptEngine._ImportsNewNamespace - End Get - End Property - - Private ReadOnly Property HasImportsNamespaceStatements As Boolean - Get - Dim LQuery = (From item In Me._InternalScriptCodeLineHash Where item.Value.PreExecuteType = ScriptCodeLine.PreExecuteTypes.Imports Select item).ToArray - Return Not LQuery.IsNullOrEmpty - End Get - End Property - - Public ReadOnly Property Values As IEnumerable(Of ScriptCodeLine) Implements IReadOnlyDictionary(Of String, ScriptCodeLine).Values - Get - Return Me._InternalScriptCodeLineHash.Values - End Get - End Property - - Default Public ReadOnly Property Item(key As String) As ScriptCodeLine Implements IReadOnlyDictionary(Of String, ScriptCodeLine).Item - Get - If Me._InternalScriptCodeLineHash.ContainsKey(key) Then - Return Me._InternalScriptCodeLineHash(key) - Else - Return Nothing - End If - End Get - End Property - - Public ReadOnly Property Keys As IEnumerable(Of String) Implements IReadOnlyDictionary(Of String, ScriptCodeLine).Keys - Get - Return Me._InternalScriptCodeLineHash.Keys - End Get - End Property - - Public ReadOnly Property Count As Integer Implements IReadOnlyCollection(Of KeyValuePair(Of String, ScriptCodeLine)).Count - Get - Return Me._InternalScriptCodeLineHash.Count - End Get - End Property -#End Region - - Sub New(CodeLines As Generic.IEnumerable(Of ScriptCodeLine), ScriptEngine As ShoalShell.Runtime.Objects.ShellScript) - Call MyBase.New(ScriptEngine) - Me._InternalScriptCodeLineHash = CodeLines.ToDictionary(Function(Line) Line.LineFlag) - End Sub - -#Const RELEASE = True - - Protected Const EXCEPTION_GOTO_FLAG_MISSING As String = "GOTO_FLAG_MISSING:: Could not found the goto flag ""{0}"": {1}; Line: {2}" - Protected Const FLAG_STATEMENT_RETURN_STACK As String = "Return.Stack" - - Public Function GetVariableType(key As String) As String - Dim LQuery = (From item In Me.Values Where String.Equals(item.VariableAssigned, key, StringComparison.OrdinalIgnoreCase) Select item Order By item.LineNumber Descending).ToArray - - If LQuery.IsNullOrEmpty Then - Return "" - Else - Return LQuery.First.ReturnType - End If - End Function - - Protected Function InternalExecuteGoto(CodeLine As ObjectModels.ScriptCodeLine) As Boolean - If Not CodeLine.IsGotoStatement Then Return False - If Not CodeLine.GotoCondition() = True Then Return False - - If _InternalScriptCodeLineHash.ContainsKey(CodeLine.GotoLineFlag) Then - _InternalEXEC_Pointer = _InternalScriptCodeLineHash(CodeLine.GotoLineFlag).LineNumber - 1 - Else '没有找到相应的跳转标签,则抛出错误 - Dim ex As String = String.Format(EXCEPTION_GOTO_FLAG_MISSING, - CodeLine.GotoLineFlag, - CodeLine.OrignialScriptLine, - CodeLine.LineNumber) - Throw New ArgumentException(ex) - End If - - Return True - End Function - - Protected Overridable Sub InternalExecuteScript(CodeLine As ObjectModels.ScriptCodeLine) - If String.Equals(CodeLine.OrignialScriptLine, FLAG_STATEMENT_RETURN_STACK, StringComparison.OrdinalIgnoreCase) Then - Call _InternalEXEC_Pointer.MoveNext() - Return - ElseIf InternalExecuteGoto(CodeLine) Then - Return - End If - - Dim Value As Object = CodeLine.InvokeMethod() - Dim sys As Objects.I_MemoryManagementDevice = ScriptEngine._EngineMemoryDevice - Call sys.InsertOrUpdate(CodeLine.VariableAssigned, Value) - End Sub - - Private Sub InternalExecuteScript(CodeLines As ObjectModels.ScriptCodeLine()) - Do While _InternalEXEC_Pointer < _InternalScriptCodeLineHash.Count - - Dim CodeLine As ScriptCodeLine = CodeLines(_InternalEXEC_Pointer) - Dim ConsoleTitle As String = String.Format("ShoalShell: @""{0}""", CodeLine.OrignialScriptLine) - - Call _Flag_OnErrorResumeNext.InvokeSet(If(_Flag_OnErrorResumeNext, True, CodeLine.OnErrorResumeNext)) - Call Console.Title.InvokeSet(ConsoleTitle) - Call Debug.Print(CodeLine.ToString) - -#If RELEASE Then - Try -#End If - Call InternalExecuteScript(CodeLine) - If ExitScript() Then - Return - End If -#If RELEASE Then - Catch ex As Exception - If Not _Flag_OnErrorResumeNext Then - Throw New Exceptions.ScriptRunTimeException("", ScriptEngine._EngineMemoryDevice) With - { - .LineNumber = CodeLine.LineNumber, - .ScriptLine = CodeLine.OrignialScriptLine, - .InnerExceptionValue = ex.ToString - } - End If - End Try -#End If - Call _InternalEXEC_Pointer.MoveNext() - Loop - End Sub - - Protected Overridable Function ExitScript() As Boolean - Return False - End Function - - ''' - ''' 执行脚本对象然后返回脚本的运行结果 - ''' - ''' - Public Function Execute() As Object - If Me.HasImportsNamespaceStatements Then - Call Console.WriteLine() - End If - - Call InternalExecuteScript(CodeLines:=_InternalScriptCodeLineHash.Values.ToArray) - Call Console.Title.InvokeSet("Shoal Shell") - Return ScriptEngine._EngineMemoryDevice("$") - End Function - - Public Iterator Function GetEnumerator() As IEnumerator(Of KeyValuePair(Of String, ScriptCodeLine)) Implements IEnumerable(Of KeyValuePair(Of String, ScriptCodeLine)).GetEnumerator - For Each Item As KeyValuePair(Of String, ScriptCodeLine) In Me._InternalScriptCodeLineHash - Yield Item - Next - End Function - - Public Function ContainsKey(key As String) As Boolean Implements IReadOnlyDictionary(Of String, ScriptCodeLine).ContainsKey - Return Me._InternalScriptCodeLineHash.ContainsKey(key) - End Function - - Public Function TryGetValue(key As String, ByRef value As ScriptCodeLine) As Boolean Implements IReadOnlyDictionary(Of String, ScriptCodeLine).TryGetValue - Return Me._InternalScriptCodeLineHash.TryGetValue(key, value) - End Function - - Public Iterator Function GetEnumerator1() As IEnumerator Implements IEnumerable.GetEnumerator - Yield GetEnumerator() - End Function - End Class -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/ObjectModels/ScriptCodeLine.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/ObjectModels/ScriptCodeLine.vb deleted file mode 100644 index fb58b737d..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/ObjectModels/ScriptCodeLine.vb +++ /dev/null @@ -1,92 +0,0 @@ -Namespace Runtime.Objects.ObjectModels - - ''' - ''' The is the basically element of the shoal script.(脚本命令行的数据模型) - ''' - ''' - Public Class ScriptCodeLine : Implements Microsoft.VisualBasic.ComponentModel.Collection.Generic.IAccessionIdEnumerable - Implements Microsoft.VisualBasic.ComponentModel.IAddrHandle - - ''' - ''' The target varialbe for the value assignment, if this codeline is a method calling then the variable will be set to the system conserved variable $ - ''' - ''' - Public Property VariableAssigned As String - ''' - ''' The Goto flag property can use for identified each script code line uniquely.(每一行代码都会有一个Goto标号进行唯一标识的) - ''' - ''' - ''' - ''' - Public Property LineFlag As String Implements ComponentModel.Collection.Generic.IAccessionIdEnumerable.UniqueId - Public Property LineNumber As Long Implements ComponentModel.IAddrHandle.AddrHwnd - Public InvokeMethod As Func(Of Object) - Public Property GotoLineFlag As String - Public GotoCondition As Func(Of Boolean) - Public Property OrignialScriptLine As String - - ''' - ''' If the flag value is TRUE then if the error occur, and the script host is still trying to ignore the error and continute running the script file. - ''' - ''' - Public Property OnErrorResumeNext As Boolean - ''' - ''' 假若当前的命令行对象为拓展方法的话,则本属性不应该为空 - ''' - ''' - Public Property ExtensionMethodVariable As String - Public Property ReturnType As String - - Public ReadOnly Property IsGotoStatement As Boolean - Get - Return Not String.IsNullOrEmpty(GotoLineFlag) - End Get - End Property - - Public Overrides Function ToString() As String - Return String.Format("{0} {1}", LineNumber, OrignialScriptLine) - End Function - - Public Const INTERNAL_EXPRESSION_REGEX As String = "$(.+?)" - - Public Property PreExecuteType As PreExecuteTypes = PreExecuteTypes.Normal - - Public Enum PreExecuteTypes - Normal - [Imports] - Library - End Enum - -#Region "IDisposable Support" - Private disposedValue As Boolean ' To detect redundant calls - - ' IDisposable - Protected Overridable Sub Dispose(disposing As Boolean) - If Not Me.disposedValue Then - If disposing Then - ' TODO: dispose managed state (managed objects). - End If - - ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below. - ' TODO: set large fields to null. - End If - Me.disposedValue = True - End Sub - - ' TODO: override Finalize() only if Dispose(ByVal disposing As Boolean) above has code to free unmanaged resources. - 'Protected Overrides Sub Finalize() - ' ' Do not change this code. Put cleanup code in Dispose(ByVal disposing As Boolean) above. - ' Dispose(False) - ' MyBase.Finalize() - 'End Sub - - ' This code added by Visual Basic to correctly implement the disposable pattern. - Public Sub Dispose() Implements IDisposable.Dispose - ' Do not change this code. Put cleanup code in Dispose(disposing As Boolean) above. - Dispose(True) - GC.SuppressFinalize(Me) - End Sub -#End Region - - End Class -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/ScriptInfo.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/ScriptInfo.vb deleted file mode 100644 index 4a7c0b6be..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/ScriptInfo.vb +++ /dev/null @@ -1,91 +0,0 @@ -Imports System.Text.RegularExpressions - -Namespace Runtime.Objects.ObjectModels - - ''' - ''' ShellScript information header parser - ''' - ''' - Public Class ScriptInfo - - Public Property Authors As String() - Public Property Description As String - Public Property References As String() - Public Property Version As String - Public Property MissingReferences As String() - Public Property ModuleName As String - Public Property FilePath As String - Public Property Contacts As String - - Public Const Field As String = "#!\s+{0}: .+" - - Public Function DisplayInfo() As Boolean - Throw New NotImplementedException - End Function - - Public Shared Function LoadInfo(path As String, Optional Registry As ShoalShell.DelegateHandlers.TypeLibraryRegistry.DelegateRegistry = Nothing) As ScriptInfo - Dim Script As ScriptInfo = New ScriptInfo With {.FilePath = path} - Dim InfoLines As String() = (From strLine As String In IO.File.ReadAllLines(path) - Let Trimed As String = Trim(strLine) - Where Not String.IsNullOrEmpty(Trimed) AndAlso String.Equals(Mid(Trimed, 1, 2), "#!") - Select Trimed).ToArray - Dim GetValue = Function(Keyword As String) As String() - Return (From strLine As String In InfoLines - Let MatchedHead As String = Regex.Match(strLine, String.Format(Field, Keyword), RegexOptions.IgnoreCase).Value - Where Not String.IsNullOrEmpty(MatchedHead) - Select Trim(strLine.Replace(MatchedHead, ""))).ToArray - End Function - - Dim strTemp As String() - strTemp = GetValue("author") - If Not strTemp.IsNullOrEmpty Then - Script.Authors = Strings.Split(strTemp.First, "; ") - End If - - strTemp = GetValue("description") - If Not strTemp.IsNullOrEmpty Then - Script.Description = strTemp.First - End If - - strTemp = GetValue("version") - If Not strTemp.IsNullOrEmpty Then - Script.Version = strTemp.First - End If - - strTemp = GetValue("module name") - If Not strTemp.IsNullOrEmpty Then - Script.ModuleName = strTemp.First - End If - - strTemp = GetValue("contacts") - If Not strTemp.IsNullOrEmpty Then - Script.Contacts = strTemp.First() - End If - - Dim [Imports] As String() = (From strLine As String In IO.File.ReadAllLines(path) - Let Trimed As String = Trim(strLine) - Where Regex.Match(Trimed, "imports\s+", RegexOptions.IgnoreCase).Success - Select Mid(Trimed, 8).Trim).ToArray - Dim References As List(Of String) = New Generic.List(Of String) - Dim MissingReferences As List(Of String) = New Generic.List(Of String) - - If Registry Is Nothing Then - Registry = ShoalShell.DelegateHandlers.TypeLibraryRegistry.DelegateRegistry.CreateDefault - End If - - For Each Ns In [Imports] - Try - Dim [Module] = Registry.GetAssemblyPaths(Ns) - Call References.AddRange([Module]) - Catch ex As Exception - Call MissingReferences.Add(Ns) - End Try - Next - - Script.References = References.ToArray - Script.MissingReferences = MissingReferences.ToArray - - Return Script - End Function - End Class -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/ShellScript.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/ShellScript.vb deleted file mode 100644 index ebc06255d..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/RuntimeObjects/ShellScript.vb +++ /dev/null @@ -1,545 +0,0 @@ -Imports System.Text -Imports Microsoft.VisualBasic.Scripting.ShoalShell.DeviceDriver -Imports Microsoft.VisualBasic.Scripting.ShoalShell.DelegateHandlers.TypeLibraryRegistry - -Namespace Runtime.Objects - - ''' - ''' ShoalShell Scripting Host, shl.(ShoalShell的脚本编程的引擎,嵌入式脚本引擎) - ''' - ''' - Public Class ShellScript : Implements System.IDisposable - -#Region "Fileds" - - Protected Friend _EngineMemoryDevice As I_MemoryManagementDevice - Protected Friend _Interpreter As Interpreter.Interpreter - - ''' - ''' 在当前的脚本环境之中已经导入的命名空间 - ''' - ''' - Protected Friend _ImportsNamespace As List(Of String) = New List(Of String) - Protected Friend _HybridScriptingInteropEntryPointHandler As HybridsScripting.HybridScriptingInteropHandler - Protected Friend _IOSupport As IODeviceDriver - Protected Friend _OutputSupport As OutputDeviceDriver - Protected Friend _InputSupport As InputDeviceDriver - - Dim _DEBUG_TAG As String - Dim [_Error] As String - Protected Friend _RunningScript As Boolean - Protected Friend _ImportsNewNamespace As Boolean - - ''' - ''' 从外部所导入的命令以及内部的命令的集合 - ''' - ''' - Protected Friend _InternalEntryPointManager As DelegateHandlers.EntryPointHandlers.ImportsEntryPointManager - Protected Friend _InternalHelpSystem As ShoalShell.Wiki.InternalHelpSearch - -#End Region - -#Region "ReadOnly Property" - - Public ReadOnly Property ImportsDataSource As Runtime.Objects.ObjectModels.DataSourceMapping.DataSourceMappingHandler - Get - Return _EngineMemoryDevice._InternalImportsDataSource - End Get - End Property - - ''' - ''' 脚本引擎的内存管理工具 - ''' - ''' - Public ReadOnly Property ScriptEngineMemoryDevice As I_MemoryManagementDevice - Get - Return Me._EngineMemoryDevice - End Get - End Property - - Public ReadOnly Property Interpreter As Interpreter.Interpreter - Get - Return _Interpreter - End Get - End Property - - ''' - ''' 在当前的脚本环境之中已经导入的命名空间 - ''' - ''' - Public ReadOnly Property ImportsNamespaceList As String() - Get - Return _ImportsNamespace.ToArray - End Get - End Property - - Public ReadOnly Property HybridScriptingInteropEntryPoint As HybridsScripting.HybridScriptingInteropHandler - Get - Return _HybridScriptingInteropEntryPointHandler - End Get - End Property - - Public ReadOnly Property IODeviceManager As IODeviceDriver - Get - Return Me._IOSupport - End Get - End Property - - Public ReadOnly Property OutputDeviceManager As OutputDeviceDriver - Get - Return Me._OutputSupport - End Get - End Property - - Public ReadOnly Property InputDeviceDriver As InputDeviceDriver - Get - Return Me._InputSupport - End Get - End Property - - Public ReadOnly Property InternalEntryPointManager As DelegateHandlers.EntryPointHandlers.ImportsEntryPointManager - Get - Return Me._InternalEntryPointManager - End Get - End Property - - Public ReadOnly Property TypeLibraryRegistry As DelegateRegistry - Get - Return _Interpreter._DelegateRegistry - End Get - End Property -#End Region - - ''' - ''' 这个是为IDE的开发而准备的 - ''' - ''' - Public Event ImportsNamespace() - - ''' - ''' 当编译器导入了新的命名空间的时候,就会调用这个方法,将消息传递给IDE,更新IDE的界面 - ''' - ''' - Protected Friend Sub ImportsNewNamespace() - _ImportsNewNamespace = True - RaiseEvent ImportsNamespace() - End Sub - - Public ReadOnly Property ErrorMessage As String - Get - Return _Error - End Get - End Property - - Public Shared ReadOnly Property Keywords As String() - Get - Return New String() {"Imports", "Return", "echo", "Library", "Libraries", "Call"} - End Get - End Property - - ''' - ''' Get the imports method from a specific namespace in the shoal shell script engine.(获取在脚本引擎之中已经被导入的命名空间之中的方法) - ''' - ''' - ''' - ''' - Public ReadOnly Property ImportsMethods As String() - Get - Return _InternalEntryPointManager.ImportsMethods.ToArray - End Get - End Property - - ''' - ''' Gets the help information using a specific keyword for invoke the searching.(使用指定的关键词来搜索帮助信息) - ''' - ''' - ''' 在Http帮助服务器之上请设定这个参数为False - ''' - ''' - Public Function GetHelpInfo(key As String, ShowManual As Boolean) As String - Return _InternalHelpSystem.GetHelpInfo(key, ShowManual) - End Function - - ''' - ''' 向脚本引擎之中导入命名空间 - ''' - ''' - ''' - ''' - ''' - Public Function [Imports](Of [T_Object] As Class)(obj As T_Object) As Boolean - Return _InternalEntryPointManager.ImportsInstanceNamespace(obj) > 0 - End Function - - ''' - ''' Imports module.(导入模块之中的命令) - ''' - ''' - ''' - ''' - Public Function [Imports](TypeInfo As System.Type) As Boolean - Return _InternalEntryPointManager.ImportsModule(TypeInfo) > 0 - End Function - - ''' - ''' Interpreter对象之中的IOSupport对象的初始化需要Memory对象实例,所以请不要轻易修改这里的对象的初始化顺序 - ''' - ''' - Sub New(Optional ShowInitializeMessage As Boolean = False) - Call InternalInitialize(ShoalShell.DelegateHandlers.TypeLibraryRegistry.DelegateRegistry.CreateDefault, ShowInitializeMessage) - End Sub - - Sub New(LibraryRegistry As ShoalShell.DelegateHandlers.TypeLibraryRegistry.DelegateRegistry, Optional ShowInitializeMessage As Boolean = False) - Call InternalInitialize(LibraryRegistry, ShowInitializeMessage) - End Sub - - ''' - ''' - ''' - ''' - ''' - ''' - Sub New(LibraryRegistry As String, Optional ShowInitializeMessage As Boolean = False) - Dim Registry = ShoalShell.DelegateHandlers.TypeLibraryRegistry.DelegateRegistry.CreateFromFile(LibraryRegistry) - Call InternalInitialize(Registry, ShowInitializeMessage) - End Sub - - ''' - ''' 脚本引擎内部初始化脚本编程环境 - ''' - ''' - ''' - ''' - Private Sub InternalInitialize(LibraryRegistry As ShoalShell.DelegateHandlers.TypeLibraryRegistry.DelegateRegistry, ShowInitializeMessage As Boolean) - _EngineMemoryDevice = New I_MemoryManagementDevice(Me) - _DEBUG_TAG = Now.ToString - _HybridScriptingInteropEntryPointHandler = New HybridsScripting.HybridScriptingInteropHandler(Me) - _Interpreter = New Interpreter.Interpreter(Me, LibraryRegistry, ShowInitializeMessage) - - On Error Resume Next - Console.Title = "Shoal Shell" - End Sub - - Public Function ImportsIOSupports([Module] As Type) As Integer - Dim i = _IOSupport.ImportsHandler([Module]) - i += _InputSupport.ImportsHandler([Module]) - Return i - End Function - - Public Function ImportsOutputHandlers([Module] As ShoalShell.DelegateHandlers.TypeLibraryRegistry.RegistryNodes.Module) As Integer - For Each item In [Module].OriginalAssemblys - Call _OutputSupport.ImportsHandler(item.Key) - Next - - Return 0 - End Function - - ''' - ''' 安装插件模块 - ''' - ''' 向Shoal脚本安装插件模块的dll或者exe文件 - ''' - ''' - Public Function InstallModules(assembly As String) As Boolean - Return Me._Interpreter._DelegateRegistry.RegisterAssemblyModule(assembly, "") - End Function - - Public Sub ReloadEntryPoints() - If Not _Interpreter._DelegateRegistry._HybridsScriptingEntrypoints.IsNullOrEmpty Then - For Each Entry In _Interpreter._DelegateRegistry._HybridsScriptingEntrypoints - Call _HybridScriptingInteropEntryPointHandler.LoadEntryPoints(DelegateHandlers.TypeLibraryRegistry.DelegateRegistry.Internal_getFullPath(Entry.AssemblyPath)) - Next - End If - End Sub - - Public Sub ReloadLibraryRegistry() - _Interpreter._DelegateRegistry = ShoalShell.DelegateHandlers.TypeLibraryRegistry.DelegateRegistry.CreateDefault - End Sub - - ''' - ''' 使用外部的脚本环境进行运算 - ''' - ''' - ''' - ''' - Public Function ExternalScriptInteropEvaluate(ScriptText As String) As Object - Return _HybridScriptingInteropEntryPointHandler.Evaluate(ScriptText) - End Function - - Public Function ExternalScriptInteropSetValue(variable As String, value As Object) As Boolean - Return _HybridScriptingInteropEntryPointHandler.SetValue(variable, value) - End Function - - ''' - ''' 载入外部脚本的挂载点 - ''' - ''' - ''' - ''' - Public Function AttachesEntryPoint(name As String) As Boolean - Try - Call _HybridScriptingInteropEntryPointHandler.AttachEntryPoint(name) - Return True - Catch ex As Exception - Return False - End Try - End Function - - Public Sub PushStack(value As Object) - Call _EngineMemoryDevice.PushStack(value) - End Sub - - Public Function GetStackValue() As Object - Return _EngineMemoryDevice.GetStackValue - End Function - - ''' - ''' 变量不存在的话则会返回字符串自身 - ''' - ''' 请使用变量引用表达式 - ''' - ''' - Public Function GetValue(variableName As String) As Object - Dim value = _EngineMemoryDevice.TryGetValue(variableName) - Return value - End Function - - Public Sub SetValue(varName As String, value As Object) - Call _EngineMemoryDevice.SetValue(New KeyValuePair(Of String, Object)(varName, value)) - End Sub - - ''' - ''' 日志文件路径,当发生错误的时候,假若本属性不为空,则会将错误的信息同时写入在这里,否则仅将错误信息写入主日志文件之中 - ''' - ''' - ''' - ''' - Public Property ExceptionHandleRedirect As String - - Public Function Compile(script As String) As Runtime.Objects.ObjectModels.ShellScript - Return _Interpreter.CreateScriptObject(script) - End Function - - ''' - ''' Execute a shellscript file. - ''' (执行一个脚本文件中的脚本文本内容,请注意,函数仅返回脚本的执行状态,0位执行成功,其他非0数字可能表示执行失败, - ''' 假若目标脚本有return关键词返回执行结果,需要得到脚本的具体返回数据,请使用方法获取。) - ''' - ''' - ''' This script data should be a line of the script code that of which is user type input from the console terminal - ''' or a text file content from the return value of - ''' - ''' - ''' - Public Function EXEC(ShellScript As String) As Integer - If String.IsNullOrEmpty(ShellScript.Replace(vbCrLf, "").Trim) Then - Return -1 - Else - -#Const RELEASE = True - -#If RELEASE Then - Try -#End If - Dim ObjectModel = _Interpreter.CreateScriptObject(ShellScript) - - _RunningScript = True - _Error = "" - - Call InternalExecuteScript(ObjectModel) - - _ImportsNewNamespace = False - _RunningScript = False -#If RELEASE Then - Catch ex As Exception - _RunningScript = False - Return HandleException(ex, ShellScript) - End Try -#End If - Return 0 - End If - End Function - - Protected Overridable Sub InternalExecuteScript(Script As ShoalShell.Runtime.Objects.ObjectModels.ShellScript) - Call Script.Execute() - End Sub - - Protected Friend Function HandleException(ex As Exception, ShellScript As String) As Integer - Dim ExceptionObject As String = "" - - If Not TypeOf ex Is Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Objects.ObjectModels.Exceptions.ScriptRunTimeException Then - GoTo WRITE_LOG - End If - - Dim Exception = DirectCast(ex, Runtime.Objects.ObjectModels.Exceptions.ScriptRunTimeException) - Call Console.WriteLine("[!ERROR] @ ""{0}""", Exception.ScriptLine) - ExceptionObject = Exception.ExceptionType - -WRITE_LOG: Using Logging As Logging.LogFile = New Logging.LogFile(String.Format("{0}/ShellScript_ERROR.log", My.Application.Info.DirectoryPath)) - Dim Err As String = - vbCrLf & - "--------------------------------------------------------------------------------------------------------------------------------------------------------" & vbCrLf & - "[Shoal shell script text details]" & vbCrLf & vbCrLf & - String.Join(vbCrLf, (From str In Strings.Split(ShellScript, vbCrLf) Select " " & str).ToArray) & vbCrLf & - "--------------------------------------------------------------------------------------------------------------------------------------------------------" & vbCrLf & vbCrLf & vbCrLf & - ex.ToString & vbCrLf - - Call Console.WriteLine(vbCrLf & ex.ToString & vbCrLf) - Call Logging.WriteLine(Err, [Object]:=ExceptionObject, Type:=VisualBasic.Logging.MSG_TYPES.ERR, WriteToScreen:=False) - - _Error = Err - - If Not String.IsNullOrEmpty(ExceptionHandleRedirect) Then - - Using Redirect = New Logging.LogFile(ExceptionHandleRedirect) - Call Redirect.WriteLine(Err, ExceptionObject, Type:=VisualBasic.Logging.MSG_TYPES.ERR, WriteToScreen:=False) - End Using - End If - - Return -1 - End Using - End Function - - Public Function Source(path As String) As Integer - Dim currentWork As String = My.Computer.FileSystem.CurrentDirectory - My.Computer.FileSystem.CurrentDirectory = FileIO.FileSystem.GetParentPath(path) - Dim i As Integer = EXEC(FileIO.FileSystem.ReadAllText(path)) - My.Computer.FileSystem.CurrentDirectory = currentWork - - Return i - End Function - - ''' - ''' - ''' - ''' 这个参数是脚本文件的文本内容,而非脚本文件的路径 - ''' - ''' - ''' - Public Function InternalSourceScript(ShellScript As String, parameters As KeyValuePair(Of String, Object)()) As Object - For Each pInfo In parameters - Call Me._EngineMemoryDevice.InsertOrUpdate(pInfo.Key, pInfo.Value) - Next - - Call EXEC(ShellScript) - - Dim StackValue = GetStackValue() - - If StackValue Is Nothing Then - StackValue = _EngineMemoryDevice - End If - - Return StackValue - End Function - - ''' - ''' 系统有一个默认的保留变量$ - ''' - ''' - ''' - ''' - Protected Friend Function PrintVariable(VariableName As String) As Integer - If Not String.Equals(VariableName, "$") Then - VariableName = Mid(VariableName, 2) '去除开头的$引用字符 - End If - - Dim value = _EngineMemoryDevice.Item(VariableName) - Dim Tokens As String() = GetPrintValue(value) - If Tokens.IsNullOrEmpty Then - Call Console.WriteLine(" = EMPTY_ARRAY") - End If - - Dim sBuilder As StringBuilder = New StringBuilder(1024) - Call sBuilder.AppendLine(" = [0] " & Tokens.First) - For i As Integer = 1 To Tokens.Count - 1 - Call sBuilder.AppendLine(String.Format(" [{0}] {1}", i, Tokens(i))) - Next - Call Console.WriteLine(sBuilder.ToString) - Return -1 - End Function - - ''' - ''' 系统有一个默认的保留变量$ - ''' - ''' - ''' - ''' - Protected Friend Function PrintConstant(VariableName As String) As Integer - If Not String.Equals(VariableName, "&") Then - VariableName = Mid(VariableName, 2) '去除开头的$引用字符 - End If - - Dim value = _EngineMemoryDevice.GetConstant(VariableName) - Dim Tokens As String() = GetPrintValue(value) - If Tokens.IsNullOrEmpty Then - Call Console.WriteLine(" = EMPTY_ARRAY") - End If - - Dim sBuilder As StringBuilder = New StringBuilder(1024) - Call sBuilder.AppendLine(" = [0] " & Tokens.First) - For i As Integer = 1 To Tokens.Count - 1 - Call sBuilder.AppendLine(String.Format(" [{0}] {1}", i, Tokens(i))) - Next - Call Console.WriteLine(sBuilder.ToString) - Return -1 - End Function - - Public Overrides Function ToString() As String - Return _DEBUG_TAG - End Function - -#Region "IDisposable Support" - Private disposedValue As Boolean ' To detect redundant calls - - ' IDisposable - Protected Overridable Sub Dispose(disposing As Boolean) - If Not Me.disposedValue Then - If disposing Then - ' TODO: dispose managed state (managed objects). - End If - - ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below. - ' TODO: set large fields to null. - End If - Me.disposedValue = True - End Sub - - ' TODO: override Finalize() only if Dispose(ByVal disposing As Boolean) above has code to free unmanaged resources. - 'Protected Overrides Sub Finalize() - ' ' Do not change this code. Put cleanup code in Dispose(ByVal disposing As Boolean) above. - ' Dispose(False) - ' MyBase.Finalize() - 'End Sub - - ' This code added by Visual Basic to correctly implement the disposable pattern. - Public Sub Dispose() Implements IDisposable.Dispose - ' Do not change this code. Put cleanup code in Dispose(disposing As Boolean) above. - Dispose(True) - GC.SuppressFinalize(Me) - End Sub -#End Region - - ''' - ''' 执行一行脚本并返回计算值 - ''' - ''' - ''' - ''' - ''' - Public Shared Operator <=(Shoal As ShoalShell.Runtime.Objects.ShellScript, Script As String) As Object - Call Shoal.EXEC(Script) - Return Shoal.GetStackValue - End Operator - - ''' - ''' 获取某一个变量 - ''' - ''' - ''' - ''' - ''' - Public Shared Operator >=(Shoal As ShoalShell.Runtime.Objects.ShellScript, Variable As String) As Object - Return Shoal.GetValue(Variable) - End Operator - End Class -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/ShoalShell_Core.Designer.cd b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/ShoalShell_Core.Designer.cd deleted file mode 100644 index ae6f7f551..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/ShoalShell_Core.Designer.cd +++ /dev/null @@ -1,719 +0,0 @@ - - - - - - AIAAAACIAAAAABBEAAAAtAQAAAECAgAAAAICAAAAAAA= - DelegateHandlers\EntryPointHandlers\CommandMethodEntryPoint.vb - - - - - - - AAAAAAAAAAAAAIAQAAAAAAAAAAAAAAACgAADAAAAAAA= - DelegateHandlers\EntryPointHandlers\EntryPointHashTable.vb - - - - - - AAAAAAEgGAAAAAAEoBAAAAIAYABAAgAAQAABAAAEAAA= - DelegateHandlers\EntryPointHandlers\FunctionSignature.vb - - - - - - - - - - - DelegateHandlers\EntryPointHandlers\InternalEntryPointLoader.vb - - - - - SAABAAAAAAAgABAQAQAAgAUICAASAEARAAghBABAAQE= - DelegateHandlers\EntryPointHandlers\ImportsEntryPointManager.vb - - - - - - - - - - - - DelegateHandlers\EntryPointHandlers\MethodDelegateCaller.vb - - - - - AFAAAAAAAACAAAAAoAAAACAAAAAAAIQgAAACgACAAIA= - DelegateHandlers\EntryPointHandlers\MethodDelegateCaller.vb - - - - - - AAIAABAABAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAA= - DelegateHandlers\TypeLibraryRegistry\DelegateRegistry.vb - - - - - - AABCiLAAASCABgBEAAAAAEAIACBAgAIBQAQSQiQEAEI= - DelegateHandlers\TypeLibraryRegistry\DelegateRegistry.vb - - - - - - - AAAAAAAAgAAAAAAAAAABAAAAAAIAAAAAAAAAAAQAACA= - DelegateHandlers\TypeLibraryRegistry\RegistryModuleLoader.vb - - - - - - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - DelegateHandlers\TypeLibraryRegistry\WebServiceDelegateRegistry.vb - - - - - - AAAAEgAAAAAgAAAEAAAEAAQAAAAAAAAAAIAAAAAAAgA= - DelegateHandlers\TypeLibraryRegistry\RegistryNodes\AssemblyModule.vb - - - - - - - IABAAwAAAAQgASAEgAAEAAUAAAAAJAAgQAAABAIAAAA= - DelegateHandlers\TypeLibraryRegistry\RegistryNodes\AssemblyModule.vb - - - - - - - AAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAQA= - DelegateHandlers\TypeLibraryRegistry\RegistryNodes\AssemblyModule.vb - - - - - - AAAAAggAAAAAACAEAIAAAAAAAAAAAAACAAAAAAAAAAA= - DelegateHandlers\TypeLibraryRegistry\RegistryNodes\AssemblyModule.vb - - - - - - - CAAAAAAAAAAEABCFCAAAAAQEAAAiAAIAAAAgAAAAAAA= - DelegateHandlers\TypeLibraryRegistry\RegistryNodes\Module.vb - - - - - - - AAAAAAAAAABAAAAEAAAAIAQAAAAAAAAAAAAAAAAABAA= - Interpreter\Delegate.vb - - - - - - AACBAAAARgYIACgEAAACIEQQAAQCAgAAIAAAgAgEgAA= - Interpreter\Delegate.vb - - - - - - - - - - - Interpreter\InternalCommands.vb - - - - - IggCCAAAIgRgAAgECAAIIIgIAiAIAAABAICAAIBAGBY= - Interpreter\InternalCommands.vb - - - - - - BAAAkBAQAAIAAAACABAwGAAJEAAhICAAAAAAIAADAAA= - Interpreter\Interpreter.vb - - - - - - AAAAAAAAAACAAAAAAAAAYAAAEAAAAAAAAAAAAAAAAAA= - Interpreter\HybridScripting\HybridScriptingInterface.vb - - - - - - - - Interpreter\HybridScripting\HybridScriptingInterface.vb - - - - - AAAAAAAAAAAAAAAEAAAAQAAAEAAAAAAAAAEAAEAAAAA= - Interpreter\HybridScripting\HybridScriptingInterface.vb - - - - - - AAAAAAAAQAAAAAAEAAAAAAAQAAAACAAAAAAAgAAAAAA= - Interpreter\HybridScripting\HybridScriptingInterface.vb - - - - - - - - - - - Interpreter\HybridScripting\HybridScriptingInteropHandler.vb - - - - - cAAAAAAAACAAAwACAAAAAgAAgCgAAAAAggAAAgAAAAA= - Interpreter\HybridScripting\HybridScriptingInteropHandler.vb - - - - - - - - - - - - Interpreter\ObjectModels\Expression.vb - - - - - AAAAAAAAAAAAgAAEAAAAAAAAAAAgAAAgAAAAAAAAIAA= - Interpreter\ObjectModels\Expression.vb - - - - - - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAgAAAAAAAAAAA= - Interpreter\ObjectModels\Expression.vb - - - - - - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAAAA= - Interpreter\ObjectModels\Expression.vb - - - - - - AEAAAAAAAAAAAAAECAAAAAAAAAAAAAAoAAAAAAAAAAA= - Interpreter\ObjectModels\Expression.vb - - - - - - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAIABAAAAAAA= - Interpreter\ObjectModels\Expression.vb - - - - - - AIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAA= - Interpreter\ObjectModels\Expression.vb - - - - - - AAAACCAAAAAAAAAAAAAAAIAAAAAQABAgAAAAAAAAAAA= - Interpreter\ObjectModels\Expression.vb - - - - - - AAAAAAAAAAAAAAAEAAgAAAAAAAAAAAAgAAAAAAAAAGA= - Interpreter\ObjectModels\Expression.vb - - - - - - AAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAA= - Interpreter\ObjectModels\Expression.vb - - - - - - AAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAgAAAAAAAAAAA= - Interpreter\ObjectModels\Expression.vb - - - - - - AAAAAAAAAAAAAAAABAAAAAAAAAAAAAAgAAAAAAAAAAA= - Interpreter\ObjectModels\Expression.vb - - - - - - AAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAgAAACA= - Interpreter\ObjectModels\ScriptModel.vb - - - - - - AAAAAAAgAAAAAAAAAQACCAAAAAAAAAAAAAACAAABAAA= - Interpreter\ObjectModels\Tokenlisers\FullTokenliser.vb - - - - - - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAABIAA= - Interpreter\ObjectModels\Tokenlisers\Tokenliser.vb - - - - - - Interpreter\ObjectModels\Tokens.vb - - - - - - AAAAAAAAIAAAAAAEAAAAAAAAAAAAAAAQAAAEAAAAAAA= - Interpreter\ObjectModels\Tokens.vb - - - - - - AAAAAAAAAAAAAAAEAAAAAAUAAAAAAAAAAAQAAAAAAAA= - Interpreter\ObjectModels\Tokens.vb - - - - - - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - Interpreter\ObjectModels\Tokens.vb - - - - - - AAAAAACAAAAAAAAEAAAAAAQAAAAAAAAAAAAAAAAQAAA= - Interpreter\ObjectModels\Tokens.vb - - - - - - - - Interpreter\ObjectModels\Tokens.vb - - - - - AAAAAAIAAAAAAAAEAAAAAAAAAAAAAAAAAQAAAAAAAAA= - Interpreter\ObjectModels\Tokens.vb - - - - - - AACAAAAAAAAAAAAEAAAAAIAAEAQAgAgAAAAAACAAAAA= - Interpreter\ObjectModels\Tokens.vb - - - - - - AAAAAAAAAAAAAAAAAAEAAAAAAAABAAAAAAAAAAAAAAA= - - - - - - - - - - - - - - - - RuntimeObjects\Debugging\Debugger.vb - - - - - RuntimeObjects\Debugging\Debugger.vb - - - - - AABgCAAAIAgAAAAIAAQEAAAgAAAAAAABAAAAAAAAQAA= - RuntimeObjects\Debugging\Debugger.vb - - - - - - - AAAIAAAIASAAIAIAACQAAAQAAAAAAAAAQAAICgAABAA= - RuntimeObjects\Debugging\DebuggerListener.vb - - - - - - - AAAAAAAABAAAAAAAAAAEAAAAIAAAAAAAAAAAAAAAAAI= - RuntimeObjects\Debugging\ShellScriptDebuggerModel.vb - - - - - - ABAAAAAAAAAAAAAAYAACAAAAAAAAAAAIIAAAAAgAAAA= - RuntimeObjects\DeviceDriver\DeviceDriver.vb - - - - - - AAAAAACACAAAAIAAAEACgAAAAACgAAAAAAAAAAiAAAA= - RuntimeObjects\DeviceDriver\IODeviceDriver.vb - - - - - - BAAAAAAAAAAAAAAAAAECAAAAEIABAIAAAAAAAAwAAAA= - RuntimeObjects\DeviceDriver\OutputDeviceDriver.vb - - - - - - - - - - - RuntimeObjects\DeviceDriver\TypeHandleEntryPointDriverrModule.vb - - - - - QAAAAAAACAEAAAAAAAACAAIAAAAAAQAAAAAAAAgAAAA= - RuntimeObjects\DeviceDriver\TypeHandleEntryPointDriverrModule.vb - - - - - - AAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAAA= - RuntimeObjects\DeviceDriver\DriverHandles.vb - - - - - - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - RuntimeObjects\DeviceDriver\DriverHandles.vb - - - - - - AAAAAAAAAAAgAAAEAAAAAAAAAAAAAIAUAAAAAAAAAAA= - RuntimeObjects\DeviceDriver\DriverHandles.vb - - - - - - AAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAA= - RuntimeObjects\DeviceDriver\DriverHandles.vb - - - - - - AAAAAAIAACAAAAEEAAAARoBMGEgCAEAgQPgAogYQABI= - RuntimeObjects\Dynamics.vb - - - - - - - igAAEAAYgAAAghAQCAgAFAQkoAECAMAAACAgAIBQJAI= - RuntimeObjects\MemoryManagement.vb - - - - - - - AUABAAAQojQgAgUeAADUcoARLCAiAHFJAQggBgMCqkA= - RuntimeObjects\ShellScript.vb - - - - - - - AAAAAAAAEAAAAAAEAAAAEAAAAAAAAAAAAAAAAAAAAAA= - RuntimeObjects\Exceptions\CircularReferencesException.vb - - - - - - AAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAA= - RuntimeObjects\Exceptions\InterpreterException.vb - - - - - - AAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAA= - RuntimeObjects\Exceptions\InterpreterException.vb - - - - - - AAAAAAAAAAAAAAAAAAAAEAAAAAAAAgAAAAACAAAAAAA= - RuntimeObjects\Exceptions\MethodNotFoundException.vb - - - - - - AAAAAAAAAABAAAAEAAAAEAAAAAAAAAAAAAQAAAAAAAA= - RuntimeObjects\Exceptions\RunTimeException.vb - - - - - - AAAAAABAAgAAAAAAAAAIEAAAAAAAAAABAAAAAAAAAAA= - RuntimeObjects\Exceptions\ShoalScriptException.vb - - - - - - AAAAAAIAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAA= - RuntimeObjects\IScriptEngineComponent.vb - - - - - - CAAIABAAAAAEEBQACAAEAAQEIAACgQAIAAAgAAAAAAY= - RuntimeObjects\ObjectModels\ObjectModels.vb - - - - - - - AAAAAAAAACAAAAAGACEIIgAAAAAAAIQBgEAAEgAEAAA= - RuntimeObjects\ObjectModels\ScriptCodeLine.vb - - - - - - - JAAAAAAAAAAgEAAAAAAACAAAAABQAAACAABAAIAAgAA= - RuntimeObjects\ScriptInfo.vb - - - - - - AABAEAAAIAAAAgAAAAAAAAAAgAAAAEAAAAABAAIAAAA= - RuntimeObjects\ObjectModels\DataSource.vb - - - - - - AAAAgAAAIAAAAgAEAAAAIAQAAAAAAEAAAAAAQAAAAAA= - RuntimeObjects\ObjectModels\DataSource.vb - - - - - - AAAQAAAAIAAAAgAAAAAAAAAAAAAAAAAAAAAAQAAAAAA= - RuntimeObjects\ObjectModels\DataSource.vb - - - - - - AAAAAAAAJAAAAgAAAAAAAAAAAAAAAAAAAAAAQAAAAAA= - RuntimeObjects\ObjectModels\DataSource.vb - - - - - - CAAAAgAAAAAAAAAEAIAAAAAAAAAAAAAAIAAAAAAEIAQ= - Wiki\InternalHelpSearch.vb - - - - - - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - Wiki\WebServiceHandler.vb - - - - - - AAAAAAAAAAAAAAAEAAAAQAAAAAAEAAAAAAAAAAAAAAA= - BuildInModules\Threading.vb - - - - - - - AAAAAgAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAA= - DelegateHandlers\TypeLibraryRegistry\RegistryNodes\AssemblyModule.vb - - - - - - wAQQAAEAAAAAEAAgEAAOAIiAABCAkAAGAAAAAEAAAAA= - BuildInModules\Array.vb - - - - - - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAA= - BuildInModules\Cowsay.vb - - - - - - AAAAAAAAAAIAAAAAAAAAAAAAAACAAAAAAAAAgAAAEAA= - BuildInModules\Cowsay.vb - - - - - - AAAAAAAAAAIQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - BuildInModules\Threading.vb - - - - - - AAAAAAAAAAAAgAAAAAAAAAAAQBAAAEAAgABAAAAAAAA= - CommonExtensions.vb - - - - - - AIAAAAAAAAAAAAAAAgAAAAAAAFAAAAAAAAAAAAAAIQA= - Interpreter\DelegateDeclaration.vb - - - - - - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEA= - Interpreter\InternalTextEngine.vb - - - - - - AAAAgAIAAAJAAEAAASAAQAACAAAAAgBAAAAAAAEIAAA= - Interpreter\ObjectModels\SyntaxParser.vb - - - - - - AAAAAAAAAAAAAAAAAAABEAAAAQAAAAAAAAgIAAAAAIA= - - - - - - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAA= - - - - - - AAAAAAEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - RuntimeObjects\Debugging\DebuggerProtocol.vb - - - - \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/ShoalShell_Core.vbproj b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/ShoalShell_Core.vbproj deleted file mode 100644 index aa038babb..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/ShoalShell_Core.vbproj +++ /dev/null @@ -1,207 +0,0 @@ - - - - - Debug - AnyCPU - {0BE7FD44-D724-49F6-AEC0-06C80B4F5527} - Library - Microsoft.VisualBasic.Scripting.ShoalShell - Microsoft.VisualBasic.Scripting.ShoalShell - 512 - Windows - v4.6 - - - - true - full - true - true - bin\Debug\ - Microsoft.VisualBasic.Scripting.ShoalShell.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - pdbonly - false - true - true - ..\..\..\..\GCModeller\ - Microsoft.VisualBasic.Scripting.ShoalShell.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - x64 - - - On - - - Binary - - - Off - - - On - - - true - true - true - bin\x64\Debug\ - Microsoft.VisualBasic.Scripting.ShoalShell.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - full - x64 - MinimumRecommendedRules.ruleset - - - true - ..\..\..\..\GCModeller-x64\ - Microsoft.VisualBasic.Scripting.ShoalShell.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x64 - MinimumRecommendedRules.ruleset - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - - - - - - - {fecce1fd-e1d4-49e3-a668-60bb5e7aed99} - Microsoft.VisualBasic.Architecture.Framework - - - - - \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Wiki/InternalHelpSearch.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Wiki/InternalHelpSearch.vb deleted file mode 100644 index d75ea0cde..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Wiki/InternalHelpSearch.vb +++ /dev/null @@ -1,225 +0,0 @@ -Imports System.Text -Imports Microsoft.VisualBasic.ConsoleDevice.Utility - -Namespace Wiki - - ''' - ''' Query the help information in the local content.(通过注册表信息进行帮助信息的查找) - ''' - ''' - Public Class InternalHelpSearch : Inherits ShoalShell.Runtime.Objects.ObjectModels.IScriptEngineComponent - - Dim _IndexedManual As Boolean - - Sub New(ShoalHost As ShoalShell.Runtime.Objects.ShellScript, preferIndexedManual As Boolean) - Call MyBase.New(ShoalHost) - _IndexedManual = preferIndexedManual - End Sub - - Public Function Match(keyword As String, ShowManual As Boolean) As String - Dim LQuery = (From item As DelegateHandlers.TypeLibraryRegistry.RegistryNodes.Namespace - In _RuntimeEnvironment._Interpreter._DelegateRegistry.RegisteredModules.AsParallel - Let result As String = item.Match(keyword) - Where Not String.IsNullOrEmpty(result) - Select result).ToArray - - If LQuery.IsNullOrEmpty Then - Return "" - End If - - Dim sBuilder As StringBuilder = New StringBuilder("Shoal internal Wiki could not match an extractly item, these result maybe is what you want to search:" & - vbCrLf & - vbCrLf & - String.Format("All of the result has been show below, matched for keyword [{0}]:" & vbCrLf & vbCrLf, keyword)) - Dim Title As String = sBuilder.ToString - - For Each strValue As String In LQuery - Call sBuilder.AppendLine(strValue) - Next - - Dim Message As String = sBuilder.ToString - - If ShowManual Then - Using Manual As Microsoft.VisualBasic.ConsoleDevice.Utility.ManualPages = - If(Me._IndexedManual, New IndexedManual(LQuery, Title), New ManualPages(Strings.Split(Message, vbCrLf))) - - Call Manual.ShowManual() - End Using - End If - - Return Message - End Function - - Private Function InternalListAllImportsCommand() As String - Dim sBuilder As StringBuilder = New StringBuilder(1024) - Dim ImportsCommands = ScriptEngine.InternalEntryPointManager.ImportsCommandEntryPoints - Dim CommandNameMaxLength As Integer = (From strKey As String In ImportsCommands.Keys Select Len(strKey)).ToArray.Max - - Call sBuilder.AppendLine() - Call sBuilder.AppendLine("System Basically Command & Currently Imported Commands" & vbCrLf) - Call sBuilder.AppendLine(vbCrLf & String.Format(" {0} Command(s)", ImportsCommands.Count)) - Call sBuilder.AppendLine() - Call sBuilder.AppendLine(String.Format(" MethodEntry{0} Return Type", New String(" "c, CommandNameMaxLength))) - Call sBuilder.AppendLine(String.Format("+---{0}+----------------------------------------------------", New String("-"c, 1.5 * CommandNameMaxLength - 3))) - - For Each MethodEntryPoint In ImportsCommands - Call sBuilder.AppendLine(String.Format(" {0}{1} {2} {3}", MethodEntryPoint.Key, New String(" "c, 1.5 * CommandNameMaxLength - Len(MethodEntryPoint.Key)), - MethodEntryPoint.Value.First.EntryPoint.MethodEntryPoint.ReturnType.FullName, - If(MethodEntryPoint.Value.IsOverloaded, String.Format("(+ {0} overloads)", MethodEntryPoint.Value.CountOfOverloadsCommand), ""))) - Next - - Dim TempShell = ScriptEngine.InternalEntryPointManager.TempShellCommands - - If Not TempShell.IsNullOrEmpty Then - - Call sBuilder.AppendLine() - Call sBuilder.AppendLine(String.Format(" {0} Temp Shell Command(s) available in current work directory" & vbCrLf, TempShell.Count)) - Call sBuilder.AppendLine("-Name---------------------------File----------------------") - - CommandNameMaxLength = (From strKey As String In TempShell.Keys Select Len(strKey)).ToArray.Max - - For Each ShellEntry As KeyValuePair(Of String, String) In TempShell - Call sBuilder.AppendLine(String.Format(" {0} {1} {2}", ShellEntry.Key, New String(" "c, CommandNameMaxLength - Len(ShellEntry.Key)), ShellEntry.Value)) - Next - End If - - Call Console.WriteLine(sBuilder.ToString) - - Return sBuilder.ToString - End Function - - Private Function InternalListMountDevice() As String - Dim sBuilder As StringBuilder = New StringBuilder(2048) - - Call sBuilder.AppendLine() - Call sBuilder.AppendLine("!List of the mounts external IO device:") - Call sBuilder.AppendLine("--------------------------------------------------------------------------------------------") - Call sBuilder.AppendLine() - Call sBuilder.AppendLine("==============================================") - Call sBuilder.AppendLine(" [+] Input_Devices Mount Points") - Call sBuilder.AppendLine("==============================================" & vbCrLf) - Call sBuilder.AppendLine(String.Join(vbCrLf, ScriptEngine._InputSupport.GetMountEntries)) - Call sBuilder.AppendLine(vbCrLf & vbCrLf) - Call sBuilder.AppendLine("==============================================") - Call sBuilder.AppendLine(" [+] Console_Output_Devices Mount Points") - Call sBuilder.AppendLine("==============================================" & vbCrLf) - Call sBuilder.AppendLine(String.Join(vbCrLf, ScriptEngine._OutputSupport.GetMountEntries)) - Call sBuilder.AppendLine(vbCrLf & vbCrLf) - Call sBuilder.AppendLine("==============================================") - Call sBuilder.AppendLine(" [+] Stream_Output_Device Mount Points") - Call sBuilder.AppendLine("==============================================" & vbCrLf) - Call sBuilder.AppendLine(String.Join(vbCrLf, ScriptEngine._IOSupport.GetMountEntries)) - - Call Console.WriteLine(sBuilder.ToString) - - Return sBuilder.ToString - End Function - - ''' - ''' Gets the help information of a specific object in the shoal shell system.(获取帮助信息,如果实在无法进行精确匹配的话,系统会尝试进行模糊匹配) - ''' - ''' Object Name - ''' - ''' - Public Function GetHelpInfo(obj As String, ShowManual As Boolean) As String - - If String.IsNullOrEmpty(obj) Then - Return InternalListAllImportsCommand() - ElseIf String.Equals(obj, "namespace", StringComparison.OrdinalIgnoreCase) Then - Dim s As String = String.Join(" ", Me.ScriptEngine._ImportsNamespace.ToArray) '显示所有已经导入的命名空间 - s = vbCrLf & String.Format(" {0} Imported Namespace(s)", ScriptEngine._ImportsNamespace.Count) & vbCrLf & vbCrLf & " " & s & vbCrLf - Console.WriteLine(s) - Return s - ElseIf String.Equals(obj, "mount", StringComparison.OrdinalIgnoreCase) Then '返回已经挂载的IO设备 - Return InternalListMountDevice() - Else '将参数之中的::符号转换为空格 - obj = obj.Replace("::", " ") - End If - - Try - Return InternalGetMethodHelpInfo(obj) - Catch ex As Exception - - Try - Dim [Module] As Microsoft.VisualBasic.Scripting.ShoalShell.DelegateHandlers.TypeLibraryRegistry.RegistryNodes.[Module] = - _RuntimeEnvironment._Interpreter._DelegateRegistry.TryGetModule(obj, _RuntimeEnvironment._EngineMemoryDevice) - - Return InternalPrintLibrary([Module]) - Catch ex___ As Exception - Return Match(keyword:=obj, ShowManual:=ShowManual) - End Try - End Try - End Function - - Private Function InternalGetMethodHelpInfo(cmdName As String) As String - Dim Method = _RuntimeEnvironment._Interpreter.TryGetCommand(cmdName) - Dim sBuilder As StringBuilder = New StringBuilder(2048) - - If Not Method.IsOverloaded Then - Call sBuilder.AppendLine(Me._RuntimeEnvironment._Interpreter._InternalMethodInvoker.GetDescription(Method.NonOverloadsMethod.MethodEntryPoint)) - Else - Call sBuilder.AppendLine(String.Format("Command ""{0}"" (+ {1} Overloads)" & vbCrLf, cmdName, Method.CountOfOverloadsCommand)) - Call sBuilder.AppendLine() - - Dim i As Integer = 0 - - For Each OverloadsMethod In Method - Call sBuilder.Append(String.Format(" ------> [{0}] ", i.MoveNext)) - Call sBuilder.AppendLine(OverloadsMethod.GetDescription(AddressOf _RuntimeEnvironment._Interpreter._InternalMethodInvoker.GetDescription)) - Call sBuilder.AppendLine() - Next - End If - - Call Console.WriteLine(vbCrLf & sBuilder.ToString) - - Return sBuilder.ToString - End Function - - ''' - ''' 目标是一个类型库,则输出详细信息 - ''' - ''' - ''' - ''' - Private Shared Function InternalPrintLibrary([Module] As Microsoft.VisualBasic.Scripting.ShoalShell.DelegateHandlers.TypeLibraryRegistry.RegistryNodes.[Module]) As String - Dim sBuilder As StringBuilder = New StringBuilder(1024) - Dim MaxLength As Integer = (From strKey As String In [Module].Keys Select Len(strKey)).ToArray.Max - Call sBuilder.AppendLine() - Call sBuilder.AppendLine("Module Namespace: " & [Module].Namespace) - - For Each Entry In [Module].OriginalAssemblys - Call sBuilder.AppendLine("Assembly path: " & Entry.Key.Assembly.Location) - Call sBuilder.AppendLine("Assembly Lib: " & Entry.Key.FullName) - Call sBuilder.AppendLine("Module Description: " & Entry.Value) - Call sBuilder.AppendLine() - Next - - Call sBuilder.AppendLine(vbCrLf & String.Format(" {0} Command(s)", [Module].Count)) - Call sBuilder.AppendLine() - Call sBuilder.AppendLine(String.Format(" MethodEntry{0}Return Type", New String(" "c, MaxLength))) - Call sBuilder.AppendLine(String.Format("+---{0}+----------------------------------------------------", New String("-"c, 1.5 * MaxLength - 3))) - - For Each MethodEntry In [Module].Keys - Dim InternalCreateEntryPointDescription = Function(Entry As System.Reflection.MethodInfo) As String - Return String.Format(" {0}{1} {2}", MethodEntry, New String(" "c, 1.5 * MaxLength - Len(MethodEntry)), Entry.ReturnType.FullName) - End Function - Dim EntryList = [Module](MethodEntry) - If EntryList.Count = 1 Then - Call sBuilder.AppendLine(InternalCreateEntryPointDescription(EntryList.First)) - Else - For i As Integer = 0 To EntryList.Count - 1 - Call sBuilder.AppendLine(InternalCreateEntryPointDescription(EntryList(i)) & String.Format(" (+ {0} Overloads)", i)) - Next - End If - Next - - Call Console.WriteLine(sBuilder.ToString) - - Return sBuilder.ToString - End Function - - Public Overrides Function ToString() As String - Return _RuntimeEnvironment.ToString - End Function - End Class -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Wiki/WebServiceHandler.vb b/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Wiki/WebServiceHandler.vb deleted file mode 100644 index e3b6ab7b9..000000000 --- a/ShoalShell.Legacy/Microsoft.VisualBasic.Scripting.ShoalShell/Wiki/WebServiceHandler.vb +++ /dev/null @@ -1,13 +0,0 @@ -Namespace Wiki - - ''' - ''' Query for the online SourceForge website wiki in the shoal project.(查询在线的sourceforge网站上面的wiki内容) - ''' - ''' - Public Class WebServiceHandler : Inherits ShoalShell.Runtime.Objects.ObjectModels.IScriptEngineComponent - - Sub New(ScriptEngine As ShoalShell.Runtime.Objects.ShellScript) - Call MyBase.New(ScriptEngine) - End Sub - End Class -End Namespace \ No newline at end of file diff --git a/ShoalShell.Legacy/My Project/Application.Designer.vb b/ShoalShell.Legacy/My Project/Application.Designer.vb deleted file mode 100644 index 88dd01c78..000000000 --- a/ShoalShell.Legacy/My Project/Application.Designer.vb +++ /dev/null @@ -1,13 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - diff --git a/ShoalShell.Legacy/My Project/Application.myapp b/ShoalShell.Legacy/My Project/Application.myapp deleted file mode 100644 index e62f1a533..000000000 --- a/ShoalShell.Legacy/My Project/Application.myapp +++ /dev/null @@ -1,10 +0,0 @@ - - - false - false - 0 - true - 0 - 2 - true - diff --git a/ShoalShell.Legacy/My Project/AssemblyInfo.vb b/ShoalShell.Legacy/My Project/AssemblyInfo.vb deleted file mode 100644 index 7be68a7bb..000000000 --- a/ShoalShell.Legacy/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,35 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - -' General Information about an assembly is controlled through the following -' set of attributes. Change these attribute values to modify the information -' associated with an assembly. - -' Review the values of the assembly attributes - - - - - - - - - - -'The following GUID is for the ID of the typelib if this project is exposed to COM - - -' Version information for an assembly consists of the following four values: -' -' Major Version -' Minor Version -' Build Number -' Revision -' -' You can specify all the values or you can default the Build and Revision Numbers -' by using the '*' as shown below: -' - - - diff --git a/ShoalShell.Legacy/My Project/Resources.Designer.vb b/ShoalShell.Legacy/My Project/Resources.Designer.vb deleted file mode 100644 index 11cc4fb7f..000000000 --- a/ShoalShell.Legacy/My Project/Resources.Designer.vb +++ /dev/null @@ -1,104 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - -Imports System - -Namespace My.Resources - - 'This class was auto-generated by the StronglyTypedResourceBuilder - 'class via a tool like ResGen or Visual Studio. - 'To add or remove a member, edit your .ResX file then rerun ResGen - 'with the /str option, or rebuild your VS project. - ''' - ''' A strongly-typed resource class, for looking up localized strings, etc. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Returns the cached ResourceManager instance used by this class. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Microsoft.VisualBasic.Shoal.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Overrides the current thread's CurrentUICulture property for all - ''' resource lookups using this strongly typed resource class. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set - resourceCulture = value - End Set - End Property - - ''' - ''' Looks up a localized string similar to GNU GENERAL PUBLIC LICENSE - ''' Version 3, 29 June 2007 - ''' - ''' Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> - ''' Everyone is permitted to copy and distribute verbatim copies - ''' of this license document, but changing it is not allowed. - ''' - ''' Preamble - ''' - ''' The GNU General Public License is a free, copyleft license for - '''software and other kinds of works. - ''' - ''' The licenses for most software and other practical works are designed - '''to take away yo [rest of string was truncated]";. - ''' - Friend ReadOnly Property gpl() As String - Get - Return ResourceManager.GetString("gpl", resourceCulture) - End Get - End Property - - ''' - ''' Looks up a localized string similar to This program is free software: you can redistribute it and/or modify - '''it under the terms of the GNU General Public License as published by - '''the Free Software Foundation, either version 3 of the License, or - '''any later version. - ''' - '''This program is distributed in the hope that it will be useful, - '''but WITHOUT ANY WARRANTY; without even the implied warranty of - '''MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - '''GNU General Public License for more details. - ''' - '''You should have received a copy of the GNU [rest of string was truncated]";. - ''' - Friend ReadOnly Property license() As String - Get - Return ResourceManager.GetString("license", resourceCulture) - End Get - End Property - End Module -End Namespace diff --git a/ShoalShell.Legacy/My Project/Resources.resx b/ShoalShell.Legacy/My Project/Resources.resx deleted file mode 100644 index 5a97acb37..000000000 --- a/ShoalShell.Legacy/My Project/Resources.resx +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - ..\Resources\gpl.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;gb2312 - - - ..\Resources\license.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;gb2312 - - \ No newline at end of file diff --git a/ShoalShell.Legacy/My Project/Settings.Designer.vb b/ShoalShell.Legacy/My Project/Settings.Designer.vb deleted file mode 100644 index a5ad226ea..000000000 --- a/ShoalShell.Legacy/My Project/Settings.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) - -#Region "My.Settings Auto-Save Functionality" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.Microsoft.VisualBasic.Shoal.My.MySettings - Get - Return Global.Microsoft.VisualBasic.Shoal.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/ShoalShell.Legacy/My Project/Settings.settings b/ShoalShell.Legacy/My Project/Settings.settings deleted file mode 100644 index 85b890b3c..000000000 --- a/ShoalShell.Legacy/My Project/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/ShoalShell.Legacy/My Project/app.manifest b/ShoalShell.Legacy/My Project/app.manifest deleted file mode 100644 index 4581619e0..000000000 --- a/ShoalShell.Legacy/My Project/app.manifest +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ShoalShell.Legacy/Resources/gpl.txt b/ShoalShell.Legacy/Resources/gpl.txt deleted file mode 100644 index 94a9ed024..000000000 --- a/ShoalShell.Legacy/Resources/gpl.txt +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/ShoalShell.Legacy/Resources/license.txt b/ShoalShell.Legacy/Resources/license.txt deleted file mode 100644 index da76ca0a9..000000000 --- a/ShoalShell.Legacy/Resources/license.txt +++ /dev/null @@ -1,12 +0,0 @@ -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . \ No newline at end of file diff --git a/ShoalShell.Legacy/ShellScript.ico b/ShoalShell.Legacy/ShellScript.ico deleted file mode 100644 index 5e90c468412f1128478aa00a389b70d46ea0e9cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206923 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 diff --git a/ShoalShell.Legacy/Shoal.Core.sln b/ShoalShell.Legacy/Shoal.Core.sln deleted file mode 100644 index 46cf52def..000000000 --- a/ShoalShell.Legacy/Shoal.Core.sln +++ /dev/null @@ -1,51 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.22823.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Shoal", "Shoal.vbproj", "{D71E0D55-DA94-4B18-B204-252D532EE8EC}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ShoalShell_Core", "Microsoft.VisualBasic.Scripting.ShoalShell\ShoalShell_Core.vbproj", "{0BE7FD44-D724-49F6-AEC0-06C80B4F5527}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Microsoft.VisualBasic.Architecture.Framework", "..\..\Microsoft.VisualBasic_Framework\Microsoft.VisualBasic.Architecture.Framework\Microsoft.VisualBasic.Architecture.Framework.vbproj", "{FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}" -EndProject -Global - GlobalSection(SharedMSBuildProjectFiles) = preSolution - ..\..\Microsoft.VisualBasic_Framework\SharedProject.VB_FrameworkExtensions\SharedProject.VB_FrameworkExtensions.projitems*{fecce1fd-e1d4-49e3-a668-60bb5e7aed99}*SharedItemsImports = 4 - EndGlobalSection - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|x64 = Debug|x64 - Release|Any CPU = Release|Any CPU - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {D71E0D55-DA94-4B18-B204-252D532EE8EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D71E0D55-DA94-4B18-B204-252D532EE8EC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D71E0D55-DA94-4B18-B204-252D532EE8EC}.Debug|x64.ActiveCfg = Debug|x64 - {D71E0D55-DA94-4B18-B204-252D532EE8EC}.Debug|x64.Build.0 = Debug|x64 - {D71E0D55-DA94-4B18-B204-252D532EE8EC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D71E0D55-DA94-4B18-B204-252D532EE8EC}.Release|Any CPU.Build.0 = Release|Any CPU - {D71E0D55-DA94-4B18-B204-252D532EE8EC}.Release|x64.ActiveCfg = Release|x64 - {D71E0D55-DA94-4B18-B204-252D532EE8EC}.Release|x64.Build.0 = Release|x64 - {0BE7FD44-D724-49F6-AEC0-06C80B4F5527}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0BE7FD44-D724-49F6-AEC0-06C80B4F5527}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0BE7FD44-D724-49F6-AEC0-06C80B4F5527}.Debug|x64.ActiveCfg = Debug|x64 - {0BE7FD44-D724-49F6-AEC0-06C80B4F5527}.Debug|x64.Build.0 = Debug|x64 - {0BE7FD44-D724-49F6-AEC0-06C80B4F5527}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0BE7FD44-D724-49F6-AEC0-06C80B4F5527}.Release|Any CPU.Build.0 = Release|Any CPU - {0BE7FD44-D724-49F6-AEC0-06C80B4F5527}.Release|x64.ActiveCfg = Release|x64 - {0BE7FD44-D724-49F6-AEC0-06C80B4F5527}.Release|x64.Build.0 = Release|x64 - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Debug|x64.ActiveCfg = Debug|x64 - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Debug|x64.Build.0 = Debug|x64 - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Release|Any CPU.Build.0 = Release|Any CPU - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Release|x64.ActiveCfg = Release|x64 - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/ShoalShell.Legacy/Shoal.ico b/ShoalShell.Legacy/Shoal.ico deleted file mode 100644 index 043d8d9884e6cfb16db09e755b95acb45ddf9c35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 341782 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%0A;!gSy|M&GB@r<2O)OegTx07o-7zc8;J%jDr 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 z

    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 t%j0t#j%}aj-&hoHBZI6K#Qp%Bi$4IG&jy; - - - - Debug - AnyCPU - {D71E0D55-DA94-4B18-B204-252D532EE8EC} - Exe - Microsoft.VisualBasic.Shoal.Program - Microsoft.VisualBasic.Shoal - Shoal - 512 - Console - v4.6 - - - - AnyCPU - true - full - true - true - bin\Debug\ - Shoal.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - false - - - x64 - Full - false - true - true - ..\..\..\GCModeller\ - Shoal.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - false - true - true - On - - - On - - - Binary - - - Off - - - On - - - Shoal.ico - - - My Project\app.manifest - - - true - true - true - ..\..\..\bin-Debug\ - Shoal.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - full - x64 - MinimumRecommendedRules.ruleset - - - true - true - ..\..\..\GCModeller-x64\ - true - Shoal.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - Full - x64 - On - MinimumRecommendedRules.ruleset - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - - - - - - - - {fecce1fd-e1d4-49e3-a668-60bb5e7aed99} - Microsoft.VisualBasic.Architecture.Framework - - - {0be7fd44-d724-49f6-aec0-06c80b4f5527} - ShoalShell_Core - - - - - \ No newline at end of file diff --git a/ShoalShell.Legacy/ShoalShell.Designer.cd b/ShoalShell.Legacy/ShoalShell.Designer.cd deleted file mode 100644 index 086cc2170..000000000 --- a/ShoalShell.Legacy/ShoalShell.Designer.cd +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - AAAAAAAAIKAAAgAABAAAAAAAAAAAAQAAACAAAAAAAAA= - ConsoleApplication\CommandLines.vb - - - - - - AAAAAIAAIAhQAAAAAAQAICAAACBAIQAAAAAAAAgCACA= - ConsoleApplication\Config.vb - - - - - - - AAAAAAAAAAAAAAAAAAAAIAAAAAABAAAAAAAAAAAAAAA= - - - - - - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAA= - _DEBUG_MAIN.vb - - - - - - ABAAAAAAAIAAAAAEgAABAAAAAAAAAAAAgAAABAEAAAA= - ConsoleApplication\Program.vb - - - - - - ACAAAAACACAAAAAAAKAAAAACAAgIAAADAAgAAAUAgAA= - InternalCommands.vb - - - - - - AAAAAAAAAAAAAAAAAAABEAAAAQAAAAAAAAgIAAAAAIA= - - - - - - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAA= - - - - \ No newline at end of file diff --git a/ShoalShell.Legacy/TestShellScriptModule/My Project/Application.Designer.vb b/ShoalShell.Legacy/TestShellScriptModule/My Project/Application.Designer.vb deleted file mode 100644 index 0aecefe66..000000000 --- a/ShoalShell.Legacy/TestShellScriptModule/My Project/Application.Designer.vb +++ /dev/null @@ -1,13 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.18444 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - diff --git a/ShoalShell.Legacy/TestShellScriptModule/My Project/Application.myapp b/ShoalShell.Legacy/TestShellScriptModule/My Project/Application.myapp deleted file mode 100644 index 758895def..000000000 --- a/ShoalShell.Legacy/TestShellScriptModule/My Project/Application.myapp +++ /dev/null @@ -1,10 +0,0 @@ - - - false - false - 0 - true - 0 - 1 - true - diff --git a/ShoalShell.Legacy/TestShellScriptModule/My Project/AssemblyInfo.vb b/ShoalShell.Legacy/TestShellScriptModule/My Project/AssemblyInfo.vb deleted file mode 100644 index e903e35f6..000000000 --- a/ShoalShell.Legacy/TestShellScriptModule/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,35 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - -' General Information about an assembly is controlled through the following -' set of attributes. Change these attribute values to modify the information -' associated with an assembly. - -' Review the values of the assembly attributes - - - - - - - - - - -'The following GUID is for the ID of the typelib if this project is exposed to COM - - -' Version information for an assembly consists of the following four values: -' -' Major Version -' Minor Version -' Build Number -' Revision -' -' You can specify all the values or you can default the Build and Revision Numbers -' by using the '*' as shown below: -' - - - diff --git a/ShoalShell.Legacy/TestShellScriptModule/My Project/Resources.resx b/ShoalShell.Legacy/TestShellScriptModule/My Project/Resources.resx deleted file mode 100644 index af7dbebba..000000000 --- a/ShoalShell.Legacy/TestShellScriptModule/My Project/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/ShoalShell.Legacy/TestShellScriptModule/My Project/Settings.settings b/ShoalShell.Legacy/TestShellScriptModule/My Project/Settings.settings deleted file mode 100644 index 85b890b3c..000000000 --- a/ShoalShell.Legacy/TestShellScriptModule/My Project/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/ShoalShell.Legacy/TestShellScriptModule/Test1.vb b/ShoalShell.Legacy/TestShellScriptModule/Test1.vb deleted file mode 100644 index b470ccfe9..000000000 --- a/ShoalShell.Legacy/TestShellScriptModule/Test1.vb +++ /dev/null @@ -1,16 +0,0 @@ -Imports Microsoft.VisualBasic.CommandLine.Reflection - -<[Namespace]("test1")> -Public Class Test1 - - - Public Shared Function _MsgBox(str As String) As String - MsgBox(str) - Return str - End Function - - - Public Shared Function createarray(str As String) As Char() - Return str.ToArray - End Function -End Class diff --git a/ShoalShell.Legacy/Win32API/ComDlg32.vb b/ShoalShell.Legacy/Win32API/ComDlg32.vb deleted file mode 100644 index fcb550858..000000000 --- a/ShoalShell.Legacy/Win32API/ComDlg32.vb +++ /dev/null @@ -1,202 +0,0 @@ -Imports Microsoft.VisualBasic.Scripting.EntryPointMetaData - -<[Namespace]("comdlg32.dll")> -Public Module ComDlg32 - - '''

    - ''' CommDlgExtendedError returns the error code from the last common dialog box function. This function does not return error codes for any other API function; for that, use GetLastError instead. - ''' - ''' - ''' The function's return value is undefined if the last common - ''' dialog function call was successful. If an error with a common dialog function did occur, the return value is exactly one of the - ''' following common dialog error flags: - ''' - ''' - ''' - - Public Declare Function CommDlgExtendedError Lib "comdlg32.dll" () As Long - - ''' - ''' The function could not open the dialog box. - ''' - ''' - Public Const CDERR_DIALOGFAILURE = &HFFFF - ''' - ''' The function failed to find the desired resource. - ''' - ''' - Public Const CDERR_FINDRESFAILURE = &H6 - ''' - ''' The error involved a general common dialog box property. - ''' - ''' - Public Const CDERR_GENERALCODES = &H0 - ''' - ''' The function failed during initialization (probably insufficient memory). - ''' - ''' - Public Const CDERR_INITIALIZATION = &H2 - ''' - ''' The function failed to load the desired resource. - ''' - ''' - Public Const CDERR_LOADRESFAILURE = &H7 - ''' - ''' The function failed to load the desired string. - ''' - ''' - Public Const CDERR_LOADSTRFAILURE = &H5 - ''' - ''' The function failed to lock the desired resource. - ''' - ''' - Public Const CDERR_LOCKRESFAILURE = &H8 - ''' - ''' The function failed to allocate sufficient memory. - ''' - ''' - Public Const CDERR_MEMALLOCFAILURE = &H9 - ''' - ''' The function failed to lock the desired memory. - ''' - ''' - Public Const CDERR_MEMLOCKFAILURE = &HA - ''' - ''' The function was not provided with a valid instance handle (if one was required). - ''' - ''' - Public Const CDERR_NOHINSTANCE = &H4 - ''' - ''' The function was not provided with a valid hook function handle (if one was required). - ''' - ''' - Public Const CDERR_NOHOOK = &HB - ''' - ''' The function was not provided with a valid template (if one was required). - ''' - ''' - Public Const CDERR_NOTEMPLATE = &H3 - ''' - ''' The function failed to successfully register a window message. - ''' - ''' - Public Const CDERR_REGISTERMSGFAIL = &HC - ''' - ''' The function was provided with an invalid structure size. - ''' - ''' - Public Const CDERR_STRUCTSIZE = &H1 - ''' - ''' The error involved the Choose Font common dialog box. - ''' - ''' - Public Const CFERR_CHOOSEFONTCODES = &H2000 - ''' - ''' The function was provided with a maximum font size value smaller than the provided minimum font size. - ''' - ''' - Public Const CFERR_MAXLESSTHANMIN = &H2002 - ''' - ''' The function could not find any existing fonts. - ''' - ''' - Public Const CFERR_NOFONTS = &H2001 - ''' - ''' The function was provided with a filename buffer which was too small. - ''' - ''' - Public Const FNERR_BUFFERTOOSMALL = &H3003 - ''' - ''' The error involved the Open File or Save File common dialog box. - ''' - ''' - Public Const FNERR_FILENAMECODES = &H3000 - ''' - ''' The function was provided with or received an invalid filename. - ''' - ''' - Public Const FNERR_INVALIDFILENAME = &H3002 - ''' - ''' The function had insufficient memory to subclass the list box. - ''' - ''' - Public Const FNERR_SUBCLASSFAILURE = &H3001 - ''' - ''' The function was provided with an invalid buffer. - ''' - ''' - Public Const FRERR_BUFFERLENGTHZERO = &H4001 - ''' - ''' The error involved the Find or Replace common dialog box. - ''' - ''' - Public Const FRERR_FINDREPLACECODES = &H4000 - ''' - ''' The function failed to create an information context. - ''' - ''' - Public Const PDERR_CREATEICFAILURE = &H100A - ''' - ''' The function was told that the information provided described the default printer, but the default printer's actual settings were - ''' different. - ''' - ''' - Public Const PDERR_DEFAULTDIFFERENT = &H100C - ''' - ''' The data in the two data structures describe different printers (i.e., they hold conflicting information). - ''' - ''' - Public Const PDERR_DNDMMISMATCH = &H1009 - ''' - ''' The printer driver failed to initialize the DEVMODE structure. - ''' - ''' - Public Const PDERR_GETDEVMODEFAIL = &H1005 - ''' - ''' The function failed during initialization. - ''' - ''' - Public Const PDERR_INITFAILURE = &H1006 - ''' - ''' The function failed to load the desired device driver. - ''' - ''' - Public Const PDERR_LOADDRVFAILURE = &H1004 - ''' - ''' The function could not find a default printer. - ''' - ''' - Public Const PDERR_NODEFAULTPRN = &H1008 - ''' - ''' The function could not find any printers. - ''' - ''' - Public Const PDERR_NODEVICES = &H1007 - ''' - ''' The function failed to parse the printer-related strings in WIN.INI. - ''' - ''' - Public Const PDERR_PARSEFAILURE = &H1002 - ''' - ''' The error involved the Print common dialog box. - ''' - ''' - Public Const PDERR_PRINTERCODES = &H1000 - ''' - ''' The function could not find information in WIN.INI about the requested printer. - ''' - ''' - Public Const PDERR_PRINTERNOTFOUND = &H100B - ''' - ''' The handles to the data structures provided were nonzero even though the function was asked to return information about - ''' the default printer. - ''' - ''' - Public Const PDERR_RETDEFFAILURE = &H1003 - ''' - ''' The function failed to load the desired resources. - ''' - ''' - Public Const PDERR_SETUPFAILURE = &H1001 - -End Module diff --git a/ShoalShell.Legacy/Win32API/Gdi32.vb b/ShoalShell.Legacy/Win32API/Gdi32.vb deleted file mode 100644 index 84d0e4f35..000000000 --- a/ShoalShell.Legacy/Win32API/Gdi32.vb +++ /dev/null @@ -1,74 +0,0 @@ -Imports System.Drawing - -<[Namespace]("gdi32.dll")> -Public Module Gdi32 - - ''' - ''' The Escape function allows applications to access capabilities of a particular device not directly available through GDI. Escape calls made by an application are translated and sent to the driver - ''' - ''' Identifies the device context. - ''' Specifies the escape function to be performed. This parameter must be one of the predefined escape values. Use the ExtEscape function if your application defines a private escape value. - ''' Specifies the number of bytes of data pointed to by the lpvInData parameter. - ''' Points to the input structure required for the specified escape. - ''' - ''' Points to the structure that receives output from this escape. This parameter should be NULL if no data is returned - ''' - ''' If the function succeeds, the return value is greater than zero, except with the QUERYESCSUPPORT printer escape, which checks for implementation only. If the escape is not implemented, the return value is zero. - ''' - ''' If the function fails, the return value is an error. To get extended error information, call GetLastError. - ''' - ''' - ''' - ''' - - Public Declare Function Escape Lib "gdi32" Alias "Escape" (ByVal hdc As Long, ByVal nEscape As Long, ByVal nCount As Long, ByVal lpInData As String, lpOutData As Object) As Long - - Public Declare Function Rectangle Lib "gdi32" (hdc As Integer, X1 As Integer, Y1 As Integer, X2 As Integer, Y2 As Integer) As Integer - - Public Declare Function Polygon Lib "gdi32" (hdc As Integer, lpPoint As Point, nCount As Integer) As Integer - - Public Declare Function CreateSolidBrush Lib "gdi32" (crColor As Integer) As Integer - - Public Declare Function CreatePatternBrush Lib "gdi32" (hBitmap As Integer) As Integer - - Public Declare Function CreatePen Lib "gdi32" (nPenStyle As Integer, nWidth As Integer, crColor As Integer) As Integer - - Public Declare Function GetPixel Lib "gdi32" (hdc As Integer, x As Integer, y As Integer) As Integer - - Public Declare Function SetPixelV Lib "gdi32" (hdc As Integer, x As Integer, y As Integer, crColor As Integer) As Integer - - Public Declare Function CreateCompatibleDC Lib "gdi32" (hdc As Integer) As Integer - - Public Declare Function DeleteDC Lib "gdi32" (hdc As Integer) As Integer - - Public Declare Function SaveDC Lib "gdi32" (hdc As Integer) As Integer - - Public Declare Function RestoreDC Lib "gdi32" (hdc As Integer, nSavedDC As Integer) As Integer - - Public Declare Function CreateBitmap Lib "gdi32" (nWidth As Integer, nHeight As Integer, nPlanes As Integer, nBitCount As Integer, lpBits As Object) As Integer - - Public Declare Function CreateCompatibleBitmap Lib "gdi32" (hdc As Integer, nWidth As Integer, nHeight As Integer) As Integer - - Public Declare Function CreateBitmapIndirect Lib "gdi32" (lpBitmap As C_BITMAP) As Integer - - Public Declare Function GetObject Lib "gdi32" Alias "GetObjectA" (hObject As Integer, nCount As Integer, lpObject As Object) As Integer - - Public Declare Function SelectObject Lib "gdi32" (hdc As Integer, hObject As Integer) As Integer - - Public Declare Function DeleteObject Lib "gdi32" (hObject As Integer) As Integer - - Public Declare Function GetMapMode Lib "gdi32" (hdc As Integer) As Integer - - Public Declare Function SetMapMode Lib "gdi32" (hdc As Integer, nMapMode As Integer) As Integer - - Public Declare Function SetBkColor Lib "gdi32" (hdc As Integer, crColor As Integer) As Integer - - Public Declare Function BitBlt Lib "gdi32" (hDestDC As Integer, x As Integer, y As Integer, nWidth As Integer, nHeight As Integer, hSrcDC As Integer, xSrc As Integer, ySrc As Integer, dwRop As Integer) As Integer - - Public Declare Function StretchBlt Lib "gdi32" (hdc As Integer, x As Integer, y As Integer, nWidth As Integer, nHeight As Integer, hSrcDC As Integer, xSrc As Integer, ySrc As Integer, nSrcWidth As Integer, nSrcHeight As Integer, dwRop As Integer) As Integer - - Public Declare Function SetTextColor Lib "gdi32" (hdc As Integer, crColor As Integer) As Integer - - Public Declare Function SetBkMode Lib "gdi32" (hdc As Integer, nBkMode As Integer) As Integer - -End Module diff --git a/ShoalShell.Legacy/Win32API/Interop.QuartzTypeLib.zip b/ShoalShell.Legacy/Win32API/Interop.QuartzTypeLib.zip deleted file mode 100644 index 6b970f4938157f8c6b5f9be1a22375da36501467..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7252 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 L(%FCZ4$=M(7Pd{{ diff --git a/ShoalShell.Legacy/Win32API/Kernel32.vb b/ShoalShell.Legacy/Win32API/Kernel32.vb deleted file mode 100644 index b04520ff3..000000000 --- a/ShoalShell.Legacy/Win32API/Kernel32.vb +++ /dev/null @@ -1,19 +0,0 @@ - -<[Namespace]("kernel32.dll")> -Public Module Kernel32 - - ''' - ''' Sleep pauses program execution for a certain amount of time. This is more accurate than using a do-nothing loop, waiting for a certain amount of time to pass. The function does not return a value. - ''' - ''' The number of milliseconds to halt program execution for. - ''' - ''' - - Public Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long) - - Public Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (lpBuffer As String, nSize As Integer) As Integer - - Public Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (lpBuffer As String, nSize As Integer) As Integer - - Public Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (lpString As String) As Integer -End Module diff --git a/ShoalShell.Legacy/Win32API/My Project/Application.Designer.vb b/ShoalShell.Legacy/Win32API/My Project/Application.Designer.vb deleted file mode 100644 index 88dd01c78..000000000 --- a/ShoalShell.Legacy/Win32API/My Project/Application.Designer.vb +++ /dev/null @@ -1,13 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - diff --git a/ShoalShell.Legacy/Win32API/My Project/Application.myapp b/ShoalShell.Legacy/Win32API/My Project/Application.myapp deleted file mode 100644 index 758895def..000000000 --- a/ShoalShell.Legacy/Win32API/My Project/Application.myapp +++ /dev/null @@ -1,10 +0,0 @@ - - - false - false - 0 - true - 0 - 1 - true - diff --git a/ShoalShell.Legacy/Win32API/My Project/AssemblyInfo.vb b/ShoalShell.Legacy/Win32API/My Project/AssemblyInfo.vb deleted file mode 100644 index 38eed57b1..000000000 --- a/ShoalShell.Legacy/Win32API/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,35 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - -' General Information about an assembly is controlled through the following -' set of attributes. Change these attribute values to modify the information -' associated with an assembly. - -' Review the values of the assembly attributes - - - - - - - - - - -'The following GUID is for the ID of the typelib if this project is exposed to COM - - -' Version information for an assembly consists of the following four values: -' -' Major Version -' Minor Version -' Build Number -' Revision -' -' You can specify all the values or you can default the Build and Revision Numbers -' by using the '*' as shown below: -' - - - diff --git a/ShoalShell.Legacy/Win32API/My Project/Resources.Designer.vb b/ShoalShell.Legacy/Win32API/My Project/Resources.Designer.vb deleted file mode 100644 index 6f87b83b6..000000000 --- a/ShoalShell.Legacy/Win32API/My Project/Resources.Designer.vb +++ /dev/null @@ -1,63 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - -Imports System - -Namespace My.Resources - - 'This class was auto-generated by the StronglyTypedResourceBuilder - 'class via a tool like ResGen or Visual Studio. - 'To add or remove a member, edit your .ResX file then rerun ResGen - 'with the /str option, or rebuild your VS project. - ''' - ''' A strongly-typed resource class, for looking up localized strings, etc. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Returns the cached ResourceManager instance used by this class. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Microsoft.Win32.API_ImportsDLL.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Overrides the current thread's CurrentUICulture property for all - ''' resource lookups using this strongly typed resource class. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set - resourceCulture = value - End Set - End Property - End Module -End Namespace diff --git a/ShoalShell.Legacy/Win32API/My Project/Resources.resx b/ShoalShell.Legacy/Win32API/My Project/Resources.resx deleted file mode 100644 index af7dbebba..000000000 --- a/ShoalShell.Legacy/Win32API/My Project/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/ShoalShell.Legacy/Win32API/My Project/Settings.Designer.vb b/ShoalShell.Legacy/Win32API/My Project/Settings.Designer.vb deleted file mode 100644 index e227188d3..000000000 --- a/ShoalShell.Legacy/Win32API/My Project/Settings.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) - -#Region "My.Settings Auto-Save Functionality" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.Microsoft.Win32.API_ImportsDLL.My.MySettings - Get - Return Global.Microsoft.Win32.API_ImportsDLL.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/ShoalShell.Legacy/Win32API/My Project/Settings.settings b/ShoalShell.Legacy/Win32API/My Project/Settings.settings deleted file mode 100644 index 85b890b3c..000000000 --- a/ShoalShell.Legacy/Win32API/My Project/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/ShoalShell.Legacy/Win32API/Shell32.vb b/ShoalShell.Legacy/Win32API/Shell32.vb deleted file mode 100644 index 2050ffee1..000000000 --- a/ShoalShell.Legacy/Win32API/Shell32.vb +++ /dev/null @@ -1,8 +0,0 @@ -Imports Microsoft.VisualBasic.CommandLine.Reflection - -<[Namespace]("shell32.dll")> -Public Module Shell32 - - - Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (hwnd As Integer, lpOperation As String, lpFile As String, lpParameters As String, lpDirectory As String, nShowCmd As Integer) As Integer -End Module diff --git a/ShoalShell.Legacy/Win32API/User32.vb b/ShoalShell.Legacy/Win32API/User32.vb deleted file mode 100644 index 9e3377f4d..000000000 --- a/ShoalShell.Legacy/Win32API/User32.vb +++ /dev/null @@ -1,48 +0,0 @@ - -<[Namespace]("user32.dll")> -Public Module User32 - - - Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (idHook As Integer, lpfn As Integer, hmod As Integer, dwThreadId As Integer) As Integer - - Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (hWnd As Integer, wMsg As Integer, wParam As Integer, lParam As Object) As Integer - - Public Declare Function SetCapture Lib "user32" (hwnd As Integer) As Integer - - Public Declare Function ReleaseCapture Lib "user32" () As Integer - - Public Declare Function GetWindowRect Lib "user32" (hwnd As Integer, lpRect As RECT) As Integer - - Public Declare Function GetCursorPos Lib "user32" (lpPoint As System.Drawing.Point) As Integer - - Public Declare Function SetCursorPos Lib "user32" (x As Integer, y As Integer) As Integer - - Public Declare Function DrawEdge Lib "user32" (hdc As Integer, qrc As RECT, edge As Integer, grfFlags As Integer) As Boolean - - Public Declare Function OffsetRect Lib "user32" (lpRect As RECT, x As Integer, y As Integer) As Integer - - Public Declare Function DrawText Lib "user32" Alias "DrawTextA" (hdc As Integer, lpStr As String, nCount As Integer, lpRect As RECT, wFormat As Integer) As Integer - - Public Declare Function GetDC Lib "user32" (hwnd As Integer) As Integer - - Public Declare Function ReleaseDC Lib "user32" (hwnd As Integer, hdc As Integer) As Integer - - Public Declare Function FillRect Lib "user32" (hdc As Integer, lpRect As RECT, hBrush As Integer) As Integer - - Public Declare Function DrawState Lib "user32" Alias "DrawStateA" (hdc As Integer, hBrush As Integer, lpDrawStateProc As Integer, lParam As Integer, wParam As Integer, n1 As Integer, n2 As Integer, n3 As Integer, n4 As Integer, un As Integer) As Integer - - Public Declare Function GetWindowDC Lib "user32" (hwnd As Integer) As Integer - - Public Declare Function IntersectRect Lib "user32" (lpDestRect As RECT, lpSrc1Rect As RECT, lpSrc2Rect As RECT) As Integer - - Public Declare Function SubtractRect Lib "user32" (lprcDst As RECT, lprcSrc1 As RECT, lprcSrc2 As RECT) As Integer - - Public Declare Function UnionRect Lib "user32" (lpDestRect As RECT, lpSrc1Rect As RECT, lpSrc2Rect As RECT) As Integer - - Public Declare Function IsRectEmpty Lib "user32" (lpRect As RECT) As Integer - - Public Declare Function SetRect Lib "user32" (lpRect As RECT, X1 As Integer, Y1 As Integer, X2 As Integer, Y2 As Integer) As Integer - - Public Declare Function EqualRect Lib "user32" (lpRect1 As RECT, lpRect2 As RECT) As Integer - -End Module diff --git a/ShoalShell.Legacy/Win32API/Win32API.sln b/ShoalShell.Legacy/Win32API/Win32API.sln deleted file mode 100644 index 69b97dae4..000000000 --- a/ShoalShell.Legacy/Win32API/Win32API.sln +++ /dev/null @@ -1,28 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.22129.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Win32API", "Win32API.vbproj", "{4B0A5F0A-F9F5-4206-99CC-82781B6E3457}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Microsoft.VisualBasic.Architecture.Framework", "..\..\Microsoft.VisualBasic.Architecture.Framework\Microsoft.VisualBasic.Architecture.Framework.vbproj", "{FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {4B0A5F0A-F9F5-4206-99CC-82781B6E3457}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4B0A5F0A-F9F5-4206-99CC-82781B6E3457}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4B0A5F0A-F9F5-4206-99CC-82781B6E3457}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4B0A5F0A-F9F5-4206-99CC-82781B6E3457}.Release|Any CPU.Build.0 = Release|Any CPU - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/ShoalShell.Legacy/Win32API/Win32API.vbproj b/ShoalShell.Legacy/Win32API/Win32API.vbproj deleted file mode 100644 index bee4a1b44..000000000 --- a/ShoalShell.Legacy/Win32API/Win32API.vbproj +++ /dev/null @@ -1,153 +0,0 @@ - - - - - Debug - AnyCPU - {4B0A5F0A-F9F5-4206-99CC-82781B6E3457} - Library - Microsoft.Win32.API_ImportsDLL - ShoalShell.Plugins.Win32API_v2.0_22.0.7601.121__ed1d5d0cd8c60cc9a - 512 - Windows - v4.6 - - - - true - full - true - true - ..\bin\Debug\ - ShoalShell.Plugins.Win32API_v2.0_22.0.7601.121__ed1d5d0cd8c60cc9a.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - pdbonly - false - true - true - ..\..\..\..\GCModeller\ - ShoalShell.Plugins.Win32API_v2.0_22.0.7601.121__ed1d5d0cd8c60cc9a.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - true - true - true - bin\x64\Debug\ - ShoalShell.Plugins.Win32API_v2.0_22.0.7601.121__ed1d5d0cd8c60cc9a.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - full - x64 - MinimumRecommendedRules.ruleset - - - true - ..\..\..\..\GCModeller-x64\ - ShoalShell.Plugins.Win32API_v2.0_22.0.7601.121__ed1d5d0cd8c60cc9a.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x64 - MinimumRecommendedRules.ruleset - - - - Interop.QuartzTypeLib\Interop.QuartzTypeLib.dll - True - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - {fecce1fd-e1d4-49e3-a668-60bb5e7aed99} - Microsoft.VisualBasic.Architecture.Framework - - - {0be7fd44-d724-49f6-aec0-06c80b4f5527} - ShoalShell_Core - - - - - \ No newline at end of file diff --git a/ShoalShell.Legacy/Win32API/WinMM.vb b/ShoalShell.Legacy/Win32API/WinMM.vb deleted file mode 100644 index 5dd2a407a..000000000 --- a/ShoalShell.Legacy/Win32API/WinMM.vb +++ /dev/null @@ -1,87 +0,0 @@ -Imports Microsoft.VisualBasic.CommandLine.Reflection -Imports QuartzTypeLib -Imports Microsoft.VisualBasic.Scripting.EntryPointMetaData - -<[Namespace]("winmm.dll")> -Public Module WinMM - - ''' - ''' DirectShow组件的抽象接口,整个播放器的核心部件 - ''' - ''' - Public Structure DirectShow : Implements IDisposable - - Dim MediaControl As IMediaControl - Dim MediaPosition As IMediaPosition - Dim BasicAudio As IBasicAudio - - Public Function RenderFile(spath As String) As Boolean - MediaControl = New FilgraphManager - MediaControl.RenderFile(spath) - BasicAudio = MediaControl - MediaPosition = MediaControl - Return True - End Function - - Public Sub Dispose() Implements System.IDisposable.Dispose - On Error Resume Next - - MediaControl.Stop() - MediaPosition = Nothing - BasicAudio = Nothing - MediaControl = Nothing - End Sub - - Public Function IsNull() As Boolean - Return (BasicAudio Is Nothing OrElse MediaControl Is Nothing OrElse MediaPosition Is Nothing) - End Function - - Public Sub [Stop]() - On Error Resume Next - MediaControl.Stop() - End Sub - - Public Sub Pause() - On Error Resume Next - MediaControl.Pause() - End Sub - - Public Sub Play() - On Error Resume Next - MediaControl.Run() - End Sub - - Public ReadOnly Property State As Long - Get - Dim TimeOut As Long, s As Long = 0 - MediaControl.GetState(TimeOut, s) - Return s - End Get - End Property - End Structure - - Public Const SND_APPLICATION = &H80 ' look for application specific association - Public Const SND_ALIAS = &H10000 ' name is a WIN.INI [sounds] entry - Public Const SND_ALIAS_ID = &H110000 ' name is a WIN.INI [sounds] entry identifier - Public Const SND_ASYNC = &H1 ' play asynchronously - Public Const SND_FILENAME = &H20000 ' name is a file name - Public Const SND_LOOP = &H8 ' loop the sound until next sndPlaySound - Public Const SND_MEMORY = &H4 ' lpszSoundName points to a memory file - Public Const SND_NODEFAULT = &H2 ' silence not default, if sound not found - Public Const SND_NOSTOP = &H10 ' don't stop any currently playing sound - Public Const SND_NOWAIT = &H2000 ' don't wait if the driver is busy - Public Const SND_PURGE = &H40 ' purge non-static events for task - Public Const SND_RESOURCE = &H40004 ' name is a resource name or atom - Public Const SND_SYNC = &H0 ' play synchronously (default) - - - Public Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (lpszName As String, hModule As Integer, dwFlags As Integer) As Integer - - - Public Function InvokeDirectShow( filename As String) As Double - Dim Device As WinMM.DirectShow = New DirectShow - Call Device.RenderFile(filename) - Call Device.Play() - Return 0 - End Function -End Module diff --git a/ShoalShell.Legacy/_DEBUG_MAIN.vb b/ShoalShell.Legacy/_DEBUG_MAIN.vb deleted file mode 100644 index 194e1fd76..000000000 --- a/ShoalShell.Legacy/_DEBUG_MAIN.vb +++ /dev/null @@ -1,10 +0,0 @@ -Imports Microsoft.VisualBasic.Scripting.ShoalShell -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Objects.ObjectModels - -Module _DEBUG_MAIN - Sub Main() - Call CommandLines.RegisterModule("-register_modules ""E:\GCModeller\CompiledAssembly\LANS.SystemsBiology.Assembly.Plugins.Shoal.dll""") - Call CommandLines.RegisterModule("-register_modules -path ""E:\GCModeller\GCI Project\Reference\ShellScript\TestShellScriptModule\bin\Debug\TestShellScriptModule.dll""") - Call New Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.Objects.ShellScript().EXEC(FileIO.FileSystem.ReadAllText("../release/linq_test.txt")) - End Sub -End Module diff --git a/ShoalShell.PlugIns.Plot/App.config b/ShoalShell.PlugIns.Plot/App.config deleted file mode 100644 index c3faffbe8..000000000 --- a/ShoalShell.PlugIns.Plot/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/ShoalShell.PlugIns.Plot/Device/FormChartPlotDevice.Designer.vb b/ShoalShell.PlugIns.Plot/Device/FormChartPlotDevice.Designer.vb deleted file mode 100644 index b150074b6..000000000 --- a/ShoalShell.PlugIns.Plot/Device/FormChartPlotDevice.Designer.vb +++ /dev/null @@ -1,37 +0,0 @@ - _ -Partial Class FormChartPlotDevice - Inherits Microsoft.VisualBasic.DocumentFormat.Csv.CsvChartDevice - - 'Form overrides dispose to clean up the component list. - _ - Protected Overrides Sub Dispose( disposing As Boolean) - Try - If disposing AndAlso components IsNot Nothing Then - components.Dispose() - End If - Finally - MyBase.Dispose(disposing) - End Try - End Sub - - 'Required by the Windows Form Designer - Private components As System.ComponentModel.IContainer - - 'NOTE: The following procedure is required by the Windows Form Designer - 'It can be modified using the Windows Form Designer. - 'Do not modify it using the code editor. - _ - Private Sub InitializeComponent() - Me.SuspendLayout() - ' - 'FormChartPlotDevice - ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(292, 273) - Me.Name = "FormChartPlotDevice" - Me.Text = "Form1" - Me.ResumeLayout(False) - - End Sub -End Class diff --git a/ShoalShell.PlugIns.Plot/Device/FormChartPlotDevice.resx b/ShoalShell.PlugIns.Plot/Device/FormChartPlotDevice.resx deleted file mode 100644 index 1af7de150..000000000 --- a/ShoalShell.PlugIns.Plot/Device/FormChartPlotDevice.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/ShoalShell.PlugIns.Plot/Device/FormChartPlotDevice.vb b/ShoalShell.PlugIns.Plot/Device/FormChartPlotDevice.vb deleted file mode 100644 index 23d9f0691..000000000 --- a/ShoalShell.PlugIns.Plot/Device/FormChartPlotDevice.vb +++ /dev/null @@ -1,9 +0,0 @@ -Public Class FormChartPlotDevice : Inherits Microsoft.VisualBasic.DocumentFormat.Csv.CsvChartDevice - - Public Function CopyChartImage() As Image - Dim Bitmap As Bitmap = New Bitmap(Me._chart.Size.Width, Me._chart.Size.Height) - Call Me._chart.DrawToBitmap(Bitmap, New Rectangle(New Point, Me._chart.Size)) - - Return Bitmap - End Function -End Class \ No newline at end of file diff --git a/ShoalShell.PlugIns.Plot/Device/FormImagePlotDevice.Designer.vb b/ShoalShell.PlugIns.Plot/Device/FormImagePlotDevice.Designer.vb deleted file mode 100644 index 551affe42..000000000 --- a/ShoalShell.PlugIns.Plot/Device/FormImagePlotDevice.Designer.vb +++ /dev/null @@ -1,122 +0,0 @@ - _ -Partial Class FormImagePlotDevice - Inherits System.Windows.Forms.Form - - 'Form overrides dispose to clean up the component list. - _ - Protected Overrides Sub Dispose( disposing As Boolean) - Try - If disposing AndAlso components IsNot Nothing Then - components.Dispose() - End If - Finally - MyBase.Dispose(disposing) - End Try - End Sub - - 'Required by the Windows Form Designer - Private components As System.ComponentModel.IContainer - - 'NOTE: The following procedure is required by the Windows Form Designer - 'It can be modified using the Windows Form Designer. - 'Do not modify it using the code editor. - _ - Private Sub InitializeComponent() - Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(FormImagePlotDevice)) - Me.PictureBox1 = New System.Windows.Forms.PictureBox() - Me.MenuStrip1 = New System.Windows.Forms.MenuStrip() - Me.FileToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.HelpToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.CloseToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.SaveAsToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.AboutToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.ToolStripMenuItem1 = New System.Windows.Forms.ToolStripSeparator() - CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() - Me.MenuStrip1.SuspendLayout() - Me.SuspendLayout() - ' - 'PictureBox1 - ' - Me.PictureBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom - Me.PictureBox1.Dock = System.Windows.Forms.DockStyle.Fill - Me.PictureBox1.Location = New System.Drawing.Point(0, 24) - Me.PictureBox1.Name = "PictureBox1" - Me.PictureBox1.Size = New System.Drawing.Size(292, 249) - Me.PictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom - Me.PictureBox1.TabIndex = 0 - Me.PictureBox1.TabStop = False - ' - 'MenuStrip1 - ' - Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.FileToolStripMenuItem, Me.HelpToolStripMenuItem}) - Me.MenuStrip1.Location = New System.Drawing.Point(0, 0) - Me.MenuStrip1.Name = "MenuStrip1" - Me.MenuStrip1.Size = New System.Drawing.Size(292, 24) - Me.MenuStrip1.TabIndex = 1 - Me.MenuStrip1.Text = "MenuStrip1" - ' - 'FileToolStripMenuItem - ' - Me.FileToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.SaveAsToolStripMenuItem, Me.ToolStripMenuItem1, Me.CloseToolStripMenuItem}) - Me.FileToolStripMenuItem.Name = "FileToolStripMenuItem" - Me.FileToolStripMenuItem.Size = New System.Drawing.Size(38, 20) - Me.FileToolStripMenuItem.Text = "File" - ' - 'HelpToolStripMenuItem - ' - Me.HelpToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.AboutToolStripMenuItem}) - Me.HelpToolStripMenuItem.Name = "HelpToolStripMenuItem" - Me.HelpToolStripMenuItem.Size = New System.Drawing.Size(44, 20) - Me.HelpToolStripMenuItem.Text = "Help" - ' - 'CloseToolStripMenuItem - ' - Me.CloseToolStripMenuItem.Name = "CloseToolStripMenuItem" - Me.CloseToolStripMenuItem.Size = New System.Drawing.Size(152, 22) - Me.CloseToolStripMenuItem.Text = "Close" - ' - 'SaveAsToolStripMenuItem - ' - Me.SaveAsToolStripMenuItem.Name = "SaveAsToolStripMenuItem" - Me.SaveAsToolStripMenuItem.Size = New System.Drawing.Size(152, 22) - Me.SaveAsToolStripMenuItem.Text = "Save As" - ' - 'AboutToolStripMenuItem - ' - Me.AboutToolStripMenuItem.Name = "AboutToolStripMenuItem" - Me.AboutToolStripMenuItem.Size = New System.Drawing.Size(152, 22) - Me.AboutToolStripMenuItem.Text = "About" - ' - 'ToolStripMenuItem1 - ' - Me.ToolStripMenuItem1.Name = "ToolStripMenuItem1" - Me.ToolStripMenuItem1.Size = New System.Drawing.Size(149, 6) - ' - 'FormImagePlotDevice - ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(292, 273) - Me.Controls.Add(Me.PictureBox1) - Me.Controls.Add(Me.MenuStrip1) - Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) - Me.MainMenuStrip = Me.MenuStrip1 - Me.Name = "FormImagePlotDevice" - Me.Text = "Shoal Plots" - CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() - Me.MenuStrip1.ResumeLayout(False) - Me.MenuStrip1.PerformLayout() - Me.ResumeLayout(False) - Me.PerformLayout() - - End Sub - Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox - Friend WithEvents MenuStrip1 As System.Windows.Forms.MenuStrip - Friend WithEvents FileToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem - Friend WithEvents SaveAsToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem - Friend WithEvents CloseToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem - Friend WithEvents HelpToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem - Friend WithEvents AboutToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem - Friend WithEvents ToolStripMenuItem1 As System.Windows.Forms.ToolStripSeparator - -End Class diff --git a/ShoalShell.PlugIns.Plot/Device/FormImagePlotDevice.resx b/ShoalShell.PlugIns.Plot/Device/FormImagePlotDevice.resx deleted file mode 100644 index 3cc2bc1ce..000000000 --- a/ShoalShell.PlugIns.Plot/Device/FormImagePlotDevice.resx +++ /dev/null @@ -1,3577 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - - - AAABABMAMDAQAAEABABoBgAANgEAACAgEAABAAQA6AIAAJ4HAAAYGBAAAQAEAOgBAACGCgAAEBAQAAEA - BAAoAQAAbgwAAAAAAAABAAgA5QsAAJYNAAAwMAAAAQAIAKgOAAB7GQAAICAAAAEACACoCAAAIygAABgY - AAABAAgAyAYAAMswAAAQEAAAAQAIAGgFAACTNwAAAAAAAAEAIACoCwAA+zwAAICAAAABACAAKAgBAKNI - AABgYAAAAQAgAKiUAADLUAEAUFAAAAEAIADoZwAAc+UBAEhIAAABACAAiFQAAFtNAgBAQAAAAQAgAChC - AADjoQIAMDAAAAEAIACoJQAAC+QCACAgAAABACAAqBAAALMJAwAYGAAAAQAgAIgJAABbGgMAEBAAAAEA - IABoBAAA4yMDACgAAAAwAAAAYAAAAAEABAAAAAAAgAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACA - AAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD///8AAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAcAcAcAcAcAcAcAcAcAcAcAcAcHAABwBwBwBw - BwBwBwBwBwBwBwBwBwBwBwCABwcHBwcHBwcHBwcHBwcHBwcHBwcHAHBwcHBwAAAAAAAAAAAAAAAAAAAA - AAAABwcHBwcAAAAAAAAAAAAAAAAAAAAAAAAAAHAHAHcAAAAAAAAAAAAAAAAAAAAAAAAAAHBwcAcAAAAA - AAAAAAAAAAAAAAAAAAAAAHAHBwcAAAAAAAAAAAAAAAAAAAAAAAAAAHcABwcAAAAAAAAAAAAAAAAAAAAA - AAAAAHBwBwcAAAAAAAAAAAAAAAAAAAAAAAAAAHAHAHcAAAAAAAAAAAAAAAAAAAAAAAAAAHcAcAcAAAAA - AAAAAAAAAAAAAAAAAAAAAHBwBwcAAAAAAAAAAAAAAAAAAAAAAAAAAHAHBwcAAAcAdwAAAABwcAcAcAdw - AAAAAHBwBwcAAABwAHAAAABwBwBwBwAAAAAAAHBwBwcAAAAHcHcAAAAHBwcHBwdwAAAAAHBwBwcAAAAA - BwBwAAAAAAAAAAAAAAAAAHAHBwcAAAAABwcHAAAAAAAAAAAAAAAAAHcABwcAAAAAAHAHcAAAAAAAAAAA - AAAAAHBwAHcAAAAAAHBwcAAAAAAAAAAAAAAAAHAHcAcAAAAABwAHAAAAAAAAAAAAAAAAAHcABwcAAAAA - cHBwAAAAAAAAAAAAAAAAAHBwBwcAAAAHAHcAAAAAAAAAAAAAAAAAAHAHBwcAAABwcHAAAAAAAAAAAAAA - AAAAAHBwBwcAAAcABwAAAAAAAAAAAAAAAAAAAHBwAHcAAAeIcAAAAAAAAAAAAAAAAAAAAHAHcAcAAAAA - AAAAAAAAAAAAAAAAAAAAAHcABwcAAAAAAAAAAAAAAAAAAAAAAAAAAHBwBwcAAAAAAAAAAAAAAAAAAAAA - AAAAAHAHBwcAAAAAAAAAAAAAAAAAAAAAAAAAAHcABwcAAAAAAAAAAAAAAAAAAAAAAAAAAHBwBwcHBwcH - BwcHBwcHBwcHBwcHBwcHBwBwAHAHAHBwcHBwcHAHAHBwBwBwcAcAcHAHcAcAcHAABwAHAAcAcHAHAHBw - BwBwBwcABwcHBwB3AHBwcHBwcAcAcHAHAHBwcABwcAcAcAcAcHAHAHAHBwBwcAcAcHAHBwcHcHBwBwBw - cAcAcAcAcHBwBwcHBwcAcAcHAAcHAHBwBwcHBwcHAAcHBwBwAHBwBwBwCABwcHAHAHAHAHAAcHAAcHAH - BwAHBwdwAAcABwcAcAcAcAcHBwcHAAcHAHBwcHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAA////////AAD///////8AAP///////wAA////////AADgAAAAAAcAAIAAAAAAAQAAgAAAAAAB - AAAH/////+AAAA//////8AAAD//////wAAAP//////AAAA//////8AAAD//////wAAAP//////AAAA// - ////8AAAD//////wAAAP//////AAAA+D/AAf8AAAD8H8AB/wAAAP4P4AH/AAAA/wf///8AAAD/g////w - AAAP/B////AAAA/8H///8AAAD/g////wAAAP8H////AAAA/g////8AAAD8H////wAAAPg/////AAAA+H - ////8AAAD//////wAAAP//////AAAA//////8AAAD//////wAAAP//////AAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAQAAgAAAAAABAADgAAAAAAcAAP// - /////wAA////////AAD///////8AAP///////wAAKAAAACAAAABAAAAAAQAEAAAAAAAAAgAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8A - AAD/AP8A//8AAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHd3d3d3d3d3d3d3d3 - gAAHBwcHBwcHBwcHBwcHBwBwcHBwcHBwcHBwcHBwcHBwd3BwAAAAAAAAAAAAAAAABwcHAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAcHAAAAAAAAAAAAAAAAAAAAcHAAAAAAAAAAAAAAAAAAAHBwAAAAAA - AAAAAAAAAAAAcAAAAHBwAAAHBwcHcAAAAABwAAAHBwAAAHBwcAAAAABwBwAAAABwAAB3d3cAAAAABwcA - AAAHBwAAAAAAAAAAAAcAAAAABwdwAAAAAAAAAABwcAAAAAcHAAAAAAAAAAAAAAcAAAAHcAAAAAAAAAAA - AHAHAAAHBwAAAAAAAAAAAAAHAAAAd3AAAAAAAAAAAAAAB3AAAAAAAAAAAAAAAAAAAHAHAAAAAAAAAAAA - AAAAAAAHBwAAAAAAAAAAAAAAAAAAAAB3d3d3d3d3d3d3d3d3d3BwcHBwcAcHBwcHBwcHBwAHBwAHAAcA - cABwAHAHAHBwcHBwcHBwcAcHBwcHAHAHAHBwBwBwBwcHAHAHAHBwcHAIBwcHBwBwBwcHAHBwBwAHcAAH - d3eHeHd3d4d3eHd4gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////4AAAB4AA - AAEAAAAAH///+D////w////8P////D////w////8PH4B/D4+Afw/HwP8P4///D+H//w/j//8Px///D4/ - //w8f//8P////D////w////8AAAAAAAAAAAAAAAAAAAAAAAAAACAAAAB4AAAB///////////KAAAABgA - AAAwAAAAAQAEAAAAAAAgAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICA - AACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAHAWAWAWAWAWAWAWBwd3d3d3d3d3d3dwcHAAAAAAAAAAAAAHAHAAAAAAAAAAAAAHBhAAAAAAAAAAAA - AHAWAAAAAAAAAAAAABYHAAdwAAB3d3AAAHBhAAcHAAcAABAAAHAWAABwgAAAAAAAAHAHAAAHAAAAAAAA - ABZhAABwcAAAAAAAAHAWAAcHAAAAAAAAAHAHAAdwAAAAAAAAAHBhAAAAAAAAAAAAAHAWAAAAAAAAAAAA - AHAHAAAAAAAAAAAAAAcBYHAWFhYWFhYWFhBhYQYWAWAWAWBhBgdwBwFhYBYBYBYWEHcHAWBgFgFhYWEA - YWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////AIAAAQAAAAAAP//8AD///AA///wAP//8ADnw - fAA44HwAPH/8AD5//AA8f/wAOP/8ADn//AA///wAP//8AD///AAAAAAAAAAAAAAAAACAAAEA////AP// - /wAoAAAAEAAAACAAAAABAAQAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAA - AACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAAAAB3d3d3d3 - d3B3AAAAAAAAcAAAAAAAAAAHAAAAAAAAAABwAAAAAAAAAAAAcAB3cAAHAAAAAAAAAABwAHcAAAAABwAH - cAAAAAAAcAAAAAAAAAAAAAAAAAAABwcHAHBwBwcAcABwcAcAcAcHd3cHd3d3cAAAAAAAAAAA//8AAIAB - AAA//AAAf/4AAH/+AAB//gAAdx4AAHv+AABz/gAAZ/4AAH/+AAB//gAAAAAAAAAAAACAAQAA//8AAIlQ - TkcNChoKAAAADUlIRFIAAAEAAAABAAgGAAAAXHKoZgAAC6xJREFUeJzt3c9rE2sbxvE7eQYUKXTTZcAu - zkYoRCgWSgQLboSACFIQ4sp/QChk4ap0VaQg9B8oCBaEIJRCFi6ECIaCUDEQ6KaIQhSEggSC2NKHeRc6 - eROb1qR9JvPj/n529XCmc058rrlm7plJplarCQCdslHvAIDoEACAYgQAoBgBAChGAACKEQCAYgQAoBgB - AChGAACKEQCAYgQAoBgBAChGAACKEQCAYgQAoBgBAChGAACKEQCAYgQAoJgX5sar1arfbDbl4OBARESs - tWH+OiA1jDEyNTUlMzMzUiwWM2H9nozLl4I2m03/1atX0ul0WOyAY5OTk3L//n2ZmZlxFghOAqBSqfg7 - OzsX3xsAQ5mfn5fFxcULB8GFAmBzc9Pf3d296D4AOKfZ2VkplUrnDoJzBUCj0fBfvHhBzQdiwBgjDx8+ - lHw+P3IQjBwA6+vrfqvVYvEDMXP16lV5/PjxSCEw0hjwyZMnLH4gpr58+SLlctkf5d8ZOgDK5bJ/eHjI - 4gdizForS0tLQ4fAUAFQLpd9Fj6QHMOGwD8DgMUPJNMwIXBmALD4gWT71zWBUwPgyZMnI11MABA/1toz - 1/LAANjY2PCPj4+54AekwOHhoWxsbAwMgYEBsLe3x+IHUqTZbA788xMBQPUH0mnQ2u4LgHq9zqwfSKnD - w0Op1+t9IdAXAFtbW2KMGe9eARibra2tvp+7AdBoNHxrLUd/IOUajUa3BXQD4OXLlxz9gZSz1srLly+7 - P3dfCXZ4eBjJDgEYr961nhX5/e4+jv6ADsYYqVarvsifAHj37l20ewRgbKy13TWfFRHhrj9Al+A0ICvC - 67oBbYJT/my9Xuf8H1DGWiv1et3Pfvv2jQYAKGOMkc+fP0v206dPzP8BhVqtlmR//foV9X4AGDNrrfz6 - 9UuynU4n6n0BEIFOp8MUANDKWitZFj+gkzFGslwABHSiAQCK0QAAxWgAgGI0AEAxGgCgGA0AUIwGAChG - AwAUowEAitEAAMVoAIBiNABAMRoAoBgNAFCMBgAo5xljnL0RiDYBhMv1AdtzvfgnJiacbA/ASZ1Ox+kB - 21kDsNbK/Py8LC4uZhzsG4ABqtWq/+bNGyfbcnoNwBgjV65ccbItAOPhbApgrZWfP3862RaAwX7+/Ons - WpsxhgYAJMmVK1ecXQOw1tIAAM1oAECCOD8FoAEAyeH8FIAGAOhFAwAShCkAoBhTAADO0ACABGEKACjG - FACAMzQAIEGYAgCKMQUA4AwNAEgQpgCAYkwBADhDAwAShCkAoBhTAADO0ACABGEKACjGFACAMzQAIEGY - AgCKMQUA4IzTbwceRwNoNBp+mNvP5/N8uSliKzgFcLFunX878DgawI8fP2R7ezvMX+E/e/aMEEAsqZ8C - LCwsZO7evRvq71haWgq1ZQBxkchrAIQAtGIK8AchAI2YAvQgBICLSWwDCBAC0IRnAQYgBKCF+inAaQgB - YHSpaAABQgBpxxTgHwgBpBlTgCEQAsBwUtcAAoQA0ogpwAgIAaQNU4AREQLA6VLdAAKEANKCKcA5EQJI - A6YAF0AIAP3UNIAAIYAkYwrgACGApGIK4AghACiZApyGEEDSMAVwjBBAkjAFCAEhAK3UN4AAIYAkYAoQ - IkIAcccUIGSEADShAQxACCCumAKMCSGAOGIKMEaEANKOBvAPhADihClABAgBxAVTgIgQAkgjGsAICAFE - jSlAxMYRAuVymRDAQEwBYuDr16+hbdvV5wEMgwYwos3NTX93dzeUbQeLf21tLRPKL0DiMQWIUFiL3xjD - 4sdQmAJEJMwjf4DFj3GjAQyB2o+4cH0K4NEAzhZm7Q+w+DEspgBjRO1H2nEN4BTUfsQRU4Ax4Go/4oop - QMio/dCEBtCD2o+441mAkLD4kQRMAULA4odW6hsAix9JwhTAIS74IWlcnwKovRNQ65G/Vqv5r1+/luPj - Y2d/keLCGCNzc3OyuLgYu//vceUZY5z8RUhSA9jc3PQ/fvwYyrbjuvjr9bq/tbWVukXfy1orOzs7srOz - 48/OzkqpVIrVZ+BCcArg4nNU+SyAxtq/sbHh7+3tpXrx/213d1f29/f95eXlWH0WF8UU4ALCrv3GmNgt - /kqlom7xB9rttjx9+pTXq51BzRRAY+0XEdnZ2VG5+APfv3+XarWamhBgCnAOwZE/zIUQx8W/srLi845B - kVqtFvUuOMOzACPSWPsD7XZb9dE/YK2VRqORmhbgUqobgNbaL/L7qj9H//9LSwvgjUBD0ni1v9fnz5+j - 3oVYabVaUe+CE0wBhqC59gcODg6i3gUkQOquAWiu/b2mpqY4//8jTadCTAHOoPVq/yDT09NR70JsWGtl - amoq6t1wginAKaj9/QqFQqb3FWTa3blzJ+pdiKVUNABq/2Ce50W9C7GRz+cT9/kNwhuB/kLtP93q6mpG - JF3nwKMyxsjt27ej3g1nmAL0CPvIn7TaP8j169dFRF8IBJ/fxMSEFIvFRH+GYUpsAwjzyJ/k2v+3UqmU - yeVyIqIvBCYmJiRtTwMyBZBwj/yBNCz+wOPHjzMLCwsi0v/dBGkU/PflcrnULX4R3gjUt/jD+oucpsUf - KBaLmWKxKJVKxf/w4UPUuxOaa9euyaNHj1L3+YUlc+PGDd9VCMzPz/M6JiBElUrFf//+vbM3AiX2GgCg - EVMAAM7QAIAEYQoAKMazAACcoQEACcKzAIBiTAEAOEMDABKEKQCgGFMAAM7QAIAEYQoAKMYUAIAzNAAg - QZgCAIoxBQDgDA0ASBCmAIBiTAEAOEMDABKEKQCgGFMAAM7QAIAEYQoAKMYUAIAzNAAgQZgCAIoxBQDg - DA0ASBCmAIBiTAEAOEMDABKEKQCgWGynACJCAwASxlkDABA+l6cAIg6vAYgIpwBAyFyeAog4bABcBASS - J+tqQ1wEBMLnfArgeZ6zDR4dHTnZDoDBjo6OnJ0CeJ4n2cuXLzvZmIhIq9Vyti0AJ7VaLScHbGOMXL58 - 2W0AfP/+3dm2AJx0cHDgpAFYa38HQC6Xc7BbAMbB5QQgl8tJdnp62ulGV1ZWfGcbA9C1srLiu7wHYHp6 - WrKFQiHjcqPtdlvq9TohADhUr9f9drvt9GBdKBQyzsaAvV69ehXGZgG1tra2nG3LGNO9kJgV+T0OcH1L - 8NLSkt9sNmkCwAU0m02/XC77Lo/81lrxPE9E/gTAzZs3nW2818bGhqyvrxMCwDmsr6/7z58/d1r7A8Ga - z9RqNRERKZfLvojbq4y9Jicn5datW7KwsJAJ5RcAKVCr1fy3b99Kp9MJZS0GTX9tbS0jIuIF/8DzPDk+ - Pnb+CwPtdlu2t7dle3ubRgBExForly5d6v7cvQj44MGD0I7+AOLBGCMPHjzo/twNgHw+n+m9OgggnfL5 - fPc0vG8MeO/evfHvDYDQBQf3v9d4XwAUCoVMGCNBANEKRn+FQqHvIvyJG4FWV1czXAsA0iM4oK+urp6Y - wA28E3B2djbkXQIwTqet6YEBUCqVMpOTk5wKAAlnjBHP86RUKg28/+bUZwGWl5e5YQdIgUHVP3Dmw0Br - a2tOnxQEMD7GmO4df6f559OAhACQPMMsfpEh3wochAA3CgHxFqzRYRa/yAivBV9bW8sEjxASAkC8BAvf - 87yhF7/IiN8LsLq6mgneIUgIAPFgjBFrreRyuTMv+A3SfRx4FI1Gw3/x4oWIhPf4MIB/Cw7EDx8+7LvH - f1jnCoDA5uam//HjRxEhCIBxM8bI9evXT53xD+NCARCoVCr++/fvRYQgAMLSe9o9Nzcni4uLF75Xx0kA - BJrNpl+tVuXg4KDvzwkFYDSDrrFNTU1JsViUmZkZZzfpOQ2Av1WrVX9/f5+vDAPOIZfLyX///SfFYjG0 - u3JDDQAA8RbK9wIASAYCAFCMAAAUIwAAxQgAQDECAFCMAAAUIwAAxQgAQDECAFCMAAAUIwAAxQgAQDEC - AFCMAAAUIwAAxQgAQDECAFCMAAAU+x+NMWWq83x3/gAAAABJRU5ErkJggigAAAAwAAAAYAAAAAEACAAA - AAAAAAkAAAAAAAAAAAAAAAEAAAABAAAAAAAAMTExADc3NwA9PT0AQUFBAEhISABNTU0AV1dXAFtbWwBe - Xl4AY2NjAGhoaABtbW0AcHBwAJGRkQCUlJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQEBAQEBAQEBAQEBAQEBAQEB - AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEFAAAAAA4BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB - AQEBAQEBAQEBAQEBAQ4AAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB - AQEADAEBAQwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwBAQEMAwEBBQAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAQEDAQEBDQAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAQEBAQEBDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAANAQEBAQEBDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN - AQEBAQEBDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAQEBAQEBDQAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAQEBAQEBDQAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAQEBAQEBDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAANAQEBAQEBDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN - AQEBAQEBDQAAAAAABQEBAQ0AAAAAAAAAAA4BAQEBAQEBAQEBAQoAAAAAAAAAAAANAQEBAQEBDQAAAAAA - AAUBAQENAAAAAAAAAAcBAQEBAQEBAQEBAQEAAAAAAAAAAAANAQEBAQEBDQAAAAAAAAAFAQEBDQAAAAAA - AAABAQEBAQEBAQEBAQ0AAAAAAAAAAAANAQEBAQEBDQAAAAAAAAAABQEBAQ0AAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAANAQEBAQEBDQAAAAAAAAAAAAcBAQENAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN - AQEBAQEBDQAAAAAAAAAAAAAFAQEBDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAQEBAQEBDQAAAAAA - AAAAAAAJAQEBCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAQEBAQEBDQAAAAAAAAAAAAkBAQEJAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAQEBAQEBDQAAAAAAAAAACQEBAQkAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAANAQEBAQEBDQAAAAAAAAAJAQEBCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN - AQEBAQEBDQAAAAAAAAkBAQEJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAQEBAQEBDQAAAAAA - CQEBAQkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAQEBAQEBDQAAAAAADg4ODgAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAQEBAQEBDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAANAQEBAQEBDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN - AQEBAQEBDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAQEBAQEBDQAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAQEBAQEBDQAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAQEBAQEBAQUFAwUDBQMFAwUDBQUDBQMFAwUDBQUDBQMFAwUF - AwUDBQMFAwUFAwUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB - AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB - AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAwEBAQEBAQEBAQEBAQEBAQEBAQEB - AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEDDAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB - AQEBAQEBAQEBAQEBAQEMAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB - AQEAAA4BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQ4AAAAABQEBAQEB - AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////AAD/ - //////8AAP///////wAA////////AADgAAAAAAcAAIAAAAAAAQAAgAAAAAABAAAH/////+AAAA////// - 8AAAD//////wAAAP//////AAAA//////8AAAD//////wAAAP//////AAAA//////8AAAD//////wAAAP - //////AAAA+D/AAf8AAAD8H8AB/wAAAP4P4AH/AAAA/wf///8AAAD/g////wAAAP/B////AAAA/8H/// - 8AAAD/g////wAAAP8H////AAAA/g////8AAAD8H////wAAAPg/////AAAA+H////8AAAD//////wAAAP - //////AAAA//////8AAAD//////wAAAP//////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAQAAgAAAAAABAADgAAAAAAcAAP///////wAA////////AAD/ - //////8AAP///////wAAKAAAACAAAABAAAAAAQAIAAAAAAAABAAAAAAAAAAAAAAAAQAAAAEAAAAAAAAy - MjIAOzs7AD4+PgBBQUEATk5OAFVVVQBeXl4AY2NjAG1tbQBycnIAgYGBAIWFhQCQkJAAlJSUAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAADg4NDQ4NDQ4NDQ4NDQ4NDQ4NDQ4NDQ4NDQ4AAAAABwEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB - AQEBAQEHAAwBAQIEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQCAQEMBAEJAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAJAQQBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAABAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEAAAAABQQG - AAAAAAAACAQEBAQEBAYAAAAAAAAAAQEBAQAAAAAAAgEFAAAAAAABAQEBAQEBAQAAAAAAAAABAQEBAAAA - AAAAAgEFAAAAAAAODQ0ODQ0AAAAAAAAAAAEBAQEAAAAAAAAAAgEFAAAAAAAAAAAAAAAAAAAAAAAAAQEB - AQAAAAAAAAAOAQEMAAAAAAAAAAAAAAAAAAAAAAABAQEBAAAAAAAAAAEBCQAAAAAAAAAAAAAAAAAAAAAA - AAEBAQEAAAAAAAABAQkAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQAAAAAAAQEJAAAAAAAAAAAAAAAAAAAA - AAAAAAABAQEBAAAAAAoKDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAEBAQEHDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsHAQEBAQEBAQEBAQEBAQEB - AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBBAEBAQEBAQEB - AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQQMAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBDAAHAQEB - AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQcAAAAADg0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ4AAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAA///////////gAAAHgAAAAQAAAAAf///4P////D////w////8P////D////w8fgH8Pj4B/D8fA/w/ - j//8P4f//D+P//w/H//8Pj///Dx///w////8P////D////wAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAHg - AAAH//////////8oAAAAGAAAADAAAAABAAgAAAAAAEACAAAAAAAAAAAAAAABAAAAAQAAAAAAADExMQA0 - NDQAQkJCAEhISABRUVEAVlZWAF5eXgBhYWEAZmZmAGtrawBsbGwAcHBwAHV1dQB4eHgAg4ODAISEhACT - k5MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAQEBAQEBAQEBAQEBAQEB - AQEBAQEGAAkBBwwMDAwMDAwMDAwMDAwMDAwMDAcBCQEEAAAAAAAAAAAAAAAAAAAAAAAAAAAEAQEGAAAA - AAAAAAAAAAAAAAAAAAAAAAAGAQEGAAAAAAAAAAAAAAAAAAAAAAAAAAAGAQEEAAAAAAAAAAAAAAAAAAAA - AAAAAAAEAQEGAAAADBEAAAAAAAwMDAwMAAAAAAAGAQEGAAAACgEPAAAABgEBAQEBAAAAAAAGAQEGAAAA - AAoBDwAAAAAAAAAAAAAAAAAEAQEGAAAAAAADAQAAAAAAAAAAAAAAAAAGAQEEAAAAAA4BDAAAAAAAAAAA - AAAAAAAGAQEGAAAADgEMAAAAAAAAAAAAAAAAAAAEAQEGAAAACQ8AAAAAAAAAAAAAAAAAAAAGAQEGAAAA - AAAAAAAAAAAAAAAAAAAAAAAGAQEEAAAAAAAAAAAAAAAAAAAAAAAAAAAEAQEDAAAAAAAAAAAAAAAAAAAA - AAAAAAADAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQoBAQEB - AQEBAQEBAQEBAQEBAQEBAQEBCgAHAQEBAQEBAQEBAQEBAQEBAQEBAQEHAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wD///8AgAABAAAAAAA///wAP//8AD///AA/ - //wAOfB8ADjgfAA8f/wAPn/8ADx//AA4//wAOf/8AD///AA///wAP//8AAAAAAAAAAAAAAAAAIAAAQD/ - //8A////ACgAAAAQAAAAIAAAAAEACAAAAAAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAAAAMjIyADk5OQA8 - PDwASkpKAFFRUQBhYWEAbGxsAHJycgB/f38AhYWFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAA - 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 - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAyMjIBMjIyFjIyMiQyMjIoMjIyKDIyMigyMjIoMjIyKDIyMigyMjIoMjIyKDIyMigy - MjIoMjIyKDIyMigyMjIoMjIyKDIyMigyMjIoMjIyKDIyMigyMjIoMjIyKDIyMigyMjIoMjIyKDIyMigy - MjIoMjIyKDIyMigyMjIoMjIyKDIyMigyMjIoMjIyKDIyMigyMjIoMjIyKDIyMigyMjIoMjIyKDIyMigy - MjIoMjIyKDIyMigyMjIoMjIyKDIyMigyMjIoMjIyKDIyMigyMjIoMjIyKDIyMigyMjIoMjIyKDIyMigy - MjIoMjIyKDIyMigyMjIoMjIyKDIyMigyMjIoMjIyKDIyMigyMjIoMjIyKDIyMigyMjIoMjIyKDIyMigy - MjIoMjIyKDIyMigyMjIoMjIyKDIyMigyMjIoMjIyKDIyMigyMjIoMjIyKDIyMigyMjIoMjIyKDIyMigy - MjIoMjIyKDIyMigyMjIoMjIyKDIyMigyMjIoMjIyKDIyMigyMjIoMjIyKDIyMigyMjIoMjIyKDIyMiQy - MjIWMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMisyMjKDMjIyxTIyMvMyMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjLzMjIyxTIyMoMyMjIrAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMjky - MjK8MjIy/jIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv4yMjK8MjIyOQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAADIyMgoyMjKaMjIy/TIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL9MjIymjIyMgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIbMjIy0TIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy0TIyMhsAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAMjIyGTIyMt0yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy3TIyMhkAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgcyMjLMMjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIyzDIyMgcA - AAAAAAAAAAAAAAAAAAAAMjIyjTIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIyjQAAAAAAAAAAAAAAADIyMiwyMjL7MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL7MjIyLAAAAAAAAAAAMjIyqDIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjKoAAAAADIyMhYyMjL6MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjLgMjIyuDIyMrEyMjKxMjIysTIyMrEy - MjKxMjIysTIyMrEyMjKxMjIysTIyMrEyMjKxMjIysTIyMrEyMjKxMjIysTIyMrEyMjKxMjIysTIyMrEy - MjKxMjIysTIyMrEyMjKxMjIysTIyMrEyMjKxMjIysTIyMrEyMjKxMjIysTIyMrEyMjKxMjIysTIyMrEy - MjKxMjIysTIyMrEyMjKxMjIysTIyMrEyMjKxMjIysTIyMrEyMjKxMjIysTIyMrEyMjKxMjIysTIyMrEy - MjKxMjIysTIyMrEyMjKxMjIysTIyMrEyMjKxMjIysTIyMrEyMjKxMjIysTIyMrEyMjKxMjIysTIyMrEy - MjKxMjIysTIyMrEyMjKxMjIysTIyMrEyMjKxMjIysTIyMrEyMjKxMjIysTIyMrEyMjKxMjIysTIyMrEy - MjKxMjIysTIyMrEyMjKxMjIysTIyMrEyMjKxMjIysTIyMrEyMjKxMjIysTIyMrEyMjKxMjIysTIyMrEy - MjKxMjIysTIyMrEyMjKxMjIyuDIyMuAyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMvoyMjIWMjIyZzIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjLfMjIyRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMkUy - MjLfMjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMmcyMjKoMjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy5DIyMhkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMhkyMjLkMjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIyqDIyMtMyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjJaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADIyMloyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjLTMjIy8DIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy9jIyMggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyCDIyMvYyMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMvAyMjL8MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjLcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAMjIy3DIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/DIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMtcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjLXMjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy1wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAADIyMtcyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjLXAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIy1zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMtcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjLXMjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy1wAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMtcy - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjLXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIy1zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMtcAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAy - MjLXMjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy1wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMtcyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjLXAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAMjIy1zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMtcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjLXMjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy1wAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADIyMtcyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjLXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIy1zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMtcA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAyMjLXMjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy1wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMtcyMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjLXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAMjIy1zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMtcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjLXMjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy1wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAADIyMtcyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjLXAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIy1zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMtcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjLXMjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy1wAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyDjIyMqEyMjKxMjIysTIyMrEyMjKxMjIysTIyMrEy - MjKxMjIysTIyMrEyMjKxMjIysTIyMmQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADIyMg8yMjJuMjIypDIyMrEyMjKxMjIysTIyMrEyMjKxMjIysTIyMrEyMjKxMjIysTIyMrEy - MjKxMjIysTIyMrEyMjKxMjIysTIyMrEyMjKxMjIysTIyMrEyMjKxMjIysTIyMrEyMjKxMjIysTIyMq8y - MjKWMjIySQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMtcy - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjLXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAMjIyNDIyMu4yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/jIyMmoA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjI8MjIy6TIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIytzIyMg0AAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIy1zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMtcAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyNDIyMu4yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/jIyMmoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAMjIyHTIyMu8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIyqwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAy - MjLXMjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy1wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAMjIyNDIyMu4yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/jIyMmoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjKUMjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL+MjIyMQAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMtcyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjLXAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyNDIyMu4y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/jIyMmoAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADIyMtYyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjJ0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAMjIy1zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMtcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyNDIyMu4yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/jIyMmoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIy4jIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMoEA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjLXMjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy1wAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAMjIyNDIyMu4yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/jIyMmkA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAyMjK6MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIyVwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADIyMtcyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjLXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyNDIyMu4yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/jIyMmkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMlYyMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMucy - MjILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIy1zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMtcA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAMjIyNDIyMu4yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/jIyMmkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAADIyMqEyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL4MjIyRwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAyMjLXMjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy1wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyNDIyMu8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/jIyMmkAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMm8y - MjLjMjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL9MjIyvzIyMjUA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMtcyMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjLXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyNTIyMu8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/jIyMmkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgEyMjIaMjIyKDIyMigyMjIoMjIyKDIyMigy - MjIoMjIyKDIyMigyMjIoMjIyKDIyMigyMjIoMjIyKDIyMigyMjIoMjIyKDIyMigyMjIoMjIyKDIyMigy - MjIoMjIyKDIyMigyMjIoMjIyJjIyMg4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAMjIy1zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMtcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAMjIyNTIyMu8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/jIyMmkA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjLXMjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy1wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyNTIyMu8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/TIyMmkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAADIyMtcyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjLXAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAMjIyNTIyMu8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/TIyMmkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIy1zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMtcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyNTIyMu8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/TIyMmgAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjLXMjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy1wAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyNTIyMu8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/TIyMmgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMtcy - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjLXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAMjIyNTIyMu8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/TIyMmgA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIy1zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMtcAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyXDIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/TIyMjIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAy - MjLXMjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy1wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADIyMikyMjLnMjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjJ7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMtcyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjLXAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIpMjIy5zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIyewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAMjIy1zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMtcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAMjIyKTIyMucyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMnsA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjLXMjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy1wAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMikyMjLnMjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjJ7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADIyMtcyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjLXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAy - MjIpMjIy5zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIyewAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIy1zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMtcA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyKTIyMucyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMnoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAyMjLXMjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy1wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMioy - MjLnMjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjJ6AAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMtcyMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjLXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIqMjIy5zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIyegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAMjIy1zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMtcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyKjIyMucy - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMnoAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjLXMjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy1wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAADIyMioyMjLoMjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjJ6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAADIyMtcyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjLXAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIqMjIy6DIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIyegAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIy1zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMtcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAMjIyKjIyMugyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMnoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjLXMjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy1wAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMioyMjLoMjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjJ6AAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMtcy - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjLXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAyMjIqMjIy6DIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL+MjIyegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIy1zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMtcAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyKjIyMugyMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/jIyMnkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAy - MjLXMjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy1wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADIyMioyMjLoMjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv4y - MjJ5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMtcyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjLXAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIPMjIyrDIyMsMyMjLDMjIywzIyMsMy - MjLDMjIywzIyMsMyMjLDMjIywzIyMsMyMjLDMjIydAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAMjIy1zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMtcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjLXMjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy1wAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADIyMtcyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjLXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIy1zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMtcA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAyMjLXMjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy1wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMtcyMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjLXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAMjIy1zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMtcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjLXMjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy1wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAADIyMtcyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjLXAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIy1zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMtcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjLXMjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy1wAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMtcy - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjLXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIy1zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMtcAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAy - MjLXMjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy1wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMtcyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjLpMjIydTIyMnUy - MjJ1MjIydTIyMnUyMjJ1MjIydTIyMnUyMjJ1MjIydTIyMnUyMjJ1MjIydTIyMnUyMjJ1MjIydTIyMnUy - MjJ1MjIydTIyMnUyMjJ1MjIydTIyMnUyMjJ1MjIydTIyMnUyMjJ1MjIydTIyMnUyMjJ1MjIydTIyMnUy - MjJ1MjIydTIyMnUyMjJ1MjIydTIyMnUyMjJ1MjIydTIyMnUyMjJ1MjIydTIyMnUyMjJ1MjIydTIyMnUy - MjJ1MjIydTIyMnUyMjJ1MjIydTIyMnUyMjJ1MjIydTIyMnUyMjJ1MjIydTIyMnUyMjJ1MjIydTIyMnUy - MjJ1MjIydTIyMnUyMjJ1MjIydTIyMnUyMjJ1MjIydTIyMnUyMjJ1MjIydTIyMnUyMjJ1MjIydTIyMnUy - MjJ1MjIydTIyMnUyMjJ1MjIydTIyMnUyMjJ1MjIydTIyMnUyMjJ1MjIydTIyMnUyMjJ1MjIydTIyMnUy - MjJ1MjIydTIyMnUyMjJ1MjIydTIyMnUyMjJ1MjIydTIyMnUyMjJ1MjIydTIyMnUyMjJ1MjIydTIyMnUy - MjJ1MjIy6TIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMvwyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL8MjIy8DIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMvAyMjLUMjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy1DIyMqgyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjKoMjIyZzIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMmcyMjIWMjIy+jIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL6MjIyFgAAAAAyMjKoMjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMqgAAAAAAAAAADIyMiwyMjL7MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL7MjIyLAAAAAAAAAAAAAAAADIyMo0y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMo0AAAAAAAAAAAAAAAAAAAAAMjIyBzIyMswyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjLMMjIyBwAAAAAAAAAAAAAAAAAAAAAA - AAAAMjIyGTIyMt0yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy3TIyMhkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyGzIyMtEyMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMtEyMjIbAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAMjIyCjIyMpoyMjL9MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv0y - MjKaMjIyCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMjsy - MjK9MjIy/jIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv4yMjK9MjIyOwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIrMjIygzIyMsUyMjLzMjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy8zIyMsUyMjKDMjIyKwAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAADIyMgEyMjIWMjIyJDIyMigyMjIoMjIyKDIyMigyMjIoMjIyKDIyMigy - MjIoMjIyKDIyMigyMjIoMjIyKDIyMigyMjIoMjIyKDIyMigyMjIoMjIyKDIyMigyMjIoMjIyKDIyMigy - MjIoMjIyKDIyMigyMjIoMjIyKDIyMigyMjIoMjIyKDIyMigyMjIoMjIyKDIyMigyMjIoMjIyKDIyMigy - MjIoMjIyKDIyMigyMjIoMjIyKDIyMigyMjIoMjIyKDIyMigyMjIoMjIyKDIyMigyMjIoMjIyKDIyMigy - MjIoMjIyKDIyMigyMjIoMjIyKDIyMigyMjIoMjIyKDIyMigyMjIoMjIyKDIyMigyMjIoMjIyKDIyMigy - MjIoMjIyKDIyMigyMjIoMjIyKDIyMigyMjIoMjIyKDIyMigyMjIoMjIyKDIyMigyMjIoMjIyKDIyMigy - MjIoMjIyKDIyMigyMjIoMjIyKDIyMigyMjIoMjIyKDIyMigyMjIoMjIyKDIyMigyMjIoMjIyKDIyMigy - MjIoMjIyJDIyMhYyMjIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////AAAAAAAAAAAAAAAAAP//+AAAAAAAAAAAAAAAAAAf/+AAAAAAAAAAAAAAAA - AAB/+AAAAAAAAAAAAAAAAAAAH/AAAAAAAAAAAAAAAAAAAA/gAAAAAAAAAAAAAAAAAAAHwAAAAAAAAAAA - AAAAAAAAA8AAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAQAAAAAA - AAAAAAAAAAAAAAAAB////////////////+AAAA/////////////////wAAAf////////////////+AAA - H/////////////////gAAD/////////////////8AAA//////////////////AAAP/////////////// - //wAAD/////////////////8AAA//////////////////AAAP/////////////////wAAD////////// - ///////8AAA//////////////////AAAP/////////////////wAAD/////////////////8AAA///// - /////////////AAAP/////////////////wAAD/////////////////8AAA//////////////////AAA - P/////////////////wAAD/////////////////8AAA//////////////////AAAP/////////////// - //wAAD/////////////////8AAA//////////////////AAAP/gAH///+AAAAB////wAAD/8AA////AA - AAAH///8AAA//gAH///gAAAAB////AAAP/8AA///4AAAAAP///wAAD//gAH//+AAAAAD///8AAA//8AA - ///gAAAAA////AAAP//gAH//4AAAAAP///wAAD//8AA//+AAAAAD///8AAA///gAH//wAAAAB////AAA - P//8AA//8AAAAA////wAAD///gAH//wAAAA////8AAA///8AA////////////AAAP///gAH///////// - //wAAD///8AA///////////8AAA////gAH///////////AAAP///8AA///////////wAAD////gAH/// - ///////8AAA////8AA///////////AAAP///+AAf//////////wAAD////AAP//////////8AAA////g - AH///////////AAAP///wAD///////////wAAD///4AB///////////8AAA///8AA////////////AAA - P//+AAf///////////wAAD///AAP///////////8AAA///gAH////////////AAAP//wAD////////// - //wAAD//4AB////////////8AAA//8AA/////////////AAAP/+AAf////////////wAAD//AAP///// - ///////8AAA//gAH/////////////AAAP/wAD/////////////wAAD/4AB/////////////8AAA///// - /////////////AAAP/////////////////wAAD/////////////////8AAA//////////////////AAA - P/////////////////wAAD/////////////////8AAA//////////////////AAAP/////////////// - //wAAD/////////////////8AAA//////////////////AAAP/////////////////wAAD////////// - ///////8AAA//////////////////AAAP/////////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAA - AAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAPg - AAAAAAAAAAAAAAAAAAAH8AAAAAAAAAAAAAAAAAAAD/gAAAAAAAAAAAAAAAAAAB/+AAAAAAAAAAAAAAAA - AAB//4AAAAAAAAAAAAAAAAAB///wAAAAAAAAAAAAAAAAD/////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////8o - AAAAYAAAAMAAAAABACAAAAAAAICUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMQ8x - MTFMMjIyfDExMZUyMjKdMTExnTExMZ0xMTGdMjIynTExMZ0xMTGdMjIynTExMZ0xMTGdMjIynTExMZ0x - MTGdMjIynTExMZ0xMTGdMjIynTExMZ0xMTGdMjIynTExMZ0yMjKdMTExnTExMZ0yMjKdMTExnTExMZ0y - MjKdMTExnTExMZ0yMjKdMTExnTExMZ0yMjKdMTExnTExMZ0yMjKdMTExnTExMZ0yMjKdMTExnTExMZ0y - MjKdMTExnTExMZ0xMTGdMjIynTExMZ0xMTGdMjIynTExMZ0xMTGdMjIynTExMZ0xMTGdMjIynTExMZ0x - MTGdMjIynTExMZ0xMTGdMjIynTExMZ0xMTGdMjIynTExMZ0xMTGdMjIynTExMZ0xMTGdMjIynTExMZ0x - MTGdMjIynTExMZUxMTF8MjIyTDExMQ8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAxMTEgMjIynDExMfIxMTH+MjIy/zExMf4yMjL/MTEx/jExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4y - MjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4y - MjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMfExMTGcMjIyIAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyAjIyMm4yMjL1MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy9TIyMm4yMjICAAAAAAAAAAAAAAAAAAAAAAAAAAAxMTECMjIyljExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4yMjL/MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4yMjL/MTEx/jExMf4y - MjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4y - MjL/MTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTGWMjIyAgAAAAAA - AAAAAAAAAAAAAAAyMjKDMjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIygwAAAAAAAAAAAAAAADExMUExMTH8MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4yMjL/MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4y - MjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4y - MjL/MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/DExMUEAAAAAMjIyAzExMcwx - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4yMjL/MTEx/jExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4y - MjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4y - MjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMcwxMTEDMjIyQDExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/TExMdYy - MjLFMTExxDExMcQxMTHEMjIyxDExMcQxMTHEMjIyxDExMcQxMTHEMjIyxDExMcQxMTHEMjIyxDExMcQx - MTHEMjIyxDExMcQxMTHEMjIyxDExMcQyMjLEMTExxDExMcQyMjLEMTExxDExMcQyMjLEMTExxDExMcQy - MjLEMTExxDExMcQyMjLEMTExxDExMcQyMjLEMTExxDExMcQyMjLEMTExxDExMcQyMjLEMTExxDExMcQx - MTHEMjIyxDExMcQxMTHEMjIyxDExMcQxMTHEMjIyxDExMcQxMTHEMjIyxDExMcQxMTHEMjIyxDExMcQx - MTHEMjIyxDExMcQxMTHEMjIyxDExMcQxMTHEMjIyxDExMcQxMTHEMjIyxDExMcQxMTHEMjIyxTExMdYx - MTH9MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTFAMjIylTIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjLJMjIyJwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjInMjIyyTIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjKVMjIyzzExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMeYxMTEUAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyFDExMeYx - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTHPMjIy8DExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMYkA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAADExMYkxMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTHwMjIy/TIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMmQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMmQyMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL9MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMWEAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADExMWExMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMWEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMWExMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMmEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMmEy - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMWEA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAADExMWExMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMWEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMWExMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMmEAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADIyMmEyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMWEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMWExMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMWEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMWEx - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMmEA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAADIyMmEyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMWEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMWExMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMWEAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADExMWExMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMmEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMmEyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMWEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMWEx - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMmEA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAADIyMmEyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMWEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMUgx - MTHDMjIyxDExMcQxMTHEMjIyxDExMcQxMTHEMjIyxDExMbUxMTEaAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExBzExMWsy - MjK1MTExxDExMcQyMjLEMTExxDExMcQyMjLEMTExxDExMcQxMTHEMjIyxDExMcQxMTHEMjIyxDExMcQx - MTHEMjIyxDExMcQxMTHEMjIywDExMZgxMTEqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMWExMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMWEAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMTF6MjIy/jExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTHVMjIyGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAyMjIEMTExtzExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTHzMjIyPgAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADExMWExMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMmEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyezIyMv4y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy1DIyMhkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjJfMjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy0zIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMmEyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMWEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAADExMXoxMTH9MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMdUx - MTEaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAy - MjKkMTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/DExMR0AAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMWEx - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMWEA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMTF6MjIy/jExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTHVMjIyGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjKeMTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4y - MjL/MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy+zExMRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAADExMWExMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMmEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAMjIyfDIyMv4yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy1DIyMhgA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjJPMjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIyxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMmEyMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMWEAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMXsxMTH9MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMdQyMjIZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAMTExljExMf0yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTHjMjIyKAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADExMWExMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMWEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAxMTF7MjIy/jExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4yMjLUMTExGAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExATExMUUyMjKOMTExnTExMZ0y - MjKdMTExnTExMZ0yMjKdMTExnTExMZ0xMTGdMjIynTExMZ0xMTGdMjIynTExMZ0xMTGdMjIynTExMZ0x - MTGdMjIymTExMXAxMTETAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMWExMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMmEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyfDIyMv4yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy0zIyMhgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMmEy - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMWEA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADExMXsxMTH9MjIy/zExMf4xMTH+MjIy/zExMf4yMjL/MTEx/jExMdQyMjIZAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAADExMWExMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMWEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMTF7MjIy/jExMf4xMTH+MjIy/zExMf4y - MjL/MTEx/jExMf4yMjLUMTExGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMWExMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMmEAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAMjIyfDIyMv4yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy0zIyMhgAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADIyMmEyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMWEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMXsxMTH9MjIy/zExMf4yMjL/MTEx/jExMf4y - MjL/MTEx/jExMdQyMjIZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMWExMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMWEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMT0x - MTH3MjIy/zExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMfQyMjI/AAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMWEx - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMmEA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAMjIyOzIyMu8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy9TIyMkcA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAADIyMmEyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMWEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMTE7MjIy8TExMf4xMTH+MjIy/zExMf4y - MjL/MTEx/jExMf4yMjL1MTExRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMWExMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMWEAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMTwx - MTHvMjIy/zExMf4xMTH+MjIy/zExMf4yMjL/MTEx/jExMfQyMjJHAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADExMWExMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMmEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAMjIyOzIyMu8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy9TIyMkcA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMmEyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMWEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMTE8MjIy8jExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4yMjL1MTExRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMWEx - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMWEA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMT0x - MTHvMjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMfQyMjJGAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAADExMWExMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMmEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAMjIyPDIyMvAyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy9TIyMkYA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMmEyMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMWEAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMTE8MjIy8jExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH1MjIyRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADExMWExMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMWEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMT0x - MTHwMjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMfMxMTFGAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMWExMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMWEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAMjIyPDExMfAxMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy9TExMUYA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMWEx - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMmEA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjI8MjIy8jIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL0MjIyRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAADIyMmEyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMWEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMT0x - MTHwMjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMfMxMTFGAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMWExMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMWEAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAADExMQwxMTESMjIyEjExMRIxMTESMjIyEjExMRIxMTESMjIyEjExMQ4A - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADExMWExMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMmEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMmEyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMWEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMWEx - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMWEA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAADExMWExMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMmEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMmEyMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMWEAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADExMWExMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMWEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMWExMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMmEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMmEy - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMWEA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAADExMWExMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMWEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMWExMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMmEAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADIyMmEyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMeYxMTHXMjIy1zExMdcyMjLXMTEx1zExMdcxMTHXMjIy1zExMdcxMTHXMjIy1zExMdcx - MTHXMjIy1zExMdcxMTHXMjIy1zExMdcxMTHXMjIy1zExMdcxMTHXMjIy1zExMdcyMjLXMTEx1zExMdcy - MjLXMTEx1zExMdcyMjLXMTEx1zExMdcyMjLXMTEx1zExMdcyMjLXMTEx1zExMdcyMjLXMTEx1zExMdcy - MjLXMTEx1zExMdcyMjLXMTEx1zExMdcxMTHXMjIy1zExMdcxMTHXMjIy1zExMdcxMTHXMjIy1zExMdcx - MTHXMjIy1zExMdcxMTHXMjIy1zExMdcxMTHXMjIy1zExMdcxMTHXMjIy1zExMdcxMTHXMjIy1zExMdcx - MTHXMjIy1zExMdcxMTHXMjIy1zExMdcxMTHXMjIy1zExMeYxMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4yMjL/MTEx/jExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4y - MjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4yMjL/MTEx/jExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4y - MjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4y - MjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4y - MjL/MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4y - MjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4yMjL/MTEx/jExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4y - MjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/TExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4yMjL/MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4y - MjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4y - MjL/MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH9MjIy8DIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjLwMjIyzzExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4y - MjL/MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4y - MjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTHPMjIylTExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4yMjL/MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4yMjL/MTEx/jExMf4y - MjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4y - MjL/MTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTGVMjIyQDIyMv4yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv4yMjJAMjIyAzExMcwxMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4yMjL/MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4y - MjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4y - MjL/MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMcwxMTEDAAAAADExMUEx - MTH8MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4yMjL/MTEx/jExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4y - MjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4y - MjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/DExMUEAAAAAAAAAAAAAAAAyMjKDMjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIygwAAAAAAAAAAAAAAAAAAAAAxMTECMjIyljExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4yMjL/MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4yMjL/MTEx/jExMf4y - MjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4y - MjL/MTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTGWMjIyAgAAAAAA - AAAAAAAAAAAAAAAAAAAAMjIyAjExMW4xMTH1MjIy/zExMf4xMTH+MjIy/zExMf4yMjL/MTEx/jExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4y - MjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4xMTH+MjIy/zExMf4x - MTH+MjIy9TExMW4xMTECAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIhMjIynDIyMvIy - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMvIyMjKcMjIyIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAADExMQ8xMTFMMjIyfDExMZUyMjKdMTExnTExMZ0xMTGdMjIynTExMZ0x - MTGdMjIynTExMZ0xMTGdMjIynTExMZ0xMTGdMjIynTExMZ0xMTGdMjIynTExMZ0xMTGdMjIynTExMZ0y - MjKdMTExnTExMZ0yMjKdMTExnTExMZ0yMjKdMTExnTExMZ0yMjKdMTExnTExMZ0yMjKdMTExnTExMZ0y - MjKdMTExnTExMZ0yMjKdMTExnTExMZ0yMjKdMTExnTExMZ0xMTGdMjIynTExMZ0xMTGdMjIynTExMZ0x - MTGdMjIynTExMZ0xMTGdMjIynTExMZ0xMTGdMjIynTExMZ0xMTGdMjIynTExMZ0xMTGdMjIynTExMZ0x - MTGdMjIynTExMZ0xMTGdMjIynTExMZ0xMTGdMjIynTExMZUxMTF8MjIyTDExMQ8AAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAA//////////////////////////////////////////////////////////////////////////// - /////////////////////////////////////gAAAAAAAAAAAAB/+AAAAAAAAAAAAAAf4AAAAAAAAAAA - AAAHwAAAAAAAAAAAAAADwAAAAAAAAAAAAAADgAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAD////////////wAAH////////////4AAP////////////8AAP////////////8AAP////////// - //8AAP////////////8AAP////////////8AAP////////////8AAP////////////8AAP////////// - //8AAP////////////8AAP////////////8AAP////////////8AAP////////////8AAP////////// - //8AAP////////////8AAP////////////8AAP////////////8AAP8AH//4AAAH//8AAP+AD//wAAAD - //8AAP/AB//wAAAB//8AAP/gA//wAAAB//8AAP/wAf/wAAAB//8AAP/4AP/wAAAD//8AAP/8AH/4AAAD - //8AAP/+AD/4AAAH//8AAP//AB////////8AAP//gA////////8AAP//wAf///////8AAP//4AP///// - //8AAP//8AH///////8AAP//8AH///////8AAP//4AP///////8AAP//wAf///////8AAP//gA////// - //8AAP//AB////////8AAP/+AD////////8AAP/8AH////////8AAP/4AP////////8AAP/wAf////// - //8AAP/gA/////////8AAP/AB/////////8AAP+AD/////////8AAP8AH/////////8AAP8AP/////// - //8AAP////////////8AAP////////////8AAP////////////8AAP////////////8AAP////////// - //8AAP////////////8AAP////////////8AAP////////////8AAP////////////8AAP////////// - //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAABwAAAAAAAAAAA - AAADwAAAAAAAAAAAAAAD4AAAAAAAAAAAAAAH+AAAAAAAAAAAAAAf/gAAAAAAAAAAAAB///////////// - //////////////////////////////////////////////////////////////////////////////// - ////////////////////KAAAAFAAAACgAAAAAQAgAAAAAADAZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAMjIyFjIyMmsyMjKqMjIyzTIyMtcyMjLYMjIy2DIyMtgyMjLYMjIy2DIyMtgy - MjLYMjIy2DIyMtgyMjLYMjIy2DIyMtgyMjLYMjIy2DIyMtgyMjLYMjIy2DIyMtgyMjLYMjIy2DIyMtgy - MjLYMjIy2DIyMtgyMjLYMjIy2DIyMtgyMjLYMjIy2DIyMtgyMjLYMjIy2DIyMtgyMjLYMjIy2DIyMtgy - MjLYMTEx2DIyMtgyMjLYMjIy2DIyMtgyMjLYMjIy2DIyMtgyMjLYMjIy2DIyMtgyMjLYMjIy2DIyMtgy - MjLYMjIy2DIyMtgyMjLYMjIy2DIyMtgyMjLYMjIy2DIyMtgyMjLXMjIyzTIyMqoyMjJrMjIyFgAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyCTExMYUyMjL0MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8xMTH+MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL0MjIyhTIyMgkAAAAAAAAAAAAAAAAAAAAAAAAAADIyMhgyMjLLMTEx/jIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zExMf4yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIyyzIyMhgAAAAAAAAAAAAAAAAy - MjILMjIyzjIyMv8xMTH+MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MTEx/jIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIyzjIyMgsAAAAAAAAAADIyMpYyMjL/MjIy/zExMf4yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8xMTH+MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIylgAAAAAyMjIlMjIy+jIyMv8yMjL/MTEx/jIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zExMf4yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL6MjIyJTIyMoYy - MjL/MjIy/zIyMv8xMTH+MjIy/zIyMv8yMjLUMjIyazIyMk8yMjJPMjIyTzIyMk8yMjJPMjIyTzIyMk8y - MjJPMjIyTzIyMk8yMjJPMjIyTzIyMk8yMjJPMjIyTzIyMk8yMjJPMjIyTzIyMk8yMjJPMjIyTzIyMk8y - MjJPMjIyTzIyMk8yMjJPMjIyTzIyMk8yMjJPMjIyTzIyMk8yMjJPMjIyTzIyMk8yMjJPMjIyTzIyMk8y - MjJPMTExTzIyMk8yMjJPMjIyTzIyMk8yMjJPMjIyTzIyMk8yMjJPMjIyTzIyMk8yMjJPMjIyTzIyMk8y - MjJPMjIyTzIyMk8yMjJPMjIyTzIyMk8yMjJPMjIyTzIyMk8yMjJPMjIyazIyMtQyMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjKGMjIyyjExMf4xMTH+MTEx/jExMf4yMjL/MjIyyzIyMgsAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAMjIyCzIyMssyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMsoyMjLwMTEx/jExMf4xMTH+MTEx/jIyMv8y - MjJPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyTzIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy8DIyMv4x - MTH+MTEx/jExMf4xMTH+MjIy/zIyMigAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIoMjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL+MjIy/zExMf4xMTH+MTEx/jExMf4yMjL/MjIyJgAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADIyMiYyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MTEx/jExMf4xMTH+MTEx/jIyMv8y - MjImAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyJjIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8x - MTH+MTEx/jExMf4xMTH+MjIy/zIyMiYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjImMjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zExMf4xMTH+MTEx/jExMf4yMjL/MjIyJgAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADIyMiYyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MTEx/jExMf4xMTH+MTEx/jIyMv8y - MjImAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyJjIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8x - MTH+MTEx/jExMf4xMTH+MjIy/zIyMiYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjImMjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zExMf4xMTH+MTEx/jExMf4yMjL/MjIyJgAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADIyMiYyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MTEx/jExMf4xMTH+MTEx/jIyMv8y - MjImAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyJjIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8x - MTH+MTEx/jExMf4xMTH+MjIy/zIyMiYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjImMjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zExMf4xMTH+MTEx/jExMf4yMjL/MjIyJgAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADIyMiYyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MTEx/jExMf4xMTH+MTEx/jIyMv8y - MjImAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyJjIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8x - MTH+MTEx/jExMf4xMTH+MjIy/zIyMiYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMTEXMTExTzExMU8x - MTFPMTExTzExMU8xMTFPMTExTzExMSsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExBjExMT0xMTFPMTExTzExMU8xMTFPMTExTzExMU8x - MTFPMTExTzIyMk8yMjJPMjIyTzIyMk8yMjJPMjIyTzIyMk8yMjJJMjIyGQAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjImMjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zExMf4xMTH+MTEx/jExMf4yMjL/MjIyJgAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADExMQQxMTGhMTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx8jExMT4AAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMScxMTHaMTEx/jExMf4x - MTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL3MjIybAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADIyMiYyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MTEx/jExMf4xMTH+MTEx/jIyMv8y - MjImAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMQMxMTGjMTEx/jExMf4xMTH+MTEx/jExMf4x - MTH+MTEx8TExMT4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAMTExxDExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL7MjIyKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyJjIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8x - MTH+MTEx/jExMf4xMTH+MjIy/zIyMiYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMQMx - MTGhMTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx8jExMT8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAADExMQ4xMTH6MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4x - MTH+MTEx/jIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjJsAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjImMjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zExMf4xMTH+MTEx/jExMf4yMjL/MjIyJgAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAADExMQQxMTGiMTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx8jExMT4A - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExBTExMe8xMTH+MTEx/jExMf4x - MTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMlgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADIyMiYyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MTEx/jExMf4xMTH+MTEx/jIyMv8y - MjImAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMQMxMTGiMTEx/jExMf4x - MTH+MTEx/jExMf4xMTH+MTEx8TExMT4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAMTExgDExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjLYMjIyCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyJjIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8x - MTH+MTEx/jExMf4xMTH+MjIy/zIyMiYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADExMQQxMTGiMTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx8jExMT4AAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMTECMTExazExMcYxMTHYMTEx2DExMdgxMTHYMTEx2DExMdgx - MTHYMTEx2DIyMtgyMjLYMjIy2DIyMtgyMjLYMjIy2DIyMtgyMjLTMjIymzIyMhkAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjImMjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zExMf4xMTH+MTEx/jExMf4yMjL/MjIyJgAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMQMxMTGjMTEx/jExMf4xMTH+MTEx/jExMf4x - MTH+MTEx8TExMT0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADIyMiYyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MTEx/jExMf4xMTH+MTEx/jIyMv8y - MjImAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMQMx - MTGiMTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx8jExMT4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyJjIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8x - MTH+MTEx/jExMf4xMTH+MjIy/zIyMiYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAADExMQQxMTGiMTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx8jExMT0A - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjImMjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zExMf4xMTH+MTEx/jExMf4yMjL/MjIyJgAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMQQxMTGiMTEx/jExMf4x - MTH+MTEx/jExMf4xMTH+MTEx8TExMT4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADIyMiYyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MTEx/jExMf4xMTH+MTEx/jIyMv8y - MjImAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADExMQwxMTHlMTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx3TExMQYAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyJjIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8x - MTH+MTEx/jExMf4xMTH+MjIy/zIyMiYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMTEHMTExsjExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMesx - MTExAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjImMjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zExMf4xMTH+MTEx/jExMf4yMjL/MjIyJgAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExCDExMbMxMTH+MTEx/jExMf4x - MTH+MTEx/jExMf4xMTHrMTExMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADIyMiYyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MTEx/jExMf4xMTH+MTEx/jIyMv8y - MjImAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMQgx - MTGyMTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx6jExMTEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyJjIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8x - MTH+MTEx/jExMf4xMTH+MjIy/zIyMiYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAxMTEHMTExszExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMeoxMTEwAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjImMjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zExMf4xMTH+MTEx/jExMf4yMjL/MjIyJgAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExCDExMbIxMTH+MTEx/jExMf4xMTH+MTEx/jExMf4x - MTHqMTExMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADIyMiYyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MTEx/jExMf4xMTH+MTEx/jIyMv8y - MjImAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMQcxMTGzMTEx/jExMf4x - MTH+MTEx/jExMf4xMTH+MTEx6zExMTEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyJjIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8x - MTH+MTEx/jExMf4xMTH+MjIy/zIyMiYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAx - MTEIMTExszExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMesxMTEvAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjImMjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zExMf4xMTH+MTEx/jExMf4yMjL/MjIyJgAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAMTExCDExMbIxMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTHqMTExMQAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADIyMiYyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4x - MTEmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMQcxMTG0MTEx/jExMf4xMTH+MTEx/jExMf4x - MTH+MTEx6jExMTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExJjExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jIyMv8y - MjL/MjIy/zIyMv8xMTH+MjIy/zIyMiYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIIMjIyszIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMuoyMjIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjImMjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zExMf4yMjL/MjIyJgAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADIyMhMyMjI6MjIyOjIyMjoyMjI6MjIyOjIyMjoyMjI6MjIyHQAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADIyMiYyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MTEx/jIyMv8y - MjImAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyJjIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8xMTH+MjIy/zIyMiYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjImMjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zExMf4yMjL/MjIyJgAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADIyMiYyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MTEx/jIyMv8y - MjImAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyJjIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8xMTH+MjIy/zIyMiYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjImMjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zExMf4yMjL/MjIyJgAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADIyMiYyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MTEx/jIyMv8y - MjImAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyJjIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8xMTH+MjIy/zIyMiYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjImMjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zExMf4yMjL/MjIymzIyMokyMjKJMjIyiTIyMoky - MjKJMjIyiTIyMokyMjKJMjIyiTIyMokyMjKJMjIyiTIyMokyMjKJMjIyiTIyMokyMjKJMjIyiTIyMoky - MjKJMjIyiTIyMokyMjKJMjIyiTIyMokyMjKJMjIyiTIyMokyMjKJMjIyiTIyMokyMjKJMjIyiTIyMoky - MjKJMjIyiTIyMokyMjKJMjIyiTIyMokxMTGJMjIyiTIyMokyMjKJMjIyiTIyMokyMjKJMjIyiTIyMoky - MjKJMjIyiTIyMokyMjKJMjIyiTIyMokyMjKJMjIyiTIyMokyMjKJMjIyiTIyMokyMjKJMjIyiTIyMoky - MjKJMjIyiTIyMpsyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MTEx/jIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zExMf4yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8xMTH+MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MTEx/jIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zExMf4yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8xMTH+MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MTEx/jIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zExMf4yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8xMTH+MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MTEx/jIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/jIyMv8yMjL/MjIy/zExMf4yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8xMTH+MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv4yMjLwMjIy/zIyMv8yMjL/MTEx/jIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zExMf4yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy8DIyMsoy - MjL/MjIy/zIyMv8xMTH+MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MTEx/jIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjLKMjIyhjIyMv8yMjL/MjIy/zExMf4yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8xMTH+MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMoYyMjIlMjIy+jIyMv8yMjL/MTEx/jIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zExMf4yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL6MjIyJQAAAAAy - MjKWMjIy/zIyMv8xMTH+MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MTEx/jIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMpYAAAAAAAAAADIyMgsyMjLOMjIy/zExMf4yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8xMTH+MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjLOMjIyCwAAAAAAAAAAAAAAADIyMhgyMjLLMTEx/jIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zExMf4yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIyyzIyMhgAAAAAAAAAAAAAAAAA - AAAAAAAAADIyMgkxMTGGMjIy9DIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MTEx/jIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy9DIyMoYy - MjIJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIWMjIyazIyMqoyMjLNMjIy1zIyMtgy - MjLYMjIy2DIyMtgyMjLYMjIy2DIyMtgyMjLYMjIy2DIyMtgyMjLYMjIy2DIyMtgyMjLYMjIy2DIyMtgy - MjLYMjIy2DIyMtgyMjLYMjIy2DIyMtgyMjLYMjIy2DIyMtgyMjLYMjIy2DIyMtgyMjLYMjIy2DIyMtgy - MjLYMjIy2DIyMtgyMjLYMjIy2DIyMtgxMTHYMjIy2DIyMtgyMjLYMjIy2DIyMtgyMjLYMjIy2DIyMtgy - MjLYMjIy2DIyMtgyMjLYMjIy2DIyMtgyMjLYMjIy2DIyMtgyMjLYMjIy2DIyMtgyMjLYMjIy2DIyMtcy - MjLNMjIyqjIyMmsyMjIWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////AAD/////////////AAD/ - ////////////AAD/////////////AAD/////////////AAD/////////////AAD4AAAAAAAAAAAfAADg - AAAAAAAAAAAHAADAAAAAAAAAAAADAACAAAAAAAAAAAABAACAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAA//////////8AAAAB//////////+AAAAB//////////+AAAAB//////////+AAAAB - //////////+AAAAB//////////+AAAAB//////////+AAAAB//////////+AAAAB//////////+AAAAB - //////////+AAAAB//////////+AAAAB//////////+AAAAB//////////+AAAAB//////////+AAAAB - +AP//AAAf/+AAAAB+AH/+AAAP/+AAAAB/AD/+AAAH/+AAAAB/gB/8AAAH/+AAAAB/wA/8AAAH/+AAAAB - /4Af+AAAH/+AAAAB/8AP+AAAP/+AAAAB/+AH//////+AAAAB//AD//////+AAAAB//gB//////+AAAAB - //wA//////+AAAAB//4Af/////+AAAAB//wA//////+AAAAB//gB//////+AAAAB//AD//////+AAAAB - /+AH//////+AAAAB/8AP//////+AAAAB/4Af//////+AAAAB/wA///////+AAAAB/gB///////+AAAAB - /AD///////+AAAAB+AH///////+AAAAB+AP///////+AAAAB//////////+AAAAB//////////+AAAAB - //////////+AAAAB//////////+AAAAB//////////+AAAAB//////////+AAAAB//////////+AAAAB - //////////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAABAACAAAAAAAAAAAABAADAAAAAAAAAAAADAADg - AAAAAAAAAAAHAAD4AAAAAAAAAAAfAAD/////////////AAD/////////////AAD/////////////AAD/ - ////////////AAD/////////////AAD/////////////AAAoAAAASAAAAJAAAAABACAAAAAAAGBUAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMTEIMTExPzExMWgyMjJ1MTExdjExMXYx - MTF2MTExdjExMXYxMTF2MTExdjExMXYyMjJ2MTExdjExMXYxMTF2MTExdjExMXYxMTF2MTExdjExMXYy - MjJ2MTExdjExMXYxMTF2MTExdjExMXYxMTF2MTExdjExMXYyMjJ2MTExdjExMXYxMTF2MTExdjExMXYx - MTF2MTExdjExMXYxMTF2MjIydjExMXYxMTF2MTExdjExMXYxMTF2MTExdjExMXYxMTF2MjIydjExMXYx - MTF2MTExdjExMXYxMTF2MTExdjExMXYxMTF2MjIydTExMWgxMTE/MTExCAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAMTExDTExMYUxMTHsMTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MTEx/jExMf4x - MTH+MTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4yMjL/MTEx/jExMf4x - MTH+MTEx/jExMf4xMTH+MTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4x - MTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4x - MTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx7DExMYUxMTENAAAAAAAAAAAAAAAAAAAAAAAAAAAx - MTEqMTEx2jExMf4xMTH+MTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4y - MjL/MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MTEx/jExMf4x - MTH+MTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4x - MTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4x - MTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTHaMTExKgAAAAAAAAAAAAAAADIyMh8yMjLmMjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy5jIyMh8AAAAAMjIyATExMcAxMTH+MTEx/jExMf4xMTH+MTEx/jExMf4y - MjL/MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MTEx/jExMf4x - MTH+MTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4yMjL/MTEx/jExMf4x - MTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4x - MTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4x - MTH+MTEx/jExMcAxMTEBMjIySDExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4yMjL9MTEx/TExMf0x - MTH9MTEx/TExMf0xMTH9MTEx/TExMf0yMjL9MTEx/TExMf0xMTH9MTEx/TExMf0xMTH9MTEx/TExMf0y - MjL9MTEx/TExMf0xMTH9MTEx/TExMf0xMTH9MTEx/TExMf0yMjL9MTEx/TExMf0xMTH9MTEx/TExMf0x - MTH9MTEx/TExMf0xMTH9MjIy/TExMf0xMTH9MTEx/TExMf0xMTH9MTEx/TExMf0xMTH9MjIy/TExMf0x - MTH9MTEx/TExMf0xMTH9MTEx/TExMf0xMTH9MjIy/TExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4x - MTFIMjIypTExMf4xMTH+MTEx/jExMf4xMTH+MTExvzExMTkyMjIWMTExFTExMRUxMTEVMTExFTExMRUx - MTEVMTExFTExMRUyMjIVMTExFTExMRUxMTEVMTExFTExMRUxMTEVMTExFTExMRUyMjIVMTExFTExMRUx - MTEVMTExFTExMRUxMTEVMTExFTExMRUyMjIVMTExFTExMRUxMTEVMTExFTExMRUxMTEVMTExFTExMRUx - MTEVMjIyFTExMRUxMTEVMTExFTExMRUxMTEVMTExFTExMRUxMTEVMjIyFTExMRUxMTEVMTExFTExMRUx - MTEVMTExFTExMRUxMTEVMjIyFjExMTkxMTG/MTEx/jExMf4xMTH+MTEx/jExMf4xMTGlMjIy4DExMf4x - MTH+MTEx/jExMf4xMTHfMTExCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAxMTELMTEx3zExMf4xMTH+MTEx/jExMf4xMTHgMjIy+jExMf4xMTH+MTEx/jExMf4x - MTGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAMTExlDExMf4xMTH+MTEx/jExMf4xMTH6MjIy/zExMf4xMTH+MTEx/jExMf4xMTGIAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExiTExMf4x - MTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTGIAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExiTExMf4xMTH+MTEx/jExMf4x - MTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTGIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExiTExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjKJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAMjIyiTIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zExMf4xMTH+MTEx/jExMf4x - MTGIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAMTExiTExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTGIAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExiTExMf4x - MTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTGIAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExiTExMf4xMTH+MTEx/jExMf4x - MTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTGIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExiTExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4x - MTH+MTEx/jExMf4xMTGIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAMTExiTExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4x - MTGIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAMTExiTExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTGIAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAMTExEDExMRUxMTEVMTExFTExMRUyMjIVMTExFTExMQYAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIJMTExFTExMRUx - MTEVMTExFTExMRUxMTEVMTExFTExMRUxMTEVMjIyFTExMRUxMTEVMTExFTExMRUxMTEGAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExiTExMf4x - MTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTGIAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAMTExRDExMfMxMTH9MTEx/TExMf0yMjL9MTEx/TExMcMxMTEOAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExBTExMZgyMjL2MTEx/TExMf0xMTH9MTEx/TExMf0x - MTH9MTEx/TExMf0xMTH9MjIy/TExMf0xMTH9MTEx/TExMf0xMTHxMTExewAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExiTExMf4xMTH+MTEx/jExMf4x - MTH+MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjKJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMkUy - MjL1MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjLEMjIyDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAMjIydzIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/jIyMk8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyiTIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zExMf4x - MTH+MTEx/jExMf4xMTGIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMTFFMTEx9TExMf4y - MjL/MTEx/jExMf4xMTH+MTExxDExMQ4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAMTExuzExMf4yMjL/MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4x - MTH+MTEx/jExMf4xMTH+MTEx/jExMZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAMTExiTExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4x - MTGIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExRTExMfUyMjL/MTEx/jExMf4x - MTH+MTEx/jExMcQxMTEOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExnjExMf4y - MjL/MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4x - MTH+MTEx/jExMXYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAMTExiTExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTGIAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMUYyMjL1MTEx/jExMf4xMTH+MTEx/jExMf4x - MTHDMTExDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExJDExMeYyMjL/MTEx/jExMf4x - MTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTH+MTEx0jExMRAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExiTExMf4x - MTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTGIAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjJGMTEx9TExMf4xMTH+MTEx/jExMf4xMTH+MTExwzExMQ4A - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMRMyMjJjMTExdjExMXYxMTF2MTExdjExMXYx - MTF2MTExdjExMXYxMTF2MjIydjExMXYxMTF2MTExdjExMXUxMTFaMTExCgAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExiTExMf4xMTH+MTEx/jExMf4x - MTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTGIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAMTExRjExMfUxMTH+MTEx/jExMf4xMTH+MTEx/jExMcMyMjIOAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExiTExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4x - MTH+MTEx/jExMf4xMTGIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADExMUYxMTH1MTEx/jExMf4xMTH+MTEx/jExMf4yMjLEMTExDQAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAMTExiTExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4x - MTGIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAx - MTFGMTEx9TExMf4xMTH+MTEx/jExMf4yMjL/MTExwzExMQ0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAMTExiTExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTGIAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExYzExMf4x - MTH+MTEx/jExMf4yMjL/MTEx/jExMasAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExiTExMf4x - MTH+MTEx/jExMf4xMTH+MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjKJAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIhMjIy3zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy5TIyMicAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyiTIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zExMf4xMTH+MTEx/jExMf4xMTGIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAADExMSExMTHfMTEx/jExMf4xMTH+MTEx/jExMf4yMjLlMTExJwAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExiTExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4x - MTH+MTEx/jExMf4xMTGIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAMTExITExMd8xMTH+MTEx/jExMf4xMTH+MTEx/jExMeQyMjInAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAMTExiTExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4x - MTGIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIhMTEx3zExMf4x - MTH+MTEx/jExMf4xMTH+MTEx5DExMScAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAMTExiTExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTGIAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMSIyMjLfMTEx/jExMf4xMTH+MTEx/jExMf4x - MTHkMTExJwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExiTExMf4x - MTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTGIAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAMTExIjExMd8yMjL/MTEx/jExMf4xMTH+MTEx/jExMeQxMTEoAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExiTExMf4xMTH+MTEx/jExMf4x - MTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTGIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAx - MTEiMTEx3zExMf4yMjL/MTEx/jExMf4xMTH+MTEx5DExMScAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExiTExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4x - MTH+MTEx/jExMf4xMTGIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMSIxMTHfMTEx/jExMf4y - MjL/MTEx/jExMf4xMTHkMTExJwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAMTExiTExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4x - MTGIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExIjExMd8xMTH+MTEx/jExMf4yMjL/MTEx/jExMeQx - MTEnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAMTExiTExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTGIAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAMTExMzExMU0xMTFNMTExTTExMU0yMjJNMTExTTExMR8AAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExiTExMf4x - MTH+MTEx/jExMf4xMTH+MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjKJAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyiTIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zExMf4xMTH+MTEx/jExMf4xMTGIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExiTExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4x - MTH+MTEx/jExMf4xMTGIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAMTExiTExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4x - MTGIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAMTExiTExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTGIAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExiTExMf4x - MTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTGIAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExiTExMf4xMTH+MTEx/jExMf4x - MTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTGIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExiTExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4x - MTH+MTEx/jExMf4xMTG2MTExYjExMWIyMjJiMTExYjExMWIxMTFiMTExYjExMWIxMTFiMTExYjExMWIy - MjJiMTExYjExMWIxMTFiMTExYjExMWIxMTFiMTExYjExMWIyMjJiMTExYjExMWIxMTFiMTExYjExMWIx - MTFiMTExYjExMWIyMjJiMTExYjExMWIxMTFiMTExYjExMWIxMTFiMTExYjExMWIxMTFiMjIyYjExMWIx - MTFiMTExYjExMWIxMTFiMTExYjExMWIxMTFiMjIyYjExMWIxMTFiMTExYjExMWIxMTFiMTExYjExMWIx - MTFiMjIyYjExMWIxMTFiMTExtjExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4x - MTH+MTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4yMjL/MTEx/jExMf4x - MTH+MTEx/jExMf4xMTH+MTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4y - MjL/MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4x - MTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4x - MTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4yMjL/MTEx/jExMf4x - MTH+MTEx/jExMf4xMTH+MTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4y - MjL/MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MTEx/jExMf4x - MTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4x - MTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4x - MTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MTEx/jExMf4x - MTH+MTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4yMjL/MTEx/jExMf4x - MTH+MTEx/jExMf4xMTH+MTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4x - MTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4x - MTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4x - MTH+MTEx/jExMf4xMTH+MTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4y - MjL/MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MTEx/jExMf4x - MTH+MTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4x - MTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4x - MTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MjIy+jExMf4xMTH+MTEx/jExMf4x - MTH+MTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4yMjL/MTEx/jExMf4x - MTH+MTEx/jExMf4xMTH+MTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4y - MjL/MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4x - MTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4x - MTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH6MjIy4DExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4y - MjL/MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MTEx/jExMf4x - MTH+MTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4yMjL/MTEx/jExMf4x - MTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4x - MTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4x - MTH+MTEx/jExMf4xMTHgMjIypTExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4yMjL/MTEx/jExMf4x - MTH+MTEx/jExMf4xMTH+MTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4y - MjL/MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MTEx/jExMf4x - MTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4x - MTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4x - MTGlMjIySDExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MTEx/jExMf4x - MTH+MTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4yMjL/MTEx/jExMf4x - MTH+MTEx/jExMf4xMTH+MTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4x - MTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4x - MTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTFIMjIyATExMcAx - MTH+MTEx/jExMf4xMTH+MTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4y - MjL/MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MTEx/jExMf4x - MTH+MTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4x - MTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4x - MTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMcAxMTEBAAAAADIyMh8yMjLmMjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy5jIyMh8AAAAAAAAAAAAAAAAxMTEqMTEx2jExMf4xMTH+MTEx/jExMf4y - MjL/MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MTEx/jExMf4x - MTH+MTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4yMjL/MTEx/jExMf4x - MTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4x - MTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4x - MTHaMTExKgAAAAAAAAAAAAAAAAAAAAAAAAAAMTExDTExMYUxMTHsMTEx/jExMf4yMjL/MTEx/jExMf4x - MTH+MTEx/jExMf4xMTH+MTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4y - MjL/MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4yMjL/MTEx/jExMf4xMTH+MTEx/jExMf4x - MTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4x - MTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MjIy/zExMf4xMTH+MTEx7DExMYUxMTENAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMTEIMTExPzExMWgyMjJ1MTExdjExMXYxMTF2MTExdjExMXYx - MTF2MTExdjExMXYyMjJ2MTExdjExMXYxMTF2MTExdjExMXYxMTF2MTExdjExMXYyMjJ2MTExdjExMXYx - MTF2MTExdjExMXYxMTF2MTExdjExMXYyMjJ2MTExdjExMXYxMTF2MTExdjExMXYxMTF2MTExdjExMXYx - MTF2MjIydjExMXYxMTF2MTExdjExMXYxMTF2MTExdjExMXYxMTF2MjIydjExMXYxMTF2MTExdjExMXYx - MTF2MTExdjExMXYxMTF2MjIydTExMWgxMTE/MTExCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////// - AAAA////////////AAAA////////////AAAA////////////AAAA////////////AAAA+AAAAAAAAAAf - AAAA4AAAAAAAAAAHAAAAwAAAAAAAAAADAAAAgAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAf////////+AAAAAA//////////AAAAAA//////////AAAAAA//////////A - AAAAA//////////AAAAAA//////////AAAAAA//////////AAAAAA//////////AAAAAA//////////A - AAAAA//////////AAAAAA//////////AAAAAA//////////AAAAAA/AP/+AAH//AAAAAA/AH/4AAD//A - AAAAA/gD/4AAB//AAAAAA/wB/4AAB//AAAAAA/4A/4AAB//AAAAAA/8Af4AAB//AAAAAA/+AP8AAD//A - AAAAA//AH//////AAAAAA//gD//////AAAAAA//wB//////AAAAAA//4B//////AAAAAA//wB//////A - AAAAA//gD//////AAAAAA//AH//////AAAAAA/+AP//////AAAAAA/8Af//////AAAAAA/4A///////A - AAAAA/wB///////AAAAAA/gD///////AAAAAA/AH///////AAAAAA/AP///////AAAAAA//////////A - AAAAA//////////AAAAAA//////////AAAAAA//////////AAAAAA//////////AAAAAA//////////A - AAAAA//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAABAAAAwAAAAAAAAAADAAAA4AAAAAAAAAAH - AAAA+AAAAAAAAAAfAAAA////////////AAAA////////////AAAA////////////AAAA//////////// - AAAA////////////AAAAKAAAAEAAAACAAAAAAQAgAAAAAAAAQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIFMjIyEzIyMhQyMjIUMjIyFDIyMhQyMjIUMjIyFDIyMhQy - MjIUMjIyFDIyMhQyMjIUMjIyFDIyMhQyMjIUMjIyFDIyMhQyMjIUMjIyFDIyMhQyMjIUMjIyFDIyMhQy - MjIUMjIyFDIyMhQyMjIUMjIyFDIyMhQyMjIUMjIyFDIyMhQyMjIUMjIyFDIyMhQyMjIUMjIyFDIyMhQy - MjIUMjIyFDIyMhQyMjIUMjIyFDIyMhQyMjIUMjIyFDIyMhQyMjIUMjIyFDIyMhMyMjIFAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyDjIyMnkyMjLRMjIy/DIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/DIyMtEyMjJ5MjIyDgAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyPTIyMuUyMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMuUyMjI9AAAAAAAAAAAAAAAAMjIyOzIyMvYy - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy9jIyMjsA - AAAAMjIyCzIyMuEyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjLhMjIyCzIyMm4yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMvcyMjLaMjIy2DIyMtgy - MjLYMjIy2DIyMtgyMjLYMjIy2DIyMtgyMjLYMjIy2DIyMtgyMjLYMjIy2DIyMtgyMjLYMjIy2DIyMtgy - MjLYMjIy2DIyMtgyMjLYMjIy2DIyMtgyMjLYMjIy2DIyMtgyMjLYMjIy2DIyMtgyMjLYMjIy2DIyMtgy - MjLYMjIy2DIyMtgyMjLYMjIy2DIyMtgyMjLYMjIy2DIyMtgyMjLYMjIy2DIyMtgyMjLYMjIy2DIyMtgy - MjLYMjIy2jIyMvcyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMm4yMjLDMjIy/zIyMv8yMjL/MjIy/zIyMrYy - MjIRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIRMjIytjIyMv8yMjL/MjIy/zIyMv8yMjLDMjIy8DIyMv8y - MjL/MjIy/zIyMvwyMjIYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMhgyMjL8MjIy/zIyMv8y - MjL/MjIy8DIyMv4yMjL/MjIy/zIyMv8yMjLsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAMjIy7DIyMv8yMjL/MjIy/zIyMv4yMjL/MjIy/zIyMv8yMjL/MjIy6wAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAADIyMusyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMusA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjLrMjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjLrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIy6zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADIyMusyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMusAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjLrMjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjLrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIy6zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMusy - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMusAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAyMjLrMjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjLrAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIy6zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy6wAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyAzIyMp0yMjLYMjIy2DIyMtgyMjLYMjIy2DIyMnMA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjJNMjIyxDIyMtgy - MjLYMjIy2DIyMtgyMjLYMjIy2DIyMtgyMjLYMjIy2DIyMtgyMjLYMjIy2DIyMtAyMjKAMjIyAwAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMusyMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMusAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjINMjIyxDIyMv8y - MjL/MjIy/zIyMv8yMjL+MjIydAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAy - MjIsMjIy+zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMnYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAy - MjLrMjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjLrAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADIyMg0yMjLEMjIy/zIyMv8yMjL/MjIy/zIyMv4yMjJ0AAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAMjIybjIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjK8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAMjIy6zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy6wAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyDTIyMsQyMjL/MjIy/zIyMv8yMjL/MjIy/jIyMnQA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMkQyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIykgAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMusyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMusAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjINMjIyxDIyMv8y - MjL/MjIy/zIyMv8yMjL+MjIydAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyhDIyMvgy - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL+MjIyuzIyMhEA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjLrMjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjLrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADIyMg0yMjLEMjIy/zIyMv8yMjL/MjIy/zIyMv4yMjJ0AAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAyMjIGMjIyFDIyMhQyMjIUMjIyFDIyMhQyMjIUMjIyFDIyMhQyMjIUMjIyFDIyMhQy - MjIUMjIyDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAMjIy6zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy6wAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyDTIyMsQyMjL/MjIy/zIyMv8yMjL/MjIy/jIyMnQA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAADIyMusyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMusA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjINMjIyxDIyMv8y - MjL/MjIy/zIyMv8yMjL+MjIycwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjLrMjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjLrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADIyMg0yMjLSMjIy/zIyMv8yMjL/MjIy/zIyMv4yMjJmAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIy6zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjJOMjIy+TIyMv8yMjL/MjIy/zIyMv8yMjLeMjIyHgAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADIyMusyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMusAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjJOMjIy+TIyMv8yMjL/MjIy/zIyMv8y - MjLeMjIyHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjLrMjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjLrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjJOMjIy+TIyMv8y - MjL/MjIy/zIyMv8yMjLdMjIyHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIy6zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAy - MjJOMjIy+TIyMv8yMjL/MjIy/zIyMv8yMjLdMjIyHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMusy - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMusAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAyMjJPMjIy+TIyMv8yMjL/MjIy/zIyMv8yMjLdMjIyHgAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAyMjLrMjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjLrAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjJPMjIy+TIyMv8yMjL/MjIy/zIyMv8yMjLdMjIyHgAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIy6zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjJPMjIy+TIyMv8yMjL/MjIy/zIyMv8y - MjLdMjIyHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMusyMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMusAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjJPMjIy+TIyMv8y - MjL/MjIy/zIyMv8yMjLdMjIyHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAy - MjLrMjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjLrAAAAAAAAAAAAAAAAAAAAAAAAAAAy - MjIDMjIyWzIyMmEyMjJhMjIyYTIyMmEyMjJhMjIyHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAMjIy6zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy6wAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMusyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMusAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjLrMjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjLrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAMjIy6zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy6wAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAADIyMusyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMusA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjLrMjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjLrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIy6zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy7zIyMjoyMjI6MjIyOjIyMjoyMjI6MjIyOjIyMjoy - MjI6MjIyOjIyMjoyMjI6MjIyOjIyMjoyMjI6MjIyOjIyMjoyMjI6MjIyOjIyMjoyMjI6MjIyOjIyMjoy - MjI6MjIyOjIyMjoyMjI6MjIyOjIyMjoyMjI6MjIyOjIyMjoyMjI6MjIyOjIyMjoyMjI6MjIyOjIyMjoy - MjI6MjIyOjIyMjoyMjI6MjIyOjIyMjoyMjI6MjIyOjIyMjoyMjI6MjIyOjIyMjoyMjI6MjIyOjIyMjoy - MjI6MjIyOjIyMu8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv4yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv4yMjLwMjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjLwMjIywzIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIywzIyMm4yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMm4yMjILMjIy4TIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMuEyMjILAAAAADIyMjsy - MjL2MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMvYy - MjI7AAAAAAAAAAAAAAAAMjIyPTIyMuUyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMuUyMjI9AAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIOMjIyeTIyMtEyMjL8MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL8MjIy0TIyMnkyMjIOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAMjIyBTIyMhMyMjIUMjIyFDIyMhQyMjIUMjIyFDIyMhQyMjIUMjIyFDIyMhQyMjIUMjIyFDIyMhQy - MjIUMjIyFDIyMhQyMjIUMjIyFDIyMhQyMjIUMjIyFDIyMhQyMjIUMjIyFDIyMhQyMjIUMjIyFDIyMhQy - MjIUMjIyFDIyMhQyMjIUMjIyFDIyMhQyMjIUMjIyFDIyMhQyMjIUMjIyFDIyMhQyMjIUMjIyFDIyMhQy - MjIUMjIyFDIyMhQyMjIUMjIyFDIyMhQyMjITMjIyBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/ - //////////////////////////////////////////wAAAAAAAA/4AAAAAAAAAfAAAAAAAAAA4AAAAAA - AAABAAAAAAAAAAAAAAAAAAAAAAH///////+AA////////8AH////////4Af////////gB////////+AH - ////////4Af////////gB////////+AH////////4Af////////gB////////+AH////////4AfAP/wA - Af/gB+Af+AAB/+AH8A/4AAH/4Af4B/gAAf/gB/wD/AAB/+AH/gH+AAf/4Af/AP/////gB/+Af////+AH - /8A/////4Af/wD/////gB/+Af////+AH/wD/////4Af+Af/////gB/wD/////+AH+Af/////4AfwD/// - ///gB+Af/////+AHwD//////4Af////////gB////////+AH////////4Af////////gB////////+AH - ////////4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAHAAAAAAAAAA+AAAAAAAAAH/AAAAAAAAD// - /////////////////////////////////////////ygAAAAwAAAAYAAAAAEAIAAAAAAAgCUAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAo - KCgDMTExMjExMUwyMjJOMjIyTjExMU4yMjJOMjIyTjIyMk4xMTFOMjIyTjExMU4yMjJOMjIyTjExMU4y - MjJOMjIyTjExMU4yMjJOMjIyTjExMU4yMjJOMjIyTjExMU4yMjJOMjIyTjExMU4yMjJOMjIyTjIyMk4x - MTFOMjIyTjIyMk4xMTFOMjIyTjIyMk4xMTFOMjIyTjIyMk4xMTFMMTExMikpKQMAAAAAAAAAAAAAAAAA - AAAAAAAAADExMWEyMjLjMjIy/zExMf4yMjL/MjIy/zExMf4yMjL/MjIy/zIyMv8xMTH+MjIy/zExMf4y - MjL/MjIy/zExMf4yMjL/MjIy/zExMf4yMjL/MjIy/zExMf4yMjL/MjIy/zExMf4yMjL/MjIy/zExMf4y - MjL/MjIy/zIyMv8xMTH+MjIy/zIyMv8xMTH+MjIy/zIyMv8xMTH+MjIy/zIyMv8xMTH+MjIy/zIyMuMx - MTFhAAAAAAAAAAAAAAAAMTExhjExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4x - MTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4x - MTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4x - MTH+MTEx/jExMf4xMTH+MTExhgAAAAAyMjJEMjIy/jExMf4yMjL/MjIy/zExMf4yMjL/MjIy/zExMf4y - MjL/MjIy/zIyMv8xMTH+MjIy/zExMf4yMjL/MjIy/zExMf4yMjL/MjIy/zExMf4yMjL/MjIy/zExMf4y - MjL/MjIy/zExMf4yMjL/MjIy/zExMf4yMjL/MjIy/zIyMv8xMTH+MjIy/zIyMv8xMTH+MjIy/zIyMv8x - MTH+MjIy/zIyMv8xMTH+MjIy/zIyMv8xMTH+MjIy/jExMUQyMjK1MjIy/zExMf4yMjL/MjIyuzExMWYy - MjJiMjIyYjExMWIyMjJiMjIyYjIyMmIxMTFiMjIyYjExMWIyMjJiMjIyYjExMWIyMjJiMjIyYjExMWIy - MjJiMjIyYjExMWIyMjJiMjIyYjExMWIyMjJiMjIyYjExMWIyMjJiMjIyYjIyMmIxMTFiMjIyYjIyMmIx - MTFiMjIyYjIyMmIxMTFiMjIyYjIyMmIxMTFmMjIyuzIyMv8xMTH+MjIy/zExMbUxMTHvMTEx/jExMf4x - MTHbMDAwBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi4uBTExMdsxMTH+MTEx/jExMe8y - MjL+MjIy/zExMf4yMjKxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMrEx - MTH+MjIy/zExMf4yMjL/MjIy/zExMf4yMjKwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADIyMrAxMTH+MjIy/zExMf4yMjL/MjIy/zExMf4yMjKwAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAADIyMrAxMTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTGwAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMbAxMTH+MTEx/jExMf4yMjL/MjIy/zExMf4y - MjKwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMrAxMTH+MjIy/zExMf4x - MTH+MTEx/jExMf4xMTGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMbAx - MTH+MTEx/jExMf4yMjL/MjIy/zExMf4yMjKwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADIyMrAxMTH+MjIy/zExMf4yMjL/MjIy/zExMf4yMjKwAAAAAAAAAAAAAAAAAAAAADExMUMy - MjJiMjIyYjIyMmIxMTFeLy8vBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKioqATExMUgy - MjJiMjIyYjExMWIyMjJiMjIyYjExMWIyMjJiMjIyYjIyMmIxMTFWMDAwCgAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAADIyMrAxMTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTGwAAAAAAAAAAAA - AAAAAAAAADExMR4xMTHdMTEx/jExMf4xMTH+MTExsC8vLwYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAMTExhjExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTExwAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMbAxMTH+MTEx/jExMf4yMjL/MjIy/zExMf4y - MjKwAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIeMjIy3TIyMv8xMTH+MjIy/zExMbAvLy8GAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAMjIy0DExMf4yMjL/MjIy/zExMf4yMjL/MjIy/zExMf4yMjL/MjIy/zIyMv8x - MTH+MjIy/S0tLQ0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMrAxMTH+MjIy/zExMf4y - MjL/MjIy/zExMf4yMjKwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExHzIyMt0xMTH+MjIy/zExMf4y - MjKwLy8vBgAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyeTExMf4yMjL/MjIy/zExMf4yMjL/MjIy/zExMf4y - MjL/MjIy/zIyMv8xMTH+MjIyswAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMrAx - MTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMR8x - MTHeMTEx/jExMf4xMTH+MTExsC8vLwYAAAAAAAAAAAAAAAAAAAAAAAAAADExMTQxMTFOMTExTjExMU4x - MTFOMTExTjExMU4xMTFOMTExTjExMU4xMTFCLy8vBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADExMbAxMTH+MTEx/jExMf4yMjL/MjIy/zExMf4yMjKwAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAxMTEfMjIy3TExMf4yMjL/MjIy/zExMbAvLy8GAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAADIyMrAxMTH+MjIy/zExMf4yMjL/MjIy/zExMf4yMjKwAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExHzExMd0yMjL/MjIy/zExMf4yMjKwLy8vBgAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMrAxMTH+MjIy/zExMf4xMTH+MTEx/jExMf4x - MTGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExDjExMcgxMTH+MTEx/jExMf4x - MTHLMTExDwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMbAxMTH+MTEx/jExMf4y - MjL/MjIy/zExMf4yMjKwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAPMjIyxzExMf4y - MjL/MjIy/zExMcsxMTERAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMrAx - MTH+MjIy/zExMf4yMjL/MjIy/zExMf4yMjKwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMA8x - MTHHMjIy/zExMf4yMjL/MjIyyzExMREAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADIyMrAxMTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTGwAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAMDAwDzExMccxMTH+MTEx/jExMf4xMTHLMTExEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAADExMbAxMTH+MTEx/jExMf4yMjL/MjIy/zExMf4yMjKwAAAAAAAAAAAA - AAAAAAAAAAAAAAAwMDAPMjIyxzIyMv8xMTH+MjIy/zExMcsxMTERAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMrAxMTH+MjIy/zExMf4yMjL/MjIy/zExMf4y - MjKwAAAAAAAAAAAAAAAAAAAAADAwMA8yMjLHMjIy/zIyMv8xMTH+MjIyyzExMREAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMrAxMTH+MjIy/zExMf4x - MTH+MTEx/jExMf4xMTGwAAAAAAAAAAAAAAAAAAAAADExMVMxMTGIMTExiDExMYgxMTGEMTExEQAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMbAx - MTH+MTEx/jExMf4yMjL/MjIy/zExMf4yMjKwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAADIyMrAxMTH+MjIy/zExMf4yMjL/MjIy/zExMf4yMjKwAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAADIyMrAxMTH+MjIy/zExMf4yMjL/MjIy/zExMf4yMjKwAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMrAxMTH+MjIy/zExMf4xMTH+MTEx/jExMf4x - MTGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMbAxMTH+MTEx/jExMf4y - MjL/MjIy/zExMf4yMjKwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMrAx - MTH+MjIy/zExMf4yMjL/MjIy/zExMf4yMjL4MjIy6zExMesyMjLrMjIy6zExMesyMjLrMjIy6zIyMusx - MTHrMjIy6zExMesyMjLrMjIy6zExMesyMjLrMjIy6zExMesyMjLrMjIy6zExMesyMjLrMjIy6zExMesy - MjLrMjIy6zExMesyMjLrMjIy6zIyMusxMTHrMjIy6zIyMusxMTHrMjIy6zIyMusxMTHrMjIy6zIyMusx - MTHrMjIy6zIyMvgxMTH+MjIy/zExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4x - MTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4x - MTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4x - MTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4yMjL/MjIy/zExMf4yMjL/MjIy/zExMf4y - MjL/MjIy/zExMf4yMjL/MjIy/zIyMv8xMTH+MjIy/zExMf4yMjL/MjIy/zExMf4yMjL/MjIy/zExMf4y - MjL/MjIy/zExMf4yMjL/MjIy/zExMf4yMjL/MjIy/zExMf4yMjL/MjIy/zIyMv8xMTH+MjIy/zIyMv8x - MTH+MjIy/zIyMv8xMTH+MjIy/zIyMv8xMTH+MjIy/zIyMv8xMTH+MjIy/zExMf4yMjL+MjIy/zExMf4y - MjL/MjIy/zExMf4yMjL/MjIy/zExMf4yMjL/MjIy/zIyMv8xMTH+MjIy/zExMf4yMjL/MjIy/zExMf4y - MjL/MjIy/zExMf4yMjL/MjIy/zExMf4yMjL/MjIy/zExMf4yMjL/MjIy/zExMf4yMjL/MjIy/zIyMv8x - MTH+MjIy/zIyMv8xMTH+MjIy/zIyMv8xMTH+MjIy/zIyMv8xMTH+MjIy/zIyMv8xMTH+MjIy/zExMf4x - MTHvMTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4x - MTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4x - MTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4x - MTH+MTEx/jExMe8yMjK1MjIy/zExMf4yMjL/MjIy/zExMf4yMjL/MjIy/zExMf4yMjL/MjIy/zIyMv8x - MTH+MjIy/zExMf4yMjL/MjIy/zExMf4yMjL/MjIy/zExMf4yMjL/MjIy/zExMf4yMjL/MjIy/zExMf4y - MjL/MjIy/zExMf4yMjL/MjIy/zIyMv8xMTH+MjIy/zIyMv8xMTH+MjIy/zIyMv8xMTH+MjIy/zIyMv8x - MTH+MjIy/zIyMv8xMTH+MjIy/zExMbQyMjJEMjIy/jExMf4yMjL/MjIy/zExMf4yMjL/MjIy/zExMf4y - MjL/MjIy/zIyMv8xMTH+MjIy/zExMf4yMjL/MjIy/zExMf4yMjL/MjIy/zExMf4yMjL/MjIy/zExMf4y - MjL/MjIy/zExMf4yMjL/MjIy/zExMf4yMjL/MjIy/zIyMv8xMTH+MjIy/zIyMv8xMTH+MjIy/zIyMv8x - MTH+MjIy/zIyMv8xMTH+MjIy/zIyMv8xMTH+MjIy/jExMUQAAAAAMTExhjExMf4xMTH+MTEx/jExMf4x - MTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4x - MTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4x - MTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTEx/jExMf4xMTH+MTExhgAAAAAAAAAAAAAAADExMWEy - MjLjMjIy/zExMf4yMjL/MjIy/zExMf4yMjL/MjIy/zIyMv8xMTH+MjIy/zExMf4yMjL/MjIy/zExMf4y - MjL/MjIy/zExMf4yMjL/MjIy/zExMf4yMjL/MjIy/zExMf4yMjL/MjIy/zExMf4yMjL/MjIy/zIyMv8x - MTH+MjIy/zIyMv8xMTH+MjIy/zIyMv8xMTH+MjIy/zIyMv8xMTH+MjIy/zIyMuMxMTFhAAAAAAAAAAAA - AAAAAAAAAAAAAAAtLS0DMjIyMjExMUwyMjJOMjIyTjExMU4yMjJOMjIyTjIyMk4xMTFOMjIyTjExMU4y - MjJOMjIyTjExMU4yMjJOMjIyTjExMU4yMjJOMjIyTjExMU4yMjJOMjIyTjExMU4yMjJOMjIyTjExMU4y - MjJOMjIyTjIyMk4xMTFOMjIyTjIyMk4xMTFOMjIyTjIyMk4xMTFOMjIyTjIyMk4xMTFMMjIyMi4uLgMA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////8AAP////// - /wAA////////AADgAAAAAAcAAMAAAAAAAwAAgAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAB//////gAAAP - //////AAAA//////8AAAD//////wAAAP//////AAAA//////8AAAD//////wAAAP//////AAAA8D/AAf - 8AAADwH8AB/wAAAPgPwAD/AAAA/AfAAf8AAAD+A+AB/wAAAP8B////AAAA/4D///8AAAD/gP///wAAAP - 8B////AAAA/gP///8AAAD8B////wAAAPgP////AAAA8B////8AAADwP////wAAAP//////AAAA////// - 8AAAD//////wAAAP//////AAAA//////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAEAAMAAAAAAAwAA4AAAAAAHAAD///////8AAP////// - /wAA////////AAAoAAAAIAAAAEAAAAABACAAAAAAAIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAbGxsDLS0tUjIyMoUyMjKJMjIyiTIyMokyMjKJMjIyiTIyMokyMjKJMjIyiTIyMoky - MjKJMjIyiTIyMokyMjKJMjIyiTIyMokyMjKJMjIyiTIyMokyMjKJMjIyiTIyMokyMjKJMjIyiTIyMoky - MjKFLi4uUh0dHQMAAAAAIyMjDjIyMsYyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIyxiYmJg4yMjKWMjIy/zIyMv8yMjLzMjIy6zIyMusyMjLrMjIy6zIyMusy - MjLrMjIy6zIyMusyMjLrMjIy6zIyMusyMjLrMjIy6zIyMusyMjLrMjIy6zIyMusyMjLrMjIy6zIyMusy - MjLrMjIy6zIyMusyMjLrMjIy8zIyMv8yMjL/MjIyljIyMuwyMjL/MjIysiMjIwQAAAAAAAAAAAAAAAAA - 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 - JSUHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAC4uLnUyMjL/MjIy/zIyMv8yMjL/MjIydQAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi4udTIyMv8yMjL/MjIy/zIyMv8yMjJ1AAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuLi51MjIy/zIyMv8yMjL/MjIy/zIyMnUA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8vL3UyMjL/MjIy/zIyMv8y - MjL/MjIyyjIyMpwyMjKcMjIynDIyMpwyMjKcMjIynDIyMpwyMjKcMjIynDIyMpwyMjKcMjIynDIyMpwy - MjKcMjIynDIyMpwyMjKcMjIynDIyMpwyMjKcMjIynDIyMpwyMjKcMjIynDIyMpwyMjKcMjIyyjIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL+MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/jIyMuwyMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjLsMjIyljIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMpYlJSUOMjIyxjIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjLGKCgoDgAAAAAeHh4DMDAwUjIyMoUy - MjKJMjIyiTIyMokyMjKJMjIyiTIyMokyMjKJMjIyiTIyMokyMjKJMjIyiTIyMokyMjKJMjIyiTIyMoky - MjKJMjIyiTIyMokyMjKJMjIyiTIyMokyMjKJMjIyiTIyMokyMjKFMDAwUiAgIAMAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAP//////////gAAAAQAAAAAAAAAAD///8B////gf///4H///+B////gf///4GDwA+BwcAPge - DgD4Hwf/+B+H//gfB//4Hg//+Bwf//gYP//4H///+B////gf///4AAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAgAAAAf//////////KAAAABgAAAAwAAAAAQAgAAAAAABgCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBgYHxkZGScZGRknGRkZJxkZGScZ - GRknGRkZJxkZGScZGRknGRkZJxkZGScZGRknGRkZJxkZGScZGRknGRkZJxkZGScZGRknGRkZJxgYGB8A - AAAAAAAAACEhISExMTHQMTEx/jIyMv8xMTH+MTEx/jIyMv8xMTH+MTEx/jIyMv8xMTH+MjIy/zExMf4x - MTH+MTEx/jIyMv8xMTH+MTEx/jIyMv8xMTH+MTEx/jIyMv8xMTHQIyMjITIyMr0yMjL/MjIyyDIyMrAy - MjKwMjIysDIyMrAyMjKwMjIysDIyMrAyMjKwMjIysDIyMrAyMjKwMjIysDIyMrAyMjKwMjIysDIyMrAy - MjKwMjIysDIyMsgyMjL/MjIyvTIyMvsxMTHiGBgYAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYWFgExMTHiMTEx+zIyMv8x - MTHXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMTHXMTEx/jIyMv8yMjLXAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAy - MjLXMjIy/zIyMv8xMTHXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMTHXMTEx/jIyMv8xMTHXAAAAAAAAAAAx - MTFoMTExsDExMYUSEhIBAAAAAAAAAAAAAAAAMDAwczExMbAxMTGwMTExsDIyMrAxMTGtJiYmMwAAAAAA - AAAAAAAAAAAAAAAxMTHXMTEx/jIyMv8yMjLXAAAAAAAAAAAYGBgHMTExtjIyMv8xMTGZEhISAQAAAAAA - AAAAMjIy0TIyMv8yMjL/MjIy/zIyMv8yMjL/Li4ubwAAAAAAAAAAAAAAAAAAAAAyMjLXMjIy/zIyMv8x - MTHXAAAAAAAAAAAAAAAAGBgYBzIyMrYxMTH+MTExmRISEgEAAAAAGBgYDRsbGycbGxsnGxsbJxsbGycb - GxskEBAQAQAAAAAAAAAAAAAAAAAAAAAxMTHXMTEx/jIyMv8yMjLXAAAAAAAAAAAAAAAAAAAAACIiIgsy - MjLpMjIy/zExMWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAy - MjLXMjIy/zIyMv8xMTHXAAAAAAAAAAAAAAAAExMTAzExMacxMTH+MTExqhcXFwQAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMTHXMTEx/jIyMv8xMTHXAAAAAAAAAAAT - ExMDMTExpzIyMv8xMTGpFxcXBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAxMTHXMTEx/jIyMv8xMTHXAAAAAAAAAAAxMTFsMTExwzExMZgXFxcEAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMTHXMTEx/jIyMv8y - MjLXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjLXMjIy/zIyMv8xMTHXAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAx - MTHXMTEx/jIyMv8xMTHpKioqdScnJ3UnJyd1JycndScnJ3UnJyd1JycndScnJ3UnJyd1JycndScnJ3Un - Jyd1JycndScnJ3UnJyd1JycndScnJ3UnJyd1JycndSkpKXUxMTHpMTEx/jIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMvsxMTH+MTEx/jIyMv8xMTH+MTEx/jIyMv8xMTH+MTEx/jIyMv8x - MTH+MjIy/zExMf4xMTH+MTEx/jIyMv8xMTH+MTEx/jIyMv8xMTH+MTEx/jIyMv8xMTH+MTEx+zIyMr0x - MTH+MTEx/jIyMv8xMTH+MTEx/jIyMv8xMTH+MTEx/jIyMv8xMTH+MjIy/zExMf4xMTH+MTEx/jIyMv8x - MTH+MTEx/jIyMv8xMTH+MTEx/jIyMv8xMTH+MTExvSMjIyEyMjLQMjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjLQJSUlIQAAAAAAAAAAGxsbHxsbGycbGxsnGxsbJxsbGycbGxsnGxsbJxsbGycbGxsnGxsbJxsbGycb - GxsnGxsbJxsbGycbGxsnGxsbJxsbGycbGxsnGxsbJxsbGx8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAP///wDAAAMAAAAAAAAAAAAf//gAP//8AD///AA///wAMOA8ADBgPAA4 - IDwAPD/8ADg//AAwf/wAMP/8AD///AA///wAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAMA////ACgAAAAQ - AAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHBwcNjAwMLUyMjLEMjIyxDIyMsQy - MjLEMjIyxDIyMsQyMjLEMjIyxDIyMsQyMjLEMjIyxDIyMsQxMTG1Hh4eNjIyMuAuLi6qIyMjdSMjI3Uj - IyN1IyMjdSMjI3UjIyN1IyMjdSMjI3UjIyN1IyMjdSMjI3UjIyN1LS0tqjIyMuAyMjL+GRkZOgAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXFzoyMjL+MjIy/xkZGToA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXFxc6MjIy/zIyMv8Z - GRk6ERERCiIiInIdHR07AAAAAAAAAAAZGRkzIiIidSIiInUiIiJ1HBwcPAAAAAAAAAAAFxcXOjIyMv8y - MjL/GRkZOgAAAAAmJiZXMjIy8iMjI0UAAAAAJycnYzIyMsQyMjLEMjIyxCwsLHIAAAAAAAAAABcXFzoy - MjL/MjIy/xkZGToAAAAAAAAAACsrK2wyMjL2HR0dLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX - Fxc6MjIy/zIyMv8ZGRk6AAAAABUVFRkxMTHXLi4unAoKCgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAFxcXOjIyMv8yMjL/GRkZOhEREQoxMTGwLi4ulAoKCgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAABcXFzoyMjL/MjIy/xkZGToAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAXFxc6MjIy/zIyMv8mJiZ3GhoaThoaGk4aGhpOGhoaThoaGk4aGhpOGhoaThoaGk4a - GhpOGhoaThoaGk4aGhpOJSUldzIyMv8yMjL+MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL+MjIy4DIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8y - MjL/MjIy/zIyMv8yMjL/MjIy/zIyMv8yMjL/MjIy4B4eHjYxMTG1MjIyxDIyMsQyMjLEMjIyxDIyMsQy - MjLEMjIyxDIyMsQyMjLEMjIyxDIyMsQyMjLEMTExtR8fHzYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAP/wAAD/8AAAG - DAAAIgwAADH8AAAh/AAAA/wAAD/8AAAAAAAAAAAAAAAAAAAAAAAA//8AAA== - - - \ No newline at end of file diff --git a/ShoalShell.PlugIns.Plot/Device/FormImagePlotDevice.vb b/ShoalShell.PlugIns.Plot/Device/FormImagePlotDevice.vb deleted file mode 100644 index 79d0ef162..000000000 --- a/ShoalShell.PlugIns.Plot/Device/FormImagePlotDevice.vb +++ /dev/null @@ -1,24 +0,0 @@ -Public Class FormImagePlotDevice - - Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles PictureBox1.Click - - End Sub - - Private Sub AboutToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AboutToolStripMenuItem.Click - MsgBox(My.Application.Info.Version.ToString, MsgBoxStyle.Information) - End Sub - - Private Sub CloseToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles CloseToolStripMenuItem.Click - Me.Close() - End Sub - - Private Sub SaveAsToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SaveAsToolStripMenuItem.Click - Using sf = New SaveFileDialog With {.FileName = "ImageResource.png", .DefaultExt = "*.png"} - sf.Filter = "Bitmap(*.bmp)|*.bmp|Jpeg Image(*.jpg, *.jpeg)|*.jpg*.jpeg|Portable Network Graphic(*.png)|*.png" - - If sf.ShowDialog = System.Windows.Forms.DialogResult.OK Then - Call PictureBox1.BackgroundImage.Save(sf.FileName) - End If - End Using - End Sub -End Class diff --git a/ShoalShell.PlugIns.Plot/Device/FormPieChartDevice.Designer.vb b/ShoalShell.PlugIns.Plot/Device/FormPieChartDevice.Designer.vb deleted file mode 100644 index a17bc635b..000000000 --- a/ShoalShell.PlugIns.Plot/Device/FormPieChartDevice.Designer.vb +++ /dev/null @@ -1,51 +0,0 @@ - _ -Partial Class FormPieChartDevice - Inherits System.Windows.Forms.Form - - 'Form overrides dispose to clean up the component list. - _ - Protected Overrides Sub Dispose( disposing As Boolean) - Try - If disposing AndAlso components IsNot Nothing Then - components.Dispose() - End If - Finally - MyBase.Dispose(disposing) - End Try - End Sub - - 'Required by the Windows Form Designer - Private components As System.ComponentModel.IContainer - - 'NOTE: The following procedure is required by the Windows Form Designer - 'It can be modified using the Windows Form Designer. - 'Do not modify it using the code editor. - _ - Private Sub InitializeComponent() - Me.PieChart1 = New Microsoft.VisualBasic.DataVisualization.Enterprise.Windows.Forms.Nexus.PieChart() - Me.SuspendLayout() - ' - 'PieChart1 - ' - Me.PieChart1.Dock = System.Windows.Forms.DockStyle.Fill - Me.PieChart1.Location = New System.Drawing.Point(0, 0) - Me.PieChart1.Name = "PieChart1" - Me.PieChart1.Radius = 200.0! - Me.PieChart1.Size = New System.Drawing.Size(664, 549) - Me.PieChart1.TabIndex = 0 - Me.PieChart1.Text = "PieChart1" - Me.PieChart1.Thickness = 10.0! - ' - 'FormPieChart - ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(664, 549) - Me.Controls.Add(Me.PieChart1) - Me.Name = "FormPieChart" - Me.Text = "Form1" - Me.ResumeLayout(False) - - End Sub - Friend WithEvents PieChart1 As Microsoft.VisualBasic.DataVisualization.Enterprise.Windows.Forms.Nexus.PieChart -End Class diff --git a/ShoalShell.PlugIns.Plot/Device/FormPieChartDevice.resx b/ShoalShell.PlugIns.Plot/Device/FormPieChartDevice.resx deleted file mode 100644 index 1af7de150..000000000 --- a/ShoalShell.PlugIns.Plot/Device/FormPieChartDevice.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/ShoalShell.PlugIns.Plot/Device/FormPieChartDevice.vb b/ShoalShell.PlugIns.Plot/Device/FormPieChartDevice.vb deleted file mode 100644 index c1471599d..000000000 --- a/ShoalShell.PlugIns.Plot/Device/FormPieChartDevice.vb +++ /dev/null @@ -1,3 +0,0 @@ -Public Class FormPieChartDevice - -End Class \ No newline at end of file diff --git a/ShoalShell.PlugIns.Plot/ModuleChartPlot.vb b/ShoalShell.PlugIns.Plot/ModuleChartPlot.vb deleted file mode 100644 index 47bcf4eab..000000000 --- a/ShoalShell.PlugIns.Plot/ModuleChartPlot.vb +++ /dev/null @@ -1,132 +0,0 @@ -Imports Microsoft.VisualBasic.CommandLine.Reflection -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.DeviceDriver -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.DeviceDriver.DriverHandles -Imports Microsoft.VisualBasic.DocumentFormat.Csv.Extensions -Imports Microsoft.VisualBasic.Scripting.MetaData -Imports Microsoft.VisualBasic.DocumentFormat.Csv -Imports Microsoft.VisualBasic.Terminal.Utility - -<[PackageNamespace]("Plot.Device.Chart", Url:="http://SourceForge.net/projects/shoal")> -Module ModuleChartPlot - - - Public Function PlotChart(data As DocumentStream.File) As Image - 'Using device As FormChartPlotDevice = New FormChartPlotDevice - ' Call device.Draw(DocumentStream.DataFrame.CreateObject(data)) - ' Call device.ShowDialog() - ' Return device.CopyChartImage - 'End Using - End Function - - - Public Function PlotPiChart(data As DocumentStream.File) As Image - Throw New NotImplementedException - End Function -End Module - -''' -''' Data source operation ShoalShell API for the csv document IO. -''' -''' -<[PackageNamespace]("IO_Device.Csv", Description:="Data source operation ShoalShell API for the csv document IO.", Publisher:="xie.guigang@live.com", - Url:="http://SourceForge.net/projects/shoal")> -Public Module DataSource - - - - Public Function LoadExcel(path As String) As Dictionary(Of String, DocumentStream.DataFrame) - Dim Excel = New ExcelReader(path, True, True) - Dim Tables = Excel.GetWorksheetList - Dim LQuery = (From Table As String In Tables Select Table, DF = Excel.GetWorksheet(Table).CreateDataReader.DataFrame).ToDictionary(Function(item) item.Table, Function(item) item.DF) - Return LQuery - End Function - - - Public Function GetTable(Excel As Dictionary(Of String, DocumentStream.DataFrame), Tab As String) As DocumentStream.DataFrame - Return Excel(Tab) - End Function - - - Public Function TrimData(path As String, Optional replaceAs As String = "") As DocumentStream.File - Return DocumentStream.File.Normalization(path, replaceAs) - End Function - - - - Public Function LoadDataFrameFromCsv(path As String) As Microsoft.VisualBasic.DocumentFormat.Csv.DocumentStream.DataFrame - Return Microsoft.VisualBasic.DocumentFormat.Csv.DocumentStream.DataFrame.Load(path, System.Text.Encoding.Default) - End Function - - - - Public Function ReadCsv(path As String) As Microsoft.VisualBasic.DocumentFormat.Csv.DocumentStream.File - Return Microsoft.VisualBasic.DocumentFormat.Csv.DocumentStream.File.Load(path) - End Function - - - - Public Function ReadCSV_FASTLOAD(path As String) As Microsoft.VisualBasic.DocumentFormat.Csv.DocumentStream.File - Using pdt As New CBusyIndicator(_start:=True) - Call Console.WriteLine("[DEBUG] Start loading data from " & path.ToFileURL) - Dim MAT = Microsoft.VisualBasic.DocumentFormat.Csv.DocumentStream.File.FastLoad(path) - Return MAT - End Using - End Function - - - Public Function ImportsCsv(path As String, Optional delimiter As String = ",") As Microsoft.VisualBasic.DocumentFormat.Csv.DocumentStream.File - If String.Equals(delimiter, "VB.Tab", StringComparison.OrdinalIgnoreCase) Then - delimiter = vbTab - End If - If String.Equals(delimiter, "VB.CrLF", StringComparison.OrdinalIgnoreCase) Then - delimiter = vbCrLf - End If - If String.Equals(delimiter, "VB.LF", StringComparison.OrdinalIgnoreCase) Then - delimiter = vbLf - End If - - Return Microsoft.VisualBasic.DocumentFormat.Csv.DataImports.Imports(path, delimiter) - End Function - - - - Public Function WriteCsv(data As Microsoft.VisualBasic.DocumentFormat.Csv.DocumentStream.File, path As String) As Boolean - Return data.Save(path, False) - End Function - - - - Public Function WriteCsv(data As Generic.IEnumerable(Of Object), path As String) As Boolean - Return data.SaveTo(path) - End Function - - - - Public Function WriteCsv(data As Generic.IEnumerable(Of Microsoft.VisualBasic.DocumentFormat.Csv.StorageProvider.ComponentModels.DynamicObjectLoader), path As String) As Boolean - Return data.SaveTo(path) - End Function - - - Public Function WriteCsv(data As Generic.IEnumerable(Of Microsoft.VisualBasic.DocumentFormat.Csv.DocumentStream.RowObject), path As String) As Boolean - Return CType(data, Microsoft.VisualBasic.DocumentFormat.Csv.DocumentStream.File).Save(path, False) - End Function - - - Private Function ShowCSVData(csv As Generic.IEnumerable(Of Microsoft.VisualBasic.DocumentFormat.Csv.DocumentStream.RowObject)) As Boolean - Dim TempPath As String = My.Computer.FileSystem.SpecialDirectories.Temp & "/csv_output___temp.csv" - Call CType(csv, Microsoft.VisualBasic.DocumentFormat.Csv.DocumentStream.File).Save(TempPath, False) - Call Process.Start(TempPath).WaitForExit() - Return True - End Function - - - Public Function CreateDocument(data As Generic.IEnumerable(Of Object)) As Microsoft.VisualBasic.DocumentFormat.Csv.DocumentStream.File - Return Microsoft.VisualBasic.DocumentFormat.Csv.StorageProvider.Reflection.Save(data, False) - End Function - - - - Public Function WriteCsv(data As Microsoft.VisualBasic.DocumentFormat.Csv.DocumentStream.DataFrame, saveto As String) As Boolean - Return data.Save(saveto, False) - End Function -End Module \ No newline at end of file diff --git a/ShoalShell.PlugIns.Plot/ModulePlot.vb b/ShoalShell.PlugIns.Plot/ModulePlot.vb deleted file mode 100644 index 263e63d48..000000000 --- a/ShoalShell.PlugIns.Plot/ModulePlot.vb +++ /dev/null @@ -1,71 +0,0 @@ -Imports Microsoft.VisualBasic.CommandLine.Reflection -Imports Microsoft.VisualBasic.Scripting.MetaData -Imports Microsoft.VisualBasic.Scripting.ShoalShell -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.DeviceDriver -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.DeviceDriver.DriverHandles - -<[PackageNamespace]("Plot.Device.Image", - Description:="ShoalShell runtime library extensions for Image resource.", - Cites:="ShoalShell runtime library extensions.", - Publisher:="xie.guigang@live.com", - Url:="http://SourceForge.net/projects/shoal")> -Public Module ModulePlot - - - - Public Function Plot(image As Image) As Boolean - Using Device As FormImagePlotDevice = New FormImagePlotDevice - Device.PictureBox1.BackgroundImage = image - Device.Text = String.Format("[{0},{1}] {2}", image.Width, image.Height, image.RawFormat.ToString) - Device.Size = image.Size - Device.ShowDialog() - End Using - - Return True - End Function - - - - Public Function Plot(image As Bitmap) As Boolean - Using Device As FormImagePlotDevice = New FormImagePlotDevice - Device.PictureBox1.BackgroundImage = image - Device.Text = String.Format("[{0},{1}] {2}", image.Width, image.Height, image.RawFormat.ToString) - Device.Size = image.Size - Device.ShowDialog() - End Using - - Return True - End Function - - - - Public Function WriteImage(res As Image, saveto As String) As Boolean - Try - Call res.Save(saveto) - Catch ex As Exception - Call Console.WriteLine(ex.ToString) - Return False - End Try - - Return True - End Function - - - - Public Function WriteImage(res As Bitmap, saveto As String) As Boolean - Try - Call res.Save(saveto) - Catch ex As Exception - Call Console.WriteLine(ex.ToString) - Return False - End Try - - Return True - End Function - - - - Public Function ReadImage(path As String) As Image - Return Image.FromFile(path) - End Function -End Module diff --git a/ShoalShell.PlugIns.Plot/My Project/Application.Designer.vb b/ShoalShell.PlugIns.Plot/My Project/Application.Designer.vb deleted file mode 100644 index 88dd01c78..000000000 --- a/ShoalShell.PlugIns.Plot/My Project/Application.Designer.vb +++ /dev/null @@ -1,13 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - diff --git a/ShoalShell.PlugIns.Plot/My Project/Application.myapp b/ShoalShell.PlugIns.Plot/My Project/Application.myapp deleted file mode 100644 index 1243847fd..000000000 --- a/ShoalShell.PlugIns.Plot/My Project/Application.myapp +++ /dev/null @@ -1,11 +0,0 @@ - - - true - Form1 - false - 0 - true - 0 - 0 - true - diff --git a/ShoalShell.PlugIns.Plot/My Project/AssemblyInfo.vb b/ShoalShell.PlugIns.Plot/My Project/AssemblyInfo.vb deleted file mode 100644 index ad58ba37f..000000000 --- a/ShoalShell.PlugIns.Plot/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,35 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - -' General Information about an assembly is controlled through the following -' set of attributes. Change these attribute values to modify the information -' associated with an assembly. - -' Review the values of the assembly attributes - - - - - - - - - - -'The following GUID is for the ID of the typelib if this project is exposed to COM - - -' Version information for an assembly consists of the following four values: -' -' Major Version -' Minor Version -' Build Number -' Revision -' -' You can specify all the values or you can default the Build and Revision Numbers -' by using the '*' as shown below: -' - - - diff --git a/ShoalShell.PlugIns.Plot/My Project/Resources.Designer.vb b/ShoalShell.PlugIns.Plot/My Project/Resources.Designer.vb deleted file mode 100644 index eb55cb987..000000000 --- a/ShoalShell.PlugIns.Plot/My Project/Resources.Designer.vb +++ /dev/null @@ -1,63 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - -Imports System - -Namespace My.Resources - - 'This class was auto-generated by the StronglyTypedResourceBuilder - 'class via a tool like ResGen or Visual Studio. - 'To add or remove a member, edit your .ResX file then rerun ResGen - 'with the /str option, or rebuild your VS project. - ''' - ''' A strongly-typed resource class, for looking up localized strings, etc. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Returns the cached ResourceManager instance used by this class. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("ShoalShell.PlugIns.Plot_Devices.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Overrides the current thread's CurrentUICulture property for all - ''' resource lookups using this strongly typed resource class. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set - resourceCulture = value - End Set - End Property - End Module -End Namespace diff --git a/ShoalShell.PlugIns.Plot/My Project/Resources.resx b/ShoalShell.PlugIns.Plot/My Project/Resources.resx deleted file mode 100644 index af7dbebba..000000000 --- a/ShoalShell.PlugIns.Plot/My Project/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/ShoalShell.PlugIns.Plot/My Project/Settings.Designer.vb b/ShoalShell.PlugIns.Plot/My Project/Settings.Designer.vb deleted file mode 100644 index 2a406770a..000000000 --- a/ShoalShell.PlugIns.Plot/My Project/Settings.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) - -#Region "My.Settings Auto-Save Functionality" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings( sender As Global.System.Object, e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.ShoalShell.PlugIns.Plot_Devices.My.MySettings - Get - Return Global.ShoalShell.PlugIns.Plot_Devices.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/ShoalShell.PlugIns.Plot/My Project/Settings.settings b/ShoalShell.PlugIns.Plot/My Project/Settings.settings deleted file mode 100644 index 85b890b3c..000000000 --- a/ShoalShell.PlugIns.Plot/My Project/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/ShoalShell.PlugIns.Plot/ShoalShell.PlugIns.Plot.vbproj b/ShoalShell.PlugIns.Plot/ShoalShell.PlugIns.Plot.vbproj deleted file mode 100644 index b5e3215f2..000000000 --- a/ShoalShell.PlugIns.Plot/ShoalShell.PlugIns.Plot.vbproj +++ /dev/null @@ -1,187 +0,0 @@ - - - - - Debug - AnyCPU - {28ECA1CD-4E79-4EA9-A6C8-C41F30E5C865} - Library - - - ShoalShell.PlugIns.Plot_Devices - ShoalShell.PlugIns.Plot_Devices - 512 - Windows - v4.6 - - - - AnyCPU - true - full - true - true - ..\Shoal.v2\Console\bin\Debug\ - ShoalShell.PlugIns.Plot_Devices.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - AnyCPU - pdbonly - false - true - true - ..\..\GCModeller\GCModeller\ - ShoalShell.PlugIns.Plot_Devices.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - true - true - true - ..\..\GCModeller\bin-Debug\ - ShoalShell.PlugIns.Plot_Devices.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - full - x64 - MinimumRecommendedRules.ruleset - - - true - ..\..\GCModeller\GCModeller-x64\ - ShoalShell.PlugIns.Plot_Devices.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x64 - MinimumRecommendedRules.ruleset - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FormPieChartDevice.vb - - - Form - - - FormChartPlotDevice.vb - - - - Form - - - FormImagePlotDevice.vb - Form - - - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - FormChartPlotDevice.vb - - - FormImagePlotDevice.vb - - - FormPieChartDevice.vb - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - - {7283c179-f852-4ead-8d8f-b82ef2cbd7db} - +VB_Tabular.DataFrame - - - {fecce1fd-e1d4-49e3-a668-60bb5e7aed99} - +Microsoft.VisualBasic.Architecture.Framework - - - {74c47355-b2b3-4450-92a4-4eb1234ba924} - Microsoft.VisualBasic.DataVisualization.Enterprise - - - {a7cb16ff-75c6-4746-8449-86c121d723c4} - ShoalShell_Core.v2 - - - - - \ No newline at end of file diff --git a/ShoalShell.Plugins.HtmlHelpServer/HelpServer.vb b/ShoalShell.Plugins.HtmlHelpServer/HelpServer.vb deleted file mode 100644 index d331db36b..000000000 --- a/ShoalShell.Plugins.HtmlHelpServer/HelpServer.vb +++ /dev/null @@ -1,34 +0,0 @@ -Imports Microsoft.VisualBasic.CommandLine.Reflection -Imports ShoalShell.Plugins.HtmlHelpServer.HttpInternal -Imports System.Threading -Imports Microsoft.VisualBasic.Parallel -Imports Microsoft.VisualBasic.Scripting.MetaData - -<[PackageNamespace]("Wiki.Http_Server", - Description:="Running the shoal shell local HTTP server for served the help information about the shoal shell system.", - Category:=APICategories.SoftwareTools, - Publisher:="xie.guigang@gcmodeller.org", - Url:="http://gcmodeller.org")> -Public Module HelpServer - - Dim _serverEngine As ShoalShell.Plugins.HtmlHelpServer.NotificationIcon - - - Public Function StartServer() As Integer - Call (Sub() NotificationIcon.Main(Nothing)).BeginInvoke(Nothing, Nothing) - Return 0 - End Function - - Friend Function __runServer(Optional LocalPort As Integer = 8080) As Thread - Dim HttpServer As HttpServer = New HttpInternal.HttpFileSystem(LocalPort, App.HOME & "/html", True) - Dim svrThread = RunTask(AddressOf HttpServer.Run) - Call Thread.Sleep(1000) - Call Process.Start("http://127.0.0.1:8080") - Return svrThread - End Function - - - Public Sub BuildDoc(Optional library As String = "./html/") - Call Index.GenerateDocument(library) - End Sub -End Module diff --git a/ShoalShell.Plugins.HtmlHelpServer/Icon.ico b/ShoalShell.Plugins.HtmlHelpServer/Icon.ico deleted file mode 100644 index 4d45974bc9076557a45a6b88d173ee980d1555e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10134 zcmeHLJyRP=5bXsaK7@eiVuk)06v1Wu0FtWiky#NqI{yK3oRd>Zi7w#>5MC8k zhc7`UxxM#h_le$Nr5&xX%dXPcJw3hM@Ab^=GMX8)%(`}PZ~)!0cbVBAX0Q$Rmc8FF z`xDO!dtmQ7W=~zS!Jvr$d(G^(9_=Fj^Oo7Kd$I@i89e{|V)l-l5QG`?u#7@oSHVN) zXjCZFXhKFd9*^P3!+*CcOd3kA9S66m@eQh^4 zH+Fk_Yxno}_VDmv|2}@Pr>CbW#j3HIfz=HByfc86#%$LW3}ttHt-F?G>)kBNc42R4 z-K|b{BikzN-SsR(#Co?^_zV2bCNLqM6ljJ*{M*<)lzIG3{%U`wBSz=Au9_3t_X|jM zogIM8?64D5rNX-TJ0xF3JOOZzSf6vO(>d1Wps{Y}6h7xO+0@MA@mRxypK(~zbFA|L zgS9?9=d*cu&yUzhY;<14SVMLGQz?J5B9l1p++-l z-^9C!W*4*Wc;jn1j;{OJ}DKt0;xP&j+39!%m+EpioLb&LiF4TDH;O-0tD9 z)Zec2Z*TTDvNic}?m&>^FCfek_`SdA9|PFO*Zs3-d>aK9>Vn_TPj7px94CY1FK20r zQ)A^1GgDOkzNTfWU(e6GBZ+y2Rzt?l}=e*-kEbm=t^Zta- zuxAZ9cn`xn82T8ac=E<~GxB-8Xnt}sCvofpx!9+s{QkV2nE%!Mdz^2_@1<`3Tja0( z{(N4xhDkQChl)+&wBs-dw?%_{o(uPx500I-rwgU`QyJy+3Iu5)y5W= zxKp$+ZSut!ai!!{j4&}*8(UoBPSL`&$roe9m6BI6!o*x{Y;lP@MGMm=UyKn~N?yeX z6LYn(#U<_(ElityF-BY|c@-l}%+OIB|(PMGND3+P1}&l2Document Library
    > CLI Manuals -

    GCModeller CLI Manual

    ") - Call html.AppendLine("How to get help from the program tools in the GCModeller
    -If you are not sure how to use the tools which is provided from the GCModeller, then you can just using the command line help system in the utility tools, -
  • using ? command to listing all of the available commands that exists in the tools
  • -
  • and using ? <name> command to gets the details help information of which is the detail description of the command including usage and example.
  • -
  • and at last man command is available for all tools to print theirs command line user manual.
  • -

    -Here is a list of program tools that including in GCModeller for the systems biology analysis. -
    ") - Call html.AppendLine(" - - - - -") - For Each tool In LQuery - Dim Name As String = FileIO.FileSystem.GetFileInfo(tool.Assembly.Path).Name - Call html.AppendLine($" - - - -") - Next - Call html.AppendLine("
    ProgramNameDescription
    {IO.Path.GetFileNameWithoutExtension(Name)}{tool.Namespace}{tool.Description}
    ") - - Return html.ToString - End Function -End Module diff --git a/ShoalShell.Plugins.HtmlHelpServer/Library/Cite.vb b/ShoalShell.Plugins.HtmlHelpServer/Library/Cite.vb deleted file mode 100644 index 9cd301077..000000000 --- a/ShoalShell.Plugins.HtmlHelpServer/Library/Cite.vb +++ /dev/null @@ -1,31 +0,0 @@ -Imports System.Text -Imports Microsoft.VisualBasic.Linq.Extensions - -''' -''' 生成每一个工具的引用文献的工具 -''' -Module Cite - - Public Sub GenerateDocument(repository As String, library As Scripting.ShoalShell.SPM.PackageModuleDb) - Dim index As New StringBuilder(My.Resources.index) - Call index.Replace(Title, "Cites") - Call index.Replace(Doc, __innerHTML(library)) - Call index.SaveTo($"{repository}/cites.html", System.Text.Encoding.UTF8) - End Sub - - Private Function __innerHTML(library As Scripting.ShoalShell.SPM.PackageModuleDb) As String - Dim html As New StringBuilder("Document Library > Module Cites

    -

    -Here is a list of articles that cite for build the modules in the GCModeller, many thanks to these researches:

    ") - Dim LQuery = (From ns In library.NamespaceCollection - Select (From x In ns.PartialModules - Let cites As String = x.GetCites - Where Not String.IsNullOrEmpty(cites) - Select cites).ToArray).MatrixToList - Call html.AppendLine("") - Call html.AppendLine(LQuery.ToArray(Function(x, i) $"").JoinBy(vbCrLf)) - Call html.AppendLine("
    References
    {x}
    ") - - Return html.ToString - End Function -End Module diff --git a/ShoalShell.Plugins.HtmlHelpServer/Library/Contributors.vb b/ShoalShell.Plugins.HtmlHelpServer/Library/Contributors.vb deleted file mode 100644 index eca24596a..000000000 --- a/ShoalShell.Plugins.HtmlHelpServer/Library/Contributors.vb +++ /dev/null @@ -1,100 +0,0 @@ -Imports System.Text -Imports Microsoft.VisualBasic.Scripting -Imports Microsoft.VisualBasic.Scripting.ShoalShell - -Module Contributors - - Public Function GenerateDocument(repository As String, SPMgr As SPM.PackageModuleDb) As Boolean - Dim HtmlBuilder As StringBuilder = New StringBuilder(My.Resources.index) - Call HtmlBuilder.Replace(Title, "Contributors") - Call HtmlBuilder.Replace(Doc, __contributors(SPMgr)) - - Return HtmlBuilder.SaveTo(repository & "/contributors.html", System.Text.Encoding.UTF8) - End Function - - Private Function __contributors(SPMgr As SPM.PackageModuleDb) As String - Dim doc As New StringBuilder( -"Document Library > Contributors

    -

    About GCModeller

    -GCModeller is a project which is attempting to provide a modern piece of systems biology analysis software for the GNU suite of software. -
    -

    GCModeller has three type of user interface(CLI commandline, Workbench GUI, ShoalShell Scripting), and the ShoalShell scripting language project is the one of the user interface for biologist applied GCModeller in their researches. -As a most important part in the GCModeller, the current ShoalShell is the result of a collaborative effort with contributions from all over the world. -
    - -

    Authors of ShoalShell

    -

    As the project leader of GCModeller, master xie developed the entired ShoalShell runtime core library and the most part of the GCModeller ShoalShell library packages, he is begins written GCModeller since mid-2013 and start writing ShoalShell from a idea of develop a much commandline like debugging tools for the GCModeller virtual cell system since 2014 August.

    - -Here is the currently developer members on developing GCModeller:

    -

  • Master xie (xie.guigang@gcmodeller.org, xie.guigang@xanthomonas.wiki)
  • -
  • and his research assistant Miss asuka (amethyst.asuka@gcmodeller.org)
  • -
  • Mr Huahao Jiang (jhh1725@gcmodeller.org)

  • - -

    Contributors to GCModeller Library

    -

    -Here are the peoples who is contributes to the algorithm or source code of GCModeller: -

    -
    ") - Call doc.AppendLine("") - Call doc.AppendLine(" - - ") - Dim getAuthors = (From authorMod - In (From obj In SPMgr.NamespaceCollection Select (From [mod] In obj.PartialModules Select [mod].Publisher, [mod]).ToArray).ToArray.MatrixToList - Select authorMod, - author = InputHandler.ToString(authorMod.Publisher).ToLower.Trim - Group authorMod By author Into Group).ToArray - - For Each author In getAuthors - Dim modList As String = String.Join(", ", (From [mod] In author.Group - Let typeRef As System.Type = [mod].mod.Assembly.GetType - Where Not typeRef Is Nothing '可能文件被删掉了或者命名空间被修改了,找不到类型的定义入口数据 - Let [namespace] = typeRef.NamespaceEntry.Namespace - Select $"{[namespace]}").ToArray) - Dim authorName As String = author.author - If String.IsNullOrEmpty(authorName) Then - authorName = "Thanks to these anonymous developers" - Else - authorName = author.Group.First.mod.Publisher - End If - - Call doc.AppendLine($" ") - Next - - Call doc.AppendLine("
    Author/ContributorsModules
    {authorName}{modList}
    ") - Call doc.AppendLine("
    -

    -

    Special thanks

    -

    Many thanks to my teacher and doctor niu(niuxiangna@gmail.com), -professor Jiang(weijiang@gxu.edu.cn) and -professor He(yqhe@gxu.edu.cn) from SKLCUSA Laboratory in Guangxi University, -for giving good advices on my research and encouraging me devoted myself into the GCModeller project and bringing out this fantastic language project to you. -

    ") - Call doc.AppendLine($"

    License

    -

    -

    {Scripting.ShoalShell.License}
    -

    ") - Call doc.AppendLine("



    Project Links

    -

    GCModeller was benefits from two special project on the RNA-seq high-performance analysis, these two project which are: -
    - - - - -
    Bioinformatics ProjectHOME
  • Microsoft .NET Bio
  • https://github.com/dotnetbio/bio
  • BOW(Bioinformatics on Windows)
  • http://bow.codeplex.com/
    -

    Project Folked Branches

    -

    Shoal Shell not just working in systems biology area but also works in financial economics area: -Another Shoal commercial extension project ""MiMaster (pre-alpha state)"" was applied on the financial online trading system from MiPaiMai.com, power this very first online instant auction platform. -

    - - - - -
    Shoal ProjectHOMEScienceLicense
  • GCModeller
  • http://GCModeller.orgSystems Biology/BioinformaticsGPL3 Open Source
  • MiMaster
  • http://mipaimai.com/Financial Online Trading SystemCommercial Licensed($32k/Product System)
    -

    - -

    ") - - Return doc.ToString - End Function -End Module diff --git a/ShoalShell.Plugins.HtmlHelpServer/Library/Index.vb b/ShoalShell.Plugins.HtmlHelpServer/Library/Index.vb deleted file mode 100644 index e53064547..000000000 --- a/ShoalShell.Plugins.HtmlHelpServer/Library/Index.vb +++ /dev/null @@ -1,109 +0,0 @@ -Imports System.Text -Imports Microsoft.VisualBasic.Scripting.ShoalShell -Imports Microsoft.VisualBasic.Linq.Extensions - -''' -''' 这个模块是用于生成本地帮助文档的工具,这个工具和Shoal脚本引擎之中的自带的帮助文档的生成工具的作用是一样的, -''' 只不过Shoal脚本引擎之中的帮助文档生成引擎由于精简内核的需要,只会生成最基本的视图,而这个模块则是加强版的帮助文档的生成工具 -''' -''' index.html -''' -Public Module Index - - Public Const Doc As String = "{doc}" - Public Const Title As String = "{Title}" - - Public Sub GenerateDocument(repository As String) - Dim index As New StringBuilder(My.Resources.index) - Dim library = SPM.PackageModuleDb.LoadDefault - - Call $"Library source loaded!".__DEBUG_ECHO - Call My.Resources.foundation.SaveTo($"{repository}/assets/foundation.css") - Call $"Write css foundation!".__DEBUG_ECHO - Call index.Replace("{doc}", __innerHTML(library, repository)) - Call index.Replace(Title, "GCModeller Help Library") - Call Cite.GenerateDocument(repository, library) - Call Type.GenerateDocument(repository, library) - - Dim indexPage As String = $"{repository}/index.html" - - Call index.SaveTo(indexPage, Encoding.UTF8) - Call $"Index page saved at {indexPage.ToFileURL}...".__DEBUG_ECHO - End Sub - - ''' - ''' 生成index.html - ''' - ''' - ''' - Private Function __innerHTML(library As SPM.PackageModuleDb, repository As String) As String - Dim innerDoc As New StringBuilder(1024) - - Call innerDoc.AppendLine($"

    Brief Introductions

    - - - - - -
    Publisher: xie.guigang@gcmodeller.org
    Version: {GetType(Runtime.ScriptEngine).ModuleVersion}
    License: -GPL3
    -

    GCModeller is an open source project of bioinformatics computing platform which is attempting to provide a modern piece of systems biology analysis software for the GNU suite of software. -Inspired by the Microsoft bioinformatics research project MBF and recently advances in Virtual Cell technology, GCModeller was developed for solving the problem of systemsbiology not only in the discovery of the novel cellular mechanism in molecular biology, but also for more complex situation such as metagenomics and environment co-evolution. -GCModeller is original written in Microsoft VisualBasic language, and some module in GCModeller is hybrids programming with Perl and R languages.
    -ShoalShell program is part of important runtime environment from GCModeller analysis suite which it is distributed under the GPL3 license, you can download the latest source code of shoal shell from SourceForge.net: -

  • https://github.com/SMRUCC/Shoal
  • -

    -
    ") - - Call innerDoc.AppendLine("

    Library Document Contents

    -
  • Installed Modules
  • -
  • Contributors
  • -
  • Cites
  • -
  • CLI Tools Manual
  • -
  • TypeOf GCModeller
  • -") - Dim libraries As SPM.Nodes.Namespace() = (From x As SPM.Nodes.Namespace - In library.NamespaceCollection - Select x - Order By x.Namespace Ascending).ToArray - Call $"Start indexing library packages....".__DEBUG_ECHO - Call innerDoc.AppendLine($"

    Installed Modules

    -Currently there are {library.NamespaceCollection.Length} packages -({library.NamespaceCollection.ToArray(Function(x) x.API.ToArray(Function(a) a.OverloadsNumber).Sum, Parallel:=True).Sum} API in totally) and -{library.HybridEnvironments.Length} language hybrids environments have been installed on your ShoalShell system: -
    -
    -

    -Quick Navigation -
    -{HTML.DocRenderer.QuickNavigation(libraries.ToArray(Function(x) x.Namespace))} -
    - - - -") - - For Each ns As SPM.Nodes.Namespace In libraries - Call innerDoc.AppendLine($" - - -") - Next - - Call innerDoc.AppendLine("
    NamespaceDescription
    {ns.Namespace}{ns.Description}

    [↑]") - Call innerDoc.AppendLine("

    Language Hybrids

    -

    -Here is the language environment that was installed in your shoal system: -

    ") - Call innerDoc.AppendLine($" - -{library.HybridEnvironments.ToArray(Function(x) $"").JoinBy(vbCrLf)} -
    LanguageDescriptionModule
    {x.Language}{x.Description}{FileIO.FileSystem.GetFileInfo(x.Path).Name}
    ") - - Call [Namespace].GenerateDocument(repository, libraries) - Call Contributors.GenerateDocument(repository, library) - Call CLI_MAN.GenerateDocument(repository, library) - - Return innerDoc.ToString - End Function -End Module diff --git a/ShoalShell.Plugins.HtmlHelpServer/Library/Namespace.vb b/ShoalShell.Plugins.HtmlHelpServer/Library/Namespace.vb deleted file mode 100644 index 86d8efcc5..000000000 --- a/ShoalShell.Plugins.HtmlHelpServer/Library/Namespace.vb +++ /dev/null @@ -1,176 +0,0 @@ -Imports System.Runtime.CompilerServices -Imports System.Text -Imports Microsoft.VisualBasic.Scripting.MetaData -Imports Microsoft.VisualBasic.Scripting.ShoalShell -Imports Microsoft.VisualBasic.DocumentFormat.HTML -Imports Microsoft.VisualBasic.Linq.Extensions - -''' -''' 生成API模块的帮助文档 -''' -Module [Namespace] - - Public Sub GenerateDocument(repository As String, library As SPM.Nodes.Namespace()) - Dim IndexFiles = (From obj In (From x In library Select (From xx In x.PartialModules Select xx.Assembly.Path, xx).ToArray).ToArray.MatrixToList - Select obj.Path, obj.xx - Group By Path Into Group) _ - .ToDictionary(Function(x) x.Path, elementSelector:=Function(x) x.Group.ToArray(Function(xx) xx.xx)) - - For Each ns As SPM.Nodes.Namespace In library - Dim HTMLBuilder As New StringBuilder(My.Resources.index) - Dim HTML As String = HTMLDoc(repository, ns, IndexFiles) - Dim path As String = $"{repository}/{ns.Namespace.NormalizePathString(False)}.html" - - Call HTMLBuilder.Replace(Title, ns.Namespace) - Call HTMLBuilder.Replace(Doc, HTML) - Call HTMLBuilder.SaveTo(path, System.Text.Encoding.UTF8) - - Call $" ===> {ns.Namespace}...".__DEBUG_ECHO - Next - End Sub - - Public Function HTMLDoc(repository As String, ns As SPM.Nodes.Namespace, related As Dictionary(Of String, SPM.Nodes.PartialModule())) As String - Dim HTMLBuilder As StringBuilder = New StringBuilder(1024) - Call HTMLBuilder.AppendLine($"Document Library > {ns.Namespace}") - Call HTMLBuilder.AppendLine("
    ") - Call HTMLBuilder.AppendLine("

    Related Namespace

    ") - For Each entry In ns.PartialModules - Dim Name As String = FileIO.FileSystem.GetFileInfo(entry.Assembly.Path).Name - Dim path As String = $"{repository}/{Name}/{ns.Namespace.NormalizePathString(False)}.html" - Call HTMLBuilder.AppendLine($"
  • {Name}
  • ") - Dim relates = related(entry.Assembly.Path) - Call HTMLBuilder.AppendLine(" -") - For Each nss In relates - Dim href As String = $"./{FileIO.FileSystem.GetFileInfo(nss.Assembly.Path).Name}/{nss.Namespace}.html" - Call HTMLBuilder.AppendLine($"") - Next - Call HTMLBuilder.AppendLine("
    NamespaceDescription
    {nss.Namespace}{nss.Description}
    ") - - Dim innerDoc As New StringBuilder(My.Resources.index) - Call innerDoc.RestoreCSS - Call innerDoc.Replace(Doc, HTMLDoc(entry, ns.Namespace)) - Call innerDoc.Replace(Title, ns.Namespace) - Call innerDoc.SaveTo(path, System.Text.Encoding.UTF8) - Next - Return HTMLBuilder.ToString - End Function - - Public Function HTMLDoc(ns As SPM.Nodes.PartialModule, name As String) As String - Dim HTMLBuilder As StringBuilder = New StringBuilder(1024) - Call HTMLBuilder.AppendLine($"Document Library > {name}") - Call HTMLBuilder.AppendLine($"

    {name}

    ") - Call HTMLBuilder.AppendLine($" - - - - - - - -
    Publishers{ns.Publisher}
    Description{ns.Description}
    Revision{ns.Revision}
    Cites{ns.GetCites}
    Category{ns.Category.ToString} ({ns.Category.Description})
    URL{ns.Url}
    Library{ns.Assembly.TypeId}
    ") - - If ns.EntryPoints.IsNullOrEmpty Then - GoTo _EXIT - End If - - Dim entryPoints = Scripting.ShoalShell.SPM.Nodes.AssemblyParser.Imports(ns.Assembly.GetType) - - Call HTMLBuilder.AppendLine("

    API List

    ") - - For Each api In entryPoints - Call HTMLBuilder.AppendLine($"
  • {api.Name}
  • ") - Next - - Call HTMLBuilder.AppendLine("


    ") - - For Each api As Interpreter.Linker.APIHandler.APIEntryPoint In entryPoints - - Call HTMLBuilder.AppendLine($"

    {api.Name}{If(api.IsOverloaded, $"(+{api.OverloadsNumber} Overloads)", "")}

    ") - Call HTMLBuilder.AppendLine("

    ") - - For Each overloadsAPI In api.OverloadsAPI - - Dim rtvl = overloadsAPI.EntryPoint.GetAttribute(Of FunctionReturns) - - Call HTMLBuilder.AppendLine($"

    {overloadsAPI.Name}
    ") - Call HTMLBuilder.AppendLine($" - - - -
    Description{overloadsAPI.Info.InvokeReplace("<", "<")}
    Return{If(rtvl Is Nothing, "", rtvl.Description.InvokeReplace("<", "<"))}
    Usage{overloadsAPI.Usage.InvokeReplace("<", "<")}
    ") - Call HTMLBuilder.AppendLine("API Details") - Call HTMLBuilder.AppendLine($" - - -
    Prototype{overloadsAPI.EntryPointFullName(True)}
    Returns{overloadsAPI.EntryPoint.ReturnType.FullName}
    ") - - If ns.Category = APICategories.CLI_MAN Then - Call __buildCLIArguments(overloadsAPI, HTMLBuilder) - Else - Call __buildAPIParameters(overloadsAPI, HTMLBuilder) - End If - Next - - Call HTMLBuilder.AppendLine("

    ") - Next - -_EXIT: Return HTMLBuilder.ToString - End Function - - Private Sub __buildAPIParameters(overloadsAPI As CommandLine.Reflection.EntryPoints.APIEntryPoint, ByRef HTMLBuilder As StringBuilder) - Dim lstParams = overloadsAPI.EntryPoint.GetParameters - - If lstParams.IsNullOrEmpty Then - Call HTMLBuilder.AppendLine("Not Required of parameters.") - Return - End If - - Call HTMLBuilder.AppendLine("Parameters") - Call HTMLBuilder.AppendLine(" -") - - For Each param As Reflection.ParameterInfo In lstParams - Dim describ = param.GetCustomAttributes(attributeType:=GetType(Scripting.MetaData.Parameter), inherit:=True) - Dim attr = If(describ.IsNullOrEmpty, Nothing, DirectCast(describ(Scan0), Parameter)) - Call HTMLBuilder.AppendLine($" - - - -") - Next - - Call HTMLBuilder.AppendLine("
    NameDescriptionType
    {If(attr Is Nothing, param.Name, attr.Alias.InvokeReplace("<", "<"))}{If(attr Is Nothing, "", attr.Description.InvokeReplace("<", "<"))}{param.ParameterType.FullName}
    ") - End Sub - - Private Sub __buildCLIArguments(overloadsAPI As CommandLine.Reflection.EntryPoints.APIEntryPoint, ByRef HTMLBuilder As StringBuilder) - Dim args As CommandLine.Reflection.ParameterInfo() = - overloadsAPI.EntryPoint.GetCustomAttributes(GetType(CommandLine.Reflection.ParameterInfo), inherit:=True) - If args.IsNullOrEmpty Then - Call HTMLBuilder.AppendLine("Probably Not Required of parameters, please read Usage for help.") - Return - End If - - Call HTMLBuilder.AppendLine("Parameters") - Call HTMLBuilder.AppendLine(" -") - - For Each param As CommandLine.Reflection.ParameterInfo In args - Call HTMLBuilder.AppendLine($" - - - -") - Next - - Call HTMLBuilder.AppendLine("
    NameOptionalDescription
    {param.Name.InvokeReplace("<", "<")}{param.Optional.ToString }{DocFormatter.HighlightLinks(param.Description).InvokeReplace("<", "<")}
    ") - End Sub - - Public Function InvokeReplace(source As String, old As String, _new As String) As String - If String.IsNullOrEmpty(source) Then - Return "" - Else - Return source.Replace(old, _new) - End If - End Function -End Module diff --git a/ShoalShell.Plugins.HtmlHelpServer/Library/Type.vb b/ShoalShell.Plugins.HtmlHelpServer/Library/Type.vb deleted file mode 100644 index b53557b17..000000000 --- a/ShoalShell.Plugins.HtmlHelpServer/Library/Type.vb +++ /dev/null @@ -1,80 +0,0 @@ -Imports System.Runtime.CompilerServices -Imports System.Text -Imports Microsoft.VisualBasic.Scripting.ShoalShell.HTML -Imports Microsoft.VisualBasic.Linq.Extensions - -''' -''' 生成数据类型的帮助文档 -''' -Module Type - - Public Sub GenerateDocument(repository As String, library As Scripting.ShoalShell.SPM.PackageModuleDb) - Dim index As New StringBuilder(My.Resources.index) - - Call index.Replace(Title, "TypeOf GCModeller") - Call index.Replace(Doc, __innerHTML(library, repository)) - Call index.RestoreCSS - Call index.SaveTo($"{repository}/TypeLinks/index.html", System.Text.Encoding.UTF8) - End Sub - - Public Sub RestoreCSS(ByRef sbr As StringBuilder) - Call sbr.Replace("=""assets", "=""../assets") - End Sub - - Private Function __innerHTML(library As Scripting.ShoalShell.SPM.PackageModuleDb, repository As String) As String - Dim html As StringBuilder = New StringBuilder - Dim pages = __pages(library, repository) - - Call html.AppendLine("Document Library > TypeOf GCModeller") - Call html.AppendLine("

    -Here are the list of all data types in the GCModeller for facility of your programming with GCModeller API: -

    -") - Call html.AppendLine("

    - -") - Call html.AppendLine(String.Join(vbCrLf, (From type As System.Type - In pages - Where Not String.IsNullOrEmpty(type.FullName) - Select $"").ToArray)) - Call html.AppendLine("
    TypeOf List GCModeller Programming Manual
    {type.FullName}
    -
    ") - Call html.AppendLine("

    ") - - Return html.ToString - End Function - - Private Function __pages(library As Scripting.ShoalShell.SPM.PackageModuleDb, repository As String) As System.Type() - Dim source = Scripting.ShoalShell.HTML.TypeLinks.GetSource(library) - Dim __getPages = (From data In source - Let template As String = pageTemplate - Let tdefValue = TypeLinks.CreatePage(template, data) - Select tdef = tdefValue.Value, - html = tdefValue.Key - Order By tdef.FullName Ascending).ToArray - - For Each page In __getPages - Dim path As String = $"{repository}/{NameOf(TypeLinks)}/{PageName(page.tdef)}.html" - Dim html As StringBuilder = New StringBuilder(My.Resources.index) - Dim innerDoc As New StringBuilder - Call innerDoc.AppendLine("Document Library > TypeOf GCModeller
    ") - Call innerDoc.AppendLine(page.html) - Call html.Replace(Title, page.tdef.ToString) - Call html.Replace(Doc, innerDoc.ToString) - Call html.RestoreCSS - Call html.SaveTo(path, System.Text.Encoding.UTF8) - Next - - Return __getPages.ToArray(Function(x) x.tdef) - End Function - - Const pageTemplate As String = " - - - - -
    %Publisher%
    Description%Description%
    %DefineFile%
    TypeOf%Type%
    - - -

    %SDK_HELP%

    " -End Module diff --git a/ShoalShell.Plugins.HtmlHelpServer/My Project/Application.Designer.vb b/ShoalShell.Plugins.HtmlHelpServer/My Project/Application.Designer.vb deleted file mode 100644 index 88dd01c78..000000000 --- a/ShoalShell.Plugins.HtmlHelpServer/My Project/Application.Designer.vb +++ /dev/null @@ -1,13 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - diff --git a/ShoalShell.Plugins.HtmlHelpServer/My Project/Application.myapp b/ShoalShell.Plugins.HtmlHelpServer/My Project/Application.myapp deleted file mode 100644 index 758895def..000000000 --- a/ShoalShell.Plugins.HtmlHelpServer/My Project/Application.myapp +++ /dev/null @@ -1,10 +0,0 @@ - - - false - false - 0 - true - 0 - 1 - true - diff --git a/ShoalShell.Plugins.HtmlHelpServer/My Project/AssemblyInfo.vb b/ShoalShell.Plugins.HtmlHelpServer/My Project/AssemblyInfo.vb deleted file mode 100644 index ceabfe6ca..000000000 --- a/ShoalShell.Plugins.HtmlHelpServer/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,35 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - -' General Information about an assembly is controlled through the following -' set of attributes. Change these attribute values to modify the information -' associated with an assembly. - -' Review the values of the assembly attributes - - - - - - - - - - -'The following GUID is for the ID of the typelib if this project is exposed to COM - - -' Version information for an assembly consists of the following four values: -' -' Major Version -' Minor Version -' Build Number -' Revision -' -' You can specify all the values or you can default the Build and Revision Numbers -' by using the '*' as shown below: -' - - - diff --git a/ShoalShell.Plugins.HtmlHelpServer/My Project/Resources.Designer.vb b/ShoalShell.Plugins.HtmlHelpServer/My Project/Resources.Designer.vb deleted file mode 100644 index 1dd63ec36..000000000 --- a/ShoalShell.Plugins.HtmlHelpServer/My Project/Resources.Designer.vb +++ /dev/null @@ -1,162 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - -Imports System - -Namespace My.Resources - - 'This class was auto-generated by the StronglyTypedResourceBuilder - 'class via a tool like ResGen or Visual Studio. - 'To add or remove a member, edit your .ResX file then rerun ResGen - 'with the /str option, or rebuild your VS project. - ''' - ''' A strongly-typed resource class, for looking up localized strings, etc. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Returns the cached ResourceManager instance used by this class. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("ShoalShell.Plugins.HtmlHelpServer.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Overrides the current thread's CurrentUICulture property for all - ''' resource lookups using this strongly typed resource class. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set - resourceCulture = value - End Set - End Property - - ''' - ''' Looks up a localized string similar to <!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><title>Page Not Found :(</title><style>::-moz-selection { - ''' background: #b3d4fc; - ''' text-shadow: none; - ''' } - ''' - ''' ::selection { - ''' background: #b3d4fc; - ''' text-shadow: none; - ''' } - ''' - ''' html { - ''' padding: 30px 10px; - ''' font-size: 20px; - ''' line-height: 1.4; - ''' color: #737373; - ''' background: #f0f0f0; - ''' -webkit-text-size-adjust: 100%; - ''' -ms-text-size-adjust: 100%; - ''' [rest of string was truncated]";. - ''' - Friend ReadOnly Property _404() As String - Get - Return ResourceManager.GetString("_404", resourceCulture) - End Get - End Property - - ''' - ''' Looks up a localized string similar to meta.foundation-version { - ''' font-family: "/5.4.5/"; } - ''' - '''meta.foundation-mq-small { - ''' font-family: "/only screen/"; - ''' width: 0em; } - ''' - '''meta.foundation-mq-medium { - ''' font-family: "/only screen and (min-width:40.063em)/"; - ''' width: 40.063em; } - ''' - '''meta.foundation-mq-large { - ''' font-family: "/only screen and (min-width:64.063em)/"; - ''' width: 64.063em; } - ''' - '''meta.foundation-mq-xlarge { - ''' font-family: "/only screen and (min-width:90.063em)/"; - ''' width: 90.063em; } - ''' - '''meta.foundation-mq-xxlarge { - ''' font-famil [rest of string was truncated]";. - ''' - Friend ReadOnly Property foundation() As String - Get - Return ResourceManager.GetString("foundation", resourceCulture) - End Get - End Property - - ''' - ''' Looks up a localized string similar to GNU GENERAL PUBLIC LICENSE - ''' Version 3, 29 June 2007 - ''' - ''' Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> - ''' Everyone is permitted to copy and distribute verbatim copies - ''' of this license document, but changing it is not allowed. - ''' - ''' Preamble - ''' - ''' The GNU General Public License is a free, copyleft license for - '''software and other kinds of works. - ''' - ''' The licenses for most software and other practical works are designed - '''to [rest of string was truncated]";. - ''' - Friend ReadOnly Property gpl() As String - Get - Return ResourceManager.GetString("gpl", resourceCulture) - End Get - End Property - - ''' - ''' Looks up a localized resource of type System.Drawing.Icon similar to (Icon). - ''' - Friend ReadOnly Property Icon() As System.Drawing.Icon - Get - Dim obj As Object = ResourceManager.GetObject("Icon", resourceCulture) - Return CType(obj,System.Drawing.Icon) - End Get - End Property - - ''' - ''' Looks up a localized string similar to <!DOCTYPE html> - '''<!-- saved from url=(0052)http://foundation.zurb.com/templates/workspace.html# --> - '''<html class=" js flexbox flexboxlegacy canvas canvastext webgl no-touch geolocation postmessage websqldatabase indexeddb hashchange history draganddrop websockets rgba hsla multiplebgs backgroundsize borderimage borderradius boxshadow textshadow opacity cssanimations csscolumns cssgradients cssreflections csstransforms csstransforms3d csstransitions fontface generatedcontent video audio localstorage sessions [rest of string was truncated]";. - ''' - Friend ReadOnly Property index() As String - Get - Return ResourceManager.GetString("index", resourceCulture) - End Get - End Property - End Module -End Namespace diff --git a/ShoalShell.Plugins.HtmlHelpServer/My Project/Resources.resx b/ShoalShell.Plugins.HtmlHelpServer/My Project/Resources.resx deleted file mode 100644 index ea87e8b2a..000000000 --- a/ShoalShell.Plugins.HtmlHelpServer/My Project/Resources.resx +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - ..\Resources\gpl.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;gb2312 - - - ..\Icon.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\404.html;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252 - - - ..\Resources\foundation.css;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252 - - - ..\Resources\index.html;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 - - \ No newline at end of file diff --git a/ShoalShell.Plugins.HtmlHelpServer/My Project/Settings.Designer.vb b/ShoalShell.Plugins.HtmlHelpServer/My Project/Settings.Designer.vb deleted file mode 100644 index 4c13dc5ea..000000000 --- a/ShoalShell.Plugins.HtmlHelpServer/My Project/Settings.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) - -#Region "My.Settings Auto-Save Functionality" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings( sender As Global.System.Object, e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.ShoalShell.Plugins.HtmlHelpServer.My.MySettings - Get - Return Global.ShoalShell.Plugins.HtmlHelpServer.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/ShoalShell.Plugins.HtmlHelpServer/My Project/Settings.settings b/ShoalShell.Plugins.HtmlHelpServer/My Project/Settings.settings deleted file mode 100644 index 85b890b3c..000000000 --- a/ShoalShell.Plugins.HtmlHelpServer/My Project/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/ShoalShell.Plugins.HtmlHelpServer/NotificationIcon.resx b/ShoalShell.Plugins.HtmlHelpServer/NotificationIcon.resx deleted file mode 100644 index 555241f66..000000000 --- a/ShoalShell.Plugins.HtmlHelpServer/NotificationIcon.resx +++ /dev/null @@ -1,546 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - - AAABAAkAMDAQAAAAAABoBgAAlgAAACAgEAAAAAAA6AIAAP4GAAAQEBAAAAAAACgBAADmCQAAMDAAAAEA - CACoDgAADgsAACAgAAABAAgAqAgAALYZAAAQEAAAAQAIAGgFAABeIgAAMDAAAAEAIACoJQAAxicAACAg - AAABACAAqBAAAG5NAAAQEAAAAQAgAGgEAAAWXgAAKAAAADAAAABgAAAAAQAEAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAIAAAICAAIAAAACAAIAAgIAAAMDAwACAgIAAAAD/AAAAAAAA//8A/wAAAP8A - /wD//wAA////AACAAACZmZmZmZmZmZmZmZmZmZmZmZAACZmZmZmZmZmZmZmZmZmZmZmZmZmZAAKiIJmZ - mZmZmZmZmZmZmZmZmZmZmZAAKioqIgmZmZmZmZmZmZmZmZmZmZmZmZCioqKiIiCZmZmZmZmZmZAAAACZ - kAAAAAAKKioqIiIJmZmZmZmZmQAAAAAJkAAAAAAAoqKiIiIgmZmZmZmZkAdu7ucAkH7u7mcACioqIiIg - mZmZmZmZkG7u7u7gAH7u7u7nAKKiIiIgmZmZmZmZkO7uZu7mAH7u7u7uYAoqIiIgmZmZmZmZkH5wAH7u - AH7nAAbu5wKiIiIgmZmZmZmZmQAAAA7ucH7nBwB+7gAqIiIgmZmZmZmZmZAAAH7ucH7nAHAG7nCiIiIg - mZmZmZmZmQAAB+7uAH7nBwAH7mAqIiIgmZmZmZmZkAB27u7nAH7nAHAH7uCiIiIgmZmZmZmZAAbu7u5w - AH7nBwAH7uAqIiIgmZmZmZmQAG7u5nAAAH7nAHAH7uCiIiIgmZmZmZkAcO7mAAAAAH7nBwAH7mAqIiIg - mZmZmZAHB+7gAAAAAH7nAAAG7nCiIiIgmZmZmZBwB+7gAAdwAH7nAABu5goqIiIgmZmZmZAHB+7md37g - AH7mZmbu5wKiIiIgmZmZmZBwcH7u7u7mAH7u7u7ucCoqIiIgmZmZmZAHBwfu7u5gAH7u7u5gAqKiIiIg - mZkAAABwbnAHZncAcHd3d3AAKioqIiIgmZkAcHAO5uZwAAB3YAAAAACioqKqIiIgmZkHBwBu7m5gcAZm - dnZ3AHAqKqqqoiIgmZkAcHDm7ubmBwZmZ2dnBwCqqqqqqiIgmZkHBwcObu5uYAZmZnZ2AHCqqqqqqqIg - mZkAcHBw5u7m5mZmZmdnZ3cKqqqqqqogmZkHBwcHDm7ubmZmZmZ2dndwqqqqqqqgmZkAAAAAAObu5uZm - ZmZ2dnd3CqqqqgAJmZkHd2dmZubu7m5gAABnZ2d3cKqgAACZmZkHd3Z2Zm5u7mAAcHAAdnZ3dwAHZmCZ - mZkHd3Z2Zmbm7gcHBwcHB2dnd3d2dmCZmZkHd3dnZmbm7gAAAAAABnZ2d3d3Z2CZmZkHd3d2dmZubuAA - AAAAZmdnZ3d3Z2CZmZkHd3d3Z2Zm5u7gAABmZmdnZ3d3dnCZmZkAAAAAAAZmbm7ubmZmZmZ2AAAAAACZ - mZmZmZBwcGdmZubu5uZmZmZnYHBwmZmZmZmZmZAHB2dmZubu7m5mZmZmdgcAmZmZmZmZmZBwd3Z3YA5u - 7ubmAGZmdnBwmZmZmZmZmZAHd3dmCQbm7u5uCQZmZ2cAmZmZmZmZmZB3d3dwmQZubu5uCZBmZnZwmZmZ - mZmZmZkHd3cJmQZm5u7mCZkGZmcJmZmZmZmZmZmQd3CZmQZm5u7uCZmQZmCZmZmZmZmZmZmZBwmZmQZm - bm7uCZmZBgmZmZmZmZmZmZmZkJmZmQZmZubuCZmZkJmZmZmZmZmZmZmZmZmZmQZmZm5uCZmZmZmZmZmZ - mZmZmZmZmZmZmQAAAAAACZmZmZmZmZmZmZn/////4f8AAP////8A/wAA////+AB/AAD////4AD8AAP/g - OAAAHwAA/8AYAAAPAAD/gAgAAA8AAP+AAAAADwAA/4AAAAAPAAD/gAAAAA8AAP/AAAAADwAA/+AAAAAP - AAD/wAAAAA8AAP+AAAAADwAA/wAAAAAPAAD+AAAAAA8AAPwAAAAADwAA+AAAAAAPAAD4AAAAAA8AAPgA - AAAADwAA+AAAAAAPAAD4AAAAAA8AAAAAAAAADwAAAAAAAAAPAAAAAAAAAA8AAAAAAAAADwAAAAAAAAAP - AAAAAAAAAA8AAAAAAAAADwAAAAAAAAAfAAAAAAAAAD8AAAAAAAAAPwAAAAAAAAA/AAAAAAAAAD8AAAAA - AAAAPwAAAAAAAAA/AAAAAAAAAD8AAPgAAAAD/wAA+AAAAAP/AAD4AAAAA/8AAPgBABAD/wAA+AMAGAP/ - AAD8BwAcB/8AAP4PAB4P/wAA/x8AHx//AAD/vwAfv/8AAP//AB///wAA//8AH///AAAoAAAAIAAAAEAA - AAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgIAAgAAAAIAAgACAgAAAwMDAAICA - gAAAAP8AAAAAAAD//wD/AAAA/wD/AP//AAD///8AAIAAAJmZmZmZmZmZmZmZkAAJmZmZmZmZmZmZmZmQ - AAIiIJmZmZmZkAAACQAAAAIiIiIJmZmZmQAAAAAAAAAAIiIiIJmZmZAH7u5wDu7mcAIiIiCZmZmQDuZu - 5w7u7uYAIiIgmZmZmQAABuYO4ADucAIiIJmZmZmQAAfmDuAADuACIiCZmZmZAAdu5w7gAAbgAiIgmZmZ - kABu7mAO4AAG4AIiIJmZmQAO7ncADuAABuACIiCZmZAADuAAAA7gAA7gAiIgmZmQAA7gAHAO4ADucCIi - IJmZkAAG7m7gDu7u5gIiIiCZAAAHcG7ucA7u5nAiIiIgmQAHfmcAAAcAAAACIiIiIJkAAO7mZ3dnd3dw - IiqqIiCZAAAO7mZ3Znd3cKqqqqIgmQAAAO7mZmZmd3CqqqqqIJkAAABu7mZmZ2d3CqqqqqCZB2Zmbu7m - cAB3d3CqoAAJmQd2ZmbuZwAAB3d3AAdwmZkHd2ZmbmcAAAdnd3d3YJmZB3d3Zm7mYABmZ3d3d3CZmQAA - AAZm7u5mZmZ3AAAAmZmZkAB2Zm7u5mZmZ3AAmZmZmZAHdmcA7ubgBmZ3AJmZmZmQd3ZwkO7u4JBmdnCZ - mZmZmQd3CZBu7uCZBmcJmZmZmZmQcJmQZu7gmZBwmZmZmZmZmQmZkGbu4JmZCZmZmZmZmZmZmZAAAACZ - mZmZmZmZ///+H///4A/+BAAH/AAAA/gAAAP4AAAD/AAAA/4AAAP8AAAD+AAAA/AAAAPgAAAD4AAAA+AA - AAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAHAAAADwAAAA8AAAAPAAAAD+AAAD/gAAA/4CAgP/Bg - MH/44Dj//eA9///gP/8oAAAAEAAAACAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - gAAAgIAAgAAAAIAAgACAgAAAwMDAAICAgAAAAP8AAAAAAAD//wD/AAAA/wD/AP//AAD///8AAIAAAJmZ - mZmZmSKZmQAAAAAAIimZBu5wbmcCIpkAdmDgdgIimQdmcOAOAiKQBmcA4HYCIpAH7mBuZwIiAGAAAAAA - qiIADmZmdyqqogd25gB3cqoiBmbmAHdwIpkAB25nZnAAmZB3YO4HZwmZkHcA7gB2CZmZAJBuCQCZmZmZ - kAAJmZmZ//OZAMAB5w7AAAbgwAAgmcAAkACAAGAOgAAG4AAAIJkAAAAOAAAADgADBuAAAyCZgAcADoAH - AA7ITw7g+H8gmSgAAAAwAAAAYAAAAAEACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBQQACAcGAA0M - CwCdiWYAn4xpAKWTcgCpl3YAHBkUAKyaewCxoIEAt6eKAMGymADEtZsAzb+nAMu9pQDYzLYA1cmzAN3R - vADh1sIA3tTCAOrgzgDp380A7OLRAOTbywDi2ckA8unZAPTr3ADz6tsA8unaAPHo2QDu5dYA7eTVANrT - xwAbGBIAoY9sAKORbwAmIhoAXlVDALSkhgBLRTkAuquOALytkQC/sZUAx7mfAMm7oQDSxa0Az8KqAERA - OADZz7sA593KAOPZxgDb0sEA39bFAO3k0wDw59YA7uXUAOjg0ADn388A5d3NAPTs3ADq4tMA8enaAO/n - 2ADu5tcA7eXWAHpvVgAuKiEAj4RrADQwJwCTiG8AnZJ6AKGWfgCil4AAnZN+AKmfiQCupI4AraONALWr - lQCyqJMAu7GcALatmgDFvKgAzsWxAMa9qgDJwK0Ac29mAF1VQQBwZk8AW1NAAIN4XQCCd1wAf3RaAGti - TABIQjMAGBYRAIV6XwBoX0oAXlZDADs2KgCGe2AAe3FYADIuJABMRjcAiH1jAIyBZwCSh20AHRsWAJSK - cQCbkXkAmY93AKSaggCelH0AdG1cAKWbhAConocAp52GAKyiiwCroYoAuK+ZALatmACzqpUAubCbAL20 - nwC8s54AxLumAMK5pADBuKMAwLeiAL62ogDUzLkAPzosAGtiSwBhWUQAVE07AE5INwBuZU4AZFxHAF1W - QgBZUj8Ac2pSAGhgSgBEPzEAiX9lAI2DaQCXjXMATkk8AKKZggBvaVkAsKeQAK6mkAAeHBYAIR8YAAMD - AgAAAAAAADAuAALAugABcWwAAW5qAAKhnAACmpUAApeSAAKTjgACkIsAAoyHAAO7tQACgHsAAn55AAJ+ - egACfHcAAnx4AAJ7dgACenUAAndzAAJ2cQACdHAAAm9rAAJtaQACa2cAAmdjAAJgXQACwr0AAr24AAK3 - sgACs64AAq2oAAF1cgABbGkAAWNgAAFaWAADxL4AAqWhAAKJhQAChoIAAoSAAAKCfgABR0UAAoB9AAJ9 - egACe3gAAnl2AAJ4dQACd3QAAnVyAAJzcAACcm8AAnFuAAJwbQACbWoAAmtoAAJpZgACaGUAAmViAAXJ - xAAFwLsADcbCABTMygAAGhoAABERAAAICAAZ09MAH8/RACbX2QAkzs4AIc7RAC7e4gA12d8AOuLpAEPb - 5ABH5e8AQ9PeAP///wDu7u4A3t7eAM7OzgC6uroAuLi4ALW1tQCqqqoAmZmZAJSUlACIiIgAenp6AHV1 - dQBlZWUAVVVVAERERAA6OjoAMDAwACsrKwAkJCQAIyMjACAgIAAbGxsAFxcXABAQEAAAAAAAmZmZmZmZ - mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZn/////mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ - mZmZmZmZmZmZmZmZmZn///+qqqjH/5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZn/ - ///Myqyrqamoqv+ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZn/u7Kxr67IxqaoqMv/ - mZmZmZmZmZmZmZmZmZmZmZn/////////mZmZ/////////////7O70q+uqqaoqa7R/5mZmZmZmZmZmZmZ - mZmZmf/9//v//////5mZ//////////////+8s9LOyamopq2xs/+ZmZmZmZmZmZmZmZmZ///y6Obm5ubu - /v+Z//Lm5ubm5ury+///vLuxy6mqxayxs/+ZmZmZmZmZmZmZmZmZ/+rm5ubm5ubm5/v6//Lm5ubm5ubm - 5vL//7yyzqqrxayws/+ZmZmZmZmZmZmZmZmZ/+bm5ufq6Obm5ur///Lm5ubm5ubm5ubt//+7navIxcjP - s/+ZmZmZmZmZmZmZmZmZ//Pm7v8C//Dm5ub///Lm5vL////t5ubm8P+7uqusp8ivu/+ZmZmZmZmZmZmZ - mZmZmf/////////m5ub///Lm5vL/8vb/7ubm5vv/usjIp6vOu/+ZmZmZmZmZmZmZmZmZmZn///////Xm - 5ub///Lm5vL/7+z//+jm5vDYusfIparN0/+ZmZmZmZmZmZmZmZmZmf/////77ubm5uf/IfLm5vL/7+v/ - 2fDm5ur/namrpanM0/+ZmZmZmZmZmZmZmZmZ//z/8+nm5ubm5vKYB/Lm5vL/7+z/mvXm5ub/nKWowqbL - sv+ZmZmZmZmZmZmZmZn/Av7p5ubm5ubm8v+Xl/Lm5vL/8O3/w/Xm5ub/ucGmwaeusv+ZmZmZmZmZmZmZ - mf9i/+rm5ubm6PD7/ySNJPLm5vL/8O//mvPm5uf/qb/EwMSt0v+ZmZmZmZmZmZmZ/41C/ubm5u33//+W - Yl1dJPLm5vL/8vH//+7m5u3awaLBv8Ks0f+ZmZmZmZmZmZn/hmZl9ebm5v769P9CZWWGQvLm5vL///// - 9+bm5vOao6C/o8HIsf+ZmZmZmZmZmZn/hYVi9+bm5vv/+P/19ACNQvLm5vL/+f/15+bm6P+8oJ6josCr - 0P+ZmZmZmZmZmZn/Vlhd/+fm5un09e7m5/cHRPLm5ury8u3m5ubm9dmgnr6iosCqsP+ZmZmZmZmZmZn/ - iIRhAfLm5ubm5ubm5uqWYvLm5ubm5ubm5ubz/8u+uLihob+or/+ZmZmZmZmZmZn/XIxbVf/y5ubm5ubm - 6feXjfLm5ubm5ubm6vf/u7i4t7egoaOmr/+ZmZmZ////////i1o4GFX/+/Lq6u70/2pwJ/Xy8vLy8vP7 - /5qit7a2pKSgoKOnzv+ZmZmZ/2aGhmb/WT1AORiAjZZqal4vk5JJk5EnXY1lYmL/nqSktbW15eWfoKOl - zf+ZmZmZ/4qKior/HBsdQDkYM1tBQYRQeJVKkkZrQ46EQWT/vb294+Pj3tfWn6KlzP+ZmZmZ/4iIiIiI - GxwbGR84FxNaWoh9enZOdXFGkGmIWlr/1OTk4+Hd39fW1Z/Crv+ZmZmZ/1dXV1dXVxsbGxkfOBcTWYhU - fXt2lHVuRpCIWWf/5OTk4+Hd3NfWtJufrv+ZmZmZ/2RkZGRkZGQbGxs+HzgYM4FSU317d5R1SGxrQ45j - /+Tk4uDd29fWtLSbn/+ZmZmZ/1lZWVlZWVlZGxsdPjw5GDOBUlN+T01Lckdta4+OX//k4uDd29fUvbS0 - m/+ZmZmZ/1lZWVlZWVlZWRsbGz88OjQwgVJRgE94THNHbUWPZ1//4uDd29fU1P///5mZmZmZ/wUIJikM - DhARMTcbGz0ePDo0MIiIiIiITnRub5BpaGdf/+Dd2////zz/mZmZmZmZ/yIFCCYpKw0QExU2GxwdHziI - iIuLi4uLiIh1bkaQaWhnWf///5J4UyD/mZmZmZmZ/wMiBgkKKisuDxIUNhsbHYiHh4eHh4eHh4eISkhs - a0OOY1laZ2tzUFT/mZmZmZmZ/wMDIwYJKAssLTAyFh0bG4iMjIyMYIyMjIyIS3JHbWtDjmNZWo5tSnn/ - mZmZmZmZ/wMDBCMICSgMDi0RMjUcGz2IiIiIiIiIiIhPTUtzR21Fj2dfWVlobEv/mZmZmZmZ/wMDAwQF - CCYpDA4QETE3GxsZHoiIiIiIVHyAeU50cW+QaWhnX1pfQ2//mZmZmZmZ//////+CYWFhYWENEBIVNhsc - GR84FxMwUlR8endOdW6JiYmJiYL/////mZmZmZmZmZmZmZn/YWFhWSorLg8SFB0bGx0fORgzgVJUfXt3 - lEpIWSWJJf+ZmZmZmZmZmZmZmZmZmZn/XINZCSgLLC0wMhYdGxs+PDkYM4FSU397TUtyR1lcXP+ZmZmZ - mZmZmZmZmZmZmZn/QVkjCCYoDA4t//81GRs9Pzw6NDD//1GAeXhMc29ZQf+ZmZmZmZmZmZmZmZmZmZn/ - WQMEBQgmKQz/mf8xNxscPR48FzT/mf98enlOTHFvWf+ZmZmZmZmZmZmZmZmZmZn/AwMDIgUIJv+Zmf8S - FDYbGx0fOBf/mZn/fXp3TnVuRv+ZmZmZmZmZmZmZmZmZmZmZ/wMDAyIF/5mZmf8PEhQ2Ghs+Hzj/mZmZ - /317d5RK/5mZmZmZmZmZmZmZmZmZmZmZmf8DAwP/mZmZmf8tMDIWGRscPjz/mZmZmf9+T03/mZmZmZmZ - mZmZmZmZmZmZmZmZmZn/A/+ZmZmZmf8OLREyNRkbPT//mZmZmZn/gP+ZmZmZmZmZmZmZmZmZmZmZmZmZ - mZmZ/5mZmZmZmf8MDhARMTccGxn/mZmZmZmZ/5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmf8p - Kw0QEhU2Oxv/mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmf//////////////mZmZ - mZmZmZmZmZmZmZmZmZmZmZmZ/////+H/AAD/////AP8AAP////gAfwAA////+AA/AAD/4DgAAB8AAP/A - GAAADwAA/4AIAAAPAAD/gAAAAA8AAP+AAAAADwAA/4AAAAAPAAD/wAAAAA8AAP/gAAAADwAA/8AAAAAP - AAD/gAAAAA8AAP8AAAAADwAA/gAAAAAPAAD8AAAAAA8AAPgAAAAADwAA+AAAAAAPAAD4AAAAAA8AAPgA - AAAADwAA+AAAAAAPAAAAAAAAAA8AAAAAAAAADwAAAAAAAAAPAAAAAAAAAA8AAAAAAAAADwAAAAAAAAAP - AAAAAAAAAA8AAAAAAAAAHwAAAAAAAAA/AAAAAAAAAD8AAAAAAAAAPwAAAAAAAAA/AAAAAAAAAD8AAAAA - AAAAPwAAAAAAAAA/AAD4AAAAA/8AAPgAAAAD/wAA+AAAAAP/AAD4AQAQA/8AAPgDABgD/wAA/AcAHAf/ - AAD+DwAeD/8AAP8fAB8f/wAA/78AH7//AAD//wAf//8AAP//AB///wAAKAAAACAAAABAAAAAAQAIAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAABsaGwBJRUAA8ujaAOLWwwDVy7sA/vTkAPjv4QCZhmMAeGlOAKqV - bwCOfF0ArJdxAJOBYQA5MiYAoo9tAH1uVQC1oH0Aqph3AK2bewC5poUAp5d6ALmpjAC3qZEA2cy2ANzQ - ugDWzLoA593LAO7k0wDt49IA6+HQAOfezgDx6NgA6+LTAPTr3ADz6tsA8OfYAPfu3wDz690A+fHjAC0o - HgCdjGoAFhQQALWlhwCyo4UAJCEbAMO1mQC4q5MAo5iCAJ2TfwCelIEA0sWtAOHUvAC1q5cAzMGrAJOL - ewDl2sUA7OHMANPKuAD37dkA6d/MANnQvgDXzr0AyMCwAHx3bQD47tsA5NvKAOLZyABNSkQA9+7cAPLp - 2ADw59YA/fTjAOzk1ADp4dEA7+fXAOvj1AD17d4A9OzdAPHp2gDt5dYAQD46AGVbRgBWTjwAd2xUAGxi - TAA2MSYAYFdEAJCEagCbj3UAiH5oAJuQdwCbkHgAnZJ7AKSZggCnnIUAzL+kAHNsXQCxp5EAmpF+ALCm - kQCto44Aw7mjALqwmwCxqJUAu7KeAL+2ogDDuqcA0sm2AN3VxADm39AAXVQ+AGddRgB1alAAY1pFAF1V - QQByaFAAaF9JAHBmTwBEPjAAlIdpAIl9YQB/dFoAeW9WAHFnUABIQjMAhXpgAEhCNACLgGUAgXdeAI2C - aACIfmUAb2dTAJaLcQAoJR4AkohvAGFaSgCXjXUAkohxALSpjwChl4AArqSNAKifiQCroowAsaiSAMa8 - pAC4r5kAt66YAMC3oQC9tJ8AxLumAP/45wBmXUUAaWFKAFVOPABkXEcATUc3AG1lTwBqYk0AeG9YAIF4 - YABxaVQAkIZsAIqCbACEfWsAtq2WAP/56QAdGxUAMS4lABAPCgD///0AW1taAAAAAAAABwYADSUjAACz - rQABuLIAAWllAAFbWAACm5YAApOOAAKOiQACiIMAAVVSAAKAfAACfnoAAn14AAJ8dwACe3cAAnl1AAJ2 - cgACcW0AAm9rAAJtaQABPDkAAlxZAAJWUwAMKyoADCgnAA0nJgANJiUADSUkAAAoJwABZGEAA8jCAAKk - nwACnZkAApWRAAKKhgAChYEABNLNAAJ3dAACdHEAAnNwAAJybwACcW4AAm1qAAJraAACamcAAmlmAATB - vAACX10ABq2oAA3Z1gAOv7wAEcnHAAAJCQAb09MABBoaACPMzgAiw8UAByIiAC/x9QAq2NsAKLG1ADjX - 3gBA3OUAPM3UAE3z/gA4u8QA////AO7u7gDm5uYA3t7eAM7OzgC6uroAra2tAJubmwCZmZkAgICAAHd3 - dwBlZWUAMTExACUlJQATExMAAgICAAAAAACrq6urq6urq6urq6urq6urq6urq6urq62tra2rq6urq6ur - q6urq6urq6urq6urq6urq6utra2t3Lq3wq2rq6urq6urq6urq////////6v//////63/trDZ19W4wq2r - q6urq6urq6v////////8////////////tsrA1b29w62rq6urq6ur///68O/v8Pn///Hv7+/0+v//ttnW - 077Axqurq6urq6v//+/v8/Pv76r/8e/v7+/v9P//sb7T1dqtq6urq6urq6v//////fXv9f/x7/////Dv - 9//B1L3U2Mirq6urq6urq6v///z/9+/0//Hv///j/+/v/8HTvdPAyKurq6urq6ur+/3/qvTv7/n/8e// - /+bj8u//wby70r/Hq6urq6urqyn/+/Lv7+/0p//x7///5sn07//BuLm8vserq6urq6spUv/w7+/2qlV2 - //Hv///j4fLv/8HQt7nUxqurq6urKXxS/+/v//+m////8e///6z/7+//wbTQt9PGq6urq6spUlL/7+// - ///4///x7//+//Dv9/+yzs/Q0serq6urqylWdv/z7/D07+////Hv7+/v7/P/sczNtNC8xqurKSkpAFEx - Afv07+/v+P//8e/v7/L3/7HdrsyztbvGq6spm5uojSVsP///////Nv///////8Wxrq/f3bPPucWrqyx0 - cX5NAkttPYKXYmaOL4iGnHrFy9vk5Orlzc+4xaurhXp1dTAGIUhJPZ9klZKMXVyegMXn6+vq5ODbsrjG - q6sneHl5cC8kAk8eQhk1amZjL1qhxezt6+ji4MvbzMSrq6d3f4FXeGYmTktBQms0Y41hXYiBxe7n6OLe - 0a+vxaurDRAqLTUYGh8iIyJponF0mFmLi4SBxenn4sXFxcWrq6tVCxEqLV8YOwImPm5ve3V1b51eXIZ/ - xcXFYDYnq6urqw0JDhIVLTIzHSRsnG6aUZpyn2FeW4Z/fYChpCerq6urJwcKKBQrLjUDHCYeZ52DoGeU - kYxdhoJ9gHqJJ6urq6tDQ0NDQ1JUFhc3RSRMSh5sOTVpNIxZcXJDQ0NDq6urq6urq0OaUystXzMEIE0f - IEI8amhlj4yEc3ZDq6urq6urq6urQ3koEipfNkNDBSJKSUZQQ2iTYY1YmUOrq6urq6urq6tDDA4OE1lD - q0NAIiJPREOrQ5SUZIqHQ6urq6urq6urq6tDBwkPQ6urQzgbIQJHQ6urQ2iQo0Orq6urq6urq6urq6tD - CEOrq6tDMzdGIqVDq6urQzZDq6urq6urq6urq6urq6tDq6urq0MzNzqWqUOrq6urQ6urq6urq6urq6ur - q6urq6urq6urQ0NDQ0NDQ6urq6urq6urq6urq6ur///+H///4A/+BAAH/AAAA/gAAAP4AAAD/AAAA/4A - AAP8AAAD+AAAA/AAAAPgAAAD4AAAA+AAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAHAAAADwAA - AA8AAAAPAAAAD+AAAD/gAAA/4CAgP/BgMH/44Dj//eA9///gP/8oAAAAEAAAACAAAAABAAgAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAA0MCmAMe5ogDy6NgA7uTUAPfu4ACAcVYAtqF9AObaxQDo3coA1827AOng - 0ADo388A/vXlAPrx4QD37t4AxrKNAKubfQConIUAuK6aAOvfxwDHvakAzcSzAPDo2QD58eIAbWJLAEQ+ - MQCpm30AppqAAJiNdQCRinsAt6+dALqyoACGe2AAiH1iAHRrVgCQhm0AmI52AExHOwCakHgAo5mCAKac - hQC7sZoAn5eDAEpFOAC6sJYAuK+YAL61ngC1rZgAo5yKAP//8gAAAAAAAVFOAAGuqQACz8kAAoJ+ADDw - 9AAw7/MA////AL+/vwBBQUEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMjIyMjIyMjIyMjMzMjIyMjw8PDw8PDw8PDw1NDMyMjI8Ojk5 - Ozw6OTo7PDQ2MzIyPDw7Ojo8OTw7Ojw0NjMyMjw7Ojo7PDk8PDk8NDYzMiU8Ojo7PDw5PDs6PDQ2MzIl - PDs5OTo8Ojk6Ozw0NjM8JRU8PDw8PDw8PDw4ODYzJSUlFgsSFC0kITM4ODg4MyUaGwkECiUlKBwgMzc4 - MzMlDwAHDR8lJSInKxkzMzIyJSUlEQgCHiovLiYlJSUyMjIlGBABJRcOJR0pIyUyMjIyJQUGJSUDDCUl - MCwlMjIyMjIlJTIlEzElMiUlMjIyMjIyMjIyJSUlJTIyMjIyMjL/86urwAH7/cAA9O/AAP/xwAD/5oAA - 7/+AALvSAACrqwAAq6sAAP/7AAPv7wAD//GAB//mgAfv/8hPubz4f6urKAAAADAAAABgAAAAAQAgAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAA - AAQAAAAGAAAACQAAAAwAAAAPAAAAEQAAABIAAAASAAAAEAAAAA4AAAAMAAAACgAAAAkAAAAKAAAADAAA - AA0AAAAOAAAADwAAAA8AAAAOAAAADQAAAAsAAAAJAAAABwAAAAUAAAADAAAA/wAAAP8AAAD/AAAA/wAA - AH8AAAB/AAAAfwAAAH8AAAA/AAAAPwAAAB8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAEAAAACAAAABQAAAAkAAAAOAAAAFAAAABkAAAAeAAAAIQAAACIAAAAhAAAAHwAAABwAAAAYAAAAFQAA - ABQAAAAVAAAAGAAAABoAAAAcAAAAHgAAAB4AAAAdAAAAGwAAABgAAAAUAAAA/wAAAP8AAAD/Anp2/wJ6 - dv8Ce3f/Anl2/wAAAP8AAAB/AAAAfwAAAH8AAAB/AAAAfwAAAD8AAAAfAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAIAAAAFAAAACgAAABEAAAAZAAAAIgAAACsAAAAxAAAANQAAADcAAAA2AAAAMwAA - AC4AAAApAAAAJgAAACQAAAAlAAAAKQAAACwAAAAwAAAAMgAAADIAAAAxAAAA/wAAAP8AAAD/AnJu/wJ1 - cv8Cd3P/Anl1/wJ8eP8CfHj/Ant3/wJ6dv8AAAD/AAAAfwAAAH8AAAB/AAAAfwAAAH8AAAA/AAAAHwAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAAIAAAADwAAABoAAAAoAAAANAAAAEAAAABIAAAATQAA - AE8AAABOAAAASwAAAEUAAAA/AAAAOgAAADgAAAA5AAAAPgAAAEMAAABIAAAASwAAAEwAAABKAAAA/wFj - YP8CZmP/Amtn/wJva/8CdHD/Anh0/wJ7eP8CfXn/Ant3/wJ8d/8Cc2//AAAA/wAAAH8AAAB/AAAAfwAA - AH8AAAA/AAAAPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAALAAAAFgAAACQAAAA1AAAARQAA - AGcAAACHAAAAigAAAIsAAACLAAAAXgAAAFgAAABTAAAATgAAAEsAAABMAAAAUQAAAFYAAABaAAAAXgAA - AF8AAABdAAAA/wFaV/8BXVv/AWJf/wJoZP8Cb2r/AnRx/wJ6dv8CfXn/Anx3/wJ8eP8CdHD/Amll/wAA - AP8AAAD/AAAAfwAAAH8AAAA/AAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAUAAAANAAAAGgAA - ACoAAACXAAAA6AAAAP8gICD/RERE/0RERP8AAAD/AAAA/wAAAMIAAABtAAAAXwAAAKcAAAD/AAAA/wAA - AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wEtLP8BS0n/AVtY/wFgXf8CaGX/AnBs/wJ3dP8CfXj/Ant3/wJ9 - ef8CdnH/Ampn/wJfW/8AAAD/AAAAHwAAAB8AAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA - AAUAAAAOAAAAKQAAAMYAAAD/dXV1/97e3v//////////////////////mZmZ/xAQEP8AAAD1AAAAfgAA - AK11dXX///////////////////////////+6urr/dXV1/yAgIP8AAAD/AS8t/wFbV/8BYl//Amtn/wJz - cP8CfHj/Anp2/wJ9ev8Cd3L/Amtn/wJfXf8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAQAAAAUAAAANAAAAZhAQEP+6urr//////////////////////////////////////+7u - 7v8gICD/AAAA3AAAALZ1dXX///////////////////////////////////////////91dXX/AAAA/wAd - HP8BXFr/AWZj/wJwbf8Ce3b/Anp1/wJ9ev8Cd3P/Amxp/wJhXf8AAAD/AAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAALAAAAZFVVVf/////////////////u7u7/urq6/97e - 3v////////////////+6urr/AAAA/wAAAMF1dXX///////////////////////////////////////// - ////////qqqq/wAAAP8AKij/AWNf/wJuav8CeXX/Anh1/wJ9ev8CeHT/Am1q/wJhXv8AAAD/AAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAAJAAAAYgAAAP9lZWX//////5mZ - mf8AAAD/AAAA9QAAAP+JiYn/////////////////ICAg/wAAAMZ1dXX///////////91dXX/AAAA/wAA - AP8wMDD/qqqq/////////////////4mJif8AAAD/AVVS/wFsaf8CeXT/Andz/wJ+ev8CeHT/Am5r/wJi - X/8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAAIAAAAFgAA - AIMAAAD/RERE/wAAAP8AAAC/AAAAaQAAALwAAAD/////////////////RERE/wAAAMR1dXX///////// - //91dXX/AAAAvAAAAIoAAADFAAAA/5mZmf////////////////8gICD/ACwr/wFsaP8CeHX/Anh0/wJ+ - ev8CeXX/AnBs/wJkYP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA - AAMAAAANAAAAJgAAAEgAAACLAAAAkAAAAI4AAAB5AAAAxAAAAP9ERET/////////////////MDAw/wAA - AP91dXX///////////91dXX/AAAA/wAAAGoAAABJAAAA/wAAAP/e3t7///////////+JiYn/ABoa/wFs - af8CeXb/Anh0/wKAe/8Cenb/AnFt/wJlYf8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAQAAAAgAAAAeAAAAPwAAAFoAAABtAAAArQAAAOUAAAD/ICAg/5mZmf////////////// - ///u7u7/AAAA/xsYEv91dXX///////////91dXX/AAAA/wAAAGoAAABHAAAA/wAQD/+JiYn///////// - //+6urr/AAAA/wFuav8CfHj/Anl1/wKAe/8CfHj/AnJu/wJlYv8AAAD/AAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAABkAAAA4AAAAUQAAAP8AAADkAAAA/2VlZf/Ozs7///////// - //////////////////91dXX/AwMC/xwZE/91dXX///////////91dXX/AAAA/wAAAG0AAABMAAAA/wA4 - N/9ERET/////////////////AAAA/wFxbP8Cf3v/Ant3/wKCfv8CfXn/AnNv/wJnY/8AAAD/AAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAC0AAABIAAAA/w8OC/8QEBD/zs7O//// - /////////////////////////////3V1df8AAAD/IB4X/yEeF/91dXX///////////91dXX/AAAA/wAA - AHMAAABXAAAA/wFHRf9ERET/////////////////AAAA/wF1cv8ChID/An55/wKEf/8Cfnr/AnRw/wJn - ZP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAADYAAAD/OTQo/wAA - AP+6urr//////////////////////97e3v+JiYn/ICAg/wAAAP8kIRn/RD4w/yUiGv91dXX///////// - //91dXX/AAAA/wAAAH0AAABtAAAA/wAtK/9lZWX////////////u7u7/AAAA/wJ8eP8CiYX/AoB9/wKG - gv8Cf33/AnVx/wJoZf8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAA - AP9FPzH/MCsh/xAQEP////////////////+qqqr/MDAw/wAAAP8AAAD/HhwW/zw3K/9HQTL/SUM0/ygk - HP91dXX///////////91dXX/AAAA/wAAAIsAAACFAAAA/wAAAP+ZmZn///////////+qqqr/AAgI/wKE - gP8Cj4v/AoSA/wKKhf8Cg37/AnZz/wJpZv8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAA/05HN/9LRTb/NC8k/0RERP////////////////8QEBD/AAAA3QAAAKsAAAD/Lysh/zEt - I/8zLyT/Tkg3/ysoHv91dXX///////////91dXX/AAAA/wAAAJIAAACuAAAA/zAwMP////////////// - //9lZWX/ACsp/wKNh/8Cl5L/AoiE/wKMiP8Cg3//Anh0/wJqZ/8AAAD/AAAAAAAAAAAAAAAAAAAAAAAA - AAQAAAAMAAAAEAAAABAAAAAQAAAA/1VOPP9TSzr/OTQp/zAwMP////////////////8gICD/AAAA/wAA - ANQAAAD/RERE/1VVVf8GBQT/RUAy/y8rIv91dXX///////////91dXX/AAAA/wAAANsAAAD/RERE/+7u - 7v///////////97e3v8AAAD/AVRS/wKXk/8Cn5v/AoyH/wKPiv8ChoH/Anl1/wJraP8AAAD/AAAAAAAA - AAAAAAAAAAAAAAAAAAwAAAAkAAAAMAAAADAAAAAwAAAA/11VQf9bU0D/R0Ay/wAAAP/u7u7///////// - ///Ozs7/VVVV/0RERP+ZmZn//////+7u7v8wMDD/GxkU/zQwJ/91dXX///////////+6urr/dXV1/3V1 - df+qqqr//////////////////////0RERP8AEhL/ApiT/wKhm/8CpqL/ApCM/wKRjP8ChoL/Anp2/wJt - af8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAQAAAAEAAAABAAAAA/2NbRv9iWkX/X1dD/wgH - Bv91dXX///////////////////////////////////////////+6urr/HhwX/zo2LP91dXX///////// - ////////////////////////////////////////ZWVl/wAAAP8Bc3D/AqSf/wKqpf8Crqr/ApOO/wKT - jv8CiYT/Ant3/wJua/8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAQAAAAEAAAABAAAAA/2ti - TP9pYEv/f3Ra/3NuZv8AAAD/dXV1/////////////////////////////////87Ozv8wMDD/IiAb/0M+ - Mv91dXX//////////////////////////////////////7q6uv8wMDD/AAAA/wFkYP8Cq6b/Aq+p/wKy - rf8CtK//ApWR/wKUj/8Ci4b/An15/wJva/8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAA - AP8AAAD/AAAA/3NoUf+Cd1z/6ODR/+DYyf9zb2b/AAAA/yAgIP91dXX/urq6/7q6uv+ZmZn/VVVV/wAA - AP8cGxf/dG1c/0pFOf9ERET/dXV1/3V1df91dXX/dXV1/3V1df9lZWX/ICAg/wAAAP8BLy3/ApCL/wKz - rv8CtrH/Ariy/wK6s/8CurT/ApeS/wKXkv8Ci4f/An56/wJwbf8AAAD/AAAAAAAAAAAAAAAAAAAAAAAA - AP9NRzf/Tkc3/05INv9NRzf/AAAA/4N4Xf/x6dr/7eXW/+ff0P/h2cj/vLWm/0M9MP8eHBb/HhsV/x4b - Ff8YFhH/REA4/29pW/+hmIP/nZN+/29oV/9OSTz/S0U4/0dCNf9EPzL/MS0j/zw3Kv88Nyv/AAAA/wOi - nf8DurX/A7y2/wK8t/8Cvbj/Ar+4/0LT3v9D093/ApqV/wKYk/8CjYj/An97/wJxbv8AAAD/AAAAAAAA - AAAAAAAAAAAAAAAAAP9ZUj//WVI//1lRP/9ZUT7/AAAA//Lp2v/z6tv/8OjZ/+3l1v/n39D/4drK/9vT - wf9+dFr/em9W/3pvVv9gWET/t62a/7Oqlf+uppD/qZ+J/6Kagv+cknv/k4py/46Da/+Jf2X/YFhE/3pv - Vv97cVf/AAAA/wPEvv8DxL7/A8S+/0Xa5P9E2eP/Rdji/yTOzv8aycj/EMTB/wKalf8Cj4r/AoB8/wJy - b/8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP9kXEf/ZFxH/2RcR/9kXEf/ZFxH//Pq2//y6dr/8+rb//Hp - 2f/t5dX/6ODQ/+Pbyv/d1cP/gXdc/4F3XP9jW0b/wrmk/720n/+4r5n/saiS/6uhiv+lm4P/nZN7/5eM - c/+Rh23/Y1tG/4J3XP+Cd1z/AAAA/wPLxP9I4ez/R+Dq/0Hc5f822N//K9PX/yHO0f8Yycn/DsXC/wXA - u/8CmpX/AoJ+/wJ0cP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP9wZk//cGdP/3BmT/9wZk//cGZP/3Bm - T//z6tv/8+rb//Lq2//x6dn/7eTV/+jg0P/k28r/3dTD/4N4Xf9kXEf/ycCs/8K5pf+9s57/uK+Z/7Gn - kf+roYr/pJqC/52Sev+XjXP/ZFxH/4N4Xf+HfWL/AAAA/0nn8v9I5fD/RuPt/z/f5v802t//KdXY/x/P - 0f8Uy8n/DMbB/wPBvP8CwLr/ApuW/wJ0cf8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP97cFf/e3FX/3tw - WP97cVj/e3FY/3twWP97cVj/8+rb//Pq2//y6tv/8OfY/+zk1f/o4ND/4tnJ/9vSwf/Vzbr/z8Wy/8i+ - qv/CuaT/vLOe/7atl/+wpY//qqGJ/6KXgP+bkHj/lYpx/4+Fa/+Kf2X/hntg/wAAAP9J6PP/RuXw/zzg - 6P8x2+H/J9bY/xzR0v8TzMr/CcfD/wLDvv8Cwrz/AsC6/wKblv8AAAD/AAAAAAAAAAAAAAAAAAAAAAAA - AP+DeF3/g3hd/4N4Xf+DeF3/g3hd/4N4Xf+DeF3/g3hd//Pq2//z6tv/8eja/+/n2P/r49P/5t7O/+HY - x//a0cD/1My5/87Fsf/Gvan/wbij/7uxnP+1q5X/rqSO/6ieh/+hl3//mo93/5SKcP+Og2n/iX5k/4V6 - YP8AAAD/Refx/zrj6f8v3eH/Jdja/xvS0v8Qzsr/B8jE/wPFv/8Cw77/AsK8/wLAuv8AAAD/AAAAAAAA - AAAAAAAAAAAAAAAAAP+DeF3/g3hd/4N4Xf+DeF3/g3hd/4N4Xf+DeF3/g3hd/4N4Xf/z6tv/8+rb//Lq - 2//u5tf/6uLS/+Xczf/g18b/2dC+/9LKt//Mwq//xbyn/7+2of+6sZv/s6qU/62kjf+nnYb/oJV9/5iO - dv+TiG//joRp/4h9Y/+Fel//AAAA/zjk6/8t3uL/Itnb/xjU0v8Nzsv/BcrE/wPHwv8AAAD/AAAA/wAA - AP8AAAAQAAAAAAAAAAAAAAAAAAAAAAAAAP+kknH/q5l6/7Sjhf+8rJD/xLab/8u9pf/VyLH/3tK9/+fc - yv/u5dT/8+vb//Pq2//x6dr/7ubW/+ri0v/l3cz/3tXE/9jQvf9kXEf/ZFxH/2RcR/9kXEf/ZFxH/7Kp - k/+soov/pZqD/56UfP+YjXT/kodu/4yBZ/+IfWP/hHlf/wAAAP8q4OP/INvb/xXV1P8AAAD/AAAA/wAA - AP/o4dj/AAAA/wAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAP+hjmv/ppNy/62bfP+2pYf/va6T/8a4 - nv/Nv6f/1sq0/9/UwP/p383/8OfW//Pq2//y6dv/8OjZ/+3k1f/o4ND/ZFxH/2RcR/90alL/c2pS/3Rq - Uv9zalL/c2pS/2RcR/9kXEf/q6GK/6Sagv+dknr/l41z/5GGbP+LgGb/h31i/4R5Xv8AAAD/AAAA/wAA - AP+imYP/sqmX/8S8rP/a08f/AAAA/wAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAP+diWb/oo9s/6iW - df+vnn//t6eK/7+wlf/HuZ//zsGp/9jMtv/i18P/6uDP//Hn1//z6tv/8urb//Do2P9kXEf/bmVO/25l - Tv9uZU7/bmVO/25lTv9uZU7/bmVO/25lTv9uZU7/ZFxH/6qgif+imIH/m5F5/5WKcf+PhGv/in9l/4Z7 - Yf+EeV7/gndd/4h9Y/+UinP/pZyH/7Wsmv/IwLH/AAAA/wAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAA - AP+diWb/nYlm/6KQbv+pl3f/saGC/7mpjP/Bspf/yLqh/9HErP/bz7n/5NnF/+zi0f/x6Nn/8+rb//Lq - 2/9kXEf/aWBK/2hgSv9oYEr/aWBK/2hfSv9oYEr/aGBK/2hgSv9oYEr/ZFxH/66kjv+onof/oZd//5qP - d/+UinD/j4Vq/4l+ZP+Ge2D/g3hd/4J3Xf+JfmX/mI93/6ifi/+3r53/AAAA/wAAACQAAAAMAAAAAAAA - AAAAAAAAAAAAAAAAAP+diWb/nYlm/56LaP+kkXD/q5l5/7Khg/+7q47/w7SZ/8q9pP/Sxa7/3NC7/+Xa - x//t5NL/8ura//Pr2//x6dr/ZFxH/2RcR/9kXEf/ZFxH/2RcR/9kXEf/ZFxH/2RcR/9kXEf/urGb/7Sr - lP+upI3/p52G/6CVff+Zj3b/k4hv/42Daf+IfWP/hXpf/4N4Xf+DeF3/jIJo/5qRev+spI//AAAA/wAA - AAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAP+diWb/nYlm/52JZv+fjGn/pZNx/6uae/+0o4X/vKyQ/8S2 - m//LvaX/1cix/93Rvf/n3Mr/7uXU//Pq2//z6tv/8enZ/+7m1v9kXEf/ZFxH/2RcR/9kXEf/ZFxH/8vB - rv/Eu6b/v7ah/7mwmv+yqJP/rKKL/6abhP+elHz/mI50/5KHbf+Mgmj/iH1j/4V6X/+Cd13/hHlf/4+E - a/+elX//AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/Pzos/15W - Q/9eVkP/XlZD/15WQ/9eVkP/zb+n/9bJs//g1cH/6d7M//Dm1v/z69v/8unb//Hp2f/t5dX/6ODQ/+Pa - yv/d1MP/1868/9DItf/Jv6z/w7ql/720n/+3rpj/saiS/6uhiv+kmoL/XVZC/11WQv9dVkL/XVZC/11W - Qv8/Oiz/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAA/15WQ/9eVkL/XlZD/4N4Xf+/sZX/x7mf/8/Cqv/YzLb/4tfD/+rgz//x6Nj/8+rb//Lq - 2//w6Nj/7OTU/+ffz//i2sn/29LB/9XMuv/PxrL/yL+r/8K5pP+8s57/tq2Y/7CnkP+pn4j/opiB/4N4 - Xf9eVUP/XVZC/15VQv8AAAD/AAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAA/2tiTP9rYkv/g3hd/7Gggf+6q43/wbKY/8m7of/Rxa3/2s65/+PY - xf/s4tH/8ejZ//Pq2//y6tv/7+fY/+vj0//n387/4djH/9rRwP/UzLn/zsWx/8a9qf/At6L/vLOd/7Wq - lf+upY7/qJ2H/6GXf/+DeF3/a2JM/2tjTP8AAAD/AAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/3lvVv+DeF3/pJFv/6uaev+zo4T/u6yP/8O0 - mv/KvaT/0sWu/wAAAP8AAAD/7eTT//Lp2f/z6tv/8ena/+7m1//q4tL/5d3N/9/Wxv/Yz77/AAAA/wAA - AP/FvKj/v7Wh/7qwm/+0qpT/rqON/6eehv+flX3/g3hd/3lvVv8AAAD/AAAAFAAAAAQAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/4N4Xf+diWb/n4xp/6SS - cf+rmXr/tKOF/7yskP/Etpv/AAAA/wAAAAAAAAD/59zK/+7k1P/z69v/8unb//Hp2v/u5db/6uLS/+Tc - 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 - AAe//wAA//8AH///AAD//wAf//8AACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAEAAAADAAAACAAAABAAAAAZAAAAJAAAAC0AAAA0AAAANwAAADcAAAA1AAAAMgAA - ADAAAAAxAAAAMwAAADUAAAA1AAAANAAAADAAAABbAAAAWgAREbcBJST/ASUk/wAKCroAAACFAAAAaAAA - AEwAAAAZAAAAAAAAAAAAAAAAAAAAAQAAAAUAAAALAAAAFQAAACIAAAAwAAAAPQAAAEYAAABLAAAATAAA - AEoAAABHAAAARQAAAEYAAABIAAAASQAAAEoAAAC4AAAAuwAwMPABQkD/Al9d/wJ8d/8CgHz/AVxZ/wAD - A8IAAACEAAAAgwAAAFsAAAAcAAAAAAAAAAAAAAABAAAABgAAAA4AAAAZAAAAMQAAAHEAAACZAAAApgAA - AKkAAACMAAAAXwAAAFkAAAB9AAAAiAAAAIkAAACJAAAAiQEQEPkBU1D/AWBd/wFpZf8Camf/Am1q/wJy - b/8Cf3r/AlxY/wAGBtMAAACeAAAAbgAAADQAAAAAAAAAAAAAAAIAAAAGAAAADwAAAD8AAADFAAAA/wAA - AP9ERET/RERE/wAAAP8AAADYAAAAhAAAAOEAAAD/AAAA/wAAAP8AAAD/AAEB/wAWFf8BOzn/AV5b/wFk - Yf8CbGn/AnJu/wJ2cv8Cd3L/AlZT/wAJCcIAAAA2AAAADwAAAAAAAAAAAAAAAQAAAAYAAAAPAAAAkgAA - AP9lZWX/7u7u////////////7u7u/3V1df8AAADZAAAA3Lq6uv////////////////+6urr/ZWVl/wAA - AP8BMjH/AWJg/wJqZ/8CcW7/AnRx/wJxbf8CbWn/ARsb8wAAAAAAAAAAAAAAAAAAAAAAAAABAAAABgAA - AA8AAACfMDAw////////////zs7O/87Ozv///////////1hYWPcAAADeurq6//////////////////// - ////////urq6/xATE/8BSUf/Amtn/wJxbf8CdXH/AnJv/wJpZv8BGhjzAAAAAAAAAAAAAAAAAAAAAAAA - AAEAAAAGAAAAEwAAAE0AAADbaGho94ODg+QAAACVAAAA7aqqqv//////ra2t+gAAAN26urr//////09P - T9wAAACxREVF/+7u7v//////mZmZ/wAkI/8BbGn/AnNv/wJ2cv8Cc3D/Amto/wEaGfMAAAAAAAAAAAAA - AAAAAAAAAAAAAgAAAAoAAAAgAAAAQAAAAGcAAACfAAAAtAAAAN0AAAD/mZmZ//////+7u7r/BQQD/rq6 - uv//////RUVF/gAAAHgBExP6REVF////////////ICoq/wFvbP8CdHH/AnZz/wJ1cf8CbWn/ARoZ8wAA - AAAAAAAAAAAAAAAAAAAAAAACAAAAEAAAAC8AAABXAAAAywAAAOwAAAD/VVVV/7q6uv///////////3l5 - eP8PDgv/urq6//////9KSUj+AAAAfAAcHPgAGhn/3t7e//////9lZmb/AXRx/wJ5df8Cenb/Andz/wJv - a/8BGhrzAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAATAAAAPQgIBd4AAAD/MDAw/97e3v////////////// - //+7u7r/Mi8n/xAPC/+6urr//////0pKSP4AAACEAR0c+QAoJ/+6urr//////3V2dv8Cenf/An56/wJ9 - eP8CeXX/AnFt/wEbGvMAAAAAAAAAAAAAAAIAAAAHAAAACwAAAB0MDArQIh8Y/wAAAP/u7u7///////// - //+ampr9X15c/zYxJv9FPzH/ERAM/7q6uv//////S0tJ/gAAAIgAGBj6AAkJ/97e3v//////dXh4/wKE - f/8ChYH/AoF8/wJ8eP8Cc2//ARsb8wAAAAAAAAAAAAAACQAAABkAAAAkAQEBtEhCM/8kIBn/RERE//// - ////////NTU16QAAAMUdGxX/NjEm/0xGNf8VFA//urq6//////9MS0r+AAAAmwAHBv9ERET///////// - //8gOzr/Ao+K/wKNif8ChYH/AoB8/wJ0cf8BGxvzAAAAAAAAAAAAAAAOAAAAKwAAADoDAwHDVk48/yon - Hv8wMDD///////////8lJCP/AAAA/DAwMP9lZWX/MzAm/xwaFf+6urr//////0hHRv4AAAD9VVVV/+7u - 7v//////mZmZ/wFUUf8Cm5X/ApWR/wKJhv8Cg3//And0/wEcG/QAAAAAAAAAAAAAABAAAAAvAAAAQQEB - Ab9gV0T/RD0v/wAAAP/Ozs7//////+7u7v+6urr///////////9qaGX/Ih8Z/7q6uv////////////// - /////////////87Ozv8QMDD/ApiT/wKmof8CnZn/Ao6J/wKFgf8CeXX/AR0c9AAAAAAAAAAAAAAAlQAA - AKUAAACtAQAB5WVbRf+elIH/SUVA/zAwMP+6urr/////////////////mZmZ/01JQP8hHxn/urq6//// - /////////////97e3v91dXX/ETc2/wKRjP8Craf/ALGr/wGkn/8Cko3/AoiD/wJ7d/8BHRz0AAAAAAAA - AAAWFBD/TUY3/01HNv8QDwr/qJ+L//Pr3v/a08T/fHdt/yMgGv8zMS3/U1JO/zo3Mv9taFv/lYt4/05K - Pv82Min/NTAn/ykmHf8rJx7/AxcW/wKDfv8Cr6n/ALWv/wC2sP8Ov7z/Cq2p/wGTjv8Ci4f/An15/wEd - HfQAAAAAAAAAAB8cFflnX0n/Y1tG/0hCNP/07N7/8una/+vj1P/m39D/1s28/4d9Zf9mXUX/mpF+/7mw - m/+rooz/opiC/5eNdv+Rh27/bmVP/3luVv8GNzX/AMvE/wPBu/8jzM7/JczO/zfS2P8iw8X/AZ2Y/wKL - hf8Cfnv/AR4d9AAAAAAAAAAAIyAZ+XhvVf9wZk//cGZO/52Tf//47+H/8+vc/+zk1P/p4dH/18+9/4F4 - YP+soo7/xLum/7eumP+upI3/pJqC/5yRev94b1j/gXhd/wc/PP8o6uz/QNvk/0Xd5v84197/IMzO/xLJ - x/8HwLv/AZuW/wJ+ev8BHRz0AAAAAAAAAAAoJR35iX1h/390Wv9/dFr/dWpQ/6OZgv/37t//8uja/+3l - 1v/n387/4tnI/9bMuv/Kwaz/w7qm/7qwmv+wppD/o5iC/5uQd/+Qhmz/NDw1/0HI0P9N8/7/O93l/yvX - 2/8e0NH/EMnG/wXFwP8Cw73/AqGc/wEhIPQAAAAAAAAAACsnHvmUh2n/jIBk/42CZ/+QhGr/iHxh/7ux - nP/58eL/8ena/+vj1P/k28r/49rI/9LJtv+1q5f/r6aR/6ifif+xqJH/pJmB/5eMdP+Og2n/Oj40/zi7 - xP888vn/Kdnb/xvU1P8N2db/BNLN/wK4sv8CubT/AS4s5wAAAAAAAAAANC4i+bWgff+1pIb/wrOX/8/B - qP/c0Lr/593L//Ho2P/z6tz/8OfY//Lq2v+/tqT/i4Nt/2NaRP9oX0n/aWFK/4iAav+hl4D/oZd//5aL - cv+Ngmj/Pz0x/yixtf8q9/r/F9bV/wWCf/8Dfnr/GCAf/QAAALgAAAA4AAAAAAAAAAAxKyD5rJdx/6qY - d/+1pYj/wbOY/8y/pv/bz7n/6d/M//Lo2v/58eP/yMCw/11UPv9nXUb/cWdQ/3BmT/9vZk//Zl1G/2ti - Tf+nnIX/nZN7/5OIb/+LgGf/QkY6/wtISP8XQDz/c2xd/5CKff8/PTj6AAAAGQAAAAkAAAAAAAAAADMs - IPmqlW7/o5Fv/66cfP+5qYz/xbeb/9LFrf/f077/6+HQ//fu3//e1sb/bGRP/1xUPv9lXEf/ZFtG/2Rc - Rv9dVUD/fXVg/7Gnkf+mnIT/m5B4/5KIbv+Kf2X/hXlf/4N3Xf+Qhmz/t62W/zo4MvkAAAAHAAAAAgAA - AAAAAAAALScd/5mFY/+OfF3/m4pp/6eXev+yo4f/uKuT/83Aqv/i1sP/7ePS//rx4//n3s//sKiW/2lh - TP9vZ1P/cWlU/7GnlP++taD/uK+Z/66kjf+kmYL/kYhv/4h+Zf+FemD/gXZc/3pvV/+SiHH/Lywn/wAA - AAAAAAAAAAAAAAAAAAAAAACOAAAAkQAAAJEWFBDdW1NB/1hQPf9sYkz/t6mR/9nMtv/k2cb/8unY//fu - 4P/17d7/7+fX/+fezv/e1cP/08q4/8rArP+/tqH/tayW/66ljf+Hfmj/Y1pF/1xUQf9MRTX/BwYEwgAA - AJoAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKlkXEf/d2xU/7Kig//EtZn/yr6k/+DV - vv/Vy7v/6+LT//Ts3f/w6Nj/6uLS/+LZyP/Z0L7/wrqn/7uzn//DuaP/saiS/66jjP+VinD/cmhQ/0Q/ - MP8AAABZAAAACgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICsH50Wf+ejWv/rJp6/7Wl - iP/Ov6P/lox7/wAAAL2fmIz//vTk//Pq3P/u5tf/6eDQ//Dm1f87OTT4GRgXzLuyn//At6H/saeR/6mf - iP+bj3X/VU48/wAAAFkAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwKkk4Fh/6OO - av+hj23/uaaF/4l+aP8FBANoAAAAP5qShf/47tv/8+rb//Pq2//t5db/9+7c/0dEPvcAAAA2HhwZvLy0 - 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 - //+AB3j/yE8L//h/uv8= - - - \ No newline at end of file diff --git a/ShoalShell.Plugins.HtmlHelpServer/NotificationIcon.vb b/ShoalShell.Plugins.HtmlHelpServer/NotificationIcon.vb deleted file mode 100644 index 5327975c8..000000000 --- a/ShoalShell.Plugins.HtmlHelpServer/NotificationIcon.vb +++ /dev/null @@ -1,83 +0,0 @@ -' -' Created by SharpDevelop. -' User: WORKGROUP -' Date: 2015/1/2 -' Time: 20:22 -' -' To change this template use Tools | Options | Coding | Edit Standard Headers. -' -Imports System.Threading -Imports System.Windows.Forms -Imports System.Drawing - -Public NotInheritable Class NotificationIcon - Private notifyIcon As NotifyIcon - Private notificationMenu As ContextMenu - - Dim _InternalServerThreading As Thread - -#Region "Initialize icon and menu" - Public Sub New() - notifyIcon = New NotifyIcon() - notificationMenu = New ContextMenu(InitializeMenu()) - - AddHandler notifyIcon.DoubleClick, AddressOf InternalShowAboutInfo - Dim resources As New System.ComponentModel.ComponentResourceManager(GetType(NotificationIcon)) - notifyIcon.Icon = DirectCast(resources.GetObject("$this.Icon"), Icon) - notifyIcon.ContextMenu = notificationMenu - End Sub - - Private Function InitializeMenu() As MenuItem() - Dim menuBuilder As MenuItem() = New MenuItem() { - New MenuItem("Open Home Page", Sub() Call Process.Start("http://127.0.0.1:8080")), - New MenuItem("About", AddressOf InternalShowAboutInfo), - New MenuItem("Exit", AddressOf menuExitClick) - } - Return menuBuilder - End Function -#End Region - -#Region "Main - Program entry point" - ''' Program entry point. - ''' Command Line Arguments - _ - Public Shared Sub Main(args As String()) - Application.EnableVisualStyles() - Application.SetCompatibleTextRenderingDefault(False) - - Call HelpServer.BuildDoc() - - Dim isFirstInstance As Boolean - ' Please use a unique name for the mutex to prevent conflicts with other programs - Using mtx As New Mutex(True, "Shoal-Http-Server", isFirstInstance) - If isFirstInstance Then - Dim notificationIcon As New NotificationIcon() - notificationIcon.notifyIcon.Visible = True - notificationIcon.notifyIcon.ShowBalloonTip(30, "Http help server", "ShoalShell Http help server is running at 127.0.0.1:8080!", ToolTipIcon.Info) - notificationIcon._InternalServerThreading = HelpServer.__runServer() - Application.Run() - notificationIcon.notifyIcon.Dispose() - notificationIcon._InternalServerThreading.Abort() - Call Console.WriteLine("Server thread shutdown...") - ' The application is already running - ' TODO: Display message box or change focus to existing application instance - Else - End If - End Using - ' releases the Mutex - End Sub -#End Region - -#Region "Event Handlers" - Private Sub InternalShowAboutInfo(sender As Object, e As EventArgs) - MessageBox.Show("ShoalShell Http help system local server Application plugin. ShoalShell version " & My.Application.Info.Version.ToString, - "ShoalShell Http Help Local Server", - buttons:=MessageBoxButtons.OK, - icon:=MessageBoxIcon.Information) - End Sub - - Private Sub menuExitClick(sender As Object, e As EventArgs) - Application.[Exit]() - End Sub -#End Region -End Class diff --git a/ShoalShell.Plugins.HtmlHelpServer/Resources/404.html b/ShoalShell.Plugins.HtmlHelpServer/Resources/404.html deleted file mode 100644 index eef68bc99..000000000 --- a/ShoalShell.Plugins.HtmlHelpServer/Resources/404.html +++ /dev/null @@ -1,133 +0,0 @@ -Page Not Found :(

    Not found :(

    Sorry, but the page you were trying to view does not exist.

    It looks like this was the result of either:

    • a mistyped address
    • an out-of-date link
    \ No newline at end of file diff --git a/ShoalShell.Plugins.HtmlHelpServer/Resources/DNA.ico b/ShoalShell.Plugins.HtmlHelpServer/Resources/DNA.ico deleted file mode 100644 index 402b81a83d6705157a3e75faa1f59d01cfbad814..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 245500 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 Axc~qF diff --git a/ShoalShell.Plugins.HtmlHelpServer/Resources/foundation.css b/ShoalShell.Plugins.HtmlHelpServer/Resources/foundation.css deleted file mode 100644 index 24805ffbf..000000000 --- a/ShoalShell.Plugins.HtmlHelpServer/Resources/foundation.css +++ /dev/null @@ -1,6119 +0,0 @@ -meta.foundation-version { - font-family: "/5.4.5/"; } - -meta.foundation-mq-small { - font-family: "/only screen/"; - width: 0em; } - -meta.foundation-mq-medium { - font-family: "/only screen and (min-width:40.063em)/"; - width: 40.063em; } - -meta.foundation-mq-large { - font-family: "/only screen and (min-width:64.063em)/"; - width: 64.063em; } - -meta.foundation-mq-xlarge { - font-family: "/only screen and (min-width:90.063em)/"; - width: 90.063em; } - -meta.foundation-mq-xxlarge { - font-family: "/only screen and (min-width:120.063em)/"; - width: 120.063em; } - -meta.foundation-data-attribute-namespace { - font-family: false; } - -html, body { - height: 100%; } - -*, -*:before, -*:after { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; } - -html, -body { - font-size: 100%; } - -body { - background: white; - color: #222222; - padding: 0; - margin: 0; - font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; - font-weight: normal; - font-style: normal; - line-height: 1.5; - position: relative; - cursor: auto; } - -a:hover { - cursor: pointer; } - -img { - max-width: 100%; - height: auto; } - -img { - -ms-interpolation-mode: bicubic; } - -#map_canvas img, -#map_canvas embed, -#map_canvas object, -.map_canvas img, -.map_canvas embed, -.map_canvas object { - max-width: none !important; } - -.left { - float: left !important; } - -.right { - float: right !important; } - -.clearfix:before, .clearfix:after { - content: " "; - display: table; } -.clearfix:after { - clear: both; } - -.hide { - display: none; } - -.antialiased { - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; } - -img { - display: inline-block; - vertical-align: middle; } - -textarea { - height: auto; - min-height: 50px; } - -select { - width: 100%; } - -.row { - width: 100%; - margin-left: auto; - margin-right: auto; - margin-top: 0; - margin-bottom: 0; - max-width: 1440px; } - .row:before, .row:after { - content: " "; - display: table; } - .row:after { - clear: both; } - .row.collapse > .column, - .row.collapse > .columns { - padding-left: 0; - padding-right: 0; } - .row.collapse .row { - margin-left: 0; - margin-right: 0; } - .row .row { - width: auto; - margin-left: -0.9375rem; - margin-right: -0.9375rem; - margin-top: 0; - margin-bottom: 0; - max-width: none; } - .row .row:before, .row .row:after { - content: " "; - display: table; } - .row .row:after { - clear: both; } - .row .row.collapse { - width: auto; - margin: 0; - max-width: none; } - .row .row.collapse:before, .row .row.collapse:after { - content: " "; - display: table; } - .row .row.collapse:after { - clear: both; } - -.column, -.columns { - padding-left: 0.9375rem; - padding-right: 0.9375rem; - width: 100%; - float: left; } - -[class*="column"] + [class*="column"]:last-child { - float: right; } - -[class*="column"] + [class*="column"].end { - float: left; } - -@media only screen { - .small-push-0 { - position: relative; - left: 0%; - right: auto; } - - .small-pull-0 { - position: relative; - right: 0%; - left: auto; } - - .small-push-1 { - position: relative; - left: 8.33333%; - right: auto; } - - .small-pull-1 { - position: relative; - right: 8.33333%; - left: auto; } - - .small-push-2 { - position: relative; - left: 16.66667%; - right: auto; } - - .small-pull-2 { - position: relative; - right: 16.66667%; - left: auto; } - - .small-push-3 { - position: relative; - left: 25%; - right: auto; } - - .small-pull-3 { - position: relative; - right: 25%; - left: auto; } - - .small-push-4 { - position: relative; - left: 33.33333%; - right: auto; } - - .small-pull-4 { - position: relative; - right: 33.33333%; - left: auto; } - - .small-push-5 { - position: relative; - left: 41.66667%; - right: auto; } - - .small-pull-5 { - position: relative; - right: 41.66667%; - left: auto; } - - .small-push-6 { - position: relative; - left: 50%; - right: auto; } - - .small-pull-6 { - position: relative; - right: 50%; - left: auto; } - - .small-push-7 { - position: relative; - left: 58.33333%; - right: auto; } - - .small-pull-7 { - position: relative; - right: 58.33333%; - left: auto; } - - .small-push-8 { - position: relative; - left: 66.66667%; - right: auto; } - - .small-pull-8 { - position: relative; - right: 66.66667%; - left: auto; } - - .small-push-9 { - position: relative; - left: 75%; - right: auto; } - - .small-pull-9 { - position: relative; - right: 75%; - left: auto; } - - .small-push-10 { - position: relative; - left: 83.33333%; - right: auto; } - - .small-pull-10 { - position: relative; - right: 83.33333%; - left: auto; } - - .small-push-11 { - position: relative; - left: 91.66667%; - right: auto; } - - .small-pull-11 { - position: relative; - right: 91.66667%; - left: auto; } - - .column, - .columns { - position: relative; - padding-left: 0.9375rem; - padding-right: 0.9375rem; - float: left; } - - .small-1 { - width: 8.33333%; } - - .small-2 { - width: 16.66667%; } - - .small-3 { - width: 25%; } - - .small-4 { - width: 33.33333%; } - - .small-5 { - width: 41.66667%; } - - .small-6 { - width: 50%; } - - .small-7 { - width: 58.33333%; } - - .small-8 { - width: 66.66667%; } - - .small-9 { - width: 75%; } - - .small-10 { - width: 83.33333%; } - - .small-11 { - width: 91.66667%; } - - .small-12 { - width: 100%; } - - .small-offset-0 { - margin-left: 0% !important; } - - .small-offset-1 { - margin-left: 8.33333% !important; } - - .small-offset-2 { - margin-left: 16.66667% !important; } - - .small-offset-3 { - margin-left: 25% !important; } - - .small-offset-4 { - margin-left: 33.33333% !important; } - - .small-offset-5 { - margin-left: 41.66667% !important; } - - .small-offset-6 { - margin-left: 50% !important; } - - .small-offset-7 { - margin-left: 58.33333% !important; } - - .small-offset-8 { - margin-left: 66.66667% !important; } - - .small-offset-9 { - margin-left: 75% !important; } - - .small-offset-10 { - margin-left: 83.33333% !important; } - - .small-offset-11 { - margin-left: 91.66667% !important; } - - .small-reset-order { - margin-left: 0; - margin-right: 0; - left: auto; - right: auto; - float: left; } - - .column.small-centered, - .columns.small-centered { - margin-left: auto; - margin-right: auto; - float: none; } - - .column.small-uncentered, - .columns.small-uncentered { - margin-left: 0; - margin-right: 0; - float: left; } - - .column.small-centered:last-child, - .columns.small-centered:last-child { - float: none; } - - .column.small-uncentered:last-child, - .columns.small-uncentered:last-child { - float: left; } - - .column.small-uncentered.opposite, - .columns.small-uncentered.opposite { - float: right; } } -@media only screen and (min-width: 40.063em) { - .medium-push-0 { - position: relative; - left: 0%; - right: auto; } - - .medium-pull-0 { - position: relative; - right: 0%; - left: auto; } - - .medium-push-1 { - position: relative; - left: 8.33333%; - right: auto; } - - .medium-pull-1 { - position: relative; - right: 8.33333%; - left: auto; } - - .medium-push-2 { - position: relative; - left: 16.66667%; - right: auto; } - - .medium-pull-2 { - position: relative; - right: 16.66667%; - left: auto; } - - .medium-push-3 { - position: relative; - left: 25%; - right: auto; } - - .medium-pull-3 { - position: relative; - right: 25%; - left: auto; } - - .medium-push-4 { - position: relative; - left: 33.33333%; - right: auto; } - - .medium-pull-4 { - position: relative; - right: 33.33333%; - left: auto; } - - .medium-push-5 { - position: relative; - left: 41.66667%; - right: auto; } - - .medium-pull-5 { - position: relative; - right: 41.66667%; - left: auto; } - - .medium-push-6 { - position: relative; - left: 50%; - right: auto; } - - .medium-pull-6 { - position: relative; - right: 50%; - left: auto; } - - .medium-push-7 { - position: relative; - left: 58.33333%; - right: auto; } - - .medium-pull-7 { - position: relative; - right: 58.33333%; - left: auto; } - - .medium-push-8 { - position: relative; - left: 66.66667%; - right: auto; } - - .medium-pull-8 { - position: relative; - right: 66.66667%; - left: auto; } - - .medium-push-9 { - position: relative; - left: 75%; - right: auto; } - - .medium-pull-9 { - position: relative; - right: 75%; - left: auto; } - - .medium-push-10 { - position: relative; - left: 83.33333%; - right: auto; } - - .medium-pull-10 { - position: relative; - right: 83.33333%; - left: auto; } - - .medium-push-11 { - position: relative; - left: 91.66667%; - right: auto; } - - .medium-pull-11 { - position: relative; - right: 91.66667%; - left: auto; } - - .column, - .columns { - position: relative; - padding-left: 0.9375rem; - padding-right: 0.9375rem; - float: left; } - - .medium-1 { - width: 8.33333%; } - - .medium-2 { - width: 16.66667%; } - - .medium-3 { - width: 25%; } - - .medium-4 { - width: 33.33333%; } - - .medium-5 { - width: 41.66667%; } - - .medium-6 { - width: 50%; } - - .medium-7 { - width: 58.33333%; } - - .medium-8 { - width: 66.66667%; } - - .medium-9 { - width: 75%; } - - .medium-10 { - width: 83.33333%; } - - .medium-11 { - width: 91.66667%; } - - .medium-12 { - width: 100%; } - - .medium-offset-0 { - margin-left: 0% !important; } - - .medium-offset-1 { - margin-left: 8.33333% !important; } - - .medium-offset-2 { - margin-left: 16.66667% !important; } - - .medium-offset-3 { - margin-left: 25% !important; } - - .medium-offset-4 { - margin-left: 33.33333% !important; } - - .medium-offset-5 { - margin-left: 41.66667% !important; } - - .medium-offset-6 { - margin-left: 50% !important; } - - .medium-offset-7 { - margin-left: 58.33333% !important; } - - .medium-offset-8 { - margin-left: 66.66667% !important; } - - .medium-offset-9 { - margin-left: 75% !important; } - - .medium-offset-10 { - margin-left: 83.33333% !important; } - - .medium-offset-11 { - margin-left: 91.66667% !important; } - - .medium-reset-order { - margin-left: 0; - margin-right: 0; - left: auto; - right: auto; - float: left; } - - .column.medium-centered, - .columns.medium-centered { - margin-left: auto; - margin-right: auto; - float: none; } - - .column.medium-uncentered, - .columns.medium-uncentered { - margin-left: 0; - margin-right: 0; - float: left; } - - .column.medium-centered:last-child, - .columns.medium-centered:last-child { - float: none; } - - .column.medium-uncentered:last-child, - .columns.medium-uncentered:last-child { - float: left; } - - .column.medium-uncentered.opposite, - .columns.medium-uncentered.opposite { - float: right; } - - .push-0 { - position: relative; - left: 0%; - right: auto; } - - .pull-0 { - position: relative; - right: 0%; - left: auto; } - - .push-1 { - position: relative; - left: 8.33333%; - right: auto; } - - .pull-1 { - position: relative; - right: 8.33333%; - left: auto; } - - .push-2 { - position: relative; - left: 16.66667%; - right: auto; } - - .pull-2 { - position: relative; - right: 16.66667%; - left: auto; } - - .push-3 { - position: relative; - left: 25%; - right: auto; } - - .pull-3 { - position: relative; - right: 25%; - left: auto; } - - .push-4 { - position: relative; - left: 33.33333%; - right: auto; } - - .pull-4 { - position: relative; - right: 33.33333%; - left: auto; } - - .push-5 { - position: relative; - left: 41.66667%; - right: auto; } - - .pull-5 { - position: relative; - right: 41.66667%; - left: auto; } - - .push-6 { - position: relative; - left: 50%; - right: auto; } - - .pull-6 { - position: relative; - right: 50%; - left: auto; } - - .push-7 { - position: relative; - left: 58.33333%; - right: auto; } - - .pull-7 { - position: relative; - right: 58.33333%; - left: auto; } - - .push-8 { - position: relative; - left: 66.66667%; - right: auto; } - - .pull-8 { - position: relative; - right: 66.66667%; - left: auto; } - - .push-9 { - position: relative; - left: 75%; - right: auto; } - - .pull-9 { - position: relative; - right: 75%; - left: auto; } - - .push-10 { - position: relative; - left: 83.33333%; - right: auto; } - - .pull-10 { - position: relative; - right: 83.33333%; - left: auto; } - - .push-11 { - position: relative; - left: 91.66667%; - right: auto; } - - .pull-11 { - position: relative; - right: 91.66667%; - left: auto; } } -@media only screen and (min-width: 64.063em) { - .large-push-0 { - position: relative; - left: 0%; - right: auto; } - - .large-pull-0 { - position: relative; - right: 0%; - left: auto; } - - .large-push-1 { - position: relative; - left: 8.33333%; - right: auto; } - - .large-pull-1 { - position: relative; - right: 8.33333%; - left: auto; } - - .large-push-2 { - position: relative; - left: 16.66667%; - right: auto; } - - .large-pull-2 { - position: relative; - right: 16.66667%; - left: auto; } - - .large-push-3 { - position: relative; - left: 25%; - right: auto; } - - .large-pull-3 { - position: relative; - right: 25%; - left: auto; } - - .large-push-4 { - position: relative; - left: 33.33333%; - right: auto; } - - .large-pull-4 { - position: relative; - right: 33.33333%; - left: auto; } - - .large-push-5 { - position: relative; - left: 41.66667%; - right: auto; } - - .large-pull-5 { - position: relative; - right: 41.66667%; - left: auto; } - - .large-push-6 { - position: relative; - left: 50%; - right: auto; } - - .large-pull-6 { - position: relative; - right: 50%; - left: auto; } - - .large-push-7 { - position: relative; - left: 58.33333%; - right: auto; } - - .large-pull-7 { - position: relative; - right: 58.33333%; - left: auto; } - - .large-push-8 { - position: relative; - left: 66.66667%; - right: auto; } - - .large-pull-8 { - position: relative; - right: 66.66667%; - left: auto; } - - .large-push-9 { - position: relative; - left: 75%; - right: auto; } - - .large-pull-9 { - position: relative; - right: 75%; - left: auto; } - - .large-push-10 { - position: relative; - left: 83.33333%; - right: auto; } - - .large-pull-10 { - position: relative; - right: 83.33333%; - left: auto; } - - .large-push-11 { - position: relative; - left: 91.66667%; - right: auto; } - - .large-pull-11 { - position: relative; - right: 91.66667%; - left: auto; } - - .column, - .columns { - position: relative; - padding-left: 0.9375rem; - padding-right: 0.9375rem; - float: left; } - - .large-1 { - width: 8.33333%; } - - .large-2 { - width: 16.66667%; } - - .large-3 { - width: 25%; } - - .large-4 { - width: 33.33333%; } - - .large-5 { - width: 41.66667%; } - - .large-6 { - width: 50%; } - - .large-7 { - width: 58.33333%; } - - .large-8 { - width: 66.66667%; } - - .large-9 { - width: 75%; } - - .large-10 { - width: 83.33333%; } - - .large-11 { - width: 91.66667%; } - - .large-12 { - width: 100%; } - - .large-offset-0 { - margin-left: 0% !important; } - - .large-offset-1 { - margin-left: 8.33333% !important; } - - .large-offset-2 { - margin-left: 16.66667% !important; } - - .large-offset-3 { - margin-left: 25% !important; } - - .large-offset-4 { - margin-left: 33.33333% !important; } - - .large-offset-5 { - margin-left: 41.66667% !important; } - - .large-offset-6 { - margin-left: 50% !important; } - - .large-offset-7 { - margin-left: 58.33333% !important; } - - .large-offset-8 { - margin-left: 66.66667% !important; } - - .large-offset-9 { - margin-left: 75% !important; } - - .large-offset-10 { - margin-left: 83.33333% !important; } - - .large-offset-11 { - margin-left: 91.66667% !important; } - - .large-reset-order { - margin-left: 0; - margin-right: 0; - left: auto; - right: auto; - float: left; } - - .column.large-centered, - .columns.large-centered { - margin-left: auto; - margin-right: auto; - float: none; } - - .column.large-uncentered, - .columns.large-uncentered { - margin-left: 0; - margin-right: 0; - float: left; } - - .column.large-centered:last-child, - .columns.large-centered:last-child { - float: none; } - - .column.large-uncentered:last-child, - .columns.large-uncentered:last-child { - float: left; } - - .column.large-uncentered.opposite, - .columns.large-uncentered.opposite { - float: right; } - - .push-0 { - position: relative; - left: 0%; - right: auto; } - - .pull-0 { - position: relative; - right: 0%; - left: auto; } - - .push-1 { - position: relative; - left: 8.33333%; - right: auto; } - - .pull-1 { - position: relative; - right: 8.33333%; - left: auto; } - - .push-2 { - position: relative; - left: 16.66667%; - right: auto; } - - .pull-2 { - position: relative; - right: 16.66667%; - left: auto; } - - .push-3 { - position: relative; - left: 25%; - right: auto; } - - .pull-3 { - position: relative; - right: 25%; - left: auto; } - - .push-4 { - position: relative; - left: 33.33333%; - right: auto; } - - .pull-4 { - position: relative; - right: 33.33333%; - left: auto; } - - .push-5 { - position: relative; - left: 41.66667%; - right: auto; } - - .pull-5 { - position: relative; - right: 41.66667%; - left: auto; } - - .push-6 { - position: relative; - left: 50%; - right: auto; } - - .pull-6 { - position: relative; - right: 50%; - left: auto; } - - .push-7 { - position: relative; - left: 58.33333%; - right: auto; } - - .pull-7 { - position: relative; - right: 58.33333%; - left: auto; } - - .push-8 { - position: relative; - left: 66.66667%; - right: auto; } - - .pull-8 { - position: relative; - right: 66.66667%; - left: auto; } - - .push-9 { - position: relative; - left: 75%; - right: auto; } - - .pull-9 { - position: relative; - right: 75%; - left: auto; } - - .push-10 { - position: relative; - left: 83.33333%; - right: auto; } - - .pull-10 { - position: relative; - right: 83.33333%; - left: auto; } - - .push-11 { - position: relative; - left: 91.66667%; - right: auto; } - - .pull-11 { - position: relative; - right: 91.66667%; - left: auto; } } -.accordion { - margin-bottom: 0; } - .accordion:before, .accordion:after { - content: " "; - display: table; } - .accordion:after { - clear: both; } - .accordion .accordion-navigation, .accordion dd { - display: block; - margin-bottom: 0 !important; } - .accordion .accordion-navigation.active > a, .accordion dd.active > a { - background: #e8e8e8; } - .accordion .accordion-navigation > a, .accordion dd > a { - background: #efefef; - color: #222222; - padding: 1rem; - display: block; - font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; - font-size: 1rem; } - .accordion .accordion-navigation > a:hover, .accordion dd > a:hover { - background: #e3e3e3; } - .accordion .accordion-navigation > .content, .accordion dd > .content { - display: none; - padding: 0.9375rem; } - .accordion .accordion-navigation > .content.active, .accordion dd > .content.active { - display: block; - background: white; } - -.alert-box { - border-style: solid; - border-width: 1px; - display: block; - font-weight: normal; - margin-bottom: 1.25rem; - position: relative; - padding: 0.875rem 1.5rem 0.875rem 0.875rem; - font-size: 0.8125rem; - transition: opacity 300ms ease-out; - background-color: #008cba; - border-color: #0078a0; - color: white; } - .alert-box .close { - font-size: 1.375rem; - padding: 9px 6px 4px; - line-height: 0; - position: absolute; - top: 50%; - margin-top: -0.6875rem; - right: 0.25rem; - color: #333333; - opacity: 0.3; } - .alert-box .close:hover, .alert-box .close:focus { - opacity: 0.5; } - .alert-box.radius { - border-radius: 3px; } - .alert-box.round { - border-radius: 1000px; } - .alert-box.success { - background-color: #43ac6a; - border-color: #3a945b; - color: white; } - .alert-box.alert { - background-color: #f04124; - border-color: #de2d0f; - color: white; } - .alert-box.secondary { - background-color: #e7e7e7; - border-color: #c7c7c7; - color: #4f4f4f; } - .alert-box.warning { - background-color: #f08a24; - border-color: #de770f; - color: white; } - .alert-box.info { - background-color: #a0d3e8; - border-color: #74bfdd; - color: #4f4f4f; } - .alert-box.alert-close { - opacity: 0; } - -[class*="block-grid-"] { - display: block; - padding: 0; - margin: 0 -0.625rem; } - [class*="block-grid-"]:before, [class*="block-grid-"]:after { - content: " "; - display: table; } - [class*="block-grid-"]:after { - clear: both; } - [class*="block-grid-"] > li { - display: block; - height: auto; - float: left; - padding: 0 0.625rem 1.25rem; } - -@media only screen { - .small-block-grid-1 > li { - width: 100%; - list-style: none; } - .small-block-grid-1 > li:nth-of-type(1n) { - clear: none; } - .small-block-grid-1 > li:nth-of-type(1n+1) { - clear: both; } - - .small-block-grid-2 > li { - width: 50%; - list-style: none; } - .small-block-grid-2 > li:nth-of-type(1n) { - clear: none; } - .small-block-grid-2 > li:nth-of-type(2n+1) { - clear: both; } - - .small-block-grid-3 > li { - width: 33.33333%; - list-style: none; } - .small-block-grid-3 > li:nth-of-type(1n) { - clear: none; } - .small-block-grid-3 > li:nth-of-type(3n+1) { - clear: both; } - - .small-block-grid-4 > li { - width: 25%; - list-style: none; } - .small-block-grid-4 > li:nth-of-type(1n) { - clear: none; } - .small-block-grid-4 > li:nth-of-type(4n+1) { - clear: both; } - - .small-block-grid-5 > li { - width: 20%; - list-style: none; } - .small-block-grid-5 > li:nth-of-type(1n) { - clear: none; } - .small-block-grid-5 > li:nth-of-type(5n+1) { - clear: both; } - - .small-block-grid-6 > li { - width: 16.66667%; - list-style: none; } - .small-block-grid-6 > li:nth-of-type(1n) { - clear: none; } - .small-block-grid-6 > li:nth-of-type(6n+1) { - clear: both; } - - .small-block-grid-7 > li { - width: 14.28571%; - list-style: none; } - .small-block-grid-7 > li:nth-of-type(1n) { - clear: none; } - .small-block-grid-7 > li:nth-of-type(7n+1) { - clear: both; } - - .small-block-grid-8 > li { - width: 12.5%; - list-style: none; } - .small-block-grid-8 > li:nth-of-type(1n) { - clear: none; } - .small-block-grid-8 > li:nth-of-type(8n+1) { - clear: both; } - - .small-block-grid-9 > li { - width: 11.11111%; - list-style: none; } - .small-block-grid-9 > li:nth-of-type(1n) { - clear: none; } - .small-block-grid-9 > li:nth-of-type(9n+1) { - clear: both; } - - .small-block-grid-10 > li { - width: 10%; - list-style: none; } - .small-block-grid-10 > li:nth-of-type(1n) { - clear: none; } - .small-block-grid-10 > li:nth-of-type(10n+1) { - clear: both; } - - .small-block-grid-11 > li { - width: 9.09091%; - list-style: none; } - .small-block-grid-11 > li:nth-of-type(1n) { - clear: none; } - .small-block-grid-11 > li:nth-of-type(11n+1) { - clear: both; } - - .small-block-grid-12 > li { - width: 8.33333%; - list-style: none; } - .small-block-grid-12 > li:nth-of-type(1n) { - clear: none; } - .small-block-grid-12 > li:nth-of-type(12n+1) { - clear: both; } } -@media only screen and (min-width: 40.063em) { - .medium-block-grid-1 > li { - width: 100%; - list-style: none; } - .medium-block-grid-1 > li:nth-of-type(1n) { - clear: none; } - .medium-block-grid-1 > li:nth-of-type(1n+1) { - clear: both; } - - .medium-block-grid-2 > li { - width: 50%; - list-style: none; } - .medium-block-grid-2 > li:nth-of-type(1n) { - clear: none; } - .medium-block-grid-2 > li:nth-of-type(2n+1) { - clear: both; } - - .medium-block-grid-3 > li { - width: 33.33333%; - list-style: none; } - .medium-block-grid-3 > li:nth-of-type(1n) { - clear: none; } - .medium-block-grid-3 > li:nth-of-type(3n+1) { - clear: both; } - - .medium-block-grid-4 > li { - width: 25%; - list-style: none; } - .medium-block-grid-4 > li:nth-of-type(1n) { - clear: none; } - .medium-block-grid-4 > li:nth-of-type(4n+1) { - clear: both; } - - .medium-block-grid-5 > li { - width: 20%; - list-style: none; } - .medium-block-grid-5 > li:nth-of-type(1n) { - clear: none; } - .medium-block-grid-5 > li:nth-of-type(5n+1) { - clear: both; } - - .medium-block-grid-6 > li { - width: 16.66667%; - list-style: none; } - .medium-block-grid-6 > li:nth-of-type(1n) { - clear: none; } - .medium-block-grid-6 > li:nth-of-type(6n+1) { - clear: both; } - - .medium-block-grid-7 > li { - width: 14.28571%; - list-style: none; } - .medium-block-grid-7 > li:nth-of-type(1n) { - clear: none; } - .medium-block-grid-7 > li:nth-of-type(7n+1) { - clear: both; } - - .medium-block-grid-8 > li { - width: 12.5%; - list-style: none; } - .medium-block-grid-8 > li:nth-of-type(1n) { - clear: none; } - .medium-block-grid-8 > li:nth-of-type(8n+1) { - clear: both; } - - .medium-block-grid-9 > li { - width: 11.11111%; - list-style: none; } - .medium-block-grid-9 > li:nth-of-type(1n) { - clear: none; } - .medium-block-grid-9 > li:nth-of-type(9n+1) { - clear: both; } - - .medium-block-grid-10 > li { - width: 10%; - list-style: none; } - .medium-block-grid-10 > li:nth-of-type(1n) { - clear: none; } - .medium-block-grid-10 > li:nth-of-type(10n+1) { - clear: both; } - - .medium-block-grid-11 > li { - width: 9.09091%; - list-style: none; } - .medium-block-grid-11 > li:nth-of-type(1n) { - clear: none; } - .medium-block-grid-11 > li:nth-of-type(11n+1) { - clear: both; } - - .medium-block-grid-12 > li { - width: 8.33333%; - list-style: none; } - .medium-block-grid-12 > li:nth-of-type(1n) { - clear: none; } - .medium-block-grid-12 > li:nth-of-type(12n+1) { - clear: both; } } -@media only screen and (min-width: 64.063em) { - .large-block-grid-1 > li { - width: 100%; - list-style: none; } - .large-block-grid-1 > li:nth-of-type(1n) { - clear: none; } - .large-block-grid-1 > li:nth-of-type(1n+1) { - clear: both; } - - .large-block-grid-2 > li { - width: 50%; - list-style: none; } - .large-block-grid-2 > li:nth-of-type(1n) { - clear: none; } - .large-block-grid-2 > li:nth-of-type(2n+1) { - clear: both; } - - .large-block-grid-3 > li { - width: 33.33333%; - list-style: none; } - .large-block-grid-3 > li:nth-of-type(1n) { - clear: none; } - .large-block-grid-3 > li:nth-of-type(3n+1) { - clear: both; } - - .large-block-grid-4 > li { - width: 25%; - list-style: none; } - .large-block-grid-4 > li:nth-of-type(1n) { - clear: none; } - .large-block-grid-4 > li:nth-of-type(4n+1) { - clear: both; } - - .large-block-grid-5 > li { - width: 20%; - list-style: none; } - .large-block-grid-5 > li:nth-of-type(1n) { - clear: none; } - .large-block-grid-5 > li:nth-of-type(5n+1) { - clear: both; } - - .large-block-grid-6 > li { - width: 16.66667%; - list-style: none; } - .large-block-grid-6 > li:nth-of-type(1n) { - clear: none; } - .large-block-grid-6 > li:nth-of-type(6n+1) { - clear: both; } - - .large-block-grid-7 > li { - width: 14.28571%; - list-style: none; } - .large-block-grid-7 > li:nth-of-type(1n) { - clear: none; } - .large-block-grid-7 > li:nth-of-type(7n+1) { - clear: both; } - - .large-block-grid-8 > li { - width: 12.5%; - list-style: none; } - .large-block-grid-8 > li:nth-of-type(1n) { - clear: none; } - .large-block-grid-8 > li:nth-of-type(8n+1) { - clear: both; } - - .large-block-grid-9 > li { - width: 11.11111%; - list-style: none; } - .large-block-grid-9 > li:nth-of-type(1n) { - clear: none; } - .large-block-grid-9 > li:nth-of-type(9n+1) { - clear: both; } - - .large-block-grid-10 > li { - width: 10%; - list-style: none; } - .large-block-grid-10 > li:nth-of-type(1n) { - clear: none; } - .large-block-grid-10 > li:nth-of-type(10n+1) { - clear: both; } - - .large-block-grid-11 > li { - width: 9.09091%; - list-style: none; } - .large-block-grid-11 > li:nth-of-type(1n) { - clear: none; } - .large-block-grid-11 > li:nth-of-type(11n+1) { - clear: both; } - - .large-block-grid-12 > li { - width: 8.33333%; - list-style: none; } - .large-block-grid-12 > li:nth-of-type(1n) { - clear: none; } - .large-block-grid-12 > li:nth-of-type(12n+1) { - clear: both; } } -.breadcrumbs { - display: block; - padding: 0.5625rem 0.875rem 0.5625rem; - overflow: hidden; - margin-left: 0; - list-style: none; - border-style: solid; - border-width: 1px; - background-color: #f4f4f4; - border-color: gainsboro; - border-radius: 3px; } - .breadcrumbs > * { - margin: 0; - float: left; - font-size: 0.6875rem; - line-height: 0.6875rem; - text-transform: uppercase; - color: #008cba; } - .breadcrumbs > *:hover a, .breadcrumbs > *:focus a { - text-decoration: underline; } - .breadcrumbs > * a { - color: #008cba; } - .breadcrumbs > *.current { - cursor: default; - color: #333333; } - .breadcrumbs > *.current a { - cursor: default; - color: #333333; } - .breadcrumbs > *.current:hover, .breadcrumbs > *.current:hover a, .breadcrumbs > *.current:focus, .breadcrumbs > *.current:focus a { - text-decoration: none; } - .breadcrumbs > *.unavailable { - color: #999999; } - .breadcrumbs > *.unavailable a { - color: #999999; } - .breadcrumbs > *.unavailable:hover, .breadcrumbs > *.unavailable:hover a, .breadcrumbs > *.unavailable:focus, - .breadcrumbs > *.unavailable a:focus { - text-decoration: none; - color: #999999; - cursor: default; } - .breadcrumbs > *:before { - content: "/"; - color: #aaaaaa; - margin: 0 0.75rem; - position: relative; - top: 1px; } - .breadcrumbs > *:first-child:before { - content: " "; - margin: 0; } - -/* Accessibility - hides the forward slash */ -[aria-label="breadcrumbs"] [aria-hidden="true"]:after { - content: "/"; } - -button, .button { - border-style: solid; - border-width: 0px; - cursor: pointer; - font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; - font-weight: normal; - line-height: normal; - margin: 0 0 1.25rem; - position: relative; - text-decoration: none; - text-align: center; - -webkit-appearance: none; - -webkit-border-radius: 0; - display: inline-block; - padding-top: 1rem; - padding-right: 2rem; - padding-bottom: 1.0625rem; - padding-left: 2rem; - font-size: 1rem; - background-color: #008cba; - border-color: #007095; - color: white; - transition: background-color 300ms ease-out; } - button:hover, button:focus, .button:hover, .button:focus { - background-color: #007095; } - button:hover, button:focus, .button:hover, .button:focus { - color: white; } - button.secondary, .button.secondary { - background-color: #e7e7e7; - border-color: #b9b9b9; - color: #333333; } - button.secondary:hover, button.secondary:focus, .button.secondary:hover, .button.secondary:focus { - background-color: #b9b9b9; } - button.secondary:hover, button.secondary:focus, .button.secondary:hover, .button.secondary:focus { - color: #333333; } - button.success, .button.success { - background-color: #43ac6a; - border-color: #368a55; - color: white; } - button.success:hover, button.success:focus, .button.success:hover, .button.success:focus { - background-color: #368a55; } - button.success:hover, button.success:focus, .button.success:hover, .button.success:focus { - color: white; } - button.alert, .button.alert { - background-color: #f04124; - border-color: #cf2a0e; - color: white; } - button.alert:hover, button.alert:focus, .button.alert:hover, .button.alert:focus { - background-color: #cf2a0e; } - button.alert:hover, button.alert:focus, .button.alert:hover, .button.alert:focus { - color: white; } - button.warning, .button.warning { - background-color: #f08a24; - border-color: #cf6e0e; - color: white; } - button.warning:hover, button.warning:focus, .button.warning:hover, .button.warning:focus { - background-color: #cf6e0e; } - button.warning:hover, button.warning:focus, .button.warning:hover, .button.warning:focus { - color: white; } - button.info, .button.info { - background-color: #a0d3e8; - border-color: #61b6d9; - color: #333333; } - button.info:hover, button.info:focus, .button.info:hover, .button.info:focus { - background-color: #61b6d9; } - button.info:hover, button.info:focus, .button.info:hover, .button.info:focus { - color: white; } - button.large, .button.large { - padding-top: 1.125rem; - padding-right: 2.25rem; - padding-bottom: 1.1875rem; - padding-left: 2.25rem; - font-size: 1.25rem; } - button.small, .button.small { - padding-top: 0.875rem; - padding-right: 1.75rem; - padding-bottom: 0.9375rem; - padding-left: 1.75rem; - font-size: 0.8125rem; } - button.tiny, .button.tiny { - padding-top: 0.625rem; - padding-right: 1.25rem; - padding-bottom: 0.6875rem; - padding-left: 1.25rem; - font-size: 0.6875rem; } - button.expand, .button.expand { - padding-right: 0; - padding-left: 0; - width: 100%; } - button.left-align, .button.left-align { - text-align: left; - text-indent: 0.75rem; } - button.right-align, .button.right-align { - text-align: right; - padding-right: 0.75rem; } - button.radius, .button.radius { - border-radius: 3px; } - button.round, .button.round { - border-radius: 1000px; } - button.disabled, button[disabled], .button.disabled, .button[disabled] { - background-color: #008cba; - border-color: #007095; - color: white; - cursor: default; - opacity: 0.7; - box-shadow: none; } - button.disabled:hover, button.disabled:focus, button[disabled]:hover, button[disabled]:focus, .button.disabled:hover, .button.disabled:focus, .button[disabled]:hover, .button[disabled]:focus { - background-color: #007095; } - button.disabled:hover, button.disabled:focus, button[disabled]:hover, button[disabled]:focus, .button.disabled:hover, .button.disabled:focus, .button[disabled]:hover, .button[disabled]:focus { - color: white; } - button.disabled:hover, button.disabled:focus, button[disabled]:hover, button[disabled]:focus, .button.disabled:hover, .button.disabled:focus, .button[disabled]:hover, .button[disabled]:focus { - background-color: #008cba; } - button.disabled.secondary, button[disabled].secondary, .button.disabled.secondary, .button[disabled].secondary { - background-color: #e7e7e7; - border-color: #b9b9b9; - color: #333333; - cursor: default; - opacity: 0.7; - box-shadow: none; } - button.disabled.secondary:hover, button.disabled.secondary:focus, button[disabled].secondary:hover, button[disabled].secondary:focus, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary:hover, .button[disabled].secondary:focus { - background-color: #b9b9b9; } - button.disabled.secondary:hover, button.disabled.secondary:focus, button[disabled].secondary:hover, button[disabled].secondary:focus, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary:hover, .button[disabled].secondary:focus { - color: #333333; } - button.disabled.secondary:hover, button.disabled.secondary:focus, button[disabled].secondary:hover, button[disabled].secondary:focus, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary:hover, .button[disabled].secondary:focus { - background-color: #e7e7e7; } - button.disabled.success, button[disabled].success, .button.disabled.success, .button[disabled].success { - background-color: #43ac6a; - border-color: #368a55; - color: white; - cursor: default; - opacity: 0.7; - box-shadow: none; } - button.disabled.success:hover, button.disabled.success:focus, button[disabled].success:hover, button[disabled].success:focus, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success:hover, .button[disabled].success:focus { - background-color: #368a55; } - button.disabled.success:hover, button.disabled.success:focus, button[disabled].success:hover, button[disabled].success:focus, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success:hover, .button[disabled].success:focus { - color: white; } - button.disabled.success:hover, button.disabled.success:focus, button[disabled].success:hover, button[disabled].success:focus, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success:hover, .button[disabled].success:focus { - background-color: #43ac6a; } - button.disabled.alert, button[disabled].alert, .button.disabled.alert, .button[disabled].alert { - background-color: #f04124; - border-color: #cf2a0e; - color: white; - cursor: default; - opacity: 0.7; - box-shadow: none; } - button.disabled.alert:hover, button.disabled.alert:focus, button[disabled].alert:hover, button[disabled].alert:focus, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert:hover, .button[disabled].alert:focus { - background-color: #cf2a0e; } - button.disabled.alert:hover, button.disabled.alert:focus, button[disabled].alert:hover, button[disabled].alert:focus, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert:hover, .button[disabled].alert:focus { - color: white; } - button.disabled.alert:hover, button.disabled.alert:focus, button[disabled].alert:hover, button[disabled].alert:focus, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert:hover, .button[disabled].alert:focus { - background-color: #f04124; } - button.disabled.warning, button[disabled].warning, .button.disabled.warning, .button[disabled].warning { - background-color: #f08a24; - border-color: #cf6e0e; - color: white; - cursor: default; - opacity: 0.7; - box-shadow: none; } - button.disabled.warning:hover, button.disabled.warning:focus, button[disabled].warning:hover, button[disabled].warning:focus, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning:hover, .button[disabled].warning:focus { - background-color: #cf6e0e; } - button.disabled.warning:hover, button.disabled.warning:focus, button[disabled].warning:hover, button[disabled].warning:focus, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning:hover, .button[disabled].warning:focus { - color: white; } - button.disabled.warning:hover, button.disabled.warning:focus, button[disabled].warning:hover, button[disabled].warning:focus, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning:hover, .button[disabled].warning:focus { - background-color: #f08a24; } - button.disabled.info, button[disabled].info, .button.disabled.info, .button[disabled].info { - background-color: #a0d3e8; - border-color: #61b6d9; - color: #333333; - cursor: default; - opacity: 0.7; - box-shadow: none; } - button.disabled.info:hover, button.disabled.info:focus, button[disabled].info:hover, button[disabled].info:focus, .button.disabled.info:hover, .button.disabled.info:focus, .button[disabled].info:hover, .button[disabled].info:focus { - background-color: #61b6d9; } - button.disabled.info:hover, button.disabled.info:focus, button[disabled].info:hover, button[disabled].info:focus, .button.disabled.info:hover, .button.disabled.info:focus, .button[disabled].info:hover, .button[disabled].info:focus { - color: white; } - button.disabled.info:hover, button.disabled.info:focus, button[disabled].info:hover, button[disabled].info:focus, .button.disabled.info:hover, .button.disabled.info:focus, .button[disabled].info:hover, .button[disabled].info:focus { - background-color: #a0d3e8; } - -button::-moz-focus-inner { - border: 0; - padding: 0; } - -@media only screen and (min-width: 40.063em) { - button, .button { - display: inline-block; } } -.button-group { - list-style: none; - margin: 0; - left: 0; } - .button-group:before, .button-group:after { - content: " "; - display: table; } - .button-group:after { - clear: both; } - .button-group > li { - margin: 0 -2px; - float: left; - display: inline-block; } - .button-group > li > button, .button-group > li .button { - border-left: 1px solid; - border-color: rgba(255, 255, 255, 0.5); } - .button-group > li:first-child button, .button-group > li:first-child .button { - border-left: 0; } - .button-group.stack > li { - margin: 0 -2px; - float: left; - display: inline-block; - display: block; - margin: 0; - float: none; } - .button-group.stack > li > button, .button-group.stack > li .button { - border-left: 1px solid; - border-color: rgba(255, 255, 255, 0.5); } - .button-group.stack > li:first-child button, .button-group.stack > li:first-child .button { - border-left: 0; } - .button-group.stack > li > button, .button-group.stack > li .button { - border-top: 1px solid; - border-color: rgba(255, 255, 255, 0.5); - border-left-width: 0px; - margin: 0; - display: block; } - .button-group.stack > li:first-child button, .button-group.stack > li:first-child .button { - border-top: 0; } - .button-group.stack-for-small > li { - margin: 0 -2px; - float: left; - display: inline-block; } - .button-group.stack-for-small > li > button, .button-group.stack-for-small > li .button { - border-left: 1px solid; - border-color: rgba(255, 255, 255, 0.5); } - .button-group.stack-for-small > li:first-child button, .button-group.stack-for-small > li:first-child .button { - border-left: 0; } - @media only screen and (max-width: 40em) { - .button-group.stack-for-small > li { - margin: 0 -2px; - float: left; - display: inline-block; - display: block; - margin: 0; } - .button-group.stack-for-small > li > button, .button-group.stack-for-small > li .button { - border-left: 1px solid; - border-color: rgba(255, 255, 255, 0.5); } - .button-group.stack-for-small > li:first-child button, .button-group.stack-for-small > li:first-child .button { - border-left: 0; } - .button-group.stack-for-small > li > button, .button-group.stack-for-small > li .button { - border-top: 1px solid; - border-color: rgba(255, 255, 255, 0.5); - border-left-width: 0px; - margin: 0; - display: block; } - .button-group.stack-for-small > li:first-child button, .button-group.stack-for-small > li:first-child .button { - border-top: 0; } } - .button-group.radius > * { - margin: 0 -2px; - float: left; - display: inline-block; } - .button-group.radius > * > button, .button-group.radius > * .button { - border-left: 1px solid; - border-color: rgba(255, 255, 255, 0.5); } - .button-group.radius > *:first-child button, .button-group.radius > *:first-child .button { - border-left: 0; } - .button-group.radius > *, .button-group.radius > * > a, .button-group.radius > * > button, .button-group.radius > * > .button { - border-radius: 0; } - .button-group.radius > *:first-child, .button-group.radius > *:first-child > a, .button-group.radius > *:first-child > button, .button-group.radius > *:first-child > .button { - -webkit-border-bottom-left-radius: 3px; - -webkit-border-top-left-radius: 3px; - border-bottom-left-radius: 3px; - border-top-left-radius: 3px; } - .button-group.radius > *:last-child, .button-group.radius > *:last-child > a, .button-group.radius > *:last-child > button, .button-group.radius > *:last-child > .button { - -webkit-border-bottom-right-radius: 3px; - -webkit-border-top-right-radius: 3px; - border-bottom-right-radius: 3px; - border-top-right-radius: 3px; } - .button-group.radius.stack > * { - margin: 0 -2px; - float: left; - display: inline-block; - display: block; - margin: 0; } - .button-group.radius.stack > * > button, .button-group.radius.stack > * .button { - border-left: 1px solid; - border-color: rgba(255, 255, 255, 0.5); } - .button-group.radius.stack > *:first-child button, .button-group.radius.stack > *:first-child .button { - border-left: 0; } - .button-group.radius.stack > * > button, .button-group.radius.stack > * .button { - border-top: 1px solid; - border-color: rgba(255, 255, 255, 0.5); - border-left-width: 0px; - margin: 0; - display: block; } - .button-group.radius.stack > *:first-child button, .button-group.radius.stack > *:first-child .button { - border-top: 0; } - .button-group.radius.stack > *, .button-group.radius.stack > * > a, .button-group.radius.stack > * > button, .button-group.radius.stack > * > .button { - border-radius: 0; } - .button-group.radius.stack > *:first-child, .button-group.radius.stack > *:first-child > a, .button-group.radius.stack > *:first-child > button, .button-group.radius.stack > *:first-child > .button { - -webkit-top-left-radius: 3px; - -webkit-top-right-radius: 3px; - border-top-left-radius: 3px; - border-top-right-radius: 3px; } - .button-group.radius.stack > *:last-child, .button-group.radius.stack > *:last-child > a, .button-group.radius.stack > *:last-child > button, .button-group.radius.stack > *:last-child > .button { - -webkit-bottom-left-radius: 3px; - -webkit-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; - border-bottom-right-radius: 3px; } - @media only screen and (min-width: 40.063em) { - .button-group.radius.stack-for-small > * { - margin: 0 -2px; - float: left; - display: inline-block; } - .button-group.radius.stack-for-small > * > button, .button-group.radius.stack-for-small > * .button { - border-left: 1px solid; - border-color: rgba(255, 255, 255, 0.5); } - .button-group.radius.stack-for-small > *:first-child button, .button-group.radius.stack-for-small > *:first-child .button { - border-left: 0; } - .button-group.radius.stack-for-small > *, .button-group.radius.stack-for-small > * > a, .button-group.radius.stack-for-small > * > button, .button-group.radius.stack-for-small > * > .button { - border-radius: 0; } - .button-group.radius.stack-for-small > *:first-child, .button-group.radius.stack-for-small > *:first-child > a, .button-group.radius.stack-for-small > *:first-child > button, .button-group.radius.stack-for-small > *:first-child > .button { - -webkit-border-bottom-left-radius: 3px; - -webkit-border-top-left-radius: 3px; - border-bottom-left-radius: 3px; - border-top-left-radius: 3px; } - .button-group.radius.stack-for-small > *:last-child, .button-group.radius.stack-for-small > *:last-child > a, .button-group.radius.stack-for-small > *:last-child > button, .button-group.radius.stack-for-small > *:last-child > .button { - -webkit-border-bottom-right-radius: 3px; - -webkit-border-top-right-radius: 3px; - border-bottom-right-radius: 3px; - border-top-right-radius: 3px; } } - @media only screen and (max-width: 40em) { - .button-group.radius.stack-for-small > * { - margin: 0 -2px; - float: left; - display: inline-block; - display: block; - margin: 0; } - .button-group.radius.stack-for-small > * > button, .button-group.radius.stack-for-small > * .button { - border-left: 1px solid; - border-color: rgba(255, 255, 255, 0.5); } - .button-group.radius.stack-for-small > *:first-child button, .button-group.radius.stack-for-small > *:first-child .button { - border-left: 0; } - .button-group.radius.stack-for-small > * > button, .button-group.radius.stack-for-small > * .button { - border-top: 1px solid; - border-color: rgba(255, 255, 255, 0.5); - border-left-width: 0px; - margin: 0; - display: block; } - .button-group.radius.stack-for-small > *:first-child button, .button-group.radius.stack-for-small > *:first-child .button { - border-top: 0; } - .button-group.radius.stack-for-small > *, .button-group.radius.stack-for-small > * > a, .button-group.radius.stack-for-small > * > button, .button-group.radius.stack-for-small > * > .button { - border-radius: 0; } - .button-group.radius.stack-for-small > *:first-child, .button-group.radius.stack-for-small > *:first-child > a, .button-group.radius.stack-for-small > *:first-child > button, .button-group.radius.stack-for-small > *:first-child > .button { - -webkit-top-left-radius: 3px; - -webkit-top-right-radius: 3px; - border-top-left-radius: 3px; - border-top-right-radius: 3px; } - .button-group.radius.stack-for-small > *:last-child, .button-group.radius.stack-for-small > *:last-child > a, .button-group.radius.stack-for-small > *:last-child > button, .button-group.radius.stack-for-small > *:last-child > .button { - -webkit-bottom-left-radius: 3px; - -webkit-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; - border-bottom-right-radius: 3px; } } - .button-group.round > * { - margin: 0 -2px; - float: left; - display: inline-block; } - .button-group.round > * > button, .button-group.round > * .button { - border-left: 1px solid; - border-color: rgba(255, 255, 255, 0.5); } - .button-group.round > *:first-child button, .button-group.round > *:first-child .button { - border-left: 0; } - .button-group.round > *, .button-group.round > * > a, .button-group.round > * > button, .button-group.round > * > .button { - border-radius: 0; } - .button-group.round > *:first-child, .button-group.round > *:first-child > a, .button-group.round > *:first-child > button, .button-group.round > *:first-child > .button { - -webkit-border-bottom-left-radius: 1000px; - -webkit-border-top-left-radius: 1000px; - border-bottom-left-radius: 1000px; - border-top-left-radius: 1000px; } - .button-group.round > *:last-child, .button-group.round > *:last-child > a, .button-group.round > *:last-child > button, .button-group.round > *:last-child > .button { - -webkit-border-bottom-right-radius: 1000px; - -webkit-border-top-right-radius: 1000px; - border-bottom-right-radius: 1000px; - border-top-right-radius: 1000px; } - .button-group.round.stack > * { - margin: 0 -2px; - float: left; - display: inline-block; - display: block; - margin: 0; } - .button-group.round.stack > * > button, .button-group.round.stack > * .button { - border-left: 1px solid; - border-color: rgba(255, 255, 255, 0.5); } - .button-group.round.stack > *:first-child button, .button-group.round.stack > *:first-child .button { - border-left: 0; } - .button-group.round.stack > * > button, .button-group.round.stack > * .button { - border-top: 1px solid; - border-color: rgba(255, 255, 255, 0.5); - border-left-width: 0px; - margin: 0; - display: block; } - .button-group.round.stack > *:first-child button, .button-group.round.stack > *:first-child .button { - border-top: 0; } - .button-group.round.stack > *, .button-group.round.stack > * > a, .button-group.round.stack > * > button, .button-group.round.stack > * > .button { - border-radius: 0; } - .button-group.round.stack > *:first-child, .button-group.round.stack > *:first-child > a, .button-group.round.stack > *:first-child > button, .button-group.round.stack > *:first-child > .button { - -webkit-top-left-radius: 1rem; - -webkit-top-right-radius: 1rem; - border-top-left-radius: 1rem; - border-top-right-radius: 1rem; } - .button-group.round.stack > *:last-child, .button-group.round.stack > *:last-child > a, .button-group.round.stack > *:last-child > button, .button-group.round.stack > *:last-child > .button { - -webkit-bottom-left-radius: 1rem; - -webkit-bottom-right-radius: 1rem; - border-bottom-left-radius: 1rem; - border-bottom-right-radius: 1rem; } - @media only screen and (min-width: 40.063em) { - .button-group.round.stack-for-small > * { - margin: 0 -2px; - float: left; - display: inline-block; } - .button-group.round.stack-for-small > * > button, .button-group.round.stack-for-small > * .button { - border-left: 1px solid; - border-color: rgba(255, 255, 255, 0.5); } - .button-group.round.stack-for-small > *:first-child button, .button-group.round.stack-for-small > *:first-child .button { - border-left: 0; } - .button-group.round.stack-for-small > *, .button-group.round.stack-for-small > * > a, .button-group.round.stack-for-small > * > button, .button-group.round.stack-for-small > * > .button { - border-radius: 0; } - .button-group.round.stack-for-small > *:first-child, .button-group.round.stack-for-small > *:first-child > a, .button-group.round.stack-for-small > *:first-child > button, .button-group.round.stack-for-small > *:first-child > .button { - -webkit-border-bottom-left-radius: 1000px; - -webkit-border-top-left-radius: 1000px; - border-bottom-left-radius: 1000px; - border-top-left-radius: 1000px; } - .button-group.round.stack-for-small > *:last-child, .button-group.round.stack-for-small > *:last-child > a, .button-group.round.stack-for-small > *:last-child > button, .button-group.round.stack-for-small > *:last-child > .button { - -webkit-border-bottom-right-radius: 1000px; - -webkit-border-top-right-radius: 1000px; - border-bottom-right-radius: 1000px; - border-top-right-radius: 1000px; } } - @media only screen and (max-width: 40em) { - .button-group.round.stack-for-small > * { - margin: 0 -2px; - float: left; - display: inline-block; - display: block; - margin: 0; } - .button-group.round.stack-for-small > * > button, .button-group.round.stack-for-small > * .button { - border-left: 1px solid; - border-color: rgba(255, 255, 255, 0.5); } - .button-group.round.stack-for-small > *:first-child button, .button-group.round.stack-for-small > *:first-child .button { - border-left: 0; } - .button-group.round.stack-for-small > * > button, .button-group.round.stack-for-small > * .button { - border-top: 1px solid; - border-color: rgba(255, 255, 255, 0.5); - border-left-width: 0px; - margin: 0; - display: block; } - .button-group.round.stack-for-small > *:first-child button, .button-group.round.stack-for-small > *:first-child .button { - border-top: 0; } - .button-group.round.stack-for-small > *, .button-group.round.stack-for-small > * > a, .button-group.round.stack-for-small > * > button, .button-group.round.stack-for-small > * > .button { - border-radius: 0; } - .button-group.round.stack-for-small > *:first-child, .button-group.round.stack-for-small > *:first-child > a, .button-group.round.stack-for-small > *:first-child > button, .button-group.round.stack-for-small > *:first-child > .button { - -webkit-top-left-radius: 1rem; - -webkit-top-right-radius: 1rem; - border-top-left-radius: 1rem; - border-top-right-radius: 1rem; } - .button-group.round.stack-for-small > *:last-child, .button-group.round.stack-for-small > *:last-child > a, .button-group.round.stack-for-small > *:last-child > button, .button-group.round.stack-for-small > *:last-child > .button { - -webkit-bottom-left-radius: 1rem; - -webkit-bottom-right-radius: 1rem; - border-bottom-left-radius: 1rem; - border-bottom-right-radius: 1rem; } } - .button-group.even-2 li { - margin: 0 -2px; - float: left; - display: inline-block; - width: 50%; } - .button-group.even-2 li > button, .button-group.even-2 li .button { - border-left: 1px solid; - border-color: rgba(255, 255, 255, 0.5); } - .button-group.even-2 li:first-child button, .button-group.even-2 li:first-child .button { - border-left: 0; } - .button-group.even-2 li button, .button-group.even-2 li .button { - width: 100%; } - .button-group.even-3 li { - margin: 0 -2px; - float: left; - display: inline-block; - width: 33.33333%; } - .button-group.even-3 li > button, .button-group.even-3 li .button { - border-left: 1px solid; - border-color: rgba(255, 255, 255, 0.5); } - .button-group.even-3 li:first-child button, .button-group.even-3 li:first-child .button { - border-left: 0; } - .button-group.even-3 li button, .button-group.even-3 li .button { - width: 100%; } - .button-group.even-4 li { - margin: 0 -2px; - float: left; - display: inline-block; - width: 25%; } - .button-group.even-4 li > button, .button-group.even-4 li .button { - border-left: 1px solid; - border-color: rgba(255, 255, 255, 0.5); } - .button-group.even-4 li:first-child button, .button-group.even-4 li:first-child .button { - border-left: 0; } - .button-group.even-4 li button, .button-group.even-4 li .button { - width: 100%; } - .button-group.even-5 li { - margin: 0 -2px; - float: left; - display: inline-block; - width: 20%; } - .button-group.even-5 li > button, .button-group.even-5 li .button { - border-left: 1px solid; - border-color: rgba(255, 255, 255, 0.5); } - .button-group.even-5 li:first-child button, .button-group.even-5 li:first-child .button { - border-left: 0; } - .button-group.even-5 li button, .button-group.even-5 li .button { - width: 100%; } - .button-group.even-6 li { - margin: 0 -2px; - float: left; - display: inline-block; - width: 16.66667%; } - .button-group.even-6 li > button, .button-group.even-6 li .button { - border-left: 1px solid; - border-color: rgba(255, 255, 255, 0.5); } - .button-group.even-6 li:first-child button, .button-group.even-6 li:first-child .button { - border-left: 0; } - .button-group.even-6 li button, .button-group.even-6 li .button { - width: 100%; } - .button-group.even-7 li { - margin: 0 -2px; - float: left; - display: inline-block; - width: 14.28571%; } - .button-group.even-7 li > button, .button-group.even-7 li .button { - border-left: 1px solid; - border-color: rgba(255, 255, 255, 0.5); } - .button-group.even-7 li:first-child button, .button-group.even-7 li:first-child .button { - border-left: 0; } - .button-group.even-7 li button, .button-group.even-7 li .button { - width: 100%; } - .button-group.even-8 li { - margin: 0 -2px; - float: left; - display: inline-block; - width: 12.5%; } - .button-group.even-8 li > button, .button-group.even-8 li .button { - border-left: 1px solid; - border-color: rgba(255, 255, 255, 0.5); } - .button-group.even-8 li:first-child button, .button-group.even-8 li:first-child .button { - border-left: 0; } - .button-group.even-8 li button, .button-group.even-8 li .button { - width: 100%; } - -.button-bar:before, .button-bar:after { - content: " "; - display: table; } -.button-bar:after { - clear: both; } -.button-bar .button-group { - float: left; - margin-right: 0.625rem; } - .button-bar .button-group div { - overflow: hidden; } - -/* Clearing Styles */ -.clearing-thumbs, [data-clearing] { - margin-bottom: 0; - margin-left: 0; - list-style: none; } - .clearing-thumbs:before, .clearing-thumbs:after, [data-clearing]:before, [data-clearing]:after { - content: " "; - display: table; } - .clearing-thumbs:after, [data-clearing]:after { - clear: both; } - .clearing-thumbs li, [data-clearing] li { - float: left; - margin-right: 10px; } - .clearing-thumbs[class*="block-grid-"] li, [data-clearing][class*="block-grid-"] li { - margin-right: 0; } - -.clearing-blackout { - background: #333333; - position: fixed; - width: 100%; - height: 100%; - top: 0; - left: 0; - z-index: 998; } - .clearing-blackout .clearing-close { - display: block; } - -.clearing-container { - position: relative; - z-index: 998; - height: 100%; - overflow: hidden; - margin: 0; } - -.clearing-touch-label { - position: absolute; - top: 50%; - left: 50%; - color: #aaaaaa; - font-size: 0.6em; } - -.visible-img { - height: 95%; - position: relative; } - .visible-img img { - position: absolute; - left: 50%; - top: 50%; - margin-left: -50%; - max-height: 100%; - max-width: 100%; } - -.clearing-caption { - color: #cccccc; - font-size: 0.875em; - line-height: 1.3; - margin-bottom: 0; - text-align: center; - bottom: 0; - background: #333333; - width: 100%; - padding: 10px 30px 20px; - position: absolute; - left: 0; } - -.clearing-close { - z-index: 999; - padding-left: 20px; - padding-top: 10px; - font-size: 30px; - line-height: 1; - color: #cccccc; - display: none; } - .clearing-close:hover, .clearing-close:focus { - color: #cccccc; } - -.clearing-assembled .clearing-container { - height: 100%; } - .clearing-assembled .clearing-container .carousel > ul { - display: none; } - -.clearing-feature li { - display: none; } - .clearing-feature li.clearing-featured-img { - display: block; } - -@media only screen and (min-width: 40.063em) { - .clearing-main-prev, - .clearing-main-next { - position: absolute; - height: 100%; - width: 40px; - top: 0; } - .clearing-main-prev > span, - .clearing-main-next > span { - position: absolute; - top: 50%; - display: block; - width: 0; - height: 0; - border: solid 12px; } - .clearing-main-prev > span:hover, - .clearing-main-next > span:hover { - opacity: 0.8; } - - .clearing-main-prev { - left: 0; } - .clearing-main-prev > span { - left: 5px; - border-color: transparent; - border-right-color: #cccccc; } - - .clearing-main-next { - right: 0; } - .clearing-main-next > span { - border-color: transparent; - border-left-color: #cccccc; } - - .clearing-main-prev.disabled, - .clearing-main-next.disabled { - opacity: 0.3; } - - .clearing-assembled .clearing-container .carousel { - background: rgba(51, 51, 51, 0.8); - height: 120px; - margin-top: 10px; - text-align: center; } - .clearing-assembled .clearing-container .carousel > ul { - display: inline-block; - z-index: 999; - height: 100%; - position: relative; - float: none; } - .clearing-assembled .clearing-container .carousel > ul li { - display: block; - width: 120px; - min-height: inherit; - float: left; - overflow: hidden; - margin-right: 0; - padding: 0; - position: relative; - cursor: pointer; - opacity: 0.4; - clear: none; } - .clearing-assembled .clearing-container .carousel > ul li.fix-height img { - height: 100%; - max-width: none; } - .clearing-assembled .clearing-container .carousel > ul li a.th { - border: none; - box-shadow: none; - display: block; } - .clearing-assembled .clearing-container .carousel > ul li img { - cursor: pointer !important; - width: 100% !important; } - .clearing-assembled .clearing-container .carousel > ul li.visible { - opacity: 1; } - .clearing-assembled .clearing-container .carousel > ul li:hover { - opacity: 0.8; } - .clearing-assembled .clearing-container .visible-img { - background: #333333; - overflow: hidden; - height: 85%; } - - .clearing-close { - position: absolute; - top: 10px; - right: 20px; - padding-left: 0; - padding-top: 0; } } -/* Foundation Dropdowns */ -.f-dropdown { - position: absolute; - left: -9999px; - list-style: none; - margin-left: 0; - width: 100%; - max-height: none; - height: auto; - background: white; - border: solid 1px #cccccc; - font-size: 0.875rem; - z-index: 89; - margin-top: 2px; - max-width: 200px; } - .f-dropdown > *:first-child { - margin-top: 0; } - .f-dropdown > *:last-child { - margin-bottom: 0; } - .f-dropdown:before { - content: ""; - display: block; - width: 0; - height: 0; - border: inset 6px; - border-color: transparent transparent white transparent; - border-bottom-style: solid; - position: absolute; - top: -12px; - left: 10px; - z-index: 89; } - .f-dropdown:after { - content: ""; - display: block; - width: 0; - height: 0; - border: inset 7px; - border-color: transparent transparent #cccccc transparent; - border-bottom-style: solid; - position: absolute; - top: -14px; - left: 9px; - z-index: 88; } - .f-dropdown.right:before { - left: auto; - right: 10px; } - .f-dropdown.right:after { - left: auto; - right: 9px; } - .f-dropdown.drop-right { - position: absolute; - left: -9999px; - list-style: none; - margin-left: 0; - width: 100%; - max-height: none; - height: auto; - background: white; - border: solid 1px #cccccc; - font-size: 0.875rem; - z-index: 89; - margin-top: 0; - margin-left: 2px; - max-width: 200px; } - .f-dropdown.drop-right > *:first-child { - margin-top: 0; } - .f-dropdown.drop-right > *:last-child { - margin-bottom: 0; } - .f-dropdown.drop-right:before { - content: ""; - display: block; - width: 0; - height: 0; - border: inset 6px; - border-color: transparent white transparent transparent; - border-right-style: solid; - position: absolute; - top: 10px; - left: -12px; - z-index: 89; } - .f-dropdown.drop-right:after { - content: ""; - display: block; - width: 0; - height: 0; - border: inset 7px; - border-color: transparent #cccccc transparent transparent; - border-right-style: solid; - position: absolute; - top: 9px; - left: -14px; - z-index: 88; } - .f-dropdown.drop-left { - position: absolute; - left: -9999px; - list-style: none; - margin-left: 0; - width: 100%; - max-height: none; - height: auto; - background: white; - border: solid 1px #cccccc; - font-size: 0.875rem; - z-index: 89; - margin-top: 0; - margin-left: -2px; - max-width: 200px; } - .f-dropdown.drop-left > *:first-child { - margin-top: 0; } - .f-dropdown.drop-left > *:last-child { - margin-bottom: 0; } - .f-dropdown.drop-left:before { - content: ""; - display: block; - width: 0; - height: 0; - border: inset 6px; - border-color: transparent transparent transparent white; - border-left-style: solid; - position: absolute; - top: 10px; - right: -12px; - left: auto; - z-index: 89; } - .f-dropdown.drop-left:after { - content: ""; - display: block; - width: 0; - height: 0; - border: inset 7px; - border-color: transparent transparent transparent #cccccc; - border-left-style: solid; - position: absolute; - top: 9px; - right: -14px; - left: auto; - z-index: 88; } - .f-dropdown.drop-top { - position: absolute; - left: -9999px; - list-style: none; - margin-left: 0; - width: 100%; - max-height: none; - height: auto; - background: white; - border: solid 1px #cccccc; - font-size: 0.875rem; - z-index: 89; - margin-top: -2px; - margin-left: 0; - max-width: 200px; } - .f-dropdown.drop-top > *:first-child { - margin-top: 0; } - .f-dropdown.drop-top > *:last-child { - margin-bottom: 0; } - .f-dropdown.drop-top:before { - content: ""; - display: block; - width: 0; - height: 0; - border: inset 6px; - border-color: white transparent transparent transparent; - border-top-style: solid; - position: absolute; - top: auto; - bottom: -12px; - left: 10px; - right: auto; - z-index: 89; } - .f-dropdown.drop-top:after { - content: ""; - display: block; - width: 0; - height: 0; - border: inset 7px; - border-color: #cccccc transparent transparent transparent; - border-top-style: solid; - position: absolute; - top: auto; - bottom: -14px; - left: 9px; - right: auto; - z-index: 88; } - .f-dropdown li { - font-size: 0.875rem; - cursor: pointer; - line-height: 1.125rem; - margin: 0; } - .f-dropdown li:hover, .f-dropdown li:focus { - background: #eeeeee; } - .f-dropdown li.radius { - border-radius: 3px; } - .f-dropdown li a { - display: block; - padding: 0.5rem; - color: #555555; } - .f-dropdown.content { - position: absolute; - left: -9999px; - list-style: none; - margin-left: 0; - padding: 1.25rem; - width: 100%; - height: auto; - max-height: none; - background: white; - border: solid 1px #cccccc; - font-size: 0.875rem; - z-index: 89; - max-width: 200px; } - .f-dropdown.content > *:first-child { - margin-top: 0; } - .f-dropdown.content > *:last-child { - margin-bottom: 0; } - .f-dropdown.tiny { - max-width: 200px; } - .f-dropdown.small { - max-width: 300px; } - .f-dropdown.medium { - max-width: 500px; } - .f-dropdown.large { - max-width: 800px; } - .f-dropdown.mega { - width: 100% !important; - max-width: 100% !important; } - .f-dropdown.mega.open { - left: 0 !important; } - -.dropdown.button, button.dropdown { - position: relative; - padding-right: 3.5625rem; } - .dropdown.button:after, button.dropdown:after { - position: absolute; - content: ""; - width: 0; - height: 0; - display: block; - border-style: solid; - border-color: white transparent transparent transparent; - top: 50%; } - .dropdown.button:after, button.dropdown:after { - border-width: 0.375rem; - right: 1.40625rem; - margin-top: -0.15625rem; } - .dropdown.button:after, button.dropdown:after { - border-color: white transparent transparent transparent; } - .dropdown.button.tiny, button.dropdown.tiny { - padding-right: 2.625rem; } - .dropdown.button.tiny:before, button.dropdown.tiny:before { - border-width: 0.375rem; - right: 1.125rem; - margin-top: -0.125rem; } - .dropdown.button.tiny:after, button.dropdown.tiny:after { - border-color: white transparent transparent transparent; } - .dropdown.button.small, button.dropdown.small { - padding-right: 3.0625rem; } - .dropdown.button.small:after, button.dropdown.small:after { - border-width: 0.4375rem; - right: 1.3125rem; - margin-top: -0.15625rem; } - .dropdown.button.small:after, button.dropdown.small:after { - border-color: white transparent transparent transparent; } - .dropdown.button.large, button.dropdown.large { - padding-right: 3.625rem; } - .dropdown.button.large:after, button.dropdown.large:after { - border-width: 0.3125rem; - right: 1.71875rem; - margin-top: -0.15625rem; } - .dropdown.button.large:after, button.dropdown.large:after { - border-color: white transparent transparent transparent; } - .dropdown.button.secondary:after, button.dropdown.secondary:after { - border-color: #333333 transparent transparent transparent; } - -.flex-video { - position: relative; - padding-top: 1.5625rem; - padding-bottom: 67.5%; - height: 0; - margin-bottom: 1rem; - overflow: hidden; } - .flex-video.widescreen { - padding-bottom: 56.34%; } - .flex-video.vimeo { - padding-top: 0; } - .flex-video iframe, - .flex-video object, - .flex-video embed, - .flex-video video { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; } - -/* Standard Forms */ -form { - margin: 0 0 1rem; } - -/* Using forms within rows, we need to set some defaults */ -form .row .row { - margin: 0 -0.5rem; } - form .row .row .column, - form .row .row .columns { - padding: 0 0.5rem; } - form .row .row.collapse { - margin: 0; } - form .row .row.collapse .column, - form .row .row.collapse .columns { - padding: 0; } - form .row .row.collapse input { - -webkit-border-bottom-right-radius: 0; - -webkit-border-top-right-radius: 0; - border-bottom-right-radius: 0; - border-top-right-radius: 0; } -form .row input.column, -form .row input.columns, -form .row textarea.column, -form .row textarea.columns { - padding-left: 0.5rem; } - -/* Label Styles */ -label { - font-size: 0.875rem; - color: #4d4d4d; - cursor: pointer; - display: block; - font-weight: normal; - line-height: 1.5; - margin-bottom: 0; - /* Styles for required inputs */ } - label.right { - float: none !important; - text-align: right; } - label.inline { - margin: 0 0 1rem 0; - padding: 0.5625rem 0; } - label small { - text-transform: capitalize; - color: #676767; } - -select::-ms-expand { - display: none; } - -/* Attach elements to the beginning or end of an input */ -.prefix, -.postfix { - display: block; - position: relative; - z-index: 2; - text-align: center; - width: 100%; - padding-top: 0; - padding-bottom: 0; - border-style: solid; - border-width: 1px; - overflow: hidden; - font-size: 0.875rem; - height: 2.3125rem; - line-height: 2.3125rem; } - -/* Adjust padding, alignment and radius if pre/post element is a button */ -.postfix.button { - padding-left: 0; - padding-right: 0; - padding-top: 0; - padding-bottom: 0; - text-align: center; - line-height: 2.125rem; - border: none; } - -.prefix.button { - padding-left: 0; - padding-right: 0; - padding-top: 0; - padding-bottom: 0; - text-align: center; - line-height: 2.125rem; - border: none; } - -.prefix.button.radius { - border-radius: 0; - -webkit-border-bottom-left-radius: 3px; - -webkit-border-top-left-radius: 3px; - border-bottom-left-radius: 3px; - border-top-left-radius: 3px; } - -.postfix.button.radius { - border-radius: 0; - -webkit-border-bottom-right-radius: 3px; - -webkit-border-top-right-radius: 3px; - border-bottom-right-radius: 3px; - border-top-right-radius: 3px; } - -.prefix.button.round { - border-radius: 0; - -webkit-border-bottom-left-radius: 1000px; - -webkit-border-top-left-radius: 1000px; - border-bottom-left-radius: 1000px; - border-top-left-radius: 1000px; } - -.postfix.button.round { - border-radius: 0; - -webkit-border-bottom-right-radius: 1000px; - -webkit-border-top-right-radius: 1000px; - border-bottom-right-radius: 1000px; - border-top-right-radius: 1000px; } - -/* Separate prefix and postfix styles when on span or label so buttons keep their own */ -span.prefix, label.prefix { - background: #f2f2f2; - border-right: none; - color: #333333; - border-color: #cccccc; } - -span.postfix, label.postfix { - background: #f2f2f2; - border-left: none; - color: #333333; - border-color: #cccccc; } - -/* We use this to get basic styling on all basic form elements */ -input[type="text"], -input[type="password"], -input[type="date"], -input[type="datetime"], -input[type="datetime-local"], -input[type="month"], -input[type="week"], -input[type="email"], -input[type="number"], -input[type="search"], -input[type="tel"], -input[type="time"], -input[type="url"], -input[type="color"], -textarea { - -webkit-appearance: none; - -webkit-border-radius: 0px; - background-color: white; - font-family: inherit; - border: 1px solid #cccccc; - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); - color: rgba(0, 0, 0, 0.75); - display: block; - font-size: 0.875rem; - margin: 0 0 1rem 0; - padding: 0.5rem; - height: 2.3125rem; - width: 100%; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - transition: box-shadow 0.45s, border-color 0.45s ease-in-out; } - input[type="text"]:focus, - input[type="password"]:focus, - input[type="date"]:focus, - input[type="datetime"]:focus, - input[type="datetime-local"]:focus, - input[type="month"]:focus, - input[type="week"]:focus, - input[type="email"]:focus, - input[type="number"]:focus, - input[type="search"]:focus, - input[type="tel"]:focus, - input[type="time"]:focus, - input[type="url"]:focus, - input[type="color"]:focus, - textarea:focus { - box-shadow: 0 0 5px #999999; - border-color: #999999; } - input[type="text"]:focus, - input[type="password"]:focus, - input[type="date"]:focus, - input[type="datetime"]:focus, - input[type="datetime-local"]:focus, - input[type="month"]:focus, - input[type="week"]:focus, - input[type="email"]:focus, - input[type="number"]:focus, - input[type="search"]:focus, - input[type="tel"]:focus, - input[type="time"]:focus, - input[type="url"]:focus, - input[type="color"]:focus, - textarea:focus { - background: #fafafa; - border-color: #999999; - outline: none; } - input[type="text"]:disabled, - input[type="password"]:disabled, - input[type="date"]:disabled, - input[type="datetime"]:disabled, - input[type="datetime-local"]:disabled, - input[type="month"]:disabled, - input[type="week"]:disabled, - input[type="email"]:disabled, - input[type="number"]:disabled, - input[type="search"]:disabled, - input[type="tel"]:disabled, - input[type="time"]:disabled, - input[type="url"]:disabled, - input[type="color"]:disabled, - textarea:disabled { - background-color: #dddddd; - cursor: default; } - input[type="text"][disabled], input[type="text"][readonly], fieldset[disabled] input[type="text"], - input[type="password"][disabled], - input[type="password"][readonly], fieldset[disabled] - input[type="password"], - input[type="date"][disabled], - input[type="date"][readonly], fieldset[disabled] - input[type="date"], - input[type="datetime"][disabled], - input[type="datetime"][readonly], fieldset[disabled] - input[type="datetime"], - input[type="datetime-local"][disabled], - input[type="datetime-local"][readonly], fieldset[disabled] - input[type="datetime-local"], - input[type="month"][disabled], - input[type="month"][readonly], fieldset[disabled] - input[type="month"], - input[type="week"][disabled], - input[type="week"][readonly], fieldset[disabled] - input[type="week"], - input[type="email"][disabled], - input[type="email"][readonly], fieldset[disabled] - input[type="email"], - input[type="number"][disabled], - input[type="number"][readonly], fieldset[disabled] - input[type="number"], - input[type="search"][disabled], - input[type="search"][readonly], fieldset[disabled] - input[type="search"], - input[type="tel"][disabled], - input[type="tel"][readonly], fieldset[disabled] - input[type="tel"], - input[type="time"][disabled], - input[type="time"][readonly], fieldset[disabled] - input[type="time"], - input[type="url"][disabled], - input[type="url"][readonly], fieldset[disabled] - input[type="url"], - input[type="color"][disabled], - input[type="color"][readonly], fieldset[disabled] - input[type="color"], - textarea[disabled], - textarea[readonly], fieldset[disabled] - textarea { - background-color: #dddddd; - cursor: default; } - input[type="text"].radius, - input[type="password"].radius, - input[type="date"].radius, - input[type="datetime"].radius, - input[type="datetime-local"].radius, - input[type="month"].radius, - input[type="week"].radius, - input[type="email"].radius, - input[type="number"].radius, - input[type="search"].radius, - input[type="tel"].radius, - input[type="time"].radius, - input[type="url"].radius, - input[type="color"].radius, - textarea.radius { - border-radius: 3px; } - -form .row .prefix-radius.row.collapse input, -form .row .prefix-radius.row.collapse textarea, -form .row .prefix-radius.row.collapse select { - border-radius: 0; - -webkit-border-bottom-right-radius: 3px; - -webkit-border-top-right-radius: 3px; - border-bottom-right-radius: 3px; - border-top-right-radius: 3px; } -form .row .prefix-radius.row.collapse .prefix { - border-radius: 0; - -webkit-border-bottom-left-radius: 3px; - -webkit-border-top-left-radius: 3px; - border-bottom-left-radius: 3px; - border-top-left-radius: 3px; } -form .row .postfix-radius.row.collapse input, -form .row .postfix-radius.row.collapse textarea, -form .row .postfix-radius.row.collapse select { - border-radius: 0; - -webkit-border-bottom-left-radius: 3px; - -webkit-border-top-left-radius: 3px; - border-bottom-left-radius: 3px; - border-top-left-radius: 3px; } -form .row .postfix-radius.row.collapse .postfix { - border-radius: 0; - -webkit-border-bottom-right-radius: 3px; - -webkit-border-top-right-radius: 3px; - border-bottom-right-radius: 3px; - border-top-right-radius: 3px; } -form .row .prefix-round.row.collapse input, -form .row .prefix-round.row.collapse textarea, -form .row .prefix-round.row.collapse select { - border-radius: 0; - -webkit-border-bottom-right-radius: 1000px; - -webkit-border-top-right-radius: 1000px; - border-bottom-right-radius: 1000px; - border-top-right-radius: 1000px; } -form .row .prefix-round.row.collapse .prefix { - border-radius: 0; - -webkit-border-bottom-left-radius: 1000px; - -webkit-border-top-left-radius: 1000px; - border-bottom-left-radius: 1000px; - border-top-left-radius: 1000px; } -form .row .postfix-round.row.collapse input, -form .row .postfix-round.row.collapse textarea, -form .row .postfix-round.row.collapse select { - border-radius: 0; - -webkit-border-bottom-left-radius: 1000px; - -webkit-border-top-left-radius: 1000px; - border-bottom-left-radius: 1000px; - border-top-left-radius: 1000px; } -form .row .postfix-round.row.collapse .postfix { - border-radius: 0; - -webkit-border-bottom-right-radius: 1000px; - -webkit-border-top-right-radius: 1000px; - border-bottom-right-radius: 1000px; - border-top-right-radius: 1000px; } - -input[type="submit"] { - -webkit-appearance: none; - -webkit-border-radius: 0px; } - -/* Respect enforced amount of rows for textarea */ -textarea[rows] { - height: auto; } - -/* Add height value for select elements to match text input height */ -select { - -webkit-appearance: none !important; - -webkit-border-radius: 0px; - background-color: #fafafa; - background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMTJweCIgeT0iMHB4IiB3aWR0aD0iMjRweCIgaGVpZ2h0PSIzcHgiIHZpZXdCb3g9IjAgMCA2IDMiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDYgMyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBvbHlnb24gcG9pbnRzPSI1Ljk5MiwwIDIuOTkyLDMgLTAuMDA4LDAgIi8+PC9zdmc+); - background-position: 100% center; - background-repeat: no-repeat; - border: 1px solid #cccccc; - padding: 0.5rem; - font-size: 0.875rem; - font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; - color: rgba(0, 0, 0, 0.75); - line-height: normal; - border-radius: 0; - height: 2.3125rem; } - select.radius { - border-radius: 3px; } - select:hover { - background-color: #f3f3f3; - border-color: #999999; } - select:disabled { - background-color: #dddddd; - cursor: default; } - -/* Adjust margin for form elements below */ -input[type="file"], -input[type="checkbox"], -input[type="radio"], -select { - margin: 0 0 1rem 0; } - -input[type="checkbox"] + label, -input[type="radio"] + label { - display: inline-block; - margin-left: 0.5rem; - margin-right: 1rem; - margin-bottom: 0; - vertical-align: baseline; } - -/* Normalize file input width */ -input[type="file"] { - width: 100%; } - -/* HTML5 Number spinners settings */ -/* We add basic fieldset styling */ -fieldset { - border: 1px solid #dddddd; - padding: 1.25rem; - margin: 1.125rem 0; } - fieldset legend { - font-weight: bold; - background: white; - padding: 0 0.1875rem; - margin: 0; - margin-left: -0.1875rem; } - -/* Error Handling */ -[data-abide] .error small.error, [data-abide] .error span.error, [data-abide] span.error, [data-abide] small.error { - display: block; - padding: 0.375rem 0.5625rem 0.5625rem; - margin-top: -1px; - margin-bottom: 1rem; - font-size: 0.75rem; - font-weight: normal; - font-style: italic; - background: #f04124; - color: white; } -[data-abide] span.error, [data-abide] small.error { - display: none; } - -span.error, small.error { - display: block; - padding: 0.375rem 0.5625rem 0.5625rem; - margin-top: -1px; - margin-bottom: 1rem; - font-size: 0.75rem; - font-weight: normal; - font-style: italic; - background: #f04124; - color: white; } - -.error input, -.error textarea, -.error select { - margin-bottom: 0; } -.error input[type="checkbox"], -.error input[type="radio"] { - margin-bottom: 1rem; } -.error label, -.error label.error { - color: #f04124; } -.error small.error { - display: block; - padding: 0.375rem 0.5625rem 0.5625rem; - margin-top: -1px; - margin-bottom: 1rem; - font-size: 0.75rem; - font-weight: normal; - font-style: italic; - background: #f04124; - color: white; } -.error > label > small { - color: #676767; - background: transparent; - padding: 0; - text-transform: capitalize; - font-style: normal; - font-size: 60%; - margin: 0; - display: inline; } -.error span.error-message { - display: block; } - -input.error, -textarea.error, -select.error { - margin-bottom: 0; } - -label.error { - color: #f04124; } - -.icon-bar { - width: 100%; - font-size: 0; - display: inline-block; - background: #333333; } - .icon-bar > * { - text-align: center; - font-size: 1rem; - width: 25%; - margin: 0 auto; - display: block; - padding: 1.25rem; - float: left; } - .icon-bar > * i, .icon-bar > * img { - display: block; - margin: 0 auto; } - .icon-bar > * i + label, .icon-bar > * img + label { - margin-top: .0625rem; } - .icon-bar > * i { - font-size: 1.875rem; - vertical-align: middle; } - .icon-bar > * img { - width: 1.875rem; - height: 1.875rem; } - .icon-bar.label-right > * i, .icon-bar.label-right > * img { - margin: 0 .0625rem 0 0; - display: inline-block; } - .icon-bar.label-right > * i + label, .icon-bar.label-right > * img + label { - margin-top: 0; } - .icon-bar.label-right > * label { - display: inline-block; } - .icon-bar.vertical.label-right > * { - text-align: left; } - .icon-bar.vertical, .icon-bar.small-vertical { - height: 100%; - width: auto; } - .icon-bar.vertical .item, .icon-bar.small-vertical .item { - width: auto; - margin: auto; - float: none; } - @media only screen and (min-width: 40.063em) { - .icon-bar.medium-vertical { - height: 100%; - width: auto; } - .icon-bar.medium-vertical .item { - width: auto; - margin: auto; - float: none; } } - @media only screen and (min-width: 64.063em) { - .icon-bar.large-vertical { - height: 100%; - width: auto; } - .icon-bar.large-vertical .item { - width: auto; - margin: auto; - float: none; } } - .icon-bar > * { - font-size: 1rem; - padding: 1.25rem; } - .icon-bar > * i + label, .icon-bar > * img + label { - margin-top: .0625rem; } - .icon-bar > * i { - font-size: 1.875rem; } - .icon-bar > * img { - width: 1.875rem; - height: 1.875rem; } - .icon-bar > *:hover { - background: #008cba; } - .icon-bar > * label { - color: white; } - .icon-bar > * i { - color: white; } - -.icon-bar.two-up .item { - width: 50%; } -.icon-bar.two-up.vertical .item, .icon-bar.two-up.small-vertical .item { - width: auto; } -@media only screen and (min-width: 40.063em) { - .icon-bar.two-up.medium-vertical .item { - width: auto; } } -@media only screen and (min-width: 64.063em) { - .icon-bar.two-up.large-vertical .item { - width: auto; } } -.icon-bar.three-up .item { - width: 33.3333%; } -.icon-bar.three-up.vertical .item, .icon-bar.three-up.small-vertical .item { - width: auto; } -@media only screen and (min-width: 40.063em) { - .icon-bar.three-up.medium-vertical .item { - width: auto; } } -@media only screen and (min-width: 64.063em) { - .icon-bar.three-up.large-vertical .item { - width: auto; } } -.icon-bar.four-up .item { - width: 25%; } -.icon-bar.four-up.vertical .item, .icon-bar.four-up.small-vertical .item { - width: auto; } -@media only screen and (min-width: 40.063em) { - .icon-bar.four-up.medium-vertical .item { - width: auto; } } -@media only screen and (min-width: 64.063em) { - .icon-bar.four-up.large-vertical .item { - width: auto; } } -.icon-bar.five-up .item { - width: 20%; } -.icon-bar.five-up.vertical .item, .icon-bar.five-up.small-vertical .item { - width: auto; } -@media only screen and (min-width: 40.063em) { - .icon-bar.five-up.medium-vertical .item { - width: auto; } } -@media only screen and (min-width: 64.063em) { - .icon-bar.five-up.large-vertical .item { - width: auto; } } -.icon-bar.six-up .item { - width: 16.66667%; } -.icon-bar.six-up.vertical .item, .icon-bar.six-up.small-vertical .item { - width: auto; } -@media only screen and (min-width: 40.063em) { - .icon-bar.six-up.medium-vertical .item { - width: auto; } } -@media only screen and (min-width: 64.063em) { - .icon-bar.six-up.large-vertical .item { - width: auto; } } - -.inline-list { - margin: 0 auto 1.0625rem auto; - margin-left: -1.375rem; - margin-right: 0; - padding: 0; - list-style: none; - overflow: hidden; } - .inline-list > li { - list-style: none; - float: left; - margin-left: 1.375rem; - display: block; } - .inline-list > li > * { - display: block; } - -/* Foundation Joyride */ -.joyride-list { - display: none; } - -/* Default styles for the container */ -.joyride-tip-guide { - display: none; - position: absolute; - background: #333333; - color: white; - z-index: 101; - top: 0; - left: 2.5%; - font-family: inherit; - font-weight: normal; - width: 95%; } - -.lt-ie9 .joyride-tip-guide { - max-width: 800px; - left: 50%; - margin-left: -400px; } - -.joyride-content-wrapper { - width: 100%; - padding: 1.125rem 1.25rem 1.5rem; } - .joyride-content-wrapper .button { - margin-bottom: 0 !important; } - .joyride-content-wrapper .joyride-prev-tip { - margin-right: 10px; } - -/* Add a little css triangle pip, older browser just miss out on the fanciness of it */ -.joyride-tip-guide .joyride-nub { - display: block; - position: absolute; - left: 22px; - width: 0; - height: 0; - border: 10px solid #333333; } - .joyride-tip-guide .joyride-nub.top { - border-top-style: solid; - border-color: #333333; - border-top-color: transparent !important; - border-left-color: transparent !important; - border-right-color: transparent !important; - top: -20px; } - .joyride-tip-guide .joyride-nub.bottom { - border-bottom-style: solid; - border-color: #333333 !important; - border-bottom-color: transparent !important; - border-left-color: transparent !important; - border-right-color: transparent !important; - bottom: -20px; } - .joyride-tip-guide .joyride-nub.right { - right: -20px; } - .joyride-tip-guide .joyride-nub.left { - left: -20px; } - -/* Typography */ -.joyride-tip-guide h1, -.joyride-tip-guide h2, -.joyride-tip-guide h3, -.joyride-tip-guide h4, -.joyride-tip-guide h5, -.joyride-tip-guide h6 { - line-height: 1.25; - margin: 0; - font-weight: bold; - color: white; } - -.joyride-tip-guide p { - margin: 0 0 1.125rem 0; - font-size: 0.875rem; - line-height: 1.3; } - -.joyride-timer-indicator-wrap { - width: 50px; - height: 3px; - border: solid 1px #555555; - position: absolute; - right: 1.0625rem; - bottom: 1rem; } - -.joyride-timer-indicator { - display: block; - width: 0; - height: inherit; - background: #666666; } - -.joyride-close-tip { - position: absolute; - right: 12px; - top: 10px; - color: #777777 !important; - text-decoration: none; - font-size: 24px; - font-weight: normal; - line-height: .5 !important; } - .joyride-close-tip:hover, .joyride-close-tip:focus { - color: #eeeeee !important; } - -.joyride-modal-bg { - position: fixed; - height: 100%; - width: 100%; - background: transparent; - background: rgba(0, 0, 0, 0.5); - z-index: 100; - display: none; - top: 0; - left: 0; - cursor: pointer; } - -.joyride-expose-wrapper { - background-color: white; - position: absolute; - border-radius: 3px; - z-index: 102; - box-shadow: 0 0 15px white; } - -.joyride-expose-cover { - background: transparent; - border-radius: 3px; - position: absolute; - z-index: 9999; - top: 0; - left: 0; } - -/* Styles for screens that are at least 768px; */ -@media only screen and (min-width: 40.063em) { - .joyride-tip-guide { - width: 300px; - left: inherit; } - .joyride-tip-guide .joyride-nub.bottom { - border-color: #333333 !important; - border-bottom-color: transparent !important; - border-left-color: transparent !important; - border-right-color: transparent !important; - bottom: -20px; } - .joyride-tip-guide .joyride-nub.right { - border-color: #333333 !important; - border-top-color: transparent !important; - border-right-color: transparent !important; - border-bottom-color: transparent !important; - top: 22px; - left: auto; - right: -20px; } - .joyride-tip-guide .joyride-nub.left { - border-color: #333333 !important; - border-top-color: transparent !important; - border-left-color: transparent !important; - border-bottom-color: transparent !important; - top: 22px; - left: -20px; - right: auto; } } -.keystroke, -kbd { - background-color: #ededed; - border-color: #dddddd; - color: #222222; - border-style: solid; - border-width: 1px; - margin: 0; - font-family: "Consolas", "Menlo", "Courier", monospace; - font-size: inherit; - padding: 0.125rem 0.25rem 0; - border-radius: 3px; } - -.label { - font-weight: normal; - font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; - text-align: center; - text-decoration: none; - line-height: 1; - white-space: nowrap; - display: inline-block; - position: relative; - margin-bottom: inherit; - padding: 0.25rem 0.5rem 0.25rem; - font-size: 0.6875rem; - background-color: #008cba; - color: white; } - .label.radius { - border-radius: 3px; } - .label.round { - border-radius: 1000px; } - .label.alert { - background-color: #f04124; - color: white; } - .label.warning { - background-color: #f08a24; - color: white; } - .label.success { - background-color: #43ac6a; - color: white; } - .label.secondary { - background-color: #e7e7e7; - color: #333333; } - .label.info { - background-color: #a0d3e8; - color: #333333; } - -[data-magellan-expedition], [data-magellan-expedition-clone] { - background: white; - z-index: 50; - min-width: 100%; - padding: 10px; } - [data-magellan-expedition] .sub-nav, [data-magellan-expedition-clone] .sub-nav { - margin-bottom: 0; } - [data-magellan-expedition] .sub-nav dd, [data-magellan-expedition-clone] .sub-nav dd { - margin-bottom: 0; } - [data-magellan-expedition] .sub-nav a, [data-magellan-expedition-clone] .sub-nav a { - line-height: 1.8em; } - -@-webkit-keyframes rotate { - from { - -webkit-transform: rotate(0deg); } - - to { - -webkit-transform: rotate(360deg); } } -@-moz-keyframes rotate { - from { - -moz-transform: rotate(0deg); } - - to { - -moz-transform: rotate(360deg); } } -@-o-keyframes rotate { - from { - -o-transform: rotate(0deg); } - - to { - -o-transform: rotate(360deg); } } -@keyframes rotate { - from { - transform: rotate(0deg); } - - to { - transform: rotate(360deg); } } -/* Orbit Graceful Loading */ -.slideshow-wrapper { - position: relative; } - .slideshow-wrapper ul { - list-style-type: none; - margin: 0; } - .slideshow-wrapper ul li, - .slideshow-wrapper ul li .orbit-caption { - display: none; } - .slideshow-wrapper ul li:first-child { - display: block; } - .slideshow-wrapper .orbit-container { - background-color: transparent; } - .slideshow-wrapper .orbit-container li { - display: block; } - .slideshow-wrapper .orbit-container li .orbit-caption { - display: block; } - .slideshow-wrapper .orbit-container .orbit-bullets li { - display: inline-block; } - .slideshow-wrapper .preloader { - display: block; - width: 40px; - height: 40px; - position: absolute; - top: 50%; - left: 50%; - margin-top: -20px; - margin-left: -20px; - border: solid 3px; - border-color: #555555 white; - border-radius: 1000px; - animation-name: rotate; - animation-duration: 1.5s; - animation-iteration-count: infinite; - animation-timing-function: linear; } - -.orbit-container { - overflow: hidden; - width: 100%; - position: relative; - background: none; } - .orbit-container .orbit-slides-container { - list-style: none; - margin: 0; - padding: 0; - position: relative; - -webkit-transform: translateZ(0); } - .orbit-container .orbit-slides-container img { - display: block; - max-width: 100%; } - .orbit-container .orbit-slides-container > * { - position: absolute; - top: 0; - width: 100%; - margin-left: 100%; } - .orbit-container .orbit-slides-container > *:first-child { - margin-left: 0%; } - .orbit-container .orbit-slides-container > * .orbit-caption { - position: absolute; - bottom: 0; - background-color: rgba(51, 51, 51, 0.8); - color: white; - width: 100%; - padding: 0.625rem 0.875rem; - font-size: 0.875rem; } - .orbit-container .orbit-slide-number { - position: absolute; - top: 10px; - left: 10px; - font-size: 12px; - color: white; - background: transparent; - z-index: 10; } - .orbit-container .orbit-slide-number span { - font-weight: 700; - padding: 0.3125rem; } - .orbit-container .orbit-timer { - position: absolute; - top: 12px; - right: 10px; - height: 6px; - width: 100px; - z-index: 10; } - .orbit-container .orbit-timer .orbit-progress { - height: 3px; - background-color: rgba(255, 255, 255, 0.3); - display: block; - width: 0%; - position: relative; - right: 20px; - top: 5px; } - .orbit-container .orbit-timer > span { - display: none; - position: absolute; - top: 0px; - right: 0; - width: 11px; - height: 14px; - border: solid 4px white; - border-top: none; - border-bottom: none; } - .orbit-container .orbit-timer.paused > span { - right: -4px; - top: 0px; - width: 11px; - height: 14px; - border: inset 8px; - border-left-style: solid; - border-color: transparent; - border-left-color: white; } - .orbit-container .orbit-timer.paused > span.dark { - border-left-color: #333333; } - .orbit-container:hover .orbit-timer > span { - display: block; } - .orbit-container .orbit-prev, - .orbit-container .orbit-next { - position: absolute; - top: 45%; - margin-top: -25px; - width: 36px; - height: 60px; - line-height: 50px; - color: white; - background-color: transparent; - text-indent: -9999px !important; - z-index: 10; } - .orbit-container .orbit-prev:hover, - .orbit-container .orbit-next:hover { - background-color: rgba(0, 0, 0, 0.3); } - .orbit-container .orbit-prev > span, - .orbit-container .orbit-next > span { - position: absolute; - top: 50%; - margin-top: -10px; - display: block; - width: 0; - height: 0; - border: inset 10px; } - .orbit-container .orbit-prev { - left: 0; } - .orbit-container .orbit-prev > span { - border-right-style: solid; - border-color: transparent; - border-right-color: white; } - .orbit-container .orbit-prev:hover > span { - border-right-color: white; } - .orbit-container .orbit-next { - right: 0; } - .orbit-container .orbit-next > span { - border-color: transparent; - border-left-style: solid; - border-left-color: white; - left: 50%; - margin-left: -4px; } - .orbit-container .orbit-next:hover > span { - border-left-color: white; } - -.orbit-bullets-container { - text-align: center; } - -.orbit-bullets { - margin: 0 auto 30px auto; - overflow: hidden; - position: relative; - top: 10px; - float: none; - text-align: center; - display: block; } - .orbit-bullets li { - cursor: pointer; - display: inline-block; - width: 0.5625rem; - height: 0.5625rem; - background: #cccccc; - float: none; - margin-right: 6px; - border-radius: 1000px; } - .orbit-bullets li.active { - background: #999999; } - .orbit-bullets li:last-child { - margin-right: 0; } - -.touch .orbit-container .orbit-prev, -.touch .orbit-container .orbit-next { - display: none; } -.touch .orbit-bullets { - display: none; } - -@media only screen and (min-width: 40.063em) { - .touch .orbit-container .orbit-prev, - .touch .orbit-container .orbit-next { - display: inherit; } - .touch .orbit-bullets { - display: block; } } -@media only screen and (max-width: 40em) { - .orbit-stack-on-small .orbit-slides-container { - height: auto !important; } - .orbit-stack-on-small .orbit-slides-container > * { - position: relative; - margin: 0% !important; - opacity: 1 !important; } - .orbit-stack-on-small .orbit-slide-number { - display: none; } - - .orbit-timer { - display: none; } - - .orbit-next, .orbit-prev { - display: none; } - - .orbit-bullets { - display: none; } } -ul.pagination { - display: block; - min-height: 1.5rem; - margin-left: -0.3125rem; } - ul.pagination li { - height: 1.5rem; - color: #222222; - font-size: 0.875rem; - margin-left: 0.3125rem; } - ul.pagination li a, ul.pagination li button { - display: block; - padding: 0.0625rem 0.625rem 0.0625rem; - color: #999999; - background: none; - border-radius: 3px; - font-weight: normal; - font-size: 1em; - line-height: inherit; - transition: background-color 300ms ease-out; } - ul.pagination li:hover a, - ul.pagination li a:focus, ul.pagination li:hover button, - ul.pagination li button:focus { - background: #e6e6e6; } - ul.pagination li.unavailable a, ul.pagination li.unavailable button { - cursor: default; - color: #999999; } - ul.pagination li.unavailable:hover a, ul.pagination li.unavailable a:focus, ul.pagination li.unavailable:hover button, ul.pagination li.unavailable button:focus { - background: transparent; } - ul.pagination li.current a, ul.pagination li.current button { - background: #008cba; - color: white; - font-weight: bold; - cursor: default; } - ul.pagination li.current a:hover, ul.pagination li.current a:focus, ul.pagination li.current button:hover, ul.pagination li.current button:focus { - background: #008cba; } - ul.pagination li { - float: left; - display: block; } - -/* Pagination centred wrapper */ -.pagination-centered { - text-align: center; } - .pagination-centered ul.pagination li { - float: none; - display: inline-block; } - -/* Panels */ -.panel { - border-style: solid; - border-width: 1px; - border-color: #d8d8d8; - margin-bottom: 1.25rem; - padding: 1.25rem; - background: #f2f2f2; - color: #333333; } - .panel > :first-child { - margin-top: 0; } - .panel > :last-child { - margin-bottom: 0; } - .panel h1, .panel h2, .panel h3, .panel h4, .panel h5, .panel h6, .panel p, .panel li, .panel dl { - color: #333333; } - .panel h1, .panel h2, .panel h3, .panel h4, .panel h5, .panel h6 { - line-height: 1; - margin-bottom: 0.625rem; } - .panel h1.subheader, .panel h2.subheader, .panel h3.subheader, .panel h4.subheader, .panel h5.subheader, .panel h6.subheader { - line-height: 1.4; } - .panel.callout { - border-style: solid; - border-width: 1px; - border-color: #b6edff; - margin-bottom: 1.25rem; - padding: 1.25rem; - background: #ecfaff; - color: #333333; } - .panel.callout > :first-child { - margin-top: 0; } - .panel.callout > :last-child { - margin-bottom: 0; } - .panel.callout h1, .panel.callout h2, .panel.callout h3, .panel.callout h4, .panel.callout h5, .panel.callout h6, .panel.callout p, .panel.callout li, .panel.callout dl { - color: #333333; } - .panel.callout h1, .panel.callout h2, .panel.callout h3, .panel.callout h4, .panel.callout h5, .panel.callout h6 { - line-height: 1; - margin-bottom: 0.625rem; } - .panel.callout h1.subheader, .panel.callout h2.subheader, .panel.callout h3.subheader, .panel.callout h4.subheader, .panel.callout h5.subheader, .panel.callout h6.subheader { - line-height: 1.4; } - .panel.callout a:not(.button) { - color: #008cba; } - .panel.radius { - border-radius: 3px; } - -/* Pricing Tables */ -.pricing-table { - border: solid 1px #dddddd; - margin-left: 0; - margin-bottom: 1.25rem; } - .pricing-table * { - list-style: none; - line-height: 1; } - .pricing-table .title { - background-color: #333333; - padding: 0.9375rem 1.25rem; - text-align: center; - color: #eeeeee; - font-weight: normal; - font-size: 1rem; - font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; } - .pricing-table .price { - background-color: #f6f6f6; - padding: 0.9375rem 1.25rem; - text-align: center; - color: #333333; - font-weight: normal; - font-size: 2rem; - font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; } - .pricing-table .description { - background-color: white; - padding: 0.9375rem; - text-align: center; - color: #777777; - font-size: 0.75rem; - font-weight: normal; - line-height: 1.4; - border-bottom: dotted 1px #dddddd; } - .pricing-table .bullet-item { - background-color: white; - padding: 0.9375rem; - text-align: center; - color: #333333; - font-size: 0.875rem; - font-weight: normal; - border-bottom: dotted 1px #dddddd; } - .pricing-table .cta-button { - background-color: white; - text-align: center; - padding: 1.25rem 1.25rem 0; } - -/* Progress Bar */ -.progress { - background-color: #f6f6f6; - height: 1.5625rem; - border: 1px solid white; - padding: 0.125rem; - margin-bottom: 0.625rem; } - .progress .meter { - background: #008cba; - height: 100%; - display: block; } - .progress.secondary .meter { - background: #e7e7e7; - height: 100%; - display: block; } - .progress.success .meter { - background: #43ac6a; - height: 100%; - display: block; } - .progress.alert .meter { - background: #f04124; - height: 100%; - display: block; } - .progress.radius { - border-radius: 3px; } - .progress.radius .meter { - border-radius: 2px; } - .progress.round { - border-radius: 1000px; } - .progress.round .meter { - border-radius: 999px; } - -.range-slider { - display: block; - position: relative; - width: 100%; - height: 1rem; - border: 1px solid #dddddd; - margin: 1.25rem 0; - -ms-touch-action: none; - touch-action: none; - background: #fafafa; } - .range-slider.vertical-range { - display: block; - position: relative; - width: 100%; - height: 1rem; - border: 1px solid #dddddd; - margin: 1.25rem 0; - -ms-touch-action: none; - touch-action: none; - display: inline-block; - width: 1rem; - height: 12.5rem; } - .range-slider.vertical-range .range-slider-handle { - margin-top: 0; - margin-left: -0.5rem; - position: absolute; - bottom: -10.5rem; } - .range-slider.vertical-range .range-slider-active-segment { - width: 0.875rem; - height: auto; - bottom: 0; } - .range-slider.radius { - background: #fafafa; - border-radius: 3px; } - .range-slider.radius .range-slider-handle { - background: #008cba; - border-radius: 3px; } - .range-slider.radius .range-slider-handle:hover { - background: #007ba4; } - .range-slider.round { - background: #fafafa; - border-radius: 1000px; } - .range-slider.round .range-slider-handle { - background: #008cba; - border-radius: 1000px; } - .range-slider.round .range-slider-handle:hover { - background: #007ba4; } - .range-slider.disabled, .range-slider[disabled] { - background: #fafafa; - cursor: default; - opacity: 0.7; } - .range-slider.disabled .range-slider-handle, .range-slider[disabled] .range-slider-handle { - background: #008cba; - cursor: default; - opacity: 0.7; } - .range-slider.disabled .range-slider-handle:hover, .range-slider[disabled] .range-slider-handle:hover { - background: #007ba4; } - -.range-slider-active-segment { - display: inline-block; - position: absolute; - height: 0.875rem; - background: #e5e5e5; } - -.range-slider-handle { - display: inline-block; - position: absolute; - z-index: 1; - top: -0.3125rem; - width: 2rem; - height: 1.375rem; - border: 1px solid none; - cursor: pointer; - -ms-touch-action: manipulation; - touch-action: manipulation; - background: #008cba; } - .range-slider-handle:hover { - background: #007ba4; } - -.reveal-modal-bg { - position: fixed; - top: 0; - bottom: 0; - left: 0; - right: 0; - background: black; - background: rgba(0, 0, 0, 0.45); - z-index: 1004; - display: none; - left: 0; } - -.reveal-modal, dialog { - visibility: hidden; - display: none; - position: absolute; - z-index: 1005; - width: 100vw; - top: 0; - border-radius: 3px; - left: 0; - background-color: white; - padding: 1.25rem; - border: solid 1px #666666; - box-shadow: 0 0 10px rgba(0, 0, 0, 0.4); - padding: 1.875rem; } - @media only screen and (max-width: 40em) { - .reveal-modal, dialog { - min-height: 100vh; } } - .reveal-modal .column, dialog .column, .reveal-modal .columns, dialog .columns { - min-width: 0; } - .reveal-modal > :first-child, dialog > :first-child { - margin-top: 0; } - .reveal-modal > :last-child, dialog > :last-child { - margin-bottom: 0; } - @media only screen and (min-width: 40.063em) { - .reveal-modal, dialog { - width: 80%; - max-width: 62.5rem; - left: 0; - right: 0; - margin: 0 auto; } } - @media only screen and (min-width: 40.063em) { - .reveal-modal, dialog { - top: 6.25rem; } } - .reveal-modal.radius, dialog.radius { - border-radius: 3px; } - .reveal-modal.round, dialog.round { - border-radius: 1000px; } - .reveal-modal.collapse, dialog.collapse { - padding: 0; } - @media only screen and (min-width: 40.063em) { - .reveal-modal.tiny, dialog.tiny { - width: 30%; - max-width: 62.5rem; - left: 0; - right: 0; - margin: 0 auto; } } - @media only screen and (min-width: 40.063em) { - .reveal-modal.small, dialog.small { - width: 40%; - max-width: 62.5rem; - left: 0; - right: 0; - margin: 0 auto; } } - @media only screen and (min-width: 40.063em) { - .reveal-modal.medium, dialog.medium { - width: 60%; - max-width: 62.5rem; - left: 0; - right: 0; - margin: 0 auto; } } - @media only screen and (min-width: 40.063em) { - .reveal-modal.large, dialog.large { - width: 70%; - max-width: 62.5rem; - left: 0; - right: 0; - margin: 0 auto; } } - @media only screen and (min-width: 40.063em) { - .reveal-modal.xlarge, dialog.xlarge { - width: 95%; - max-width: 62.5rem; - left: 0; - right: 0; - margin: 0 auto; } } - .reveal-modal.full, dialog.full { - top: 0; - left: 0; - height: 100%; - height: 100vh; - min-height: 100vh; - margin-left: 0 !important; } - @media only screen and (min-width: 40.063em) { - .reveal-modal.full, dialog.full { - width: 100vw; - max-width: 62.5rem; - left: 0; - right: 0; - margin: 0 auto; } } - .reveal-modal .close-reveal-modal, dialog .close-reveal-modal { - font-size: 2.5rem; - line-height: 1; - position: absolute; - top: 0.5rem; - right: 0.6875rem; - color: #aaaaaa; - font-weight: bold; - cursor: pointer; } - -dialog { - display: none; } - dialog::backdrop, dialog + .backdrop { - position: fixed; - top: 0; - bottom: 0; - left: 0; - right: 0; - background: black; - background: rgba(0, 0, 0, 0.45); - z-index: auto; - display: none; - left: 0; } - dialog[open] { - display: block; } - -@media print { - dialog, .reveal-modal, dialog { - display: none; - background: white !important; } } -.side-nav { - display: block; - margin: 0; - padding: 0.875rem 0; - list-style-type: none; - list-style-position: outside; - font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; } - .side-nav li { - margin: 0 0 0.4375rem 0; - font-size: 0.875rem; - font-weight: normal; } - .side-nav li a:not(.button) { - display: block; - color: #008cba; - margin: 0; - padding: 0.4375rem 0.875rem; } - .side-nav li a:not(.button):hover, .side-nav li a:not(.button):focus { - background: rgba(0, 0, 0, 0.025); - color: #1cc7ff; } - .side-nav li.active > a:first-child:not(.button) { - color: #1cc7ff; - font-weight: normal; - font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; } - .side-nav li.divider { - border-top: 1px solid; - height: 0; - padding: 0; - list-style: none; - border-top-color: white; } - .side-nav li.heading { - color: #008cba; - font-size: 0.875rem; - font-weight: bold; - text-transform: uppercase; } - -.split.button { - position: relative; - padding-right: 5.0625rem; } - .split.button span { - display: block; - height: 100%; - position: absolute; - right: 0; - top: 0; - border-left: solid 1px; } - .split.button span:after { - position: absolute; - content: ""; - width: 0; - height: 0; - display: block; - border-style: inset; - top: 50%; - left: 50%; } - .split.button span:active { - background-color: rgba(0, 0, 0, 0.1); } - .split.button span { - border-left-color: rgba(255, 255, 255, 0.5); } - .split.button span { - width: 3.09375rem; } - .split.button span:after { - border-top-style: solid; - border-width: 0.375rem; - top: 48%; - margin-left: -0.375rem; } - .split.button span:after { - border-color: white transparent transparent transparent; } - .split.button.secondary span { - border-left-color: rgba(255, 255, 255, 0.5); } - .split.button.secondary span:after { - border-color: white transparent transparent transparent; } - .split.button.alert span { - border-left-color: rgba(255, 255, 255, 0.5); } - .split.button.success span { - border-left-color: rgba(255, 255, 255, 0.5); } - .split.button.tiny { - padding-right: 3.75rem; } - .split.button.tiny span { - width: 2.25rem; } - .split.button.tiny span:after { - border-top-style: solid; - border-width: 0.375rem; - top: 48%; - margin-left: -0.375rem; } - .split.button.small { - padding-right: 4.375rem; } - .split.button.small span { - width: 2.625rem; } - .split.button.small span:after { - border-top-style: solid; - border-width: 0.4375rem; - top: 48%; - margin-left: -0.375rem; } - .split.button.large { - padding-right: 5.5rem; } - .split.button.large span { - width: 3.4375rem; } - .split.button.large span:after { - border-top-style: solid; - border-width: 0.3125rem; - top: 48%; - margin-left: -0.375rem; } - .split.button.expand { - padding-left: 2rem; } - .split.button.secondary span:after { - border-color: #333333 transparent transparent transparent; } - .split.button.radius span { - -webkit-border-bottom-right-radius: 3px; - -webkit-border-top-right-radius: 3px; - border-bottom-right-radius: 3px; - border-top-right-radius: 3px; } - .split.button.round span { - -webkit-border-bottom-right-radius: 1000px; - -webkit-border-top-right-radius: 1000px; - border-bottom-right-radius: 1000px; - border-top-right-radius: 1000px; } - -.sub-nav { - display: block; - width: auto; - overflow: hidden; - margin: -0.25rem 0 1.125rem; - padding-top: 0.25rem; - margin-right: 0; - margin-left: -0.75rem; } - .sub-nav dt { - text-transform: uppercase; } - .sub-nav dt, - .sub-nav dd, - .sub-nav li { - float: left; - display: inline; - margin-left: 1rem; - margin-bottom: 0.625rem; - font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; - font-weight: normal; - font-size: 0.875rem; - color: #999999; } - .sub-nav dt a, - .sub-nav dd a, - .sub-nav li a { - text-decoration: none; - color: #999999; - padding: 0.1875rem 1rem; } - .sub-nav dt a:hover, - .sub-nav dd a:hover, - .sub-nav li a:hover { - color: #737373; } - .sub-nav dt.active a, - .sub-nav dd.active a, - .sub-nav li.active a { - border-radius: 3px; - font-weight: normal; - background: #008cba; - padding: 0.1875rem 1rem; - cursor: default; - color: white; } - .sub-nav dt.active a:hover, - .sub-nav dd.active a:hover, - .sub-nav li.active a:hover { - background: #0078a0; } - -.switch { - padding: 0; - border: none; - position: relative; } - .switch label { - display: block; - margin-bottom: 1rem; - position: relative; - color: transparent; - background: #dddddd; - text-indent: 100%; - width: 4rem; - height: 2rem; - cursor: pointer; - transition: left 0.15s ease-out; } - .switch input { - opacity: 0; - position: absolute; - top: 9px; - left: 10px; - padding: 0; } - .switch input + label { - margin-left: 0; - margin-right: 0; } - .switch label:after { - content: ""; - display: block; - background: white; - position: absolute; - top: .25rem; - left: .25rem; - width: 1.5rem; - height: 1.5rem; - -webkit-transition: left 0.15s ease-out; - -moz-transition: left 0.15s ease-out; - transition: left 0.15s ease-out; - -webkit-transform: translate3d(0, 0, 0); - -moz-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); } - .switch input:checked + label { - background: #008cba; } - .switch input:checked + label:after { - left: 2.25rem; } - .switch label { - width: 4rem; - height: 2rem; } - .switch label:after { - width: 1.5rem; - height: 1.5rem; } - .switch input:checked + label:after { - left: 2.25rem; } - .switch label { - color: transparent; - background: #dddddd; } - .switch label:after { - background: white; } - .switch input:checked + label { - background: #008cba; } - .switch.large label { - width: 5rem; - height: 2.5rem; } - .switch.large label:after { - width: 2rem; - height: 2rem; } - .switch.large input:checked + label:after { - left: 2.75rem; } - .switch.small label { - width: 3.5rem; - height: 1.75rem; } - .switch.small label:after { - width: 1.25rem; - height: 1.25rem; } - .switch.small input:checked + label:after { - left: 2rem; } - .switch.tiny label { - width: 3rem; - height: 1.5rem; } - .switch.tiny label:after { - width: 1rem; - height: 1rem; } - .switch.tiny input:checked + label:after { - left: 1.75rem; } - .switch.radius label { - border-radius: 4px; } - .switch.radius label:after { - border-radius: 3px; } - .switch.round { - border-radius: 1000px; } - .switch.round label { - border-radius: 2rem; } - .switch.round label:after { - border-radius: 2rem; } - -table { - background: white; - margin-bottom: 1.25rem; - border: solid 1px #dddddd; - table-layout: auto; } - table caption { - background: transparent; - color: #222222; - font-size: 1rem; - font-weight: bold; } - table thead { - background: whitesmoke; } - table thead tr th, - table thead tr td { - padding: 0.5rem 0.625rem 0.625rem; - font-size: 0.875rem; - font-weight: bold; - color: #222222; } - table tfoot { - background: whitesmoke; } - table tfoot tr th, - table tfoot tr td { - padding: 0.5rem 0.625rem 0.625rem; - font-size: 0.875rem; - font-weight: bold; - color: #222222; } - table tr th, - table tr td { - padding: 0.5625rem 0.625rem; - font-size: 0.875rem; - color: #222222; - text-align: left; } - table tr.even, table tr.alt, table tr:nth-of-type(even) { - background: #f9f9f9; } - table thead tr th, - table tfoot tr th, - table tfoot tr td, - table tbody tr th, - table tbody tr td, - table tr td { - display: table-cell; - line-height: 1.125rem; } - -.text-left { - text-align: left !important; } - -.text-right { - text-align: right !important; } - -.text-center { - text-align: center !important; } - -.text-justify { - text-align: justify !important; } - -@media only screen and (max-width: 40em) { - .small-only-text-left { - text-align: left !important; } - - .small-only-text-right { - text-align: right !important; } - - .small-only-text-center { - text-align: center !important; } - - .small-only-text-justify { - text-align: justify !important; } } -@media only screen { - .small-text-left { - text-align: left !important; } - - .small-text-right { - text-align: right !important; } - - .small-text-center { - text-align: center !important; } - - .small-text-justify { - text-align: justify !important; } } -@media only screen and (min-width: 40.063em) and (max-width: 64em) { - .medium-only-text-left { - text-align: left !important; } - - .medium-only-text-right { - text-align: right !important; } - - .medium-only-text-center { - text-align: center !important; } - - .medium-only-text-justify { - text-align: justify !important; } } -@media only screen and (min-width: 40.063em) { - .medium-text-left { - text-align: left !important; } - - .medium-text-right { - text-align: right !important; } - - .medium-text-center { - text-align: center !important; } - - .medium-text-justify { - text-align: justify !important; } } -@media only screen and (min-width: 64.063em) and (max-width: 90em) { - .large-only-text-left { - text-align: left !important; } - - .large-only-text-right { - text-align: right !important; } - - .large-only-text-center { - text-align: center !important; } - - .large-only-text-justify { - text-align: justify !important; } } -@media only screen and (min-width: 64.063em) { - .large-text-left { - text-align: left !important; } - - .large-text-right { - text-align: right !important; } - - .large-text-center { - text-align: center !important; } - - .large-text-justify { - text-align: justify !important; } } -@media only screen and (min-width: 90.063em) and (max-width: 120em) { - .xlarge-only-text-left { - text-align: left !important; } - - .xlarge-only-text-right { - text-align: right !important; } - - .xlarge-only-text-center { - text-align: center !important; } - - .xlarge-only-text-justify { - text-align: justify !important; } } -@media only screen and (min-width: 90.063em) { - .xlarge-text-left { - text-align: left !important; } - - .xlarge-text-right { - text-align: right !important; } - - .xlarge-text-center { - text-align: center !important; } - - .xlarge-text-justify { - text-align: justify !important; } } -@media only screen and (min-width: 120.063em) and (max-width: 99999999em) { - .xxlarge-only-text-left { - text-align: left !important; } - - .xxlarge-only-text-right { - text-align: right !important; } - - .xxlarge-only-text-center { - text-align: center !important; } - - .xxlarge-only-text-justify { - text-align: justify !important; } } -@media only screen and (min-width: 120.063em) { - .xxlarge-text-left { - text-align: left !important; } - - .xxlarge-text-right { - text-align: right !important; } - - .xxlarge-text-center { - text-align: center !important; } - - .xxlarge-text-justify { - text-align: justify !important; } } -/* Typography resets */ -div, -dl, -dt, -dd, -ul, -ol, -li, -h1, -h2, -h3, -h4, -h5, -h6, -pre, -form, -p, -blockquote, -th, -td { - margin: 0; - padding: 0; } - -/* Default Link Styles */ -a { - color: #008cba; - text-decoration: none; - line-height: inherit; } - a:hover, a:focus { - color: #0078a0; } - a img { - border: none; } - -/* Default paragraph styles */ -p { - font-family: inherit; - font-weight: normal; - font-size: 1rem; - line-height: 1.6; - margin-bottom: 1.25rem; - text-rendering: optimizeLegibility; } - p.lead { - font-size: 1.21875rem; - line-height: 1.6; } - p aside { - font-size: 0.875rem; - line-height: 1.35; - font-style: italic; } - -/* Default header styles */ -h1, h2, h3, h4, h5, h6 { - font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; - font-weight: normal; - font-style: normal; - color: #222222; - text-rendering: optimizeLegibility; - margin-top: 0.2rem; - margin-bottom: 0.5rem; - line-height: 1.4; } - h1 small, h2 small, h3 small, h4 small, h5 small, h6 small { - font-size: 60%; - color: #6f6f6f; - line-height: 0; } - -h1 { - font-size: 2.125rem; } - -h2 { - font-size: 1.6875rem; } - -h3 { - font-size: 1.375rem; } - -h4 { - font-size: 1.125rem; } - -h5 { - font-size: 1.125rem; } - -h6 { - font-size: 1rem; } - -.subheader { - line-height: 1.4; - color: #6f6f6f; - font-weight: normal; - margin-top: 0.2rem; - margin-bottom: 0.5rem; } - -hr { - border: solid #dddddd; - border-width: 1px 0 0; - clear: both; - margin: 1.25rem 0 1.1875rem; - height: 0; } - -/* Helpful Typography Defaults */ -em, -i { - font-style: italic; - line-height: inherit; } - -strong, -b { - font-weight: bold; - line-height: inherit; } - -small { - font-size: 60%; - line-height: inherit; } - -code { - font-family: Consolas, "Liberation Mono", Courier, monospace; - font-weight: normal; - color: #333333; - background-color: #f8f8f8; - border-width: 1px; - border-style: solid; - border-color: #dfdfdf; - padding: 0.125rem 0.3125rem 0.0625rem; } - -/* Lists */ -ul, -ol, -dl { - font-size: 1rem; - line-height: 1.6; - margin-bottom: 1.25rem; - list-style-position: outside; - font-family: inherit; } - -ul { - margin-left: 1.1rem; } - ul.no-bullet { - margin-left: 0; } - ul.no-bullet li ul, - ul.no-bullet li ol { - margin-left: 1.25rem; - margin-bottom: 0; - list-style: none; } - -/* Unordered Lists */ -ul li ul, -ul li ol { - margin-left: 1.25rem; - margin-bottom: 0; } -ul.square li ul, ul.circle li ul, ul.disc li ul { - list-style: inherit; } -ul.square { - list-style-type: square; - margin-left: 1.1rem; } -ul.circle { - list-style-type: circle; - margin-left: 1.1rem; } -ul.disc { - list-style-type: disc; - margin-left: 1.1rem; } -ul.no-bullet { - list-style: none; } - -/* Ordered Lists */ -ol { - margin-left: 1.4rem; } - ol li ul, - ol li ol { - margin-left: 1.25rem; - margin-bottom: 0; } - -/* Definition Lists */ -dl dt { - margin-bottom: 0.3rem; - font-weight: bold; } -dl dd { - margin-bottom: 0.75rem; } - -/* Abbreviations */ -abbr, -acronym { - text-transform: uppercase; - font-size: 90%; - color: #222222; - cursor: help; } - -abbr { - text-transform: none; } - abbr[title] { - border-bottom: 1px dotted #dddddd; } - -/* Blockquotes */ -blockquote { - margin: 0 0 1.25rem; - padding: 0.5625rem 1.25rem 0 1.1875rem; - border-left: 1px solid #dddddd; } - blockquote cite { - display: block; - font-size: 0.8125rem; - color: #555555; } - blockquote cite:before { - content: "\2014 \0020"; } - blockquote cite a, - blockquote cite a:visited { - color: #555555; } - -blockquote, -blockquote p { - line-height: 1.6; - color: #6f6f6f; } - -/* Microformats */ -.vcard { - display: inline-block; - margin: 0 0 1.25rem 0; - border: 1px solid #dddddd; - padding: 0.625rem 0.75rem; } - .vcard li { - margin: 0; - display: block; } - .vcard .fn { - font-weight: bold; - font-size: 0.9375rem; } - -.vevent .summary { - font-weight: bold; } -.vevent abbr { - cursor: default; - text-decoration: none; - font-weight: bold; - border: none; - padding: 0 0.0625rem; } - -@media only screen and (min-width: 40.063em) { - h1, h2, h3, h4, h5, h6 { - line-height: 1.4; } - - h1 { - font-size: 2.75rem; } - - h2 { - font-size: 2.3125rem; } - - h3 { - font-size: 1.6875rem; } - - h4 { - font-size: 1.4375rem; } - - h5 { - font-size: 1.125rem; } - - h6 { - font-size: 1rem; } } -/* - * Print styles. - * - * Inlined to avoid required HTTP connection: www.phpied.com/delay-loading-your-print-css/ - * Credit to Paul Irish and HTML5 Boilerplate (html5boilerplate.com) -*/ -.print-only { - display: none !important; } - -@media print { - * { - background: transparent !important; - color: black !important; - /* Black prints faster: h5bp.com/s */ - box-shadow: none !important; - text-shadow: none !important; } - - a, - a:visited { - text-decoration: underline; } - - a[href]:after { - content: " (" attr(href) ")"; } - - abbr[title]:after { - content: " (" attr(title) ")"; } - - .ir a:after, - a[href^="javascript:"]:after, - a[href^="#"]:after { - content: ""; } - - pre, - blockquote { - border: 1px solid #999999; - page-break-inside: avoid; } - - thead { - display: table-header-group; - /* h5bp.com/t */ } - - tr, - img { - page-break-inside: avoid; } - - img { - max-width: 100% !important; } - - @page { - margin: 0.5cm; } - p, - h2, - h3 { - orphans: 3; - widows: 3; } - - h2, - h3 { - page-break-after: avoid; } - - .hide-on-print { - display: none !important; } - - .print-only { - display: block !important; } - - .hide-for-print { - display: none !important; } - - .show-for-print { - display: inherit !important; } } -.tabs { - margin-bottom: 0 !important; - margin-left: 0; } - .tabs:before, .tabs:after { - content: " "; - display: table; } - .tabs:after { - clear: both; } - .tabs dd, .tabs .tab-title { - position: relative; - margin-bottom: 0 !important; - list-style: none; - float: left; } - .tabs dd > a, .tabs .tab-title > a { - display: block; - background-color: #efefef; - color: #222222; - padding: 1rem 2rem; - font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; - font-size: 1rem; } - .tabs dd > a:hover, .tabs .tab-title > a:hover { - background-color: #e1e1e1; } - .tabs dd.active a, .tabs .tab-title.active a { - background-color: white; - color: #222222; } - .tabs.radius dd:first-child a, .tabs.radius .tab:first-child a { - -webkit-border-bottom-left-radius: 3px; - -webkit-border-top-left-radius: 3px; - border-bottom-left-radius: 3px; - border-top-left-radius: 3px; } - .tabs.radius dd:last-child a, .tabs.radius .tab:last-child a { - -webkit-border-bottom-right-radius: 3px; - -webkit-border-top-right-radius: 3px; - border-bottom-right-radius: 3px; - border-top-right-radius: 3px; } - .tabs.vertical dd, .tabs.vertical .tab-title { - position: inherit; - float: none; - display: block; - top: auto; } - -.tabs-content { - margin-bottom: 1.5rem; - width: 100%; } - .tabs-content:before, .tabs-content:after { - content: " "; - display: table; } - .tabs-content:after { - clear: both; } - .tabs-content > .content { - display: none; - float: left; - padding: 0.9375rem 0; - width: 100%; } - .tabs-content > .content.active { - display: block; - float: none; } - .tabs-content > .content.contained { - padding: 0.9375rem; } - .tabs-content.vertical { - display: block; } - .tabs-content.vertical > .content { - padding: 0 0.9375rem; } - -@media only screen and (min-width: 40.063em) { - .tabs.vertical { - width: 20%; - max-width: 20%; - float: left; - margin: 0 0 1.25rem; } - - .tabs-content.vertical { - width: 80%; - max-width: 80%; - float: left; - margin-left: -1px; - padding-left: 1rem; } } -.no-js .tabs-content > .content { - display: block; - float: none; } - -/* Image Thumbnails */ -.th { - line-height: 0; - display: inline-block; - border: solid 4px white; - max-width: 100%; - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2); - transition: all 200ms ease-out; } - .th:hover, .th:focus { - box-shadow: 0 0 6px 1px rgba(0, 140, 186, 0.5); } - .th.radius { - border-radius: 3px; } - -/* Tooltips */ -.has-tip { - border-bottom: dotted 1px #cccccc; - cursor: help; - font-weight: bold; - color: #333333; } - .has-tip:hover, .has-tip:focus { - border-bottom: dotted 1px #003f54; - color: #008cba; } - .has-tip.tip-left, .has-tip.tip-right { - float: none !important; } - -.tooltip { - display: none; - position: absolute; - z-index: 1006; - font-weight: normal; - font-size: 0.875rem; - line-height: 1.3; - padding: 0.75rem; - max-width: 300px; - left: 50%; - width: 100%; - color: white; - background: #333333; } - .tooltip > .nub { - display: block; - left: 5px; - position: absolute; - width: 0; - height: 0; - border: solid 5px; - border-color: transparent transparent #333333 transparent; - top: -10px; - pointer-events: none; } - .tooltip > .nub.rtl { - left: auto; - right: 5px; } - .tooltip.radius { - border-radius: 3px; } - .tooltip.round { - border-radius: 1000px; } - .tooltip.round > .nub { - left: 2rem; } - .tooltip.opened { - color: #008cba !important; - border-bottom: dotted 1px #003f54 !important; } - -.tap-to-close { - display: block; - font-size: 0.625rem; - color: #777777; - font-weight: normal; } - -@media only screen and (min-width: 40.063em) { - .tooltip > .nub { - border-color: transparent transparent #333333 transparent; - top: -10px; } - .tooltip.tip-top > .nub { - border-color: #333333 transparent transparent transparent; - top: auto; - bottom: -10px; } - .tooltip.tip-left, .tooltip.tip-right { - float: none !important; } - .tooltip.tip-left > .nub { - border-color: transparent transparent transparent #333333; - right: -10px; - left: auto; - top: 50%; - margin-top: -5px; } - .tooltip.tip-right > .nub { - border-color: transparent #333333 transparent transparent; - right: auto; - left: -10px; - top: 50%; - margin-top: -5px; } } -meta.foundation-mq-topbar { - font-family: "/only screen and (min-width:40.063em)/"; - width: 40.063em; } - -/* Wrapped around .top-bar to contain to grid width */ -.contain-to-grid { - width: 100%; - background: #333333; } - .contain-to-grid .top-bar { - margin-bottom: 0; } - -.fixed { - width: 100%; - left: 0; - position: fixed; - top: 0; - z-index: 99; } - .fixed.expanded:not(.top-bar) { - overflow-y: auto; - height: auto; - width: 100%; - max-height: 100%; } - .fixed.expanded:not(.top-bar) .title-area { - position: fixed; - width: 100%; - z-index: 99; } - .fixed.expanded:not(.top-bar) .top-bar-section { - z-index: 98; - margin-top: 45px; } - -.top-bar { - overflow: hidden; - height: 45px; - line-height: 45px; - position: relative; - background: #333333; - margin-bottom: 0; } - .top-bar ul { - margin-bottom: 0; - list-style: none; } - .top-bar .row { - max-width: none; } - .top-bar form, - .top-bar input { - margin-bottom: 0; } - .top-bar input { - height: 1.8rem; - padding-top: .35rem; - padding-bottom: .35rem; - font-size: 0.75rem; } - .top-bar .button, .top-bar button { - padding-top: 0.4125rem; - padding-bottom: 0.4125rem; - margin-bottom: 0; - font-size: 0.75rem; } - @media only screen and (max-width: 40em) { - .top-bar .button, .top-bar button { - position: relative; - top: -1px; } } - .top-bar .title-area { - position: relative; - margin: 0; } - .top-bar .name { - height: 45px; - margin: 0; - font-size: 16px; } - .top-bar .name h1 { - line-height: 45px; - font-size: 1.0625rem; - margin: 0; } - .top-bar .name h1 a { - font-weight: normal; - color: white; - width: 75%; - display: block; - padding: 0 15px; } - .top-bar .toggle-topbar { - position: absolute; - right: 0; - top: 0; } - .top-bar .toggle-topbar a { - color: white; - text-transform: uppercase; - font-size: 0.8125rem; - font-weight: bold; - position: relative; - display: block; - padding: 0 15px; - height: 45px; - line-height: 45px; } - .top-bar .toggle-topbar.menu-icon { - top: 50%; - margin-top: -16px; } - .top-bar .toggle-topbar.menu-icon a { - height: 34px; - line-height: 33px; - padding: 0 40px 0 15px; - color: white; - position: relative; } - .top-bar .toggle-topbar.menu-icon a span::after { - content: ""; - position: absolute; - display: block; - height: 0; - top: 50%; - margin-top: -8px; - right: 15px; - box-shadow: 0 0px 0 1px white, 0 7px 0 1px white, 0 14px 0 1px white; - width: 16px; } - .top-bar .toggle-topbar.menu-icon a span:hover:after { - box-shadow: 0 0px 0 1px white, 0 7px 0 1px white, 0 14px 0 1px white; } - .top-bar.expanded { - height: auto; - background: transparent; } - .top-bar.expanded .title-area { - background: #333333; } - .top-bar.expanded .toggle-topbar a { - color: #888888; } - .top-bar.expanded .toggle-topbar a::after { - box-shadow: 0 10px 0 1px #888888, 0 16px 0 1px #888888, 0 22px 0 1px #888888; } - -.top-bar-section { - left: 0; - position: relative; - width: auto; - transition: left 300ms ease-out; } - .top-bar-section ul { - padding: 0; - width: 100%; - height: auto; - display: block; - font-size: 16px; - margin: 0; } - .top-bar-section .divider, - .top-bar-section [role="separator"] { - border-top: solid 1px #1a1a1a; - clear: both; - height: 1px; - width: 100%; } - .top-bar-section ul li { - background: #333333; } - .top-bar-section ul li > a { - display: block; - width: 100%; - color: white; - padding: 12px 0 12px 0; - padding-left: 15px; - font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; - font-size: 0.8125rem; - font-weight: normal; - text-transform: none; } - .top-bar-section ul li > a.button { - font-size: 0.8125rem; - padding-right: 15px; - padding-left: 15px; - background-color: #008cba; - border-color: #007095; - color: white; } - .top-bar-section ul li > a.button:hover, .top-bar-section ul li > a.button:focus { - background-color: #007095; } - .top-bar-section ul li > a.button:hover, .top-bar-section ul li > a.button:focus { - color: white; } - .top-bar-section ul li > a.button.secondary { - background-color: #e7e7e7; - border-color: #b9b9b9; - color: #333333; } - .top-bar-section ul li > a.button.secondary:hover, .top-bar-section ul li > a.button.secondary:focus { - background-color: #b9b9b9; } - .top-bar-section ul li > a.button.secondary:hover, .top-bar-section ul li > a.button.secondary:focus { - color: #333333; } - .top-bar-section ul li > a.button.success { - background-color: #43ac6a; - border-color: #368a55; - color: white; } - .top-bar-section ul li > a.button.success:hover, .top-bar-section ul li > a.button.success:focus { - background-color: #368a55; } - .top-bar-section ul li > a.button.success:hover, .top-bar-section ul li > a.button.success:focus { - color: white; } - .top-bar-section ul li > a.button.alert { - background-color: #f04124; - border-color: #cf2a0e; - color: white; } - .top-bar-section ul li > a.button.alert:hover, .top-bar-section ul li > a.button.alert:focus { - background-color: #cf2a0e; } - .top-bar-section ul li > a.button.alert:hover, .top-bar-section ul li > a.button.alert:focus { - color: white; } - .top-bar-section ul li > button { - font-size: 0.8125rem; - padding-right: 15px; - padding-left: 15px; - background-color: #008cba; - border-color: #007095; - color: white; } - .top-bar-section ul li > button:hover, .top-bar-section ul li > button:focus { - background-color: #007095; } - .top-bar-section ul li > button:hover, .top-bar-section ul li > button:focus { - color: white; } - .top-bar-section ul li > button.secondary { - background-color: #e7e7e7; - border-color: #b9b9b9; - color: #333333; } - .top-bar-section ul li > button.secondary:hover, .top-bar-section ul li > button.secondary:focus { - background-color: #b9b9b9; } - .top-bar-section ul li > button.secondary:hover, .top-bar-section ul li > button.secondary:focus { - color: #333333; } - .top-bar-section ul li > button.success { - background-color: #43ac6a; - border-color: #368a55; - color: white; } - .top-bar-section ul li > button.success:hover, .top-bar-section ul li > button.success:focus { - background-color: #368a55; } - .top-bar-section ul li > button.success:hover, .top-bar-section ul li > button.success:focus { - color: white; } - .top-bar-section ul li > button.alert { - background-color: #f04124; - border-color: #cf2a0e; - color: white; } - .top-bar-section ul li > button.alert:hover, .top-bar-section ul li > button.alert:focus { - background-color: #cf2a0e; } - .top-bar-section ul li > button.alert:hover, .top-bar-section ul li > button.alert:focus { - color: white; } - .top-bar-section ul li:hover:not(.has-form) > a { - background-color: #555555; - background: #272727; - color: white; } - .top-bar-section ul li.active > a { - background: #008cba; - color: white; } - .top-bar-section ul li.active > a:hover { - background: #0078a0; - color: white; } - .top-bar-section .has-form { - padding: 15px; } - .top-bar-section .has-dropdown { - position: relative; } - .top-bar-section .has-dropdown > a:after { - content: ""; - display: block; - width: 0; - height: 0; - border: inset 5px; - border-color: transparent transparent transparent rgba(255, 255, 255, 0.4); - border-left-style: solid; - margin-right: 15px; - margin-top: -4.5px; - position: absolute; - top: 50%; - right: 0; } - .top-bar-section .has-dropdown.moved { - position: static; } - .top-bar-section .has-dropdown.moved > .dropdown { - display: block; - position: static !important; - height: auto; - width: auto; - overflow: visible; - clip: auto; - position: absolute !important; - width: 100%; } - .top-bar-section .has-dropdown.moved > a:after { - display: none; } - .top-bar-section .dropdown { - padding: 0; - position: absolute; - left: 100%; - top: 0; - z-index: 99; - display: block; - position: absolute !important; - height: 1px; - width: 1px; - overflow: hidden; - clip: rect(1px, 1px, 1px, 1px); } - .top-bar-section .dropdown li { - width: 100%; - height: auto; } - .top-bar-section .dropdown li a { - font-weight: normal; - padding: 8px 15px; } - .top-bar-section .dropdown li a.parent-link { - font-weight: normal; } - .top-bar-section .dropdown li.title h5, .top-bar-section .dropdown li.parent-link { - margin-bottom: 0; - margin-top: 0; - font-size: 1.125rem; } - .top-bar-section .dropdown li.title h5 a, .top-bar-section .dropdown li.parent-link a { - color: white; - display: block; } - .top-bar-section .dropdown li.title h5 a:hover, .top-bar-section .dropdown li.parent-link a:hover { - background: none; } - .top-bar-section .dropdown li.has-form { - padding: 8px 15px; } - .top-bar-section .dropdown li .button, .top-bar-section .dropdown li button { - top: auto; } - .top-bar-section .dropdown label { - padding: 8px 15px 2px; - margin-bottom: 0; - text-transform: uppercase; - color: #777777; - font-weight: bold; - font-size: 0.625rem; } - -.js-generated { - display: block; } - -@media only screen and (min-width: 40.063em) { - .top-bar { - background: #333333; - overflow: visible; } - .top-bar:before, .top-bar:after { - content: " "; - display: table; } - .top-bar:after { - clear: both; } - .top-bar .toggle-topbar { - display: none; } - .top-bar .title-area { - float: left; } - .top-bar .name h1 a { - width: auto; } - .top-bar input, - .top-bar .button, - .top-bar button { - font-size: 0.875rem; - position: relative; - top: 7px; } - .top-bar.expanded { - background: #333333; } - - .contain-to-grid .top-bar { - max-width: 62.5rem; - margin: 0 auto; - margin-bottom: 0; } - - .top-bar-section { - transition: none 0 0; - left: 0 !important; } - .top-bar-section ul { - width: auto; - height: auto !important; - display: inline; } - .top-bar-section ul li { - float: left; } - .top-bar-section ul li .js-generated { - display: none; } - .top-bar-section li.hover > a:not(.button) { - background-color: #555555; - background: #272727; - color: white; } - .top-bar-section li:not(.has-form) a:not(.button) { - padding: 0 15px; - line-height: 45px; - background: #333333; } - .top-bar-section li:not(.has-form) a:not(.button):hover { - background-color: #555555; - background: #272727; } - .top-bar-section li.active:not(.has-form) a:not(.button) { - padding: 0 15px; - line-height: 45px; - color: white; - background: #008cba; } - .top-bar-section li.active:not(.has-form) a:not(.button):hover { - background: #0078a0; - color: white; } - .top-bar-section .has-dropdown > a { - padding-right: 35px !important; } - .top-bar-section .has-dropdown > a:after { - content: ""; - display: block; - width: 0; - height: 0; - border: inset 5px; - border-color: rgba(255, 255, 255, 0.4) transparent transparent transparent; - border-top-style: solid; - margin-top: -2.5px; - top: 22.5px; } - .top-bar-section .has-dropdown.moved { - position: relative; } - .top-bar-section .has-dropdown.moved > .dropdown { - display: block; - position: absolute !important; - height: 1px; - width: 1px; - overflow: hidden; - clip: rect(1px, 1px, 1px, 1px); } - .top-bar-section .has-dropdown.hover > .dropdown, .top-bar-section .has-dropdown.not-click:hover > .dropdown { - display: block; - position: static !important; - height: auto; - width: auto; - overflow: visible; - clip: auto; - position: absolute !important; } - .top-bar-section .has-dropdown > a:focus + .dropdown { - display: block; - position: static !important; - height: auto; - width: auto; - overflow: visible; - clip: auto; - position: absolute !important; } - .top-bar-section .has-dropdown .dropdown li.has-dropdown > a:after { - border: none; - content: "\00bb"; - top: 1rem; - margin-top: -1px; - right: 5px; - line-height: 1.2; } - .top-bar-section .dropdown { - left: 0; - top: auto; - background: transparent; - min-width: 100%; } - .top-bar-section .dropdown li a { - color: white; - line-height: 45px; - white-space: nowrap; - padding: 12px 15px; - background: #333333; } - .top-bar-section .dropdown li:not(.has-form):not(.active) > a:not(.button) { - color: white; - background: #333333; } - .top-bar-section .dropdown li:not(.has-form):not(.active):hover > a:not(.button) { - color: white; - background-color: #555555; - background: #272727; } - .top-bar-section .dropdown li label { - white-space: nowrap; - background: #333333; } - .top-bar-section .dropdown li .dropdown { - left: 100%; - top: 0; } - .top-bar-section > ul > .divider, .top-bar-section > ul > [role="separator"] { - border-bottom: none; - border-top: none; - border-right: solid 1px #4e4e4e; - clear: none; - height: 45px; - width: 0; } - .top-bar-section .has-form { - background: #333333; - padding: 0 15px; - height: 45px; } - .top-bar-section .right li .dropdown { - left: auto; - right: 0; } - .top-bar-section .right li .dropdown li .dropdown { - right: 100%; } - .top-bar-section .left li .dropdown { - right: auto; - left: 0; } - .top-bar-section .left li .dropdown li .dropdown { - left: 100%; } - - .no-js .top-bar-section ul li:hover > a { - background-color: #555555; - background: #272727; - color: white; } - .no-js .top-bar-section ul li:active > a { - background: #008cba; - color: white; } - .no-js .top-bar-section .has-dropdown:hover > .dropdown { - display: block; - position: static !important; - height: auto; - width: auto; - overflow: visible; - clip: auto; - position: absolute !important; } - .no-js .top-bar-section .has-dropdown > a:focus + .dropdown { - display: block; - position: static !important; - height: auto; - width: auto; - overflow: visible; - clip: auto; - position: absolute !important; } } -.off-canvas-wrap { - -webkit-backface-visibility: hidden; - position: relative; - width: 100%; - overflow: hidden; } - .off-canvas-wrap.move-right, .off-canvas-wrap.move-left { - min-height: 100%; - -webkit-overflow-scrolling: touch; } - -.inner-wrap { - -webkit-backface-visibility: hidden; - position: relative; - width: 100%; - -webkit-transition: -webkit-transform 500ms ease; - -moz-transition: -moz-transform 500ms ease; - -ms-transition: -ms-transform 500ms ease; - -o-transition: -o-transform 500ms ease; - transition: transform 500ms ease; } - .inner-wrap:before, .inner-wrap:after { - content: " "; - display: table; } - .inner-wrap:after { - clear: both; } - -.tab-bar { - -webkit-backface-visibility: hidden; - background: #333333; - color: white; - height: 2.8125rem; - line-height: 2.8125rem; - position: relative; } - .tab-bar h1, .tab-bar h2, .tab-bar h3, .tab-bar h4, .tab-bar h5, .tab-bar h6 { - color: white; - font-weight: bold; - line-height: 2.8125rem; - margin: 0; } - .tab-bar h1, .tab-bar h2, .tab-bar h3, .tab-bar h4 { - font-size: 1.125rem; } - -.left-small { - width: 2.8125rem; - height: 2.8125rem; - position: absolute; - top: 0; - border-right: solid 1px #1a1a1a; - left: 0; } - -.right-small { - width: 2.8125rem; - height: 2.8125rem; - position: absolute; - top: 0; - border-left: solid 1px #1a1a1a; - right: 0; } - -.tab-bar-section { - padding: 0 0.625rem; - position: absolute; - text-align: center; - height: 2.8125rem; - top: 0; } - @media only screen and (min-width: 40.063em) { - .tab-bar-section.left, .tab-bar-section.right { - text-align: left; } } - .tab-bar-section.left { - left: 0; - right: 2.8125rem; } - .tab-bar-section.right { - left: 2.8125rem; - right: 0; } - .tab-bar-section.middle { - left: 2.8125rem; - right: 2.8125rem; } - -.tab-bar .menu-icon { - text-indent: 2.1875rem; - width: 2.8125rem; - height: 2.8125rem; - display: block; - padding: 0; - color: white; - position: relative; - transform: translate3d(0, 0, 0); } - .tab-bar .menu-icon span::after { - content: ""; - position: absolute; - display: block; - height: 0; - top: 50%; - margin-top: -0.5rem; - left: 0.90625rem; - box-shadow: 0 0px 0 1px white, 0 7px 0 1px white, 0 14px 0 1px white; - width: 1rem; } - .tab-bar .menu-icon span:hover:after { - box-shadow: 0 0px 0 1px #b3b3b3, 0 7px 0 1px #b3b3b3, 0 14px 0 1px #b3b3b3; } - -.left-off-canvas-menu { - -webkit-backface-visibility: hidden; - width: 15.625rem; - top: 0; - bottom: 0; - position: absolute; - overflow-x: hidden; - overflow-y: auto; - background: #333333; - z-index: 1001; - box-sizing: content-box; - transition: transform 500ms ease 0s; - -webkit-overflow-scrolling: touch; - -ms-overflow-style: -ms-autohiding-scrollbar; - -ms-transform: translate(-100.5%, 0); - -webkit-transform: translate3d(-100.5%, 0, 0); - -moz-transform: translate3d(-100.5%, 0, 0); - -ms-transform: translate3d(-100.5%, 0, 0); - -o-transform: translate3d(-100.5%, 0, 0); - transform: translate3d(-100.5%, 0, 0); - left: 0; } - .left-off-canvas-menu * { - -webkit-backface-visibility: hidden; } - -.right-off-canvas-menu { - -webkit-backface-visibility: hidden; - width: 15.625rem; - top: 0; - bottom: 0; - position: absolute; - overflow-x: hidden; - overflow-y: auto; - background: #333333; - z-index: 1001; - box-sizing: content-box; - transition: transform 500ms ease 0s; - -webkit-overflow-scrolling: touch; - -ms-overflow-style: -ms-autohiding-scrollbar; - -ms-transform: translate(100.5%, 0); - -webkit-transform: translate3d(100.5%, 0, 0); - -moz-transform: translate3d(100.5%, 0, 0); - -ms-transform: translate3d(100.5%, 0, 0); - -o-transform: translate3d(100.5%, 0, 0); - transform: translate3d(100.5%, 0, 0); - right: 0; } - .right-off-canvas-menu * { - -webkit-backface-visibility: hidden; } - -ul.off-canvas-list { - list-style-type: none; - padding: 0; - margin: 0; } - ul.off-canvas-list li label { - display: block; - padding: 0.3rem 0.9375rem; - color: #999999; - text-transform: uppercase; - font-size: 0.75rem; - font-weight: bold; - background: #444444; - border-top: 1px solid #5e5e5e; - border-bottom: none; - margin: 0; } - ul.off-canvas-list li a { - display: block; - padding: 0.66667rem; - color: rgba(255, 255, 255, 0.7); - border-bottom: 1px solid #262626; - transition: background 300ms ease; } - ul.off-canvas-list li a:hover { - background: #242424; } - -.move-right > .inner-wrap { - -ms-transform: translate(15.625rem, 0); - -webkit-transform: translate3d(15.625rem, 0, 0); - -moz-transform: translate3d(15.625rem, 0, 0); - -ms-transform: translate3d(15.625rem, 0, 0); - -o-transform: translate3d(15.625rem, 0, 0); - transform: translate3d(15.625rem, 0, 0); } -.move-right .exit-off-canvas { - -webkit-backface-visibility: hidden; - transition: background 300ms ease; - cursor: pointer; - box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5); - display: block; - position: absolute; - background: rgba(255, 255, 255, 0.2); - top: 0; - bottom: 0; - left: 0; - right: 0; - z-index: 1002; - -webkit-tap-highlight-color: transparent; } - @media only screen and (min-width: 40.063em) { - .move-right .exit-off-canvas:hover { - background: rgba(255, 255, 255, 0.05); } } - -.move-left > .inner-wrap { - -ms-transform: translate(-15.625rem, 0); - -webkit-transform: translate3d(-15.625rem, 0, 0); - -moz-transform: translate3d(-15.625rem, 0, 0); - -ms-transform: translate3d(-15.625rem, 0, 0); - -o-transform: translate3d(-15.625rem, 0, 0); - transform: translate3d(-15.625rem, 0, 0); } -.move-left .exit-off-canvas { - -webkit-backface-visibility: hidden; - transition: background 300ms ease; - cursor: pointer; - box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5); - display: block; - position: absolute; - background: rgba(255, 255, 255, 0.2); - top: 0; - bottom: 0; - left: 0; - right: 0; - z-index: 1002; - -webkit-tap-highlight-color: transparent; } - @media only screen and (min-width: 40.063em) { - .move-left .exit-off-canvas:hover { - background: rgba(255, 255, 255, 0.05); } } - -.offcanvas-overlap .left-off-canvas-menu, .offcanvas-overlap .right-off-canvas-menu { - -ms-transform: none; - -webkit-transform: none; - -moz-transform: none; - -o-transform: none; - transform: none; - z-index: 1003; } -.offcanvas-overlap .exit-off-canvas { - -webkit-backface-visibility: hidden; - transition: background 300ms ease; - cursor: pointer; - box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5); - display: block; - position: absolute; - background: rgba(255, 255, 255, 0.2); - top: 0; - bottom: 0; - left: 0; - right: 0; - z-index: 1002; - -webkit-tap-highlight-color: transparent; } - @media only screen and (min-width: 40.063em) { - .offcanvas-overlap .exit-off-canvas:hover { - background: rgba(255, 255, 255, 0.05); } } - -.offcanvas-overlap-left .right-off-canvas-menu { - -ms-transform: none; - -webkit-transform: none; - -moz-transform: none; - -o-transform: none; - transform: none; - z-index: 1003; } -.offcanvas-overlap-left .exit-off-canvas { - -webkit-backface-visibility: hidden; - transition: background 300ms ease; - cursor: pointer; - box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5); - display: block; - position: absolute; - background: rgba(255, 255, 255, 0.2); - top: 0; - bottom: 0; - left: 0; - right: 0; - z-index: 1002; - -webkit-tap-highlight-color: transparent; } - @media only screen and (min-width: 40.063em) { - .offcanvas-overlap-left .exit-off-canvas:hover { - background: rgba(255, 255, 255, 0.05); } } - -.offcanvas-overlap-right .left-off-canvas-menu { - -ms-transform: none; - -webkit-transform: none; - -moz-transform: none; - -o-transform: none; - transform: none; - z-index: 1003; } -.offcanvas-overlap-right .exit-off-canvas { - -webkit-backface-visibility: hidden; - transition: background 300ms ease; - cursor: pointer; - box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5); - display: block; - position: absolute; - background: rgba(255, 255, 255, 0.2); - top: 0; - bottom: 0; - left: 0; - right: 0; - z-index: 1002; - -webkit-tap-highlight-color: transparent; } - @media only screen and (min-width: 40.063em) { - .offcanvas-overlap-right .exit-off-canvas:hover { - background: rgba(255, 255, 255, 0.05); } } - -.no-csstransforms .left-off-canvas-menu { - left: -15.625rem; } -.no-csstransforms .right-off-canvas-menu { - right: -15.625rem; } -.no-csstransforms .move-left > .inner-wrap { - right: 15.625rem; } -.no-csstransforms .move-right > .inner-wrap { - left: 15.625rem; } - -.left-submenu { - -webkit-backface-visibility: hidden; - width: 15.625rem; - top: 0; - bottom: 0; - position: absolute; - margin: 0; - overflow-x: hidden; - overflow-y: auto; - background: #333333; - z-index: 1002; - box-sizing: content-box; - -webkit-overflow-scrolling: touch; - -ms-transform: translate(-100%, 0); - -webkit-transform: translate3d(-100%, 0, 0); - -moz-transform: translate3d(-100%, 0, 0); - -ms-transform: translate3d(-100%, 0, 0); - -o-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); - left: 0; - -webkit-transition: -webkit-transform 500ms ease; - -moz-transition: -moz-transform 500ms ease; - -ms-transition: -ms-transform 500ms ease; - -o-transition: -o-transform 500ms ease; - transition: transform 500ms ease; } - .left-submenu * { - -webkit-backface-visibility: hidden; } - .left-submenu .back > a { - padding: 0.3rem 0.9375rem; - color: #999999; - text-transform: uppercase; - font-weight: bold; - background: #444444; - border-top: 1px solid #5e5e5e; - border-bottom: none; - margin: 0; } - .left-submenu .back > a:hover { - background: #303030; - border-top: 1px solid #5e5e5e; - border-bottom: none; } - .left-submenu .back > a:before { - content: "\AB"; - margin-right: 0.5rem; - display: inline; } - .left-submenu.move-right { - -ms-transform: translate(0%, 0); - -webkit-transform: translate3d(0%, 0, 0); - -moz-transform: translate3d(0%, 0, 0); - -ms-transform: translate3d(0%, 0, 0); - -o-transform: translate3d(0%, 0, 0); - transform: translate3d(0%, 0, 0); } - -.right-submenu { - -webkit-backface-visibility: hidden; - width: 15.625rem; - top: 0; - bottom: 0; - position: absolute; - margin: 0; - overflow-x: hidden; - overflow-y: auto; - background: #333333; - z-index: 1002; - box-sizing: content-box; - -webkit-overflow-scrolling: touch; - -ms-transform: translate(100%, 0); - -webkit-transform: translate3d(100%, 0, 0); - -moz-transform: translate3d(100%, 0, 0); - -ms-transform: translate3d(100%, 0, 0); - -o-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); - right: 0; - -webkit-transition: -webkit-transform 500ms ease; - -moz-transition: -moz-transform 500ms ease; - -ms-transition: -ms-transform 500ms ease; - -o-transition: -o-transform 500ms ease; - transition: transform 500ms ease; } - .right-submenu * { - -webkit-backface-visibility: hidden; } - .right-submenu .back > a { - padding: 0.3rem 0.9375rem; - color: #999999; - text-transform: uppercase; - font-weight: bold; - background: #444444; - border-top: 1px solid #5e5e5e; - border-bottom: none; - margin: 0; } - .right-submenu .back > a:hover { - background: #303030; - border-top: 1px solid #5e5e5e; - border-bottom: none; } - .right-submenu .back > a:after { - content: "\BB"; - margin-left: 0.5rem; - display: inline; } - .right-submenu.move-left { - -ms-transform: translate(0%, 0); - -webkit-transform: translate3d(0%, 0, 0); - -moz-transform: translate3d(0%, 0, 0); - -ms-transform: translate3d(0%, 0, 0); - -o-transform: translate3d(0%, 0, 0); - transform: translate3d(0%, 0, 0); } - -.left-off-canvas-menu ul.off-canvas-list li.has-submenu > a:after { - content: "\BB"; - margin-left: 0.5rem; - display: inline; } - -.right-off-canvas-menu ul.off-canvas-list li.has-submenu > a:before { - content: "\AB"; - margin-right: 0.5rem; - display: inline; } - -/* small displays */ -@media only screen { - .show-for-small-only, .show-for-small-up, .show-for-small, .show-for-small-down, .hide-for-medium-only, .hide-for-medium-up, .hide-for-medium, .show-for-medium-down, .hide-for-large-only, .hide-for-large-up, .hide-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xxlarge-only, .hide-for-xxlarge-up { - display: inherit !important; } - - .hide-for-small-only, .hide-for-small-up, .hide-for-small, .hide-for-small-down, .show-for-medium-only, .show-for-medium-up, .show-for-medium, .hide-for-medium-down, .show-for-large-only, .show-for-large-up, .show-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xxlarge-only, .show-for-xxlarge-up { - display: none !important; } - - .visible-for-small-only, .visible-for-small-up, .visible-for-small, .visible-for-small-down, .hidden-for-medium-only, .hidden-for-medium-up, .hidden-for-medium, .visible-for-medium-down, .hidden-for-large-only, .hidden-for-large-up, .hidden-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up { - position: static !important; - height: auto; - width: auto; - overflow: visible; - clip: auto; } - - .hidden-for-small-only, .hidden-for-small-up, .hidden-for-small, .hidden-for-small-down, .visible-for-medium-only, .visible-for-medium-up, .visible-for-medium, .hidden-for-medium-down, .visible-for-large-only, .visible-for-large-up, .visible-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xxlarge-only, .visible-for-xxlarge-up { - position: absolute !important; - height: 1px; - width: 1px; - overflow: hidden; - clip: rect(1px, 1px, 1px, 1px); } - - table.show-for-small-only, table.show-for-small-up, table.show-for-small, table.show-for-small-down, table.hide-for-medium-only, table.hide-for-medium-up, table.hide-for-medium, table.show-for-medium-down, table.hide-for-large-only, table.hide-for-large-up, table.hide-for-large, table.show-for-large-down, table.hide-for-xlarge-only, table.hide-for-xlarge-up, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up { - display: table; } - - thead.show-for-small-only, thead.show-for-small-up, thead.show-for-small, thead.show-for-small-down, thead.hide-for-medium-only, thead.hide-for-medium-up, thead.hide-for-medium, thead.show-for-medium-down, thead.hide-for-large-only, thead.hide-for-large-up, thead.hide-for-large, thead.show-for-large-down, thead.hide-for-xlarge-only, thead.hide-for-xlarge-up, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up { - display: table-header-group !important; } - - tbody.show-for-small-only, tbody.show-for-small-up, tbody.show-for-small, tbody.show-for-small-down, tbody.hide-for-medium-only, tbody.hide-for-medium-up, tbody.hide-for-medium, tbody.show-for-medium-down, tbody.hide-for-large-only, tbody.hide-for-large-up, tbody.hide-for-large, tbody.show-for-large-down, tbody.hide-for-xlarge-only, tbody.hide-for-xlarge-up, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up { - display: table-row-group !important; } - - tr.show-for-small-only, tr.show-for-small-up, tr.show-for-small, tr.show-for-small-down, tr.hide-for-medium-only, tr.hide-for-medium-up, tr.hide-for-medium, tr.show-for-medium-down, tr.hide-for-large-only, tr.hide-for-large-up, tr.hide-for-large, tr.show-for-large-down, tr.hide-for-xlarge-only, tr.hide-for-xlarge-up, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up { - display: table-row !important; } - - th.show-for-small-only, td.show-for-small-only, th.show-for-small-up, td.show-for-small-up, th.show-for-small, td.show-for-small, th.show-for-small-down, td.show-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.hide-for-medium-up, td.hide-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.show-for-medium-down, td.show-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.hide-for-large-up, td.hide-for-large-up, th.hide-for-large, td.hide-for-large, th.show-for-large-down, td.show-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.hide-for-xlarge-up, td.hide-for-xlarge-up, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up { - display: table-cell !important; } } -/* medium displays */ -@media only screen and (min-width: 40.063em) { - .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .show-for-medium-only, .show-for-medium-up, .show-for-medium, .show-for-medium-down, .hide-for-large-only, .hide-for-large-up, .hide-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xxlarge-only, .hide-for-xxlarge-up { - display: inherit !important; } - - .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .hide-for-medium-only, .hide-for-medium-up, .hide-for-medium, .hide-for-medium-down, .show-for-large-only, .show-for-large-up, .show-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xxlarge-only, .show-for-xxlarge-up { - display: none !important; } - - .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .visible-for-medium-only, .visible-for-medium-up, .visible-for-medium, .visible-for-medium-down, .hidden-for-large-only, .hidden-for-large-up, .hidden-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up { - position: static !important; - height: auto; - width: auto; - overflow: visible; - clip: auto; } - - .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .hidden-for-medium-only, .hidden-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .visible-for-large-only, .visible-for-large-up, .visible-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xxlarge-only, .visible-for-xxlarge-up { - position: absolute !important; - height: 1px; - width: 1px; - overflow: hidden; - clip: rect(1px, 1px, 1px, 1px); } - - table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.show-for-medium-only, table.show-for-medium-up, table.show-for-medium, table.show-for-medium-down, table.hide-for-large-only, table.hide-for-large-up, table.hide-for-large, table.show-for-large-down, table.hide-for-xlarge-only, table.hide-for-xlarge-up, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up { - display: table; } - - thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.show-for-medium-only, thead.show-for-medium-up, thead.show-for-medium, thead.show-for-medium-down, thead.hide-for-large-only, thead.hide-for-large-up, thead.hide-for-large, thead.show-for-large-down, thead.hide-for-xlarge-only, thead.hide-for-xlarge-up, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up { - display: table-header-group !important; } - - tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.show-for-medium-only, tbody.show-for-medium-up, tbody.show-for-medium, tbody.show-for-medium-down, tbody.hide-for-large-only, tbody.hide-for-large-up, tbody.hide-for-large, tbody.show-for-large-down, tbody.hide-for-xlarge-only, tbody.hide-for-xlarge-up, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up { - display: table-row-group !important; } - - tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.show-for-medium-only, tr.show-for-medium-up, tr.show-for-medium, tr.show-for-medium-down, tr.hide-for-large-only, tr.hide-for-large-up, tr.hide-for-large, tr.show-for-large-down, tr.hide-for-xlarge-only, tr.hide-for-xlarge-up, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up { - display: table-row !important; } - - th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.show-for-medium-only, td.show-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.show-for-medium, td.show-for-medium, th.show-for-medium-down, td.show-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.hide-for-large-up, td.hide-for-large-up, th.hide-for-large, td.hide-for-large, th.show-for-large-down, td.show-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.hide-for-xlarge-up, td.hide-for-xlarge-up, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up { - display: table-cell !important; } } -/* large displays */ -@media only screen and (min-width: 64.063em) { - .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .hide-for-medium-only, .show-for-medium-up, .hide-for-medium, .hide-for-medium-down, .show-for-large-only, .show-for-large-up, .show-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xxlarge-only, .hide-for-xxlarge-up { - display: inherit !important; } - - .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .show-for-medium-only, .hide-for-medium-up, .show-for-medium, .show-for-medium-down, .hide-for-large-only, .hide-for-large-up, .hide-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xxlarge-only, .show-for-xxlarge-up { - display: none !important; } - - .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .hidden-for-medium-only, .visible-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .visible-for-large-only, .visible-for-large-up, .visible-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up { - position: static !important; - height: auto; - width: auto; - overflow: visible; - clip: auto; } - - .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .visible-for-medium-only, .hidden-for-medium-up, .visible-for-medium, .visible-for-medium-down, .hidden-for-large-only, .hidden-for-large-up, .hidden-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xxlarge-only, .visible-for-xxlarge-up { - position: absolute !important; - height: 1px; - width: 1px; - overflow: hidden; - clip: rect(1px, 1px, 1px, 1px); } - - table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.hide-for-medium-only, table.show-for-medium-up, table.hide-for-medium, table.hide-for-medium-down, table.show-for-large-only, table.show-for-large-up, table.show-for-large, table.show-for-large-down, table.hide-for-xlarge-only, table.hide-for-xlarge-up, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up { - display: table; } - - thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.hide-for-medium-only, thead.show-for-medium-up, thead.hide-for-medium, thead.hide-for-medium-down, thead.show-for-large-only, thead.show-for-large-up, thead.show-for-large, thead.show-for-large-down, thead.hide-for-xlarge-only, thead.hide-for-xlarge-up, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up { - display: table-header-group !important; } - - tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.hide-for-medium-only, tbody.show-for-medium-up, tbody.hide-for-medium, tbody.hide-for-medium-down, tbody.show-for-large-only, tbody.show-for-large-up, tbody.show-for-large, tbody.show-for-large-down, tbody.hide-for-xlarge-only, tbody.hide-for-xlarge-up, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up { - display: table-row-group !important; } - - tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.hide-for-medium-only, tr.show-for-medium-up, tr.hide-for-medium, tr.hide-for-medium-down, tr.show-for-large-only, tr.show-for-large-up, tr.show-for-large, tr.show-for-large-down, tr.hide-for-xlarge-only, tr.hide-for-xlarge-up, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up { - display: table-row !important; } - - th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.hide-for-medium-down, td.hide-for-medium-down, th.show-for-large-only, td.show-for-large-only, th.show-for-large-up, td.show-for-large-up, th.show-for-large, td.show-for-large, th.show-for-large-down, td.show-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.hide-for-xlarge-up, td.hide-for-xlarge-up, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up { - display: table-cell !important; } } -/* xlarge displays */ -@media only screen and (min-width: 90.063em) { - .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .hide-for-medium-only, .show-for-medium-up, .hide-for-medium, .hide-for-medium-down, .hide-for-large-only, .show-for-large-up, .hide-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .hide-for-xxlarge-only, .hide-for-xxlarge-up { - display: inherit !important; } - - .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .show-for-medium-only, .hide-for-medium-up, .show-for-medium, .show-for-medium-down, .show-for-large-only, .hide-for-large-up, .show-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .show-for-xxlarge-only, .show-for-xxlarge-up { - display: none !important; } - - .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .hidden-for-medium-only, .visible-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .hidden-for-large-only, .visible-for-large-up, .hidden-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up { - position: static !important; - height: auto; - width: auto; - overflow: visible; - clip: auto; } - - .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .visible-for-medium-only, .hidden-for-medium-up, .visible-for-medium, .visible-for-medium-down, .visible-for-large-only, .hidden-for-large-up, .visible-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .visible-for-xxlarge-only, .visible-for-xxlarge-up { - position: absolute !important; - height: 1px; - width: 1px; - overflow: hidden; - clip: rect(1px, 1px, 1px, 1px); } - - table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.hide-for-medium-only, table.show-for-medium-up, table.hide-for-medium, table.hide-for-medium-down, table.hide-for-large-only, table.show-for-large-up, table.hide-for-large, table.hide-for-large-down, table.show-for-xlarge-only, table.show-for-xlarge-up, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up { - display: table; } - - thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.hide-for-medium-only, thead.show-for-medium-up, thead.hide-for-medium, thead.hide-for-medium-down, thead.hide-for-large-only, thead.show-for-large-up, thead.hide-for-large, thead.hide-for-large-down, thead.show-for-xlarge-only, thead.show-for-xlarge-up, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up { - display: table-header-group !important; } - - tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.hide-for-medium-only, tbody.show-for-medium-up, tbody.hide-for-medium, tbody.hide-for-medium-down, tbody.hide-for-large-only, tbody.show-for-large-up, tbody.hide-for-large, tbody.hide-for-large-down, tbody.show-for-xlarge-only, tbody.show-for-xlarge-up, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up { - display: table-row-group !important; } - - tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.hide-for-medium-only, tr.show-for-medium-up, tr.hide-for-medium, tr.hide-for-medium-down, tr.hide-for-large-only, tr.show-for-large-up, tr.hide-for-large, tr.hide-for-large-down, tr.show-for-xlarge-only, tr.show-for-xlarge-up, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up { - display: table-row !important; } - - th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.hide-for-medium-down, td.hide-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.show-for-large-up, td.show-for-large-up, th.hide-for-large, td.hide-for-large, th.hide-for-large-down, td.hide-for-large-down, th.show-for-xlarge-only, td.show-for-xlarge-only, th.show-for-xlarge-up, td.show-for-xlarge-up, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up { - display: table-cell !important; } } -/* xxlarge displays */ -@media only screen and (min-width: 120.063em) { - .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .hide-for-medium-only, .show-for-medium-up, .hide-for-medium, .hide-for-medium-down, .hide-for-large-only, .show-for-large-up, .hide-for-large, .hide-for-large-down, .hide-for-xlarge-only, .show-for-xlarge-up, .show-for-xxlarge-only, .show-for-xxlarge-up { - display: inherit !important; } - - .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .show-for-medium-only, .hide-for-medium-up, .show-for-medium, .show-for-medium-down, .show-for-large-only, .hide-for-large-up, .show-for-large, .show-for-large-down, .show-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xxlarge-only, .hide-for-xxlarge-up { - display: none !important; } - - .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .hidden-for-medium-only, .visible-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .hidden-for-large-only, .visible-for-large-up, .hidden-for-large, .hidden-for-large-down, .hidden-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xxlarge-only, .visible-for-xxlarge-up { - position: static !important; - height: auto; - width: auto; - overflow: visible; - clip: auto; } - - .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .visible-for-medium-only, .hidden-for-medium-up, .visible-for-medium, .visible-for-medium-down, .visible-for-large-only, .hidden-for-large-up, .visible-for-large, .visible-for-large-down, .visible-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up { - position: absolute !important; - height: 1px; - width: 1px; - overflow: hidden; - clip: rect(1px, 1px, 1px, 1px); } - - table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.hide-for-medium-only, table.show-for-medium-up, table.hide-for-medium, table.hide-for-medium-down, table.hide-for-large-only, table.show-for-large-up, table.hide-for-large, table.hide-for-large-down, table.hide-for-xlarge-only, table.show-for-xlarge-up, table.show-for-xxlarge-only, table.show-for-xxlarge-up { - display: table; } - - thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.hide-for-medium-only, thead.show-for-medium-up, thead.hide-for-medium, thead.hide-for-medium-down, thead.hide-for-large-only, thead.show-for-large-up, thead.hide-for-large, thead.hide-for-large-down, thead.hide-for-xlarge-only, thead.show-for-xlarge-up, thead.show-for-xxlarge-only, thead.show-for-xxlarge-up { - display: table-header-group !important; } - - tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.hide-for-medium-only, tbody.show-for-medium-up, tbody.hide-for-medium, tbody.hide-for-medium-down, tbody.hide-for-large-only, tbody.show-for-large-up, tbody.hide-for-large, tbody.hide-for-large-down, tbody.hide-for-xlarge-only, tbody.show-for-xlarge-up, tbody.show-for-xxlarge-only, tbody.show-for-xxlarge-up { - display: table-row-group !important; } - - tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.hide-for-medium-only, tr.show-for-medium-up, tr.hide-for-medium, tr.hide-for-medium-down, tr.hide-for-large-only, tr.show-for-large-up, tr.hide-for-large, tr.hide-for-large-down, tr.hide-for-xlarge-only, tr.show-for-xlarge-up, tr.show-for-xxlarge-only, tr.show-for-xxlarge-up { - display: table-row !important; } - - th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.hide-for-medium-down, td.hide-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.show-for-large-up, td.show-for-large-up, th.hide-for-large, td.hide-for-large, th.hide-for-large-down, td.hide-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.show-for-xlarge-up, td.show-for-xlarge-up, th.show-for-xxlarge-only, td.show-for-xxlarge-only, th.show-for-xxlarge-up, td.show-for-xxlarge-up { - display: table-cell !important; } } -/* Orientation targeting */ -.show-for-landscape, -.hide-for-portrait { - display: inherit !important; } - -.hide-for-landscape, -.show-for-portrait { - display: none !important; } - -/* Specific visibility for tables */ -table.hide-for-landscape, table.show-for-portrait { - display: table; } - -thead.hide-for-landscape, thead.show-for-portrait { - display: table-header-group !important; } - -tbody.hide-for-landscape, tbody.show-for-portrait { - display: table-row-group !important; } - -tr.hide-for-landscape, tr.show-for-portrait { - display: table-row !important; } - -td.hide-for-landscape, td.show-for-portrait, -th.hide-for-landscape, -th.show-for-portrait { - display: table-cell !important; } - -@media only screen and (orientation: landscape) { - .show-for-landscape, - .hide-for-portrait { - display: inherit !important; } - - .hide-for-landscape, - .show-for-portrait { - display: none !important; } - - /* Specific visibility for tables */ - table.show-for-landscape, table.hide-for-portrait { - display: table; } - - thead.show-for-landscape, thead.hide-for-portrait { - display: table-header-group !important; } - - tbody.show-for-landscape, tbody.hide-for-portrait { - display: table-row-group !important; } - - tr.show-for-landscape, tr.hide-for-portrait { - display: table-row !important; } - - td.show-for-landscape, td.hide-for-portrait, - th.show-for-landscape, - th.hide-for-portrait { - display: table-cell !important; } } -@media only screen and (orientation: portrait) { - .show-for-portrait, - .hide-for-landscape { - display: inherit !important; } - - .hide-for-portrait, - .show-for-landscape { - display: none !important; } - - /* Specific visibility for tables */ - table.show-for-portrait, table.hide-for-landscape { - display: table; } - - thead.show-for-portrait, thead.hide-for-landscape { - display: table-header-group !important; } - - tbody.show-for-portrait, tbody.hide-for-landscape { - display: table-row-group !important; } - - tr.show-for-portrait, tr.hide-for-landscape { - display: table-row !important; } - - td.show-for-portrait, td.hide-for-landscape, - th.show-for-portrait, - th.hide-for-landscape { - display: table-cell !important; } } -/* Touch-enabled device targeting */ -.show-for-touch { - display: none !important; } - -.hide-for-touch { - display: inherit !important; } - -.touch .show-for-touch { - display: inherit !important; } - -.touch .hide-for-touch { - display: none !important; } - -/* Specific visibility for tables */ -table.hide-for-touch { - display: table; } - -.touch table.show-for-touch { - display: table; } - -thead.hide-for-touch { - display: table-header-group !important; } - -.touch thead.show-for-touch { - display: table-header-group !important; } - -tbody.hide-for-touch { - display: table-row-group !important; } - -.touch tbody.show-for-touch { - display: table-row-group !important; } - -tr.hide-for-touch { - display: table-row !important; } - -.touch tr.show-for-touch { - display: table-row !important; } - -td.hide-for-touch { - display: table-cell !important; } - -.touch td.show-for-touch { - display: table-cell !important; } - -th.hide-for-touch { - display: table-cell !important; } - -.touch th.show-for-touch { - display: table-cell !important; } - -/* Print visibility */ -@media print { - .show-for-print { - display: block; } - - .hide-for-print { - display: none; } - - table.show-for-print { - display: table; } - - thead.show-for-print { - display: table-header-group !important; } - - tbody.show-for-print { - display: table-row-group !important; } - - tr.show-for-print { - display: table-row !important; } - - td.show-for-print { - display: table-cell !important; } - - th.show-for-print { - display: table-cell !important; } } diff --git a/ShoalShell.Plugins.HtmlHelpServer/Resources/gpl.txt b/ShoalShell.Plugins.HtmlHelpServer/Resources/gpl.txt deleted file mode 100644 index 94a9ed024..000000000 --- a/ShoalShell.Plugins.HtmlHelpServer/Resources/gpl.txt +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/ShoalShell.Plugins.HtmlHelpServer/Resources/index.html b/ShoalShell.Plugins.HtmlHelpServer/Resources/index.html deleted file mode 100644 index c23b02bc6..000000000 --- a/ShoalShell.Plugins.HtmlHelpServer/Resources/index.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - - - - - - {Title} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    - -
    - -
    -{doc} -
    - - - - - - - - - \ No newline at end of file diff --git a/ShoalShell.Plugins.HtmlHelpServer/ShoalHttpServer.vb b/ShoalShell.Plugins.HtmlHelpServer/ShoalHttpServer.vb deleted file mode 100644 index 3265a3ad7..000000000 --- a/ShoalShell.Plugins.HtmlHelpServer/ShoalHttpServer.vb +++ /dev/null @@ -1,66 +0,0 @@ -Imports ShoalShell.Plugins.HtmlHelpServer.HttpInternal -Imports System.IO -Imports System.Net.Sockets - -Public Class ShoalHttpServer : Inherits HttpServer - - Dim _InternalShoalWikiServer As Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.ScriptEngine = - New Scripting.ShoalShell.Runtime.ScriptEngine - - Public Sub New(port As Integer) - Call MyBase.New(port) - End Sub - - Public Overrides Sub handleGETRequest(p As HttpProcessor) - - If String.Equals(p.http_url, "/") Then - ' Call p.writeSuccess() - Call p.outputStream.WriteLine(FileIO.FileSystem.ReadAllText(Scripting.ShoalShell.HTML.RequestHtml("index"))) - Return - - Else - - - End If - - 'If p.http_url.Equals("/Test.png") Then - ' Dim fs As Stream = File.Open("../../Test.png", FileMode.Open) - - ' p.writeSuccess("image/png") - ' fs.CopyTo(p.outputStream.BaseStream) - ' p.outputStream.BaseStream.Flush() - 'End If - - 'Console.WriteLine("request: {0}", p.http_url) - 'p.writeSuccess() - 'p.outputStream.WriteLine("

    Shoal SystemsBiology Shell Language

    ") - 'p.outputStream.WriteLine("Current Time: " & DateTime.Now.ToString()) - 'p.outputStream.WriteLine("url : {0}", p.http_url) - - 'p.outputStream.WriteLine("
    ") - 'p.outputStream.WriteLine("") - 'p.outputStream.WriteLine("") - 'p.outputStream.WriteLine("
    ") - End Sub - - Public Overrides Sub handlePOSTRequest(p As HttpProcessor, inputData As StreamReader) - Console.WriteLine("POST request: {0}", p.http_url) - Dim data As String = inputData.ReadToEnd() - - data = System.Text.RegularExpressions.Regex.Match(data, "SearchValue=.+?&Invoker=", Text.RegularExpressions.RegexOptions.IgnoreCase).Value - data = Mid(data, 13) - data = Mid(data, 1, Len(data) - 9) - - p.writeSuccess() - p.outputStream.WriteLine("

    Shoal SystemsBiology Shell Language

    ") - p.outputStream.WriteLine(">>> HOME

    ") - p.outputStream.WriteLine("=====================================================================================

    Search results for ""{0}""
    ", data) - - Dim ChunkBuffer = _InternalShoalWikiServer.GetHelpInfo(data, False) - p.outputStream.WriteLine("
    {0}
    ", ChunkBuffer) - End Sub - - Protected Overrides Function __httpProcessor(client As TcpClient) As HttpProcessor - Return New HttpProcessor(client, Me) With {._404Page = My.Resources._404} - End Function -End Class \ No newline at end of file diff --git a/ShoalShell.Plugins.HtmlHelpServer/ShoalShell.Plugins.HtmlHelpServer.vbproj b/ShoalShell.Plugins.HtmlHelpServer/ShoalShell.Plugins.HtmlHelpServer.vbproj deleted file mode 100644 index 56ad668cd..000000000 --- a/ShoalShell.Plugins.HtmlHelpServer/ShoalShell.Plugins.HtmlHelpServer.vbproj +++ /dev/null @@ -1,239 +0,0 @@ - - - - - Debug - AnyCPU - {D712E0A2-8AB1-4665-B7B5-D2FCE09188AE} - Library - ShoalShell.Plugins.HtmlHelpServer - ShoalShell.Plugins.HtmlHelpServer - 512 - Windows - v4.6 - - - - true - full - true - true - ..\..\GCModeller\bin-Debug\ - ShoalShell.Plugins.HtmlHelpServer.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - pdbonly - false - true - true - ..\..\GCModeller\GCModeller\ - ShoalShell.Plugins.HtmlHelpServer.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - true - true - true - ..\..\GCModeller\bin-Debug\ - ShoalShell.Plugins.HtmlHelpServer.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - full - x64 - MinimumRecommendedRules.ruleset - - - true - ..\..\GCModeller\GCModeller-x64\ - ShoalShell.Plugins.HtmlHelpServer.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x64 - MinimumRecommendedRules.ruleset - API_EXPORT=1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - {2dd4be80-ddc3-4767-94a7-10f1c3395716} - DocumentFormat.HTML - - - {fecce1fd-e1d4-49e3-a668-60bb5e7aed99} - +Microsoft.VisualBasic.Architecture.Framework - - - {2c34a044-1bde-44e8-a86e-e9971c87da21} - LibMySQL - - - {2f80136c-0e1e-429f-a905-eb0927b0a82c} - EndNoteLite - - - {a7cb16ff-75c6-4746-8449-86c121d723c4} - ShoalShell_Core.v2 - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ShoalShell.Plugins.HtmlHelpServer/SimpleHttpServer.vb b/ShoalShell.Plugins.HtmlHelpServer/SimpleHttpServer.vb deleted file mode 100644 index 298a010a2..000000000 --- a/ShoalShell.Plugins.HtmlHelpServer/SimpleHttpServer.vb +++ /dev/null @@ -1,236 +0,0 @@ -Imports System.Collections -Imports System.IO -Imports System.Net -Imports System.Net.Sockets -Imports System.Threading - -' offered to the public domain for any use with no restriction -' and also with no warranty of any kind, please enjoy. - David Jeske. - -' simple HTTP explanation -' http://www.jmarshall.com/easy/http/ - -Namespace Bend.Util - - Public Class HttpProcessor - Public socket As TcpClient - Public srv As HttpServer - - Dim _InternalInputStream As Stream - - Public outputStream As StreamWriter - - Public http_method As [String] - Public http_url As [String] - Public http_protocol_versionstring As [String] - Public httpHeaders As New Hashtable() - - ''' - ''' 10MB - ''' - ''' - Const MAX_POST_SIZE As Integer = 10 * 1024 * 1024 - - Public Sub New(s As TcpClient, srv As HttpServer) - Me.socket = s - Me.srv = srv - End Sub - - Private Function InternalStreamReadLine(InputStream As Stream) As String - Dim NextChar As Integer - Dim ChunkBuffer As New List(Of Char) - - While True - NextChar = InputStream.ReadByte() - If NextChar = Asc(ControlChars.Lf) Then - Exit While - End If - If NextChar = Asc(ControlChars.Cr) Then - Continue While - End If - If NextChar = -1 Then - Call Thread.Sleep(1) - Continue While - End If - - Call ChunkBuffer.Add(Convert.ToChar(NextChar)) - End While - - Return New String(ChunkBuffer.ToArray) - End Function - - Public Sub Process() - ' we can't use a StreamReader for input, because it buffers up extra data on us inside it's - ' "processed" view of the world, and we want the data raw after the headers - _InternalInputStream = New BufferedStream(socket.GetStream()) - - ' we probably shouldn't be using a streamwriter for all output from handlers either - outputStream = New StreamWriter(New BufferedStream(socket.GetStream())) - Try - parseRequest() - readHeaders() - If http_method.Equals("GET") Then - handleGETRequest() - ElseIf http_method.Equals("POST") Then - HandlePOSTRequest() - End If - Catch e As Exception - Console.WriteLine("Exception: " & e.ToString()) - writeFailure() - End Try - outputStream.Flush() - ' bs.Flush(); // flush any remaining output - _InternalInputStream = Nothing - outputStream = Nothing - ' bs = null; - socket.Close() - End Sub - - Public Sub parseRequest() - Dim request As [String] = InternalStreamReadLine(_InternalInputStream) - Dim tokens As String() = request.Split(" "c) - If tokens.Length <> 3 Then - Throw New Exception("invalid http request line") - End If - http_method = tokens(0).ToUpper() - http_url = tokens(1) - http_protocol_versionstring = tokens(2) - - Console.WriteLine("starting: " & request) - End Sub - - Public Sub readHeaders() - Console.WriteLine("readHeaders()") - Dim line As [String] = "" - While (InlineAssignHelper(line, InternalStreamReadLine(_InternalInputStream))) IsNot Nothing - If line.Equals("") Then - Console.WriteLine("got headers") - Return - End If - - Dim separator As Integer = line.IndexOf(":"c) - If separator = -1 Then - Throw New Exception("invalid http header line: " & line) - End If - Dim name As [String] = line.Substring(0, separator) - Dim pos As Integer = separator + 1 - While (pos < line.Length) AndAlso (line(pos) = " "c) - ' strip any spaces - pos += 1 - End While - - Dim value As String = line.Substring(pos, line.Length - pos) - Console.WriteLine("header: {0}:{1}", name, value) - httpHeaders(name) = value - End While - End Sub - - Public Sub handleGETRequest() - srv.handleGETRequest(Me) - End Sub - - Private Const BUF_SIZE As Integer = 4096 - - ''' - ''' This post data processing just reads everything into a memory stream. - ''' this is fine for smallish things, but for large stuff we should really - ''' hand an input stream to the request processor. However, the input stream - ''' we hand him needs to let him see the "end of the stream" at this content - ''' length, because otherwise he won't know when he's seen it all! - ''' - ''' - Public Sub HandlePOSTRequest() - - Call Console.WriteLine("get post data start") - - Dim content_len As Integer = 0 - Dim ms As New MemoryStream() - - If Me.httpHeaders.ContainsKey("Content-Length") Then - content_len = Convert.ToInt32(Me.httpHeaders("Content-Length")) - If content_len > MAX_POST_SIZE Then - Throw New Exception([String].Format("POST Content-Length({0}) too big for this simple server", content_len)) - End If - Dim buf As Byte() = New Byte(BUF_SIZE - 1) {} - Dim to_read As Integer = content_len - While to_read > 0 - Console.WriteLine("starting Read, to_read={0}", to_read) - - Dim numread As Integer = Me._InternalInputStream.Read(buf, 0, Math.Min(BUF_SIZE, to_read)) - Console.WriteLine("read finished, numread={0}", numread) - If numread = 0 Then - If to_read = 0 Then - Exit While - Else - Throw New Exception("client disconnected during post") - End If - End If - to_read -= numread - ms.Write(buf, 0, numread) - End While - ms.Seek(0, SeekOrigin.Begin) - End If - - Call Console.WriteLine("get post data end") - Call srv.handlePOSTRequest(Me, New StreamReader(ms)) - End Sub - - Public Sub writeSuccess(Optional content_type As String = "text/html") - ' this is the successful HTTP response line - outputStream.WriteLine("HTTP/1.0 200 OK") - ' these are the HTTP headers... - outputStream.WriteLine("Content-Type: " & content_type) - outputStream.WriteLine("Connection: close") - ' ..add your own headers here if you like - - outputStream.WriteLine("") - ' this terminates the HTTP headers.. everything after this is HTTP body.. - End Sub - - Public Sub writeFailure() - ' this is an http 404 failure response - outputStream.WriteLine("HTTP/1.0 404 File not found") - ' these are the HTTP headers - outputStream.WriteLine("Connection: close") - ' ..add your own headers here - - outputStream.WriteLine("") - ' this terminates the HTTP headers. - End Sub - Private Shared Function InlineAssignHelper(Of T)(ByRef target As T, value As T) As T - target = value - Return value - End Function - End Class - - Public MustInherit Class HttpServer - - Protected _LocalPort As Integer - - Dim _InternalListener As TcpListener - Dim Is_active As Boolean = True - - Public Sub New(port As Integer) - Me._LocalPort = port - End Sub - - Public Sub Listen() - _InternalListener = New TcpListener(Net.IPAddress.Any, _LocalPort) - _InternalListener.Start() - - While Is_active - Dim s As TcpClient = _InternalListener.AcceptTcpClient() - Dim processor As New HttpProcessor(s, Me) - Dim thread__1 As New Thread(New ThreadStart(AddressOf processor.Process)) - Call thread__1.Start() - Call Thread.Sleep(1) - End While - End Sub - - Public MustOverride Sub handleGETRequest(p As HttpProcessor) - Public MustOverride Sub handlePOSTRequest(p As HttpProcessor, inputData As StreamReader) - End Class -End Namespace - - - diff --git a/ShoalShell.Plugins.HtmlHelpServer/Test.vb b/ShoalShell.Plugins.HtmlHelpServer/Test.vb deleted file mode 100644 index c461ea2cb..000000000 --- a/ShoalShell.Plugins.HtmlHelpServer/Test.vb +++ /dev/null @@ -1,11 +0,0 @@ -Imports Oracle.LinuxCompatibility.MySQL - -Module Test - - Sub Main() - Dim linqTest As Wiki.MySQL.lib_wikiarchive() = ( - From x As Wiki.MySQL.lib_wikiarchive - In "https://127.0.0.1:3306/client?user=oWZwI0JCsf4Z6SDzIKjVXg==%password=f5DGNogWz0se2ScJ2rsu5Q==%database=PX9nLOBmuJkV700zowzCeQ==".AsDBI(Of Wiki.MySQL.lib_wikiarchive) <= "SELECT * FROM wiki.lib_wikiarchive;" - Select x).ToArray - End Sub -End Module diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiarchive.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiarchive.vb deleted file mode 100644 index e0cf7c8f7aba2dd74d24eaa7ad5bc519c3ee4a84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14160 zcmeHN>rWd;5Z}+0`afLBhnT1#bs&$X5XA(NMj=3XG>udV93BZO7;2leQPqFF?eDka z(d^uv&G{8n30Y_Rc4v2PZ+;jZOJX!b|Z5>eD1bxf+?nIcmunrD)(9aqD ztSf*fXIXd_>fwI47v}NY58vVK0a_o2C-Ln`SU^h_Hi1`X;qR+BnjCh4ZF~uCf%D@i z{{zf;0?t~H>k4GvzXDE~|RI|4qXWF5So#TM%50ROV^7LdQ;Nj0SKw*x;}Sd7v- zi?VM+k5A)_+DmBte>dFi+qVMEZa^{_WZZz<*C6c-l6ise)$j}cZKG!!Z~M`1-iN*L zM~}KDIHLYf!Y5F@AAWFH?u9$y8%Uno;6rN>O+EwV%{b-|vmM}#-?U0v9&JHCOZfK; zA7UXk%7@ZxV?+nP-NMK_uz;#`RG*b}P;bYusSJGOaXgRfqX9`#dZ{F@mRc5SPHyCV zKXSVVi5%j8hF{9179}~0_e;EUeSE<05nwW`k`3VH?=Ez>hJOwG+d=CdbhwVyEh~5x z|98T-eKEFx*;}K>Uk}7z#I^#?Uqqa1k&fHY`RxICxIVgZt#JNNkze{I;-@v&uyP;Z zQx)4_Tu1PO-6%=&b_hK59Pfeu9N$HL`pf44Be>?oQv1>VC_D_0N@?#u^JTQ?_Q?7k zRs)J}50WwY45x|y+)%$_N8M;q7m+Wo;X1rSRsH@7dm7~#WEW@A-su1LdR8GeLfTuf zL0xs#sT^$c+#8x$vz;gl#WIQ&wn6VFP+i?We;Qi&Si+*UcjEY{yIB7L3;kSj)IU@IE^yT&ZJp33nDbef_ z;s<&viCU%;d0rha7bDWD@&6)XS!P}R@`%OgUAQ9J$VfWKGB|?rOxuWUaqJ9q3$s?w zpXLx}He(ET1ntS%sD&BqCd{(>WhpbTe(IDfoTHg%9wAR$!br_)X5hypo7#kAxIZ&n z%@9L#|L)+EU4i8ZAZSI*jhXdLCcl(S-MFUIZ^5S=VV{v~GXoc%=1t%~@8#so`7KMQ z)qcSH4*H7{$q>ymA3KHb?O;~o%6gy0g8U4Y8Ze(mNmAaVg7KiNlGm8`b8K%wzN|4& zR;&lms>JVe)H-^)_`U=cr%rD>7|%LG4PKQMjNj4EJX_o6;*4EH;R|uxOw61_ucRi` zYEeQ)KeH%mdkvIOTEk1B=zmovljW`sxzlQ^a#y5ld|qugnFNo^&?&RCVYo61l$&MP z2Y00!<{4glx}RMiKN5pah8v%|UKdZEipg-M(ZnQpqAwcHb0{^++vwgyXR;`15*&`Q zvWk=_cjKrN0W@M=7(Hao}%$Nlsc7i z_9bmkFptlHuZ3L)C!T`IaKx2qb+_x{%2P2uXIke|e#Tizqxf&dubhnMz4H}5t0pRc z)z{M~-1Nsk9sbe^=JjxxQqYgbTd26TP+7=a^`c5WLuw#WUExmBM#V@@&80?BtcOUP zltS_(ns*+2RYPhNtoU+X!pNDkoUd-7tqF=ZK=&zfN>Z>MPqepCb=d38sQhkY4puy* z!ot(z#U8{{H%?~ZDQ%VW^|WGK%->nTwUcAZg!Aos)|W#2oXn5V$iKYRG85lljHZ2m zS@h{4EROT-X*}e6d}QJK{GROl^c*Oah~F|&gyeZRw z_3mN~@m@v^=j?ysboB3d-k!y`x_i6t-saugf_r=5-X6NQNAB&hd;8wK@xF(r#?!;Q zI=C`aIIuTeOQcm%?1GY^qQKLTrZtFUE}kigoGs<7ozkwDvytI(^Tziyxh~5Mjq9T4vp(~5X`6U9Yw@1U+SPLvTg+2gU(qvJUzsPeUh_QG zmUv)cdI>n;Sdbg_R!ms%6u((lib&+9;!E)5?v-{@*OtbVp5A_p|+D bBaI;JwjN^#eYAHSmMf?I++lbxmJt5|0V?e` diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikicategory.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikicategory.vb deleted file mode 100644 index 2030e8080bd3dc978782be979695b6b0cfb8802d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6598 zcmeI0YfoE85QgV-rT&Lg@&OYyP9dSHsEK00Nm00!OVfM;V=hGjLv525RsHL2pLf^W z-L(xp4yH<_$~r!0cV}m3-kF`5-9P`>wuY@+!Ee(#*0h$L+p$$`&CaZC*Y>L|+ofID z6=Oa64tdUbdUgZVI{!QNJ=9f4cf{P+JZ&Cv>oK=upW9~^*IBoB{W%5imi+|n1+)d+ znyho>=H_!GpMEEfpD53m*`d|tIbof`exR?5#7*Q|;=k)?s?>OH^nPOtuC-v#=_zcBbpsc@SKVxB*kiT(Be;#`Cl3D>9M90K4X!I- zUZ>q-9pQh?*D>n_NjA{+!u7~TExrnS3*~#B)Ix!N+Vm@|=Fqxu*mtnw3&$~xiaLBh zu_w2Vtzg+rkSV~p4(@B9U4YCh{u}lqUptKK&^mB_b7=eaOJBMc@=BLeXVn`hzRlKo zYLD#;u$Mjb$X~oIUm|R=`OQY_2hR#+uNPTC)!sqozgl_OdOZ(&n$XwJ~S zrmbCa%3DYl?3GQ{)_V_2uJKjpYnR@AEV;oR_xrfP_pW_;$C~orp7Uj`{J~+b*wJ=h zH%KwZ9-BAGF}UhoeC6Y(NZTFIXm%v0g5A@=7p29T(`*_~n!ZzV#gM~3b`Q7830Nr7 zPI`qcEVN3Ts`Gvawr|j1@5+!r%#1)`4_mAf&-a`chPly`a;v61(~(h}hk50eOnIdv zGntRcTjYDMoi{dYk$0QlC3aq7Y|z@v_MJn*$Bjjoy@Cfm%pU*e$TYn7%f{LoQA6H& zTg()_>nuPcPf{(SEIXNe?kl6HxsZRvzEsBZ z*}XuITzwFmQs?y02*F4zE2McsXbN-5 zarSp@@CME|uD=e(s_KN6Dlqw*&$*hl!AOt)Yvef3Y`4pNRdy9(lWNAF8CPW!`m2s( z&%P$#i_?_LQr@T60hG52{n z$dZ!kya z-{{-n?5bTA{c&bcw7x>qV=qj^U?Y@^%rK#UM+oww<3csee&>Sj?@-76|VRh~jd z^tEqL zzOr~o6!W|^%76aLIPQVsQNN;kNEFl9I|@VPjMS?pjcLkTYnAua+aq9z67kkT@gY26 OG~AtZLE3w(DE#G=FhMbf+Dj5E>R)er&K*x@ z#=ADVU{|dgS!?fn-tTkojQ{-OKx(ol2A_uXq$w@w$eEO7S1zP0H}YAkawV5?jj;rM z@9=c+Br?FPJ$xU^E6gtIyi=@wj;D)}T}=rSP`ked43J2 z6|@u3q5g01b_RNmlR9L*)E?TXg*PK_F!KYR&_ZthyzpaWO|^BYy6?e`8@i(#HB8@AzJ26BzksA{ZKpfzeT)M_ye8Yx9Oq#jOGH^-pO*tta8 zKvUFHNj1BG_6^#MopbzBs|FF&03ZB)4g2omZ5zDpz}{?gWFA(Tmq%mi5eG=?qiUWQ z($%*C=q@4FR)m!E(3wPqSio5P0KNwk=q-cW>C-y~lJr2i4e35lpgt{Wi4ZpK6X=pS zMh&NX^XRn-OCG4-)nU(LJTHKCHI3a0-WcBv*vDYrKCJJ&^Y(S)eWC?xb?~uyg;+Pv zLzdwq)36tF7PAZK5FLpACHO6I^Bg_&t$FzV4N%r%lkK5JnHA@Aa}n+sBB@ag)}h^3 z&?MvgCBEO{H!Ctr8NHAG?z1tqkP&sGd#2;U?`(GocXc}QeWUCBh{usUe58GomYBp# z+QakE$@VNyCu@8m!Y+DS4gUTdmSX*|j^8dmSMdEUjE&-7RenZH91OG4x>iXJ;bxOT zZqIw^%o2Lyq@2EnoWv*?R~xJ;&ar0eX|~=#EwPyDBek`ASCz$TqB4-H3GFjlU0qa? zIkZ_h<*7X85Kpu(QHeXTjyyvhxQ<<1-7*Ipu+`GOVg+|^VO3SptdA9@0L4|zrgyOp zW`#GMTGCeKUK_N=19&K_En8U{NEGwG5BgV%kj$b3@Z~CU=Ie8`k1(FrjzKNJdaHwK zp^sfji%7@MT1uCGE-k}a&DSH;EcH)L82j|F0WgyJoc(psPw;(%Rh`IEM?-8cfoGmc ze#1B`XV+g=9VhY>RU~(s(|X5RlJtoA&W>q4#9SK0I&HiQZm5^y@)C7tDeD$wxq?LW z)4bA=Cnwn!bjaGcgdK`Y7v~En=Y4E<7kOeXW+7Qz@%=mGjCq=l)akrE4OuP5o*_bQ zmM`Y3qm_Y^)a_c_YtvQ1G^D(X=cYMv(%mmEUHv-^xekF3#AxDQG0WNd(n%EVLz_K7 zwbj*AXPB$(NZ6CkUN+;|Tx!qtZR8K$huDmi&VJ0g@l4(;@HQ*XVKy7_?8@1kV{Z`b z>6lzK!Epn-b%2}XpstnR0et&-xMP;Q22}+!q@}qLt+TrvVb`KJCt*eH>vQHjcgAov zzwe2$@BUBPe^f*- z;kx45aJR)y!fZ{XF*4LaI2vQ(32>Zv28bXF4bCE8}yzJ0-^FuZG^|_q4v?KT14n?cjvgMK-5y zc%5fTY5x% zGW0!+q4@0N>Y7nWLcZ><2i7vYso=@o=CIl5A*;6WQoFeFJ=BA5#qlt%KaLa5a`!R* zG=GGB!;`+P&D>ccv}9>$qjXf+y9R5)bR2o^T-^MV_M~TC!?SG#J4=hkHAi0G_S*Ss zQ$`)nLbqYnYgqJD@np7G73RwSn?1c>W@AzQ7#^Rs9FkWxK6&3u40n$kb@$JG{eOw) HP|o-Z_y=al diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikichange_tag.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikichange_tag.vb deleted file mode 100644 index 34dc302a85db46ad631acce11920bc2af35fb91a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6886 zcmeI0Yfl?T6o${|O8pO8@*yTloI*lWQHZ#wQNU0xP4fv17>a5PwM|-7^{=;m-WgA3 z#>Qf|K&ndBYA-W;X3m`VTxb6JbK6#J!wRlV>sr%}tZgl;+q#`u$FA%*Teb^3w@d!@ z={w|ZbNB5Ustuky_C3^fM|aHFH{2a=&DLjZ*S@qbEb`f~4}&oU?<4yO+H+_NW^2Od z(v8i>Xnnd)+67>mV|w{-5tSgBtLQZA2H(@l6Am!1q$^!VD%82*Ynd_S{i zWB;w7*-elsz<3ed*Fn1gnKhoP_9I_A{Mn&(;Oyqm_U+ff>ZJQ7GM=*LeWYsgbzt9S zyq?<=`wIM}6Wy{Iug?Y6-?Wd6J!bR~Ej?wMvOifwxaRp<;PU*ul?%fzBYM31BO{++ z2W8h$epanR+B?Cr3gjB*vFyBL5xj(9if38u3ae%434sITmV{m2`=E17Pr+Ll)j)L0 zCTXw0a}5pdp+R{|!+ovW)3NilvCq?cow189KHlq$!KMo4ZGwQJSI2!_Bl|R7KI5cs zV8i94mXFDT&aoWfc!`5=m$~Ou!1OM>M?0=YNfG1$7(Y38+q6& z_V5OaP(GUH-Ql{x@0R#C?0w7j9lp3dh;{Rs-9AiQx;>hX#;dY9Vvb0s%sejF%;8bK z2I!KtdSoJv8156dxjR=W+i)tMW9vkPrt|R@dh>a`&8iC09I8lKR21`! z4;gTR=;QP57WgQZsIDofrP_{ORfYO)%bK&$$)Z$CsY)E}B}!evXZGtHiAY*g;yRTX%&^tq1w zLZZ5aX@m(f2Kx$Yen?qT{&$x~{vERYzadS^|L)TG>=EP`XL${D-zSn>VQKA(wz$Ly zRT_#IWv$PzDoD44y{qo6F-LXlODmrsXL;-UC#z36j+5aL*|bBt0lrX$Yn`}jNPYgmS!^5;{Wt&PtuF6N zb$NjOX}`V*a;lECJFKzW{GA=%AG{T7)tbs$(^>09)_Un$lkC}4Ie4A;yc%*yRh{U( zVvF@Hl8aX>X(b=|zg`}r?fcV zfLd8`AbNh7D@QZNg780&HhvZ#BXl-aMvpTtqTHs(SB`2_kK?maj7MqpxarQZx-Qb| z3{`dF8dXBa)wZG5*2!ugJ*!IAS8EXIl+SO<7io?Ue7D`mD>!u+lV+DX9Cendvsj%B zr5+PJO`006Yh$0+N?u!p>^v+@y0*NMu7ZU!vUXKEf%Q@UVX(L7Tc-yeoi!H8<*IYuYw*D&pbz#v#$RlqI=+Z?EL9reKn2apBK$&wKsV|)rc@Y YZiYA#Pev3$!X5sGGnyW_dn*>j-x{+(asU7T diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiexternallinks.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiexternallinks.vb deleted file mode 100644 index 79f79e2e94eebd4974751fc8af265e912013092e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6042 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 diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiimage.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiimage.vb deleted file mode 100644 index c27191b8f158c08f816f1c1843962b07e440023b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12444 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 diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiimagelinks.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiimagelinks.vb deleted file mode 100644 index 32afa2be132e9b60d883519fff065cff0393b629..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5986 zcmeI0ZBN@)6vxl&N&5~SeL<+&P-r_%EI~XZbX5akK-%>cgpe@Q5LjZmRn@-ww%`BW z+}Tb{;|!SgVzQjr*XN#x|9Q0k{Nuptwrdeb(}vczj`gi;Woy`l4eZ8#vu(SwOS|S- z%-ShupEI^kQ0?-2Xg@+-c64X#eZ@K86t|eYL;KpkvP90Vy&vz1`0v=y&|X3t!L5y) zYqvMMNBZgLIewzNVCRs#5oZrMk-cSYgvM?3+v0cRXv(&Sg-1LW$1K+x)UqtH4O_8Q zTejz%tM-h$m#ltgYwm8%Ua%6`K5_#W{l9j*Wnql8yCZmjEXH>Y-NzmB!LaI(+QSP?Zq;}KNfXJjqg zWBUgDxsN43D-DmLZaHn5!Qv4|*!cpaFgF~^_21TJH42SF(@gGm^d`uh^ z)uT99=^^j+h^z>^CS`29EZGDvVVK6VD0Y#RGUy3`6A;))`J?l) zDwQNFwoBykOAgsuL{6SvEq1=9*0r2>-thY#Zh7dIa#o-Gz2>!C%0X_DXRs&X=T{P5 ziBF60J9Ux&A(d^n`DV7n{GIulrE7^iPzT9ZV5!Pn<$u6&MSN}XY%j<6-G`9AWm#?y?ZrDVQQT{`Ffi09L|L{wSz zus(Ho1XsyY9oJErLNTG0H?oypmQ~pyj6mO&zw4*)|8RXpdvZt^U!CwpWu2_ z2hF@bPo{HHwIEBW2~uw?+062|X>t&?X#A|`ry=RtM&l;j`dA|k_FPXoASaH;9D}`w z@KDD2EZ5Xm8B?rh_IWNxa4kL^Yr>nJIh2Ewt9h|@;<7bR`e{NP`7JrvaFdND^%8U4 zXQsQ~-F&A>?=$(GzFT#7OU%gXPaaQSy+fs%7f-z(?xVvd6~8_gqS>AQW17UMW+}ao z>3w3J7)|d}H_{uPz7Z6E3wg)XR%f5yV?wkgvuZUJUlDobYeAs%QR!)X)ZJf{wTQ7A zF*YwE>3#Fy5Z+aTZTT1!&)zgD>0N2ed~WI+z-%8pcX|9}AG~lh(>{2Fck`=wQUlU+ zK-0ae4_#%{cOv!t9VUf=dm9f^l)fIt_(=1QuDavuqTZ2LU(?eJ$|4~bW{=M;&YfZ=}&u@-opxmwt#T5 dGGF}NUe7{~C-0)l?r?^u;jMTCral5i@fR@wvCaSh diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiinterwiki.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiinterwiki.vb deleted file mode 100644 index e44a68b9e1958a6403570c303fd53b2e24a9ee26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6806 zcmeI0TTdHD6vxkVrGAGkdB8-C(*lVqY9h=f7X=LE(lk%l7(=ZZLv51;Mg8h+fBzXz zW)|Cto!CK@s@2*%GiT2IHuKNl`?h5}mhtRb$7)u$mNl$s+t#$UUE4d`uuHqJE7p3< zo$$7Jdv*iV4!;NX3(!Recgo&pylq}#>#?_E-`Y18>Fn6+{+^8gy8RC91+W>|YS6iI zd-Hq5pPn;^PmoP^b{KVe&!CgpugrDfxCVdg{B|8o(JDxI$ht7*v2Fq_$ue8BA8pYd z+7j=g{lMrEvp?C28?D$fGnwr{H(=5K3%6Sm_MrCV8r(}SYM}r>Z+bE-Ic;4y-FL9#6NfRZ3Oam0um>a8 zHnHq3n#s^{8NF|#?F`L4<#)?|J?XUhBJ58+wmYmG;qR)dywb1ya@&2~ zuy+YxUtq0*Jryq%JHndV_Wek#*I;cqd?);0;+vD~R;)Kadw2Aq(~%NA#&afxui5;3U?GAbvQTokERb;zz=GNyJYveG$GD}8Y_ovaoViP#$2SM3hYGvVTMk~e@6(i4fRZ<<-m8*Lr)K)@ zBT6sr-@_vtb`A|y&OY7@Hkn?NHi1v>3c5@+c? z^<%ny(EZi8arTN6i=ta+><|@KM0I*PR%AzypPr{4;isGU>7+8J`^J|v+>{KLay5}K z%^e}f`1Kg&0ZYg?em%y0SkLDk4;Ax4fJ*a_hl&0cVA7oAVSMh;?bi4|tY_5%ksQXE^oG!>UNyQwO>_yY#@^ z0k`T^tT{y}>b6m*%^q1fjfD_HvgKeupYPs7mA=h?%1!>vFp2c4%sNBrR@CSB*+@UE zQV*9t&U){TWADvzoO*AZjoupPqIZ5x-O4wv@GajP%~HGh+W2wridy-v>-Pxlp7wji pS!y@U=y$2xXt}foj_=Wh9Gm$Fd4iEWwEFlSW1U3)z`H&$ZUMhF{PqpZk~Bc!F8VoRIO{r~ zNm(LKr7FvETkhh!EO*elkGGHHv1vV)dw7$`7S?sM@cGh=CWQm6Ha!QoLHV)a{~=~P z0cB_4>pFN|LwkUA$p3TvYhyi!NdvT=nm3fuA^s)u8j$bt)e>^>*M*-%Rt&dJ4exu9 z;}bKZ>m{`Ne@kwS>|2LqH^G?%Jg$N78{l>V&OFC&UH-(s9rWy=wQuz1K$`Mth}{Wz ze}K1LVErE0?8`5~I=AJ9`~==p9{f^YtSp}bx+Nb$>k;NVM2o-FOX?oA!F^Wo?b4t$`hFcWoX2cjacz3N5T~ z1fEhaDaQosaJ7q}d=Db4<;{0)WYbGweaB#Zj(NGa-{ML6$LLrG7oQtyHVlQ=p+DDi zDL4SGA&+LgS`$2K!@ds8x*v^p(z>3Re;1I`GOW=35t7PMm`@*NLz_sOLONsXJ(LIX zFuGoztSD(~e+F2A_LTF7lvJ^c;~JNx<1fhSGT(gqTW0rl4Q@_1{eCEl+c+(1fxF~z z)BJXZIyJlX=mRNNYEl!=LwvfRl>1!o!pSMEj@d7?vn{i`?aH)m-QjMhHJ|nBpP^?b zpx*AN=UnZUu+(~v#5=lTHh1yyp44*DCn>F;McgZvP)$9Ws z>#qip#BAd7@!3Q+UN4#-tsv58Ryr!rS}`_-wzFq)peM-7ZfD+cwUwze^lezL;`!wg zB4_8}U5;6i1z1{Up`)|71?(b9l~D=DGwN(3lU~JGm-#JVui1Qa3%sEpVLqQAo8&q1U@T5ux_}R95qSq0V{0GU%cngi^Z$ zjhc)~hmWIg8p$#Do)@}^OIbAe48IKOE~ky8$K&BBn^qfb)@iE=-;XwpMOl<(W3ul@ zUly0LsC3nkGHAHmct336P7{s<@}A#J{?uldz)DO?fcQFD+9hBI16fR-C;f`wYZc;Wmu;y zgTm?kP>7SGbQ*8O%+{W6>I&(6P#eds465^LwDUoG9)@LbAiqN9c;IRzE}x!lo}G_V zjOuHs+woK)3F;q3Dk8RuV(T-^dV8ol*}Dn0%8{+8*xjokdD_pLC1G8});M_H!+8l~ z&-Lv|FzYnTzc+z5Pv3|^!`vF!M%AJ@oYB#`gE?3+u{9c=(60<3o&@9UEIb!4c8ejb zIEVEBR?79+yvw80@0qv7-uYZE-K(>qbYC`;NJF^DDf>Phx27TTBD^&0xHu>a?_-*D zU)&4lL0J!$h6t^Gx;Jhm(@=T#Bn_Lt5BHHf@h(#hn$Pnb-kho6EcOdd#lM;}*~GM} zL2Ef^-3?mzg4X?@^&n_H3|fzZ*3UtU_i;jOLVS3eD(nw&;@NE2AL3O-O_BYJxQWAh zxU~efV(coUlUf4aW!VB(Yp62UC$a_M$SZ3Q-fsx)*_Ab57MgcP9rEkS8hpX2!MC>t zJayzTyLWbT>59)U7JY!X1!~k1VA3Cw?X$D_I!tV?2zFn{2=LIbpw!p)91=KMxtkQx?v9 zDGwKmtt_oXH0BzQ@H~1Fx|y5u4g*j3 zXGwP~SJiZfmQwdP%c$Sc5~kbU^64IJ>Gb=oWz)URl7;WmmP_~MSt<=T&N79t-VW*a z+Jg8R?I;LqV{~t5QFKq-erSk1YoX!tZNs;M1& diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiiwlinks.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiiwlinks.vb deleted file mode 100644 index 19b6f3738eb759ec1a02093e61c0694dba7f6236..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6206 zcmeI0Yfl?T6o${|O8pO8@&OYirX``Os6ku|X%xT|aMOGO2TW?!Hq>6yqNsnp?eorf zy0gBJHDD=`qSfAJ&dfRIJ=fiT|2ed6+p~nDW<6`znYFEHW!trub?w^zvMsx`j$JXA zGWM3U&6(N_RC`>H>}ROUj_#bbFF3oL+AU>m&%U;=EaS6hZw6};?q~KJv>j*@c5A@r z%B{_>k$gHX+5dXv(&ahR4in$Na8UsHItA>-L>3 z*`ht;T(WO@TW0hJTXAnI_MDN#4&WPh(fy@cEe%t+-5L&AQ-P1@jHw zQ}_t~Yo40$3zF=kYsZbqMrS-F_8Q9HIb#b2`gzllSjC~$aoG2;`o-Bi>G(-@LUG`*R>&izoR~7g_tv|Cr;lXpik1 zke4-d%3Hi8*P(9Mdo(>~w=>>!)lTv}`9e5Wd0OX?mo>mo_z1loEBf5ik(H0}fTD5~ z-&JzRZWs7ef?mTswp@H{fRxaSk^DGniIsA=N%vE*5Vj|9RFrfWNgUEC)WUOt_iNBn zl)U3EEE8g-26x@-SaO%ADiZBrS-op!p0)G#l*Wfk54=k>#{Hg<5AA> zUMJuXu*lmzmMLCw3Xe>SY;}G-^Ps!P6jsO5$t#M<6jtXYiX~mhd7`YmjkR82FXjDJ z?p=;c{CJbOVQ=2DpYZL&L1tNX)h&4GY_h<|bJu8gD4L5a?gpl-Wo2?p1N0Tgp`Mj&&gJyU6=M$nl}*)WXtip7lbXHC%1~qGhrxw>VmM&FJxvHc8t@Wc;q{W8yd} z5?MYPeVqIL@Ph21UfM^?Xk;oQPsjeUp`LM1BqHRz7zHRmgH<8agE*DE}~Vp z)aM=&7bk-qgT6=Xp{Vn*uAZ_opjdPDF07Lt`>d})QLKN=x`4Ri#yw8#ZK}rcTxOY5 z{7zqD8{nXBNqv8be(?kS-rufoR0sKi$d2EZ+}i?ux9X8c(dX=trKUwuUz-QWutA>R zo(jkO$}dQ&W70RBzD%a^$9SFUkG>N1pP`69zNRZv1n666oM)~^9+eP3KISvZysvs{ z?{VX(WAF8}-X9;%8|(OD63kvos3tWZW2=Z-%!M2&s?03 zv%xqCo=>D6m1Eh_j#_MTMaVKs+*j1xUxl8_vig^$4q}JSqwD?~guYCFxKb>tj!I9> zLC#Xu9ha-)N*wqq^QY|GV{cW3EVGy4sDDc8)Ah9;M^cDD*=4xniN|6*jI|H35RZLYNXaX%@G9SX%o3}7o%=lfst#7? pE=pz_fpH#wIHY1PoV908&VwQHv+rTWd^p2w_$Kdzxc5y_{0H@{;L-p9 diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikijob.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikijob.vb deleted file mode 100644 index 7e343f8afa984cfec6433392d5825a85e2429a05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10206 zcmeHNTTdHD6h6c6JfxlQNd6yP4fiCn3Tpg)Lzn}Du2E0_s#KW zX7=LvvPPAPR_ooFIWu$a=ge9E^Y@|DWlthp`_h-Dw4@_#Da)>0Nl$L&PuY@d>BwnfF}E*Y%U9y|*^~FfIT4;M`4zBTz(!cD ziG6O&+;9%@<8^7)Bjgok_R$*PzQjI}{EWT{M7v1bc9q`Q7H+@_D{ znYTM&@Dfra2I>8_LG_N=b=P1*eH*n8*93H zvBCMq$Run13N)SEN%F!ak&h>W2w6+Vz%w6bUpn7h!w9v8=MHAn#pLdK3UXAE%a7nA+sL>ylaGLX zi0c9NzaE}fm;%)AAYrK&`UjW5qMk9-PZ zYMVq$Caak6yIVrR+o+JA-4Bwj_(>P`hk zP&us~+H;JhXm+1sSIjz#T1w~dUq)e36s`93XsNn?KVvb-qv#RNF|4{oL5?_1)~K1L z=CE4RyhP^4y02z}>8w-z3A0@b$(kyw_F?X*c_6D)T$eCfJ=J<4bJ->^-Ur?tWGTd; zVQRC7$m~vsD_VMwum-bA&0|>ytqvhx2lI3lRvkxGi1W_0e&sWrU!0lj($yMVoX#2v zqh1oij~mG`-`6I`lKv?51AuHpzkQ$_W0v%)Jy@XoaU#Q4^HZ{4( zv?@VsDQGPRt(Bm)8nj*pt#5rLBQ%*M@G*JC?=>J%4;`c6oy_v-S`SW;|=NB}7gB|tF=N&3pbwKhvk@INw zYY+Xav+?3=>;x9J4GWu;LVw<9y6m^TBu(ocJ*+mkaa+e#2z1| z%K5(#Dj6XZ+WAKZ9YzaFO-p~sDQQzwP ze&5Rc{-jm;W6p}Qd$X*@hqP95pR%Tw-ayOsG%!zThZ$6soKEw)SqmVQVO8@`> diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikil10n_cache.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikil10n_cache.vb deleted file mode 100644 index a68efedda204bf2c5697e9199757bdca60c4e009..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5522 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 AlK=n! diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikimsg_resource.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikimsg_resource.vb deleted file mode 100644 index 4b40bf2f38cc6efae43e2dd2a1af056862eac790..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6232 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 diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiobjectcache.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiobjectcache.vb deleted file mode 100644 index fae26a2dfc39434121a8126dd63bd4aae201ef77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5578 zcmd^@Yi}Ay6o${|O8pO8=R+WBNb59G-_C7pSN6enZDJR8 z$-6mYXPhI>xqW2T0l&xg6SFIBUZ1tkILDllHfQbBzO*ka-RHnwFV-Ynd-e-+FPNJk zt;;@_Zf(3q`so-td7637$|+AX&LR6G_L8v~8h6oehu@i-Q?V8np7350W2p^h%d*6_ z?OWTlNA{R=)4t*938UZJmV4T=?-)s}&Avg3uFu_SSvY66nlxL6a7?UbqqYsK;GmubBB8XVybu{(aMtSk<9*;jo|L$EQwWc&pjr z{-Hg*_FV(d9)e5)#&vMt2kiu8_V{hu&)gmJ=9s6B!c3qs*K};xS5nUg>#7YrE?*v3Cv$ z#j{4mfD&wf!cpdJ3$H3_T6T(0_ql7J(;hz7v)+guU$59naz|L{chPQr_E4mqF)p94 zS~VckT!PH`Kl=5NBOisayaqwHyu3CzJ||l1TwkN>3v}1Dv;v9p3Vp)-4*M_bB^k@3 z

    Ai*95s|=%DOV<2vS;fZ-1BmXX}GADyP2*EJAIeR4M({Cwo(xw&pesKRRH;p;L> z6|VV=KZTVu@{U$4k7>8+jcZb|j9P)$UB}V^e)Ex1vW+$K)&@M1Z^c?kQ3V=ML25_{ z8E=Ew@_DumLW&2~v4q+=a`RP1H1_!{xy4MeN*Pmi;dUyJujMHU^1?l0Xkc&IL-i=Z znppQX`%e~CTU|j~$Hn5eJfHABk4!=~QKlY|A7)6^ULjvsb2z4R<&ij>2~}Y)O_V=; zHhY2Wk8Zrh{&PHf#a^SxODD`wzfmGrsFV4f_o}yHyh6PCoF%_$hpgA~mdAP}M72D+ zgKTB85_%S~GR>sH!oaSe-)-rg?sQX~mvVyCA|2W4%Bh&^xIQA(dp{C;qvQICm&C$8 zy+aeNB<;R^qMQ4}^$_YMKGE4_pEli7nI25l!K3FhXUGvn(bE@58y)Io+h!sB;+6kj z1l6~wzgKr!gn!v}%KG|Z&^Kq1p7s?zQj?YHi&u5CVtmS}+hffsoN2(BqBdvO6|*#a z-Q=yTWh~6co`0K0QNBy{Gkj#}8*x2EAG=7*BYF>Ctj?%ugl4Pdq5D#sx-6yt2~-*P zsHbE1Ef%^9{d+J6arFhd8!Td9wR2Uj%huDduQL1`$x~!2tEQQ;!jAf0SC23!3uT!Z z7%gPuIv!W;VD+-@Sxw?Tp@`+G9qJqPpMuYNcVqdgT9UV1BWZ7-r{xYrJ@X{$o_sY6 z^*f7x3A?giQ{|<8=x&h}D=uM`uibZvZCo#|=hc4+-BYmbFFKjK#5S8(|2<^$k+Ob{ axIS+N{-OtZ^M`A48%Q`HREr{i*DQi diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikioldimage.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikioldimage.vb deleted file mode 100644 index 90ac918d8b408e6693ddd0bde27e622d54a6a133..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13522 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 WK8}X7d`3`z`Q93I&3+e2i2ndV;AlAj diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikipage_props.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikipage_props.vb deleted file mode 100644 index a4a506e778631360e1b9a85ddd519ff46d0f2a70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6448 zcmeI0TTdHD6vxkVrGAGkd8mmRrw~$A)I{9VC}1d;rg_2!Op0PIwM|-7^{co2{bxL# z8QXvtaMg!uwf4^JnKS47&vo{%KX+`+Hm%^=vW_+F$lBJjs%_Y*o!gcDW-E4KXLiZE z9&?A>ZSJ03L$%58uKfUY)zKZZ_BHo8x489K+p*8>GmHCd+WY>Rg8w7?8QL>w3%E7e z=hCgs*GN8HCyt*ePg&Vv)a5>5pTd4*u8YJ?u9Q0N5ehdi(}4p6>4c#*rLtY ztUb3E+_UyIqnFHnYx8b2Z*$BPw#~kQi~irZ)zYxXZVyLr2hC3${zq^;MYD5oT?O+c z#y$2C{#QJ;*e^&@N7pkqBO4v@RMCTK(@R@qK18! z?e*NA+85w2o9LF$czZ5F-Ly}vKZe5*BmK%Z<$v;sa4qn($R%HEvXf8}h87>B|}dLG{E%|4FlQ@<`mmKXlJ;l z8P~C)Vx(^SSa8F>x`m6k)Hx{1>%{GoLsgkUv+|{ieS@{iaTb?0_;{X&JYV4LWn@z> zP%M6g$F-A8(R2Y{dBZBGuH&Q9@OEAI!Ql;AZQt49Ex+$sKZs-W+7ye*5M2W_cgP|%&U9lh%GID5@QCy!EhqPqJy72fws5dm4?30~Qv4*Ggupi3_KHv6kKN)B~h zu}@OI{lIvS_rtgpWINTuHubR!SM3!lVr>Y;NGogP6+@T`c}a5mPrvXM-q&uv&i*~D zdBtAs%tm`qNb*X*Q~ZVZ>Sw}y)nVMDTFkk1Q?4R;8*0DQg2OoEQWnIwth<3U!sR~t z<{5L6dM|^7>YKcEd`)xtg2v0BtbV2fxAI!Yx*PO;h&}J4SCrs!G|H<<&?@AO;Cnaw z>z5<_)b~9wU@KW(-z#?E(59Nst?~Gk`MYEgTA})P@eF)Nj-0^Pw~pt z>ab3F)LFj;MVbCK_EMpTQErN}d5ox+h;O5(<@34a)D`JGxdcw?0d;z*a2ooZp7sy^ z#ZjY~Y&4sVUbxXTrwCPEkGZc)AqSVmTqo#lBwC`Dt(8JOU->`o^3L&nUFQa!YIQ0r zsu032`OAL)6i;a>5-DYx9Xw5p>9F5mrtow=+V$P#Zi~&i%rL&iUOM_= zi#@?FM%R&;VbcC-%Y7^9xZJGobn2DXsdMMMcfP__W^$ z`>Kld;M{??YDugIRd&=FUEllk{UME!5L>cH-r1!yxmV}?PQYVOt5n9kr!0esYN^f} z>cV|KpA06WYHNys_xE%r$0WXq{v79W|NS@dlUH2gRlZ}HB!YRpyN_Q*y#8Al?t|cQ wze}4Wf@yZ1G=355@P#s+$$fi#f4w<7hAa`k2q-^3wCb}T*JysNd17$b~!vFvP diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikipage_restrictions.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikipage_restrictions.vb deleted file mode 100644 index 305361a7775c1e4eb36faf40546a800f3692bcf5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7652 zcmeI1T~8ZF6o$`rrT&L4xhO;pDG5od6rz|w(kKLIfTpKRjc*x%$_;lb3Vp@|Mk+=?1fcao7S$lh-);K===lKmmbFj0+uXv|V{OMix6drmd10^nYbu@x_A{_2z*b;u zLgy^3E!T)YT}J_*AdgwuVbtY5f=*>WGS`LUCj71N+YK=Dwt<8@d>6(N>nhNatg=V8 zV0Y}c-Q~VxUo*PL?6>wHj2_q`GnH*Y*RkmNEUcDgD;W%DCqwHjK@gUMz5>r zyur8!9qIp^w?pVTCmYCm5@uwh1Kuio1>`T>xrH45OVd@^Qqa~((0vCxJ`5QBtDyb; zmfafpZ57LIqL~UEH_-b!+OE*d6Mon1C*HRCvdw5e_{|&Jv)}sMiQjkdyN6_wC`y=Q z@3Q8*g7R&zno-Ja55wz(~LHRC%NP!>?uD9&yR@noyR`q|pv5 zx;%SBD{tZzHnMNvrcLRj7hYbrjq!`lUN-0#aVK1M}9c~NVMI1k{biLOxl6oc7w>sSUfB)4?<;+s`%Z5Cgw?<9gV$Fi$jhh=;&RzS$DxtK z=Q_#f$H6n~TZzxXZ*#?Nlr^xqsZ zj_JcubKJbOM7&kCFe?8ou^VDt(jk*}$&OkvI45dLSFW7u<^6efbrbE&Q#|+2+ROym zb%q_H9j!V|7!{=ssd<*c<~e$XT^}ohEwm-7s=O-Vd@I1K?$KPmy#9by@;23es%oZF zKgCKkX-C$%LG(E!f5mF5Lb6hhE$E+y9HJ`j0=~QoRcwC8c!%%9TB?Y#sx4Z?^e$LM ztLk4%Lpn{cvQ&zG(ynYEE{^}L#GZrqBFr~Jg>V{lrFvH$8S5FX+JLhjzvpn#Dr~vK zdgaAgq)~FuyvKk#v7zoha@tpyBCk#BOESsM$tgPjgS+Pjl~X(P zLwR-?C*Q;z6|-OLI*-Vs>e^!t8O~SHuaqYpQeCgkT*|BybBMYi;T25mZ)4vkKGlD0 z!gq^UAPzP{_xzHqu-C`v@@|7e87XE!b*f8!h=;|xh(+Dsr2Tzf`+D?MU7dPUk7VU+ ziU;L?iZts1fqfU|n4}j&k###morK8c$A`4gh;W# z*QbaTA(B@)L>|2&Oo|!~GZ@JtT#6?Sm!evPh%qMTxQuWS>VAksIw}6JwZ93l!`2?1 z1yeN3JBiJ3vepTiMJHkE9G=i?w8IIkcWC)Lzm?QU7||=biCn zcD-w`%SEkJtrqXjoSAdZd#*eD_2;f_*tR8H4eMFcPOM`stJ;>GTi34acU!YdyRZ+; zrHmbOceqpg1l2Zw_v}ZgtB&rJwXe9l+}bT=ZO^{8uPpM}ws(Uy3BM=y3$z!|ChXRP z&j+_Qzee)uYP&%gz6II|$ZYa=!+z#zkC{E*j-1~d+oAn7kWTWRA+P+Yi@bekzRz)b zW{>R~(3eGY%VWGXm!WRjM^>M*;|Xv2tDWS1@`rFO^0dq)PiumqFcN}2R`mHz3o9Sv z1>?#w{;rZkwrk^833?6lSaUJ50$M^ai{^O9C05B{C;gA`?hg93(N#F(&7p%tPt zykGIISUKZYXeLBV1OECwz@A$?ts~PW_SL&)rdc~}Pj2LQ$ezRAnU`VK$#8p)55-4u znSyD{VfoQ{lyai@D~c*)jCn30JC0UmC?2r#HCgq*dBPk1zGJsCTUJU&pL`iB!z9jT zHJK@~u#hf-@RP=Y`&E3H?ZL=tf=a< z$ZwbHk~msrZaA9O><40NcaYl_U5yR?bU%6M=ImL_PgxDGs|YnRo9ghW%2Fdve8um% zoWDdRdR7<{x7w|HlF2G+mE6_@eMNVjCsoyoO*wzNzHUtsKeDSj9_^s+qeb_y$m&q- zrpO7t#_oWQxTuFo=$kr@ULAzSuIID>mApw^llpDbg;iNuRbe`R~^Qwy`=XLhbdPry#>WDYri56c_|ZO zTejUo8sYNK^)1Us0fW2Mbry}~t&{3nCgJV%FIJYI^}|?xQZ$P4-X4Qkt?yI!RpQ{1 zIGDutQL>=rD$%75yTU#`lWgGm>MXMvWt<%2^ODbazGrWfEA@@z^F}d8DL3XR_06C! z)O@D#o}>Ov)S~fU2fhQAoJ}Nduv^FFHdS(cd+d@U4hK61efQWy8OUcn_4%~{#ggj) z!aC_uXMF>T@q7BvU&UTY8EJU5Eb@+A?h2GeuguR!J04*-eNV4|ntD)uy;bP;31zZJ3-Xi_Vv zchxt(zEUTNgX}tW06I0$xzo6D@RlA~(Wh_Y;L$N67Bk+N5V=0v1iCWM_ba>y7guCs z!BcwgzB_L|z?awYN*t;FeR#@uWPRUP-6x{? zIy{c|1(g45m>z)Wsf)P#jpl4McxXJMPX{Z-k-PTt(U~{ons|z$EEDc9TgMjp|B;B| EZ!oh|B>(^b diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiprotected_titles.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiprotected_titles.vb deleted file mode 100644 index e92c099554c395694ec181bf1a89cfcfe1a62acd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8020 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 diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikirecentchanges.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikirecentchanges.vb deleted file mode 100644 index 0e43ed3e76cb4cf042938559de18704263aa2f77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17124 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 K*6AItDEMQ3+5mNh4J<4!5F$N$n*~ROPR?{k|C= z&CKrXvbNVDt&p|0XXnhE%bfe}KY#B?OI}KX&zAJ1D+h8WM=~cHawNj0U)lfhUnyxHkaBUC_6N?}34tlTC2g#yocncU=cG zIZNb;%*%q@lSNz$@*PGGaQBfco6)k|$DKsBfme6o?+de<9HziFxdeB>`LU7z0d_nE zXFbSu9WrlXoB|K!e~Eubz^9aKg4c6%hi7zve~G*Xp0mhNG5@dn~?hkq@6%A&+y%nU+`}iGrJh=8@+ie9r<%eT_3c* z$A6v_dEJ*E0zCKRj(h{z^E`M_U+h^v!J01C9?2p0JHUwF)Jy6fwLw3t`1b@K>RA^O zq=YEHK2{9yo90&Dfeuuqqx!C-gC}&kKZ z-ufz>3R@RWjSp4$Ros45@y~8_&Q*dPWF^eY=#yi+gc_-k~3$WzrWTRK-(D^L2YE`g;{Fb#?QFXCmd{dt7?aTRN|-kCxCu~pVKWJ4UR zViRQ5X9k`%B=42gNXvksR`Gk8@UxPWpo8Tp_>qXxq|8YNeI<42BjVN(zIne1 z8MFUDX|Y#8-LeszvzwSn@qGz8&VsXRV?BEi4OlR{8-HM)HMriNGdrfp|L>c1Gsdp% z*^(OnWb-oeIUtQZ^9|5KiH#!(^?)jk>*h=8se?Bck(dj7DIA7W)xl?2an`}-8g%vo zI!k|3T_;02l(RKh0eNmLE@Rz*I{3`$?4t2xqu6DPGUa*_?G1YmUk0xsO?7Z-dmPH0W@sACryJ!h z?mD<&TxIUyIw{w~QJ#)ExYOQ^@-#^nGoJTU3Y42keP*_6<9bBOV|7g&kE3D=rp2S* znYu16eHx1RyoD;ihm0}_Dx4}ckFAqz1;(7HkIK?MbF+0!zGkxC--qN=EIu&}D<50M zu$RYu31gpE+2=AlxYq^6TcG<4`4}nK1WXGYw9!9Mx@qnskArn~ z7e3vo_H?ee_u@Zo3iD(3VEoxI$IQ-Z4pVgB^k)=+55#7dKILv<@?CX`SiO9onrr$&srOJD)bk6O`puup~Q^lgV91TS`0?_gVBRv zv=odU2BSy8==)&A-d9LXNDrUCbAA@xF7|?~M%!+Qb_Yha5k9NjhE$s9u(U?9l5pjX zon-a##!hHo{}(%9Uz_i3@ZEz^Vu`Fdt=F<% zqduRo2am80k1#5){<^9h>f0(=?p8D2+0ASBY#;nn!<>(FFxmKOA)P;Wkl9#kA)T*x zkS^|87^m5J7(WJEXcr+IbSxfQXcs{obUZd&co$n6jtWmY_QRs9YoE^{T$WrDk@%PyeW3>n;m`VIbh^F z8}n*C=f_vr}x_@nU6jNd-NOov&_boh={06yR9OZ=vvq$yv~7RJ+OmHqZ@d1iTB?7q*e=VUd@KB%xH}%q4eRpC2jkDg15dQ*e>*IR> diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikisearchindex.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikisearchindex.vb deleted file mode 100644 index bce9b690ee83c1a63aaa33c39e61cca3bca76f3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5646 zcmd^@U2hsk6o$`rrT&Mhb5R^Mq;;CAav?Icacadjt}*$z3It;p1v@UR(?n7KdfVrn zVY0g{G;C~oQ>}K{nLTsPocDYVfB$uCO*=5h)v~emtZyS5Sk?AzXqR?v?`+%N*o9s3 zEn)5z_lP^O_fQ@1Y}>C;S3TV+Yaer8a*JES+Od6UUsx*Vz+Oz(IDY%~8?+bDI=JC zI6;o^zvgX#yttD?biMF1vQeKmXV0K~&7HMSr2pD! z-M72;6&8?HbjxdkMYqtPXKz_`3fDd(J>{M9K>0+x>bz}nNs=TAC!siIg?5n?R^G)E zmfgqlT(u9`?+o8^=rt>2+s8=*#DroN(dE%|R>|Qf47zAJL`QkZIr?^)6XFT9LUo<- zHDgho^D9Ihk<(%i`t4xXefwr1UwLcdJy)FHdW<6~6=LWimt@Rxba;0YUuk#=k|m$} zH#zc<#P44|e~MhiuxzRMqJ$!^4!hVRXLUTrPk6py-8_UUb7t4)>~438kF56GBR0!5 zk59@sJO87muS0fjMIy5G8PRNE@F*_$|wHsH;a(TXrNA<}2s>?CgS8Q#`Y`TWO z%C4%#;-b1Zpsv;75cBXFu^F=e5eP|=s;i@-k379>taJi}x}b`W&bIx|cXa`AzUnbf><6l% zB&_)y9;_&NSsNB{$nVk--?Hz%?>5dqL*F!qMU8Kw*;71jjOT?q9kdJeqnv)}uA+u* z(3T}+{qk0g73MZ{Ji)fAR*Jf1?G@!O(&i4?Tpg6l#l=nN43EZe!u`%}-lJ>TizIXiexS)H@%%4r%;az!oc84VZ3VW3GPDsqXrvP+&2 zP9e&4DqarP2R@QqNDSBX%*0xb59EFSUP zpPl>fG3tQO>9o&SB|_OucT;>)#A0q=KI#@{qUek1*-f4r@Ax&IBPZY%{7Mx60L314 AH~;_u diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikisite_identifiers.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikisite_identifiers.vb deleted file mode 100644 index 431bd0e031494ce5b0cc859341acd285997f4b03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5794 zcmeI0TTdHT5Xa}aQoqBNJk&&q(?D8P)Q&K>GzwtKrD>k9130x}47HaesOnd5`}?2c zVRtbuUM><3)oQ(a&d!-R^PlVSKYwrAs%==p)wF@N?ZA3=WK~-LYSwt_He8*1qEIbBkNb+JSv-Us)z+!`_Y7Bs>r7cW95HP2ko> z&S_X%T%-Nz>I8nG?6PveXvp0`PGY|@H)O|c_P50EFwj(O6AgFyE{;X6D^N?b#1`$j z&Dk@X=bp3g7=6#|kG2p-3-*GU#I}&@T=aY$R!hSaX}3pk8_hcb{{uL7(X0=yD`4JW zoFYf~pYe8tJm1MCx*mra+30|`#NI;rkvnf8r~lS;B~}Y)9S7_O*zslH=wC(c?@#UN z#BVEDwh1x`7&pLu9kdgWS>t!re&cP2FFTA{!EfH%zI`6;P8O0b`#j}2eMVgn=<+^b zcP;y=AorO)wr{Y7?4w)$6K%T)b=y9%?htMVjPxr%ja=P-605UnkxPEpMv4&A9tNx! z@=V88KE@}e-N*D?wGUacgO?@fby>!8h?oZ03C}#XH^DKnN&!jX(L&#D&^lV7#hhY3 zg;w~^GCpH0st-JcZ9+6P*^Qoi*m~WbOysK!p;#8*PXTM?j(&JMN5(v{B^lFm{0O)6 zJK(p6%-3YCy@2f-e&4Z=h)3p+@}ayAl?%kO*(VoszPH&c5cw|&9s@!tlaS4p<>&jz zbMv{`f~|!8DoDHn3+2c<&py`)8E1)aE6lAC)3UQHzHC1;+8)JRJyZg>=KaLS^-(<@ zH`C^=8WE>zF)9Dm$Oy464alTJvZGd9o|ClNtt)4_ykEr{ZO~Vp_S|2wnbO&H22Yih zRi(vG74wLSSBIBp=oun3)`cywl1$ZI`9d$ytLka4OjciDjXX_tUlr|cYG>?1GGt_# zM|kTIxhq!E1igw{Y$5+-)Nd%JvkpXg>I36lzK>&+5ErT}Ju>1Du9BsUs;f4JXhth5 z6?3lel@&ITlk$58&tAbUyQ3^x8TDF!@Le5&&sPJMsr^7*6sMVxyQAIIvE;2bu5WQS z3Gpq9uCp8IUtTZIjINg?b}u@NH(+*tYkikM-~FB@|;NdWU)gQHv(_ zWUEB{ARRYRSU&OPeY%lKt}oob3sQaX#@%rD>4pD8wUUU09=e6gPM zvV^#bxxne%J0n%}zPt0bJ$!8iUn`4Ge%(z`@e`tJnswHBM6QnCJQ{h5B3dyzb>_Yv z|M?Kf*Wv#nP>th1IfrL?AYbpB;Y2(Lc~R$U)%Go2Z}-z|<{@AsJD=hwvHssDI>kCO?kNuwpFPky44!_! jQIyY&x54Hvy=!uI@_5Zojfzyi{i~m4hhP}}OBDYCR$!JN diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikisite_stats.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikisite_stats.vb deleted file mode 100644 index f39bb916b59f2194af3f7e4613c18c149da31980..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7858 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 diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikitag_summary.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikitag_summary.vb deleted file mode 100644 index 6cede894ca40246d5361902178ccb91b37f5bd49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6136 zcmeI0T~i}P6o${WRsM&Oy)bOKSz%Yp!eon&gmr6yAQ0ERA_2lm83HB&r7Zut`n=s~ zdu9@3rbyHaYig3|p3~>_dCzChAHN@1({?T4YT3}bc4~d=S=Dyz!UlF@zu1;t*`;0c zZp_>Xcb|J~cTnx}duZQ6U3GM4tbNTr;1;(rYlrr+ePmJ2uDzeEN%%jtAE3R2Hi26g zIoED&c8&I@>)i1ZOKja% zY}KCI3+`3>oY5D|er0QJv}P}vNo*gvfs6j%xYg2djI_ric!1{T4*yd)UZB|kTpM7% z!FY@u;eW$Z4|!oHd+2)UW@MvNo)UWp<&WHH3kCX5O;=(yht{RTeuy1kIga72sKfI! zdv@=;29|AsOajIm;JyRe3CL{o+qCa_I^@kEqmJ{N6Fat_C%YT7-w%vswYZOteVvi^ z+@9JeSU^_MEwAwwU1w$2ZqfJ*E~kw2EANyC$|u5A=V_fw-qr<2;UpA?PI`~${K}_z zLeYH`=c;|ke&_gBf?jzUTP{vEKujp65iO2hVwDVj!k~jpp)*A9WAHg+CgEQwRlsz` zmKisYx{VdvSWywP=bm=#vwQjV@ljcDejJBb<#w(dy_b!g#wU2k6)_~;S`X;hhUN{q zt?g{_mf!cR6OyyMHjiy(Cg#gCuq-Plk9m}oeKQYPd22*j**D7>50Ni5LGLyADf`y> zA8=jaVVk_m``MO#gV!BQ;=1l?%)rIz-GXB9;mk1|n?*BXji}CMv}|Ur5rw|u4aw0X z@~&3o=OnH6=$d?hq~aB&Nr@>|>N)KQKPx{WLNOxmJ~`Pc|OGRkA|8s!ib-X=RaoHW#i!UwgUutD?V!`(4H= zM~u~9RVJO=Pe@mP5$3B7)3JR?y%oPDR~x+5#64}ZX}$BiN{DJ%bO-%~M0pL<87=4- zJS^;ak-DViKVBQfc&KgvhBj&WkJrZ6L3ytCy*;cvCU4x}Q~i=&x5*0CWo3t=eiq~h zO*Zju^>h`u__%H2b!YHP$8V8{_F2H^7vCkGlbzIA`zW2x2+BlRN_D9^7iHtx$LB5F zL@gTMkE(<9`|R@6f?MBZ64g(2y9Y$*@q}a0_YfY6cAsO^S=J^LuUy>?>!imX>swHi z>mp}$jmipPJ{=t$XYueR?P=LJ!D=0>q%+$F7^%b338BJ?<5zn8-}sjtjaD+F)y(LH z8!gi#sDgUDeRT@A zLZ7GaSYvFY4oy$JNrq8oPn=Cxoj4o(?w>?XcE84N zeAlo@?6P&|?>r|W@?S@<4R&Xf9%+%-rE}@xkc+s-uW!YD@&4QvVn3dp74_i`Z^Jo$ K1g72_Me!$YPRD=% diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikitemplatelinks.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikitemplatelinks.vb deleted file mode 100644 index 2d4a20d8a20d60edaa1bd24ca562111a9c289b8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6974 zcmeI1Yfl?T6o${|O8pO8@&OYirjQU-)FAF@6tF3mruhU0>=ebA)HZ3OsDHif^UioW zyWVy27K2);S}oq0IWyo+nyyn4eMFc&aGoDtJhHet0U zd_K6j**TI=Pus00%1dVUX!Uv9@JZ|k`ua%RM7|CF_8m>t>g@1{ajlqLbqi|kEU`6P zutl4$C^(5&k!Pwcr;dsk7HB*CQRB^Oe{eDBts@H5BM)O;2Jqht`$DzK0%H-HKsU)ZzQ7 zJsmr?g=QNdlYsF$xbK2?0x~=N-L@b3I%MRK)~U0bGdrT1i$Yy9mz;Uu!(FxF%Q%D{<{HqtEXk zH}f&pFsU4quPQmD!#4Jnu&+@bo6c9(K}|@eQ7wmHVwDVr!r>IY9roE~*YfI9`h@ua zS|K|}`-ZlB=N-R7HNk@#$f4h3^t;Q~7P9T2Z?!ct%iLLeax1?R)*Q9gtPBfIhP!io zC_eI2VcK$7esq?l7%BepstOTgiATszva2E#kD2+3D0}QI;x&KYvRaWYD+Rqz{^~2j zB#x$cGFPC>QNBg1$>xGwMdQWXVsEs|NhCOPKKwovH^$l5bfhX?y;%Bm{FLsu(cw$9 zsBE;tZhLU zRYDe=AvXBjyAMj@rrIWE@y^CTrWE<-KrQdOmTVLFwGukj)p(#9h!v_+QibxOjH zvhwf4|9V)>salNnoucDA+DDA%(MiZG%HADvPoGuAE9CH64$DX@&1AEikQM%tKO(brxTF1pUWpii1}qTp__(%Bw8nfZkN(UcIN-un1(h~ z+v-k0r`a-ok)EfDK(`FKrz-0gZ>Xi^l{!lY3y&VMlCstWkM>b0&=q-tpW!V!KO^lM zp3+I_+ppVo{@lf# zyavZhury{yUXB-zGOzPTSYdIVi?J?UIX2wAR?p=Q-K?rg+@ZGYx|^#|ck8}&fK8}k z)>ms7MU`EPGElm{41AT(2CUp;ZRNU{uc~m=4X3JS-4dn!GWfGJn5}7JPae-W7LoIH zK#(S&G`iQcSzr$7Cb)Sf4 z^YbLu7f}AMVR{Ur7sJ}~J`qi4g@?v7+H}xT?3uQekB__|*2LQuMVau1(K@=w{*Ofz Fe*%t8V-WxV diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikitext.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikitext.vb deleted file mode 100644 index 671c9f4eb68c99a0e16b7a27c0973b39f0a0909b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5340 zcmds*Yi}Ay6o${|O8pO8=RG~<`sp}z{6slm<(Rh#=P7a$d&SrUjl1Z#&2{2viq^owHuK_`=URnYmL;}jk8Q&q z+7r$Vd&Ju}jDBaE?rqb)W+br|aswCLpS#tvFh$z!5qyc|rw;!f90yo70@o^-S9nj6 zBm6IU>LV{`(!ka;H=;f2@s!vhls|LEI~3@@G#!bR99m}%`!W0Y)Nu^6q7Kgw?7`f* zDm&W*nFNe0;9dvq1Y~x(*6cM;`^@a~)^UDwY)AI%R6E)69&0-GeUAS_yKi5Bx%NS) z{KW6!7CLwB9qUfu)8kE7`J;SJUJ#BlPg@-FuP(?58Oa;7V!}P0S$UtmUsjLhxk?Z1 z*eTwWVApjSJ1#ORU?kjP3>V>*SRsd)tnT11Lx;<#A}878>GJgU)>8cIIZWb5>B%AnX|uUW$q)6bK-EDxhk`}4yC$7 zZpVIbGQ5YD(NVg}n8EZ>ZvFovKft>QQD*$aZVQpwF=_Fp)2-h9$(9e0{=^%;mqyocvI=QdQv7 z)Ei&9GfRc^J$$uKJa2#zBXu8gPD};C3*~Vd)8*XI*$S| ztDfc;=2dyac+qi8?OS3|oYq_<`#qI5@s7@76kDK(*Iw7rMTmV25+U0LG;U+pHkK+w z%R861Bxn$<*#$xgt@&7( zjXQa8o>F~~dhLAl_(*sMH&KhmcRaqrOV2JEH{mv9kEB5Zni_H5rs@Q}yie}KLviIJ zS-neXO7S$e&T~;S-m2kup6^Uazk|vFn4C=O v`CVcXXRn(OQPz!pWHCZ9rB*KQNAq({h{x<3Ns$=NFdM$mCgA2hNfdtp#WO%P diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikitranscache.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikitranscache.vb deleted file mode 100644 index 4e18aac333aab8311b5c736b5f6cfa574afb5be2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5382 zcmeI0T~8ZF6o$`rrT&L4xu_F0P9TX?5j(m(hHqSe= zqx~=rYsEypsI0Yjc4p3*^Pcy7tpEMz&|0=<5ubgVSkL-4vVm1?*UoKh*Y>Av*`;0B z6>~AqPPs;0vE8t0kMASN)a_qE$C3uCl>If92+K6Lo^k$8?}V{mPP zd4q9`9^rq@-2i>zByDWHa8Kl;K6jD5W93J#tcSw-?@gb`Y7VUnhy4UUzH$=7tX7Bn z$M$&cTocdkgG>a*4RGHD?FeMH`EJ=S+#NA<#Hj0db808{M{+t@)WgOpr`E~Egs#2J z>3U+1>^tz6Pjrbh-k%%n>)G$@IYVZjk-o)E@lT8hpE`FNe59f0bP8WF^n_gl?u$Dg z!Gp5rC@)p#koSf#E5fd#jx84@4e%0%Sv<>P7g;5To)GAwv5$q<*gIkrftgTHB#+(Q z4ZGH0{0n=?Y#VE^OQLU+xhBuH;kOVG zHe2=+qr-%Y^_(5|!<)O=KFg=9g`bPz8cbB?oRDLLRKxipv6bWttT@D$lA)Nro!MfQ(;ff5=cP@WkiE1Mra^)gAeN)Bnp)>$V;DZ?p?FQ;Dk%9|n}4?KXC1N(puRgVZ;@+Ut)|7B8RRm0P&t8DOr@iFtW zxJ2+@nRP@=O_3^H$}alUW>8Gm${X4IBSeL}&Y?V@Omt&!kbL8wx6vNs%WE`^avnNn zg?fWZ(slgCylP{3UL{g}?vc-=A?vYOyR)Z?h-Ue66CKKDl_WnbW??ZO23rHi!bz8F zK~d{+YzbL9*zmRe67Tvu-^)aRj~XA3z6%(_LiJ6a)w2<#$jz@*7ox5= z9|xY(s;*kCHNM|ahvLuK<8B{mBY370v|R-`gu^F^#9;3cG87>`Ce=CAk`=FV`@EE6 zq?YfnZmWli$xuIwjOw~L470&As-fz-8{nWitRAmI&-fR8+TZ+2qDHH^(V81Qq`OiL z@hJKX8)9uy6!m6tz!@53<<>$t=6C*&q`DmS@9IAn;bV56>V)11^iEm6YkfyQ)ncFe z-oUf8UlsdPUM-I~9eC4(H;dYv-M5I9;mxIJVLfBr=i|_?Od~2tN@LQm@KL7sz%sZ# zb1^xK>--#>#%i|4?z^|KiOXC1CqNZ-n<_jeyXu6#Bhmi@F}SOj(A^-(0;;*UWxs5v z5%j9ZiIF@(w(@M6E30VK8@W1*n0%DwX5h3i&Q^c_E)Zmgx>7uO_8j@%ViCJlOVnrT zKLelr?#J%iYD>}XbX?5%=}chO*ThKPy@DOSD&Hqc`3f+PA1NCDEu1=_be41*_lZ(A k-z@{96i=Vy%X4dfMha1zzL_ar!xd)3JK_}NJiD~w6Njl!>i_@% diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiupdatelog.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiupdatelog.vb deleted file mode 100644 index 5c3cace552998a6ee538ad4fa6fd51151e3866df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4846 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 diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiuser.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiuser.vb deleted file mode 100644 index d140ea48025fa5e4e6567836c5531f1a44763a57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13726 zcmeHOTTdJ}6h6XqxU`cnETvX++xBWhQ zUHjOc-PvW9l`1qEW<7K4bM?8{=AXZ}WK~{BfonrLvM&d6Dn~LWYjPrOxsXrtSkC24 z-s4*j@7~}(#od$7fO>(y+wv=*=M3B-`aZ?o#?8@s=-ZL6yu`aMDBcHs%lO+hFmtjF4tMaKBkECC z08P#cc_j04TfUb&xNpl3Xf5FFeR*J759BW16tW4tZWKPBncn2E2W*#@;1)PPHu68f zh$rBz4Y{sB=1sJFz(e_8;MWoGIZD>S>zR2&9Ub6TA+G@W4tJ;_2k&J0t?(*j(Mavg z=%53AJ~Si8Q0yJQyCt_O!>+&rHXy+Qx@bZ_YtTvo2|mH!Rrw9Sw((^ftvzF3Z=@w3 z`&?XrLfX@w{G7%2z1);ek z%DV+Q9im;}Noh5Vd}qMqulv!H4m+1SCD zL@TLFPK;X@#uw1KIdY!%Dt7lfe9|~~ReL3^@1WOqhR!>fBUR_eI5gJTrz*c*<1Ne- z`bcIF^iRwQm~#x)SzY!<+a50YNnmS%!%vvSC-8&J1j_C6a@aZgTVUyeQ=84%oMck? zs5fSo2WIwBqr~K6&wLI3BKEF1S>|HR_}*$0k?$EY$0nYy!OwFwl=P}cG zYI2WNS;Di8>m1Q$8Qr?^oBX-hI7I5BnDF9ehuvQXr3Jy>tri+{LJ&o(sV9T1;f= z`%n+s&r!0JKPh5%X!H5!!139_p1s!brH8+^&It9mgZ^ASXu#WY zUE)vB%<9>_pED!&V7)<_I$_m)Gr5SH@P*NtK+ebevT=nDlgtdEs)M{a>>V5p$ z0KKQEiAc%1*={G;_pa?&>pZCmF;o_N>_AB#$DP-z3 zQkYm{DSobXzQk(8npqj<4tfK7oqu6<^o!Z^EKF-&wQj4{9o4$4S_`UmPqltjt^2C= zlWK8aUQ?s#;pq$g-O@CR9d@oY+S#jDyLsI!;*(3_A}6DxSDBh6pk^LhsJY{c~p zj(4oMvKad1>ls}44Cd|)&kym;%P8?T?8jAYo=D=^x4|c6USV%&6|g*C6YABSjbV)U z{27N# zV{h3QVcui=gb{jpuQUsBqm5?t1Ywi`~cLdD!_a%abG4^ zb>w!U9DdebJz(en2kRVPtIPp2PqK11jwk&>U+H`-=fBvfvUUHO;FA-LG z_MBqxN+go2`m{uxKh$qi|EIsl7OTJJ{o5cI@6R-p_aXYd_E+gQ>!0*{Kh_|BRNlw? zpDHl%9M*lx>MaeG)>`^|tc4ioG%cO8_C035UG=cF&}3)7u5|MA|JvI1i9>Bq;S9O9 z_E93;E^PggtJgOF|FwCoY3g44{6Sewc?Rfu`O{*|g52%C MuEXB-|L_pvUr1QAX8-^I diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiuser_former_groups.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiuser_former_groups.vb deleted file mode 100644 index 48edcf1647ebf5b192245ef8ab3c9a82e69d073e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5384 zcmd^@VQ(5o5QgV-rT&Mj^T9Z3Nb59Jc8G_kjBCaGs#T=rSz_Dv zrES_%d&a$KU(k9^?>DyPT3hxNJ&7HmH>{%PD>qvnrf9oAg2#B?b@;bg@ejNU?Xi7EJQO3{;*gK;HqtHoz#8YQ(Wa$eaaDX2L&8<&ZJSHnYoSZ12~+8o zMd{4U$M9lNI~HG6b|{)%n3mwzw2oc3YbxL;Otbjj70bj5IW&bx6C1ijT!Yy@?;e4d z^s25U)Y6`lS5;BpvRQMBd19PutE$Gs)F)r*BSMPMBUsxZEBI=a;9K64BlHg@HC<KgHFR8PH&a!#7dDf^lNm?@g)ZnY2>}+9ioz;4d-^%zplN`g6v&o9V-xJml2R-vu z|4S2z7p_u-dGh0s`E?}jQ|n``inU!ljr}nuO=6%^bOi)dD|KcoP`^J?#eZ{kTowHz z3|DJ|^N_N(N6hE2us@eYOy34aXswXkIJi zJbT0GMSRyOH8LwQuAE^}!fx?9JW6Ic=w&^}9*$uR_*I2p%VL$CcOQhpH%jz*K03GW z%`7hZzFP$GO}A4QL;RVOokjc+QJtTW<8IGZxw`uT8@eo~e*;v{_Naq>_l*@!3Hpy9 zB_gWtdh1N`i0Z(+T$!zeL9a4z%F095R#uLgwTMQ2mFr&xeZyoKA9jk6p02;yzQ{>m znS$1U#!?l2m@>P8^wIVFid0q+%BmH+?% diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiuser_groups.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiuser_groups.vb deleted file mode 100644 index 2d64dcb75c9d749cf60bda8235164286cca6b86a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5286 zcmds*ZBH9V6ov2SO8pO8@&OYyPD`4qqISfKO&SF-1>7{Buw!hBVhpv{X;IX_-u5{& zp6;w)gjd08Rjn59&fb}O=iD>*%<$KrCswyZOSl>~w6=AuZ(S?ffnC|a#`e4I*^OP> zE#Few-f{Q2Q@g|JkiVz)Bi3bScR}Bm+yicnmeO}yN92|exhwe#BJi+&rTQ*X_%N{<6Hv;|GVmD#*Y+-Qj(c zmG<2EU&h-!UrpkBMGa~?%wF^NExx8_9CJ*ulx8ei%p>%Qk?vme0yWWxQbtHS}s)$sKG)iulCWvfO7=BrjOsy-D~ zrdNd_b!S~ZWXJ#Wq98PeW_%qyd_&(vbL?kCFNGis8OU+T~wyZ2%##j zu^N0WJ_aFqlGY{YYv0*RY1DRqCEdbOtdhb?J03=*yxwOhC<~8ZW|zw0H7j8@`Ph%~ ze=|{b?Hn?#S1q{Y{fzIk$Rt!7Rr5aeXvC=UrFy2TGJ|7gtBm9;o=_F`isb4a&3nz* zcdq>i|0x+AzfIG#myW-aB3*|ZG5JSRQdy{`9I zE7}Wr&dl;t>mqNdeT8s3x%MX~@Z)?kVwmqK zV~Bm8@!AViCKfN83WR=|#}WM-SQOL!pkJBJi;0F zxz2V)IP`{nhS;n9XW&i7rfS5I1m^qI8th_zc}vfqhht9@?$qE;QDowN#qbDcjWEag zSS(s)F$y}B-H+|2TXD-^`^;I+V*7~P&99=_nvFH7;Z9IPSDAEvm;UUdS_5}R3W}~% zeG2x{Vm);y)j+j-UVV#|EBIBlOc{B|*s7#iH7w&%=V<*OKxdMe$zcTutsynYH{oXehh4u*2)F*NWA!Bd-MiU4Asd qNvx=Uz3ubP zFk+Vl%-W$+rE0ay&g{&&yyrUn{nv?A?a(5wBO6%V8rHRz745(}*0Yg)vOT-DE9>(u zX6`L_mpir_Rvq#@wO?3WbnBYzeZk%17PXkY1N+*(vI(C@!PQ9S$oCW2x@is z^xfX{9?7Sx?dWM`hn)jPL+&_Xx?`CH=x)-vmUrsz<~T9QFh3_}ozpU$r{CKe9)2 zzg4j85y(VfyaVnBpdEqCKF_NC#@i`hP8nS~zjEP`3|IX+ovJNKg5vd{AByt}<`iT=KU%JcX2S6n9AxXLdfs z7nYS{d8(2_7Hs2P5qeGY*mIGx17^Z8iD@4EA}gd26bhH{4S09J>ykOec+6Viy1{tF zSaI{tS)|EK4eKg;YIcro4|uB}**><`SYOuJyKdj!!msc6eQ?+-hxFXr4ZLMn@m_}0 zZG5^=9XeYoetcBOs}$wZcNYJrNFe^xdIgQMn!N&nH|&^&Xko_e#td|3)9_MG)6ncj z3SY@v1+f>zm-1Vg-yYXBTI|lyWzT-bVkhIcDZ4BlEU+3MzdbUuzQ1hFDG@cw^z(98 ziKzB9Wk5C=lG(IldQRL*_pW;Ra(0o3se`_1Y{=UMTU$CauHi}YR8>~dk+-*~Qe|j_ zth$D;_*{MrM&hMf8Bw2obf{8kZkbHH#aelmYP71)m#K5UW0)WzOFY0kTjU*I^&<31 zOMeXi>v3)u2np8$wmQLQN=TkesZQRnqxVxC(tqqTHe? za$~QcedFe9@Q<H<{mrp=Ku! zR(I8DkreZEeL!yS;ki*NI+lqSA7egxeV^0DW7Qq{7|6z(;yk@leU^IrbkunNS0&YI zt??a|dN40%owp;Xb+MczsJXgxg1=vkDF%H{p`mE<5v<;*G+yyMwa-&IgKEA$QhiXi zN-M_Fv#PMuvy1GddaM)24(Oa?BlWihx}eYWGJm>mNPW>~;y5|lbfXQrO4TEetbLQ*de=DbD^8w`9Hq1eOEo9PBiMq^Z0IZpDK{fNIGTb>)~J1wN=@xlR(;E zefO?-nfTn7^Qv=vs)A4D)jGK^udd-lm({bJ&~Z9OJFc(yD<-j)q_H@P{Z1d3IyEnc z_cIsAS-j_G>q&ekYx$8oxeimk!uEe26P0OB?B;Cd2(Oh-OpIhUV zYCfw@Wi_9k>ASiyL1&S_{hO%C;(a{E*L+`VR^u`0N;2PP{wv6xgIjal-K-L~WVT!l jYSV}}r#k3GaXUYkg;cGbE4nfoVpjP|?3t^E> diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiuser_properties.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiuser_properties.vb deleted file mode 100644 index 82adc04e6e9caa3f01190fb566a06b9236c9353d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5852 zcmeI0U2hvj6o$_=68~XIFL0{XC25OLu&aDIrE21Yd{BB7JB}S994FWtz(V|W;CW{} z-5syp*lq$hXtnFznKS2{dC%wg@4pVMW_y-!?OWfP*0Qd(t!%q?X+68O-)+mT?aFSL zOBp-k?sBI#gldoHk$n$!+0mV|_BD5pTijCC_U&`~%rZH9_I|V`;kRW!L3;&l0=Fh| zZrs{$YO6 z_ROAhui969y=3$oTXSD)_JWbb4v-tT==Y6VtsSOF`*Z{k*?Gs|--6>MJL`e#Hkfbl zogzp0-}2T*UeKh@Ua#DUY}Dc{v3F4Z%$>JTp#RczC0220T{-Og*zuL)7-mHs-k;jj zsdL*{b{}LCFx~+7UC>TIW`}3Ze&p?lnIpa$&Tr1_)P5UjcZ&w{lT&OUTYAfD=h|Px zzKx_lv&Z%YmXLLH%X_?K*P(9OudF(USBoz_<)!jO`9`>^ysdM|>zc?EUP4nkNSCy* z@-ZGUs~)p+l^(KV2Omq=*SL%=7cUziCp7cO&W~bZr3go1(LnkQdkq$7Fs67T-gf zZ^%R^4zag9-=l^0`7s~M5E%DCzl+iYq@H{jEAD%Ff@ZVpQsgJw1zQzomm`bFW;IZF z4GzkARepP1*JO}Q=C&EzAx33Q*>%gl3yo@!Pps%_ca(T&?T>hFpTQ1>wvaxEexT*fNsb5t% zg?zh2?D;Hz08)~uDk@LtI(pSGjm<7~jTQ1T)o@j(`>BJzqsUN^RUYA~ZM#5*s$#;f z;yoN7KdT@^C_*=(40OTwG4n-)5@JGiqD$=yd5_!e2+$XdrxsP>i6S^d;6%&Y2$@v_4>wXdmulCb1*w6~_@ z=4IzyhvUTp`yJ0i54rD6kWjvt-_E+zas9%MH^El5z67`Vt(?`Nu-_1C!AjGux5zFs zdDHZNL_Y7~wMi5iv&4#zFCV$S`{@w>>KwiQ7h_E^9#g9OQr{m(jQ4%%E^5*EK1-dM z*R#pnKHR!kLmJdw{W-+fPe&ZXevjaxNb=FEj;S)DconVlT#n(oNROGXu%TCIxG0-m zcNK$SHnUR$ztSmW160(7sOK%wL;pdy`X|3yrLUFfYt?-%(_^Y0c}#td4q0ekOm)&a zK!*+TdTlOLaP&o+OwajQw#at_`|ecScX?F*&8YJ4&@c4dxi|Du`o|{4X6l0U)*j^{ zRmw@(IA1-3Tyfk(H+YZlB77Bl81IQ|)FS@#Ut@Iw uQs<)%=^>HI=hOSbDZ}n=pPb$Qrf0Pf-Ps9MaUJe38&1swko6uYihlrvyRNeU diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikivalid_tag.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikivalid_tag.vb deleted file mode 100644 index 0a3e1804d36f7153ab96ff5e9b0124dffc5cf22c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4434 zcmdUy?N1Xy5XR@TiT}fiA1p?zpe6=eL!ku;P%1CJe1cM1Z7c=b10}|PUHv_~U3^ag!CwIWwW$r$=w8g9)*mb*RV>|2idbB3u*|N9D9wHl|t%;puw>G^- z`_t8N`Xt$9<$$jtcLzI>yo3UBDXAih% z?LJ?R7=3JW?rY8-G7?z>yFrVdD{i$sjIs9n2yWte$Kl^XV;9f*;93Rq3g0nyg#QU| zZR~}e)baJujVMMf-XeR6^o69}vfY}0uM{ic0#@2Ldt+dzByUc1;WSM85>xlebV6Mv85?W_bcYMIr60j9`0&pQp!krnZ}qTh4!VpWa(m^J2* zQZ}iRh$H_D8~eUC_Fm}UB@mG)S@?;<7($#`Y`PVOqAk`>7XG>dr)=O{%)Z|aqy8B z|CdG*PgCo>mTk1=?UEPst4h~`>0FTQ=*p{coc~;ucZhM7 z7*FbLa$SBO!@2Iff8~U4I@jhwV#Z~B7Kxi6cro9MDQsvyNC&r+#c+T|6()`&@Ijx^F|Si`iG%^NHG;8%_s3&ysEyg|3IEwuEy_+c=m7lt%w~Hao=^W((^QD{tGeR!SjPr lhrCM9lT31%-@l#%m$N~rnDHr8wG!?y8&1PR(C}FxiElkIurvSw diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiwatchlist.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/MySQL/lib_wikiwatchlist.vb deleted file mode 100644 index b83de94d72ae28687cca32eb537d087d142ca055..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7966 zcmeI1U2_vR6o$`rXZjzu;R1(&K*Gm#Xu>2U;bU-|G zTR^P?pSNyqK1cHDI&$q9kWDT^0V2Wln|rGwep&$&@5On+wj+O4|~?_`b4@t(9C@==dftvFiNk$r#JDCHAi2Zu43J* zQ}}2#4Bg5Q{ddleibUcs->tDu?{Zb;HjP)0btisD+y~GPD^X9c>(FWa)}c90mPI^P zl8kCO8P7d1dP*GKbGCoR?+fOSvtDgX@AXf8#q79-P<+1zF z4zgG0nR{v*+s*u~M0= za(Cr6+QpSU7N4@&8_2W7tXt%`zBlByx5!6Q+Uff;S&DM%Nm=4DyRXmQ`{bJga!Ab> z?GwdiaQ(9SVz%sf0qb^%zCxto_Ul8kggM&Ep{M1bbL?KiRy)5asFFCO5?En&$Xw^x z-+jKk13KcOT%o|Hx^BFxf%7@tXOwmmRY1z^FQ$s{-W0VL`d5evhh%uZrYO)PmwN~P zZ_X+&Rd%r!Q;zkTc8l+2R0^^ZxX5 zKI8cyo9C&tpj!20L-l#6iqaY-)_LW%rb;S)kKUR0SGVduUaXU{H8fVO*`!sY^8QF( z@TaT5Rf~TlLZ+>ytaaP9<~bqJUhnPU_rehQXSIiNyd5M`{;J9&c#4m;(=3wD{NE-Q zXA_-W=qyk5#4Hv`=P5hT>7dS+tDa#!cQu;q8vQ=5mX*X;3s$v{L}68pTR(n=_viAA zbVd1*-q$Y<$2~lI!&M-&;h4^=j$WwZ10v&*OJmA;n5APUp_PuAB^G(aeLT^bwW{;! zmcQd-PuY%>wYWQBMp>78Ze-c=lXtur@6sG{+nq}H-7cd4LzFK*BFpT#bLWtO>tB)~ zo}t{?*K9uODbEUqX4b&U({T8CJ8bmS?xIr;KO( z7Lm&{qL3Gi>Y7TPXWO$NrCdODnEq?IOr*x;22uC0o?=fmq|)(KPc^?Ly7DBQ9{7Ch zGV#rK?2Gfo|2o2Z;QPw0#=}eX-*n&jchQX&`P@}geFaR8(IG0ulNrUMaEGrAER+9_ Hr4j!CP6Ou^ diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki.sql b/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki.sql deleted file mode 100644 index 29ee150eb..000000000 --- a/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki.sql +++ /dev/null @@ -1,1070 +0,0 @@ -CREATE DATABASE IF NOT EXISTS `wiki` /*!40100 DEFAULT CHARACTER SET utf8 */; -USE `wiki`; --- MySQL dump 10.13 Distrib 5.6.13, for Win32 (x86) --- --- Host: localhost Database: wiki --- ------------------------------------------------------ --- Server version 5.6.17 - -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; -/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!40101 SET NAMES utf8 */; -/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; -/*!40103 SET TIME_ZONE='+00:00' */; -/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; -/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; -/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; -/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; - --- --- Table structure for table `lib_wikiarchive` --- - -DROP TABLE IF EXISTS `lib_wikiarchive`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikiarchive` ( - `ar_id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `ar_namespace` int(11) NOT NULL DEFAULT '0', - `ar_title` varbinary(255) NOT NULL DEFAULT '', - `ar_text` mediumblob NOT NULL, - `ar_comment` varbinary(767) NOT NULL, - `ar_user` int(10) unsigned NOT NULL DEFAULT '0', - `ar_user_text` varbinary(255) NOT NULL, - `ar_timestamp` binary(14) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0', - `ar_minor_edit` tinyint(4) NOT NULL DEFAULT '0', - `ar_flags` tinyblob NOT NULL, - `ar_rev_id` int(10) unsigned DEFAULT NULL, - `ar_text_id` int(10) unsigned DEFAULT NULL, - `ar_deleted` tinyint(3) unsigned NOT NULL DEFAULT '0', - `ar_len` int(10) unsigned DEFAULT NULL, - `ar_page_id` int(10) unsigned DEFAULT NULL, - `ar_parent_id` int(10) unsigned DEFAULT NULL, - `ar_sha1` varbinary(32) NOT NULL DEFAULT '', - `ar_content_model` varbinary(32) DEFAULT NULL, - `ar_content_format` varbinary(64) DEFAULT NULL, - PRIMARY KEY (`ar_id`), - KEY `name_title_timestamp` (`ar_namespace`,`ar_title`,`ar_timestamp`), - KEY `usertext_timestamp` (`ar_user_text`,`ar_timestamp`), - KEY `ar_revid` (`ar_rev_id`) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikicategory` --- - -DROP TABLE IF EXISTS `lib_wikicategory`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikicategory` ( - `cat_id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `cat_title` varbinary(255) NOT NULL, - `cat_pages` int(11) NOT NULL DEFAULT '0', - `cat_subcats` int(11) NOT NULL DEFAULT '0', - `cat_files` int(11) NOT NULL DEFAULT '0', - PRIMARY KEY (`cat_id`), - UNIQUE KEY `cat_title` (`cat_title`), - KEY `cat_pages` (`cat_pages`) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikicategorylinks` --- - -DROP TABLE IF EXISTS `lib_wikicategorylinks`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikicategorylinks` ( - `cl_from` int(10) unsigned NOT NULL DEFAULT '0', - `cl_to` varbinary(255) NOT NULL DEFAULT '', - `cl_sortkey` varbinary(230) NOT NULL DEFAULT '', - `cl_sortkey_prefix` varbinary(255) NOT NULL DEFAULT '', - `cl_timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - `cl_collation` varbinary(32) NOT NULL DEFAULT '', - `cl_type` enum('page','subcat','file') NOT NULL DEFAULT 'page', - UNIQUE KEY `cl_from` (`cl_from`,`cl_to`), - KEY `cl_sortkey` (`cl_to`,`cl_type`,`cl_sortkey`,`cl_from`), - KEY `cl_timestamp` (`cl_to`,`cl_timestamp`), - KEY `cl_collation` (`cl_collation`) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikichange_tag` --- - -DROP TABLE IF EXISTS `lib_wikichange_tag`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikichange_tag` ( - `ct_rc_id` int(11) DEFAULT NULL, - `ct_log_id` int(11) DEFAULT NULL, - `ct_rev_id` int(11) DEFAULT NULL, - `ct_tag` varbinary(255) NOT NULL, - `ct_params` blob, - UNIQUE KEY `change_tag_rc_tag` (`ct_rc_id`,`ct_tag`), - UNIQUE KEY `change_tag_log_tag` (`ct_log_id`,`ct_tag`), - UNIQUE KEY `change_tag_rev_tag` (`ct_rev_id`,`ct_tag`), - KEY `change_tag_tag_id` (`ct_tag`,`ct_rc_id`,`ct_rev_id`,`ct_log_id`) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikiexternallinks` --- - -DROP TABLE IF EXISTS `lib_wikiexternallinks`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikiexternallinks` ( - `el_id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `el_from` int(10) unsigned NOT NULL DEFAULT '0', - `el_to` blob NOT NULL, - `el_index` blob NOT NULL, - PRIMARY KEY (`el_id`), - KEY `el_from` (`el_from`,`el_to`(40)), - KEY `el_to` (`el_to`(60),`el_from`), - KEY `el_index` (`el_index`(60)) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikifilearchive` --- - -DROP TABLE IF EXISTS `lib_wikifilearchive`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikifilearchive` ( - `fa_id` int(11) NOT NULL AUTO_INCREMENT, - `fa_name` varbinary(255) NOT NULL DEFAULT '', - `fa_archive_name` varbinary(255) DEFAULT '', - `fa_storage_group` varbinary(16) DEFAULT NULL, - `fa_storage_key` varbinary(64) DEFAULT '', - `fa_deleted_user` int(11) DEFAULT NULL, - `fa_deleted_timestamp` binary(14) DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0', - `fa_deleted_reason` varbinary(767) DEFAULT '', - `fa_size` int(10) unsigned DEFAULT '0', - `fa_width` int(11) DEFAULT '0', - `fa_height` int(11) DEFAULT '0', - `fa_metadata` mediumblob, - `fa_bits` int(11) DEFAULT '0', - `fa_media_type` enum('UNKNOWN','BITMAP','DRAWING','AUDIO','VIDEO','MULTIMEDIA','OFFICE','TEXT','EXECUTABLE','ARCHIVE') DEFAULT NULL, - `fa_major_mime` enum('unknown','application','audio','image','text','video','message','model','multipart','chemical') DEFAULT 'unknown', - `fa_minor_mime` varbinary(100) DEFAULT 'unknown', - `fa_description` varbinary(767) DEFAULT NULL, - `fa_user` int(10) unsigned DEFAULT '0', - `fa_user_text` varbinary(255) DEFAULT NULL, - `fa_timestamp` binary(14) DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0', - `fa_deleted` tinyint(3) unsigned NOT NULL DEFAULT '0', - `fa_sha1` varbinary(32) NOT NULL DEFAULT '', - PRIMARY KEY (`fa_id`), - KEY `fa_name` (`fa_name`,`fa_timestamp`), - KEY `fa_storage_group` (`fa_storage_group`,`fa_storage_key`), - KEY `fa_deleted_timestamp` (`fa_deleted_timestamp`), - KEY `fa_user_timestamp` (`fa_user_text`,`fa_timestamp`), - KEY `fa_sha1` (`fa_sha1`(10)) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikiimage` --- - -DROP TABLE IF EXISTS `lib_wikiimage`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikiimage` ( - `img_name` varbinary(255) NOT NULL DEFAULT '', - `img_size` int(10) unsigned NOT NULL DEFAULT '0', - `img_width` int(11) NOT NULL DEFAULT '0', - `img_height` int(11) NOT NULL DEFAULT '0', - `img_metadata` mediumblob NOT NULL, - `img_bits` int(11) NOT NULL DEFAULT '0', - `img_media_type` enum('UNKNOWN','BITMAP','DRAWING','AUDIO','VIDEO','MULTIMEDIA','OFFICE','TEXT','EXECUTABLE','ARCHIVE') DEFAULT NULL, - `img_major_mime` enum('unknown','application','audio','image','text','video','message','model','multipart','chemical') NOT NULL DEFAULT 'unknown', - `img_minor_mime` varbinary(100) NOT NULL DEFAULT 'unknown', - `img_description` varbinary(767) NOT NULL, - `img_user` int(10) unsigned NOT NULL DEFAULT '0', - `img_user_text` varbinary(255) NOT NULL, - `img_timestamp` varbinary(14) NOT NULL DEFAULT '', - `img_sha1` varbinary(32) NOT NULL DEFAULT '', - PRIMARY KEY (`img_name`), - KEY `img_usertext_timestamp` (`img_user_text`,`img_timestamp`), - KEY `img_size` (`img_size`), - KEY `img_timestamp` (`img_timestamp`), - KEY `img_sha1` (`img_sha1`(10)), - KEY `img_media_mime` (`img_media_type`,`img_major_mime`,`img_minor_mime`) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikiimagelinks` --- - -DROP TABLE IF EXISTS `lib_wikiimagelinks`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikiimagelinks` ( - `il_from` int(10) unsigned NOT NULL DEFAULT '0', - `il_from_namespace` int(11) NOT NULL DEFAULT '0', - `il_to` varbinary(255) NOT NULL DEFAULT '', - UNIQUE KEY `il_from` (`il_from`,`il_to`), - KEY `il_to` (`il_to`,`il_from`), - KEY `il_backlinks_namespace` (`il_to`,`il_from_namespace`,`il_from`) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikiinterwiki` --- - -DROP TABLE IF EXISTS `lib_wikiinterwiki`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikiinterwiki` ( - `iw_prefix` varbinary(32) NOT NULL, - `iw_url` blob NOT NULL, - `iw_api` blob NOT NULL, - `iw_wikiid` varbinary(64) NOT NULL, - `iw_local` tinyint(1) NOT NULL, - `iw_trans` tinyint(4) NOT NULL DEFAULT '0', - UNIQUE KEY `iw_prefix` (`iw_prefix`) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikiipblocks` --- - -DROP TABLE IF EXISTS `lib_wikiipblocks`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikiipblocks` ( - `ipb_id` int(11) NOT NULL AUTO_INCREMENT, - `ipb_address` tinyblob NOT NULL, - `ipb_user` int(10) unsigned NOT NULL DEFAULT '0', - `ipb_by` int(10) unsigned NOT NULL DEFAULT '0', - `ipb_by_text` varbinary(255) NOT NULL DEFAULT '', - `ipb_reason` varbinary(767) NOT NULL, - `ipb_timestamp` binary(14) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0', - `ipb_auto` tinyint(1) NOT NULL DEFAULT '0', - `ipb_anon_only` tinyint(1) NOT NULL DEFAULT '0', - `ipb_create_account` tinyint(1) NOT NULL DEFAULT '1', - `ipb_enable_autoblock` tinyint(1) NOT NULL DEFAULT '1', - `ipb_expiry` varbinary(14) NOT NULL DEFAULT '', - `ipb_range_start` tinyblob NOT NULL, - `ipb_range_end` tinyblob NOT NULL, - `ipb_deleted` tinyint(1) NOT NULL DEFAULT '0', - `ipb_block_email` tinyint(1) NOT NULL DEFAULT '0', - `ipb_allow_usertalk` tinyint(1) NOT NULL DEFAULT '0', - `ipb_parent_block_id` int(11) DEFAULT NULL, - PRIMARY KEY (`ipb_id`), - UNIQUE KEY `ipb_address` (`ipb_address`(255),`ipb_user`,`ipb_auto`,`ipb_anon_only`), - KEY `ipb_user` (`ipb_user`), - KEY `ipb_range` (`ipb_range_start`(8),`ipb_range_end`(8)), - KEY `ipb_timestamp` (`ipb_timestamp`), - KEY `ipb_expiry` (`ipb_expiry`), - KEY `ipb_parent_block_id` (`ipb_parent_block_id`) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikiiwlinks` --- - -DROP TABLE IF EXISTS `lib_wikiiwlinks`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikiiwlinks` ( - `iwl_from` int(10) unsigned NOT NULL DEFAULT '0', - `iwl_prefix` varbinary(20) NOT NULL DEFAULT '', - `iwl_title` varbinary(255) NOT NULL DEFAULT '', - UNIQUE KEY `iwl_from` (`iwl_from`,`iwl_prefix`,`iwl_title`), - KEY `iwl_prefix_title_from` (`iwl_prefix`,`iwl_title`,`iwl_from`), - KEY `iwl_prefix_from_title` (`iwl_prefix`,`iwl_from`,`iwl_title`) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikijob` --- - -DROP TABLE IF EXISTS `lib_wikijob`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikijob` ( - `job_id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `job_cmd` varbinary(60) NOT NULL DEFAULT '', - `job_namespace` int(11) NOT NULL, - `job_title` varbinary(255) NOT NULL, - `job_timestamp` varbinary(14) DEFAULT NULL, - `job_params` blob NOT NULL, - `job_random` int(10) unsigned NOT NULL DEFAULT '0', - `job_attempts` int(10) unsigned NOT NULL DEFAULT '0', - `job_token` varbinary(32) NOT NULL DEFAULT '', - `job_token_timestamp` varbinary(14) DEFAULT NULL, - `job_sha1` varbinary(32) NOT NULL DEFAULT '', - PRIMARY KEY (`job_id`), - KEY `job_sha1` (`job_sha1`), - KEY `job_cmd_token` (`job_cmd`,`job_token`,`job_random`), - KEY `job_cmd_token_id` (`job_cmd`,`job_token`,`job_id`), - KEY `job_cmd` (`job_cmd`,`job_namespace`,`job_title`,`job_params`(128)), - KEY `job_timestamp` (`job_timestamp`) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikil10n_cache` --- - -DROP TABLE IF EXISTS `lib_wikil10n_cache`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikil10n_cache` ( - `lc_lang` varbinary(32) NOT NULL, - `lc_key` varbinary(255) NOT NULL, - `lc_value` mediumblob NOT NULL, - KEY `lc_lang_key` (`lc_lang`,`lc_key`) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikilanglinks` --- - -DROP TABLE IF EXISTS `lib_wikilanglinks`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikilanglinks` ( - `ll_from` int(10) unsigned NOT NULL DEFAULT '0', - `ll_lang` varbinary(20) NOT NULL DEFAULT '', - `ll_title` varbinary(255) NOT NULL DEFAULT '', - UNIQUE KEY `ll_from` (`ll_from`,`ll_lang`), - KEY `ll_lang` (`ll_lang`,`ll_title`) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikilog_search` --- - -DROP TABLE IF EXISTS `lib_wikilog_search`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikilog_search` ( - `ls_field` varbinary(32) NOT NULL, - `ls_value` varbinary(255) NOT NULL, - `ls_log_id` int(10) unsigned NOT NULL DEFAULT '0', - UNIQUE KEY `ls_field_val` (`ls_field`,`ls_value`,`ls_log_id`), - KEY `ls_log_id` (`ls_log_id`) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikilogging` --- - -DROP TABLE IF EXISTS `lib_wikilogging`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikilogging` ( - `log_id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `log_type` varbinary(32) NOT NULL DEFAULT '', - `log_action` varbinary(32) NOT NULL DEFAULT '', - `log_timestamp` binary(14) NOT NULL DEFAULT '19700101000000', - `log_user` int(10) unsigned NOT NULL DEFAULT '0', - `log_user_text` varbinary(255) NOT NULL DEFAULT '', - `log_namespace` int(11) NOT NULL DEFAULT '0', - `log_title` varbinary(255) NOT NULL DEFAULT '', - `log_page` int(10) unsigned DEFAULT NULL, - `log_comment` varbinary(767) NOT NULL DEFAULT '', - `log_params` blob NOT NULL, - `log_deleted` tinyint(3) unsigned NOT NULL DEFAULT '0', - PRIMARY KEY (`log_id`), - KEY `type_time` (`log_type`,`log_timestamp`), - KEY `user_time` (`log_user`,`log_timestamp`), - KEY `page_time` (`log_namespace`,`log_title`,`log_timestamp`), - KEY `times` (`log_timestamp`), - KEY `log_user_type_time` (`log_user`,`log_type`,`log_timestamp`), - KEY `log_page_id_time` (`log_page`,`log_timestamp`), - KEY `type_action` (`log_type`,`log_action`,`log_timestamp`), - KEY `log_user_text_type_time` (`log_user_text`,`log_type`,`log_timestamp`), - KEY `log_user_text_time` (`log_user_text`,`log_timestamp`) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikimodule_deps` --- - -DROP TABLE IF EXISTS `lib_wikimodule_deps`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikimodule_deps` ( - `md_module` varbinary(255) NOT NULL, - `md_skin` varbinary(32) NOT NULL, - `md_deps` mediumblob NOT NULL, - UNIQUE KEY `md_module_skin` (`md_module`,`md_skin`) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikimsg_resource` --- - -DROP TABLE IF EXISTS `lib_wikimsg_resource`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikimsg_resource` ( - `mr_resource` varbinary(255) NOT NULL, - `mr_lang` varbinary(32) NOT NULL, - `mr_blob` mediumblob NOT NULL, - `mr_timestamp` binary(14) NOT NULL, - UNIQUE KEY `mr_resource_lang` (`mr_resource`,`mr_lang`) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikimsg_resource_links` --- - -DROP TABLE IF EXISTS `lib_wikimsg_resource_links`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikimsg_resource_links` ( - `mrl_resource` varbinary(255) NOT NULL, - `mrl_message` varbinary(255) NOT NULL, - UNIQUE KEY `mrl_message_resource` (`mrl_message`,`mrl_resource`) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikiobjectcache` --- - -DROP TABLE IF EXISTS `lib_wikiobjectcache`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikiobjectcache` ( - `keyname` varbinary(255) NOT NULL DEFAULT '', - `value` mediumblob, - `exptime` datetime DEFAULT NULL, - PRIMARY KEY (`keyname`), - KEY `exptime` (`exptime`) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikioldimage` --- - -DROP TABLE IF EXISTS `lib_wikioldimage`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikioldimage` ( - `oi_name` varbinary(255) NOT NULL DEFAULT '', - `oi_archive_name` varbinary(255) NOT NULL DEFAULT '', - `oi_size` int(10) unsigned NOT NULL DEFAULT '0', - `oi_width` int(11) NOT NULL DEFAULT '0', - `oi_height` int(11) NOT NULL DEFAULT '0', - `oi_bits` int(11) NOT NULL DEFAULT '0', - `oi_description` varbinary(767) NOT NULL, - `oi_user` int(10) unsigned NOT NULL DEFAULT '0', - `oi_user_text` varbinary(255) NOT NULL, - `oi_timestamp` binary(14) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0', - `oi_metadata` mediumblob NOT NULL, - `oi_media_type` enum('UNKNOWN','BITMAP','DRAWING','AUDIO','VIDEO','MULTIMEDIA','OFFICE','TEXT','EXECUTABLE','ARCHIVE') DEFAULT NULL, - `oi_major_mime` enum('unknown','application','audio','image','text','video','message','model','multipart','chemical') NOT NULL DEFAULT 'unknown', - `oi_minor_mime` varbinary(100) NOT NULL DEFAULT 'unknown', - `oi_deleted` tinyint(3) unsigned NOT NULL DEFAULT '0', - `oi_sha1` varbinary(32) NOT NULL DEFAULT '', - KEY `oi_usertext_timestamp` (`oi_user_text`,`oi_timestamp`), - KEY `oi_name_timestamp` (`oi_name`,`oi_timestamp`), - KEY `oi_name_archive_name` (`oi_name`,`oi_archive_name`(14)), - KEY `oi_sha1` (`oi_sha1`(10)) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikipage` --- - -DROP TABLE IF EXISTS `lib_wikipage`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikipage` ( - `page_id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `page_namespace` int(11) NOT NULL, - `page_title` varbinary(255) NOT NULL, - `page_restrictions` tinyblob NOT NULL, - `page_is_redirect` tinyint(3) unsigned NOT NULL DEFAULT '0', - `page_is_new` tinyint(3) unsigned NOT NULL DEFAULT '0', - `page_random` double unsigned NOT NULL, - `page_touched` binary(14) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0', - `page_links_updated` varbinary(14) DEFAULT NULL, - `page_latest` int(10) unsigned NOT NULL, - `page_len` int(10) unsigned NOT NULL, - `page_content_model` varbinary(32) DEFAULT NULL, - `page_lang` varbinary(35) DEFAULT NULL, - PRIMARY KEY (`page_id`), - UNIQUE KEY `name_title` (`page_namespace`,`page_title`), - KEY `page_random` (`page_random`), - KEY `page_len` (`page_len`), - KEY `page_redirect_namespace_len` (`page_is_redirect`,`page_namespace`,`page_len`) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikipage_props` --- - -DROP TABLE IF EXISTS `lib_wikipage_props`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikipage_props` ( - `pp_page` int(11) NOT NULL, - `pp_propname` varbinary(60) NOT NULL, - `pp_value` blob NOT NULL, - `pp_sortkey` float DEFAULT NULL, - UNIQUE KEY `pp_page_propname` (`pp_page`,`pp_propname`), - UNIQUE KEY `pp_propname_page` (`pp_propname`,`pp_page`), - UNIQUE KEY `pp_propname_sortkey_page` (`pp_propname`,`pp_sortkey`,`pp_page`) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikipage_restrictions` --- - -DROP TABLE IF EXISTS `lib_wikipage_restrictions`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikipage_restrictions` ( - `pr_id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `pr_page` int(11) NOT NULL, - `pr_type` varbinary(60) NOT NULL, - `pr_level` varbinary(60) NOT NULL, - `pr_cascade` tinyint(4) NOT NULL, - `pr_user` int(11) DEFAULT NULL, - `pr_expiry` varbinary(14) DEFAULT NULL, - PRIMARY KEY (`pr_id`), - UNIQUE KEY `pr_pagetype` (`pr_page`,`pr_type`), - KEY `pr_typelevel` (`pr_type`,`pr_level`), - KEY `pr_level` (`pr_level`), - KEY `pr_cascade` (`pr_cascade`) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikipagelinks` --- - -DROP TABLE IF EXISTS `lib_wikipagelinks`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikipagelinks` ( - `pl_from` int(10) unsigned NOT NULL DEFAULT '0', - `pl_from_namespace` int(11) NOT NULL DEFAULT '0', - `pl_namespace` int(11) NOT NULL DEFAULT '0', - `pl_title` varbinary(255) NOT NULL DEFAULT '', - UNIQUE KEY `pl_from` (`pl_from`,`pl_namespace`,`pl_title`), - KEY `pl_namespace` (`pl_namespace`,`pl_title`,`pl_from`), - KEY `pl_backlinks_namespace` (`pl_namespace`,`pl_title`,`pl_from_namespace`,`pl_from`) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikiprotected_titles` --- - -DROP TABLE IF EXISTS `lib_wikiprotected_titles`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikiprotected_titles` ( - `pt_namespace` int(11) NOT NULL, - `pt_title` varbinary(255) NOT NULL, - `pt_user` int(10) unsigned NOT NULL, - `pt_reason` varbinary(767) DEFAULT NULL, - `pt_timestamp` binary(14) NOT NULL, - `pt_expiry` varbinary(14) NOT NULL DEFAULT '', - `pt_create_perm` varbinary(60) NOT NULL, - UNIQUE KEY `pt_namespace_title` (`pt_namespace`,`pt_title`), - KEY `pt_timestamp` (`pt_timestamp`) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikiquerycache` --- - -DROP TABLE IF EXISTS `lib_wikiquerycache`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikiquerycache` ( - `qc_type` varbinary(32) NOT NULL, - `qc_value` int(10) unsigned NOT NULL DEFAULT '0', - `qc_namespace` int(11) NOT NULL DEFAULT '0', - `qc_title` varbinary(255) NOT NULL DEFAULT '', - KEY `qc_type` (`qc_type`,`qc_value`) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikiquerycache_info` --- - -DROP TABLE IF EXISTS `lib_wikiquerycache_info`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikiquerycache_info` ( - `qci_type` varbinary(32) NOT NULL DEFAULT '', - `qci_timestamp` binary(14) NOT NULL DEFAULT '19700101000000', - UNIQUE KEY `qci_type` (`qci_type`) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikiquerycachetwo` --- - -DROP TABLE IF EXISTS `lib_wikiquerycachetwo`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikiquerycachetwo` ( - `qcc_type` varbinary(32) NOT NULL, - `qcc_value` int(10) unsigned NOT NULL DEFAULT '0', - `qcc_namespace` int(11) NOT NULL DEFAULT '0', - `qcc_title` varbinary(255) NOT NULL DEFAULT '', - `qcc_namespacetwo` int(11) NOT NULL DEFAULT '0', - `qcc_titletwo` varbinary(255) NOT NULL DEFAULT '', - KEY `qcc_type` (`qcc_type`,`qcc_value`), - KEY `qcc_title` (`qcc_type`,`qcc_namespace`,`qcc_title`), - KEY `qcc_titletwo` (`qcc_type`,`qcc_namespacetwo`,`qcc_titletwo`) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikirecentchanges` --- - -DROP TABLE IF EXISTS `lib_wikirecentchanges`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikirecentchanges` ( - `rc_id` int(11) NOT NULL AUTO_INCREMENT, - `rc_timestamp` varbinary(14) NOT NULL DEFAULT '', - `rc_user` int(10) unsigned NOT NULL DEFAULT '0', - `rc_user_text` varbinary(255) NOT NULL, - `rc_namespace` int(11) NOT NULL DEFAULT '0', - `rc_title` varbinary(255) NOT NULL DEFAULT '', - `rc_comment` varbinary(767) NOT NULL DEFAULT '', - `rc_minor` tinyint(3) unsigned NOT NULL DEFAULT '0', - `rc_bot` tinyint(3) unsigned NOT NULL DEFAULT '0', - `rc_new` tinyint(3) unsigned NOT NULL DEFAULT '0', - `rc_cur_id` int(10) unsigned NOT NULL DEFAULT '0', - `rc_this_oldid` int(10) unsigned NOT NULL DEFAULT '0', - `rc_last_oldid` int(10) unsigned NOT NULL DEFAULT '0', - `rc_type` tinyint(3) unsigned NOT NULL DEFAULT '0', - `rc_source` varbinary(16) NOT NULL DEFAULT '', - `rc_patrolled` tinyint(3) unsigned NOT NULL DEFAULT '0', - `rc_ip` varbinary(40) NOT NULL DEFAULT '', - `rc_old_len` int(11) DEFAULT NULL, - `rc_new_len` int(11) DEFAULT NULL, - `rc_deleted` tinyint(3) unsigned NOT NULL DEFAULT '0', - `rc_logid` int(10) unsigned NOT NULL DEFAULT '0', - `rc_log_type` varbinary(255) DEFAULT NULL, - `rc_log_action` varbinary(255) DEFAULT NULL, - `rc_params` blob, - PRIMARY KEY (`rc_id`), - KEY `rc_timestamp` (`rc_timestamp`), - KEY `rc_namespace_title` (`rc_namespace`,`rc_title`), - KEY `rc_cur_id` (`rc_cur_id`), - KEY `new_name_timestamp` (`rc_new`,`rc_namespace`,`rc_timestamp`), - KEY `rc_ip` (`rc_ip`), - KEY `rc_ns_usertext` (`rc_namespace`,`rc_user_text`), - KEY `rc_user_text` (`rc_user_text`,`rc_timestamp`) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikiredirect` --- - -DROP TABLE IF EXISTS `lib_wikiredirect`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikiredirect` ( - `rd_from` int(10) unsigned NOT NULL DEFAULT '0', - `rd_namespace` int(11) NOT NULL DEFAULT '0', - `rd_title` varbinary(255) NOT NULL DEFAULT '', - `rd_interwiki` varbinary(32) DEFAULT NULL, - `rd_fragment` varbinary(255) DEFAULT NULL, - PRIMARY KEY (`rd_from`), - KEY `rd_ns_title` (`rd_namespace`,`rd_title`,`rd_from`) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikirevision` --- - -DROP TABLE IF EXISTS `lib_wikirevision`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikirevision` ( - `rev_id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `rev_page` int(10) unsigned NOT NULL, - `rev_text_id` int(10) unsigned NOT NULL, - `rev_comment` varbinary(767) NOT NULL, - `rev_user` int(10) unsigned NOT NULL DEFAULT '0', - `rev_user_text` varbinary(255) NOT NULL DEFAULT '', - `rev_timestamp` binary(14) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0', - `rev_minor_edit` tinyint(3) unsigned NOT NULL DEFAULT '0', - `rev_deleted` tinyint(3) unsigned NOT NULL DEFAULT '0', - `rev_len` int(10) unsigned DEFAULT NULL, - `rev_parent_id` int(10) unsigned DEFAULT NULL, - `rev_sha1` varbinary(32) NOT NULL DEFAULT '', - `rev_content_model` varbinary(32) DEFAULT NULL, - `rev_content_format` varbinary(64) DEFAULT NULL, - PRIMARY KEY (`rev_id`), - UNIQUE KEY `rev_page_id` (`rev_page`,`rev_id`), - KEY `rev_timestamp` (`rev_timestamp`), - KEY `page_timestamp` (`rev_page`,`rev_timestamp`), - KEY `user_timestamp` (`rev_user`,`rev_timestamp`), - KEY `usertext_timestamp` (`rev_user_text`,`rev_timestamp`), - KEY `page_user_timestamp` (`rev_page`,`rev_user`,`rev_timestamp`) -) ENGINE=InnoDB DEFAULT CHARSET=binary MAX_ROWS=10000000 AVG_ROW_LENGTH=1024; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikisearchindex` --- - -DROP TABLE IF EXISTS `lib_wikisearchindex`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikisearchindex` ( - `si_page` int(10) unsigned NOT NULL, - `si_title` varchar(255) NOT NULL DEFAULT '', - `si_text` mediumtext NOT NULL, - UNIQUE KEY `si_page` (`si_page`), - FULLTEXT KEY `si_title` (`si_title`), - FULLTEXT KEY `si_text` (`si_text`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikisite_identifiers` --- - -DROP TABLE IF EXISTS `lib_wikisite_identifiers`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikisite_identifiers` ( - `si_site` int(10) unsigned NOT NULL, - `si_type` varbinary(32) NOT NULL, - `si_key` varbinary(32) NOT NULL, - UNIQUE KEY `site_ids_type` (`si_type`,`si_key`), - KEY `site_ids_site` (`si_site`), - KEY `site_ids_key` (`si_key`) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikisite_stats` --- - -DROP TABLE IF EXISTS `lib_wikisite_stats`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikisite_stats` ( - `ss_row_id` int(10) unsigned NOT NULL, - `ss_total_edits` bigint(20) unsigned DEFAULT '0', - `ss_good_articles` bigint(20) unsigned DEFAULT '0', - `ss_total_pages` bigint(20) DEFAULT '-1', - `ss_users` bigint(20) DEFAULT '-1', - `ss_active_users` bigint(20) DEFAULT '-1', - `ss_images` int(11) DEFAULT '0', - UNIQUE KEY `ss_row_id` (`ss_row_id`) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikisites` --- - -DROP TABLE IF EXISTS `lib_wikisites`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikisites` ( - `site_id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `site_global_key` varbinary(32) NOT NULL, - `site_type` varbinary(32) NOT NULL, - `site_group` varbinary(32) NOT NULL, - `site_source` varbinary(32) NOT NULL, - `site_language` varbinary(32) NOT NULL, - `site_protocol` varbinary(32) NOT NULL, - `site_domain` varbinary(255) NOT NULL, - `site_data` blob NOT NULL, - `site_forward` tinyint(1) NOT NULL, - `site_config` blob NOT NULL, - PRIMARY KEY (`site_id`), - UNIQUE KEY `sites_global_key` (`site_global_key`), - KEY `sites_type` (`site_type`), - KEY `sites_group` (`site_group`), - KEY `sites_source` (`site_source`), - KEY `sites_language` (`site_language`), - KEY `sites_protocol` (`site_protocol`), - KEY `sites_domain` (`site_domain`), - KEY `sites_forward` (`site_forward`) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikitag_summary` --- - -DROP TABLE IF EXISTS `lib_wikitag_summary`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikitag_summary` ( - `ts_rc_id` int(11) DEFAULT NULL, - `ts_log_id` int(11) DEFAULT NULL, - `ts_rev_id` int(11) DEFAULT NULL, - `ts_tags` blob NOT NULL, - UNIQUE KEY `tag_summary_rc_id` (`ts_rc_id`), - UNIQUE KEY `tag_summary_log_id` (`ts_log_id`), - UNIQUE KEY `tag_summary_rev_id` (`ts_rev_id`) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikitemplatelinks` --- - -DROP TABLE IF EXISTS `lib_wikitemplatelinks`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikitemplatelinks` ( - `tl_from` int(10) unsigned NOT NULL DEFAULT '0', - `tl_from_namespace` int(11) NOT NULL DEFAULT '0', - `tl_namespace` int(11) NOT NULL DEFAULT '0', - `tl_title` varbinary(255) NOT NULL DEFAULT '', - UNIQUE KEY `tl_from` (`tl_from`,`tl_namespace`,`tl_title`), - KEY `tl_namespace` (`tl_namespace`,`tl_title`,`tl_from`), - KEY `tl_backlinks_namespace` (`tl_namespace`,`tl_title`,`tl_from_namespace`,`tl_from`) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikitext` --- - -DROP TABLE IF EXISTS `lib_wikitext`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikitext` ( - `old_id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `old_text` mediumblob NOT NULL, - `old_flags` tinyblob NOT NULL, - PRIMARY KEY (`old_id`) -) ENGINE=InnoDB DEFAULT CHARSET=binary MAX_ROWS=10000000 AVG_ROW_LENGTH=10240; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikitranscache` --- - -DROP TABLE IF EXISTS `lib_wikitranscache`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikitranscache` ( - `tc_url` varbinary(255) NOT NULL, - `tc_contents` blob, - `tc_time` binary(14) NOT NULL, - UNIQUE KEY `tc_url_idx` (`tc_url`) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikiupdatelog` --- - -DROP TABLE IF EXISTS `lib_wikiupdatelog`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikiupdatelog` ( - `ul_key` varbinary(255) NOT NULL, - `ul_value` blob, - PRIMARY KEY (`ul_key`) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikiuploadstash` --- - -DROP TABLE IF EXISTS `lib_wikiuploadstash`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikiuploadstash` ( - `us_id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `us_user` int(10) unsigned NOT NULL, - `us_key` varbinary(255) NOT NULL, - `us_orig_path` varbinary(255) NOT NULL, - `us_path` varbinary(255) NOT NULL, - `us_source_type` varbinary(50) DEFAULT NULL, - `us_timestamp` varbinary(14) NOT NULL, - `us_status` varbinary(50) NOT NULL, - `us_chunk_inx` int(10) unsigned DEFAULT NULL, - `us_props` blob, - `us_size` int(10) unsigned NOT NULL, - `us_sha1` varbinary(31) NOT NULL, - `us_mime` varbinary(255) DEFAULT NULL, - `us_media_type` enum('UNKNOWN','BITMAP','DRAWING','AUDIO','VIDEO','MULTIMEDIA','OFFICE','TEXT','EXECUTABLE','ARCHIVE') DEFAULT NULL, - `us_image_width` int(10) unsigned DEFAULT NULL, - `us_image_height` int(10) unsigned DEFAULT NULL, - `us_image_bits` smallint(5) unsigned DEFAULT NULL, - PRIMARY KEY (`us_id`), - UNIQUE KEY `us_key` (`us_key`), - KEY `us_user` (`us_user`), - KEY `us_timestamp` (`us_timestamp`) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikiuser` --- - -DROP TABLE IF EXISTS `lib_wikiuser`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikiuser` ( - `user_id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `user_name` varbinary(255) NOT NULL DEFAULT '', - `user_real_name` varbinary(255) NOT NULL DEFAULT '', - `user_password` tinyblob NOT NULL, - `user_newpassword` tinyblob NOT NULL, - `user_newpass_time` binary(14) DEFAULT NULL, - `user_email` tinyblob NOT NULL, - `user_touched` binary(14) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0', - `user_token` binary(32) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0', - `user_email_authenticated` binary(14) DEFAULT NULL, - `user_email_token` binary(32) DEFAULT NULL, - `user_email_token_expires` binary(14) DEFAULT NULL, - `user_registration` binary(14) DEFAULT NULL, - `user_editcount` int(11) DEFAULT NULL, - `user_password_expires` varbinary(14) DEFAULT NULL, - PRIMARY KEY (`user_id`), - UNIQUE KEY `user_name` (`user_name`), - KEY `user_email_token` (`user_email_token`), - KEY `user_email` (`user_email`(50)) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikiuser_former_groups` --- - -DROP TABLE IF EXISTS `lib_wikiuser_former_groups`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikiuser_former_groups` ( - `ufg_user` int(10) unsigned NOT NULL DEFAULT '0', - `ufg_group` varbinary(255) NOT NULL DEFAULT '', - UNIQUE KEY `ufg_user_group` (`ufg_user`,`ufg_group`) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikiuser_groups` --- - -DROP TABLE IF EXISTS `lib_wikiuser_groups`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikiuser_groups` ( - `ug_user` int(10) unsigned NOT NULL DEFAULT '0', - `ug_group` varbinary(255) NOT NULL DEFAULT '', - UNIQUE KEY `ug_user_group` (`ug_user`,`ug_group`), - KEY `ug_group` (`ug_group`) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikiuser_newtalk` --- - -DROP TABLE IF EXISTS `lib_wikiuser_newtalk`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikiuser_newtalk` ( - `user_id` int(10) unsigned NOT NULL DEFAULT '0', - `user_ip` varbinary(40) NOT NULL DEFAULT '', - `user_last_timestamp` varbinary(14) DEFAULT NULL, - KEY `user_id` (`user_id`), - KEY `user_ip` (`user_ip`) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikiuser_properties` --- - -DROP TABLE IF EXISTS `lib_wikiuser_properties`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikiuser_properties` ( - `up_user` int(11) NOT NULL, - `up_property` varbinary(255) NOT NULL, - `up_value` blob, - UNIQUE KEY `user_properties_user_property` (`up_user`,`up_property`), - KEY `user_properties_property` (`up_property`) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikivalid_tag` --- - -DROP TABLE IF EXISTS `lib_wikivalid_tag`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikivalid_tag` ( - `vt_tag` varbinary(255) NOT NULL, - PRIMARY KEY (`vt_tag`) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `lib_wikiwatchlist` --- - -DROP TABLE IF EXISTS `lib_wikiwatchlist`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `lib_wikiwatchlist` ( - `wl_user` int(10) unsigned NOT NULL, - `wl_namespace` int(11) NOT NULL DEFAULT '0', - `wl_title` varbinary(255) NOT NULL DEFAULT '', - `wl_notificationtimestamp` varbinary(14) DEFAULT NULL, - UNIQUE KEY `wl_user` (`wl_user`,`wl_namespace`,`wl_title`), - KEY `namespace_title` (`wl_namespace`,`wl_title`), - KEY `wl_user_notificationtimestamp` (`wl_user`,`wl_notificationtimestamp`) -) ENGINE=InnoDB DEFAULT CHARSET=binary; -/*!40101 SET character_set_client = @saved_cs_client */; -/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; - -/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; -/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; -/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; -/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; -/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; -/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; - --- Dump completed on 2015-12-03 20:20:08 diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiarchive.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiarchive.vb deleted file mode 100644 index e0cf7c8f7aba2dd74d24eaa7ad5bc519c3ee4a84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14160 zcmeHN>rWd;5Z}+0`afLBhnT1#bs&$X5XA(NMj=3XG>udV93BZO7;2leQPqFF?eDka z(d^uv&G{8n30Y_Rc4v2PZ+;jZOJX!b|Z5>eD1bxf+?nIcmunrD)(9aqD ztSf*fXIXd_>fwI47v}NY58vVK0a_o2C-Ln`SU^h_Hi1`X;qR+BnjCh4ZF~uCf%D@i z{{zf;0?t~H>k4GvzXDE~|RI|4qXWF5So#TM%50ROV^7LdQ;Nj0SKw*x;}Sd7v- zi?VM+k5A)_+DmBte>dFi+qVMEZa^{_WZZz<*C6c-l6ise)$j}cZKG!!Z~M`1-iN*L zM~}KDIHLYf!Y5F@AAWFH?u9$y8%Uno;6rN>O+EwV%{b-|vmM}#-?U0v9&JHCOZfK; zA7UXk%7@ZxV?+nP-NMK_uz;#`RG*b}P;bYusSJGOaXgRfqX9`#dZ{F@mRc5SPHyCV zKXSVVi5%j8hF{9179}~0_e;EUeSE<05nwW`k`3VH?=Ez>hJOwG+d=CdbhwVyEh~5x z|98T-eKEFx*;}K>Uk}7z#I^#?Uqqa1k&fHY`RxICxIVgZt#JNNkze{I;-@v&uyP;Z zQx)4_Tu1PO-6%=&b_hK59Pfeu9N$HL`pf44Be>?oQv1>VC_D_0N@?#u^JTQ?_Q?7k zRs)J}50WwY45x|y+)%$_N8M;q7m+Wo;X1rSRsH@7dm7~#WEW@A-su1LdR8GeLfTuf zL0xs#sT^$c+#8x$vz;gl#WIQ&wn6VFP+i?We;Qi&Si+*UcjEY{yIB7L3;kSj)IU@IE^yT&ZJp33nDbef_ z;s<&viCU%;d0rha7bDWD@&6)XS!P}R@`%OgUAQ9J$VfWKGB|?rOxuWUaqJ9q3$s?w zpXLx}He(ET1ntS%sD&BqCd{(>WhpbTe(IDfoTHg%9wAR$!br_)X5hypo7#kAxIZ&n z%@9L#|L)+EU4i8ZAZSI*jhXdLCcl(S-MFUIZ^5S=VV{v~GXoc%=1t%~@8#so`7KMQ z)qcSH4*H7{$q>ymA3KHb?O;~o%6gy0g8U4Y8Ze(mNmAaVg7KiNlGm8`b8K%wzN|4& zR;&lms>JVe)H-^)_`U=cr%rD>7|%LG4PKQMjNj4EJX_o6;*4EH;R|uxOw61_ucRi` zYEeQ)KeH%mdkvIOTEk1B=zmovljW`sxzlQ^a#y5ld|qugnFNo^&?&RCVYo61l$&MP z2Y00!<{4glx}RMiKN5pah8v%|UKdZEipg-M(ZnQpqAwcHb0{^++vwgyXR;`15*&`Q zvWk=_cjKrN0W@M=7(Hao}%$Nlsc7i z_9bmkFptlHuZ3L)C!T`IaKx2qb+_x{%2P2uXIke|e#Tizqxf&dubhnMz4H}5t0pRc z)z{M~-1Nsk9sbe^=JjxxQqYgbTd26TP+7=a^`c5WLuw#WUExmBM#V@@&80?BtcOUP zltS_(ns*+2RYPhNtoU+X!pNDkoUd-7tqF=ZK=&zfN>Z>MPqepCb=d38sQhkY4puy* z!ot(z#U8{{H%?~ZDQ%VW^|WGK%->nTwUcAZg!Aos)|W#2oXn5V$iKYRG85lljHZ2m zS@h{4EROT-X*}e6d}QJK{GROl^c*Oah~F|&gyeZRw z_3mN~@m@v^=j?ysboB3d-k!y`x_i6t-saugf_r=5-X6NQNAB&hd;8wK@xF(r#?!;Q zI=C`aIIuTeOQcm%?1GY^qQKLTrZtFUE}kigoGs<7ozkwDvytI(^Tziyxh~5Mjq9T4vp(~5X`6U9Yw@1U+SPLvTg+2gU(qvJUzsPeUh_QG zmUv)cdI>n;Sdbg_R!ms%6u((lib&+9;!E)5?v-{@*OtbVp5A_p|+D bBaI;JwjN^#eYAHSmMf?I++lbxmJt5|0V?e` diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikicategory.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikicategory.vb deleted file mode 100644 index 2030e8080bd3dc978782be979695b6b0cfb8802d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6598 zcmeI0YfoE85QgV-rT&Lg@&OYyP9dSHsEK00Nm00!OVfM;V=hGjLv525RsHL2pLf^W z-L(xp4yH<_$~r!0cV}m3-kF`5-9P`>wuY@+!Ee(#*0h$L+p$$`&CaZC*Y>L|+ofID z6=Oa64tdUbdUgZVI{!QNJ=9f4cf{P+JZ&Cv>oK=upW9~^*IBoB{W%5imi+|n1+)d+ znyho>=H_!GpMEEfpD53m*`d|tIbof`exR?5#7*Q|;=k)?s?>OH^nPOtuC-v#=_zcBbpsc@SKVxB*kiT(Be;#`Cl3D>9M90K4X!I- zUZ>q-9pQh?*D>n_NjA{+!u7~TExrnS3*~#B)Ix!N+Vm@|=Fqxu*mtnw3&$~xiaLBh zu_w2Vtzg+rkSV~p4(@B9U4YCh{u}lqUptKK&^mB_b7=eaOJBMc@=BLeXVn`hzRlKo zYLD#;u$Mjb$X~oIUm|R=`OQY_2hR#+uNPTC)!sqozgl_OdOZ(&n$XwJ~S zrmbCa%3DYl?3GQ{)_V_2uJKjpYnR@AEV;oR_xrfP_pW_;$C~orp7Uj`{J~+b*wJ=h zH%KwZ9-BAGF}UhoeC6Y(NZTFIXm%v0g5A@=7p29T(`*_~n!ZzV#gM~3b`Q7830Nr7 zPI`qcEVN3Ts`Gvawr|j1@5+!r%#1)`4_mAf&-a`chPly`a;v61(~(h}hk50eOnIdv zGntRcTjYDMoi{dYk$0QlC3aq7Y|z@v_MJn*$Bjjoy@Cfm%pU*e$TYn7%f{LoQA6H& zTg()_>nuPcPf{(SEIXNe?kl6HxsZRvzEsBZ z*}XuITzwFmQs?y02*F4zE2McsXbN-5 zarSp@@CME|uD=e(s_KN6Dlqw*&$*hl!AOt)Yvef3Y`4pNRdy9(lWNAF8CPW!`m2s( z&%P$#i_?_LQr@T60hG52{n z$dZ!kya z-{{-n?5bTA{c&bcw7x>qV=qj^U?Y@^%rK#UM+oww<3csee&>Sj?@-76|VRh~jd z^tEqL zzOr~o6!W|^%76aLIPQVsQNN;kNEFl9I|@VPjMS?pjcLkTYnAua+aq9z67kkT@gY26 OG~AtZLE3w(DE#G=FhMbf+Dj5E>R)er&K*x@ z#=ADVU{|dgS!?fn-tTkojQ{-OKx(ol2A_uXq$w@w$eEO7S1zP0H}YAkawV5?jj;rM z@9=c+Br?FPJ$xU^E6gtIyi=@wj;D)}T}=rSP`ked43J2 z6|@u3q5g01b_RNmlR9L*)E?TXg*PK_F!KYR&_ZthyzpaWO|^BYy6?e`8@i(#HB8@AzJ26BzksA{ZKpfzeT)M_ye8Yx9Oq#jOGH^-pO*tta8 zKvUFHNj1BG_6^#MopbzBs|FF&03ZB)4g2omZ5zDpz}{?gWFA(Tmq%mi5eG=?qiUWQ z($%*C=q@4FR)m!E(3wPqSio5P0KNwk=q-cW>C-y~lJr2i4e35lpgt{Wi4ZpK6X=pS zMh&NX^XRn-OCG4-)nU(LJTHKCHI3a0-WcBv*vDYrKCJJ&^Y(S)eWC?xb?~uyg;+Pv zLzdwq)36tF7PAZK5FLpACHO6I^Bg_&t$FzV4N%r%lkK5JnHA@Aa}n+sBB@ag)}h^3 z&?MvgCBEO{H!Ctr8NHAG?z1tqkP&sGd#2;U?`(GocXc}QeWUCBh{usUe58GomYBp# z+QakE$@VNyCu@8m!Y+DS4gUTdmSX*|j^8dmSMdEUjE&-7RenZH91OG4x>iXJ;bxOT zZqIw^%o2Lyq@2EnoWv*?R~xJ;&ar0eX|~=#EwPyDBek`ASCz$TqB4-H3GFjlU0qa? zIkZ_h<*7X85Kpu(QHeXTjyyvhxQ<<1-7*Ipu+`GOVg+|^VO3SptdA9@0L4|zrgyOp zW`#GMTGCeKUK_N=19&K_En8U{NEGwG5BgV%kj$b3@Z~CU=Ie8`k1(FrjzKNJdaHwK zp^sfji%7@MT1uCGE-k}a&DSH;EcH)L82j|F0WgyJoc(psPw;(%Rh`IEM?-8cfoGmc ze#1B`XV+g=9VhY>RU~(s(|X5RlJtoA&W>q4#9SK0I&HiQZm5^y@)C7tDeD$wxq?LW z)4bA=Cnwn!bjaGcgdK`Y7v~En=Y4E<7kOeXW+7Qz@%=mGjCq=l)akrE4OuP5o*_bQ zmM`Y3qm_Y^)a_c_YtvQ1G^D(X=cYMv(%mmEUHv-^xekF3#AxDQG0WNd(n%EVLz_K7 zwbj*AXPB$(NZ6CkUN+;|Tx!qtZR8K$huDmi&VJ0g@l4(;@HQ*XVKy7_?8@1kV{Z`b z>6lzK!Epn-b%2}XpstnR0et&-xMP;Q22}+!q@}qLt+TrvVb`KJCt*eH>vQHjcgAov zzwe2$@BUBPe^f*- z;kx45aJR)y!fZ{XF*4LaI2vQ(32>Zv28bXF4bCE8}yzJ0-^FuZG^|_q4v?KT14n?cjvgMK-5y zc%5fTY5x% zGW0!+q4@0N>Y7nWLcZ><2i7vYso=@o=CIl5A*;6WQoFeFJ=BA5#qlt%KaLa5a`!R* zG=GGB!;`+P&D>ccv}9>$qjXf+y9R5)bR2o^T-^MV_M~TC!?SG#J4=hkHAi0G_S*Ss zQ$`)nLbqYnYgqJD@np7G73RwSn?1c>W@AzQ7#^Rs9FkWxK6&3u40n$kb@$JG{eOw) HP|o-Z_y=al diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikichange_tag.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikichange_tag.vb deleted file mode 100644 index 34dc302a85db46ad631acce11920bc2af35fb91a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6886 zcmeI0Yfl?T6o${|O8pO8@*yTloI*lWQHZ#wQNU0xP4fv17>a5PwM|-7^{=;m-WgA3 z#>Qf|K&ndBYA-W;X3m`VTxb6JbK6#J!wRlV>sr%}tZgl;+q#`u$FA%*Teb^3w@d!@ z={w|ZbNB5Ustuky_C3^fM|aHFH{2a=&DLjZ*S@qbEb`f~4}&oU?<4yO+H+_NW^2Od z(v8i>Xnnd)+67>mV|w{-5tSgBtLQZA2H(@l6Am!1q$^!VD%82*Ynd_S{i zWB;w7*-elsz<3ed*Fn1gnKhoP_9I_A{Mn&(;Oyqm_U+ff>ZJQ7GM=*LeWYsgbzt9S zyq?<=`wIM}6Wy{Iug?Y6-?Wd6J!bR~Ej?wMvOifwxaRp<;PU*ul?%fzBYM31BO{++ z2W8h$epanR+B?Cr3gjB*vFyBL5xj(9if38u3ae%434sITmV{m2`=E17Pr+Ll)j)L0 zCTXw0a}5pdp+R{|!+ovW)3NilvCq?cow189KHlq$!KMo4ZGwQJSI2!_Bl|R7KI5cs zV8i94mXFDT&aoWfc!`5=m$~Ou!1OM>M?0=YNfG1$7(Y38+q6& z_V5OaP(GUH-Ql{x@0R#C?0w7j9lp3dh;{Rs-9AiQx;>hX#;dY9Vvb0s%sejF%;8bK z2I!KtdSoJv8156dxjR=W+i)tMW9vkPrt|R@dh>a`&8iC09I8lKR21`! z4;gTR=;QP57WgQZsIDofrP_{ORfYO)%bK&$$)Z$CsY)E}B}!evXZGtHiAY*g;yRTX%&^tq1w zLZZ5aX@m(f2Kx$Yen?qT{&$x~{vERYzadS^|L)TG>=EP`XL${D-zSn>VQKA(wz$Ly zRT_#IWv$PzDoD44y{qo6F-LXlODmrsXL;-UC#z36j+5aL*|bBt0lrX$Yn`}jNPYgmS!^5;{Wt&PtuF6N zb$NjOX}`V*a;lECJFKzW{GA=%AG{T7)tbs$(^>09)_Un$lkC}4Ie4A;yc%*yRh{U( zVvF@Hl8aX>X(b=|zg`}r?fcV zfLd8`AbNh7D@QZNg780&HhvZ#BXl-aMvpTtqTHs(SB`2_kK?maj7MqpxarQZx-Qb| z3{`dF8dXBa)wZG5*2!ugJ*!IAS8EXIl+SO<7io?Ue7D`mD>!u+lV+DX9Cendvsj%B zr5+PJO`006Yh$0+N?u!p>^v+@y0*NMu7ZU!vUXKEf%Q@UVX(L7Tc-yeoi!H8<*IYuYw*D&pbz#v#$RlqI=+Z?EL9reKn2apBK$&wKsV|)rc@Y YZiYA#Pev3$!X5sGGnyW_dn*>j-x{+(asU7T diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiexternallinks.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiexternallinks.vb deleted file mode 100644 index 79f79e2e94eebd4974751fc8af265e912013092e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6042 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 diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiimage.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiimage.vb deleted file mode 100644 index c27191b8f158c08f816f1c1843962b07e440023b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12444 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 diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiimagelinks.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiimagelinks.vb deleted file mode 100644 index 32afa2be132e9b60d883519fff065cff0393b629..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5986 zcmeI0ZBN@)6vxl&N&5~SeL<+&P-r_%EI~XZbX5akK-%>cgpe@Q5LjZmRn@-ww%`BW z+}Tb{;|!SgVzQjr*XN#x|9Q0k{Nuptwrdeb(}vczj`gi;Woy`l4eZ8#vu(SwOS|S- z%-ShupEI^kQ0?-2Xg@+-c64X#eZ@K86t|eYL;KpkvP90Vy&vz1`0v=y&|X3t!L5y) zYqvMMNBZgLIewzNVCRs#5oZrMk-cSYgvM?3+v0cRXv(&Sg-1LW$1K+x)UqtH4O_8Q zTejz%tM-h$m#ltgYwm8%Ua%6`K5_#W{l9j*Wnql8yCZmjEXH>Y-NzmB!LaI(+QSP?Zq;}KNfXJjqg zWBUgDxsN43D-DmLZaHn5!Qv4|*!cpaFgF~^_21TJH42SF(@gGm^d`uh^ z)uT99=^^j+h^z>^CS`29EZGDvVVK6VD0Y#RGUy3`6A;))`J?l) zDwQNFwoBykOAgsuL{6SvEq1=9*0r2>-thY#Zh7dIa#o-Gz2>!C%0X_DXRs&X=T{P5 ziBF60J9Ux&A(d^n`DV7n{GIulrE7^iPzT9ZV5!Pn<$u6&MSN}XY%j<6-G`9AWm#?y?ZrDVQQT{`Ffi09L|L{wSz zus(Ho1XsyY9oJErLNTG0H?oypmQ~pyj6mO&zw4*)|8RXpdvZt^U!CwpWu2_ z2hF@bPo{HHwIEBW2~uw?+062|X>t&?X#A|`ry=RtM&l;j`dA|k_FPXoASaH;9D}`w z@KDD2EZ5Xm8B?rh_IWNxa4kL^Yr>nJIh2Ewt9h|@;<7bR`e{NP`7JrvaFdND^%8U4 zXQsQ~-F&A>?=$(GzFT#7OU%gXPaaQSy+fs%7f-z(?xVvd6~8_gqS>AQW17UMW+}ao z>3w3J7)|d}H_{uPz7Z6E3wg)XR%f5yV?wkgvuZUJUlDobYeAs%QR!)X)ZJf{wTQ7A zF*YwE>3#Fy5Z+aTZTT1!&)zgD>0N2ed~WI+z-%8pcX|9}AG~lh(>{2Fck`=wQUlU+ zK-0ae4_#%{cOv!t9VUf=dm9f^l)fIt_(=1QuDavuqTZ2LU(?eJ$|4~bW{=M;&YfZ=}&u@-opxmwt#T5 dGGF}NUe7{~C-0)l?r?^u;jMTCral5i@fR@wvCaSh diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiinterwiki.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiinterwiki.vb deleted file mode 100644 index e44a68b9e1958a6403570c303fd53b2e24a9ee26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6806 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 diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiiwlinks.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiiwlinks.vb deleted file mode 100644 index 19b6f3738eb759ec1a02093e61c0694dba7f6236..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6206 zcmeI0Yfl?T6o${|O8pO8@&OYirX``Os6ku|X%xT|aMOGO2TW?!Hq>6yqNsnp?eorf zy0gBJHDD=`qSfAJ&dfRIJ=fiT|2ed6+p~nDW<6`znYFEHW!trub?w^zvMsx`j$JXA zGWM3U&6(N_RC`>H>}ROUj_#bbFF3oL+AU>m&%U;=EaS6hZw6};?q~KJv>j*@c5A@r z%B{_>k$gHX+5dXv(&ahR4in$Na8UsHItA>-L>3 z*`ht;T(WO@TW0hJTXAnI_MDN#4&WPh(fy@cEe%t+-5L&AQ-P1@jHw zQ}_t~Yo40$3zF=kYsZbqMrS-F_8Q9HIb#b2`gzllSjC~$aoG2;`o-Bi>G(-@LUG`*R>&izoR~7g_tv|Cr;lXpik1 zke4-d%3Hi8*P(9Mdo(>~w=>>!)lTv}`9e5Wd0OX?mo>mo_z1loEBf5ik(H0}fTD5~ z-&JzRZWs7ef?mTswp@H{fRxaSk^DGniIsA=N%vE*5Vj|9RFrfWNgUEC)WUOt_iNBn zl)U3EEE8g-26x@-SaO%ADiZBrS-op!p0)G#l*Wfk54=k>#{Hg<5AA> zUMJuXu*lmzmMLCw3Xe>SY;}G-^Ps!P6jsO5$t#M<6jtXYiX~mhd7`YmjkR82FXjDJ z?p=;c{CJbOVQ=2DpYZL&L1tNX)h&4GY_h<|bJu8gD4L5a?gpl-Wo2?p1N0Tgp`Mj&&gJyU6=M$nl}*)WXtip7lbXHC%1~qGhrxw>VmM&FJxvHc8t@Wc;q{W8yd} z5?MYPeVqIL@Ph21UfM^?Xk;oQPsjeUp`LM1BqHRz7zHRmgH<8agE*DE}~Vp z)aM=&7bk-qgT6=Xp{Vn*uAZ_opjdPDF07Lt`>d})QLKN=x`4Ri#yw8#ZK}rcTxOY5 z{7zqD8{nXBNqv8be(?kS-rufoR0sKi$d2EZ+}i?ux9X8c(dX=trKUwuUz-QWutA>R zo(jkO$}dQ&W70RBzD%a^$9SFUkG>N1pP`69zNRZv1n666oM)~^9+eP3KISvZysvs{ z?{VX(WAF8}-X9;%8|(OD63kvos3tWZW2=Z-%!M2&s?03 zv%xqCo=>D6m1Eh_j#_MTMaVKs+*j1xUxl8_vig^$4q}JSqwD?~guYCFxKb>tj!I9> zLC#Xu9ha-)N*wqq^QY|GV{cW3EVGy4sDDc8)Ah9;M^cDD*=4xniN|6*jI|H35RZLYNXaX%@G9SX%o3}7o%=lfst#7? pE=pz_fpH#wIHY1PoV908&VwQHv+rTWd^p2w_$Kdzxc5y_{0H@{;L-p9 diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikijob.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikijob.vb deleted file mode 100644 index 7e343f8afa984cfec6433392d5825a85e2429a05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10206 zcmeHNTTdHD6h6c6JfxlQNd6yP4fiCn3Tpg)Lzn}Du2E0_s#KW zX7=LvvPPAPR_ooFIWu$a=ge9E^Y@|DWlthp`_h-Dw4@_#Da)>0Nl$L&PuY@d>BwnfF}E*Y%U9y|*^~FfIT4;M`4zBTz(!cD ziG6O&+;9%@<8^7)Bjgok_R$*PzQjI}{EWT{M7v1bc9q`Q7H+@_D{ znYTM&@Dfra2I>8_LG_N=b=P1*eH*n8*93H zvBCMq$Run13N)SEN%F!ak&h>W2w6+Vz%w6bUpn7h!w9v8=MHAn#pLdK3UXAE%a7nA+sL>ylaGLX zi0c9NzaE}fm;%)AAYrK&`UjW5qMk9-PZ zYMVq$Caak6yIVrR+o+JA-4Bwj_(>P`hk zP&us~+H;JhXm+1sSIjz#T1w~dUq)e36s`93XsNn?KVvb-qv#RNF|4{oL5?_1)~K1L z=CE4RyhP^4y02z}>8w-z3A0@b$(kyw_F?X*c_6D)T$eCfJ=J<4bJ->^-Ur?tWGTd; zVQRC7$m~vsD_VMwum-bA&0|>ytqvhx2lI3lRvkxGi1W_0e&sWrU!0lj($yMVoX#2v zqh1oij~mG`-`6I`lKv?51AuHpzkQ$_W0v%)Jy@XoaU#Q4^HZ{4( zv?@VsDQGPRt(Bm)8nj*pt#5rLBQ%*M@G*JC?=>J%4;`c6oy_v-S`SW;|=NB}7gB|tF=N&3pbwKhvk@INw zYY+Xav+?3=>;x9J4GWu;LVw<9y6m^TBu(ocJ*+mkaa+e#2z1| z%K5(#Dj6XZ+WAKZ9YzaFO-p~sDQQzwP ze&5Rc{-jm;W6p}Qd$X*@hqP95pR%Tw-ayOsG%!zThZ$6soKEw)SqmVQVO8@`> diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikil10n_cache.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikil10n_cache.vb deleted file mode 100644 index a68efedda204bf2c5697e9199757bdca60c4e009..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5522 zcmd^@Yfl?T6o${|O8pO0@*yT_oCFf7qISf^CXE6%<&rd?z!*D4F^1SnQ&jb@w|(B3 zo$fBS%UVEMsamafXXebAbKY}Z|M|zRHEr7*SKCI`v91lQXI0y>Qybc){c0O_ZfADE zTEg5h_kcUGE2y^l-LoH|u6nu?_P*jCa*JES-jRK6Us-m}w!KgHIG$bm8QL>w9o#yc zbK&jzIA@bo~CLoG~8!h9E)5VP)jpstM<&6 z?1?RNFWFN@FPQz#R{Utio-^ZYhjSwrJzx9X(lFt)+atJ(=6#QU7mlZBHU!rOn6EKT zI7j$j^48jE=nD9NVFNPNf@w>Qi()L~2PcPdKvg3uisC zNA?Z)%O<+zGr^v#$ltMF*mL4JjQy{CQ~oE9h*zDrRW6;-0Y#l93`gu3^GqgoKEe;m z%2A%Ht}5EC|Lt9VVK9WEOyQ+1@we~_IA;5fZjv_z8@zSybthr_1&gA$J?5<|=TOx*D%*j!54Zui#;JjC#Afux6nE7*l%gFZz z{N6)(UGqa?B1&ADSUp11xFgan7IYUnO>lXIS1YU3c@DYGiP3e|8q94H1;R}TZrBfu zc2ke77x2Cx@47iACcUm~q}T9Q<=0smqlQO?Og;kVG5JJ0uFvVT+O2ENe3`O}H9Fpd zde|*w%Ze@FQOc+PoR1dp3RzaQOgvOqdentF`(qwkz{^AS+yNhXs;ZOhub3Nixl(7X zKqrq<9#pQso2nA(bB2H{@BpvukqbhNap+Q%e24ST(@LyLpVek%j1P?WS)atk;s46N z19I{ht~x7b;o1a>8EvpeK1&HxAumZz|E^JQ;CCXZTvX^UkN z%+lxq`Fe<_x(8q83f)S=8kO zIXk?y;WqGbsY;}dXczxJOgTn<_u!%E2@$LAqn1*<^c5`blO8Shx1mr4yg4hXI!~{l zS=Eg-R8bu3YG#uo-x<6mnzpEyP2>{ChxQv?-tRoMOQUCn(UKo6(wnKa1pGqgjag=1 z{PbP2gA8kA>*ibt7I*%iF;w59zF&RoJU*D;r^=x(34M!}_rZ5`Sn_@K%hAWOKDVCp zCr3nuSdVnkKLb_pv%B-F1H7t%SIvt_e&0Mu#IK^L-EdQV-Z$kaKrYEZckKnEBoMqT5C+fcd{g;uD%kthGqeA!=`-yBO*rV7@#QJnym%L=f z{$(B{RFl-r>i>(7OYaAXX*DX-J9=t16OhQpnJ0cpbY$rZtQG3|ed1HBB;|eO-$v*F td`{9%&koB>>L%NHv9flyv94O#xKz^CdAE<3t2);{O%b8EMhwFCRozOcw=-(HW_Bs|;p3$&NeChXRN z&$U~dUnBW+b=`iVykO;k(U7|fpTvG*ZivJ!rhLx#5V04 zTeDSr!o6l+GkV7Cced_E>-LnH#17#bcG2^NTP+P!xXq8?5t?@${%v-=K(ju$*1^2S zIE9b!zu~O|zaYs0x?Z{&*{IE1Vy~cl$DOrMpkFp!iB%k0mk#>@cHD3~hOeRy?~m>A z)Ngex+W?sajBDV&2igh9?DD%~Kl66Xmt#h!&Trn@8~be}T@QKtcJAi;$UB7Q`y8iL zduU&QzAU0!9^KZL8w+a{Mhtp$d{NC*yCG31$!t$c_V z6qTd+u98Ex>*7}ldfnx*?P8<`T0$_3W-;UvE9J10{#w~Xzb@J;icgtST&K_q(G|uw zj1?>AJcVXL#5CZqXA^tw@m5EsUF@r|zAUqL*&a>h7c47&?;YyO8-4e73vb1kco*UH zDL#sl6b(C0v&o#E5zF)NY9i$ea$M8d2{ZTv~Cq*+; zg$PqUn3mxx#DuRr1DAU?$cU?BbK+K+yEe|2*~`RO3-smJA-k7siLvtkr}F0#o+Z1g z@@fZF!46fd%Ic7HmxukmOkTvSUF>bJaW$dwe}v<{WLN!43*>GM=T-%CX8h5iFP zvO{+A^)Nw`yxfN_xB0F?T}kXClyS}(pWyN1s3c@GRf`@uZ^*9V6>3Ih48ut4Es@Qt zLR7d*l8cY^^d)=Wy7>e6r&#g^UcH=!PN0zFrBNsKE8kV`!+hCcoZ7e4Kyg@dS=(Ds z{Id2N$048l6JlGo-9sATGP}MZ`z%u5EfBZ@0r_ZA4TD@k!!1x%g)gzo>{`Zr8uXmU ze*Z+DD8V$19+1uZu2yGbqe!&)2=lS)yPz&nuddNYz<9JN%JY=!!qoHUW5#>GYOtt9 zCZ~9nP8&54P*0%VwnR7dfu80M*A=Nh`aq;+M{91hLSLyW zDCl>YGv-n_ko$83rKsrSi^}$zkTJn5# z`oZs_H&!#=ln^yO(gR({cBfSJ=x3kLubOyO9j}@dlkB?UNQCoT&~7pcljAe1f0iN} ztDeS3pU%biixJsb#&vnPtVOU(zA8D;ZCswm+$odiE8vNmA&uIsiEu9zbYwq zQNNoUYxDdkmjv~$kpUl_W zP^0c@la(#s!_0z(>XN!!{rlqc>0+>$RHvfm!C&J{z#`5>fBZM`k+rX}n6K`OL?~ZR zX7QK*8lxr%ojIRhY&>Oi=3zui+*3b-Lf!6+NUFUgykKF{{Jph>mjBDV&2igh9yyUxXzi@ZVn`54uE^f~4%zhtf*Tcdqo`>k%!aBu5(|*Xw zdTvkcEAW?3bSY-MKeyP|vJdRNgvSL>`c`Zz{uB}6Q{`@pkN8WDP!fiNk?gdv^C@vK zs~)p+l^*h5hsa8>Yh1>T%aR&+3BwrAS+Ps3ltWJlXs@v8IAnUD)nxU9LqgfycX#*f zTqD|7c-O$A%9w_o;?F(%dMZzG>0wiQD$i9iX?;$vAuhTjU8Q4+eu@C;cgM4``-)$A zzo>CS*3^l?nzKN*EVFlcf+eR|`I-uL>M(!9_dBSIn4LMqdd|+$g!fH&hg~r$*=pXZ zl?l3xOV96+Z-a#Vo0Xh@gisx;USXGNUzOiJpBpgQ=G{0lJN6?u9gXs;>MDGQiN)l= z!}Ym!#^IBJuj1UEznp04K=-FORl0l zR5h1~CV5sJS3K1H+H|if`$M%|B6oa^KLj7iQ4dY%+dW6G4yLt-WNkpFh*IBHM|zyz z=ckAa0eRpFQQ0QTeJ4z?C9nA*@^41-g65HIf>6b{;`xO4MO+dpgSv!j;SjEp6?#Rb zfMQ1Ly^*h_LRHvHm+rs4^bOqa-FgEJQv7*`v|i3jCs1hCDUGJ6-*~THAJ)rctMdHZ z`ArgHuN7?{uks05EuU^9N8PRjpZP7#YT4&zX{OoZSQ^*VMcS&|N$opk8pX|$>uQp> z>7r;BAIF*o+xLhR#k|j(I``^}asJGbQ9cWOe)|cjLv7GZ>9eGmk=`0rfqVH1Vj;BsGxGY@rFb#02t@Ipj|_iD)MI zi1*{CRrj>Q?5VEgar8Ai)TeoI)Vb>r9ctA1`dmoncm9v1pPY2Q(R@BnOlsl^`_y}M zV$zv=_LzLjjHX=BxgbPg9G%rDvJx`MXMdoKHIy5zt&u~7rjuF{$dK{BpucrZP8y(h@Qz^A*(HM z_c?H9>w&AZ`d>%0#7kz7zB@gKnN0uor1(?Ql;V&U*oBb^%Rp$(0XCsP)5giO5`IT|HSP}NZ}s~uS6CNw=N9tdywN>Go$tr zTA!cEv%g-#`)D_&#O*hd4LBKLew-psW`CIh~ac8(%%55SWXv=YPP z6p-ZQ6SS|vDO$)G{>jG#cCv+)`M(b-uH&hJr#-wqfD|`j-`0kkc;1sAOV*@spcQl7 z&xY^x8eQ}B6*$bos)$2&#Wm3X&aAs`aG?g4tz_kCEoJrJ#kLgKLJgO+#a= z(l#w`WFGQR4d;_y<#b;g?d{!KvROXAxPjBU;(@WBFZeCu_Y8dJTxA}V(@C8PeH&M$ zE?HfkuDs4o^ij5{@x6CJ7d`daz(O1~MV1*$OD(j_GLB*Y^zGIo7SS{>ub_cd^|f49 zq=_E(0=midj*JgF%CYk@yqQ5T1EH6;o{N&{!lNjkW(~eo{8!Ak$FQzE8n)rtJ|MO? z@c#+;{sJ$=|4Gmh`q3vj-bkSjfwT2{v=Qqm$OnHGg*e1KZf=F{W1RYx@|ApR%wI_% zMqNoYwV0+n8;z+`%ZlH}-n5)*$EPe`v!1zpE|shDiS*qhJ%x>Vs?lyV>J%f#amMaq zzAIde&9IzsbjQ*3X3Y&p)I+~=nUuFte=tXLII0fB8ju|o^QB%XW!Ec~R2DYIEl*~C z22Kynyz9Nm#G0~%|1PdeR0k{Qi#^?{{A|3L&6t;h9A!M&?aeuPHtY2%EUPgVkuS5d zE2>o%5qE42*+bRSMFSwvq4HJUsywAfzMnEPrpUownsF1RISL7~qtLYi zN-sevb+kGqih)wI0CtRNl_+vbZRPqgr6LHmHNjtSqPD{fF~4S)TV@7wX_4Vj#~!8<6@wbdRTQli2b62m7Ai%+6foR5wunHiy#FaO8ug+N$_LQ)xBh&{Xc! z@r;}&y~FrZe;oHccP42@Y*I<#u zQtFSZMxTBc5Yx8g(G^Ds-3_)d&Lg@x!U$vGoUe3ndC|r~J74OcUF5Ma&ckM5{3v9h zod&i*Zo^XCpGj#?Jd`FaN#MlcJfwiU`Hj%NyMq{lJX8)ErLhyBaHYT($!QQ^_lyEbHXWY33I3RwS8sjI{Wr^HYeh@XTKslMm9oQ zmvt`P-25EvPsh;dljJ!wr#!`+L)MAxHDfV5?y|pauCbG;S_=zLcrT54tqr7QS!A2` z#MbPwt#hu~_dGpg^atB;PaF1>k;o2NH)zrCOE+5z8?av3Nef%YZbUxnaTnPeB;RvpJrv}>H64-F99m7yN~6yY9I375N<`-b$yK;7bjaFCKR)XE{|Shl^lM;po5o%Q5NwI;~yOwis^~F zyJGGd+<#`PylvrGMNZ4w_;t^|Tc|g7Y@4voe4XoPEvGSML*&@qXOD{3GyHqOb(!6@ z+4)PdQ`@2WitAhE&BH=0P`r2xDsyEz*dOMm(yKX4WMh+6U$Cz7PMzNg#|2Tm&ASF; zyTpm`6tX+^6HiAoM%S?`^~C+K@8*~(vU1s6P=n9Pz>9K9jd=69ehS(#8Amg&k7>2q zt*cSFTw28&UB|5fe)IXXVk=8#tQD9c->Tk8i)zn++EGVC$aO35-)GoE5E6@3!Nh=( zlUM!F*vIc#aE*8Jz z`GogHWFlffIeJ7+iqWdILZ+@2a7<<8kzyVbvcg}xIp@9d`<1;y|CJkWv4;e&s?LmZ zo;pE7-9}~B$Na{7RogILC1!oLk?*uZ)^kPci+hWRZh3Z_l~ivk?6thLA=~`dEDig* z8!JP`4_1C@zlHS|S@VG0J%O=NE-IFZ6CYbXYJJx+gr(}#Jok%nrufcFs_RjoosSmJ zc~x;qOUCy%>WKV4yWAb1Z3F|ggO;l`M{xXfrZL!ij1EPRk6d*swVA~8+&r)41g&Ly zI&~$Xdgi+j#cp^L7^Pa9jt0+kTo3V@nA&qSU0r2`F7DZq zF}fSfa*JyGyqub?`(a)6R|%S@=vMYlGjNp^_0NL(nS?BtWqgPfVO;Dv($V0Ve9sZ8 z*maAt`^$GaW$;ktQunL>M0~EjA3Ww&vefb{bJNj)M>-Oi`6UsO&oAMO?*Q%-qkOd~ z%bI@|r8XG#XMN3mVwBC6w?`<&?4KF9Jl_`Qt`NuR7o;LMoZ)TwnvKEJGfonJ15>1W AlK=n! diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikimsg_resource.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikimsg_resource.vb deleted file mode 100644 index 4b40bf2f38cc6efae43e2dd2a1af056862eac790..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6232 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 diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiobjectcache.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiobjectcache.vb deleted file mode 100644 index fae26a2dfc39434121a8126dd63bd4aae201ef77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5578 zcmd^@Yi}Ay6o${|O8pO8=R+WBNb59G-_C7pSN6enZDJR8 z$-6mYXPhI>xqW2T0l&xg6SFIBUZ1tkILDllHfQbBzO*ka-RHnwFV-Ynd-e-+FPNJk zt;;@_Zf(3q`so-td7637$|+AX&LR6G_L8v~8h6oehu@i-Q?V8np7350W2p^h%d*6_ z?OWTlNA{R=)4t*938UZJmV4T=?-)s}&Avg3uFu_SSvY66nlxL6a7?UbqqYsK;GmubBB8XVybu{(aMtSk<9*;jo|L$EQwWc&pjr z{-Hg*_FV(d9)e5)#&vMt2kiu8_V{hu&)gmJ=9s6B!c3qs*K};xS5nUg>#7YrE?*v3Cv$ z#j{4mfD&wf!cpdJ3$H3_T6T(0_ql7J(;hz7v)+guU$59naz|L{chPQr_E4mqF)p94 zS~VckT!PH`Kl=5NBOisayaqwHyu3CzJ||l1TwkN>3v}1Dv;v9p3Vp)-4*M_bB^k@3 z

    Ai*95s|=%DOV<2vS;fZ-1BmXX}GADyP2*EJAIeR4M({Cwo(xw&pesKRRH;p;L> z6|VV=KZTVu@{U$4k7>8+jcZb|j9P)$UB}V^e)Ex1vW+$K)&@M1Z^c?kQ3V=ML25_{ z8E=Ew@_DumLW&2~v4q+=a`RP1H1_!{xy4MeN*Pmi;dUyJujMHU^1?l0Xkc&IL-i=Z znppQX`%e~CTU|j~$Hn5eJfHABk4!=~QKlY|A7)6^ULjvsb2z4R<&ij>2~}Y)O_V=; zHhY2Wk8Zrh{&PHf#a^SxODD`wzfmGrsFV4f_o}yHyh6PCoF%_$hpgA~mdAP}M72D+ zgKTB85_%S~GR>sH!oaSe-)-rg?sQX~mvVyCA|2W4%Bh&^xIQA(dp{C;qvQICm&C$8 zy+aeNB<;R^qMQ4}^$_YMKGE4_pEli7nI25l!K3FhXUGvn(bE@58y)Io+h!sB;+6kj z1l6~wzgKr!gn!v}%KG|Z&^Kq1p7s?zQj?YHi&u5CVtmS}+hffsoN2(BqBdvO6|*#a z-Q=yTWh~6co`0K0QNBy{Gkj#}8*x2EAG=7*BYF>Ctj?%ugl4Pdq5D#sx-6yt2~-*P zsHbE1Ef%^9{d+J6arFhd8!Td9wR2Uj%huDduQL1`$x~!2tEQQ;!jAf0SC23!3uT!Z z7%gPuIv!W;VD+-@Sxw?Tp@`+G9qJqPpMuYNcVqdgT9UV1BWZ7-r{xYrJ@X{$o_sY6 z^*f7x3A?giQ{|<8=x&h}D=uM`uibZvZCo#|=hc4+-BYmbFFKjK#5S8(|2<^$k+Ob{ axIS+N{-OtZ^M`A48%Q`HREr{i*DQi diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikioldimage.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikioldimage.vb deleted file mode 100644 index 90ac918d8b408e6693ddd0bde27e622d54a6a133..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13522 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 WK8}X7d`3`z`Q93I&3+e2i2ndV;AlAj diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikipage_props.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikipage_props.vb deleted file mode 100644 index a4a506e778631360e1b9a85ddd519ff46d0f2a70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6448 zcmeI0TTdHD6vxkVrGAGkd8mmRrw~$A)I{9VC}1d;rg_2!Op0PIwM|-7^{co2{bxL# z8QXvtaMg!uwf4^JnKS47&vo{%KX+`+Hm%^=vW_+F$lBJjs%_Y*o!gcDW-E4KXLiZE z9&?A>ZSJ03L$%58uKfUY)zKZZ_BHo8x489K+p*8>GmHCd+WY>Rg8w7?8QL>w3%E7e z=hCgs*GN8HCyt*ePg&Vv)a5>5pTd4*u8YJ?u9Q0N5ehdi(}4p6>4c#*rLtY ztUb3E+_UyIqnFHnYx8b2Z*$BPw#~kQi~irZ)zYxXZVyLr2hC3${zq^;MYD5oT?O+c z#y$2C{#QJ;*e^&@N7pkqBO4v@RMCTK(@R@qK18! z?e*NA+85w2o9LF$czZ5F-Ly}vKZe5*BmK%Z<$v;sa4qn($R%HEvXf8}h87>B|}dLG{E%|4FlQ@<`mmKXlJ;l z8P~C)Vx(^SSa8F>x`m6k)Hx{1>%{GoLsgkUv+|{ieS@{iaTb?0_;{X&JYV4LWn@z> zP%M6g$F-A8(R2Y{dBZBGuH&Q9@OEAI!Ql;AZQt49Ex+$sKZs-W+7ye*5M2W_cgP|%&U9lh%GID5@QCy!EhqPqJy72fws5dm4?30~Qv4*Ggupi3_KHv6kKN)B~h zu}@OI{lIvS_rtgpWINTuHubR!SM3!lVr>Y;NGogP6+@T`c}a5mPrvXM-q&uv&i*~D zdBtAs%tm`qNb*X*Q~ZVZ>Sw}y)nVMDTFkk1Q?4R;8*0DQg2OoEQWnIwth<3U!sR~t z<{5L6dM|^7>YKcEd`)xtg2v0BtbV2fxAI!Yx*PO;h&}J4SCrs!G|H<<&?@AO;Cnaw z>z5<_)b~9wU@KW(-z#?E(59Nst?~Gk`MYEgTA})P@eF)Nj-0^Pw~pt z>ab3F)LFj;MVbCK_EMpTQErN}d5ox+h;O5(<@34a)D`JGxdcw?0d;z*a2ooZp7sy^ z#ZjY~Y&4sVUbxXTrwCPEkGZc)AqSVmTqo#lBwC`Dt(8JOU->`o^3L&nUFQa!YIQ0r zsu032`OAL)6i;a>5-DYx9Xw5p>9F5mrtow=+V$P#Zi~&i%rL&iUOM_= zi#@?FM%R&;VbcC-%Y7^9xZJGobn2DXsdMMMcfP__W^$ z`>Kld;M{??YDugIRd&=FUEllk{UME!5L>cH-r1!yxmV}?PQYVOt5n9kr!0esYN^f} z>cV|KpA06WYHNys_xE%r$0WXq{v79W|NS@dlUH2gRlZ}HB!YRpyN_Q*y#8Al?t|cQ wze}4Wf@yZ1G=355@P#s+$$fi#f4w<7hAa`k2q-^3wCb}T*JysNd17$b~!vFvP diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikipage_restrictions.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikipage_restrictions.vb deleted file mode 100644 index 305361a7775c1e4eb36faf40546a800f3692bcf5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7652 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 EZ!oh|B>(^b diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiprotected_titles.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiprotected_titles.vb deleted file mode 100644 index e92c099554c395694ec181bf1a89cfcfe1a62acd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8020 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 diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikirecentchanges.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikirecentchanges.vb deleted file mode 100644 index 0e43ed3e76cb4cf042938559de18704263aa2f77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17124 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 K*6AItDEMQ3+5mNh4J<4!5F$N$n*~ROPR?{k|C= z&CKrXvbNVDt&p|0XXnhE%bfe}KY#B?OI}KX&zAJ1D+h8WM=~cHawNj0U)lfhUnyxHkaBUC_6N?}34tlTC2g#yocncU=cG zIZNb;%*%q@lSNz$@*PGGaQBfco6)k|$DKsBfme6o?+de<9HziFxdeB>`LU7z0d_nE zXFbSu9WrlXoB|K!e~Eubz^9aKg4c6%hi7zve~G*Xp0mhNG5@dn~?hkq@6%A&+y%nU+`}iGrJh=8@+ie9r<%eT_3c* z$A6v_dEJ*E0zCKRj(h{z^E`M_U+h^v!J01C9?2p0JHUwF)Jy6fwLw3t`1b@K>RA^O zq=YEHK2{9yo90&Dfeuuqqx!C-gC}&kKZ z-ufz>3R@RWjSp4$Ros45@y~8_&Q*dPWF^eY=#yi+gc_-k~3$WzrWTRK-(D^L2YE`g;{Fb#?QFXCmd{dt7?aTRN|-kCxCu~pVKWJ4UR zViRQ5X9k`%B=42gNXvksR`Gk8@UxPWpo8Tp_>qXxq|8YNeI<42BjVN(zIne1 z8MFUDX|Y#8-LeszvzwSn@qGz8&VsXRV?BEi4OlR{8-HM)HMriNGdrfp|L>c1Gsdp% z*^(OnWb-oeIUtQZ^9|5KiH#!(^?)jk>*h=8se?Bck(dj7DIA7W)xl?2an`}-8g%vo zI!k|3T_;02l(RKh0eNmLE@Rz*I{3`$?4t2xqu6DPGUa*_?G1YmUk0xsO?7Z-dmPH0W@sACryJ!h z?mD<&TxIUyIw{w~QJ#)ExYOQ^@-#^nGoJTU3Y42keP*_6<9bBOV|7g&kE3D=rp2S* znYu16eHx1RyoD;ihm0}_Dx4}ckFAqz1;(7HkIK?MbF+0!zGkxC--qN=EIu&}D<50M zu$RYu31gpE+2=AlxYq^6TcG<4`4}nK1WXGYw9!9Mx@qnskArn~ z7e3vo_H?ee_u@Zo3iD(3VEoxI$IQ-Z4pVgB^k)=+55#7dKILv<@?CX`SiO9onrr$&srOJD)bk6O`puup~Q^lgV91TS`0?_gVBRv zv=odU2BSy8==)&A-d9LXNDrUCbAA@xF7|?~M%!+Qb_Yha5k9NjhE$s9u(U?9l5pjX zon-a##!hHo{}(%9Uz_i3@ZEz^Vu`Fdt=F<% zqduRo2am80k1#5){<^9h>f0(=?p8D2+0ASBY#;nn!<>(FFxmKOA)P;Wkl9#kA)T*x zkS^|87^m5J7(WJEXcr+IbSxfQXcs{obUZd&co$n6jtWmY_QRs9YoE^{T$WrDk@%PyeW3>n;m`VIbh^F z8}n*C=f_vr}x_@nU6jNd-NOov&_boh={06yR9OZ=vvq$yv~7RJ+OmHqZ@d1iTB?7q*e=VUd@KB%xH}%q4eRpC2jkDg15dQ*e>*IR> diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikisearchindex.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikisearchindex.vb deleted file mode 100644 index bce9b690ee83c1a63aaa33c39e61cca3bca76f3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5646 zcmd^@U2hsk6o$`rrT&Mhb5R^Mq;;CAav?Icacadjt}*$z3It;p1v@UR(?n7KdfVrn zVY0g{G;C~oQ>}K{nLTsPocDYVfB$uCO*=5h)v~emtZyS5Sk?AzXqR?v?`+%N*o9s3 zEn)5z_lP^O_fQ@1Y}>C;S3TV+Yaer8a*JES+Od6UUsx*Vz+Oz(IDY%~8?+bDI=JC zI6;o^zvgX#yttD?biMF1vQeKmXV0K~&7HMSr2pD! z-M72;6&8?HbjxdkMYqtPXKz_`3fDd(J>{M9K>0+x>bz}nNs=TAC!siIg?5n?R^G)E zmfgqlT(u9`?+o8^=rt>2+s8=*#DroN(dE%|R>|Qf47zAJL`QkZIr?^)6XFT9LUo<- zHDgho^D9Ihk<(%i`t4xXefwr1UwLcdJy)FHdW<6~6=LWimt@Rxba;0YUuk#=k|m$} zH#zc<#P44|e~MhiuxzRMqJ$!^4!hVRXLUTrPk6py-8_UUb7t4)>~438kF56GBR0!5 zk59@sJO87muS0fjMIy5G8PRNE@F*_$|wHsH;a(TXrNA<}2s>?CgS8Q#`Y`TWO z%C4%#;-b1Zpsv;75cBXFu^F=e5eP|=s;i@-k379>taJi}x}b`W&bIx|cXa`AzUnbf><6l% zB&_)y9;_&NSsNB{$nVk--?Hz%?>5dqL*F!qMU8Kw*;71jjOT?q9kdJeqnv)}uA+u* z(3T}+{qk0g73MZ{Ji)fAR*Jf1?G@!O(&i4?Tpg6l#l=nN43EZe!u`%}-lJ>TizIXiexS)H@%%4r%;az!oc84VZ3VW3GPDsqXrvP+&2 zP9e&4DqarP2R@QqNDSBX%*0xb59EFSUP zpPl>fG3tQO>9o&SB|_OucT;>)#A0q=KI#@{qUek1*-f4r@Ax&IBPZY%{7Mx60L314 AH~;_u diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikisite_identifiers.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikisite_identifiers.vb deleted file mode 100644 index 431bd0e031494ce5b0cc859341acd285997f4b03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5794 zcmeI0TTdHT5Xa}aQoqBNJk&&q(?D8P)Q&K>GzwtKrD>k9130x}47HaesOnd5`}?2c zVRtbuUM><3)oQ(a&d!-R^PlVSKYwrAs%==p)wF@N?ZA3=WK~-LYSwt_He8*1qEIbBkNb+JSv-Us)z+!`_Y7Bs>r7cW95HP2ko> z&S_X%T%-Nz>I8nG?6PveXvp0`PGY|@H)O|c_P50EFwj(O6AgFyE{;X6D^N?b#1`$j z&Dk@X=bp3g7=6#|kG2p-3-*GU#I}&@T=aY$R!hSaX}3pk8_hcb{{uL7(X0=yD`4JW zoFYf~pYe8tJm1MCx*mra+30|`#NI;rkvnf8r~lS;B~}Y)9S7_O*zslH=wC(c?@#UN z#BVEDwh1x`7&pLu9kdgWS>t!re&cP2FFTA{!EfH%zI`6;P8O0b`#j}2eMVgn=<+^b zcP;y=AorO)wr{Y7?4w)$6K%T)b=y9%?htMVjPxr%ja=P-605UnkxPEpMv4&A9tNx! z@=V88KE@}e-N*D?wGUacgO?@fby>!8h?oZ03C}#XH^DKnN&!jX(L&#D&^lV7#hhY3 zg;w~^GCpH0st-JcZ9+6P*^Qoi*m~WbOysK!p;#8*PXTM?j(&JMN5(v{B^lFm{0O)6 zJK(p6%-3YCy@2f-e&4Z=h)3p+@}ayAl?%kO*(VoszPH&c5cw|&9s@!tlaS4p<>&jz zbMv{`f~|!8DoDHn3+2c<&py`)8E1)aE6lAC)3UQHzHC1;+8)JRJyZg>=KaLS^-(<@ zH`C^=8WE>zF)9Dm$Oy464alTJvZGd9o|ClNtt)4_ykEr{ZO~Vp_S|2wnbO&H22Yih zRi(vG74wLSSBIBp=oun3)`cywl1$ZI`9d$ytLka4OjciDjXX_tUlr|cYG>?1GGt_# zM|kTIxhq!E1igw{Y$5+-)Nd%JvkpXg>I36lzK>&+5ErT}Ju>1Du9BsUs;f4JXhth5 z6?3lel@&ITlk$58&tAbUyQ3^x8TDF!@Le5&&sPJMsr^7*6sMVxyQAIIvE;2bu5WQS z3Gpq9uCp8IUtTZIjINg?b}u@NH(+*tYkikM-~FB@|;NdWU)gQHv(_ zWUEB{ARRYRSU&OPeY%lKt}oob3sQaX#@%rD>4pD8wUUU09=e6gPM zvV^#bxxne%J0n%}zPt0bJ$!8iUn`4Ge%(z`@e`tJnswHBM6QnCJQ{h5B3dyzb>_Yv z|M?Kf*Wv#nP>th1IfrL?AYbpB;Y2(Lc~R$U)%Go2Z}-z|<{@AsJD=hwvHssDI>kCO?kNuwpFPky44!_! jQIyY&x54Hvy=!uI@_5Zojfzyi{i~m4hhP}}OBDYCR$!JN diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikisite_stats.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikisite_stats.vb deleted file mode 100644 index f39bb916b59f2194af3f7e4613c18c149da31980..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7858 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 diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikitag_summary.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikitag_summary.vb deleted file mode 100644 index 6cede894ca40246d5361902178ccb91b37f5bd49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6136 zcmeI0T~i}P6o${WRsM&Oy)bOKSz%Yp!eon&gmr6yAQ0ERA_2lm83HB&r7Zut`n=s~ zdu9@3rbyHaYig3|p3~>_dCzChAHN@1({?T4YT3}bc4~d=S=Dyz!UlF@zu1;t*`;0c zZp_>Xcb|J~cTnx}duZQ6U3GM4tbNTr;1;(rYlrr+ePmJ2uDzeEN%%jtAE3R2Hi26g zIoED&c8&I@>)i1ZOKja% zY}KCI3+`3>oY5D|er0QJv}P}vNo*gvfs6j%xYg2djI_ric!1{T4*yd)UZB|kTpM7% z!FY@u;eW$Z4|!oHd+2)UW@MvNo)UWp<&WHH3kCX5O;=(yht{RTeuy1kIga72sKfI! zdv@=;29|AsOajIm;JyRe3CL{o+qCa_I^@kEqmJ{N6Fat_C%YT7-w%vswYZOteVvi^ z+@9JeSU^_MEwAwwU1w$2ZqfJ*E~kw2EANyC$|u5A=V_fw-qr<2;UpA?PI`~${K}_z zLeYH`=c;|ke&_gBf?jzUTP{vEKujp65iO2hVwDVj!k~jpp)*A9WAHg+CgEQwRlsz` zmKisYx{VdvSWywP=bm=#vwQjV@ljcDejJBb<#w(dy_b!g#wU2k6)_~;S`X;hhUN{q zt?g{_mf!cR6OyyMHjiy(Cg#gCuq-Plk9m}oeKQYPd22*j**D7>50Ni5LGLyADf`y> zA8=jaVVk_m``MO#gV!BQ;=1l?%)rIz-GXB9;mk1|n?*BXji}CMv}|Ur5rw|u4aw0X z@~&3o=OnH6=$d?hq~aB&Nr@>|>N)KQKPx{WLNOxmJ~`Pc|OGRkA|8s!ib-X=RaoHW#i!UwgUutD?V!`(4H= zM~u~9RVJO=Pe@mP5$3B7)3JR?y%oPDR~x+5#64}ZX}$BiN{DJ%bO-%~M0pL<87=4- zJS^;ak-DViKVBQfc&KgvhBj&WkJrZ6L3ytCy*;cvCU4x}Q~i=&x5*0CWo3t=eiq~h zO*Zju^>h`u__%H2b!YHP$8V8{_F2H^7vCkGlbzIA`zW2x2+BlRN_D9^7iHtx$LB5F zL@gTMkE(<9`|R@6f?MBZ64g(2y9Y$*@q}a0_YfY6cAsO^S=J^LuUy>?>!imX>swHi z>mp}$jmipPJ{=t$XYueR?P=LJ!D=0>q%+$F7^%b338BJ?<5zn8-}sjtjaD+F)y(LH z8!gi#sDgUDeRT@A zLZ7GaSYvFY4oy$JNrq8oPn=Cxoj4o(?w>?XcE84N zeAlo@?6P&|?>r|W@?S@<4R&Xf9%+%-rE}@xkc+s-uW!YD@&4QvVn3dp74_i`Z^Jo$ K1g72_Me!$YPRD=% diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikitemplatelinks.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikitemplatelinks.vb deleted file mode 100644 index 2d4a20d8a20d60edaa1bd24ca562111a9c289b8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6974 zcmeI1Yfl?T6o${|O8pO8@&OYirjQU-)FAF@6tF3mruhU0>=ebA)HZ3OsDHif^UioW zyWVy27K2);S}oq0IWyo+nyyn4eMFc&aGoDtJhHet0U zd_K6j**TI=Pus00%1dVUX!Uv9@JZ|k`ua%RM7|CF_8m>t>g@1{ajlqLbqi|kEU`6P zutl4$C^(5&k!Pwcr;dsk7HB*CQRB^Oe{eDBts@H5BM)O;2Jqht`$DzK0%H-HKsU)ZzQ7 zJsmr?g=QNdlYsF$xbK2?0x~=N-L@b3I%MRK)~U0bGdrT1i$Yy9mz;Uu!(FxF%Q%D{<{HqtEXk zH}f&pFsU4quPQmD!#4Jnu&+@bo6c9(K}|@eQ7wmHVwDVr!r>IY9roE~*YfI9`h@ua zS|K|}`-ZlB=N-R7HNk@#$f4h3^t;Q~7P9T2Z?!ct%iLLeax1?R)*Q9gtPBfIhP!io zC_eI2VcK$7esq?l7%BepstOTgiATszva2E#kD2+3D0}QI;x&KYvRaWYD+Rqz{^~2j zB#x$cGFPC>QNBg1$>xGwMdQWXVsEs|NhCOPKKwovH^$l5bfhX?y;%Bm{FLsu(cw$9 zsBE;tZhLU zRYDe=AvXBjyAMj@rrIWE@y^CTrWE<-KrQdOmTVLFwGukj)p(#9h!v_+QibxOjH zvhwf4|9V)>salNnoucDA+DDA%(MiZG%HADvPoGuAE9CH64$DX@&1AEikQM%tKO(brxTF1pUWpii1}qTp__(%Bw8nfZkN(UcIN-un1(h~ z+v-k0r`a-ok)EfDK(`FKrz-0gZ>Xi^l{!lY3y&VMlCstWkM>b0&=q-tpW!V!KO^lM zp3+I_+ppVo{@lf# zyavZhury{yUXB-zGOzPTSYdIVi?J?UIX2wAR?p=Q-K?rg+@ZGYx|^#|ck8}&fK8}k z)>ms7MU`EPGElm{41AT(2CUp;ZRNU{uc~m=4X3JS-4dn!GWfGJn5}7JPae-W7LoIH zK#(S&G`iQcSzr$7Cb)Sf4 z^YbLu7f}AMVR{Ur7sJ}~J`qi4g@?v7+H}xT?3uQekB__|*2LQuMVau1(K@=w{*Ofz Fe*%t8V-WxV diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikitext.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikitext.vb deleted file mode 100644 index 671c9f4eb68c99a0e16b7a27c0973b39f0a0909b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5340 zcmds*Yi}Ay6o${|O8pO8=RG~<`sp}z{6slm<(Rh#=P7a$d&SrUjl1Z#&2{2viq^owHuK_`=URnYmL;}jk8Q&q z+7r$Vd&Ju}jDBaE?rqb)W+br|aswCLpS#tvFh$z!5qyc|rw;!f90yo70@o^-S9nj6 zBm6IU>LV{`(!ka;H=;f2@s!vhls|LEI~3@@G#!bR99m}%`!W0Y)Nu^6q7Kgw?7`f* zDm&W*nFNe0;9dvq1Y~x(*6cM;`^@a~)^UDwY)AI%R6E)69&0-GeUAS_yKi5Bx%NS) z{KW6!7CLwB9qUfu)8kE7`J;SJUJ#BlPg@-FuP(?58Oa;7V!}P0S$UtmUsjLhxk?Z1 z*eTwWVApjSJ1#ORU?kjP3>V>*SRsd)tnT11Lx;<#A}878>GJgU)>8cIIZWb5>B%AnX|uUW$q)6bK-EDxhk`}4yC$7 zZpVIbGQ5YD(NVg}n8EZ>ZvFovKft>QQD*$aZVQpwF=_Fp)2-h9$(9e0{=^%;mqyocvI=QdQv7 z)Ei&9GfRc^J$$uKJa2#zBXu8gPD};C3*~Vd)8*XI*$S| ztDfc;=2dyac+qi8?OS3|oYq_<`#qI5@s7@76kDK(*Iw7rMTmV25+U0LG;U+pHkK+w z%R861Bxn$<*#$xgt@&7( zjXQa8o>F~~dhLAl_(*sMH&KhmcRaqrOV2JEH{mv9kEB5Zni_H5rs@Q}yie}KLviIJ zS-neXO7S$e&T~;S-m2kup6^Uazk|vFn4C=O v`CVcXXRn(OQPz!pWHCZ9rB*KQNAq({h{x<3Ns$=NFdM$mCgA2hNfdtp#WO%P diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikitranscache.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikitranscache.vb deleted file mode 100644 index 4e18aac333aab8311b5c736b5f6cfa574afb5be2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5382 zcmeI0T~8ZF6o$`rrT&L4xu_F0P9TX?5j(m(hHqSe= zqx~=rYsEypsI0Yjc4p3*^Pcy7tpEMz&|0=<5ubgVSkL-4vVm1?*UoKh*Y>Av*`;0B z6>~AqPPs;0vE8t0kMASN)a_qE$C3uCl>If92+K6Lo^k$8?}V{mPP zd4q9`9^rq@-2i>zByDWHa8Kl;K6jD5W93J#tcSw-?@gb`Y7VUnhy4UUzH$=7tX7Bn z$M$&cTocdkgG>a*4RGHD?FeMH`EJ=S+#NA<#Hj0db808{M{+t@)WgOpr`E~Egs#2J z>3U+1>^tz6Pjrbh-k%%n>)G$@IYVZjk-o)E@lT8hpE`FNe59f0bP8WF^n_gl?u$Dg z!Gp5rC@)p#koSf#E5fd#jx84@4e%0%Sv<>P7g;5To)GAwv5$q<*gIkrftgTHB#+(Q z4ZGH0{0n=?Y#VE^OQLU+xhBuH;kOVG zHe2=+qr-%Y^_(5|!<)O=KFg=9g`bPz8cbB?oRDLLRKxipv6bWttT@D$lA)Nro!MfQ(;ff5=cP@WkiE1Mra^)gAeN)Bnp)>$V;DZ?p?FQ;Dk%9|n}4?KXC1N(puRgVZ;@+Ut)|7B8RRm0P&t8DOr@iFtW zxJ2+@nRP@=O_3^H$}alUW>8Gm${X4IBSeL}&Y?V@Omt&!kbL8wx6vNs%WE`^avnNn zg?fWZ(slgCylP{3UL{g}?vc-=A?vYOyR)Z?h-Ue66CKKDl_WnbW??ZO23rHi!bz8F zK~d{+YzbL9*zmRe67Tvu-^)aRj~XA3z6%(_LiJ6a)w2<#$jz@*7ox5= z9|xY(s;*kCHNM|ahvLuK<8B{mBY370v|R-`gu^F^#9;3cG87>`Ce=CAk`=FV`@EE6 zq?YfnZmWli$xuIwjOw~L470&As-fz-8{nWitRAmI&-fR8+TZ+2qDHH^(V81Qq`OiL z@hJKX8)9uy6!m6tz!@53<<>$t=6C*&q`DmS@9IAn;bV56>V)11^iEm6YkfyQ)ncFe z-oUf8UlsdPUM-I~9eC4(H;dYv-M5I9;mxIJVLfBr=i|_?Od~2tN@LQm@KL7sz%sZ# zb1^xK>--#>#%i|4?z^|KiOXC1CqNZ-n<_jeyXu6#Bhmi@F}SOj(A^-(0;;*UWxs5v z5%j9ZiIF@(w(@M6E30VK8@W1*n0%DwX5h3i&Q^c_E)Zmgx>7uO_8j@%ViCJlOVnrT zKLelr?#J%iYD>}XbX?5%=}chO*ThKPy@DOSD&Hqc`3f+PA1NCDEu1=_be41*_lZ(A k-z@{96i=Vy%X4dfMha1zzL_ar!xd)3JK_}NJiD~w6Njl!>i_@% diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiupdatelog.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiupdatelog.vb deleted file mode 100644 index 5c3cace552998a6ee538ad4fa6fd51151e3866df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4846 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 diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiuser.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiuser.vb deleted file mode 100644 index ef0f6eee5306344249f8043d316256632462f371..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13204 zcmeHO>rWd;5TDPL`afLBhnlD%B?)OtA&PkJhtq$&E%#+C*yz7ACCg@wj-;RNqk#%smgMMPvSXTf| z&N6u>v+_Xh%R}4`yY~zq@6)B&+&Ive#g@`dbZKpGj_8t4f)ig?g|vp zPWI#%h5x?XmG2;P>VY@y#Om-FMl|IkMjZmr0b2Y^d!)_L3f#4br)RimUro$G$xv=> zjNq)@WaM4weo#6F$4WY=v13?M2EO7smW^lBAtTBylwp~?GN~zvk?TFoW98X^JPy&$ z@Jp%Gj2x%YzCxRRae`mUFoSn&U{?O_LU(I;s^e(~ZyV6vI=tF??kb*l zku!fZQfIW_TiRC*zBGr6bfmMcfdA)a?lnUXZLfT`HfEx)H_Qw-H!r=cgX@!tMOM!A z))si&2R#?~n{rsr3$^jd#Mtp-ZonE&|I?Ay&MZ8Rx`{R6ETfzQ8^gIaQ2V3GgX_kX z@m*ReG3L`ch#mcb7;>GvpZ$@>571jHhrWlf^+E0YI#LrJdSRw^V7!SM z;|zXHm>t32<0zOXv%EE6_$af973d{0uR4C;f&N!mDfn9hH}Q%$owH`_VzqgR9Cg>M zux@lXHe9zfR^O9{IS*IpE!u81<|4S^=b=uEaPOgK4)JdqSD4W;HgQFNVb=InS;TJ( z*9D^g68d7hUY1{t{B0h#sG{+Ba;E;7UYbjV9G2y*3&_G)DHP?t3&!tRle7`xJIIVV zf?gZG<7^8fS4~^MI(W`MgWRZTvWz2W&t_XSnKBu0US>T7f1oxQr8$n7%Mq%YMT~J- z_!Mlz=Kh+SFH*jCUt!@1Q@GMTV@C)x#NLWd~R}SJt~063Ka3N?k`E%8}A0CCssG z*82*$znJ%Rz%wFHUaVbdO?DmSsCD#o@%IXpoGGpCU_5K$8e$-;?LX1an$W$UF&Mk@ z82KA9O_^-pYL(Q4I!&ddd0_TWeXoHUO6_{ma8c7qWE9?(z%4Us+UPLcI2s&BOOPEi zm0B+n4zFWsOxGKeBzKyUYB{tO^`yD8R8+^Aw}-MC+HpO8KOBsn z@$gUU(OSM)e*OI8<}a>^C!=4_Z%j{h{4*QL+tIi=j*BR$j>mL2Wq9tG`|C`77Ww+H zxot{`<8rjTJ*fjlC~^G8S^XXCYP8I`##YZFS;q`gKiZnpRQkYn4DMWsT+Yip? zi7BLC$4=c*|Do@^L=$4hk20Tsp2O&ZUrPlt^J>jivK*r|=DS1=h^| zDbI0hIGOtkdx~Gp30-Ddv#Rw#wH~V0Bh{Kyt;eeMlWILtt)Eqkr^K2XO%KoZb-$%) z8t1*-*|T12_rTn~z_4D+Q_@XHsg8ZK)uH@WkG%Cjkh>SSp_V=_6YUqzS!WJ?&E89@o5*)X$8?~ST4hH z{djX<>7;xu20X=<>~jta8_26Nog~9`UeBJMgS(mX?IE_FVoI%T@Qb^_{F+}DeuX8bo?TqK_?#p>%h@pB z!L?02!0#@3Zu1;Fggjm1w;A@Fj9+7R;rTq_;?q$t+u=D#UR4pE__%plOLc*{4cx3> zd<`;#8TtJqPrLY?Sr`*tETzBeQzm;B?XbIwEv7xBM4w^}!#S%o`&C?bteodnZJKiz z=k(h&uIc{R5_NBW+$w|daY{q^*r4C*IF$C;xTD{DTxD^lc#MxLgTTbTsmB!6OByPz zm2`isg?P@Jv}k(cCA``0PT1OIJl?D;lYD=^wQBtxoVJ_L6K<`#Y=zo|O&|95$i`{Y vVLqF0(aglP7H@6*|7+t~)71UovAj5Ab2*LwhKkvYyIt=(>|Ouo1|j|h=tGvr diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiuser_former_groups.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiuser_former_groups.vb deleted file mode 100644 index 48edcf1647ebf5b192245ef8ab3c9a82e69d073e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5384 zcmd^@VQ(5o5QgV-rT&Mj^T9Z3Nb59Jc8G_kjBCaGs#T=rSz_Dv zrES_%d&a$KU(k9^?>DyPT3hxNJ&7HmH>{%PD>qvnrf9oAg2#B?b@;bg@ejNU?Xi7EJQO3{;*gK;HqtHoz#8YQ(Wa$eaaDX2L&8<&ZJSHnYoSZ12~+8o zMd{4U$M9lNI~HG6b|{)%n3mwzw2oc3YbxL;Otbjj70bj5IW&bx6C1ijT!Yy@?;e4d z^s25U)Y6`lS5;BpvRQMBd19PutE$Gs)F)r*BSMPMBUsxZEBI=a;9K64BlHg@HC<KgHFR8PH&a!#7dDf^lNm?@g)ZnY2>}+9ioz;4d-^%zplN`g6v&o9V-xJml2R-vu z|4S2z7p_u-dGh0s`E?}jQ|n``inU!ljr}nuO=6%^bOi)dD|KcoP`^J?#eZ{kTowHz z3|DJ|^N_N(N6hE2us@eYOy34aXswXkIJi zJbT0GMSRyOH8LwQuAE^}!fx?9JW6Ic=w&^}9*$uR_*I2p%VL$CcOQhpH%jz*K03GW z%`7hZzFP$GO}A4QL;RVOokjc+QJtTW<8IGZxw`uT8@eo~e*;v{_Naq>_l*@!3Hpy9 zB_gWtdh1N`i0Z(+T$!zeL9a4z%F095R#uLgwTMQ2mFr&xeZyoKA9jk6p02;yzQ{>m znS$1U#!?l2m@>P8^wIVFid0q+%BmH+?% diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiuser_groups.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiuser_groups.vb deleted file mode 100644 index 2d64dcb75c9d749cf60bda8235164286cca6b86a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5286 zcmds*ZBH9V6ov2SO8pO8@&OYyPD`4qqISfKO&SF-1>7{Buw!hBVhpv{X;IX_-u5{& zp6;w)gjd08Rjn59&fb}O=iD>*%<$KrCswyZOSl>~w6=AuZ(S?ffnC|a#`e4I*^OP> zE#Few-f{Q2Q@g|JkiVz)Bi3bScR}Bm+yicnmeO}yN92|exhwe#BJi+&rTQ*X_%N{<6Hv;|GVmD#*Y+-Qj(c zmG<2EU&h-!UrpkBMGa~?%wF^NExx8_9CJ*ulx8ei%p>%Qk?vme0yWWxQbtHS}s)$sKG)iulCWvfO7=BrjOsy-D~ zrdNd_b!S~ZWXJ#Wq98PeW_%qyd_&(vbL?kCFNGis8OU+T~wyZ2%##j zu^N0WJ_aFqlGY{YYv0*RY1DRqCEdbOtdhb?J03=*yxwOhC<~8ZW|zw0H7j8@`Ph%~ ze=|{b?Hn?#S1q{Y{fzIk$Rt!7Rr5aeXvC=UrFy2TGJ|7gtBm9;o=_F`isb4a&3nz* zcdq>i|0x+AzfIG#myW-aB3*|ZG5JSRQdy{`9I zE7}Wr&dl;t>mqNdeT8s3x%MX~@Z)?kVwmqK zV~Bm8@!AViCKfN83WR=|#}WM-SQOL!pkJBJi;0F zxz2V)IP`{nhS;n9XW&i7rfS5I1m^qI8th_zc}vfqhht9@?$qE;QDowN#qbDcjWEag zSS(s)F$y}B-H+|2TXD-^`^;I+V*7~P&99=_nvFH7;Z9IPSDAEvm;UUdS_5}R3W}~% zeG2x{Vm);y)j+j-UVV#|EBIBlOc{B|*s7#iH7w&%=V<*OKxdMe$zcTutsynYH{oXehh4u*2)F*NWA!Bd-MiU4Asd qNvx=Uz3ubP zFk+Vl%-W$+rE0ay&g{&&yyrUn{nv?A?a(5wBO6%V8rHRz745(}*0Yg)vOT-DE9>(u zX6`L_mpir_Rvq#@wO?3WbnBYzeZk%17PXkY1N+*(vI(C@!PQ9S$oCW2x@is z^xfX{9?7Sx?dWM`hn)jPL+&_Xx?`CH=x)-vmUrsz<~T9QFh3_}ozpU$r{CKe9)2 zzg4j85y(VfyaVnBpdEqCKF_NC#@i`hP8nS~zjEP`3|IX+ovJNKg5vd{AByt}<`iT=KU%JcX2S6n9AxXLdfs z7nYS{d8(2_7Hs2P5qeGY*mIGx17^Z8iD@4EA}gd26bhH{4S09J>ykOec+6Viy1{tF zSaI{tS)|EK4eKg;YIcro4|uB}**><`SYOuJyKdj!!msc6eQ?+-hxFXr4ZLMn@m_}0 zZG5^=9XeYoetcBOs}$wZcNYJrNFe^xdIgQMn!N&nH|&^&Xko_e#td|3)9_MG)6ncj z3SY@v1+f>zm-1Vg-yYXBTI|lyWzT-bVkhIcDZ4BlEU+3MzdbUuzQ1hFDG@cw^z(98 ziKzB9Wk5C=lG(IldQRL*_pW;Ra(0o3se`_1Y{=UMTU$CauHi}YR8>~dk+-*~Qe|j_ zth$D;_*{MrM&hMf8Bw2obf{8kZkbHH#aelmYP71)m#K5UW0)WzOFY0kTjU*I^&<31 zOMeXi>v3)u2np8$wmQLQN=TkesZQRnqxVxC(tqqTHe? za$~QcedFe9@Q<H<{mrp=Ku! zR(I8DkreZEeL!yS;ki*NI+lqSA7egxeV^0DW7Qq{7|6z(;yk@leU^IrbkunNS0&YI zt??a|dN40%owp;Xb+MczsJXgxg1=vkDF%H{p`mE<5v<;*G+yyMwa-&IgKEA$QhiXi zN-M_Fv#PMuvy1GddaM)24(Oa?BlWihx}eYWGJm>mNPW>~;y5|lbfXQrO4TEetbLQ*de=DbD^8w`9Hq1eOEo9PBiMq^Z0IZpDK{fNIGTb>)~J1wN=@xlR(;E zefO?-nfTn7^Qv=vs)A4D)jGK^udd-lm({bJ&~Z9OJFc(yD<-j)q_H@P{Z1d3IyEnc z_cIsAS-j_G>q&ekYx$8oxeimk!uEe26P0OB?B;Cd2(Oh-OpIhUV zYCfw@Wi_9k>ASiyL1&S_{hO%C;(a{E*L+`VR^u`0N;2PP{wv6xgIjal-K-L~WVT!l jYSV}}r#k3GaXUYkg;cGbE4nfoVpjP|?3t^E> diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiuser_properties.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiuser_properties.vb deleted file mode 100644 index 82adc04e6e9caa3f01190fb566a06b9236c9353d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5852 zcmeI0U2hvj6o$_=68~XIFL0{XC25OLu&aDIrE21Yd{BB7JB}S994FWtz(V|W;CW{} z-5syp*lq$hXtnFznKS2{dC%wg@4pVMW_y-!?OWfP*0Qd(t!%q?X+68O-)+mT?aFSL zOBp-k?sBI#gldoHk$n$!+0mV|_BD5pTijCC_U&`~%rZH9_I|V`;kRW!L3;&l0=Fh| zZrs{$YO6 z_ROAhui969y=3$oTXSD)_JWbb4v-tT==Y6VtsSOF`*Z{k*?Gs|--6>MJL`e#Hkfbl zogzp0-}2T*UeKh@Ua#DUY}Dc{v3F4Z%$>JTp#RczC0220T{-Og*zuL)7-mHs-k;jj zsdL*{b{}LCFx~+7UC>TIW`}3Ze&p?lnIpa$&Tr1_)P5UjcZ&w{lT&OUTYAfD=h|Px zzKx_lv&Z%YmXLLH%X_?K*P(9OudF(USBoz_<)!jO`9`>^ysdM|>zc?EUP4nkNSCy* z@-ZGUs~)p+l^(KV2Omq=*SL%=7cUziCp7cO&W~bZr3go1(LnkQdkq$7Fs67T-gf zZ^%R^4zag9-=l^0`7s~M5E%DCzl+iYq@H{jEAD%Ff@ZVpQsgJw1zQzomm`bFW;IZF z4GzkARepP1*JO}Q=C&EzAx33Q*>%gl3yo@!Pps%_ca(T&?T>hFpTQ1>wvaxEexT*fNsb5t% zg?zh2?D;Hz08)~uDk@LtI(pSGjm<7~jTQ1T)o@j(`>BJzqsUN^RUYA~ZM#5*s$#;f z;yoN7KdT@^C_*=(40OTwG4n-)5@JGiqD$=yd5_!e2+$XdrxsP>i6S^d;6%&Y2$@v_4>wXdmulCb1*w6~_@ z=4IzyhvUTp`yJ0i54rD6kWjvt-_E+zas9%MH^El5z67`Vt(?`Nu-_1C!AjGux5zFs zdDHZNL_Y7~wMi5iv&4#zFCV$S`{@w>>KwiQ7h_E^9#g9OQr{m(jQ4%%E^5*EK1-dM z*R#pnKHR!kLmJdw{W-+fPe&ZXevjaxNb=FEj;S)DconVlT#n(oNROGXu%TCIxG0-m zcNK$SHnUR$ztSmW160(7sOK%wL;pdy`X|3yrLUFfYt?-%(_^Y0c}#td4q0ekOm)&a zK!*+TdTlOLaP&o+OwajQw#at_`|ecScX?F*&8YJ4&@c4dxi|Du`o|{4X6l0U)*j^{ zRmw@(IA1-3Tyfk(H+YZlB77Bl81IQ|)FS@#Ut@Iw uQs<)%=^>HI=hOSbDZ}n=pPb$Qrf0Pf-Ps9MaUJe38&1swko6uYihlrvyRNeU diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikivalid_tag.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikivalid_tag.vb deleted file mode 100644 index 0a3e1804d36f7153ab96ff5e9b0124dffc5cf22c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4434 zcmdUy?N1Xy5XR@TiT}fiA1p?zpe6=eL!ku;P%1CJe1cM1Z7c=b10}|PUHv_~U3^ag!CwIWwW$r$=w8g9)*mb*RV>|2idbB3u*|N9D9wHl|t%;puw>G^- z`_t8N`Xt$9<$$jtcLzI>yo3UBDXAih% z?LJ?R7=3JW?rY8-G7?z>yFrVdD{i$sjIs9n2yWte$Kl^XV;9f*;93Rq3g0nyg#QU| zZR~}e)baJujVMMf-XeR6^o69}vfY}0uM{ic0#@2Ldt+dzByUc1;WSM85>xlebV6Mv85?W_bcYMIr60j9`0&pQp!krnZ}qTh4!VpWa(m^J2* zQZ}iRh$H_D8~eUC_Fm}UB@mG)S@?;<7($#`Y`PVOqAk`>7XG>dr)=O{%)Z|aqy8B z|CdG*PgCo>mTk1=?UEPst4h~`>0FTQ=*p{coc~;ucZhM7 z7*FbLa$SBO!@2Iff8~U4I@jhwV#Z~B7Kxi6cro9MDQsvyNC&r+#c+T|6()`&@Ijx^F|Si`iG%^NHG;8%_s3&ysEyg|3IEwuEy_+c=m7lt%w~Hao=^W((^QD{tGeR!SjPr lhrCM9lT31%-@l#%m$N~rnDHr8wG!?y8&1PR(C}FxiElkIurvSw diff --git a/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiwatchlist.vb b/ShoalShell.Plugins.HtmlHelpServer/Wiki/libwiki/lib_wikiwatchlist.vb deleted file mode 100644 index b83de94d72ae28687cca32eb537d087d142ca055..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7966 zcmeI1U2_vR6o$`rXZjzu;R1(&K*Gm#Xu>2U;bU-|G zTR^P?pSNyqK1cHDI&$q9kWDT^0V2Wln|rGwep&$&@5On+wj+O4|~?_`b4@t(9C@==dftvFiNk$r#JDCHAi2Zu43J* zQ}}2#4Bg5Q{ddleibUcs->tDu?{Zb;HjP)0btisD+y~GPD^X9c>(FWa)}c90mPI^P zl8kCO8P7d1dP*GKbGCoR?+fOSvtDgX@AXf8#q79-P<+1zF z4zgG0nR{v*+s*u~M0= za(Cr6+QpSU7N4@&8_2W7tXt%`zBlByx5!6Q+Uff;S&DM%Nm=4DyRXmQ`{bJga!Ab> z?GwdiaQ(9SVz%sf0qb^%zCxto_Ul8kggM&Ep{M1bbL?KiRy)5asFFCO5?En&$Xw^x z-+jKk13KcOT%o|Hx^BFxf%7@tXOwmmRY1z^FQ$s{-W0VL`d5evhh%uZrYO)PmwN~P zZ_X+&Rd%r!Q;zkTc8l+2R0^^ZxX5 zKI8cyo9C&tpj!20L-l#6iqaY-)_LW%rb;S)kKUR0SGVduUaXU{H8fVO*`!sY^8QF( z@TaT5Rf~TlLZ+>ytaaP9<~bqJUhnPU_rehQXSIiNyd5M`{;J9&c#4m;(=3wD{NE-Q zXA_-W=qyk5#4Hv`=P5hT>7dS+tDa#!cQu;q8vQ=5mX*X;3s$v{L}68pTR(n=_viAA zbVd1*-q$Y<$2~lI!&M-&;h4^=j$WwZ10v&*OJmA;n5APUp_PuAB^G(aeLT^bwW{;! zmcQd-PuY%>wYWQBMp>78Ze-c=lXtur@6sG{+nq}H-7cd4LzFK*BFpT#bLWtO>tB)~ zo}t{?*K9uODbEUqX4b&U({T8CJ8bmS?xIr;KO( z7Lm&{qL3Gi>Y7TPXWO$NrCdODnEq?IOr*x;22uC0o?=fmq|)(KPc^?Ly7DBQ9{7Ch zGV#rK?2Gfo|2o2Z;QPw0#=}eX-*n&jchQX&`P@}geFaR8(IG0ulNrUMaEGrAER+9_ Hr4j!CP6Ou^ diff --git a/ShoalShell.Plugins.Runtime.Environment/My Project/Application.Designer.vb b/ShoalShell.Plugins.Runtime.Environment/My Project/Application.Designer.vb deleted file mode 100644 index 88dd01c78..000000000 --- a/ShoalShell.Plugins.Runtime.Environment/My Project/Application.Designer.vb +++ /dev/null @@ -1,13 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - diff --git a/ShoalShell.Plugins.Runtime.Environment/My Project/Application.myapp b/ShoalShell.Plugins.Runtime.Environment/My Project/Application.myapp deleted file mode 100644 index 758895def..000000000 --- a/ShoalShell.Plugins.Runtime.Environment/My Project/Application.myapp +++ /dev/null @@ -1,10 +0,0 @@ - - - false - false - 0 - true - 0 - 1 - true - diff --git a/ShoalShell.Plugins.Runtime.Environment/My Project/AssemblyInfo.vb b/ShoalShell.Plugins.Runtime.Environment/My Project/AssemblyInfo.vb deleted file mode 100644 index 96e9e4cca..000000000 --- a/ShoalShell.Plugins.Runtime.Environment/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,35 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - -' General Information about an assembly is controlled through the following -' set of attributes. Change these attribute values to modify the information -' associated with an assembly. - -' Review the values of the assembly attributes - - - - - - - - - - -'The following GUID is for the ID of the typelib if this project is exposed to COM - - -' Version information for an assembly consists of the following four values: -' -' Major Version -' Minor Version -' Build Number -' Revision -' -' You can specify all the values or you can default the Build and Revision Numbers -' by using the '*' as shown below: -' - - - diff --git a/ShoalShell.Plugins.Runtime.Environment/My Project/Resources.Designer.vb b/ShoalShell.Plugins.Runtime.Environment/My Project/Resources.Designer.vb deleted file mode 100644 index 47b49b8a6..000000000 --- a/ShoalShell.Plugins.Runtime.Environment/My Project/Resources.Designer.vb +++ /dev/null @@ -1,93 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - -Imports System - -Namespace My.Resources - - 'This class was auto-generated by the StronglyTypedResourceBuilder - 'class via a tool like ResGen or Visual Studio. - 'To add or remove a member, edit your .ResX file then rerun ResGen - 'with the /str option, or rebuild your VS project. - '''

    - ''' A strongly-typed resource class, for looking up localized strings, etc. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Returns the cached ResourceManager instance used by this class. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("ShoalShell.Plugins.Runtime.Environment.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Overrides the current thread's CurrentUICulture property for all - ''' resource lookups using this strongly typed resource class. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set - resourceCulture = value - End Set - End Property - - ''' - ''' Looks up a localized resource of type System.Byte[]. - ''' - Friend ReadOnly Property shl() As Byte() - Get - Dim obj As Object = ResourceManager.GetObject("shl", resourceCulture) - Return CType(obj,Byte()) - End Get - End Property - - ''' - ''' Looks up a localized resource of type System.Byte[]. - ''' - Friend ReadOnly Property Shoal() As Byte() - Get - Dim obj As Object = ResourceManager.GetObject("Shoal", resourceCulture) - Return CType(obj,Byte()) - End Get - End Property - - ''' - ''' Looks up a localized resource of type System.Byte[]. - ''' - Friend ReadOnly Property ShoalEx() As Byte() - Get - Dim obj As Object = ResourceManager.GetObject("ShoalEx", resourceCulture) - Return CType(obj,Byte()) - End Get - End Property - End Module -End Namespace diff --git a/ShoalShell.Plugins.Runtime.Environment/My Project/Resources.resx b/ShoalShell.Plugins.Runtime.Environment/My Project/Resources.resx deleted file mode 100644 index 75345c540..000000000 --- a/ShoalShell.Plugins.Runtime.Environment/My Project/Resources.resx +++ /dev/null @@ -1,130 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - ..\Resources\shl.res_bin;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ..\Resources\Shoal.res_bin;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ..\ShoalEx\ShoalEx.res_exe;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/ShoalShell.Plugins.Runtime.Environment/My Project/Settings.Designer.vb b/ShoalShell.Plugins.Runtime.Environment/My Project/Settings.Designer.vb deleted file mode 100644 index c3449378e..000000000 --- a/ShoalShell.Plugins.Runtime.Environment/My Project/Settings.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) - -#Region "My.Settings Auto-Save Functionality" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings( sender As Global.System.Object, e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.ShoalShell.Plugins.Runtime.Environment.My.MySettings - Get - Return Global.ShoalShell.Plugins.Runtime.Environment.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/ShoalShell.Plugins.Runtime.Environment/My Project/Settings.settings b/ShoalShell.Plugins.Runtime.Environment/My Project/Settings.settings deleted file mode 100644 index 85b890b3c..000000000 --- a/ShoalShell.Plugins.Runtime.Environment/My Project/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/ShoalShell.Plugins.Runtime.Environment/Resources/Shoal.res_bin b/ShoalShell.Plugins.Runtime.Environment/Resources/Shoal.res_bin deleted file mode 100644 index 043d8d9884e6cfb16db09e755b95acb45ddf9c35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 341782 zcma&N1zc6lw?BO74nayOrIC{E5J?Foq(d6%JmldB(r`#g5tVL`ZjhFg?uJ8m=ev(S z&+mW#_jBL(y#upnPpw(AX3cl4*=KJM2nj?C;^HC%QdE!?Itav%1On00{>^V7gFs&} zKp=ARfAT>S)0_gqCTcLqKjzj=aARvKgK?xE_ph+?$5ES}1&y0x#ve!Ze85{r2 z=f(r$8KHn)zy6!wumpj`Pf$Se@_+Lo8Xyp(J}O93@}K@MK%nAM)PMM+1?4h;K;uWK z|L_Oo0X`t)X#em>3ktyk`m><@!yhfk3Ki(jjRs-{_yeX00@wif1PXxw{hR!`|GzI# zpb{v7LjNYf6}SZ=6x7nv0#w}p`3K$KBkq6*{2_`Em;VIJ$Pnm%GXJ^3oS5_V)!GR8 zPr=`tAOl}tUk{I+jg9}SBE%9tIWZ9&u>pktQh~Vx>xOGmFe6 zMmK!V2L^-wTLFVW1|SgaUHAsj9_|7EryLUw@rZyU!VV0+1BVCx(*dBpv#|pM@4!6Z z1Hs?{aMGU+m>zIAECQ(TK#aZ<;`2@tEcbM`_W_!NJ;3&0xEl;$1ZZDg8(!n?0f+(? z?CtFX>)sdux`HslVDCi827JJ02ksqSZ3PF40j{B#2zkK=24Dj)aJWb?91a0y4S_)M zt=z$Yun;rd1IQz0h>*u3#(D@00?=58Kz!C=2)cdt(PNiVtic0ubV^A24-53zy2zhpQ1HyyABHVmEP|g2{B?3Os4bTGu%qL>Q*Ebr&-W~#m19X7} zLr5DE0Z0TsF@!D$h^8BuF+!9+Kzl2={Q$(*5d&xraG>om0IWce57^Yy)C%Abin)Vm z7~%#f)jG`5G9xD^N6vBs4h7i{AoL7aCOF*O($vev%bDNZ2L^0LAAmdrK?V-DG|kEP z5}?bm4+eoE;OhVbfRq8MZI(G+hyVtZ8XZ_bKt2FJV0Va@mjEz;K!zirC-zp`8^B5dQ@3!3K>wD5 zD$BjWwum*b3EJ-K_sD$ z=3x7-0dTnB|Dp1yI>_F>YY#GD0kQfotr54uUF%%~mI%fF?*S7Q@?T2t?=NWnViEK& zCf$HQ5(sQM0D%Y)=^_Y(fk>eM4kA(nIpA`KNc}({pgGV11iC<^H2)_Bx&s72phZNA z@qf}5L>>hM`tKFs2?($U{|Uixz;^7w{?!fy$b%6&{kH&se*~l=b{;S$2n2%w2;L3v zhIe^r16fP}J`hj??5M6ppaBLr7}%l+5P`dUMuR{BB4F@9#0CJ@UG5$LMUkXb_n-{` zLjJ%#2s5b~K>2|Pc(6}IFnj}w>7C>ObcctFSna{OA&waCU|2T*^WMR5V4K4iVK4wN z0dxaf?Z9A=?hu#{Vw3y8_kf)XfSN}TK-dy6O9=D?0A|vCz~_%K+JnGg;0Af50(o&PBUEIjn@?VoMlg7Qc85UL31GYvvD7lD;R#1>#TAR-h{!+#^_ z|0Voek4Rho>9_a~9Ry7T?fNaBR0B#?8YKSbuiE~9I#3-#}J_X0KzK)GzwTqgz_T@hX7jBjj&LF z<1^_F^8oZ0=mK-|0L(VR=mPo%pA6dAfI}jH#rA=FphLhB2y@2oV(*9#cm;6ys<0P7 zcoAd|kOT(E$;d(2!vR2Z;W;_MAP|NCLiypAUI5P^ApyYbd8`Aj3^18$_kmz=tThRS^ywKL@2N_i1_~&{;mJFJ)$py27=Zd zUz!kXt->!3H2+$SSXn`=q+<^t~L6|#0 z=rD*D2%{Q-PL@yqY_uIsoij3&Mr~5ekS65&wJm zxBTCBh&~rIfJJ|;B8P|l2pedRry&1Q4IwQ=#6$-Yedk;Y5FkQ@mr@!YpLZHPqv_$E z>*u`%+}nHkd&OHW+4b;t1%G-F5o!m{Vr4wrn`b(PJ-Uijluta{%C;RpPCS4acu+0P zMGox=zui7i{DG=aLC?Vuc7#nNPe?CGiE4pP=7gIK-`GrUDu~*udsc9CK%-;i{?=U+ zJm~27;8@mm^>ppc*s19Lanr)JFN@gaYTRr^s{6=%dUn$Yf#b-$u*jVF7J7Ac1u3Xf zZDfH=_3@~pGNUO=RR!s$Zkn2CXNU>PL0JrHWR}jRozG6{8GnkaI#L68m&AP5ppxW$ z79&n(Ss(VEdu0DAGfWfhtD0S$l9fijohy6jRIw|2IP8^dg0_Gzt^ghA@8b0>8c|mX-{d|BsKs&sM*L7G-&-wKhKF%rk28&A3gmp5y zOqa{v^Lj-C1!K(#c^S8@Uxeeo-dl=&7&{30I?JVi`%{e11g`D0Z{8)=c#?6(z=jm%#{Uh_Z1nURCQ@gjE!163SX^Mmbx)IF$rgg81 zn|$KP=R5wep#*}|E<1W6@e^@p?LL*nSWOkU`9eLZ?5Dti7WjkU&be*p{lvb0i_t`7 zW(l=(T|hpQP%{7J>pl}ffe7CFjMU5njK{xfe zKp1Xi_jxVr*RH52r&Ft79ggFK={w1D6pxbI32Af_inF^$`6o4oT14W{>4_hKO!EZK zJM>i|@&#P59LneDq1CNFP*6DFeo?lYXjQE2)0J*t!u+BoD*fU}%y-xu!Q`clFe%KP zG%ngn4sv|dD2$SCjOa){CWI|yVT^@Dbyab~E5*_(;3O3W594JL^K{$-_-XBrr+<7hj~Zf1oZ}v zNzJw{ZP&l)md4peJ2TjIVJZAMaOfCYVxz=gO(HKzN-E_-i)B)YpKyW~7lwfrm=6s+Ltq#|dq${yD_WK@0bG0tr#t!xe)%MDis zpEEr!0t5qy?=HU=f$nn~X9Z}6p8Y1B4YD`JF!v-J5@VOgM}p$0Qb&w@ zDAtFjkfYXbEig^;Yd&Xr+?HgcTE=f-tP|YB-ljd)*~@-CprJc_Lxl7bdxT=3ig7dGCclQ&)%R_)iVH^ zv9tTC*Yj`O-?iUbu)yooX*M3AIE`G*C?ijHeJQ}Jy+2!vy&g2OJw7s-Ti}$WL~pL} z7{HJS-h0t>-1_A?gf*XzZ$d%lw0I@sj637ZS!=+Y=Ncy0z@vMm1RND(5{*$Lh%YsEf$@vU@?~F*%JlXZ^>E5e_cQ5U~t?|s) zewxz^&I_x3bvXJ7m3;&-CN9<^>l!+1eh{xTK(1W%6v#X8dU}mqR`e9iyn|}82rcFE zaRxaXz~nc3;=|3eT&?71enS9X#Cw!ou#(>muh+s(C=B0|)AJBRuD=BGe?z5u@iY7d z)j^zdE0NI#v~Z+oqW6~qf$KXg{1f`1rC}RTL>_he&>7OU&_1Gj!^L$y5K1m$NR;z^;Q^JCvzq zt`~=96m_ygzSZz627xPu&QDvdy0e^evdbE;z|As#XKy6A)YYROomsDjL^qv-)s3_7 zgyk$r$#;&EQW+~&+d%r()ayrYKLdDI*DaakF>qk{dRuqG1t38YtHPD0cyQd=kxEba zBNcV13^9w#<$LAY3YGe*dAGtT*IYgPg1w^8)J<{W&qf-A57oOr;Ajv4KSac>DAdH*+ zkiVBdfTaXkvCtvGZdPtQy6N-2*SIpV#hj7F8CoDutu?2_5WM{3u8TB0#ESFzOjGLE zdeN$D@Qlj?afwg0LbQ3N0@5Jky0eh_yWy33C;|0FV5Gd|WpZSBL*9Jbn``a`F9-^F z4@=(?UL7yNEByrZ&X_D6a;h1Gl=Y);>ysxap-*Pk^cC0ghh_skOF=&-9EM~K=X2v! zLq^G+^WVXuUW5(r4Nw|PE1t#23AgoQTGYSDH@W(X@l}^W_VGaws7v_#_zK>59jUCN z^j^y&ztE+yuDysZoeu0Afdjuw+9Z|$ZDY$~+(_a0(-?2JiUxd~{$#heqFTET;VSlt znR=2)MuzXkK-Wf}pkx(c+tAY$l@8A+gI|OvVqE&=cYz`uj5ItOOFL0AR`xJeyiPZ!8Yi#LFB~K|Ks~r7(+7jRVqK4`ugy} zoAX=o^+jI=(2G3>w)9ge!)i*C{D^lut`X!xeQ(E*-@mLBjC98{!5+0U*+VxH$6xvV z+&FDws|}Z?G1$a8rS(+jb0Cgw!Z=HzQRgmHT-P8Yrkm~)jvx!cO&iUn&{HNx4;W=G znb6xbxWCKiXInY7#+0Y6RH$B#2J*+>S6)f3`o1!Wdco+F2naR?mT&_a+2ec5&6}ae!e61>b47~&lxn9 zz89#wDjbVWZYl7T#5{&<1xwDK;{z@_W&Edg7&j4Y@1{kZF6w?CW!2Be9GNucTG5{} zJ}?LfQ=ngxl-^gGj4@Mq|7}?rrD}Yr$4XYOzFCz^$E+qgUI4Ai40&^amt0TwTi3=PtgQ5zRGK|Cmd=7PHvyKaGi@Y>^d((Ak`7AEtB z-hfx)@2?JhWO=NTqocgaPXWf-lu_vNmbK?ABWr#sng?TU5K8wI$0}K6vKm@NyHc_4 zVs`~`aB&EP!V~h!l--Wq@>`zww0^PWjwd(HsB47Z%R)uuv88b0IxOToee74?=$15h zj!0O2uLx&*%hpMKK_a_%^RT3SnA!dU?pI9u!LM3$MYHf{G1s*hsVBR?nbJj>Sh$X3cRiSl5 zz>!55jj9*s*Jy^SLJ#Bo(rZ8T==>S=m|89F_*C}IvN=Mxj9tthrr-b9&c;k_zE5&U! zBdcaR-b&deh+{z5Dc`~~p7Dn-vYzb)+j~mndVeu6yA|klU$}ynDi{sK)!V)%x8c6v zp}T2RitlRT8T2wwnS5+G|Ag#~V@AMYu9Rz?Rkt zjASP`NPW`NY`wRKhiUjKTIOA$-hu<^cr=cYrHgrZ>uCh!<()bHdqj;*>X%nf37GldWN7Zp6obQir{9@KM^yD^S^#27Zi9ST`|@YCPG za@I}Mx}@FRj#GgPTdI{JT3y>Jc^_@MKO$h+iMxZ zfbMyAL}JKonaifaW%(E~Tw(4N+Ml_7aZkfJdo z&%pv$uD_xY`<{lpe9P}Um`+2nK=Q)Od>>qz#g|v>xm-l_()jGMps+@j%epwWXRfDH zvQu>{bdTqag~)7t-H%hlzPU5Qfp0QU75#-;t(OkmdGxd}f}c(ko4UepD{&@4D`{jO zPiF9oarlNDSlGB3rQIWDv<#O%-aavY0IEm1QznkWRLX72eJ(hMTw3_42N0zRdl@HOVzGHZW!0OPBQw7pj26t-{qbN3>e zpGw)tG(&%v>bC2bM2?(sUsMh(#@=+-G|zLn@s0&0w7%BuvQ4TW2{`>JT%K4pWoYod z)cKQ#8;ZCZ(b63AA{!RTFA0?f zuYM1>=~l#(R?pkTQEAldhuc-9R8mb*AB^KYj(8HTOl-0>;6xe4+}@PLaoroVc|}V$ zQwB{9v$6gzn;NwF!}#usp|5N;JTsGD)-`<03%@*u zfz)NH%Je1W{&9y1$K$%r*DudPO_^Ot>FUt3c#9GOsNdA+y9?H{A8yjM5$JsCzu#?< z7yy^uz9ejM-F;BadoB2>pO0p!g#+12gd z391uUF+aV1qz-f32+$d*jN;C=C5|FDcnP9zL3?7GV!YwWpQx{Bj@N5NtS-g}9X%Sf zPAXQ#{NBr1YrJS7n*7><&pK_yiH8*L@jSCnishj4k9n_v_Mg~lm9j?x4@`Q<-o$G~ z%QXcKH$<>G5dR)2EXdHH50#oRB`G)fHs(wo*3G8CUE9tE$T@ebT7G@vO_mndvR-_c z`o@F6u&H%9b38g~U#s?_2Drkam?|i5%5T@c@y@`kddbsS^GJcV5cwrFtr7@iJ{7*n z-r=7h#g>+3pm(ky$qc>e76jB7PrWPQRRsM?w@R|G)13t*Y)$PGs?5`}hr2~~%g;lH zw+Br}tF5YeD=PZTcz;#JbyjI|W8oF-mfBZzGu!nADb1?ArsD=|R{r`0bxooG!CsPIa$+yo$!Ud4r7im#Gd-U?D?-Z&!$T>8eD&d|zdFW>v!=Kdtoaq`Rla>P=D$;TI}9eKppYG)HuYS>rVDV& zPYuUiJ?d5=b~_d=zEgIQApHIi`^ML1e$zv3^s; z52#j()lh7IiXJKb*qD3iG`?j4skzwwP|?=7cLM5s9IB(5XNQ~NjTS*sQ4vUFc>c#M z2ecsnwx0ryRNIYAL?QS4c9f7Ovg?} zC>>sOa}o-<3uN+qZh*(xRt;~|wiRly{aPbpF<`W|f6CrC&=C$-Ajn-^QHbwDmisQ# zDPWkn1|zi5v}PL475h?|4&TFAhU}J{doZ#QAy>j)%aJ{{5*@c93>J5vi3!f!tvsiE&;ZB$^RVJ{%jnIN z{`S$HU02-AQ(QvE7f70+-&h{l7VOfH{V?pl$)$hr%2KD`Vd=wgK#*%i++G^ziIw^N zuXQbp)M&qT>EtPD_b8~?fXk9^F$?&x#Q1-9oY01b5@g^qD$HL!fJIP$f7<0}uGas5h5_)y5ZR!qq3SA*qb| z?)ZmCKZ8B9eIG}5W9jF}U~{Jb$QNRMkE*2@O_kK~n(d^*e^Wbij5%vfv{)pPG0jZV zg-eNQ=51()e&%}|y1GC%2Repzg@QK(H?AQWJ{T|_;m4I#?vlEO%vXwACH;?OD4pBsfqU2yrb=PyO+zur3})Jec>DioUgx% z`#yHRdwaCPGkHZw!0K?2T=q&Z?4^bsVWn=3Y{KzY+MVU(s{y0%Q{n0bKEKb`qXuay zJOc%5jAT_gldN+e9)1dWWUZ0&(RCI7tx^5YtuQ4z?t#W?Ij1$$t*2x3^tjL@@v-4=(%U)p^q5qLn^+1%^}Gg zrsCbY2SH`&mc5TYTF})xnXv?97R4!$FmopOt{F#X7+zw!ABzL(SHKtg(V`r%h=Pw& z-o3UTO=9P-**$3Y4nv*i;Xzgg4uArNSI5P^OHB~tiRk%Kv~Zu7M$Ov%eFH6@ZS!$X zF3pO!A1zb1q}RenTM}=6=w_%(G36iWW^3u~Ym3MrJoVOJ*v((A{Di7*P^U5zOUqYz zn|TgKL=Ende@u%Vu6y_VtV97xD^lnPccl?)F*hzA?WmJc2&AvPYUceQ^1N~TQDXJ7 z29F!*Q@A9@9;G9+2|AoC_?oN-HK~$db%IlabyJeL=f) z8L-ySiY@-``U6daqBzn8q-&fN?P!V;*j$%|74zmh`?F+B`^mZQeD*6eMKo={OG}fOibtmt=40MnEj8Oi zg*tcVd)k^$y@=_GpGHwK&1~L%;uH@r_o6noB#hr4+KNCTTsKVaFmTZ+H^oh09IDK` zmk4)7SH=V93$&`!8hTb~#g*w7AD(symN2jEUs?AojG;!e`?M9^Z0Ol)vRCDky7e9g zADkh3YlQDV4Zi8NcVNwg45>{$Jbc@;y|oSX%VLfB<+XDDHvcXl6?muO@4Eo8%@567 zdyOiybK-0v)qYYwscz9{FX!H9%v@5l_m1W!1b~3N&=w3ZITf20d zl48&)`v;HXrf%b94!-iK=y{O_TIsb2^ZaeN&spM#&uKUD&986axGd(K1{gZZt`7q+ zu42bFJnr$ax@FX+VF4rym6+u%bg4_SfkgujGRYEw-sTBdV7O&7{cfS$NwypzJROO4 zLR&7+(|n+nt1YBJ`~hm)hehFoFSH-P>`0gg!5`)ad&61ke?Ecct`HDQc^2#hh+$s2 z+s$D#9-OqE{{9#qUmrJhA&2;hqLla;2d9{(9XN&;xb@t(?wcnjU@Ngc_p43p!l%Kp z-^VzCOo(xRsb3$gP853ksqK=DDHwjyT|-ul6DpP&&r&oeRe$SCwN7ej@p)2BG3eSD*4%ReR>1$}>>O&a5+IJeQ7 zXrs?@P`o}grQhs>=V%XSF`q_{p^}m2c=&FMQ|lZVep}Z@aEK?;@#31lRL;6uyde(L zmD|=wBFs(m-BZnTDJHY#n&J_P3;H!MQH1@jP69{zzS2jv)4|hqAz)S5GAhDti)~|U z3d?OhSBOw+q2x&p=CL*m%?c*U~TX4a$NorZs=3#?r$u|8mC z%BA)@5z9!FfsuMdzF^kr{@PVWVb2 zCjGm%%AQkeLLz}*ewr$91N3h;(73!le5J8M&6PFbC~%ANID6{P#YLcqJMruuIEIAt z76*a^b{-0X&qdcO>|3qpURdwqe;#MA7)cK}Tw&gQ8pzbt*|}v3S>~K1c_uH_;P5)> z?ZN!=XrWG1Aw~mPB1hVJwO#+?0rq&*#R4>`*HW=Mu?@dJ${v|VtoG8Tzf*xU z+)eF*sjwPsFc;ff61-1G1+2#Pt`+a63LZ51wXXjbpiD>Iio|_0x6`*2mEMR^*FsZe zoJ~_F)>MkNNmzaub%b(!{CQxFkJywP$sebrL`@4z%a+K*U9!|&Rx*wrsH~GuNmQK z%i`Muy?j6Nr8QQQqN1|$=bo1_*RcT z=%{`9jcx5};z2^ZRK%IENG~6%Kg_J^h+tbd@!?BoX=omYT~hxNq?W4 za?4Wnwz{HT;i&tr2=|xmX&QTVJ8(f%Owy|trV~bLQGmlnu548}&Y(g+%Hhxa_I;+g z-9+Q?kMUDn@1o|q#-?qT-P4^$anq8srF~;gk(k$DU#2F7UcpM#u`wLrJesG&sHgvx zo**V_llO%F?M!QxrmS1?bO$^p#e8+ZjNZNoKTa+bH*!T=Q!Pt~<8DJHc0JoKyt4ht zk6^}V^^9(3s`4ipxumg_t+w5T%*yCbEddSbj!1j)1}^#Dq`#ioA=~jWe~jfyA-fJe zzghewW90f{HanR-J5Hyk34UF#f)<>Rxzewg?908drZMQ+r89KQ>N^ytTB{g#EYjS$ zRSVv}v&)eEEO@zuYG0|OA)vryGMYa>Wca3@;H%u}mqnv!{4&5z->(H9j~>V+Y3^rO zyy||x+*O>sf8ItDT6;$zhUxY0Q0a?%`FN#Wjp5NRN7lmeMw%=^E&W%ZOX;|kdP$at zA3W}EyO+CeBQV6ME1DKD9J}6RrwBTHmU*90R*BpH3tbQ&g|5w3(KDhZ>`{#M%fWYp zMRX4PO1q3A%0cDCwgjIg->`25>JZsP#junRQp|VSW`+vkuNd8M@g+FzzVloC`oNn? z=hwv|4S8DDDx0Y==`;>{=eD#D_q7gn(uK9S)4AN`PT%dziD9VL@++)C?m-^50Ut&wm2E%@ zQwOb4`Y#*vzZ>xiPTycQUtJn4tDi$YAC^%{cM3|k(M8Z)gVM#F2sCgFh3+3+eM3j< zXeI9x=e6%xcuwTeg^ps5v*4&TAQr5zH{bmHVt+NH~B%RFct z@{-;+=IwiED*YtGI(WD`$BEgdmpr&g z-6%v11s^uGXU!wa_$Jo(7Y?6Mrio%#g<05GRdsGnKf6i2Kb3I4`ZUsTb%i|m*)PcG zuEXf7=u9TLPKK~h*LI}f`8M5t2)2hD=3*^PSI(7#o#;*l$X3EypXW5m!uQaXE{q-d^oBS+lg$%p znAlnsRQOxhnMF&NyoBKJIQ<85B4*{V9|Jd+XidkX)nE?&fTd|v6dGlh&9RB! zo#yXTg&8bYsd_LPcH2HQ>-?&9>A8P&{Yz&^a@y-t#+x|PE%VtFrv36m$~;*l`j9u7 z^WCp8A|_$r;@Y7KUGfL7pW)29pVN1?qo$VRzScjP5xa^FT>UI50+A@F)vNo`@miBI zyakh6yL1iZ)txb)evNBY`YI_Lfy*V)hh$-P%gLgqwoczR^1ho=^e@oF-{54oXYM`d zBG)4fcVt5+3$w|TgMBBR&@Os4n-+0abTYG_9PmU*g2hiv8rC+mW=!unhvX4Kb$K1mS0;x%@mCkt9ztKR>k@_9V zL*Z0|Y4EM*>-#p>RE#Kz79+7+w^;dh3=S91H)}I(!Lyu>r*?Q~^W&5))k3RH?oHjg z)`7YvDO<}7pIfn3l?h4%U~mdqGn~A#Q1PcOX5VDCYq0x!jg_R2xz#)AkCFE3Ox#o% z%Um~~+Bh_|TTK;g{iwt}8oVWl!1aliVL4!2Y;hcLtcB~nlal;M42i4j^{+i{-cKY5 zu{;7)MV!KdB%EDO#wq{vGq)(`9gJebL6QNTkLlnNUyMq_+9<<8^5T!U)jfGR&x4IH z%+Zw7P-;W?_WgN7ye_U<76=YXc~EN`7Ec>$GOE%ELO9)72~^iE$eOR3TQ>vE*Hj#$=eT+Sta+<)mpS(vz>9#UH|sPvVEX;UXl&N3GNTsj+o$&{Fg~&YX zeJXde#7;S2Yan%>0R$fySt zkK_`zA%6CRHztO+hNSV|ZeaQ}keP^%fU+NAKA5+R@{6 z6+_E6@7ZJB#>W!i#OH;XSD6V|Z8l5q($HY#i7f6V3#Uf&S zC`3-_cvmo(e}!@Gr`bW##}prDF{>-^f_ttS3$^qf9OF!tJT&LkYR#|Rutt*}2axNt z-Rs0J@ST+@ z@0UVK9?P$UFiM*5REMm!(=oUfZK-8iFq#*duJ?8#Tau4ho?~v}+M7I-3vXLz%^zO< zvWk43W2s59vz2cgxUR@bu#zKMai*BbpFa6IFW~gHb#f6Xb$y(x_{l zQHz~YuxPtak4$GyV)G5ZjJ!H(KFGr6tAhOV0A{!EWtc0(!9uRR57nn0^hFXa_}v9J z)Lx=rJ;7SWXE!JMT(8Y-ZfH>8Y}9ZSCk3oPK@!l|QfWjgp^r0EkYLOi)w}>6>1}JX=Oz!W`^XDvHEqSUqF;tbuG<59z0WZD{pG(>(tBPWodFkW?H7y;9fHgfYihj_G5)S?6uB zmm^ML2}=1YozN1UyRp9)@6@G$HrIm%^Wp- zsP< z?$*@D#paKIS7(KsdwnS>K6O`YnMJa57YU~;HuQuzowdX{oIR%Vi++CEYD)KfB5Hpn zSv0P0o9WsgOCkpM;jaIy2m21@Fcd@lC$pX0&kWARHh9h-TTgD+V^(kTSy`7jfm+WB z+_1Xxy{=bz0Ks_kom`dA#rdQ6_dxYmFXYD;#;Dl?wm+Td9#6b=rYRS5Fw&a7t9^>` zI(1`DxpaN5xS{nj+3jvIie`ECCaOCZzxz!I_1ELN^E&k|_Toc~s2iRXm;gsdzs~3< zeyn4XumDw_ABWij$ssI_?8KoBS=cRUSJ3O6a*~fHQCghk)--Hw#f<3IqtECc4z7%S zLQR=@`fcmZ<};Fp%(+pnHF*9!J9l2&k?$#8ubUa)hfU@i*BdsLYt|olKWv6Wn0-o) zcrtlHzkG2nY1)Pux|S46)Ne7wZ z&3R&Mo=aF|8FKD7X&KT_LRyPmxJiy1AXjo$F3)XZn1+-5qSyIKewUh&jr7SKoKYU9#soprch|P!2m+5ZO znQ;>=*D%$Jku4SNJo4$q{0e-DaC=)mqd$G}%e5EJC7q{^9XLGJC1h^Yn3?6lXLpcK z9yCr>5^Ow0>Nr3T)aTz{i9anv5mP0kZ>;P4xqDW?fT?KoyRzC?Q4H%_VyOGOq2PMr z0NVYD!R7_{o*Xs?+NI&{jp-4^@a2Si?=7f?;C-XybivIzEqshI#eiF4@>EM}I+Kx3 zEGkc3ZQ>L-8wfSmjmWT&XuQwBlUT)cuzALkd3gV&EoSAWbBR=MX2t;vtHE3dx^TTj zwCCQRYA!Qt>*5r}BT9VO1oAUbxBxaE8P!C3uku^sLXBy1r!gbsyN`Hxjbo@V?^vb_ zq9_5sw)78VqMHnXBZiHAfX?$0jgEo+CP2*a{Fsg`}SGrJ!& z7j29r4GS@#iqeWlS;ZdriAhCnA4H2}>qnu&43~Z`vN3hTXM-fhWamyUZzrmIjTZ7&i&O+f!j1&@U%c# z-{SVvWe8e$e!-N;78hQjWqucaJJvgoF6NgteWvhj(vxPIuqa*ri_H%h^N|Bj)sg(!mc!A<8@6eP7YV#> zzJ}g5?%ZsVO5CU#WoXYfEj1zwdJ{Lh^45y^@-28VQk}s+f^WO;{b))FWZ{(G@;`bMks!FGX zJ7JU`A@KxOA{ItHj`!TF?ptH9iGlU?9OT`MI-V#~nGYn=vdQnzOG4JD{u}D+kjPpz z^|R}nfFFL%7e*(SI3vK9dC10aF?$ozakq@h-jQIVR}6r z&zJ9JdXIxhBpuUVBme9Tjtgk50u(EagxRoAIl$N1NRHVIB1R3*Z-hy&suTWBqFeisOx(p=aMubt??p$bYhr1Ep@ zeEYn^i(BwQDNFxC=l!SK z`vzcZ+ueh|M7xIlw9EE@oCw@;Bc1HpZF{8&ls0#AB|H6A5_m|z6LP)peq7mW zJT}(aF%q_I(0((IE%Y9Bkr&0QOz+c(V7s(rHx;$i9rk$1OH4QJs4A9UZ&i@K;P?u} zbIP{mga7$144wSGukGK}>(c^UP~A$5(DiS0>OwyAiZ7_)GTKe)zs;qZVO;}VO z`iGCUN+%6^)#C5~=cfQ>V&=$$Bz_HJMvH2|$&w>P$-{It+%K0(2C!mB>&|08uN58B ztZ=O?e5Hxv&a&nk2=o~H%XW7c5(TNn>AK=ryd?j6$;8)WWfC}h*Wu;L;~hwl&}EWu z*YN6a50_vc<>Ju=bv5XDT*FMa$)rYA`e68dKyP_{jAU@pNZ#(KdAuKavHL(^YA!0< z*3PB><(HT5{Z<%vBYyV0kLe_f-|cS%IGPY#m(bKyS$YcW&-o&1S2tQJ%$ zss`oQUr+q;vY>(@b-UAt?z0A4ZEBDJqZ!tjCG+<%k{>=tH8kRw|FSZ83HKxy2NEuqvBDN>`fZZW{$-m=@uI)|# z%YEAtO`;IkjC$R|Q|;S8ugmZfC|xFiw$t+b-L|^{dg%oS|3-S3M^OsrgpfAy$N1HZ z*^Xh?t-r+E!h8lM|6X z98sg(l$bw?nVXXnI66Ak)s?Rczxuydf`TyNTbAH4lNRSvr} zq2=OvHN&~UAumKQOA|mbq=Tv_XDNIp9{|RLUe8r{&#WAgAEQ^!Je`*tb|$M!CNuhK zv7UX13g!>Zfc%}=dR~W*&Wr|Byo3M8x?z$XE#)JDU1bmfzDVsQX3|R{e{(mOSIY*n z`NE`&y6PO?=gAmVlF^sO`08hXw!@63z>K35;?nq-{<X&kP`2KZfh!{%I=Uhzh#A)&OA7wHCd{$O!8)iQq-omkJr7TG2}A^ z*Q`65JI!DjQb6=nA>Q$M-Kb_?@pFv)j7%-l(?Kn^hyRRik%GCy3>T!;=upIu^lmhl zDf~9T+NB-)U~R3ggLPy_VA894ZE(%vUS*OnAQfLFzQEAty*shI{&9w0!O|UXd`jNw z>}$KK5&TxGOqV$;i%{lAm8be z@T03{@>R9Ne};>507tA7=li&(@G`+d7e-g1`AGT{ae)zsnsupD_2q z{kb`-1Pz0>UPJ#o+gTp>c2y55&%dA48|EmroM%2FYm8qbH;M+6&L(2%ME1%-?=S_4 zTxL4Z3Re!}2Y*P%Z!f+2UPZgdd?1t40z+SNv|MSJyZ}9F_Zn{>xbm3w^wQN|bv=in zb>D~+p4Y&tMU3yT01()#k4-4e4k$POwcMWNlbgKzdujU)fQ3SE2KkQgTLnp=-+);H zDK6IIgde$berf9ahFU%iOQ27He<2HAkq3CAs07AWwp}v~c&!16`|*7rx$0!ZuG0Wt zr;kh(Mb}27Ouv%~ehyUJpGq6zeo74H2SdkSy{^F7P%O7I!0P?YyMNVs-MDnRVGa6l z*0hX&5Q?38N@M---P6LR#>yP;4qCx9<%?U|VXSWa(m53U?&1qw#X%cc;x$uvz)a0l z0-?KP7R+o{dtB0;adTO)-DhUO+axX+3%;`F3sV*2^@1R>lwj@k_&1Nb9 zcUj0j)8qD&NLe$XKl`5Vq0dg6&GH#_ zn5P|&t4|P{pj;4ch_b-FyO+HxV36AR={Zd;Kesx7#`tUBr~TJT|6IqoXWNUV2G#vQmYZeqspz$~>9&CMmqGxpD$ zJIb_L@cTIWrznWjbdEhX zCFpUc-bmt%vT>28k~6G}n%YdRq zDpMZj^WhjmjB+}hLM$9EV0(R~w?Y6wVhA6g^r7b4K8jDjKm5fla8;N|hbZ1;_c}<@OpMH zXj*+R-aAM-7z#-D2|S2x7=70S?I2l1-w#>XL}LW}OOm%JF!zk8^#IT!?jU22N?qJa&H=*Q4O~PsP+yl5c9-ap`b!B zACtw{$TwH5Wza$1rOfVexQ`gNf`a=6a%0cro?)X2Gs(wa4!&JZSim)WdbAN25lJzH zRfP_rsb)GHIlwYIzt6*y!x1F-rv6Dy?m34lZxOn28p*OeVJ>OA%47ld-nGxo7-hrNHY9S$GPd-RWGK1t|LQ`$5|$<)3*SsvNzo2C_w@3a$G6 zZmh98rKpw=NZ3g8ikv7z*tcu#(94RAhSnH&!X>`<>Fb-uI6+N@q>-Cvpw;lpv#kl( zK_hty`cDjuKvU;{=@I!pe|S8;oCHPv_aQ0ps>U+Qw-}JzLoow=Q$>3~YjE{kPTRk| z(c`zcOLELUFsA@x`v4c58e)*So2A$sK`yb27mc&mI6z|N7w@*bfD_U7?)lClnh#7h z(uMQ6pGd-}k|CuHAkl<#`1@MD`Gkgl`H64(=?NVnxN`K$^kA;_f}p?zsT;){ZBPQ$ ze@M``LcHrTh7O(rCkS>{;w_Hf(rArR!I7+SMOs9hTYHunhvCx|NIek0wbr_0I21U3 z?969Jq;5>5&)K`5sC~la_`-5eaHPg0x%R+yCidbs3#u+P zebSV!Zf9So&$RZnb9zE2GaEhEil*sm>JjRx+LaEPMr=1^dv@)&0B`*@rtB3jaqF>3 zzn;-C>S(HKxm!|}52d{?O60>D!e&aRm;>cd9=!wZR7T;$U+;KVP5bh~1k$|)4ro{# z(&GEs?pwN+Bev9J_P)}`Vx5cvzlcU|8nGJJTt40hX}@|u%2;#DlSC!r&>JF+GYgGE zPrw%vM@REc1q2vuM)aIPw;sOOkM8|zqOxP6Z$gxnH$FU?_RSFAZihd(#rX|)cuL{w zpDro2v*D-G3w*#GTIBHm+bQ{v6Wm%_%g;bjx~r(&#HTS)X%@KV!# zZ9b8<>#Ed_(t_tJk<(dSE^xk#t((|>BBXBogl+e9k~!OP;>p`+B7J*D_4%u5seKDb zo(a2DvnT!)gUJUwpC;VfCf&S-pLi02*WmjqCcY6F?|S@Kn*f-?%xjaF=E`jjnPZ8k($=&8ML98Bhi)7(6KR_tpBqg5%yK|IaDwTRx z6^r*y1ySe4IbcNQj~%da9XYy$YX1G}d?24w<6y^kT&kUeP5LPzguaQi)jex;8J^80 z_nSp>DV=LG-Gzo8sHWr_!>aT%X>L5}y|1~qDacPNyWOO~Ee06H*ru2sE&(;-2ycD# zSy7Ix*5!~g67XThefFRhKG za&7$e)9MrRl}^>wV^0n<6ltS*Za33jD0YQ(h=!ZN{3qH|x*E3g*=ZN4fMRw?s}`A| zXpECb;|T2`P&nhla0tTn9dak3L7PF*P}%#Yv*aCV%#3kA^5y*oP+r{%RDg?}{fon= zEiqaRdLy-JBf-@KY@=21;r(MPHYeGq&+Al*v0VU`d&Z33z+lxa-=axI?Zh$%S?_-< z7We&*rsokWeamM}A3C4H!yaA~09H;UUGo2P;bw)++I5*<@vglXzgI!Rv zwBNH%ugZ$bIppNk!_kExrE2Df6Y{LUO$dH}+$z$gZUN_}w$ z*jO7-9NlR+ET+TG4^YNE89kjbi;E)T6G@Eb9DlRJoD;MxDXET+{i?@xphE%eN*fqE zmoh-tp>>&cHB9^r)Dw9=NOM=-S(BFpcC6!fsKMT_P_c*CEm~}5p}$48%6>S{o3g&X zI4YRYJV&d4xzZaIAANf0kWnda_f9O~ah!igF?KWY55zOrV|R0}LcjGM=LJ?rIqF!_|IV3&c7j*)`OW;!%MPLdi0MEX zuw@`l8&Z)s0rQh)I||e@jS3@9qHl#Pg(NrykVR)i!3`;nk|?+~b<5KK8g;M#5Mrp} z-smQP`k|&|gvY6)Q~Z{?dwj+LI6cvs^hak6jCX8Pm+vp`zLP~80^6^|e^V>0-sSjh| zg@Eajxq;s;`;kA2Ydajv7)e#&NIz;_Px$qwb0V>%z$WrU=(pmHX(c)UlP(d#Dcs=w z;=1dO=%{k3$5H}ci$6Akgk&DeuMAJc7R9!0)?i7-<&g8IJx!&;3$go8a)Sy8UQ5ef zv?j_VP1L-AsW8PK`Jp>+=T~IdTyT@??Opse2;ZvZ7tjU;J_`}heh(II0XVw=gKjlT zLI>22oSD!q)RHI9PVyZpp9NdwifB6>ap*b)0X67QacOxo~ z3aThisFDv2WR}rCsl9dY!21geEy)~JqaZ~HQz=lYbyr;fVem z3g+>;cOxw?S<#~UR2lwJ7H&P@HzUS<-o$n+d26@J&6Rs#z+F-eKB=A_#5F#EWN*rb zr2K>ZJv<(K?1+B8@DlM{`Ycr_fzr;*kei8>b%O3Y4TicD_s21%%e<(oZjWTs4fx{h zCsAfzJssp?%JTxUW7PcP#jNJv<9w>uuP}*nU?1gff=0jBUQ#y`FT(n;7vJ2{OrS|M ztnbxBEOb!jpB`naN6TJ)UqrQQf6D(P&fIx6S=TY;j1F|52Kqc+7QX+VPkwj>)3AM#$d~ymE42zEf60ufUpT1 zxGNrpp2C$S0dWtddx9RXVCaHrNoO{xy6{;((?vw{H~$Wudn0d{i9x3PQ(M*L-EZ$C zA3Nk;*EuT~v>wtRvl9L(KV}YNc5*1h>6f!X-%bUCJX{ z-Gcpw{1M!I=VkG;Z5L4kk6H8txf#cKi1VA6jA;RbykAwXg0b9w3ITEUS>wp zSpyI039QYUCcg1j!GuG$VNVh_n-nv|PQ@=Vi0N@fe|Eo_Et|CO3QHkO-r_HGV8lko z?vruDp{|EC9WFpAE)sGESEK6C_>oQhaLYV+%Y zZ~P-_4Y4C~=^Hi&Kb#pRin16wB_cyd;I)!g=ZT4_o-ZEh?u$tfdeukKDwxX5zrthM z#$G&Nlh(&^cnHPwPD^%3j{@@%!@mix8M^N?iK0l>lWJQ{cSg){gTyEothPz^sipCQ zOwjcz#ug%|crlm|yReQ2n0(82Z=qAG*7P~sP6nT6HiD)gs(Y-Eu1w?5rc_=R$k-Re z3YL>7N%N?Q5A_aUw0562;v7Et#Yd7dm^(-t>U6->*FU&MCl)M1n)n4bRw^`*9V(Lx z)Gyb6-e5p|Hx!|Z=(!eKvhsTDd-1UOeFYlGzn`A5FgkObO1+tiI|N#8p7|mTe*H5( zdw6@zw$q*g0(g^3PuaZ_HAsJ#&u;B(>DPs&0-0e!fpY5)p;%PEl{lFp%J=gepEs3f^$vR_gYO40SPf-~%+iBgCpu@xwV} zvp4l~dj2zTF|qFEq!ZGEKk7&7Tg&%qyJ_pHba${^ZKwX&Eq`9=(z_k*|_4u5`$R&|}B9JMw?b4d3{_*ToRvlP0`y?!Fi z?cE7I#s5OGR+q3bpHzTgJ96RX_7HmtY?8_oLly6MqrIeX=7Ksx|p*z`Z?n3Zv88)gy+Br0H2%fBepf6Ah` z_5wO^HKX2AlMOk_*kM{e=RMGF%?SK4Y6}Ys#`@<*@S|F;*#q$QmVJicV-oD>@NMH@ zJ$IJa9a@0>l|82wpt?on?2zf%Q<1R?Xb1N@!Jv);=2nz0KBZQ z_qh+{Y){|v6UbVasW_$im<0u)Lb`))_k~a2)5v!9*RK9x5qqmaNaw{HiUv^^MtU2# zq8V7^L;umDNG#1WX{2N)l;bWR8bEfhV#lGw;*5OD>XtOv9#D|8m z^ab8xKjvbE0$`1o7QYnOIZXdHNp=Bj#rDs$HC)C!!Qh>PsVEN#{K<*K-=~zkPRXRO zIWR9tl2gQx4yx;0r9jrXvioMJuuQ(LF$9V;Tj;Fx&fR``f6K!}nnr;5f)Qm%(2L!y zBOY92dbhKC1LK&hL7gR_@5TY-_Sfyy?@0iqT0(XjIOe3*=q&)E=ba>p z<{Pj3Ws|EvdR*quu%Hc}!hj-x(8g22pm+?( z(RY&O`$(5)|H8V=mp}nk%K(T`43od=WUD3LpP*H(G~;@W&8~?-k0p>2T2)9-sUn3@ zQ2b5r&-WKCG#1@t@8!^sH9C>Q`nB)^E=I;=B6OIHSWl4!*tB$^&BQFAC0zj<@>=+o*DXFTzes&b`iZdh0-7R&rw`8ia-n2njj^SBv z^sb)UTCPm5v`SJ0jn9ef>_`G*R}H1xDo<%pocxTM#A~3>hd$=+iTcY^#0T1EZR^qk z1jU#Mk_eWLrLfLeebGyn6OtiOJis2lR63=aUs)L?MvR`k{i62YH2mjr@^WRWURYDA z;0Uz-QvZI9@-b`6_)&ok>qoCz2E{~UOsbIED-E9Xd@%l_ux$8jN4I$VvlaRjo6cA7Wq;N+RRY? z^x}<$=mq>u;}KVxM!$v#8jOnxo3W@rNx}uK{2eLcfTPoR-s`gNDCLh78>uP5j;H-y zh9T+s_3%*c*Qm>s{QqAiO*HiXs(sR+mSEe&87UUt>ZoWbrFx?KAXD7KuF8R9I9420JphudC zbg_<5!Nvo8=T{1Wnm=xf4i4jXoXgM0ny%AUMr!fVIt)syysh%0O?Gii#U@kcazvqn zM#h}`EMA7&A4;Ktt=#RlyCSz$_>3r8vKO^)Hm(%J*7Q}aU9m3m20PF|wP>3kWu=hZ)GCc-cy^Ex0#L?EY`kp||HuQddElt` z;A?fqY%wh7_0TmvaFnUgW}u@WCBZ-x@L|XjQ|NmEf>MgtGN%&>aTot}0lfJ`@P$5e z@c26Jvpp6jf&TaW z8p}a(a2Ww>}k#Ok3qyWBc>%V;upT8%t-2$-;t;ELXzlf7< z-j|LIxHU1`URxP-xO=t#pf{P&NYqzEKcAnMC8K7OiyKskBP6DZj#B$^(I%GSZm8uz z(x2AQ>8q2M!Oz_7I%Mvy|4VVB3Amm4K{$I*2g5~FfeOc410XUY8(>uV{YReyM8^E! zIXt;DRAW#3&Gd85DC6Vp^Caml@afHJ)DzT|g`L*fba-IQpLqxZrS-+d1v|ST_o4Zp z79a{sN>WU$=uufs^*@8)+GN{KR5LbP&@pNtBt_}t#c)drxMO)f3Esgt8#QX1BEP-v zWeE)>xawsY5&-$`#pQ@d5WypkpE^#DpRSM1A&Cu%bO1{V)^*MGr$&AUYyjgjkO<{{ zXQ(C;XQ4gRz&CarI03%6#=m)w#dG%5M~vPwwn2StirI>uJg|LnTyk_l1-honQDfSn zlS|vHwi3hI-apNH-|B!TOKF#-r?^WA9&=FOnPT@+yyA9c0l-zW6rGZH z41?-DaZ7&)xD9O8e1CA{dI?$07o>h&wem8Nm8-si&WY?6NY5OK;BP&e93W>Z5hrp> z16&k*9@nQW6O?t?bud?F#+ZI#7Pa+w-uon+lyOT?}#uDE|hsy`B z%=-&6FoY(WhKrx$1WABR%knH9(t})-<=%)!PjA{_pNb^}ptkL{*>QKRGt9A~A|%zT zMe!3_>jw295`5!h+r;r|ZDezoJ1uU=CbbykVj-5!(?$UrGC|I)yMlJyL zv~RK{Jh^u`!&h7&0O?j3B_GHh`~G`!7}_P(`VoypS-f^=bIcFYmOqY$RR^?xe3^0w z;JLi07w&_T_Pw5|2PQI9M%%^RbpekOAdlHd1T1)Fa#GyC4P8xfCbwXpsuq z{;=DU?<4f`93-XBr62h>_~RScZa`t!T1(e1t=hobUU71Sm;yAvC1A$V@6|Rhc+#-vZuWGc3G~lY|jaOjiyu zieMV7D`7d124ov}U1DR>^1}xYsa^j3WnIO*V9t%ZoO;9*W)Lfd{7{oCLRg1qY0nOC}Oys5pP0#N^sH{4dWBrJDq$b2OoH$J@=;5J*r7 zt`4UQkXRd{&J_)JryNbR6P<#|C|Uljlq@7dY-1Ptd})#ED^nVt!F5KjYDie$`8es zz2POuo#&Q?dF~Re#4WGqL@Jho&}freoo^Skf$dqc%plqmMjWx<1&b{*{ZEW_QVC)| ze8lEFvf6G{K;8&P|1S(^0^Z3eT+VF4a3X9am*r5ifvJHHNnOn{p;BN|U za4PcaGYM-(sYbf0lIH6;qNBNw3b#_E$~#JLH@B5gUH-y7tg-cUcvt?+JHS(she)W8 z4V71$pBtd_`0X=Ip6{0|KM)L{^W-)D#BsiqDEuPNoRJv`7KltDEWfdOi(@Kmo?8hf zjC<>2o}*9D2k;V*R$7E$GpE8{UHuwi8&om|h{66a*(Q10b&q{4HIGa3|G8{e5@)X5 zWaQdm&4|a714C~YIY>9Gf~JY1yjC^8Uz%o}DRxCMeJ^EGauSi57)oXuir8Jm?Qli; z_t*xo=t-rMlG3$}{PnPs^S3Ft+a^nL2J^EY_o5c#&=9Kzduw#=rfkbZFss5CznmNn zu7I0JZkZOt-5>wbvYtr)*q=H-vBJ>gA-Qa3Uys76y#XJ(zW2(E|liZ^K%qJkU)Hgx)g$OP{z36zq^cljaO^>CV9uh8O zaBVJ5d-`=|k%yv$PPhTv)o`?YCTRQKD$lXw>F)y@5xpB*NC4E~MJ>{LuQKZ>2(uT)uf+E`h+I%Anka}0O(G+jg?KW;# z-=dQ-V8TuJ*4Q83x)rJAdaG9roM^^10SOPap$}|L=eBiGysLt@`>weOeyt|~o(1(9i?G2%G+h;ro zNB!g2=xk~4pDXaK1kmzX4|Xw&1iFaz^h!af3aUC|b--gmjELX!B_Q-OjnvRPGG0g~ zf}i;IpA=~7r_I-)B1U$5hrD`NL`_rJ-K7wrPUA`2=(O|b$-d%?VZ~_oK3S1SMbmQ8 z5QAcnG!8u%rvxJjck9F+;N{*#zQkP7s946uf=19T<(?ZBU!?-U7)+AQ+*)G&rHBIC z-ASL5sQ(1!;<(?E7KrDI6hv=^Qi4+k;-qoxwGPRi#%+!{JD}!qwNd}ZdFGBw$Pt?9 zPKOnZk69Uv73|;dHpT|}O=5W|jqwdNau0>sd!+FyTkZ+zwQ*l_8j#=8wav>Ew#VDC zM7Av94PbFwD-eIG-Bfx&hw8C`Njd%OH7QT911JvhWMqck_|Gpv55; zYri|r2k#|WYx9qSKY%^bUhB+0Sqpq@@sP+an506}i!P&8B~*u6YGc#HTV|BR0CXMk$%eww;u!{9qhIMM zgr~exD;r6+@{4uzeN;i7CvR>=t0<21r(0sBq!bh}7@TvHzj`laQy`h(OFU>ZP}Zeq z%-UKLSY`M4{WQ+eu>c8tyM?HG8~O2^9YF=MjFb8IX=!DK2=fh$@W0sEG-azofxDdR zJ>hW}6))bNIxau-()L}i3l+)xH;FiK!gHN>9QK#0cGRF%J#Q3op0l-p?G^pePYxe) zJh8IOpR%vejWqvKrK&9tUmlYrUhmf0QmVFR%KATZKlCp9vPW-;HPZiC|Nf`0xrq`u zZ~qFVE-B!Gg7AJ$#LkHrh)=_}=5;Vli3JWG1#HKpG`8ALt zZ1O-oLJqNVs76K7nuN@8j8UBv7C0lXcgv0%(a+(k!;4=EG(Tr7kH5+11Po>;Ue?^A z>>F&vE1@`0XQlPYGghfnV#a=xV_|=7YA^ie90ts z;-vh|$jg9nz*ZS^wei01jTF4x7f~J`IJ<}p=TwWXZOPDuVYMEk-I^KcWYgL0k)!iu zkJ&B$_^hnR3u+noy{ZFvL$#bwmDdx&-!Ng&&z){uB%v*1@J^P3G?7@_FDno?BbCb9 z=;c|$T&gWvhVnvViv$^w2m&5JAERCwyyV%5?|mq{;M__}{|nVx@dJ31j1{MYjnzk- zR@&GfAStqCK-Nar+#$}dA?EDSI0|r7nI9T_L-Z5;o4fwHCQAGuJ?&&IV66*=)+`Xn zu=*A404*f?p?yOW@EoELfFc9J#Z{zQI?4^_3+=l zDt8M~aHCw53Fk&h#804_KL|liDKdcoPzn7a#@_x2iu9#w-0N}!C5Ds8>y_sj?Ca@6 z!8^eeA(7hRN>FXo+1G1*j_={PEpvRSUNsA<*DLtHcF7$P%yiW=J3`wj(Zr^`;m2~d zF#+a&kffFJZ#h%fHnxxsmFKO_*g5%V$q}QrQD-s-S{em$+P)ge=%_MF0Ugx$HuM%G zHD5l4G0Rb>1Y!`#;bStyoD-Xy&JpyPX;r%!?(2hB2OOx7`4eju+K6>WnNv_S9YTcR(JQ(OqG+&249Q+7G#x{s2K9K*!(x(1R_$6PHEI@E-)@8uNQHS!Xs#Ic1~* z*~C4ewZhWtoy(A-v3gF>garUG8Drhh+Ja36WPjTOe<&Erx>unnC^ln9!I76LX$(0` zFqZYXF5||GltNA=gZzi_zY*?i#$d|3IdE2NNFj|dd`!Ry$B)bGH2T3<{;-$vwwUEN zK1xOFHmX;+B-=?aBH{z)j(e7*zUdT3)dj)|mvTs~CHWgYxX6i1!j^_u;jgDEQp#;@6>yIVPhaqB`eg##o zmbE^-qId?RV8n)#fSEdJ1prXnG7AV|$^f5eTyc-Nabhm;LJ;4}_G03Cu2yU}+12nF zmP{ag+0L|)a{&07H~NxqXYk*g2zW8lGl2x|CmO_pc~Xd;U<>eIy_o(*qVZi`oRy1_ z`$ryGM8));>i|jLCNqD*asdi~EoAM6zegypsQ)rT)H!q$EaOt0G{p*JmIroPW3@1C zBS)K6ibvh|xIZ&u;kHi%@Re1ElRPiHLvY6Rxq#TjplNB}E99A&tL@0~y+pvOu1vo^ z==!4KcjHri+b+6pdvUQ?b!!9F`mtHlz?Rt%{254B#HWRC;2JJkv}Q!am>3$_ zpa%bq+8p0EQ%x>ES@u~*hU--UwX#gPPOiWVq1`TqV02>g20Lmv!8bRp46OQ90=b58 z4LK>fZ{iIij85sZ?&DZdsw_noe=BeNInkClU{G2U9>F`EQx@mPM-5MXio*UGvz%YW zm=2W{ZVlmO;j||c?WkP0E|0Lg0Q1w1}va8o8{zS zJp_%~Af#XRb>k0b<^+iS95`c4_-e*Ms{JYB(?dZy=!YTD@Ki2UBY@~@$~LztvQ!dE zw{{^Ucs_k=EJ3O|h^c#ZMzbrTx&YyU6W>NHkBSK@zG#*f7I9pRN&nk8c81kR4Hzg9 z8WIg@rul%I~cK=DI7COcgyuz%*Icga?mqJb@d;y*#Ta0!VGq z&FqN;`1tj1_=T$NRU5Ji8BipBGL5;~&sKNi>1rnaJjonz)4=YK9c^)Y3ebrkF@-Fu zVC1KSc%k(ana}H8sir%0NvwFNsV9BIxezak+pfN^G2}DksSTy?@Fhip2Y~(gYubk% z=6FdnL6lp?KefSO0D#sC2L zh@bH0nd)Is#xm;BN-P)OwN6dFhxzWfZ`uH<*CNaSJV8LN&@CHn@`r?xwO?!r zYX=hc)GywE$mHzN)#6PC2us6Mqz{}?MHrsh81{UOTnR|w`=UsTQX5*SCdP&9VjH+m z$pkE)x>v4oid>v;Uuyz~0;QGjfOei z-zFVY!mJBgC~!Lx7vuon2An%T%+vW3TE%C{jTbZRPVi-^ZXAHD_#i^Ie~$-%Hz629 z+z$10n7470Is_Es^vKXiF2EeF!pKW$C;hI+~ zdk%42m2bCl_q`L(AV7Q%QcVsbhlqFlmHq4k_Ih+FWPQj#^|YER!~A(O1=c->KEn7;TO@~qPDm&NExdqfx>+7Td&Gt9 z#!81<-w^o2de5V@*^)3QTZh1VsU6b*#k6wYGkAYRX@e11T$Fxr3VW;k$Ocpm4NgN< zY+VN!?Lud$642O=j>8N^8B&qj{H{^@+S^UP|HicVnxMlaK+r#1Mc(8+yH1cM+0}&o zPMm|sN_?)Ae&Xp4&-WKiZs&P_D?{di4Bg06S2MAs7QO0mp;A9ekJCUz3pF2A=4J}qjoClIJo}!qTj*TIhBS*}szJxRAKpnT^ZQu!3t3h2P z@FiybH&eA|^wq0AceX-TH#*waf?Y`ESMy>aF!(^#9)WR2-tg-5M^kZ;zfQLrAYD8e zt?$)#^{$i_|1;*tE{`}9!bqgBrjQV0uB+je-`MLM<3FQD@|g%o*JYd6zb!)M@GNEW z6`MW|xqdb6KTph2apVqS>?ett3aUc2{)o%DGN}u`Ga5Zc)2Mk6$%W~5i?hkHADa@C z=K9?YdXf&F1v)(uaP6TUEag~T{oNlRv(7smzNeT?iE_c3ssn+;9uuDNpN_ckTnkE^iCZ*d_Q1{B6B!OBZ#@+W>-MhlrJy0R{x^X!PTSBYEsiZn;3A;b#oa1@1JooPHQN^CXXUx=@5~2k`t7-xYV^@}m}M zbps*hAlr~yIe?Dm&+OLLzTvEIARW7dw5=KvBPQ}R)cS46=i1~lES#g;f#Ga}iAgH@ zW;6s754{x05Zmu{fR*@`CuK%0KJD_}Pk|>_visiP8J?Xb*;} zj=mQvC(EC(0PmhhN5)pjQbf};?d!DgEX$f>dz=-5?*7#-nbO(7ap$s)V_}|ho+vr| ztCn1DKS3v3*L6ZCUw}lpfpo0`;=Vl0%Jtg1Mwme0oy6X@ujiZB6Bx&rp4Xpl;^ffR zo{U{7F>3nly^(ztJtw_6?8Pj{aup~AW^4}j~?$70@jei(rtS3$XX42^2gNs_55%NHeij#6LY(g|$ z;!|4TjC{%ji_F-migk;yRQ4SUx!_z(;4ktuXHUVh1hl4ns=1o6>t_4PcI>s)kI$-t zXl6mW0Rg3p4PAss__Hifs%-XmCY0esq`btGAsSk>*H4lGyDvxAPM`0ZPQ*<7h@RIy z1L%5f-XvL<*x^(EB!q@SFutnnapQdd8m!=valRcA_li()vKbX(6Us*FlXcevs`2@8 zznRXoeJw-L9(@BDO@`+(N{;GngX>pvSTW>CO&{;T80c*9mrpVnz{h*kO)}lT2z;FI zK4tjJk~PcC{cSvEn1hZ#BTX}l`%?VyIQQo~I%<`>JWlP8FWuEA{RB7YxPgGr>WF_F zbm5}T;s%oOaj?#qFP(8K2JLie598H_$d03X%(kYg8Qk;|{YX6O$VcgOd3w2^9BhEM z{N|P7HmXn!OH(#fn-D|SSrb$5!^!ryUSH{>UWy0nO*iEQ_p^n%ap2nGg($O5D7~l( z*sBk~i-|5$t*u*IB~USGHm>C3uDel&#$U76W%&p9PXDqa=M8(a5?{OTXXkZ;QV@)~ z_p6=MxGlS<0onR_aBv|+ukUTGXgHqdz=Sp978>3Z`RwJcaF3g zm+0ZG`)D2HuSb>67&U;>mXy15w#h58X~J@Jpw`fEudj`q?y-YRImu8or6cDMv4)XD zl%>=3R4@jK09`l>DMLqm7^DNKm(VwU&~c@jc`a1=UW%nAQSX(A zK1uNEtM>v<$UEpgkac*UyTP`nwF#0x9Q+8e$qfL&3)g?aLf&lfGUlLR1rl0XQgO=RJVrHDlZm`>tnQksa2vl1M_IR0ivHyp$>GTT_I!xSvn+JjI zQON?0{D8f&4KWH{D|Jxrw5)%UCAd_UQI3SM{CEH#FU;WlT|sn~HGG&cllFqr2x7+_ zssa<3i<>_jZ3iHPfOr4^J0T$MA2n|x|Ge-qrcmzrvUI8L$M^OzTz&^B@e+p1?_gG6 z=RS}rlrhtO6SKSwigI!=q~ zSM_%;*qe;JQpSGc`i_=(4C|D}XSQn?U zRF)y>H7u27M3SReD$6J)kKx0UVZ8RNjDP&kMpwRD}L5iEY0V$%nt~HPl?LRDU->v8-59o8)YY1Wh3DFGC7Q}$< zxF80wUG2cH8VJZO2x7n*Z`Da8hKsjGupN3BhTevu zrJ;TBGCsPofGT{r(mD!5Z{zXs^EkV36S2_^+$bIe07yO+f*63@6d;NXYaak|bpbJ1 zg4)sH4+f!jboc@yl%|NOVS6!9r-GY$F<=$(RFx`ptqotIJD)D_N!}m8lpdn~-XfrG zg+09#{q#~4w4&MH#bV2@R%eZxHK)_6qoDW@Nsgkr^8-XjPGft&Wm6Rbp(wWZThNj- zSZQdej0W*WECg*v!~)8HY`Z`9X2wT`Y+^Lw{ylC$Y9BB&^p1*aI2ZUajud`^N8}&j z3GF<@>RSL9ktcE=t~bV@iV3J<0;ND0mkLL4EAWu*URD$lkBc|)nffJU#66^2+xSfV z5(3C!?!fjih4P^y3_mS!vbgt~4|rE2h(7P+!XsRlF4+c{A~;bg8LGCLU@!9I}=Nf{i>_0kpfEPK)3pR2p{iQ0^UUi^+xOQm$`XR7= zFL@oZ>!lsUM!&=@f=l9V*oL`0=pg{}e)HuhXmMNQ9{>n~Jxa-P3znl0hu*w5Y!$Dk^fdt8;5!a@={*sE`C!B1{x(R|pq0#C$Hi(J!?6I= zfPh5FBoI8m|5p47{B`*R{<7d^3T#5EZ=hQ1ptF4wnWpJ$7JX4Dohk|!zJu4^*6=59J&Whp zzldtBV;v{40CWKw^4*9*kd7}PEsVbc?R5KEiqjS$sF!vuTL9Ugk_~I_IOlpj1RzmZ5`1#3Cm@Km{u7aodGRfPjdcW3SgC-Fk>^0qrTy=d@dh%!xABzx zGlbPw(0X$UIQ9pa?tC8GAItdC#1cNA{WcyBeuTx;Yk2el38SJ0P5m)G*I7pK))Izi z7BTMAkjY(u|FyqG=i?8MIrbpd%BPW6M5|r|Ax6aTx6_oZdm{vj%-LzmXw_AVpz{KO zSl}V2Tb_uMk&mYmxCI@#l?!(|j~4A&v7ZckyLi}~x~G=Q!Fkq`nJW|F=4 z;Tj1d3`GFNMDjciPA*4*12HeJh*s==UJ>!K`~|EH&)`9A1%=gDaBV}w%0qVpm6{dR zM834DRAH=L0RSjD9nx%zx?01gAOZ^Ta8N^FNJHn^9RBP(-^JH7;Macn z*8u<<7yl1Db4mcPjA*Nl+5-_p|C0pr&1(Rz;py21R^i8{{x&ZCsEy$MD~QiLgxuU` z4~PztR1N}tly2Y<5&db{6huq`7!8>(`c?&25KuN81Heb9L2~ukT9Qsg!i#Omtqy@3 zkaxCT+CiPl(yNztaE+Q5NseNj()E`hTgcDG4Vc>|p%`xDtiG62`Wl*>Ydwg-H8(#J zHY|4mL<3}KM zO6Y9gv|XPd^5m_zfs5Zorn!s2h`W2wEwwTmHax|~_XDro+%31h-#R=|op%mz4LaPG zti`L(N5pH<7qzZ4C%=yI{p%Q?oxsw@(ZPgKJ=U|9cL|b(jVioB~ z0hvSrr%x*Q<>T+;_dfF>{^c)R!LL7+#_>mvU^3pY-3yyeOuH%R;3T@nKwAmgBmg3k z^P~W;E?^qicmi7Fr|k~xIW!!$@-NG1Ng1-iwWy55F8mL5ssD$6ySbDT=uGT@#T38;753 zt)aBHj+9SBQPnN0J^@v!;>MNNv6tV05RG73vLAN?UXaCXTIw0&<+lTT!y#*Bcbh+9 z=soLusiI38$msKV)p+R)I|4jWpT1vOB_hN-Ro%wp;pY(;>KcfC?aL=IJ#D(}Zms+n zle6aUwpTId7~+9ZSdYO_fzH90tmiO2wS~u@*74kfui$s?`aY%;?;+i+azlLEN)YK* zpeI6+{a&np^q2? ziM~$=1L69Sj&){(%vB0$%=v?tS8#m${2{G+BFU2*8}lk5&`3;k_F^~-C_5N#J`XIfCQ-JB+a1s>{ z<1%EqH4QXElkI*kJGQj8Qz>rpNn7~o^Xc!@R)W?!>1Gu(xmDomUtqEGEj%^#G9HS( ziez{cx-^Qy(RG~t%m-*Mu3+ZG5>6j)SR5Y!jDxSarAi{Hg;?utzx$?87rsS?D}2G+)?2(8Vl*!kcCWQ+p#R0*Z= zUKe4%lwzJVFeRIuAR9J%ko|VcaJyyJ@hasy?f0wn!vakxcy;{RO3(_W)zuoL~yeBdd22<4mHrZorS%MW|IWSnBeP51%TNw27#(2 z6%dH(IXo185&wMtWk|_&tD7{PMoi}b5JP2K3EDaU5zbG>cpRLS7}&rZSGOP|+S?=v zpy#?ym49hqUED15qTfqiWFO7>*>k64!zKlgV4*FTNk42}0Si6300flq$k*T7HMv7w z6U+=RVF@$2T}-rgF;pvHqP2@<|0p6p!!!W;g9wX?sbA|=%-0jB*4CgDH;_^^%x*6u zH7nzIuz(ZB$5;q%;^>%&2Nz;EJ!W7wbqO=Z8WxN1VPd3=qhlhXa}$^yj$tfV#H4l$ zK0SxH6vMtIV8+)%F>jCWW`V>|N0OuHwCu4AwT@uLx$}UIt0(dKbZk8UD{h{SrFR2g zKt!vqA|=aK3_rV1Ur%ldJ#qf6x{8P@*~WFX2Bj%lM1Vfls;lq^gD~_qjtt*G?!7!t zB}+JcZWKc?^M%<{fUpk;%A*MRqbRoOm>wE}V902+TP9+|H2gK%-SpFNNCb4CshBTj zQ!xF&hz*j@ykDg$A|SUA zf?|vRr$6H%^Lg`P?n#_K`6P3!^QpLhGDpoD(0w&)eO+tYxIJ0Jnoo^c`38OB|JiqP zN;a%9di!Y7k6h`X(C$G#fELf9)2d@$E~23LpvALRAkg-H3l&YUNeac5j%S7yL^{yLF_!C16~aAOONu-R*Dt-XL%_^>kioTUng!Vn!CRLe<5|o5-5Z^O7m!=X1~22W={6Sp zuVLD^j8bFA66XmJJ$@uQWEuZP4*Ec%9ka$#aS4KcAR1F+EC{-J4mnm2Wby5dr}6$r zkKtlCVR{UJrB`PAQ}qv`o8(; zZ^NgypbJ6x^s;q)zf#3Wu#F%T%wQE+wSw{14UAz6pOFfPcRm30T}+?~pPs{>n(&l? zMMJG4nDGoQ(f|M(=l2E7GH56A7oq49;zk4edZH(jkLK81E{tWSgMwQiioBp;aK<(v&fhPx6(Kl) zr%#sS(?E~W$7s&ZX8!@Oq*L~jMry+SJFU7c7l6(NJeu@F38j%MRS-#zB2?SLDgBls zHFPBa^3c%NkF@_5*~&%Sx^fNcwKz(Vd6bMK*4E2Ft%hv0g^|t%W_7!8{(4VhTcZn-@@F^^Ej9J5cfw5 zXoa^hQLJMtGHE-9MqVCr^Y($>)L=H1m)u)0;n`1;0XtY~s zt7UW)A3jpf006R`5<2l^U}qQE#srj4wUaz=NYdgWjs)<=qFMYi-0s0ULJ> z>Q##vut?3O09)ey0U=p8M%hgb3N|Ozurmf@ec*6kEDY z3Ls)X05roBHlmO#RV;O()2d@UA@rmG)8I+~?u&)KzJC2R+`4iN>ASy*Gxz=i=I(z2 zvq$d7?7dH+9$m!x(g!f0U@op8QoDr&$`}c@QLMJnY-_H_Pe7zH230X(aelE=gBlt8 z|HymuCrQrpzVnk=Sy^{gclF&pJv}`a2G`&qKpX@}z@#LKl-IOqNe+o?@9DL}KkWVk z8v*_iirCPuL%X(PLlJUVTCXjN;sH>^eGr2IFqr%3v%0#ws_U+-%42`Xe&2dCE32nx zFaQDW6VXvwc~xe1KG*lTq!36YVz}`hx-)!y%GzMoTIUFt$=1vC;|X+QoQlW-q%yh?BI-V>e=pXFWz`z6Iy!dW@2(^6rQ7l~tzqimEzsT@XN)z>w8ykL zK&p2wq(In7+oTO>_qy^=teeb^;dwn70T3hvz;4}^VNux=t^^^nzK1B_J3*T<0&f zb4Ckjb|Emtr>Yzv$k^hX_lksO7bKWpFf;@)fUqDC0z(K36;F6NKidC?+X#Sar}e}3 z?nf^*Gs|qxondAD2D!;3*_o5jZ83jxfm-Z1*RNkA)x5>rbdFRa##U*asflq?i5Qhe z@3ulfFg*+`f{ba?h)-j*HnB5vOzu~Sg_&O^-LuHpP3B^47TOVehxr9Riu~SV|(K?m5F8AUJ&3@v)cr73q}?D zL@~N()S>R9f{}s*P$;Yvv26EU?7l0TZp@~dbaA9W=p=HKJ%g#_9x)wqv6^H~!MJGy z+}I42Zc7RUu`QMKlU33QU0MJV7f@UUb>EKVkv4oG6Z2|Zef1`5Z@ht9UWdjmnrX5) zHOtW#{~^1Ne3vz?&$Y@VS8C7FH1d-1{nqh8Q(pjrFkskhoPb*pwhqL;(k)Qj1C>;! zzn9DpNbTM4wgTE;bpv*qt$?q;(`-qhV5O$$cU$sPoU35K*XNVijorHw006ae_oZ|^ z&wu{k{vX~x_crH#^$Fkj$^w(-B+Yi0)RFsGU%!CaTp<~UPR}7`X6W=B>eUic6N3<* zDh$F*uddTQi%O%1-rpZNmK<(3r5>+-xAlVWB4{1vVr}N_3VYjoXsMR$HWdEnhJ}FI zEodspIrs`gys(K z6Bb6|yATQjK-2X$Q}Hfc9Og1TT8@UMo3yXAu2p^a_-$3=_E=i^hkNxdkS$ z*dAEeHixnVSp8g|MfvpBlVmrsozI+0y<2G zpizjwV0OX8LJ+9Fy|4z%RF;0XB`pUb2*jtE$};QuymP8^<-nW0ZSSdvp8Xb^4%{fe z&+cZ0-SQTz8#bNsIOF>-h3fE#hgjMG|d?7k} zDe8FfU0rXuHD>G&`F{GxJhgp;r>tL$K3_!bcDH4-J6{eh`g2)DAwfp=d-Vpe!zmC;|%Xx1WF{enVZa{`T!ip!nfsK|;fai+rwB`?5?} zP4rRo1k}jFje3(4ncyJMD7vi$(CK!6m@?BZU0p4K?lLhw!ykSB_pv*DQd*3h-KDe# zrAt3&x#;`pt!9Im=_lG0bH0!ef}qoLq(2|l;(~O~BAzNzuk8zxRB^~kxD(Pni-q_a z3+<0^cc;0T-b9NnMDMFu0Rjt1UOUJ7`L{9O`M>Z=H<{6Lc+dV*K8`=c)tMP~%Fpwk zrcd*s`;{ROakJ4UpW1I|5@EuJqXMdy7d`TXHKFMyy55$FGoIVSbN5{%Ba5b+L{R~>F*2B?KVgze3v3^z_pJuy#8OdXs%qwYgAdhc8S(R47a|? zd~%LT-@$PVW>d`o+AmD|fEy4(_`@;&vZl-9q#LmB?@Jd!IfrTqgyZ{%jroTGJ|N)l zi{&WOU)B1;5)k_cOF@|Y#dZlNKg+DwWT)9;$>{Rk<-&pHKO8~;04&VSzVyh`XDB@U z82{rx`Wl&;IVk}43gf){&M%nk++;S}rPFh8`)w%z1haQ~1Cvk)g;7jx>jmnyZ3zI1 z2!MLbos#ZZWV8-bsXBAD81?*72>`-yLPx4zp}YPL{lEWfTIXLzudd+5Qp{*MHeUR% z>D~V%?ff!V>ZiGwouJLK1PN8pFSqaVh;=H1k80K_zKdhkoB`p_TOFO4VWS&ars7@l zDRan29c7YAvsv+bbtAzgYmxQ#!`L~8VUf{W?A3dGyyeo~hUwFboSLmmpB}Bp zZo}6!?OvC3LZ`at|F4CsAos<00W{CY6LvP|`PKOotTbS@>(QxRrnz?o_wsqXMwRN? zWtJv99-Us};iVG!#<~pi3e6iZ?^R$g)Z9}%7lG!h`vyXM`|Dk&$AhU(;2jCPPlpUO ztIQu32I}`p*A1Bcs!uNjfmk1o_cutf(`-q%VAgAr$!Z*HT)%BH#GwShd^-QqWMYiP zVv)?u9I0v_ib-0D0$XeEv-|R&^7PSxREwDz`mJqZW=1l*Dgaa~0EU@b_bfU+2fg2v z$46;?TQA^h$&o@KO0d{_SFxNurrJH4<0mCJDE^^~36J{q59z-4S9IR^E2f$&bZraW z?LuLa^mBhm@BSwNWaizPX9u$MqLOsNnqFO2k2Op^0Pv}8y9A);xjhz(333TD;Qz|| zjL=R|S#RO}ldjJk8^$E7%%gWUa0fz>@TP@ zhGU)NayvynWk$y2rF9bu_l2VXQThDBG9cOGzY(j*rgDpo%rZ0?3s=2w9| zHH4>X{iyZoXQk^>>AG@1q5bQQ#zUDNv)*X*U(lfhK(*8Q;l+2Zyi}O67_$ph-5y5T zp#+l+C$^JG|6XSGx4*k|P@r>`kt5E?V1cYW6roC-y65SU}+lWsG_7T9K z8d1=NVEvfwr27LGE!RWuB zLkR$YZtUVq7k=^|sl3-`FZoN>|HB5G8-K-p*)=A$GV#omH1&n~5554%W_=K*UM&$b zGcvy4Z)}lD!~&r`!L(M>2lEoij9eELPSib%R3auZgM48s5@6h`H^>*Ju&g$g)uuoV z%h@ASpTwtt%IZwaVyjmu74NFP6eM`!w^9zes24tYlWf{DRa>LV+EK z?;<8|m^wMvlHcvVE93G4I}rP+v3&s$&gV1o1y_Aw^~H-?F87l1I8`I&_i;Rxam04l z=}~2xD%05g$MJNBTNl=_IxWsTx5TtrlZ>r0yU_YVFbFWQ<3KBCQ}dR%xb-+cS^XY+ zC5u?)DsHRG{PEMY<9<1?;~1pV9g(^&sb2O?{e9BiF2>oXnSAn} zQZ6h=@J;yPskASBqUJ5( zXk)bFXZibEkMs8ScPSSZn4ic~yZ9lR*QJ)4B{nrL(}IPoqZ?T+RI-$``)Jxzc!^v< z_^BzuVqG9LI6UYh^j%FRS~9vk^2;A_vV4_de_%bDxOAF3Tt2--bK-d9vk%ij>Apf3 z>@){)eiiJSry_-cn*OWC`AgNhT<*mEuwbR@9xC}qr9%sV-EQiKi=D~F9RL6z07*na zRPKeBa@|#Cvt4pZZcM#WCy`1pH8IXsX`OgxN@4)Q0uXLMy;{Py{fCz?Oi{1aBZWXJ z5yNWMurqUHw9(-VVF7e{j@0mK)ByYlgxCh4_nY$jWPc5#UFZDDF3s2ky4&?jmPm3q0sgPJWaN9k$RyN4aoTZ{Y%(dECI;kSn{y4UI zlwNF!t6k6-<5I7{O7{`gdP{8YOz=VVQGQ-|lk?qC!S2w>}wLMfZ^0#H6f_f*2s@Vqy91iqGS~2Z=L7Zt?NwI zH%YiqH#8D1Sh_~4uW^0qpRhUUMMeWgQB)KFh9d#01)u_f>Nb(-C*u4f6HuH>lnOuT zjn4fK)1d_bz|n=dm+IxqG`BWLr2L!ix3)i5iHkLa|T2Fh$EK&~GS>NwQs>4t%oR!-;o`4#59>a&}PE;Hsik~N+2u}kC<1$stGS_{JL7eYW}@u`VIg84-s z!?4DW^6Q5}Vj-qi89IEt2#=}T#J&P;*Np_8ks@tvP@KwhJ@YJ$#0i{glee4Sp{4V=~@@3xNfR{t2cy3f$Gr)b9$hE8rsXJ28lxDUQ*uct`+0iy-yh1S|#CvXnA4j z8l{-Yhfm!nEr2^M{T&qn5R5Lud#WH1%R=*ueauvrRNr?EMDb6*>w|xf7dnRm{{-EU z0NCxOewf&O?WL5_XS1mV%>RDN2LUUMULXP>7+<&n;gDdyFcq2K-|0CL2rTAI_Uetu z+yN0W5N16D^9BTX2uPPgtuYXviG`yy*E87nKg2^1K8v<=AJyG9$FdH4jz+rKB;E7> zS}~2Oc$ZYYf|ZO(fuQSco=^WR4{vVsV(~S`$~Ic-I&0>VbPt5-FSNc|G$e2Y-NLl_M>{Nx_!sVO9nZXb@?yxSjiZzvE!Hqw5tDwxs!8bjcvxP z3=J(q%&=w1Q@90%Om<``Fa*tdaZf_y3!xxLbtk;IN3Og>ys?Gu=wuxKy{X4@oPY2M zcAxyF3=7_AG(cr`)%;g60b$yUJb!@$sAa*kUXxBdD{%qg3M?i(3Qqk{v455BNB{tg zK0erx7 zd(4I6bgK3aQ&coyl!+Qu2^V$;)Z@d#VZ3*a-+t%{i|LP9s};FgKP_|ehfw#5Nhg_* z){IDP*7Y_?DwP17s2C9{SYNg;#v&G{@m&w|VJ8Eum;9!s_+Dbg531U68wZBwspGtM|W@4f;+3N>we z)u827sjV?Py|4Xi*`WcMV%;_GLEc@z$$Y}3bik`48*;S$3`LVB-PWKnspycr;JJQV zFq$}-Bg`j$&e+&0$J}d7C(iP|)?+c2X4Ppkg(+KziTm8Bw`58)L^KB3{|uz)*0L}i ze5T@fV_M^erE}xy-{Hk$gDKTFe*EW@H!onnUF7KO{iDyVklMgwRLAOYGmm1s#HzAR zbOUZxw_tphOnPwMN_v(nVi~{h;C#Y}?EHHW-LVA#ka0I&qP|M9KZy4OvIt1c1XQB{ z;!|}2z&Fiv?(mh1f*=*#iwf~|dJZk4AT@m00)T<5U|H<|AZS@_iaC=;e45MEB`kgPJgH|NXQb1>J${-PyD@YE>g}HxM63Yvqf%mm-gOGx{VD|OAj6@?_X$kf#gSp z|5Qyc_7fmqSo;ghL0AE*wNOYT?g;!7bXNjEfPp(rkDQ70`Q=HKWdRHV5)TOD0K&Wv zlR)-`#*Sia)ddhVDr~5R76B;;gnRI__iL=yV>t0~$>>ge950r_i=~*FEYLE?@ltub zN4~@H`=6qJ{{zfD_$-@ezK=6;irln@x3i8BgPTiZT#o-9?`g|2OsIws)d3#5kqv-W z^4Z)0;w&gU^M2@=iCDkV`!1@&PW@eB>WlmUacwFhuQHGdCT5KmYxOi{qAPI#yYEVb zAN(-tn)47JRPJM?e^UOocwSFI^+^&z?_%43?blCP4f*uOR>MW{%}^L z7xysC3>%-kMXX=N-mQ^FWBJ&TK#BQ56czpxjIH+hixLKEdapRX*e(UC{}vM-Co*>i z{t3Ec7XaYWUQsKKFMD&+4G7(^k_lMMnG(?#F2bk^!7vqbCKX}UXXb$2;TsSYgqbCt8(*k|@)j=U*2!?KC_f67)xxVA%BP-qH^(xvdQnQskW~Y(o z6K1?>?uR?yihg?Pal*{C%N`VhGaeVIaRYs1m7IFsWJZ(s3!)u*mQ|TgIBKBSeyW5fe)&_4O@Q*d4QnYe(K%|O*}abN!E7kH@&j7Odf z^dKB%>Z?GW`q^T*zhAfma3wt(nDM7B`=-DD{a@UlW%tI=Pv4gA$^ro23TWT>g#-Xa zE&xEemz9=*2>YcHF?wEdNc#&qNNeW{Q}i2KBSV3mp2Ju=B`tx25{J~PL^X2YnmOLz zJx=?9Z*uba-=Vhn70eTlVH|r9CMStaE#stf#1hMFxmqB}N7GGmu0_vE($5xHcNh7f zd4y87D2s#ytvYRTu7zmV6;CFEv+4FLwBC#_pJyH( zoOF(K?G}yg8oJv>>(*&HPovh#HTMYjY&ucr`lj~f&$y_cjKZTnlW(b0BDQqWuxOOuz zEhzjP&VJD158nApzWvib=O0{rm18$6JY61GhhdO3Y7mInCw}@lIjdsAaA5s1TYvXj zi(Uc!?}wVuK4uA z_YD`isEILZ0!_G0mbh2f>9LeCCBt`O4wmU(*klhXJ%?o4BoXUSZaEl*;V`6Nrfl2~ z;Z>S3$=Hr#Fdpk;b#%6qJ((XNdLgVje%LUX@sp?GNk2Pq%*f!mJ*p@Kta?&|sYgL+iSLnDpQ+kWW zc7ueO$5>dF_bZxl!f>(=1Vev9`>TEaL^WU7+!yu!!v8l@elEcMlPMM}7w$^?!>6zS zzz+#(X_L+7;P>O1De9GaK>G{JAiONd&dlA`G7zCPb$)=Y7o^}&Er4l#mtxNJ!+||7 za2~NwUGe`{wWIv9smsbgy}HI5|M}mduU{JS7r_r3soi-*r=P`GT7DN3dDJRD(YZ(b zg=Yw;n(TJ{>DBE~(`>}2#0f&$PHYz%RK*a)*e%;?u$<3I=5Ouy?=Q6c2uda1Ba`eA zbDKDNmgRgl(&tuxQw(Jl_pgRR#e4vOnUwG9EqHEV|IJ2!2rICyhMX5*By#k(O8oA} zzvRr?dnBADdE4Vmr^nJ>nKK`~$+4T2!07KNL|;rFQb~WZD8s(Hc8qCnhwXR%BkuKg zhmMEn@m}Fk-(r+kW_(6!|0ruf?5D0X0JG(>K3Rb?BYJO5;OfWLRBEd++g@rMdDRbnMw#n-N;JUK&;#9 z_?lS#6mCJ)_0O@c4Q5fQgFKhJD{$)ydD|mz4}LFidn~V9z}BwHYYbm=_`ABUKlU|P zI4!^L+A+Lli}u?;lkW%+V0J;O*{){xiBVpy>Xrlng?pefydYr}h;_R+E`2Hq@TmoW zzybur=ZpS7LI?!$y*BX>A6$fAp5K-0R2t<12vRk+Al3gD3|-8bQp*cLP-*m-)_3K4 zJ2NNGH<#|yTKp={{N6vKaPk>{km)|f`c=v=|2vGEe<$a=2|sx@?Ty3$)VY1(*@K0# zaYWC)u)i4|czKv9HBm`I^7-uh;_|x?1|z2C*kx}>D5)>scEY6CH(7O{5KpoggJR#L zmhoM^OtLp*g@|5+>h+0r0_7J%VAW~M=cM8Q;9CTu8gniemljvJf1<=NQvUk75xmz} zvrTfX6Pd^pwgkf4j?bi+Sv)C~#Dw86?d?#xbusXcs6sQ`^Dit2)bHwGP}OP>=My-9 zSpS0uhG%BpDSavoK+v(J`(CP-FH0;S?EimI8t12f*W|s;4V+35b3DszHVA+nG($k( z0J4FI(mlA-b7ZZ6oteXG)&e;J0_hhm#?|y+J2S`2y>IgO*>A9yogy~(04cpmvty%m z{g+gCyVN!-BuK*KWB@T%s{utGzvCFPlsBrqxcHn+dqem_RCk{+MYXyLpF>bM)mNR4 z8`%g%!39JqaKQl6@Ie&a>tQD2^o=+@r_D}3hLh+~XtlA-IIXTp-5Iphaw{fAA&9Pv zh(p5~nDU}dBIjE28LfHtP?e+@bEcM2i~X#QPTT2F$YiOc@+7xbncKca-u7fwU)|7n zQ*(Li=4GtXHQaU&-P*-T=OVlPgx!OR)kn+Dk-qgyI;|GX*aThM!i%LyY~92=@+7gW zZ(RxhUv1N^BL2e97l?krfK+pX`;89My&aY>nPetvEWBG`Zmz?TPhMjp14r~O?JFIQ zFLB3dzfp8g1i)@L^+U69FH?PaREXlqP2Hq(5`9FTL!F4yyPPN9anIUF3Is3qT zfKeej6d11d>+~EF$&Bm*B$yuj_Tg%HPvi!u{Rh;pMAum2!>O+@mYAezmxi^&LeF74k>l#Z!+e-M%EzrOdOKIRa_%+QzDfMnW$1xtr10Y2kYKc}21^-} zJ*$V7H1WDFjm<{T zj94dGSNeuD{I5kKQD?S0?}Z8ys2vkm**L-+B53)lTb<6Mw>VPXqwK z^75jz0z_`WW>bUWF)Evztaoyl={(KdHEi;jy2Wxa*di=ykVv@NPhale(P)3$xTk<L!esE`9_l3+6F z|DVjHZ&nM94}MfYP`}k;&(Q+fRGqdfgiBhtC}gtKJ1so7M?RI3nm?aP1qOubMpmN# zqG9SpB7v^AWucIW3g~*9o|UASPjWp~U~eK%FLQ)z6O&v!{siY9c^vN>zeCT_X>6`B zX7tdyb*#!7&6UeEw^vCwD(G$pC!Gsq6{>>mnAT$L<|pWd2DG5#>Ugmf?Y#}$$)g+{ z&qyHv18bn*)OqCAIr49>@X)PyS=hM1+4Yw>cKI!yu5WOvw#JbQ=a_A+lHT27uDZ@_ zEKcgyIwy=iv$bn@c8~l6N7*hGKDG9Tdnf>QyQv>$+>MuP$42irr5n(0))_A@aQWIT zx_XXA&4x^d)s;;iKAs_G!dA6K&KxBDh|*sO_5}cBE`PtV70~`75y&-ja+DYZn~@5k zam9RymEK8SpZLAV1QOjyP#;?$SvbbnsWa3X7W&>gt`noNa)H9kB1gwF>^U0wM4x=3 zPtWjMf2&=8)EfU)r%lF=u~>{w?G0N3Q6a!U<)3Kg5m5oCn)gGkt<|>K%AdG~z)Zb; z*CAuHh^5D*=C{l^#l9(--_f&lI_rTd_|73%rbB%Frj1EPYllh%N-1@o)cljrsV zu7HRRh}2@o@deag+oPCIQc2~}P8?_V^rQSLHBW2dK552hk_noPYQWXg_tt5zd`Nxm zI`LbVG15uA{N&I*RZ@AmD^FS2h2KN`^Cu9@hvTaQu9C%N2C(R2NdMnap%vRRlr%6QSG zwpo!v0Q@LWtX0OUtWmr8A@R){QV^WjG1$xMxK5AbMxWKy8+6-EreagHy*5+bDYoln z&Ms>dt8*+>&NK7c-|*1IPncUj$K?7g7OZvXwm8z$@JyHV)HI#-9a0OE^sOeD!mRw> zs+DkdyLhHc-)iESF56E$!`8%!d!qf}9t(ioZt91}C%uEs5CS&Q(PXiaZe+3hE_-c{*;I3= zG+N&0*a-?Vi^Mv8dhvB=5$FjyrMIZ=tW&%AA>GCXy)hFfontxSax*nex@XhaT%)PE zOzAB=tx3+ylV7>Pa%qj!$G_lY`C}Gpb-L8hVtvwR&`Xld^vM)vY1K-S!2z7zu4Mj9 zVU~D4Ew}BQK1<`bf9swxKip#h0I=iD1^_`oS^{P^#x1K$&lx21#Ox+>6MDc3*lcQ~ z#^(Ycp%4b5bXPFFWwiqngaz}%z+zapi@ZDiO}0}H@*0oRH2e_UlF^kFU8AzWR6$Tl z5~Er7s`9V4Dh2AX@`&ILHg zQV93#y>(bs&DSuzK(GS^5ivkT#6VP(u0wYSN=qq?s5FP}6cA~U?vzFvB&9^U8xar` zkcM{--rn~wp6C6(f4}Sc<}iEq%&eN3z1OTYd)ON!F^p2<6yLXwRBCe-^2rrumh}k8 zk#L(QslFo#-RyED62Ec$#9M z7EQBUGp{V^*%`|)ZcW?Q>b!-mp4hJf;;&5QHJ-%_r&0tpt2y)Ci7(LB(NR!Tq+;Y$ z#V(OAx!-3uI@-lCQm{gDq)4ZX-!o%+L@lbO|EqXd!;?_cv{vKW5<)(A!|v6u{MwWy z-O|TYE~4;zB`>_v#_pMlmEZZW_(-=aoHw=e5C;DQ(P;VN5hmSwfwcmG zyu!!Z*u0CBjm`(PE8RZJr{qEO01#3TQJ3AgKcQu^_Q9z_Qu!8|eHU_{rqX?W`l!4A z9yxkSmCtghHs__zFV8p%lij;luB@Jsb4a?aw4|^8dN`bS{zMc9areyUaC5Ka_VK4B z7eX(D$)(;(x7XBnkSq82ZYrc`Lf(HYZDlE3XNE1c`fRb-`{9I1s?YZijImQ=b=vQ` zM#!~x?{rejleZasrV*tNBQK0jS2#o;5)i4bJgl3|jHMvnUD|ymQDvjHAxZ#Ttqiv2 zL$qbfn9-YZEtgGih>3RV{L%>LNd8Yp?v=WXmfNjksl^-{j>{HI32M-4vY^Yx`Hr5&#eGl`tBZzvS| zBy?}`WAEMm4q{?aGfLJ#^+c8UcfpilpY9I#Bp5!pn&ZleH$(dNo%!55=k2Pv(w~ht zBWo=1lEmKqu(3?9T1h|NC+9-kR|n^52S=#)XYQ7lb7f|H9#GcM(R|HmQC4v!=Mj30 zBu$^=R_2I~`i22nMxJoffkNcZUVz*$OFtPO*GlBXtUqhWu;668wJkXxigq;-ld3Y0 zHnxw>zvXl}w|~Bpk4%Ji^N|r$)!cg}uT%CiSnuKHn!6Wgo?(>S#Xeaf*4MgI(YI5l zrELX#1%G&dYdEuiq+^9uoa4@xOq{gm^no3xXMTrEzU9h$#ZPV&DJf+T*SQm^by%*H z9Eexwf9#0bp=6`cX$bB5cjxD`^y-4|oNw%-Qt4E*@}W|&^4&1FMjc|1i@NJo(OZ$t z%ylg5ocdvJ}*q`0bq_ZtftiB7WE zquB2?`Q%?`gGN?XrRn>ESgv^=ZQLQl&#cmkaZ9SwB zCR!{DDR@&3-R4#(UJ3S64jOw7A&xAMK zv@H4Jee~LO8$6_33>jbAG(@N0W*J?o@e1Vj3~O76Mus=#*Hx;epi_KJiSMF|tmf!7 zY}U>r_w(ud#rC?0?OwA+Ch9AGjzzI?pS3fs+>n~1HkPxJ%zx#8SA9@ZN=kQy{u@Pb z7z_EKEpPH(V^)ui()=%ecWoaWP(>SZgWMX1*3^4k`{pz{oQ9=TJ26dZ;w4hfP9BY^ zRhRCZmjSbA@yc(4>5DdaN2?BY5xJS9a7h;&s`Qlz$&Gk@f1%FnXwmj9$&3-t zOp;QPE@f?IG<_g}D8U=A<`cZglE!;$hypDWPYbpkmLB|UrLX!EujGovo300ev;A!S z{R!R&J_xWYFIroZziqcjFtYfNesAV!pgx(=&N1gS?4g%Et#OJ~ z^IUDh-Lwm~rRqN&GuI_%?k4}h?ckfSrPbmt62DelKfe2|sD8GvdpSe{ZX99*7ZqK@ zOlRzmATrtA3*{@`(=&7z+!v{gJEZ_{dB(rS4rHFLucx}^oQf$Se|e=>CO9E{#RJ~cZpiOUk_Gah|vA8iY3=1 z|KgDseg0bHtg&y%qe~~fZcVs2@tbdBnidrCnHj$A(;WCl6)f~X==-(rqIq^+t#Ox6 zQIh5N3ug!a=+C-Jzi%}9p&Zd#)s?eFEpZLTRq@8NHD zl?0vt5zC(SFujDb`yWKbqZiScV{o$9?M!L4N+dndv|0uf4 zX(fK!PPp|OtGFLxX?kd@LcDu zNYoo5)r`Tn3Vhm^@;IZ~RI5skhPB*q$4WO(FKUrIG*qk zm5!N2E*iQmrF2v8sC-*U+GRXV;ADT~L6E0N5Yhobt&fc5A8*on7*u^+kZ<6c;L9tc z?1>QCZg#Jw7C5&MJ8Ts&AGvj|)@H>lZF@2@rhMg0$2r4?8Ncp$V80IC`Z9F<{S0kj zR&V9ASNeeu>n;XwYJAb=KTzsBW}II!qko6{w5E;y#==~H>I})?waB%BU<#XK_^KaD zqa*5#CqA9(WIX=slb!!*QU*n(;co<%-O1E_7!DTR%~scF$10bY)iCprMB)r99ks>F z9t>*g)-p*#51eZ_)Jtz1jZvalF%OWkzoZtG;lJs_L`t^9F}C$>S6nHzPeFA1*vZ%aYoLQG9Wp!$Hw!@JC)G%9Up296Vd^L<*>}LCtFwbGIyPZ ze0Cgm>L?_OH}=1`32>h|>ru>rPR25t9}k_mFObH3R8K%1Vz$ZFrpnr;r0zE!%aY(+ zDq7#ZVV!Z?E=nN6B>ld1M{%Lbz%{ZDaaXN!hMmGMjx}0j_&K%`bEvYy!~ZUGnFo4uE>a@gG{#DFa#i`Rmb68qGS|$N3CQkL9Kl$^?Z(vNWbo%#RDquj;(C zXT8+@JUhuwq`}MM;pXfK{};q%LthV7Zf?%e#~vm-?1I+$eUFdsYt+t)Nc%29GQ|1# znW_ctCEq(g6#|T0oF&cYLVD^7sP{itRkaG844YRI< zQfBSW(h>`I**OE7_vT(Jda|QGQ_Y(LGbfL^zOs5FSKfI0Zo)B&%3<0~`pb!>7xFhn zd|iJWQsIf5s|!IN8GmQ5X-p|Suse0M%F3hmL}u|o+WQ8}`YEvG(h(3!$gsQ&zD$2cK#uI*xVU_Qlp*0mW7!A>X=VC$*8?t> zL0VZ_9Zx!9|L(}bj^WP86dhhqOO24R{?Gh6)5~?c->7;_x1P84dATV6Aiku&IX@#|EXF?AbajRSQvTUBrA$1MsN0E#g1stQ!LA&gI9MzF?9a}_091+G_lQdZp zdH5MJ3^TUV6uW)sUiBsgF16{HUv)-HL*=D2`>oYdUo!-bx;!|_uuga0-ejl2ik9Z< z9Y1>-6*iBUMKIaTj*mU(ShSjwkN?zCkHoubpG*SFK_MT7OkE?3l9=e&;CmkSHEm*U zwRHQR3)gSZ*p+fteGa~Okn*naTW;y+XYRZu!~dZD^pYd*uh=S!u}$?`$IjZNS(R1I z9bjsA*XXtGCEr@E(h=Tx=}}wO8RE##P`S1&zpHR<={#PzmkL*YSlE$+r2}h6Q#)y2 zf5_l-Y$`XZrHTQ?4pGXsLl@tFKCDA>s<*GcA*iM^e?C&PBGy^C+%I+XRDyp|qoJU-bS>H@}u03IJ;?pl;kF>X#>wYeoyQ^e11SXTV53Xfi5xhp4 z(5p-*t*aL|vfl)?kHEe_w%&y_jSN-tTz@*fCy6Vvhs#mnl8Dlx`T^&JMaVepa7rHdJ&c~d4aGcFb zMV$wW>( zJAj`yD_vr-#r%B!+8CAB{Xs%!BsfPoSvIc#RNF7{J zp*fIwU3k$$Pc~EIp#LFS*9ATqIJ~PI2R@-$1O$t4iHi4IW{=H}j_#thiURY^9^w+# z!12NN=QG(>RDLYcw-P$_Vu%AM>*q#iI7*3E8z%LbiCe{^&t9N7IFNXAC@Qa%=pgN5`OquodGU9RW7h(u5JWu66#SyxtZ5fjV~ocQU^sdpnUFZxv{%^k^RnPO$y zjigzQIrc&KVq(&?v3FIX7h9$&2)SQ><0C5De~F-~6k;Blt4Z!sB)r&oP(j>p_-N7K57f$w9;G)U)Aqnms;c4| zEHA zd*X{A@1VrmuGIQwiY*1{L9V#dM0^FQq^0>!_FG|I7?hr;*FeRb=km^XReYQFor-+TF-&96xSaO(^XTZj)YPt;&6QhE zg$=~;7T+Vn|t8(;pot`Mcg^$*!4ia#l;ku>rDdg3< zXVcaq;b|CYW#6rIm#eryR1p{@Ri@pM-Lo5IecXfGOCd2Z2j6~-0;5*x+e9`n@Jpj6 z_Ar+Jv#$xU{UTjZc(jp|r;&^_Th#WIv|B~rQ6D6`^6Pld&I+z** zJS;E9I*q7ZIXNb+btY0ky zMUK~H%9wAwX_ls#%a%Oba<}ab;m=Nv8W;Ze(Jyl~jpF9(Vyg3Y=+fdWqNg@89Nf~J zew{U8KQMYj?XV*LxfS$rjL?nns`?$Z>%yO0?OXI_pB-9Gc4v=tVW8o@EU`3t4I+QA zv(`+BuZvV~EnYndcU~O0=RDDt@A$$FYrm07@*0vTANL$~d$q4>N}uEojiAyJcYK5A znLewPYI2p`tWW!h#T-q9YG3nrD72uq~@KEPXikcDB(v z=2XV>Y4QsU<*+}w?an~*bXNTi&BG8InbCGN^(`~*faP1=L9H8)xl(_|qxFkZhhTBg z-Y_S|TJJW4+hJa+;PX#gh8sSyd&u0RJPIkFq@Ht;R9(o&uj&r(S*aEliZ3ndKBjP) zQBy-n@eXqkt4?oF-4ZQhu*1x!QrAw*Ry#$ z^2<(N!;J&@O9u|5AMw{EOj4k2oRF1PCj5DU^ynS(tnBptT}}-2ewBhi|FVyGk+x=bqnOc6c`K~szQ43P7Q&G{k989w} zrA<#{nSOWS*ReP`e8!lLOeJbpO(F08)N3laE!o|`%4rpJLJ1*Zku;2 zTz|~dOwAu(c~Nuy4%IJC8iPlYa^rkOhhpaPKB_8s3ukhS(D&vIUYzo%4w$>9bk_EK z8m07;;cr=A2CFiZYd+_@(|h{WzpU0(r5f?bFtV!rXfQk`XX_Eb9Xgxn@pH{leM@T9 zmh6;TJGOaiY=9{I`xOqtD%;H5GOpc6x{nIv;%be`H*W>3h^Vk2wU|su`Bh3wd9&-J zMv{OECHBr;rTfNhKh5Flsm7(+)&E3>U~3IP&Ol*#?(AVzQNN;TP1peRX3a zK6+N}dxq-phi_)ZI_ZQN-TCCVB)Zqnt)8~gEou66B5u9mNM+fI)T(LlCIz4FhXpN+ zUwo6t;#O`Gr|_&}>z2gXM`bEBdJ%Njm#Tx5pn{S+YU*&s{MoIn6};G{F>gyfn(%mr zEH8Y(bH{U<#eZ|w_U)tI_AAoncym`HoM+gcQCo@i7M`P377AN@P~}i%GJ(={X{4Dp$KQ zV@yotTeRMPdPhg1VjJ1hT<~IS{NtIR6DE=6&mW#uCj2GiuX6fmWm zLKkktx>{SB$m>hz5XKVllaUZa1+EZcddFoRi1ppRH%l&BlW>Pl#b2jNr?_55-y^w) zAyPPFScKYH` zLr+}?ynPr->dkkhMSOR|F2C=uRw`;zYA`fR_o2W@w61rz4aI#?#EW`j?j(A*PIv1t zMahpVaASkCmSS7tYh5JSK=)3LB>j;yzbtIn4@_=OpAd~;zcrq!Y<8UIvWe{Zu(Oe8 zg=e;JCCil_tvGR!Y?@JQHg)+N9S|h@yDz-`sAPxc!*lD!A`xz<4ofxJeq8d-&S5MF z&QTZ5WB>VxQ({NEx%Q;$={Lp((5RS;ptXK;$8zO?VSj!vLr9t zMiXQ`Tn<5UX^MsjjhNGhmtk5517?42Y>k*XGHFoFUuAoIc>l@|rv6Q0NAa{(CPh=G zAlff8>5>i2Z3{zG@7QV`0!C_+ucjUHm!)3%S+>9r=L2URx$LIp+Pqhed2?|BbMU4B zSeG{_sKnD5P>&3@8Dn`iZB7lnj#z$tDDb3bt~y42eJ$YdwJvP9yxy0Vkc#8GQ=%so zo>MlEnSSO zFs+;e_I9zDhVc040-Gn6ZGU*JvhsB2?zTqLY0rjIs-chgBgN-f#osj~+$6;J>Kbu~ zQG(8%+8~Flh*e>mD+Tm zCn<;YAQ6GHiU%cOJE`^YjgIM^v&we)3w&EdAI19azm&e#;zE6$T;NT*V18cPsjF{J zHH^LpnWXvMh9=C++ZMS(?Fy>y4xgTx z&ggU*NYYm9A{{06B*dq2$`^JbW$e|epQC@8dQ@BG1eev|b9-O)GW9E*C0o7Zt?wjW zOxO*q{S}9YM2rIyndF*AlAZO^ys>kii2L7s?V#dTy!vWV zWP<;;(MFKKSGFNflKD$FHic@a#LIu)pB%#pZ(Be296HJ@Q~ey? z6}-2^ym_=&ZL3#k;W^2vqB0^M0n+D-KehDED@Zbb_!{1)NAbSqeK2}^MMRve_lCkU zH`7PfD zwJf|9RvW1{P*F`a_>HC3by`kI!7+y->OyeTy_NH?7UZhCq$OKdDQ?6uTitE`A!g{k zRiHJ1VGr-#9=XYP;fifF6&i3W7 zea1#cjeW+Q;d9K*LE+P*KTc8~IPt1-^(qgSb{+u(UCU5F!G*bre2TCuB^@0T{qy%! zIIJBpH6y-^)f4tiejT|VtA1vbjoa{wfIboToetTB3xLhgBUe=>PFxgVrP zePUu9hJ6nB;dj);mdXKPhH`OJ>=l9f8KO5lTN|B`*?!pl*ZZpDyN93IQa7n)d3@kh z8@%a8S6_bN^ZbyVb?ylPY*dzlVqpLI`33$Ey0DTe;?cwYn`68Wue;0W%0}99YP4Dc zBafMyJPWaWz>{yE=mkkj-|%Ekq_NqSmY%TwN>wIJN0}EgvGn!}4SibvFAJV>pVfQ2Y$9;BRoq6c>rkw?)f5Bar!vdiLrnw(iHu<4m*wd!aCqFW z>gZ#KxE)LPkns88OEf1%sFHS8IqMD6zG%=WoiGm$=(=^Kjs06Ok2x#v>cuwSeotzO zmnG+jm~C#cf6An0Wj-k`^zeP);VU>OOp|A7!MM#eP!I`!FzPe$50U48|dlNm04WhwErWBUW# z9MhghOXj7GvtWxPtlkBD;a#S|Tz3;lE@zd!&oi9QRlYLh(?6Xgu6>?mg=)ji^-X^L zz_l>*78TXSS`vFnFNxTfEgbCl_aDRa&Z6nE@6Sz^duP`ZH%hSWy~F5RVOjg!^2dA_ zW|ww7*AMU8AnzW=?px?SbL%7snx85u+&%p|BlwH)70ZsxS3APY30@N3wcp=Q{KW$Vy7p*{fd3$eV;qtuW5&_*3>+qt(kS#^{nDlHJ;}F zACP}#m+{!<{7F8~HCCQa`+D%2IzYUW&B4Nem<6ilc0bc4ohQ?r_wV-o;z`AJNL-ls zymD`@+X?a2GB-^>S*Kn6l<0PTqr~A0L;aVUIPIfI^uM3HkI^b}%n%MvIhi3q_ONZ4 z$gai8PHSjAv@QD7!ufA{g~NkQ`wE^PcVIoSIUj3XE<2t4{&q+FBX`z*fu|BNSHTP} z5%jJ(y`0hYSY3LO!~H__jlKB+XP;dm{pX%M_EJeJl>?7^TU<1YO4*msyztq1e&6$Q zK3_6#r_cC>kQXQ8yIQhNDNQX}aw;+gu8o1$*+aKK-D?O9n0P+*aus@-%UCaL55{h* zCOK-9JvzjttQ&%5D12b;6mOeWcYM;^nfL0Y4vK?O`=2Hrt2ZZhaM}oR3pn zjc6g;>Am?;;F;Gh9^pYJ^`}S9y{3t}(HTTwR=hRh1q0h#%^5oTeKH+N2ehL*CY%|J zNn@T)9wP|?9fMO5>rj~;>1ecMMV9RQg|lk$!t{L~qi984LA<%1hEQwL8QEiQ6J(E# z`8Tc3r&EhL>jeBXB}D9>@y159AJJ-B|Fy4mh5X#~lw_hTC7f;Y3+PL_aWG}`uHrtW zBytO_-WD3B7_=22#rKCnjP|j_h{a8e^lYo)<%7)+Nv~=}#l)<8G&PEZHJB*}moR9W<;mMw zujugNrrW`&v6+eO5o}h8=)>1Wn8+!eZ56h(T_;bmdb(G(m{&hStgjog&PW`ykmA1J z_QCpQK{;0YP(^{=S%W8+4~8Gwr^es;L}NDfm`8Wt_0~{&pf3|!4Ebz8b>?dDiTnHu z4`Or;PECZG6J#9bqDQx0KzG=Dg`Z0jM$i9zQTcfISfYYh3|)|1z?iYX_ScG6MNJi? z%fA@jP<*>$l}&lFJA-JIi_fu+TT`5~Z#pyR`(du=&V)?^)c#e#wV&h;;do=#`?5Dx z1#Keh=~O9Ycm{Xxdl*0ZHi_BP&YbY-r(e^}C@Ylh*qoQl)8}a%p)TJJPkB~(?X!s8 z_oTC-^|LHq!6I%~kDMa;CT&^s^xFH;28~M*m68W|{O}LN%&#~zD#RCK9RguMqe*+| z)LqK`qBUfhqGxBrX6uiTuj}1Yf7th&f|nLT(p4#FJSPxztYn(&svZy72)r?{zp){rQ)IT=`)_NyWJGY1Fr7N9l(M z!zhENYj5%d(yV11^G!|w?+g(&y?IV7dGy3lG~sg9E3H3{b$dhK)PYCy;l`=wZnGd` zy)W4<_8d`ED%Rm{tH6>r_hA|`Fh zHhYe^C?E5l`lkv81*_K;@E1Wt=_~`>2(kPc`Dm85E`H`g-HJnpU)0%JENe4|<5`0; zzQqG1w0PRl&g@>h==HDkKZhqaqX7jWK5^a*ZdC^wbbbd#RTS~yAUdLO=y$Sr#6w41 zM1hf&2?SX#1FJk6=!=oVW8N#k$ISvVA}pZzhz<0lZ-UWdYS5Nt0i!1@V64st+UzfZ z$(S21h`oXDnb>NPYIY^>cUuw&9gPzh8P|y|wb4_kA)RqQ}ye0_po1jlv ztHL8KeGt;N03ECWL>N*)%qt48SEhuwMs(n!#{}+XED&nK0I@dA;B3GRc35HXH{%6& zLq&LJDG8~jO5p#{7Ty>c!+UErh_ZSG1*T^3#o7ww(>cIAg$~J(!^&h!s3D7@#nL30hvC zgND~v;FCWMbO&F9D(`zx=g$P);SZoGiVlWRY>a;ZeQ``MnaBiz_I%)FuMBV89zlwW zAo^s7Fr>c~hSE@Oh;vbdgkUMi@qY-Og*=d%EDeE?hF}+F1OdS&km{}p*$$cz7oZMN z4knQ8Wemx2x= zUA6$!Cq07Rlt<8*Z>*lgh8asqKI+H-~}0Um4=n5)Nvtw9lRu(bg>wh}}I>Okt@C*bFA10|&nFnU%G z=H{P4PIel^#eSl)HL${tg9pDKq&<2EZicTR80!Y%Jo%6+9S!d#GayT}1ijld7b?vh zpcCs3>1;ia&prU&5(p?gF?(86w7wOhi4z54E-Zt1OFgYSq?xoW*pe< zlYt>49kl%4!Q-?Luqbo~?JR$=EO`rxK?R@_oB$8Y(!eY>9rUBiL80<32s9Rh(Z@VE zXV(BUu1#>?`xCJEwF0$AJKXpA479%8!0@&Qn8L<^-@gvzL+U^{q62i&2Z6q=4ftB? z!7a=kA|3o7I5-%x{Jg2C#0z6B>Gb;&Y3lX+iKR$NwCwm$hnMn(pQ@V{bs zS)oTmGBQT@)6$c&938PZco{o{;Pc<40e)h!R#sLBMg~hOZ+P3%*47r6*+cjrSS(;| zZLO@ZGEy>F&-ac_Gd6#)Wvp>5rv8J)0@ezPMF=?ZSgef=)&{Y|Vx|6K;Sm+{ZwL!G zAS)}J2qsooTa?2gU=cg1ml1Me<|9$@3IBqyq&tDNM9?-^X+$1D?$Jl76he3=cKyKl zcd_v+{~(x?>zd)j$I0_IZ5#sxkA5cRXM!SPWB-P4B=-N(**#%lV>PBD^;;4IjFU{8p(&nD$%0OKw$}o(9_ZJWe@)I#hWtHCaA~JSYfed>NPd0G}0!PSgb>s zxebE;i^12P4jlEat}&ZyHyv;zgk#}aRngzye^$W~NoM1MT8|633+a19T{i;mZE!|c zgRudE#*L|Q6N2s^pi$i$3DkTfkdLh`y13oUO|C0FCP&xTU!#vhkdkd0K;ZgP(w0ax z)cQU7_XIMLcF-_;qUnyPg1d136@2e}j}fjjZ4fjP*2dOrVRjOhL{*Ld8~Asl zWzYqMu39S`0y=svptG!m({Be0KP&(QhUwyvGsP-3Jbfl2W^UuR}Zo>F*4!)PV9Rih+~1pDN_V5 zg=>$kt*^JOR?15pc~frcBgbwsGjee;axtL;9wQTjjEt={?tYOF5<-{=97$v?gZ(Xx zwTvVUDH9V02aVuQFfuW+S=#R1kPAXWBEJ!ScRxbF$!~acKQj{-6BFWqj<~?``+h_M zi6Fg!DF4+^9JmU@RXJ%@1dro@c%Wu5GO^&q0YD5yaR__hNQ2`p3{z8Fo|_B9h4}-| z#5nvL9!!2CnBzcX&`|jNB^VYVAksMMIFUI10tXPrA&6D}W`G+A?A{0<<*V|$#Y`OA zqYQt8!`Hyz^3&(kaJods+RE0)YwrY?kuhOr#r072SIYT+;GyRY(aF}w^lurr z%LGEg!lFXxhyM7lK9Usqzd++qe@vjk+Y6#Xl7g;#8vox&{!bZSFBE+LN7&unH42;= zw7YAEB1*RaIB_Yul}_N&5r6}@)DF2zxD-bp9d>Z3EdT;X2mouil;WQhcPGLLfDv4J z;GeVtm){5QpQ#x{_gL!6Sx%Tr&6NGh2r0SDgny;38*c&_TU1O3>%0E+y_hf zOMum40wyyIs6XO`$Imfft|tJ-<~(3yA`d!BPeEAq8OXh|hD_{5uv5AO&Z?KeMV}4) zjo2U*%L>s(S0K*j0r(mVL6Wr`xGHHvgsLUf+iHQ1A15$I2mn*EATSmPfp8=rNWK#Q zp(G)YOW+5|RAt~RkO7-?Zon4u!7F|1Z6A8>PmBa#Hk$?NvgCD}}#Ne%+47~AFL@xtZ0pBn=NOlo`baw%W za}t6ycVWm35`ofSK1gv;hHU3YP!jYIJkrD`KM6|kQF5Z z+1XNH?`DX66l2JBc?vOa)gU=S6S9H~Ai>@U`L$Sx_qKsNpI68?)r5>(El7$ng7|W4 zXnc!-kKsbl9?k=u?}VW~@F5KODL`F}1k|R8Kx>i+^d#~kzmyBwvL&D??ICzct*jR`E)+W@&n2wc{E2X}Se z!hLKU2wDUoe>VomZE8VKunDAuDnU}B8I+a!KvHrJ6crZ1UdI9K^Cy9_?90MN_ zZi`$Aq#@t6gmVy*xauGa(*pUAJ0U}>0X|r_K(S6Alp?>iQlJAW^l*ObC^TA)0yf(T z^h@4=QeZ9^#^i!Zbu#dMEClJA_n=vk4Hq4o;Ht|fVDPGkTb^ye;NJxYkN@sp6h5tG}`%qY3US6DI=jvEYpRWr7z#tM)5&!sE^Y*xUZXOp$`@Mj{s7M(E zXZ-q0isdI3j*f0F+%~^!?GYzdJ>nzjS$nz_;CfQ+NPzv@m;X|a;S}GWoSL~upf91l zy{$_?6vMekJ`!t#!RWsi5#xU|y61hiwtwmD=s0#tmDAn{aR{>DF=4T@v>OY<~v$ub$>FDO>`5jGAwe6kVbpbZ|S{M|J8~XK*Of>>bI93aZEU5$mFsxI4P-aX{!cZYb|)YVYWFwxD2r`UHmC z(b3b*(~Wm8V5oT<-5f*Ru5#Mg*yI&#!f_!pRPE;IqhW&s;9)*xBXjxE<#WVHSnfOk z1_o|iPeuErWuxlH%&aFVE?&5B@dDmuHeMSifFK5p4eF^dx92!~F6NU5F3?`2rM*aa z{(`I<>R&_v^@o!asziZ{p5P#=$At?QE-2v!*qi}zLLJ1*>+I$%FUQSGO^d=sS_E(d zSC0rVV6;%Rt-IS^BY3E3sSpXOE0_1GVeuNxL1j(^;N|{TBjqn43bVsMe%C{9TzqSb z8e(CK-@eTj`KK18t0^hXN9p#4 zkGY|Lu>X)O+kcpjpA+$k1R0REjT!GBthux2Vf+gLbSi!tHH3kQfr0NH_TOv%&P8JF z?Xh!zXK^QcW?IF*J<|baN}zj&0%ux`ATt9OE08sVi+0Fb_!HrO34iKwX~kc7BY)As z(ZtdI+g!o%L?$B6P9a0_4vK&56fS&}`4j%dPI;li4)jkf0AtDpvJw`cuB!n7Iu{^7 z{~81u-hdF38xU#91`$?l;P!$K+|7}lV8I2>$g&PK)q}UD){vrW3Av^(!OWfw7(@Ai zDUu%;k_CV17x;4DWvjCPVQDCkYg$(gW&{D zv|fA<#&9+ZS{omYXNF0%mOdWO38N{j$cABtu_O+dN@jzv$t*B~?3qY+LGZJC3;~Yv zknG6~sc!u6-h&Iu1BD^lO92XfPz;wvHi#UAq>F=BHZM4r@IiDEHx$Q7KuSIj#ODh` zLcBZ_r96i6EMQUb|#E8SEcrj>=6NSEbUKmW}f&LVJ7)}*{&ICc|Lv~L6==#+LN<&73}-!ov1BfoNWs8ZDnE>;@xfF&KYUH)f|)c7%x5C| z20f>kNEbr(j2KL0ioskKKTKzdAX`TQt=UV!*DPW9Ss;e$rC>Bu1}5H1!E~-POytPI z*KEl>`)4vo4yN+tU@}Ju#&VUBEhLX@Avu^s_RwnSBd82Qc2Kw`3fo~PBV7cBL zZoEWm{^l8=qm~5cZP8k{a1%V$_zp%!)8PKX9YU>~pj_7(s%+9Bodel5$kr+59ELJZ z^inupivSHFUymG z!l@aqI(!5gwjsv9PGAV=1ID01UYT>V^*#+f854V2U>B#I{)DZz=H|tJY=ggwWoud+8$KC& zClnzi^LNM(5#%#GMV#UzC>~T;{C9DTPpGS)PfALNk1L<>o5DYOI@>2S)Kxgd$Hync zhmVcucvexW%V@709)_=Ls9g;B!C=Nn)b8WIp1 zQ@j53zNv6%T!1*L66X^R4Glmc^hABj+yRZyxX?InTsb>?XlQ7Rs*g`<-RANk2gD{c z(EybTA2(IFe1(LCPdIHG?(l?$#^-;m78h5!b(rEj`8m>kw}o8+SnebGq29vY;^O>x zXK5~8Ja?Mx3ThYJeSnikJTTCbmPL`~I+}RToW=Ez&D{rb!rtC-v998-!b&t3FPy)o zgDZ#6_+Oq03I_xtO5(ydC@)dX?iHh@l-~ZY3|MhKalt3r$~SNF|5XeyT3&MC0VfZS z*2Hu>t>fRt=;YXb>AUpwj8~~&{%a}j{0CZowExG*+_m3DYYUucJ%Iui(E`Egr= zqmGMqXy(Di|1JEf{{xT1#nHgg+ChsIING>*j0im(<}niu7I4xR1uyGI z5NnH`m3r|4V~QX!aaBzCQ=F2i!#S%5@luybTQ@Owbi^54s~+;Y$P?^q~1#XI zT>)aEpWvN%BowHJK*LK9DAa6#5{*HqR2+sT^o-R!-xnl(GQj}pSh31Hkgm&xTTYe0 z;a!XT#g^Z?6{lB2hru$n6);T|NQXLsdx1N8=4}V#C5}*68V{|FK`>VB4l{LOF!t#k z^fkmoROA4B^6Y@B*m`ue{r}hX`%(icsPb#Fg;@w>!F`RO%vX=P<9 z9t}TSiL0KJu(GnU64gcgS14=e=&+AZSy@K;5)-|oJAl2D)dRt6VwN@x$~sTA!JC;w zmg+XuB{$A%>WWXbU+atAzI~gDmWoPNSyAz+q5oZe<)z_ET&e@^Z{UogwgJKa0k1$%zgQy^3|#EniI)Fc1j|1`YrK05Uf& zEofdYE;eTFmu0000000000i&P;> zZjb-~0002|KL7ym4*&qb0{{TP0{{Sk0RRAi0RR910000000000000000001h0RRAi z0RRBN0{{TP0{{T<4*&r89{>P}P)DaL(>O z;=at6gKWv8WarLxSKb$KB5vFpvA?s2Z|@^qm9KmG{=Yh`*R5`~A|w%fh~lH+3{-{S zgrG|BBBelZSnx`IaJn0g%=Y3(zi+2~t-r%n`O1iVtuNrJeDU(FA3j_gYu0OdVf8%5 zMiFdX5$)DnCPc?l8_0_IbKP997*It@kRnDYf>D-1BH&a>)S356B4%oVRK*&JGjR?P z{hdbQ7ix(sYfkfa9+p0RCVR5(-C`rv#njWAYv&8U_ts7M*ZTLkDlc5F0>F!0-tlJ# zb)=Oh?K}*2%Q(^tcHQ+uGTaJzeZke=UY2%8Co5bxn9Bn7JTg)k6hR0Ui57`wM5O-$ zGrgg1JZ{N=+aY3k|i!fz%ZPHD5LxX&Bb*kG*hqsMVNy zV#f9@6*k{YWWMfbKRMa%{loX}xN1SXNaZR3yoltx|Kgx4#W%a94TTU#@0>{gUC4W{ zEG@dJPN>h6(wHl3O*>kx6F|y{MI%PQDupKYl{*3$(UpKy`)&DlOMe^SN|64R{(b>O zsxi($tppVm2T~0dRa6z{9bSdHS6ZH8B(d4?n)O!K=}t6U)(iaVtfdF`FXU5AuL~M& z;Sb-osryy_X|Kw2$W;LN8p_YS?}Iw)R}D@Tjfv|g#@94kjUPXiv+YbL4$XFo;dU9< zXT5^5G-7}<3Lyw)5F$h^Dy0`N3|-b_sFYhGrIv^Z=l}KR;`29NluGaA{A<}d5Cp`C z+CfYa6g5y3HN#QiL39p8Q3WqT>Xe$Rtca#}G@G^Qu~v6!<3N33o%hc!w2R+*c&2xt zk;u}ZXYpNc-BEn?e)X%eQmz8PS5e;m2frYN`J@xHW@Fb*bcc5Rz~Q+1TP8c*t?i}u zhHmcY^pzZ{nKwAC6wVYe5Hsk{_LT@| zA2blGuh=FASpUq5E}Q;hR64xuvRC6Od@w*O?eAL&qFRAb?2pktLSU%%EfR}}2@a2{ zAfliFae-z{8F9u)qsi7KQz}p#VwPc;ydgkY|Rc)k~1fp_zU+P{Iz=n zT^+_N(7+gu78%VAU02hzHG6}(7i-!|NQ zaO*mK@R?)X-~GQ|zhm(^zvNYU!EzM^6=J)@AGdxGe%X{a z`+~~uP!`qymu=XA!JKh*d1#43$8Xgq6B>sTu!# zW`3|0$6dZxL_hC$tj>M8m9X+$k$^}}YLO(=FsYNdf|{Sylnqe z?`3-j<6Abg+{b?Rp~ZYpc|LBzg?*R){rr#pd}CHxAxae(R0O9&sYdC*SqtlqqV3hx+lns~ z^Tu=-n(vn5RcDtS_`u*J^l}r`~Hz+X_4OOCj1?DQH+k`q9ZzwNS8FsN_)Cv}&UgZSe!(SviE03ph$lM3VWei{Q8>wFCKm(UBYV+P_cPiYph(u@W1W<{X7=_dk42=OHkYmi6ve#VwK!((CfUp{cEd;762 zw2J^`K~EiNSp~YxrKA=Zm^sY+1Aj?z6ykng#d?%MUFyBefL2g%N1OGjx97&A}YMV#)B* zVU`~FGvdL=saX#brD#pC{_byQdSE@JOGvDX(8GzxQ$q--K(t7LGFqNvyFbYK=2A85`(IiZ27rHG|B^B-8so!0zp5nb>%gbv0w+nx{yc&vN#fLzHfW zI5x@I_!yauVsV&UMnN1UN|O>r2sk1sDoR>b*APYNilY;u7mT^7m>!#N|Lmq={n;DW zxBkCheem!fotm9`;#c4NO;>5hE97b#urK@H^A_g^#i(LlW=fyj1%*lnas!OxB-+J zm?K(^po&O|w}9XY2!$%q3L0b(ps6Kww?x`(v1M@RZRB762l;`=Fq*iKK%%Hg!@qeiwze11n+g<$tUGin5z?AP9Y5%r4iKnMR^xOgkKB^==tn3 zt7yKqoDMv1`&Xb4NEr_&c=gEVxHcSO^Y|)iwS>93gA9yM6B-RP_0$@ZtO--pn4`dO z!J{G-ojEA;i#eSl(o9kY2U5fv3vq-~z3n_RyPYRb4zjniogQl`se^Wj8Yv`2B%xN8 z5QRb%p`@u@?p*aOn+8wv*yLu8WjC{?LD({o_HG<+{8_2`i}xQ}I`N_J+V%}ys{Ez8 z0IPrj;0(|fk?^Ho(pOKO{gdw<4uySl2;tYehd#Ql%;xJw8Nm!6dn6W!(I}#)9v9i3 zKfz{snw@fpabC%%_8ejA=qK@FBo;97)VAJA?eVBm{gYz=X0`LbEn;ahmSz zQL@EZx?PwmPr$7wNXI}lp>!YwyhYSGq9`6Ht2$g<-_Ksj`G3wp;T7chj5$9}`gwj! zkXT&>l2_G-CP2o<))B7Z2-AlOrk~CDmT!3_8@ArXQ~Tb-jvWW^YP9o`lpcy9;=nts z??MC`*Ep4YK2@=7Z=X_-|N)il} z$SOI(+cxgu+WKeE_%;q7-NlKe)J=D#b!MseLpO{SuY23p{^0O|KB;H;U=cZ7LR~2gt87X@c1 zId$u?k$t==oMGLF@sDYbvw4${D7I=n?&WVM8{LG95m)xm#dGB6j?q1R7@Ipu(msRs zW@tyF)fMXL5c#@M4(QEn(J{v5EE&o(dJ{)<7ibFs9G-?nQWHw?{W9R?!l36v2;zB< zSvgh&f{=&*0!K6YPsC+m0LhBj_vzO$DREs13T z%{uKKw9A6#NJ6TyN+GIYYIrS4nmNHM#2SzQZ4y1r>cJV_JUGn_t!eImc7aD`Z)7HE zRK-hWi_&Gl63xX0igO1!IsGsP#(E6xTtlbys0CtBda>Y0FgKaUEr%B4AKt!NKlUr1 zI`yB9ES3k}_2zH9J_X-UF@UFk_a5i#BkO9T+kYWD^U!x?v!_PdSwXKXP$Er)l%g^% zwN5Zkw_CDYkQY>{m(@shju`74I5EOseRhr~bPdC=`c~Zf+vv_Oz|>*F*@MWrBgBPS ztjJIzPD(@~QCs+dO*F6Hjoo-F1A~Ly5>B(7gS3H%(_1*?ZY0tGF@h7kmADWoXdzh29T=pul(Eo@q=Pkv8<2)b9z0X?5$7W#qis|Rgc@cZ(@4aSn4rN?8l39x z;C~*uoqOl*V8QLc=YdxDEX9e(2nY6%ojXmkWhd)i@iInNrA#ihn2j4T940v`9BR8zu{|_xIk=^y6FJlH_y0xcKY?H^t5r zz1{+gp(L{=HSwe_N1X>VTntDIxEL{frEF4_xz=J2vsIWyc3qS6os9wNXE$(cYJu6O z-v`tC(OwrH3&7)0L=7VllLpD?TKuLP@jG8d7`v9dUSp<~a4u}((fmeA7nx6*I8z#- zNA8uvwW^|jHKHj_ON3e#SmcF8_*d>bPwsiHF(^JJC^@Eq;7SS?kupVM6LA@NCt+x) zLwo)ihSqH5Ogu#I_$lh;0S1$VZqXxZN$>^u08-M+1A}Rbx2my;cM%mutx1dp&ZPu% zarc~YPl1MV^IT7Qnx>g+jNr+w}u;mJ=>9(j_|A_LdoO}hJy%=#_NOeGcF zITcFDfCMo^Vn){-XH4mx4ciyH<*J*;{pziQ{y+M^J@U-&zkSO$M32L-djNR+UH8bq z>Yb~6v-#f_jy>>g#q4A=E87$zWTa3usS`mndM{(;WHCUR==y)xMRWKuN$?U2|4#p?3Xiv8{K*Ff7#8;EI%i&>_t`WZtuw z4&lg2Vu|805{!tC1rEc+;S5Y2YAb_)@O%uq%Sw4K91L&;KD3Tqn1xI zSU9og)w4WW7Ze$-z>5RIrk0J;XTzMhHr9iWkF4iBqFY zlwPcZC^d3CIXySTP|?O*U@^^U(q&@UuHhTtqCbE{C9XDC+gX%NNC)1!q*d07Xa%V+!-Xc;V* z94`Nf5PU?eL_-5_30CB^tj8)h#fI@m*)@2IG%k@gOC}ni%{DC!6uFT#7D&4lo6l)R zk{YeLQgoG&87`@V1VW=AD@D!78e~;QLjHy z%w2!SNbROO#^ne981{b&kKl`5zHVaxPrdj1#z$6d`{l)B_x)%-e~eIOl(CAN8Ae12 zrO@qFvwqcTD^N=vP4D_M9u#FDFN}x>b(kq>C@8&AI*%X(-{VBD&intS;P_mVBB@iZ zx(3~GEA<_BkqmCYe2vmUP>0}2gD1F>QUXd1hvMh~k(@yghu02BbuF^owhO2_^H6o% z;gXy9e0=;XZILVQ7YuI&nF^&jT+G>8E^ynxBdn_L;nwk4)E}gD1=TO>kf^82NLS_>Ko6_sU&!r*IDQU6RyrZVZxj3=J%C&&!`?$Ji1dKeCGl&fLjj z(jYO2IC2L{N)jSodZezw&~RW!tA6k`Yy5BQnatk(pWnFk>oP$2b!P$W`RzB!$dQr~h1&56y#kp?CTF(F8e+zTQ`BN#COTtLOpSjC)TKkcSg zDN_~T>(~5?Ue=c5qC%nPAul8Yu<}!aqy+J36dKGio;<;$AN?y9W)HCLCpNJ;so{%A zk@ScXP*PNcXc4oND0LidP!DuTTuRb2dbwcHA!!HighU;&Pq7viELQ&$1yxry8cCE+ z1G09CcYu}*G##g(*+ZxE2q`^+)G-|D*J>irxY-dJ0WxO2BD}t>m)M2Y}Eon$fDap7p^%L=Xq5_uwEeBJ`VI zss_~RsDLx2B?)WRjI*$Q2fei$DbrP$LUckF4UbWemG53UtxS9pT)!k3N&11t%GVbQ zE0n%Ubbm3Wyq6sCMVNe2#UV7uMMpi>Xxc2ZhoZk83Ym(Pf~GgiMaE{zupQU5X4^| zv|CY!zw+*}g78LItPyygF7>6KKRTCwtui+9U<|P`GvnLB0 zYpx^R`6}A!I6>1YV$eA@fb2=l72}N2bN+fEm7>VYHk`tvsV_KDMTazfB z(v;IhpnJ}4pKr(a-neS;J-_tv{lESnUbA!h1^w_ZQhCV(z!UF&tBh~ny?b%?#Jd-c zJaA{$UO=NFqL@YK&op@{NSV;|)ofo8TO-~nMG%aBg&9UP@S?y4uDwXaI|nGeQqbs# zDwIyp7ztLQMVH3(B%RJ2+40BmYp$oY>lMh_Ybnw}%pBe#NM3=D8X5tKm=t~Py`e5( zrv3KXmk0SSiPK%Q?~9e^E&;9@eIynU4P+XbP1kV4JMO^dpJDyB7BLScjLCI(kNa>WrJiTBWrqG{$*+eq>dk>#_?}KNu&;9<}U)r1j_qD!&FGW80t~cuN z=DXg!H2KuK!l@^B=iLR$G9XbfixlJp7yBJ{Q=FwFKHyYPSymz?#wyw^P7$fr%kzoD z>53Ga2%xAs%Koffc*RsnW1w9oJaiy1-*F^bAlU*sbB6Yb{lxYZ4Q~uK>WE7)pH|ks zRNa5g320RoY~lzam@0}pZvm{d1ePoNR=!mAvTZM9Om*HXY!@)CN`0MqN(a5@X{{M% z@S0tmnX56>ia1>&alNW7SWFOem=*+QASq5tVpzr5$zi6ZGX_UMDXF;{^#=W-Ur$-Y z^D7SJIrO>}b=U}$Wd-DU7c4GO_y*4`+{wfHhFF@KrZ|0oq{tXt<&d#G)J7j79efbq zd>U%AL`x}c6p<9M1Vm8Hsn$I3h(VH^CLOt-=Fq1}T6=NLV>mKgHcDZG%#kG1o#JJ6 z!mDmy(|l^=Z9jHw&!7JKOEy*bk_CWAfBQ|f#;RNY{q)g?-d|2VwOX?_Su_kG={Jlh zOejb(O>jU$#3zb#07j+XmFaEEfj?111?N28xvJTfI0T35FL)7SKu9T*5^qgvz;rRj zCr+fylo6+a8b-qkn%O)yb%@@X{b+BAW@`vnAHgYz)reXHt;}I>f>>GwvBcr~7Rcu# z`Mi+V=ac6=Mj&WFqr+K^QWA2S%yb4g-rmB=&SpAUoiuIGN(*XX2}8+!Lhh?I2WlY! z7ddpW!C!uGlKs!L*>deD1Fa4gnTujTt$pZ$2`+nSQX3OtM6Rh+&B96pE&;5|M>4OsXCZt zc}W7m;lKFtf!f55pE`T+Q@>Ko9>KD1W%3hHB8s7+1WSmqsycHNs4GdF$2&zNRHmjn z4A;*IE9(0F?F^g&?_S@cX%;G za$LSZoIFeW%xSc2GdMIzy*5Aqy!5Es0`-vNO^BLQAhZGiz7*wNDVJIT&%Ktw`6Do^ zSBfGTr8N5iQ)nkCg$^*4t>g6K5W#A+T8j8kl@H@d3=(pJ6Xxb?-2aJ1CQr8@My|Vl z0H-;=rg*PdguEvdMIbK%p;RDcITnL}Mu%z2tZwGP>AU#M{H-k1HsQywWnyd-na}A> z>}S=ES;PV=H3C|75YR>P@>*QB20;m~ztWLaX<%1BOl$BylGgQGN%YXpR#|)ke9Glt&jgiEJpcR>^mw0Anf;02$m|7f0B&Fqq8Uc|mWzq(Tv_@0B8{yF29%oK< z7+=+5_4+^=y2Kdib$jHwfhK+Wb)}d}s5&SG!)%agw(#lc-8^*mE;_mqiw>+o9J~hI zyqR>{EJ^DKo|00G=)mD{KwhpxvW-Nm6C~*qsRL0AO{QrKK7uA^@dnkD(j@p2EtGmV=-mFQEtW1G=ywli?;%?xkZMQeO5 zrSk*}#8^7Uque|=!}pIr%$s`ma$DTXK+@%;tYuLr&Qp)!%8Kh&Dm`2d1oT(z z(u;xQQon!Yw#xtmsb+ryA_=}<%!DYOe$2!I4xw;^%!KtEURuZT&MG>LAU?&UhPVQu z$)?d!vZXl=91|wz9XoeJBN0O8h_PQDOpPFpfc7K#1w|NQ(K+_VRopxI3Lcq#1&g`` zk%*WlXhHA=LF-7(sMijXx;YAKfffituUv~Q+(lk)BH;RsO^l$CC=t;%NqUIHPm+6~ za2cLDNl@smC+prqrY#_;p0SuCRsas;_`a(kA_Q^7<^W-E z47YkS1DkK6x%pQ7`kRrp*HNpbymjJPZW}&IYCRIk7-ycdvXR5Gts)We{AcY;_p$uC zM3w;DGJmI2GZj!@Ml8MCNzz{v(Xd#fqa#eJak%WUCm-hVg%OVSwz9~2f{g)! z#VWmuc{J8BB94NXbU-tjmXQ`Mip6iDyYwnz7(x2$BZ`H}-HUYyEmR{uJwxKAaRgkb zLAHsd&dbQkog~FL(r;2)^+$2lriuo3`%mAO4x+AOEBO_L3--e@UbP)8RFD zg-ev!@K45h?TQHM)vl)g^phme7_*jghJ zS=~9t8uwQu;WUYP)FOozIJbalN!6Et{`a}ul)qH9FP+t^UVaxuRWDynsQ>rM^MB#E zz(t?hU)UsqGlD7wP%=!$5VJ)fDI$B@w=+C5#aQhOt#qEjmn|Zb5AeiikFj;<2I?Ef z$eaX*@wEPP6Fe$VL{Bfkp;GSZ1D{g zVJ!`JoX*KdX`fr7vFau)UDsd0w4`ELf;Rzk6mgJV=jEhjq#izuYjkMWx6|w1LAG=k zfnid5m0M9g9hi6m35(`AR+9G4mfyc?ycmDqgNOg)gEQ{o-+ara7j=iM7d-$x`=KAd zIq#l+f9Ld**GYQ`X9XctRdH4StYwolqv}wWB2N1YR#YqDdRNWty}TeqSFOIo^6al* zii%);g%e$-;Z|0J$@w+8Fre^FT$vJG$&utb4*DBNB;cgVCa9Fq&!4N=c@U}GiU=wM zYtgB%<+I$%dO6C5e3DG->`$-fv~9v06z+nOUmCPqY3?t}mB>M|V&A2TuBv^u-32*s zIb1mD71jm1SR~c}@S$SnMFG*uRT5WGt#eV9WHVFUbyzn;#tH^sF~W)aKg@?7+Qevh z1HGh4p^?&{48!DBqa6Jgnj?Ft0YQY|7LeLrQk1N7BcZpIAW(`!2zUwz1C((q#nM{R z-f3pEtzaVn1T{=A zxLIly%Q2X+U^TKr=+4@k)!2E@+T@4q?~gw4TW{I?qU8#_r~%;d_xvwAJ9CHrDw{d5 zjc$R&Dwr2sjWQ@@zwxC?M8ya(p7)zoD+R1N=YaP@5*;B@E#2j`@AEritO!8#i()Q% z{;__4{>mMwT2Dn9*5h2dmWR{3nM^lQqo5!XsW=BhLU2YQU{Yl!Tr?6BTr_IhrRN8E zh&!p-0yiYb>C)suxrKx50Fo<`fL6YLE&#YxDr;TNzd!HLT)~RC{NM|qv3&kZfhPKX z*Wf;dQcNm(Gu7>gF_KWyQ>x#CK_bfVraM`;JLlxdM`(1;vM{op1vXHK(R4;qI_hqT zL}#iJXd+q+gG5R{N#1;#vRFf45X58AVI+te(RDBzASuQe%u@WKksW%7+I2gy`dXsY zDJ4fV5aM!BI7e)WaP$f6&>S+l8C}|l4Xgz%5iN*it@=%%3Lsj*g@|c?au8)Yk9>B@ zwn6^>*R7N9=I@U_`de?={Gv<~zGwm9u|N2pU6Jlb=1xAbjZT-kOR=UuMwtAJTp-ElE5fixg$VsmDyKF0-+s1)IB&CR>gqsLHaFTb;xV7fXWF zc+%}=Pwf`kI*4ddeeUwdNvJpk=XJ7rXrffWQ)iK0GR#a&`KS069t(5ys4*{13RlNS z`f0#^h3Lg3`q-P(4l#=x0*;ZW$OF5*o3@L@H8G zg!yzG!?%1hueO>V@I*6pfCcJ&3WY8?X{bLMc6Ri--w| z^{L!i)fte1q?nc{C5;$ppM4TJ^f>kHo5*UlD!^!EKV_*X3Ca9C#s0n2S)?f1)bb8_ zNN8&fbJHYcwd6Vd$6`6{?E6)wQrVU)l%CJbxy_jrA9~Fi`5yWEXCL~_w`_mWSpqLg z0C@a8-?vlgePrh3V>|Pu0)iu22dpyXgV8VG@hFOj@6XOTr9mQEaRHQmnQz4l@F>nz zb6{4)3OrOQ0MIIMXBYL^tB9~By26%*%uR5lww(w4D{1=?OpH>RcuKq(rWLiRVnZrNVToG=d`l8cJHyqpOhloSUwj;Ko&-WL3}e@YyA1 zIzwdQ&_rb&44Ac%ldaNJ~dDHAgu;4b~t~!}5qohEkndECm8)MwAM0Dkh=zU4rWK zb1{~R$fL8esTsqczHwvgoxcftUic0A%F2rl0FM3RFYcZ_z2`&cjy!d3Sjy25$$ccJ zPOWg@tXff517byGlxrkv#o8lQK6aD~t+SVvNEDn`Vp(y)!C`iR0xTEuY5kc}`ufq2 zdRt{FOv(oSq5eh=_}$d$5)m@0?z9pOiJsDX3I~O=^X8%;I1>_so=Y%;TnA~|VzmUf zP}LU@(U?_BhRO3G>wKj}F2ae6fyM}~qBB=rewWLsK%yd1aH0$aN4+TNxgMpYm{cn& zDRmw_vz@y4oSv_7wx@lfQKS%0H(X0|;WnD7Lt6(KC`!`#Ar3yBhTb& z&P76mn1b(7ID>)J^b!S)=4}e&DtpkAAi8+VhbY zO&aiXzxVC(lmGgj+ZJa}{ptMi$99&TC1R`$EGH$2M36}CbAqH$454MS%KaxLCTYbd z7hlzztKub8$Zctb))ENj2^iw+e3rmVf|F(5eZ^i&DG5#~Bt@k_B+~Vx9Q8Z+NaK4r z;;$ul^@>I;2_mj4Z&d-UN=vGj^mz%2Tfr)X{!pxP6KokG^ulY|y+Qgb@Lq5QfNDm% z;CQp_gja=4ee21!b4>R?+3Jm48X!D(ipy{_$@4+GII4QyJ|M$4qaCz0(sM zSXjrBO+dd=5)?Iuuq=}lL7K!RB(A7v1 zQ)Koqa{Q6%dZLgdgSag>qtc+~azrC(boll>#bfs(3&*PVi>^lf#y1li!xgzqtDth` zz?sl2BaV_N2~|__60{`ZQK_S4q)ZAHM49gB=#a^VH~iag-~TUv^hc+^q?__(loyQ! z&>Y=xLnkZWH+O3PE^9AhA+MBLwCd4ENpwOQJxg(fkMGOr6$P)}-DDz`6(I#*nO|i@ zeP!;eQJI92U=lGAmbv{ZhG?iF^WrelD!U+&s+yqU0(dh@5)S(7dBDGtL&*+u9I6qM z6vXv?eL=M1A}lK`^ds;q6;TB>Wm#Df$8tz|+3JYU&of`hK2(k;%b`tFZMknqHRd8i z;e{#w`9NQF!Ou173dd0aUv)(nzB83AfK=b#uxb&IK4?`b)#~vp7$u7X7**-D_HCxh z^Kn>MMIJ^Wt|dlCy>^ z#4~#sn12nOf$NZlL!;rNVN0h8b4N*~>O}1Oy&O%;zFSjecYH{2(TGwlix#DyMTj|S z1*)@1at`NnN_CVn#C#m((V6<&?;78<@L%u0@8|x{SKo8&1>K;pkh~}WVBeqr)IeT# zernJQ|kVl`5{QZ-2w9PRamABnI%Gy@9VvQS=7U@O7 zG@-7s@(ryzzE*Z9s1vkCa3FM1imKbLILdxB*O{+ESrVCZ>p7q|@_>6e2h!__F0G6{ ztti5>{IE*Z-(Ezx(#*ST&R;O;SK8HZe)hhoX^CEPl1tt$*UYnWF1|2K^}+#HawY7N z+TxWNgXcQtvU6PF-KDV!xoGp1D9Vah-;R(Axrz!p9Uz2qHE9uGP;py#lTRHbT{yn7?9)*a%k`c_ei<||WEsw7_wAVi{9q8AV& zG5VBNhiSFcwNjusOlq7;Ht}HcN*+jF%aL>^nQK(3LmZ~An(q5*x*RUhe%0WzT#;tm zXC0!;Zo%^QK0}RInY4XixH!aC)h{mF-Euyczifn8r+Gdx!RM6mw3H+&rBmvuk{>=ytv81&x^(8wQXd#XM%Goptb$lh8WS{MqB!_4 zTFy|&0BV849B$`sa!C*(&7w4-f|CRtwj>GYGE$bGgP`r;RMw# z_2eM6*2AQOd#DdQLcOsU?-og9fhJQl+$miBB(ZUZ+~!=no!z{B@EZTNfAh}I{Ox=G z-#qluptBr5~{`aiT;`sr*hQF{6}}>2xiJ z{PjHOUd_X`yE#?AhFlYTzkE1KKRd9ja9q3?=ND2dTYmWaQTB?@aG@uW!>Bn(6Q!0o zYKbHDN}|h2w$OJi`Yu5~Rk)lsWVvPdmk$SUds6XXm4o?5B+a*6WL9<)1)NDZ-! zSOn5d*Q1SfxG2=y1Djx|_z} z7DE66nP89&Xh1_rDwR~F8nfog%*x?q=6iQKXYalGkG;>i_q~@{nOTEy?}(f4y_@%* zY45#;Z>{yMciw&Vo6g_z&3At46TkKce_<%^Uzh-R=(m4%xbKF0e(I&iKKj43=by15 zG=%{sbMmV!&~sD%jZV4x$W=%har*2wb5+C`jDwfX*Bn1HW_^9Yq4g0%nhZQSQ&4`3 z5l=8erG_fgZIF!6iV%$hso0XkJYC(vr|Wm{XZ{;_#@)@-tkPJET8l4CHrOS`9y+B} z%ztD0GU5v+?{s+vvIsh$xeP`)~itZ+`ycANq?C0)Jrw;P3sdzw(xo zkN*2#52qiaod;r0` zVDi9_8_wRvkA3S;@ZPWeTCO{C6>DpUICS7@?t9aldB<&E$JQz3(I+3m9iB63xAu*= z>3#QId+&d|@dJ0A{KWtJ2d{o|u5kQ?fPf$V)qiyJ*0cBj%Iw6Gq)7|vF_Hl=F>Rkt zYRDN^339EzLS^RED!k|R0ax!o%pZMfo5xR%X`Cm?h~tw1zxBzN7>BEQ_nrIMFXyqU zBm=YD> zm;SeSe`&ezPMqno@r-8vL2ranT`}~TxB~6dOUOoXK2{eup!{Wt7!gL5$63o{-l8d$ zY{LY`z6_#&`D1sX(BQhObntA&k@MH{x4-8nxq59sGZ$%bq~Lhs z;ji$(XFi7ao_D?DURH{o8eeq_;Gg~S zzr6OY`uX1)Kl8=6r16Ycy5WdsAJ|CD8n5J&D+Y=wXRK1CHJpMsGY+gKZoT0erj6&= zL~=OB44LYP6Q?#=TdBByW5B=|S|bE!m|4T7J-`ccGheLkXtLzlFa#Tj4!q0=7=*ywIU1Y8(#b@O-Nu-+NDQpZ2E>Oe zzW?4I;qDvnM9ma*NK)bCsi*m8|Lf0j|K}gz^N)X#hmStSx4iHBc>eJh*&aR5*2Wpe z&HjV;9r)Ta@B6`TyZ;Y==|f*t%JHwN0Ql*D`@80<)%71Ze*DG1d1iaccJMS}Np?me zx8+uK2sY>Am*k5DEmyb4wA8eNtKjAv4sgWJIDNihJ9?~%OmRH1nb^O7ggJ0EPgVDD zEZxEv>aXDsNBy1!30(IEs)7#RD$242@E|oR2Q5nIOa% zQpm&_9VW3X0Ctay(Tnf){g?9u_UQf#P>Syc{VpW{C~eM+`T}N#Y~d8OFA9=8Y9g&` zX`CTq7%^vU|5?T>&$0S;Sp7>i^*d|qo#%-gFF`%VNhT*1GXsf0=5nw}N(pz)P3Yn| zMlC)nDkWP~JXVD|MZD&uFrx+&9L6#YaDnyQ*TETF!C(yRKQietygMeBEb0`|p0|t5!JlRdWG; z>_eZFgGY}1$fsT!|I^cEh*^Id>P~Z@d4X%)0JIE&@N4A zff-1tK~LbUB=UjQZ;?L|-puJrv8} z;v0Wggh5?-F9062Mr8&vhU6iwV0D5G9v5oVjxp6y7(9f%>S1nv!vt@KMC+OP3Be`A zBsAs5E7Co{9e2@L8M-uSIX@9esHQ?;ZV+{}(?F#TGtB%GoopR%O<2>ztgeknE)XSP zgGY>IV`GDQSTmbV5Cf3_PPy%k_b~gkFycHRoaET)@nA*P{{CAIzWvFc{K!Xs?SK2g z2fiwx;8#rm+DF*_FS9_@Iko4p_&w%AOdSWVPbo%;`zGUslit4QvK z({Gd_Je1z29t=jTxCxeot2}M1%$qjTlzYc4MPlp(iT2Iv04wNFotUAel%N2B^aAcihT* z-}`m^`KLckN{O3pyoqVkFy*Yds+hb1Po$EFqrqvy8ZzaS%e~&k*c>J_ zG0&W-5UmhfBm0Gw`)*})!)=`V;(tJ&`5fld3vAv0hwNWD3|C!)*FY2xcv>752&N@= z_(Qqw9nq-eaRtdUi?0ZfdTr_~c$=dD%ej6z3s7=qaNqvBGvT{j11T1P=`DovcE%Nq zqqc_7HmLFCxVnQ4=yJ!h_Fr}b7D&Vu9j*L(fp1B1eYIv`3FOESOc8qqJ9q*=e3HT7 zVQlpjURvTrn4e9!HfR6Ec81QCdeu`6bN>bH&$&p+PTloLcV*qPmYhSOkXeJsCch|7 z4LUc3vw_N4v`(0jC9OurX`3@=&akn%fu@KWh^b{b9PmRw{6l=reeYm0ne)b*Z{ZC$ z-OOXpK1P#fn6yR|rFF-dMCHMA^S6Kf;ng4i2Os_PKmEtw^tGE;^mt#vc-=98@B7e0 za&XoCz@w+rPn_IJRY*eAz;reP%_Y6T88YdlW`x~1qOEA$khx!D=GSQ40AoO$zX%ae zvLm8dA(|C}tdL}#B+G_E2#VO~4*z#;ZschBuxI{*M607*naR5Phwr=3Tdvzr`X zi?<#*%RTZKhtf;TljXeIPffteoW?nj0{SiazI$Fv_t!TQ-D~&fAN`+My>~f+BdLb>EqXZe_0siT7j-cqx+sE*H)dy3?8Fe|2(T}f532X6z9&6>-}>ncRQJ5 zW6tQb>M+re=7JTA^%gCFt%?@PxDrn)zJHiOnkxo}7+dN@G#4dJ6`AMHA&RUh z>T&^Eb6h#%uH&|AZp9=^unA*wVpr`4+;rW|-1>$)*uSx#5CXsVryt>YeVl5)(t4rg zMpC+mDdHz-e&3r{k4&%rEC2Z?zVPq<&)3xzc-<|4ci*(}tq-0!_peTkb)eCrDB~EI zVR34(+A=dBg_NUPgxW0zF(4K-hPjD3`9^Zq-lEhuBi>dFqBTA#A}#aLA?kO1C+4oN zVfgTedH>2Id?Qb?!8Ygo8lQ|W@)7+26FG=MsFt$l_QdXYjn1#XX#Bg^mL-y{%fbMx z&DDXBdcbT6tEc;dbcnbpUF~1eOk#RsJ7P@eS&r0X0L=<`15Tjrum4JImc_;H(EJxL z{V%;jF9;oWhcBZeKrOy?45&SZA3jXA{w1V-7RO6i+mdWkHf@bFo`J3KnlM;G5Cl&Q ziFiKZDvJyaNdrsy*5yaGs8Y<;ecC9^xrQ`{I7kfl*Wd$60Et*n-q_K@G-4V{J8F@& z7I$sU#~%KVyzTaTx$4jnqDzn>Rt1Yeg3S$5ZRCYh&+@saKf}iDE3{^dU@b15r*5~H zx^R?2II%lt*RD(fbJQl1XfG^14%-Ma%>_eAB1SXH9||BEUG0g-XYQQ~@TX~Rr-^cK) zU&7fFSeauqp~~?y14-NUOT+y3&$ouc4ihcIAa~twqYK+ob@invk+c%1Qy+<={A(f3tSPb zELvsdj92Ni@)U@L$KRCjlNuq2!D+)*T;YrMJ`Sc$Mx0~rRye9RGiE(61c@Z-V$+tC z+Lwu+cjMxIwe(@41^7j;$#X_q=S#D6p7I_`;8h7>NiU3)-n=Mr?CwfCdefemAaz1! zv3~M1?81YWunsx_wPe}sM)+m<|NDDLOMfY9XJ{Ojrkr!6#N(BOs>f);xu>zKpTe(w z4qHEmXvqpivKCgqI3I#0Lqd^SN$ZjJTua?ls7d*IYOt+?#$dboxC zi}+U@f`)`P5%rE_BF=%U70rGXp^f;q1`pJM_TU7Gp2@jQKK$gb@Vk!)t9}iW9OL<% zbL}SXU}SXAFs~;-Zcsx~th9(bPHF=#8m!#T_WVAc*f#&i3>FKCyRwxV3CK=fp6x* zoCFseC2wJ8KEoAKm1!4#OFelCNU5)#V26)0Sp5uk^+BY1I$H-i0)!}SzULB2$>gs& zRNA>We&k@5K{`x%3<+Ft=v2{>yjk&2t)851Yx~+waT=fpeGtz%OsS<}SeZedr;%aeeTe55F||$EU|FDMbQ? zansTS1!Iwtbth=aaLvGvk+SJc{@J}ccffYF^GnSwfgQi+Fka504_H)OZVzrPQyh=m z8~94Rov+9}JX7DowjbeWaT<4kWf#hf+wJFH4ywNQ%`B`2PH{^ZK=1uu#9!aD;kqQ7 zm(QhD5m;@;DsV_L7&FC=9;V*^hg7Q% zVycsfglyvDSWulUu#jcDte<5p&?qVCmP zP94wr2FrC1NdvLnB&?l9%(K_MWB-kh-~26aee@H*_Q$WO74Vu{04vVixj7C0;`xc8 zNr{*ulW1r{;q1>`%30eBS<-h=*s{5dF&FJ+zuf0;rvT`#KuXK5ywQ@$sOPyA-7bo2k=N zyr1*_D94+X{ZE_=|Lsk~!=C}3yy6LXnem!h0Dt|r9vR%U=KtYCr^7d%o#mSAxx&^w zqS#`-XN}WQRpqwRi;Zoq?FGO>2$)hH+_?n>99;Sdl(OGW805{CYxAW%XoE>r=6SOL zr*kS*3{_#^)urR^)R322_m|!nOSuJ_TZj450T@~MwaDV96uyJybL`f_J?JR(0wG~( zRG2rBjxwan12DS_d&;%Zoqy@?y)x(G_jqY*XjU9MM@IU$@WZcAANW1$)z4#00<9rA zx|V24pf3>W`Xm-%Cv@^s7tc);SNcH4HeuCdK+q^sgRM--2`FFbzh;P&2s6nIV!H263`=AQPvz(lB`!zV~CWaer* zCga5nWZNX->M8cnHu1SBPk!{&HP`za*WdnK_x;f)KJu~GtYGLhwE*6H^~$&1f1>%| z*`~#&Icjh=rg%|imErVU(*!{UCL51K{aNYjxKHG%=cen_ML3 z?}hI2rWUmLy^GDWyvuj{^b3FgLic|~)<8+^6*B>CvDLG<10Tk%d;x<4wfVk9Q3Bdm z1`hJGkce=xHhWoHs}X{a_>m*dBAOJV8Sl`jWy8k3w^HWaitCGm)C$Qc-sOTYn^QA$ zfT0#_4Q8JEQ)nyLK}k5Wim8-1546(>&A4T`OHym*1Q&{{XHktsFk1S8@3LM^HNZr} z*$3y$zp~Af?a{yd_1}E&hk@U^{0IN?!(93!mp6X$cOR)wj_3dA>FvZcCSnLo=8-l? zX}Zz9E)+g9y@tA+*Yeo;cV0k=4pP+2vZE2F5lf4cF$0}23N0>`oPX2gm*(oP3x)Sy zv!U5UZYf87t4~R& z16x~s?XvYFDf2_7uCyxcJdO&IfLO>@QlVwjl&QddN93B&?*E-qtyV$^mQKD z?X%31ZU^`-Ok?>#vQHnkJBXANT=k!(%RiQk33So~bJ0J6_tkpIrNr}ObUlXa)YH_QIN z2u2fDvzeIr{cQ#TjnB;+L>Q(qgEYf21DPTuY^t%TBA7_B>9WATS2MZqze(#mnZMN zn@$7)Wv+Gsn#qk3e*(Mq=h(p`m}JRx>{BpPR0AXnY71Z)fsg^+w2H(HmWe_ZXWV5K zNWOm4FPePcNtd6+;_*l)Ia5vuLW{;HVQi*;>xf{4oHDgAcZO&vjbckQLOUynI>6`J&s@d zG{XZQre6IFRs9uA0-6m(a~-YX5nBX98WPM__J3um@u%kJYluY2%~f&=ZuyL4A{E7; z#$w!Y>eY`iTKgQ%og=q%%REK2$9MwUzG~<8^d1XecB%AQ71~<&?)P2^XbXG*pOl>DQ z8sLn>)|S>cL>DnLM`{u-cADuCrO_`^_ zq>=Tv+;zv+&2PQ&gFRxrJ`d-YoX0&v-mU$rFY zAUU~Z9wN+J2Hs$77aA;O$;+yF=~!7u=8T6J6SFqagp}d1PW!5Y2?bzt7(2$Ve}QWK z&oT8=NE*UQg!()!N}S(K)GBK~sd2@uHE~}LstTzz{>;}COVh8sHw;Dkc!tK+Hjbj#L3gfg!2u;Am3M-DF0kIvq zZ8vo}%twEY3$K=LcCA{ft$o`Xx z3vku?=x3fexpnL5Nz1hDHc-cLFPWIK-=NZKbz=<1E@J+R_m@L_I|W6S{^cbs<#cxv zbVmej!fe1mNazVXO5w9^)eJC#W)2m=Zd1qni!B~q)H<%&`ko0whCa(5g=MZg-Y zT>^x=C)%folQ+37)<+Ww^MHvKmps;)e!XhxYpJ4(Yq)@#*ttZ6%2>v;3E|L$^>ECVsMSTAv;XaYR60X;t=+0fP%i4RVAnDk6i!i41xV!7khkbRL|FVbb zLQ^Z`bWlT^l+Y+92D}jllCVzbF0nKCV@#wNnWsdEiKtR~6f8=QIuAn047*B;_%oR5 zSl+~Ogq4<70@j^n%|DLaz6l?4MP#Uj#;!3pF!N2}&@-5#bybu^i<(*1!fG>EB@q>a zszuTeD=(pZ1)V-Yt0&PGY(2o#pf02Sx%Xb_)LiygYBgsHCYuGcakTS>)Fi|ia&`}> zrrv221ZjkJ+LmkVeD0ii(9L=u+Lfg^NWX^ia~9~asO1e?mKnXCZXhsHnODim0noA-lMyw4$NEDY9VEcsYV0R#vRW> zQM8n!<{FAjWLl1pk6CUgSH3l9*g%qlxPr!&l4%woRftOr1Mu_<9Q(sx$2QmCS88Nm zg-iSY$#>g_f%#?8ogcw)W&cZiT?S3zcLw75r?ioX;RpKl%-)V^~J^y8b; zKqk^6OT~h^c4l~|ZFiXE<-IPu??OpHd;RdmBuMA0qosLBCr{I2a=QuZe73ULa(Qi+ zU;`H?J1tIY^(!xhIh%SS(PJT1UGzCABT}z7?p7%c$9)x0qgI zs&t5dLZX3IN;Yq|MwS#!0u31?>Z<(~n@&p#K=+0$eKlK`-I+u|ix4(R3g%JfrK1Zg zrbE&t8#fx-af`Ouo$Nt{9dopIIxjR72*%?>OHIS}rXj9f$I3NB%r(l)I8L^2;JLFK zZ@cU2gSP>XT*hJdj8_x|`1W6U#NBsQ{qvtXk>0j7oh5jxcf4$bzU*tMF&v()f!}s$P7uVs21LR3##k1?M+P2za8)1 z&&tLvwDXp*eV##TFgnJ_7}soKw~nJHo}zvF5w;)uGV|w-BIi!961J!eSPY(2p07ig zW9;Wa{~RYLi=~nPhf#|qlG;R4mlJ2qA~8u2Bp8}W4g=&kV;-6y zO@Udi8c>r>Z==~_uq6sWne!|h3=$1#7ST49eiV=-B2~`tTjcB)!J%Z=q!pU&7ME<# z-zY!~35^k}x!@_!O^G>5wp1=4zxS+}#w#{PkVuS2aQ0ge-bPH|S(!@ai}0 zTY2%0@BeF``S}0yZ?4!1ctsY#s+XI;a(edtC#OnE5nHrv?8;Nc^fmeU#tQUNHo58J z{!6j{i{!kkW~?9|EQ55$XdwhqtP#9(cxQ2@PYTPEVNCy^yZsqU+&n}r{&ON}xpn}x zJ2v9$F=W@z{{1dbqKioM2F!)8XD`+D^3a0**QnVBB1u=#>CMD;6*s*D>=t2m2yJhm zqHhmg!TU!<~H&A15S@xhoSOaZDUf3A0m7PkfoFuLv7QSi9y2zb`TjhH2NUM9>=5=f@J37-1WGD&|-{bHg1ri$9Ypyu(P=?HYbP?Sy(mdh@mBh z2vw&`b;+DBTD-V-3qQNF3N8Tg7TIa6AxZ>ak)OGBW5Ea?PKKc!N<2F^J{?_MiVBkvni41CgUHtb$$IefyXZI z$jj%r!tqVN{D`?`eekYNzc^V*&9qGF0^97(=_2*I&A1Hm^(DT`CVw|I9W79A@+)X5 z7uJA?;;p4}mdaY3$sBl@xN+I=(*tQn6|siOT9VqF4;K?{NQ4lGB$Sf9xa1QS zaa4|eaRBGlXVGcd*gFeE^0D`vb?>)#d`N*7NfjL(rs_J<9Heb;0W(HJjWM~{W@-%6 z{Wnm5%?1Z=xs~>@huM1Sadhi(+87C4$N3?3DwC>!l|b?_2??Pb_jF$YS!;q zrMmtxjG0o!6(%mx7rsbI)YjbiB+MGzr~+ep5>96Y=N*I`^htmig{T<^7&@Y9OSWH` zV=Q74(L`)=Wh0y7Kx84H#Z8s|S!JZ&xN>eFn&ME-lsHM)HG`T^=Eh;7psmu(+mbsW zed)0(IUBWDV^V}s-}Owpd0C#rSOgsXP7*AGHsuOcy^W!JH_Bm>T13{fWg$vylw&h@ z&pyXne&&xKd*bK6`SvTy3%FtdaCpTXI2-G~ePT9a5N2#uo*1RKsCpc__w)0G?(prU zXlG%e`L%H4mm2Bp<7LoB$jw0pR;j$hJC{i{S?~&VJ>_7r8HJ^DQYJz=63%QbSXFRB zZ7j(`6P0;rX;nac@uOvNZ<_twoqKO5QN}AC3(#b7Upqf=fzQ9($W;*(ggsZ+Wnzq+ zO|uFq78*4}vN>ec$O`H3U6=!J#J=$uqbL59%@>}c-8@F!PO>1zkO~l(VbzA=>=ZIR zO}q67_Q*Q!dL@bjGt2IZ=CzOnM5+wJs={1w(GhGzlF|X#E7mJ%rl@8!zq3Si25!|8 zP43vMny@h^1liir`UY(xE@lt6HHm04Q&OVqK$KaQF-o%8MaUk35=_EHFwv3DSwNB1 zgcXal4jO1CQ?$uRM&${kOB>io7BR& z9x(w`A&SM)(5hiGtPyqkqx-#l0yuWr>y1~C2XN~K-|)hj&3C4G%gp*L0ejSW=YqV@ zM(j<0cKZA(i!44gA({yyjYho9%`-=X0kzMYzeLcwGwp~Vy!=>b^o15Egc9B{s63@>MA2wbGaNTOd@c5CzK84H`+Zz} z=liMm-9)U{m^mewIgUArKuQJ^Ycy5Js%LbtBAO|UX_@%mHl)h~T{yuhYxeGf%4I5w z^~L`$W_QLkAcjB;F-PK-TumflDnm8&L}I3jE6E~@!kg~+`TU)$;B0n5AeZ}QtVv)F zVKWe3O0*{<&6$>FbB=B+E*PAG5J(b8ra?_ZvX`#bRmj3lgrs!=erJW=&Jmb0k1Ke2 zFGK$}L_A0&x2DV4he(yHEHrU!JAC^!KD_T|{^;o|(m+>a0sQdq935<@_){mxb7+;B zclZdf6MN`rr=Z)EEd9Qh@FR~dt+&&(S$hpDLtT5Ek<8b>*m1vm{ys5}NB{sJ07*naRC;|egx6w732kYgO1tQjmkQNZa@o9Y zSZC|n4a_w+V$Qyk;j>3+o_dIQ;z`M~WqW&qA zXAlwR5G$FOCv}W9icNx>*Q7=l;npZv@p=8JBBs0gD@Y^juOWln{Z`b>bBKVLH#4lh ziIi?6nrwCDZb=c5K-V=pBAg7KH){Jmhid)z!1m={#uW*Gd#_%-_m7`Bd*@aY^JOQG zXtVd;mSXzljs9*GOnQ!C2I`If1im z*sk?Cl5yAMa(K2A3Yn{0kqUH{5V2X~OF{c%3F#)G>&V=d0}J3+Dq>TG9nn&_`f?N@H*Qyg3TjMIdAdkW12nmEj|wkaRhpdEWcRqJkkDMMrR6iOq=cqe@*7NNd*rd4#B+Hr$c4wHzSrfG zU&(i}R_uP7{?!@d+0-ZFU`F~#RhMDe3FVcbi00-P2E`_e$_nklYnk8iChTqRB(2`S zBn9HWmW|tLWF;U9(Rt>co|vVdD{^SBwJn478hq+bo`JjG$}=?6kV!+(UW2Pi)T26^ z?IN8yh)N=ou%;r+B7`h)q)zx%o2xy^z@jcqrKrJ1p`GQzBsH;6t_#rwRALbZo@nOa zB3RAMK20i{Ha7t=DyWHj=4)x@vNG#xCrUyy(vSpfdK2q|??&C5GdyTC7q3y}IYcog zCy3<;1gKQl7*`I+{7d)#(0}*YKmDa&xGc4F*%m zF4yz#hy;jW`$epXMy!ER?HD*iPYkhmZkJTHJF@0fFMmTWhmtxWQlbi#F;ICXO+y=6 zlJUKZ^Z)mewQ#`!im+gLqY5Fo8v6{)|ioMf$T5-wR>vIL_f(_)gtob{Zz|2z=bcl9d6!>gDLA=GnX z)zZ?CEFjs6c-c|ba*~W5B;7}BZlbQ5xMOW?8uz>ogkQGb3s`Mc-0L)ApZVDSlN9*lG~^vjzc_SW+6rSpak zk(}+}xt1MxbdrD%K=V56jXsOt<7Mu_prBa7W9yN)m5!+hyltG`h znCXBsM% zs8UNKhTt576ltB^5eDq{Lr;33i-#|ryOxR`hK{a!Jeipv`cb^6b_-wAGNNr&w7`DSU=Z3;??yzBmnwEXjGx!9- zR#fvT*0da3KY)ot8Xs{ACOMKML~>$H#9*|>Mn%n(XcY;={5jj?d%i6Bp}Ss1EGHq_ zY&MEUOmYa0XlBH;ip!~Hy}biU6&r@rGsx-ZnV)!)_SEBy&z>Po$4EQH#TG+0KV1jd zF$Wy;bCJpMmeqYLBsT}06HSe#HqXBnVp5T8XjO*RwV0H(W-RlPRIv$c%vqX21*Oe^ zU1`guQ^l@&@GZdxNC_7`L2@c@kd$e;=lR)NHAKmFPAsLlncOE!kYp3i0l_f0DW?EO zkCldM=Gb};VpDLH6tQPuetwP&4E6N^Ya1jwl$`sJiBL;~!|V*hO0pP}XkOu$_3(;ZlepOp~r&pCx5O3=Mreddr$3s0Rfk^X!o0RQh(_^ z79~Iz()?Lk?v@b6?<`+St;xf$2P(XF(_-vRqhN`^d~x_*um; zP1qQpB@Gf+Kl2rWLUZl4$gvlwtZ-s|1C^Q}b8MQCh|H~_N*1BTsCM)Qz4=XFH@>*r zOOJ)mzUTs!!%Gq!YB#afONfji4KVFthy$Yc2$4ZJPqlp-Idg(^{CT!sJj(3s^Q75X zhVz(Ndko~tzdpCF%tJ#m2Gd#w6Cph{MQ<6=)-%)yt+x2MY_%0D(HN}Fh=RQmW#+j_eHIWK;VDEy;qVzUfb){Ur97~E)=}O6su_ZK^N>*Y- zlAv3b?U$x`)s@}?Mg?yi`wp&wJ5M5E5mY@I9hgvZ3v5wFF{l2d0f9hBBa+??yo;o7 zC9zf%P+&R>RF$Xl7EN)nFP02TrO><~If=+-k#M$^LtEREzshSN0DkDVj{0Ug|DN;H zNSjjj+ch)8V2^SsI|K9ljkhm>uJdkAI01 zHykFduX5(hCL@`%Js-1i;2JE-Xu8S1dBfJgGZT*q5RJvE;!^@bNdU1(Dxj2!uY#?m zSXYuW-@G|Vwf<+A(c_4nW;1g89@3fj<7N&!KFj3k2ibh`i^RgZXHX=+Z#9gb?O&CEoZ7K}{5nH(W0s3{Q$DQVW-dRSUtCHf#hl#V1uNp^~hHPhn| zw_?fWQ+%oj%#j0;;Z>d~Sx`ku{ocr#kEJAA4T3LBw>a=!EbO$J%AX6|0uv>A9u?RKV6>;x0p^Zw4UkoFy(@bWIg zV)cne_Kj-RYllyBT+sq4K~%8Aig{E*lX86Az`Bd7RPV8#udp zl9gd#>-38p+;@PRPe0ARQ)fsLII(dJ&t3fnjI7cKB+bc9kZ4U7GX27nmkT4k+cJX#L~hPZ99o&SC6Hn(at)|2F529wnSU#xRcY(&jEW7%UdmM3h-cm@>p< zNNQ2zGuNQ;Ool6nU12a|(`IdolzW5#_BY zUq{qC2|6O#P%Mi9qB+Xcgn-T(26aVcayEk$tfZ@R$;7t?QN=4n6(%a23w-w-2kk!w zUZnu=?t{msalMVXBr+ACMhZD&ClT{>JGFHE>sl#O_n#t8R)+h5|bQ!n!1(fir10-Fc!!XzOYCD(K$ zQsIhsDVvzRa9z5m-D9Uf?0#Q%p%U10xYf^N+;fO}lp(6%{4v_WpRoCKLpt5yR7g_i z@?kO;LGGX=nXXGL;s@0q#*?%XL(KJWz&%@XGJ znpwF=l~`uEWQwZLj$3N`|8e(bL6;oYo!{?dW>ww$?cHC0-RKQF2(SS(2?8WVP$P;I zC0Pu~mMmL-@r%QruwOh8c7$WXezPAO;TJ#He)7vW!s7^!!*W>R@pv?n#u|+%?h7dF z00E-0^xofkzk91HGmjrK>n`8cUpGLBKxFfq+N?})=lY!kNN+mNdII?}>7-3FF20f`_nWr!NF z*dVA)22Qx6jIJv^FWADQFlnPO4|9)H_+m63^Hl9PV;n?G6cS0Q!OH?(9z)ENL@pD; zgQ(6YwT@; zB)J_a0RG?)-*q5=XRFRs^@ObdWt+?7V2!+X$2!1_`fqYV5M#+pwuee*DU6T`F{IDN zZo!!aF0%kGvkT%dL9kzA5L|@N1r`|@6Hy@GNr=B7$(D>@jZ3)zs#%2+vv3qma#EORH3zk$g+iJZCialx4wyDgFb1FnL`#3ca_V!xif;6mk8#0ygrWV5(bM(n@vAQN>m$VV<&k^5Qh(up(gsbs<2ef z(M21MU7MZuYaIb$Czf0t>gs>-r&oIa_17QlB-FlkqyRX-R4%`Hd-S!D4;WP<9WjC> ziOiIqn@oa()%6ba>#E)wVnUB4(sM=1^*OVOfr?&} znWN;$!weQm)ReS>B>%P#oEz?N_NOoL>A(IqXK%iP+1+8uCN*=^Hk4wRAKl^RAO7zQ zR##bh`#t*hBSxEBymjU=dY^iRZPy1Zq9N}DW{fl3PipZ5lM&E}1i||ijGf11%I&D0 zs1?RPMElrR&~_0*ihXE}(mGHvNfp&1)lKZqM+dremabrYAUeT>UHm&Qq3?W)Ub91c zqhj#Jfa-FY;nPW`Xh-8EQ3$&MA0oCgIGeB`-vq)4Y;>6+Ix+01j(K~4Bmg8p97gI; zqq|9f#wKEX<^vW*BKSdoN^o;U5;AF!vC$&l;CCCOO~5qbi0UbaeKtSbO;N8V?R_>H zMpe!HBlASppfTp8B|BLgTHwW_(#LZVmCu2Eo~Y+&Q@mjATc);CK_t~eKntSw&|Jn$ zvBa3TE86I3e4uca!giW)4pX)%eK;WOYRN}U`;E&h@f`5ZVe{ok0noJiA6y$MA$k&4 z8%bH+xmwB?9nYG8Ok)01lwW51H5M`mXoxAp&ln1qCKa7+!|@mSbi0@D1d&_|5NuSM z#?yBh1vYkUN++~e@O6WFkIl~JNJQ-py#P5}EfKN`iB<$tvKWSp zuD;Fa!}pk1VI^*GesrDJKfFfyz~T!-$S?EfR0H?-T&g1L<=KfZX|4j^A;lks1OOXcO3CH6xz}llb;Wm6M{LL)_}th zvS1v08e)%N76|eb!9Gvar-*U_PzoTK1)Uhpx08DwautC@5R)?^RWcAAsY9gpEyjYi zDI>8FO+czKXf(uNxGFmLT<~5805*jexm+LvHuv87k}De3uj2=uF2@x8%Q+W4vV-u(9gdo$Y|y@ zsc)K4NqqF|j2hwAx2PQ6oLktoo(Fq2-{y_R3yZ8X?LDeAHBgNFaL9%y0OlV z6RfH6#^ObAVo)t8#iGG8G<|Ay6rmF zFlD;F6Bf_RQ7mW%OFO$<5G{!~kn>1n9~HCc6b*pg|BFBrV3ZdMyCTUvWe89 zW=KIXPMVUOwjH&j7&8P7v>t4Xpb<5JD2Y0~)<7L1A8m|YxU{se2y7lSXATtrmrt*( zy}C8{?Z)o{hG+y;mwfeRlpkJ^Trakz3GjY#BQmy`TPM(0D~ngk4;2A#v9P4Y%)jAM6tx}T(t+6a)L93DexN7S)qe(40oXP%|mYG^-v znc;W;n)T5xZfgr$Z(yZQP$9+aRTyuP5=LggMp$AP1Fl*JgvH@0zWeZJ`1T9m!1tF> z618{U@W(qMHFbP;S2?pn(EfxGO z#f>+){pz1EH@cGmRO8Y_M~D|MQ+)RK2}O@6bA&KJ~7As}8YEo#eN|^$2 zY>G8Ua~`*ttaAOFn?Nc*EqP}VLNG*A(rRQ7G+{6jGec32#x8ShX%!YLPV`REZ!HUN z{xMZMWU&P)J$2dAAMLVi4ACjUSro@dZOcpL1}|9X`BS|1_?LL)g|FbtM+w>z#ua>X zU{oH1``P&qZ+XYpibNyeG~=rsAs@?GyCR5c4)x9nkNtFnLIl@P*W}-(3{q$Hhi8)gTyi z4y3@ERAit)C_n?z3~1@0H+CsDJy8l;o8m-l1#{=;*sU6dw#P_LVa!*c{t{8n(OMyz zi1kUcQk{x=9Sa;j=6$4A+axS)h>Tn$IvsoIj2bF0th~R)`6u|wKlpFI`~83KKmCH= zdyWGIz;FF8Zx*Zb`r`ISxp3t;@t~{zlT@%yT5ZcJr3?`QLkpOeo(9Sou{IGM7>%g7 zq*7W>haaGk7$@lP&$FeWw{-r9WOpYYaI}s{pzsQsz@8I+z{wBardq$oTbp;-xb*?p zhWV3E^ZxJ(YvDRBHq^itJqVVOO}u+PzzrX0I?H8_0aQm(raBY2nGr2Q~LU;iQgXD=Z>(Aaq- zdMuuL=`^Rl^n2{CJwlWkZ(B61Qp$^n^ziYUIQs^Lbfv;H^9$zd(Fx+ngv_J(_@kp` z9v=_Ulh~&MiI=ZNfS?wF5^iqc+DKi1)quAVcY29%;RKC4i*KL9$R(m#B^Gl89IXin z?}{l~FJ{3eCda`{aaZo^-94JLMpGKF&y}T&M!ZCVYdE(VdG?JhE?v3KiJjsb#fjzr z5m?`Qjspe2ix(FkdFl4z5+pM06;PT#~?;kDaO z@%HxP4Bbhhx)ew>jvp|2qS_fW^q@8k=-of_t`Nx;fi+tvWFLIYG48ejwHO>DW2nXA z$_09#evsAji$vFF_~-u@ublOmdX7t1-p4eaMh#m6F$Q8|xg`sHfaBJuUgWz^Jk8BB z4|02M6$G5uM8bKO`<=u?%&O$M`(uq^e0Tc}n%;5J{ZGV0%lJr;(8KM4FjQmz3qVAL_i9rWl$e_|>G!NaR2@5)Wm_!Cnk|w0DLCDN%`(-qQA0 zaF0BX&V7cUXNj_g=Bh#+Ea@VsdbI1SbetJ7^)vm54!fW1zN8Zjv)Y5AIi>|L1^q^G z7^2i%xV^&*uifI)?`-nmR)CfGV)cML1$=AoRSpyY>!Y}Oa}>*{Oh6gw5Zjn4`HCVT z`Sg_n(ZCW{`N{*|=XW0e4(Hq*sOEU~fouGeH@5ix_Lph2Oau@n#}0Jl4H7@zbG@gQ z{N0_augj=PWuqdk(WL4{p|zI!%sJXq4=|eR(~mWq?|jIOre^7vzs^UEC%pU${oC&& z^;SwoDGl}fGCRGKd{DOxU-%k#7S?E-BUsBq>ls={7xgt}Ox~*+3X{osz-A!K5|k!w z>fk}_K(I;EJ)a%E+i0HHR%6bfGZ0()x<&ow_i?v>Mr)GmOv8wFVU7ONUxg=rg+Z~L z39p3$n|#|?f(U4j%2xF3DWrJ?FYlms2Q-55$pt1L>OjjB@MDsX@1BTW_KX>13OjKr zCq->`I3)LG%15ZMJBE5AU~EZ{U7YkVC!fGR^qbW70fNq>T0pG9vc8;JaY98bAE*L zJ(_KG{?2gipfNd60NiZ!xj`LrNMrVIPDl5lIek-cMj2S8A4<;A@cj9YI8(hwg&~?H z9_YWx=N`Ps%WsSb?P5}Q(Hxd*64IN=9`^2Xzp!)DFc3%4qmH{G$fW`Nh={@x#)w5q^r*{&s2CGUGhcW;^pMs0*Hf5po z?4$JE8d^Mz`X5mH4+wD!kqtz)5z}C_Ny0$ytBBQXQvsbH+v1S`CXh(r94eNeeQ4K+ zo9pOk1CbW2GAjBkKlxeerH5%u01cRE5lYa4jxkiEB{BVE%}P6Vpiabh0%1?rriI${ z^VabJlfboZGtS}5N?>_+#53=1@x@o~@X*a2<^)27Q3YYpQuXDzAO5{R{%4>2?|yS8 zDsZ0w_}%~M`(~+%zt+@YqIPtksZ1!OQ#^OX`@q8R4hw@Vma4Z{vR6^&u-Z#BZ{ZFr za}9-Ukh;aVGT&exn4DUAR|=(1pe2uM$Yw|W$qPYKFai=|Di-2Wz)&mh7L5Rmb16lL$3X3r*?xbJJHxBx1SV%X5W@)OMF2ed`N zMvoTD%zgUH^e_K9gN4(0RU9oQDp4$+L}l%aQk8+Z!eZ6Z#*>J9mR@m=s=2|?ze^k5 zBE+9zroPj86!NYd)evK!5KjPW2q!VDB5|3~#$O`!4J?kp zJiYTzQa$n%8^)p0UHAgHRA1?)VFREwr;R9y2fyBi{E(WAs)N52-2WN32u!KuAO4&7r^FVpzJ4(nRwCa zY)!kpasKz>8kwXCD+d88<1>$iZS4M`vv;G3sJ1C0)Fif|V1?aBo?=)TcFkPUe#8?| z8dFeHP!~#!hL#?89()|th>bn03atU7Em2eONY{zULr&5@j{V@wFwX8Bmpvcs2ML%~ z{dMB{V*1dWg{dYX?PRY{w5ZgX$u~ss55pR*19($Xucl=YZB5K(&&&tmNw{o(>W{S-caK&>@6_e?~E%&=>maV(jK%x)zBJ;>Jq9eM3%s;fvn|)e-dE{GumQw z^;<;eaIJ@Ond(!&O4C103fq?P#x=>wk90`39=N!>XJ=+!c1Lxg^4$gtPy~mHPg<)g zK`fq3KB|gn%b7vV^RM0H(pxvVxIMzSH8pno7IFQ3MmOGJ^ZI+Rc@wugpbQ>NpjlibKJ+3#x_yDuqj$J4 zw@#Fjw>KZMVQ2y;b2VP&drq=F>hz6y9Pka!y56oq}9%59_ECdAt`euLIu zMZ*s2xA3})NGiyYc3q##Df6-|QlQ%A z4P5(0#lOD&>bvhFfNq%P1nf*GR1EQeO5(+?5 z1Z`9WW04prLg4gZ$kT7$;__>^xwze8txjSO!iSKegj%9{+Yzk}WUkZQQYLQDvm7Z-%VDdV+`N zwlHPI8(U}jsC_tRHVNYhvu+?{JZ2xe9lJdDk!>39NWW&zq%g&557I%23CBn!p%SW` zPj@VQvjcYy(qKMLySv9EC7+BV?j(YV$yN{ZATPTJ!ktm?q@x!QOJE*!h0;7k;Tl>uM0AAF zU66)AL(~>D(YkdaG;tS{AQe{TQRYDVpe3|D{IE@n%PbPL0%?h61Vo&AsxUz64SFHc z&aH6b(yuY>FH)#US(R}=-TZ6_`rQ$hy~*m`e35Jt0;x2ZK)_JstlFTFGPIo8X?ga| z+kED=JDlAKl$sLRI+va1Y(b+!4B&SgbZ4}*w;wYC;9vjy|CPk`8~>SoZ-eHYAF}oK zk8#)DN9%3G2nA63WaHFD$zb6mXP&-Hap|`(%jX!Ced=^$SgpkK#Wx z1c(`+)YLaCfz!JU&%SYsUwZW>XSZ9*kc6kn-YX>)I8_O`dNG7SfJOUvUj6%j`hQ&d zZ@xap0cHfiseUVix4tRw|Je`NU4M`M?iQ#LrA>gI5q7JBwpyn5;APG~_ccc69;1~7 zj9mb!5wS?Iz_tnWY?*Qdqy>|SCpGPqicHkgy#hh@aso^i#zAJlWX$%D{!u2vy|jIg zY8pVy0X-?&k%>w(Sy>5BF>=7U_P4!)VBCj8?(d%OWd?E1G5FGTH)}jHz?9qAg>Pc} zH*gLL1B3D<>Xj3mdg5QhJ@X~DdgrKZf#xhigGX|NqeZBkr791I^xWt6DyJ5OPUePm z?^vKju&BChd#8XcA-U944JK9?0h3vUBPmNxa_+pSrB_x2wX{v3t9KwojCim+48rxq zXuNijh0DLeu-{8~hO?-aOtKoY`koVd63nuHK6mEXL8e&e=A9j#bl*l>ikJe`LZ(SS zJ*c_-#!bHP$}P?fYK)1rXjJw=nh8eUGd<^+L9Ur<^50pKB@7DLd znT^Le?x^<<6d)9kv*$W9K*S>M4#oUSl*@lfueip@Hk4<3tbL`&&f~uX^WR`=ZUw^# zL-NlTAr*9un!>v)XXzD1PAHn7E3+5`bPGOxo&`Ws<`c$}GZnkqg_1osQAj{59-}R# zfqCbsstRW;F$%-FWzYngak_V6TIv@CKD4xL3UwEE9b3JRu^&-9_%`;48AdB-2~-qOC}YyYn0vbtrpPyqw6R5He-j{kBg+OS!)bTaZb8$EXRwbGC!A7z>EMiSyzHqosm7fyvI;Ht{gt7} z4u)y7_drN-Zz)>P;jj@_<_$}IrH~ZWhc(Q*0&8Gn7?O=lBJXsCXRZtk+K9?JZt8Sub4&+F?I+FzkK{V+>Ue3kOzr)ZWg(6~N9QXX{_Ax29Pl1dbf zp*8773QYwk)#~^`=ch;v9v=*a?cPgj=+SL9BJStEVDymx_wLMskC6}+5j)x8?gQ00 z%H}`LZhqfQLQ=sq*Mq7cb_ZL1gvbalB}RLo4Z)3w)jDD~k$8e8&f|21i-AZl#ZZ`r zzKc{65sd^hsU6XUl~3tO`3;-wT!AsGZWbMArx)anq!YxNSehi%^h#l=-=m_%#)y$X z)UxO7?k~Y3ZvHmh_eHo&|i^pZE zIO(t;QvQuGk_fLQ6_ho5+}8)iaYRk^4?>JdYtp2hbZ$hamR2Jxqrfvi+v1C_-R7Z< zU7EaZ%2-a3$fh4ra4}u8wyDM;#vnm)!%(%Ousq$583Ev$_1;=_ofn>YfUARt2#@_T z{^84ng;NZSqE=AT;M5{PF*Xofz~~$fLlG700>O_FZ-lqrIvE&>F5IPLM_@vPPgRTKnR*dcy za9zY&&XAKKh{tM))dp2du+U16Hm>68GZ^g=%m~FNFb>ZiMI z`m56BmmMo3O!5@caX}qf!%dh=BysVmP`Dx&=Cl|MiS(7UiyBi<7z>2FThAeyI1;OJ zgcMgW{Z~;lfVi3{+pQAH_pozsQr!AwYHJx4k;U3zoFdjxSc|ceOWbvF`zhV5I z(Mk{11%|zvXnL5~&!}U>YQWIqZA0y9T#WP^hcIAhlwG!I<2BH7zm}=4I~dZ~T{kS#={j)&Ty& z|NQTp`7(ZOtKDL_?YQ>6*JLSJ3Lxjau+M*)*c~n!7 zi=~J7g6K-DspySbf*UcY3S3))^r%pZ#sIq%%(K{z7!^sd%uMp`x6De<)b@jQ)2~0# zwkH-KkvC>9cSz~XsR#%8eVrJ(ho182etse<{+@mxcuwiKvI{y|GJx2eC2qe!1DO76 zhy+5rLOXbdu=^+>^i$NJrpmYp5RF))I46_Gbu4S>Ab9lfqo(u*x~z&e#7y^{gl}R( zvYBhb5WGUnAfTj>aHL6#K0HWh9){kVsJluRyD!Z}3eHo_oxrFA>p?7CU5x1--E$s` zIEK~{fW=Y5EOskRq1QxCYE2a*FTQe}CqCMs@=$6CYKc~}OSQB3C!^DaxOea9*vp`3 z6KOYgpVXl&0XJbv04y$^q3r3U;pRzRdg&^DWI!7j4k(5#Mm{2Z_&RlT_@a+lI7#o+ zX;#jjW$}S$&@(5AE9Yp-Riaaj17gdny~#@NI?=Rj_;U=}i>MZu&|~BR*cu;ORJwfi z*~KAwVja|eUO2$s^Ugv!9X}$V(6%{$9DB$&ezBWK!2D}|*NjVrW+=ZW=sLh(z8 z-NCmf(dHpySRqoTNIbg%p+YE8jTmQeZV!pf5yLS}{eJvTC-i+xD2ij$D!a9(s7T@K zQ8AJTHh1et-GJbjA?1(}P+*!*gT9EWL5k}MCx~mv=viF2gs}^#wn@Nf56L+I(|sP# znEaO6voWQQCdWqtCKi}bk|IP$%-6zVV`*HVbv2iMy3M6mKj8GxQ(J?jB#35hr7IjW zaW5KUW-To8!Z#p6&^8jbMwJP6fxQBtZh|p>Lq_X?D{t&Dr-4QrR2C9IBr!#GnVMc~ zV0%E^zRJ#fuMnzl(OX(!e(h0~AO9@+$kVXAz{#bn{LbUw=JDlgppKVrpXJZq{Q@_d zr>M1nps3lxRtprt%uIp(kzxnTgTIO0f2wt<(JCIr(FQ|ZgW{6=MZ2JygE50&$kvfe zCdD75MoeNuLg(@RBB4DCcoMx;iRQ9pah%YV!deZ2GbRV+u*bl>%Xnma`6!`2F$||h zS&{%~G_by#a{c>7k5oxm*sUWQ!667lZ(s9?(^VJV|%v{89-RW`bWW^ z&+gqiGbQ&?@ncQt{#xS4EMkr-)WD;+TAupph~Bm*mX_UR%j(-(^xKBkwnTd5(luC} z#BJR5N}Vzx?0-vk)$j;dNW+&fo2A8gGtvNdJ!_|Qdmg>>Vc^wlt~8LxhX zZtO4|+@@ZC9rw-yoV##_-}{3VURZmT#c&-HVe!mOw)`T0^3EzvaT4Pl3?mf19Kp4J zr;pja(zyT*MZ@oL@!zZVFau1A5ESYr64an#>B5^kz;GI9>*60eRPdl=r^Bv!zkxn5 zSt>`jPW4a8Ky=@fK!^!3FgS>FU|Q4;ft28*Y9X8eT9iaw=}e|}9d~=$V{!l}*^Lp$ zU?}Q52;=iiq6QGd$Qy2LD}`;bCKdK*d`MNDY{~<*v0@T+C?sMOOKBd4Z~-$MqA~!T zgSeQu6iuoNmDJIrWBiZ0*XbK^BrXihF6VE<7k;$K;~#Ay+9vW5DY2u9p($v!B@*!_ zP{n-5V~peOPdEi;rOH8Wqz_bIIrTZ3m6OHSd@r$j%XZl(4u#)@!;Ye`g#LZu#~LU8(doXknf0RM-3tl z9rg*@5{n6k`<{`!>p*w;(Z^ZR9mCGOwz0O6raDc4x{W!HJPRq!l&Kk@n^pe~e^du8 z^f=Zgj_A{#&-YEb?i>dNHI0wSwGg`fC00qJLC`LFDF@=DiRTb{*<9EKT}TODq|G5| zp*lvzIpn^l1!8(Vl^}G~cgFwetg(v_rKC|q8#Lv~=ir8)+f+}PlXf0rx%Lsqon!SZ1qF%MG} z3+S$AyO2~cHY!0t)aKNQqbGAxOobpRfXX!Lde)#gc{g=LTgW{=2 zSUC4MBaKL?DX5XwW1AKUEgBMuM-WgW6v0x+2xA?tU(qj1&Ms_FFMXdjSVSU28mujm zCM4Bg3p@s|6)}vkuArDg`X`h1-fhIAl7bF$za0yZn>wad!>I9ibvfxJ&_%MPTJv(( z2Xn9O4-^SAkQ&S|pT*_=bhhu&i$8a2>b?@? zRf@-#na}s!@t*(o2n)&ng)Tfe=jNx!mxVN%?uSSsO3i)|>57j;bgU(`<7;U*CK9I1 zru%D3stzqdIJY63zqZK-J8$uSZ~Y6d#_JRakCl(|JN;kfsqzH2USL3z-J5_Irpu%q z)w=wuDB1Vm!H=4`?(?w#Sg-5i2jAOfvSH zwtvt+ZuB4=Q`Oc?C(zJ6bCb(SfG?kB;%$NSY5hQfALZ_Vgq7?bt$W>I?!i_ccx;B*pfp)aE_HB6~O{ z$wCDx4ssZC5_~ZWx{jbG3j_h_NL4jm=i@a6Ql9<;w_BRgZN9tnBYqaI(8!S188*Xf z#2r{!{W_=SPU1#_^EINm*r`>}n5#$~G3T=u7){nnQ~ksJ7{JeNY4gfk1H{+JM?au> z`3y@heuHhdisFbS;$4bPvaw6{2v}OYNhq=btXe`WST`5=f8TzBUI;w4ko>c+-6{Ca z)ywRflSB-K2r7XX3x=UaiS#Nr6${1Gf73EQeR3SA?O5^jGK;8;U#cc<${c>C7@FXz z8%4!sL74iMHhjs8zw7DL4wcV8-Ghmle1H%;;Ml#rKkW7NE-Lx_hlW~fx7X*qb_sdM zS0p6whIUbcou`0QTY%`mc4%}qe~>+1+s@-Z+uNf|qV66Jd|p%d#z9&}%D3vUnta?; zUywk`c}O`BsX7ly(;0hmx*dKhHU*f_d+kS8_Q~2kLp|(Uf}EHFVk-dnmA0M)?zT~$B~2kvkWIKX06(0a^Dyg9fff)&{zPx z_fA`EZ;wDKN~ziQE=&S)H0H$|K~g$t(?$lPNE_r5n4pK`FLI>uCxL!>*}rQJ{yX<2e3rK&ZI?@h9L+|n%?LrC{Bv$Ay} z_@*#{Nq6rtQ*(Op%dAN0Oo_c$5fLUaMcu;9QGpWj_Y9MKh`l53rtZg29kcIlIOM5J z-kGu_B~#_sM$tIH$C}!KQAeREP^hs3zO(z+{ObH?na8r@T5PBYMyX@LRDLgMA~wMNR#NE z=;fQ50>ErRRENe2L!VKz$WC~Gh84UdU#7?ik($KPnxdIvj0{H&qc#%8`D2p&?&?8v z;mB@hn?}2*RP>{N7)SPXZoQ-?b(C0v7(5|{90iypZsQ|^QH@WG7yBRZ%=u@pdC-n= z`1kiR_#FQ``+ms#Sd51rbJTe!Z9k4OJ&t4Zh&_L&wW=v_^sxB&>GwXV7>|RV{lV>^ zMSVZV9NC-keMykScx?L=I*+#%!y?k!5rsCHqrh;b+2E&PgXk)%Skd=F5dvNkuy?nX zq6CxHCaMr3;>?q;|GhskFeL!={8N|X+7l3a2p-G`zxh)(zx9vl?Owwvsn`KRv>p+k zN^EzPOr^^t&x0)%?I@Ty!B9@o*hPYIiLXr~#H4=3oGXwxdoA0emO-O5QIh(tUF1_% z=QQmslm8FUuMcT4939Mo;3MqTo}FQhSA$x2@%+38LHo%!C0b8icsAw@(pzAeMS5N+ zVxp!GDtJ|zqG6-iLQO$y93!X1taTr(6VJ9(R3!z03xJOV{4;Wr|iXq_GsRM&1&@w3&u~)sD)->;T#q5(EGGU|X7XR+3#mCgQxeC zIxuWwqLVVYkfxZ4O)dM?+F!)Bw~wDxzh}NH5H$m8)8~i0f-nB~Xlw+r-J1KS@kdhM^M1|QLjJ}q98B$PlVa!993 zJo260;X!=DT-8z}M_H;5Z*0n+wk^hu5YvHC8ITf#8bjT}=E$?tDs{|gfidat)U2W< zUf=)#AOJ~3K~&Hz3=UeD2Tgt;36f5z7)umGtHQ7i?2cMSUWrmB)?Z^0F`vZdfAE9a z+uu*%oC;&QGMy4|-Tz&7;Ky#pB%oA zb)*FmgHroI<6GK5PVIGcW=-NP$TsA^64N=geO?mPv0LzyYMn-;Q4=$gou--S%)@Qb~QAltMt6z>oNO(k6z{IQR1SYCh-e~ylx!8Kl*n+AOG(E`F_qS-XRnP z=8@0Sa}^tZ^@mg&Z{ylq)Ia(wdZ#~4IN!%b&AV`gl|%}GmMA9M8rkQeNzD(EOoG_e z0aS~L4xx_;LZnVCrqhEeQwb*o>d?|^P2&xfb2tNJLWV8^Z9jOu_hEJ@bEZ)UEp1R5 z9|^frFe>AyZ?#AIKx|?dOI*Ah)U+R8a z-sWSB-3X80W-Rdkwm`SkK3VPUP7Ex+>U(^4@HijnHs`A~ zp7Ez?{W90hElTHEXi8L|b^(jv!j!XEy6s8EbF6fITv1@7MU7C}mc}%MDt%`xs)O|y z@kvFeVAum5dyW&;BHRD`A5yNrN8Egi-FN>fy)%E8p_^x+b!^VBGv^D`CMH&LAW0eL zXlx{y5l(w)z@ouu*EdOc0UkA7MVu+0Z8yJB#`)%^AOcNL+87Z9W0k^K3RmDvNInT8 zV=zjl&Zi>OKn#ixAu;*TnF0=^$iSwI*PKj6_30G2H6!u$fSq>SvMR=80jGu6J+uS1 zB&GqdbiA2fq#6?gk;oLA(!sk>x4Z2Pj}}SPZ5rdOd^z9_4r`NhMl=elj@Ao48m#yn zl#?S+$Z-(|^k=GLce&2d?;Yf>oDBrqe@uG+UM0gp{hu{-_Qjv%Uz5L)GFYIGH^Ta2 z;K!F1*zG;UqwlTq!nRTc&&z8CA3QQgyR*n+Z)|a5*br&8Z2?mPAjPhS%*mM8Mb(zr^G`DW>;ERBfB8og*M5q;_6q$A zKcl>Gp0YIznpJ`cL~#_F=#Zi)9-qvCES1K(w{}xM2ifc&rtzoK>7gB%A>*Asxsrm9 zcp{^^#fV~!$L~|g4{F(uKkXNn zW9-z2EtZ+@PyBUE&iFABT=U~i7(k>B&?|BVw+;G1UWP z)$!E2ZeB+c`G<{(yP&m^E31aB`DNa{xWN2&L#fL4a*vxUj;eLEbDrvlA98*@#R$|^ z@kS|pD&1~^;(Vg&Yh9#?9_>fAZNklZR`Hdm?e(#9^T0GGpnzbAl33X~s^Z3$n6sbZ z#8*$U`>p?n=EHBYa{V9i!WSQBp=x>S_66P=KE(!)r6n3u_Ej(~F7|NhP-gwUsyZX> zk7GY|>gssHW-TX?LL}kR?dFNrZd$#ad{ZP<_0ieo%|vCLy2>#Y)AVs;VI{Mh*eN@ua-5 zoVmKrzy0+c9(n3}lyQe&K6`;bdf)RGcTRyhH71G(lCqBsn!{rcPmjIlkWjiX-ar?D zPOe?A9fB?yL}V`rHr<1nQyy^4QL6paSND7_W5aj$Joj>r&QzEPmGpTkdzIQ@{DODA zhE4_O>^bKCz`-mqbMcMF2U>4%E@3xuV)V^k>prgZ|CeU+p3`O;#I*e;Oxufsvjh=L zj95_$YmhUG+&Q^`Tb*bA&);M1`iLSzG!fBcUhkNe4|-dC-(6w(g)@BVi(g>v(T8zW zpJrp1_ka2hA8p)_y6+8434qjx&aO@L4{ zVUgFjFLOPf03+CFh*A(tstuQfz?65On}~Z=(j(e-QolB z!l^6U%r{U4#T(Ci^8@j zcmeElR~$Tm)5n{s#jhDO9G^=%D|YgeV+*I=o4h-IXBN9bx%(vC?`k>v_=CQ`S9sj* z_`OEwv4rMb#(26fdtcvEEP_tPTt##41k|mjIWqR3M$uTHuequl3 zq2Id97ry=lR(d6kT8IvtD_u*3zA0icU)C_C0Tj;skrnyESbgn~Y6D6D6Y&DKcjxgd zCH=U8`oOR#xi(m1*p@`o?Wlr8B}zn8a8vf5?wJT5zZs^_C^N6}uA7bC11H|TH;w`1 zbhh+;?pXUV1KFp}>(u!=JR=^k=sSDV#<;HK&4!$wM~ZbDSs*mX^jSR#LM3 zZlP?RELk%UL>LutQ?}8ED_;2e=a5S9p&(UIO4mUVV=1%^FgXU3H4kCYPTIs%DHSjO|+a zc(jV+ab;TNpPfYA&Ld;Hd5U&S;aGt~hh6s`7yoqn>a+mpgvovkU=}w!2;c(_6%2>; z`k05^d#F>ca!03!iCBDy?A8qneTzK`WgnkoZ#QOz`7h>vesDX;4LGCmWf06Lcms{m z#JwqCl@v!)80M-9Ou!RBQkc3yD1%Vc4ZT`1Y8i>=w%y^;&ppb*N?L;hE$G)Hit_&> z?@ePYORhV=--(EO?|Uz|s?6HE_Uh`D-OVPOl+>a&N}@E9W;D`=fi)P}@-l!w4GaV0 zfephj>@PDK7>41m1B^e&*1(H2vX;SUNQ$ILHd|z~_pYw)uBB_wS~4q_x7>Rp;`l?{ zx8zb;+0B-Qk^`v9%=hjZ%ZYRT=bZn^s5BBtH6T6l+_Rs0+QXy(5GpGXqiI4JBB@SU znFdrXA{7_AkMTS2z^C_Jg{%V##TIK{M|;n4<(fuO|GfZ2VAANET7PthMG^h=2&bzxDBVzU%ghpTj9F%gN>(d z+Wg7}igJwxVB^pvRa{IOg3Anhqs7L6w}zrlfOlzyNCabv8ZllG2VLuVTg3&}9jdU|XnqZRA z1Zs9iX{2gU9rFY<%?#aBjjL_!E6X)plddNb^;6gMdgX^v22F ze6ev>G`9V=Q|zPI;G5bfp%#y>Aj9_?{xQ_D#z@L=%u?KkCR3oP35gc0dBuv7J4?!^ z92QR@VLQXCG^>2edvAE1t!Bbbi*K_R<)QDr<@oLTa_4(KtO?)(jWB35Jz?YphyrSq zJ;Bp!DS1>}R0dX=ESOpqmfn;DSD{oaPaCrK3|G#7$Z!8I{}ZdLJzO-r{muvclYjhA zICeX!oaoz0wna!Z~s=30G>q90})P@YA;AENsgf{nxEc&K244 zWBmPa?iiC2evAT>RiXCr>;= z#1o|2ssYqNs=3^-R7ZkFtXEVk3`2@6Fk$oaCt^?=eG`ReaUvL(1V%!y6KD|>LQv`$ zhyi>Igb*8r5mIXK*b*4+|D%PpU2kn|+uP<3QO_pNdB{#N2>=QWaoOL1dAVa7t^Mt^ z650BDvyexbosjqx1~ooYLT1UW!I)u2+r}~8Vs32z>tDaNY4K0^v^E`<=B&g9S83MY zq*W-Ycqa@_FR=dRGSh>cnV!xaHTR>K zzChcIRP#|DT-x=9|C-$(svsuqgK^@R@dOx0)*Ee(Nv}ML+s}+8x&%&y5UE4J2MAFK zVjJH5^c=RKV@|uU9sS<);vXLMxsyHu9nd!(>{s`v6~>92VMK& zLQy~rsv%KQ57+1DT!AJpL&PwW-y>{e=pPWoSX3=ueKHB0p_N&zG1wHpo%**~=w{Qi zY<9nH7mmH{cz@KzxZ!%cK6OKTP-51^U*lsZ{+c|mRHgKhJX4&qDK;bF0o^&n^5grN zS?qJr@8hlW?{M*htNiAF_FG(e^({(-Pk;J39yzo?qI0jX6S>*rH~?c_Lgb<`@^p-5 zj8+c^o3U*-8dx!@2Ad4`fduX)29ja#jja0dt2dl`CLw?rl*~rd3PBw{KpCL)kxC&^ zAEzsgU0%D)|KHRe1`6rKaUXSIeUfcA^X}t6)mU%Y{?#_=HI14sqQp^!Izx0ZMF6i{UX%M4Yq6X?JP*s6EceFBtHO)Me#A_QhPIzv#Q4Ai=0==66sGZt& zLgy22TVf)%4n(QK+MuSD&HLh!_cKG^J;YO(1S^?j%!h7|bNbG7hq~ z8?HJ8`BF7#iznjCG{(*enR7U6uqN5ADKRY(wQeQ-X3Mpcy!pWw?GLH}e8iijHL(f6 z_TuPPp3XqXS{Y_&x=ZtXV(D3^_rdIohq<-3&f(khywJ6L?|*xl3$I<`#lQ8F?AtdF z2Kv2q7Vq4=Vwc^^!~0B{0HMfS%uGt(kcmah=;4OTys`782_42X0%1~5Xm)xP)TG3Q zG>KA>(NGk~D4TC=2c;`Sj1_VNg)#UjbiLr?*h4-Uwi?GPwdp|JkT^5>`A*H4ab)2z zBJPL9%HJ?SCcpSZG?a}%+=kCJjd>&{Iyc*Jrf@l0Yf6P9GZwJ z+f)fy#HJZh`$)e|ycEs|)+8Ls8o?Sv@vw?qn|9S7YOG)b2*}p=62Xfl5LxdJ$W5S= zx#VeUv@NGOR7!LM7SFUOzjy-k<(uqVYVq^Z=K9OG`Of$MfUHvxTd<}*4xc^hPMm#u zYh|GIDpXU>|Gu&Ixk?PGbrV83Aq7W(&2V>3_(UsYpi1Rxj8QN(L0X8kXvZ32Nwfy* zTSQx-I2QbSoT!#*o7;4m<$Uod_swxEU}FyvCD;rJhAF8jivpWFLfxldR+O|blG6@- zR6J{02OAPed2IHdAu;vPeAuwLGq(4K9X@)^hp3oaK0|igDRv7|ZoKAJvGb9qvoyw+ zj{e+omtdOQ4c{i33ZIo|%#bKxYNE6$VxLOdbi!?(X}`spBa1Ap7kqp1r|2<-m71ed z?{ajy&+WA-E|sUKWDkm?QwREajR^%}5*@q@1%4w0w84-NgK03PIzrXBSd4m#Ovnp6 zv1o>|B-_09glqRfTHmDB^sro%Z9DcOHrf1h(w^URkKx8+fhdl3RjOWKuH~4@4J~6y z8QYX)TR1)DiOt{KoPB3@T+{jdWmNT z*Rk1kYMo;`cKKd5MP+C4l7UfL-VikranAT6qOr#+%z%OZp++Z8o(Lir+{Xp=to!RD8t+hm8=asf@+j0Wr2wTl4gh zd%Sq!Rc`k8@z%X(SPwJIx>bJR%sV`@_a5gK5A(0yJI+c-<*n2>vZzG$O@4OMS3{vV z(RIThvGj2RC=*eYWCL&8$6FWbu7vCkTGJ50*K-$6miiw3hoE!J9TBCWSnjKonT0@9=c_7N^TAbQzF^ zyA0|*TriJv*W}bP1uD2ul539zxx~rxLyW>TyPwOgvzYci$O7w?qZb^7@1|lTjCaqW zOD~xt8wcS*1GOOs|KYFxiM8F5qD;0SBL2X0x6v?1_HlEbZPHK^9lIqJoK$iZf_kF% zh`xo5%D`qUmeX`s_i%fCo>~>}B2h}F{5rYsA+`oGB)~McDY6nRbJk=AF$G>7G@HWE zhho$wO+d%ubeJPQTqn-h#^l&tUw%|A?xVDiqtR_Xe?vCtX4kVc{8w?f5EFB?7o``K zL5LU)s7+CW5+NE(Fos@XsTPELQ#sSeI~={cPTsS$N>A2Orsm=||IR;nt{gtg1_3Zr zxV35Lu?92@>+?Olv+`h2qwM7x&s5*zSXjclg7^6}SMsw|w9+IKPr#6AU@8vCrOP^L z(Pq*mT1#auCVE7LU@8uVcX)B|RZdqQ5-GT5k02)UPSHVZ&fdafYeC97@%@cZ2DWTA z@X;3a5Bt9U(1|>0zHM`!G{)&pr2AIcrDe zi6+wXExz(+mh<}$ac%Y#D_CMa;K`W}_{_2ETwmJ9*Ka*X=><_sP(iJL_>`imS%V6N zvFCtfz8IOPI=st1`6yw(+id__+9ntCM-4CD?Y&308~vZ~lcb#)RFi2dLtktI1{$Ox z;!V#wuuye`doAV0!W715SYL6#dY&#~ck*5v8G*#SG3)e_F`SwZ&<|}{aAdm5WA#h? zc=>e>g)YGsEZDoOXE}>JK_nweji3xlib~zQ^<;dVR znF**w&iEd0@ig~%oU-9JGpgKi`}wZC$a)3Y%5?^N9_6j<1xlH2G6)lys0qrHS1@gQ z>JaH-qLN3C4MH#uk4w8ok_p@yOf_+S3CDVGpM zb71S@PtW*KqXD-ZZ<=QmZBpygTN_3cxr|UO0h+M-#AdH}ftD9SNC|y2Cf=~E;+@G` zY!Cpsr9YdQ)yyV$Pb$dObhpR@J1h!B&9Ryx2ti8JL50Km9H*YrRq0%{EM*J4>VA}W z-@d?|SKr~-FMgW-^l54vK*8ID&TH&&!F-0Nc$dR^6-Bw0o#cu=L(j~Trjnv!2^gFx zQ<;#Nj6qdX`U)|rw*Ahs{BLrb+=(W1Aq7aW73$~6&3(>v-r{rZi<~ugn2H{s)%X)R zUt52Mmv0yb)n0^E%DhipxsEJfqp%Tw@dF$%n3_qfP)mz+zxNfsT;Jz%>sPq%&(MoG z7?*;3Frb=>!6;228EhV(VZMbGgOxFkGud_>4frwIgMh_{U0;Uy#jcLs#sko_ASpZ7 zG}kgCH+)k2y;Xvc3im3>CEu*mVAE!sD|8K*=$Vyp@9pJyee!-A1i=6B#Z%=!{l?|r z&7Jw;cz=6%WK}fETAbmkKFR6qGV=_;8*Z7$Sd7Q19Yg{_AX5NOh{CN~Ypg7KrdDdq zVI@jNrYXf(4R~7I2*>!-bA3L4XdYcS#yR&a?`2QWb2(OOL<0`Ndc%r+>|L33lA%FWf z+Wf|^{R*a|tX%&W{L+~lkOy)f&}Ta2rQ^1Jnb?1go2Ld`>|2)Xo4oqXcUiu0j)jvy zPxsU>P-}s6JwnV8sXzll!|$kuNF0TdZ`II}iDJ+p9Iy?jxph8%lBU-7*V-&pwjQ%{ z9KrV2pEM_=iE|kDOB|c6&B8Z8%a41lHi9>)M+%@&SZgJNYc3e-LH?Eh=1Zp@i~#^p zci(x$=;ET-gX#qF9-|f`>0fP>U_3~27lEM_l+yHAantnlS#G)$te1;ifA3{Z?*A_Q z$QSVr+I6I|fxa`$EDzA$fMELQ+9G*n@tq#)E>Rrks<<2P(SPNuxUh;{I6x49G65Y3 ztuWjfgwhBiuIY`4kw~tJ%?uerw=D5E0(nxQG$J|*6&j)8!@SGkKn!uv&68{#-#%`W zn8~)&MmHR}&G%c~d=I|H_HDZz&&9+!uM){LqgJR)O%YmDHe*KD*f;ws?fyNUdhDl} zU8s5N`NOGZK`YQ-UM33}x^|x|Ya!Vx+KC(t2AK^UdB*Z-y-e+I@v{qom!H_nWi!tO zv&1^HXs8e@M*2u-0|snKG`*yq#XZT^ry9O_L+_sK-)My3BCfJyVJ1M6dk~urpNvG^ z+!wp|4osj!G8RZ1@NnH2lDuQE(Bv~r9=nZ(vc;`yhCB?D;ZIF!aPvu=u!}6D`hN|^ zRT{9B1L@M16>=x_=BL~u04}Y|hle`FJK3r~=tJ5uqXxVP7{zGbyk`IaAOJ~3K~!lZ z4@n|N;|SvD$pTRgPN5VFrbXQUEUx@6_h0_kJhFcu@z`fkW60Ey2Zget@&k$(2;F6D zy~e=iC}35w{Z($h{&o86*J-y~6s?TDhG3wF)c0h^0iO85yI`YSD+bqzJ>o?xKmSti>?&d)hL%^X@VX27GF%XNP&vY!Q zgJr+(@@VIE9+|$vyjdmIOZ?(b{VJwaKv{9+#@9J`G$(|Lx*CvYmKY2n2)WBpDuM`6 zN~|e4xFG!eXDSBn+q^ee;v3hW=0fjNtQm{=93wS>DQa;TGK_CwsE8&KHD!sWLa%Ak zTManCg-OV3Q@?D}SKCHx?otR$`sX*O99wOakKeXeXU4bM(M32hMRz(*K*b;-kXgMy z)oI<_eB2fRP*_vVw@t6@45b%*a6}+w5|_>5%Rwzx!O*9YX`BYyaex{F5sKLZn0yAm zdXGEb`*+M8JW80ICum073xjGv6$335LT^B8uuiE9Xf$+Up#Ja@-S^HRMkr>FV~Yc{ zd?XmfOCU&{01{0Isf*xkN-9b_^iX*UIAiGKi5<0Hd3;c!SmIFKnm867mU8mowyXVR zG%^3OZPUhFGd`8)iWUhO)~<8JUEs0K9R}1)`8zy$^gWK`mzfdEdi5>d|KI{y`yl<^ z3RAO}n4h=w*83EhMNFXEQ>s#!+f(37hKnVtf$jjh13{$6q0S12=dN>X&plqg@gd({ ze2Nu+hB7bkQem_OT7c9Tsj7kcvE=I^%%fVE2NZl!-bZQ?I4Yg+n7Ok?Ri|ji}_xc*WYnSP~{e5OW{S$Qa89a&(x)i>L)sm{e#K4!-7>u>B zzQp}^U%~Wl6B(d~PE&Q}h}ILaO(vNcseVc%xMYrO2-z43*?>`KXM(}fD{E>E$mZ+%-T^yGwYKtRhZs9ib zQ}=-D#9%3kiV#;ILYC#IR@9Z?>jLj1u1F=Tqc14?O09}*)r7Xv3TvEgz0M;iuW)dB zov&V6=R)-?VjMPx^n|vL*9g|_|hYHhlkzuy9{{;$7uS_`Xh&bc^9%Ohf_DPm2_mss_91Eo!F3Kwf^ z93UF;#!?$YZ5=+JX3vR7F*+dc-Qxc1|Ayk$C5%>-c_db=m@uGp&<{Pjb%_lT7c16p zoM-LQ8|2yrJky5`s|KR`*eb0H5+MGzFtA&4OFjCv{s4UW5nQWMpTpPFB(IPH6otcc)HP3 z1?U*ZLZ`q;MrAsnHGA|HKe7J}e&wm}akl*y?Ycyy1S!#I2x>tcHsnYwKrMQ zE-iBN_19>XU5e17GgzlpdfMc4d|;}3h2w*3>{~uh@13ua^=~2)QPW}J@FNs4()ON0 z6aS!^CZ}91HaN1{Bo4I^u%{bTwxLZY8YwbEr^v8GB!-dybQnhbv0F2N9x%lodirE~ z^A9@BhMI{d2h9;`I;=3=zea!Y5>^Zga~(uWh>mFb#B3EW7VoF128uHt%YfjOEH{WT zh-68vk{Tr@ls+mk48Zo7Dm>FDZBNQnvjH`cXt(7(6&Y^QhG&h43U zJv`H~_71c7+dp?=OK)xU0s!6q`ud^yh5Id2k;OnQkwBmwyUfSCbixW^gjKVTWqTMg zksxh?Q^~-YnrJ8Q?%RX(5Io(%5k};)%g}P{mX=U zz`Y~y6K9m(pkUn;%(dR6SKg;<+YF>bSLW!NSxT8E7>9@=TH{s68D-6E*}y5>cnAb& z<(8;Qx2y>yK@x|c>yB;A^gjY*COcoX@h0qOnLg|$ThG{Lrax@nsVLrrOZ_#l%2vpjJa|awG<({T)6%{|0N1&aryFU@@L1(!mi?Q#BY&A__4o5Ijx;d5q*5 zsElJP3^p_kws*g5+({c?Z`a*FaqUlH+aF$aH<*E@nf6ig8aDqOW5mRoDXG7;5<72g zciy%FAotzc%HHp{UG{73a=?PW&Ea^RQ{e&!!y+B+;Z4DknPtUHbJ3mUj(Ljv`8onzD-%rGSGsacDOHlS(5$SF$Y<;2U$0>45WpZ77TX^V6)PuByXxV+;;6e)vfDQ zkz`1utTcJ3s=XN)O5TU@c^|Ki&DKT!@n>Cf9tEs;24)Y2jK1#ScI!A__)mV5GkS$i z`#X5A7zxRx8*D?}?hzX>Vi|M;B4FJBB}1g0)OTXa6Htq{f>(u*QHLCB6~_SUBfc^W z)Kau6#0gov!?XL}@)@Z4xV>~s7lh&u>H74 znPSDvu^bL@M~-k`_i#Nw#(lTIfGNCb{LRCq*q8>QDTpFSqM;~UP6&}uS48osWPspe z3X@GVWD%ei3h4+?OdTW~gmDMQAnm+&rkeZJV`>(co@4XuByt zd8A-8CjYu-l#+9?Twv+L6&{l{UOaVzquDz+tsAVwHf+ubj9c&b2m>(fkhB_YTy&}^ z0WqGa1}`kb>6?Tz^l~}Gzu{|q6jVu zP7Ou|baa{L_rK4ljxTZdev6myP1B7FL<3f9Omw86m>R(}uHmga;W#w+;r&010uVLL z8KEiUr=SLd{g_@N*)ScFMf%_*q#`D44_4yqzj|u*yDZ&V<-Tb48)YzEvjVHKtLtOG=Nexf<}w?fiij!A*dvLK_j9b7uK0! zm4opbwOnM)?PrY{uILG_h2z|?M_F`78Q9szj*LWvh{LHPhzAKcO_77GyoJ|D9s3QT zh#^%%vM3p<)d-bV6-=y|jy*mfU*U819eOgwc@FYU{Ww?U34(PP^$+UW-8J1vfjtZX zn4AJTLX!fjhDe4pB^p|&LOdcerf+A({hI>1FQy!c>?&TDeH(O$A^-- z?vOi6UDx;;h!$%gO29;ei9(c!Y8Qh;#ZpE`6>5x)xRB#a!CI~KdtK)0^E^9yl#7ec zQpHZHEiqWb_12(QF(_B4;vHT%dyhxw-sXmTl2@0Wr5kNSFcT2Xk}KE5G_TYkc(&}; zI$Us@dTARJKY_ZS!-Xz_QZfjt^RNxRu=#JJiJNm+ zmDvQq1VW5R2rQUD4|DCG{@n3x;jIS>fR$VCb)P>mf9-00iHp~lm_7X^KJ~)SGBwjd zoT08F_uhYvx4!Xz^Zdcv95S~!z!EA-Mu}=hARo~^Bf>DHYs3dQx?4iy)87W~Q_+y2 z)D}@NLa@FWM1$2xrh#17aG|DcS}fFyoUPAs%^l}L_9P#=N4an2simNlA|<{waRWA_ zUA>mXT-25vx-ES41RJPLQlUjFP$5czkV-mv8SqqigJ0LLaj<-!${J2)hf(Xe5g(&A z4#EGx?!hext&A7_FxqR=*TZj{-C79Z(8jrGiHJt(00VQ3bN6Z<;~q~eyh-LhNMN4i zc%!Ik`aecuXtTPeRTeqi)^Utw(f1W{XW2v#4g1&+YiChGW zhz0rRJkgtlfN0u9y^%Cu8rEYIBZy0+DU5PucYmJ|zBI-v64tj7*!yS+NMnZXB)GKs zEa6+Z3NyBT$rN)JAM{)g)&LmDf?Iy&!}Y-IBcDa*kMXrv-rzG&KE{b-2QkwHhoAd# z2KhYS`qTfJpU5f>m?fkz)W$MUhaq63ZXU82&dHH_Gkjd2VSi0887C)qGpJS+q)s1b zDnAB-)tXl9Vx^A;!;Iczf4ITP>H?Ruv%Fb+hRfMwRN^p{cndZv5*?l#gC~yzG82eJ ziz;X`6JwKxDFYG_qeE1PR7k8jB{w-%U7}}lFrN8%o1^v?9luU+#SdIBV1xR%?Ew=L zVgh>@pEr&j7ebmAAthR2JXM@#iIaTg-iwq4Jhyj+J*=Qc5h)S%*q9|paNNUMzs6-f zvaFwM%Phw_4^lx>yvjO5Q51+oVt}fOh$M#Rn5{z{abD0UcoFvIH#uWyZgPzSk=!@U~y+6`l`#WD6++H@nrR~%C|NcAwlJ9)`Yh3&ALtc3HS>{@X znn-r|QLbFLimYE}zLQbg7FBe_vL=r;tt6j`#t@?+Hfn6c>^%;{Z6u_s!TX4hq|7Fg zlq#GgT4Zq`hG6@zGGI;`?Yyw1EXlk0#=3VNnZ-*#{@U@(-XAV`sH zV2wzYVLSvc)W%_fw$_MxYKb^XI)f!T_b&0s(px+^bqge5B+{qF2RzPu@))JfAJnZ| z2XO~5XcF(1&0masoZ}SH6pN621RkP%H%QNv)KH{Tra+V}2LbTVf51}s85cN9g5szalrEK53_7FiC6QdKbMdBj>; zZG&wM5LLqZG+s&q85tR-3|u&0(%SblGtc}u=7pcbKm8(uy+&B8{7M(`P%F1BpmmMul?|ZF>?{5^MH}XQ7Dy@W1+*(~A#!&If7$03Y61KRyuVQZEE*j`DqpTdyg0ngXvK;% z#yx~5>yV+;)MyPE>@j#w1ji}@ykh^3%RUuC%OMo_>yt+?$;{%p1zD{xd zZNAaTIPnW-`K^d>FP!Xz7@#lYbm&@-% z-kIa*DMuCqxyyh)guRH?WSPM^15FkB(kFZ+GvJ(n--F`u&QV9O5;1j6d(S-f(S7K_ z7w`wq;yZ`%aVqUKJXOc~J%67R2TS-Q?ZWPk&oYDZ*XaXxELJ>;l zv+6A`ZcF_CWZO{y{MLW|kM$eh{@R}uQ|>?5cj92)y?UEdC(m&7%t^W?QmAFBGF15# z-K-#(RfG~DQri}4bAokPF;LY6uc!!htr#20#)dzm>8|4rh$Mi++T^Z_WXZKffK+D~ zRIo8%)KHlwM7L{bEl+-TS`>l14 zdI+IMb>n^3U;ie0?G5s{jJ6I@f999@gZ2U5Hn$);KF||fv8Pc>QnSf+>e`1k-LTDX zT>NNKm`tcpjaXxFnI+3yD!SS1G&TqpgAOD7B%sk^LV=5#COd7S_E?Umd3kw??%XV& z>U@g>)hZBK>#T9`$Pq5QTXW%qiqCc1w5Ao2nkK2A5YmJf+r*7}PgN;#BCx{xm`uXF zq8hYutdkkb<@X2NICqtJ?mn&QeV9ki(mDQVvY8{;)=}IS?;Jjn42vm7WGV6Ft;Zy2zv#wk3W8Ir)%yg003@Zx%llJ{dSix}fM^|9kz(a)br)mkFp1?%9(-49ql|0g_qqE9q|QiRGntkU>TOAw3378(Ui+Mz-W zpl(N%O(a$7NqrNNgjZ0tD2^aDRXMZ)v?5bU0!4(%=#W0J++yk-v1;#_eJE<&(LiPQ+>-I zcZi9!YNh7{uhY0_K>BHjcAba5O&>HrMorhRcn}|^*n3RQ=sSv|4UhN;?Du?)-e3P@;d5)g!vv9D*&6@)juPaZU zDH!xiqPD0tQuZPt2!6dnO+_Gpwt$R4q}MCyRV}ho=tYZ_fa_(v{O1GC#bb1S>6gjM zinw|WxwAywTc`GSkh@oDT|LjQ|4ihu>5_kQ_ltbz>S0v&K+Lhx5p@dh26*XXFt}iU zpw+43QM<Odc-{E?%r9JI~@!ed9(y8yQ0e6%obZ3A*&6 zir^c!mZ7WzbuiRG=7d}zkAso#JZO%O244p>2z&H4Ps<+@dtJKxCihy?_9sL zmJ>s5)!+rZjpQ*g0((=lr|xse>7QMw@)aJ^9x4C;jvdVYw7ju&=cPaVKlXQ~7if3p zSnuAayYvpH=I(J|y1)*}Muui;6PK^CdE%y+Xp8}DDk>RbOqG8aqS(^VKP9?oYlINB z;gFxi#G4y62_rEmF@lc?fO29JnF-lL;1enr`hF#67I^_u&qmBy0Z>_wL+`AmB}k3Z3(P&Ypjr7ry&d4&7g( zUDwoEkJkDfR`U-1AN?6_&g{jcl((iY6E?G@vX5*Tj&0j+U49!cJv_$H)Zzx!rogUe zPo~SAsrK*xvlmZ36ouZE09e0u>Ah1&_y6lo_uYTEzWhC8UD#`sy@zY2jHj%IVrdLi zNrQkYjjCco6O9!?10uFrxPmpQqF-v-R3?g`mJpSo;D$)&rmhI8M2!sj)1oF1xM2wN zBwA$e6FO>$)D|)ihpNjw6TiZ>H-zPPFBAI#qX9zzQOfo#v(Nk#?ujoj*n5-#1|x}* zJTVhxq#&l62&n)nj$A4-Er~Hpf{vjJ#}Hyc&txPJbElRvxr~9LaI`X;TvDTw>Wu8Z z?b=2NafiE%4vLM3Dn()@a*mYxdy5%n_6e;=-saZ*Ro=e;6bGid>@`bt?0O2u^2uFl z@E{&lY3d40;U(jCHb-}GnsdvK@!jszblZoSem-aA{uTU(=a{;3f%wFJybX<3;t4qV zGQ-;|kCU%HLhjnMI-N#Hc~m07rsuY5Q8f=$&5b6`hs-A}G7|AtP!pM5UFPVew>YwV znNG;bVuavXsP1y+!s}c-`zh|u9C+x+{Z+LnN$eR-<$N_jO9Jy*xV7lBcOHI)T?&8~ ze&ruk7rybk|7w0u`|r+5f4@-E#!!TcUZ_x742d3tYN|)x*!siW#YhSXj+z2}hPC8F zP@FXkOHYfWYOuzng&$(1tU+A*92iSiCWTJ&p=u2285k}CC8#zWa|Wx1I%XJ3IdO0SS%f~J%>5-`7e?`{bSr_hTt>ASZaxgsT(e~l1u|mA;b*d?0mJc z)Y2ko2I4SSjC!mFB1$x&vF9gMzVVVBrg0V)TCE)Gq!COLc)%wGL+NnGoNzIUHiYmF zQD}vddin^{XFtoe?_T4z+h@p%Z(pKKDzkz5M@DpMQzgktbN4JAkFcg-9g^Y#*gX9SR1~q0!TJ z6*d}BH`)?hOkS60>mB<>B^4sgqY#Y}j5b)h#ri(^U>PJ*0+khlv@u#S(_O<124p@G z&6qp#-)Czg6tF~s8qmm$ct7X(-5b%|-pw_3B>(_=_bz;|vvBgutLx`}Ba}U&=F~CL zvmv?jMms;_-kzOQOeSM3q7g1bLeB(% zrJsU93`nCHB=135K2ZdNNeDRwne=)3h~@U9d${&Nk2Sl%-lNZO@<)Cecla#pu0tNd z#XwYp4Os%xWa#dLT3ZCu#>4?r;Vx4wVI|^2PS?)UvwQGZGOckawMh)gG+K(t@MrVP zqO`1Ks@3?`W0(k)9@_fbPx2i}Lxw?DlOJKzISr@ckdiC0^)yQbQVvM%NVy zHwlJ;og+W{W8{Nn25-O0%#C-+=4J^opqgRDk_Dx*LhS+}1Y)eQ>am)kIJ_hzJQWk2 ze7UU-_*5(-5=9Uku_>Tod@707%Ui5X%@F9&iApeiGGCO*-~RKLWNQ95VzowH33be= z1hUDnMjfk_Lyp#@S|%5kwT2Le?hBJV`cbi_QEMBdJGllmF{5h20%8=56~=pi8stcW znN9d-W#So(NHet)z$ny!p=t_Fc0!LIdHfJ>u31)&evX6Bd;vc@PpJdi^?)|uLdBp2 zBL$_ih%wmUQ4C#IP{lqoagitEyFBAAGAljSbc)xilf2`eXC<3QBw`yz9m{axM`9$^ zV~hbqB+ne3%;HRJY}*L|*O)b_*1^Ux-kvjHVlwJhtYJinrfC5QW9=*jm81&K#FBQ~ z^B?`aV;neehwt2apYN?a%W612qU*AiU}GB3eic{?k;+jWSl`N_l%(y6Q zhHkeRmW{i?7@7i1FL0N!X?HW&?gAPxHU@i{Vzu#duQv3e40cs96i|a|Mq_DCWlG99 z^JTu5@4Y)k#5ueFI4AD#^1W1MYAE&Uz4GR}L)^F#C*th0_qX@{wuoX)YIc}l&w%26 zz*?8A03F-C)ZlkakdZO-+9=jo5(7O!0+v1!as-2VAxGKPUgN9ox`_|HyvQ>j{|M?U zg4BM!fhvx-WR9ZIqS0v6vQ130g<06e>~xb`vXgvu`&sTSo~G@W>6sZ^{vfCQt*q)i zYJ8+73mG+~^>9K4kEo}SIoi1;8(Nu@<2cIpuR+8O)}r-wrxPEo-+m0Y(YRk3T2~Bt z7XzNWU9o4!3OlEtW&gHad|~AfL3ScUcA%gpj+L>vJdjl-g-;AlY9b~eKDv8Sp(eyK z*2WHYzws~v5N=!(9xS%lQxBo>w6ZWy;YX6fo#J;po$}-ii&5HIKH{0 zboodgt0t~5R2Vh%q|M6*@1<23E)_Jbh`<$6}1I zmQ6u3W8clnEpM-wvrAY8pAqg0bNPoLw$s`~_5#wOE zBB%3|^jB*OXfzg+O86Q@!bo9gbf2Ps6OnDBiUz?L%cU~osmr%;F*G=OVHT^i6ymTd z*aYrs%F;B}&@?%|5QiitQCxpb>l`dkUq}aNb+H!w6M}$!-Ot^ zja7ppq|DElek!s4I;%hdS~RxqW@;g)XV1~G{g@2oD!M)D630RAgl6u@jK=(ak&)>?ex4%)l;MhVh3FOE-OOp#REk}jP@}@a5sZp>Bq*!0 zl~0{}i2Op2vYJACgOGKQ;IN6UdAI;-412b-9Q*(uItUKyBk@QG24g}ZEXi1_GCpy9 z3+K1o&zH{cX4PAQ4H&>_h;(2Q)k{BkGKJ=_?U_sGQV}yCJi(Zu(hib}gc8-537%jg zu0+t(i=ad?RFZSCG0(Z(IWt?@s4n8q9HsH8hv|RmVNSF>yWjmcz|FB&2Yx zAt|EQ7Y7)DzqRWY@5LDPf@wS$`HvS%S-GD5UY7y@@V!@_GP~~h;ExRl zDanXP>X8Z~L;QBe}3V$Uy@(Rjvh7ChI4|8>O$aeCpyi^YD@+rEh5X z*es+H!QfGKan%c+a$v|C4GaOKpN>DnsKZjw7sY56$zZI<1i=J@7sUmol#;%+*x+bZ zCc2omOm3u*g(iiC($3Pp={7F5zkrs@_(wm@Qfn(W-}eoyWDBU#bl1ivwLx@P*}9(M zy9V!uy$**;eiM<=C5-r3%J58zSwsjaPh>yE!iBaoq~wp6~k2)fYbc zOTSsn?D}iIcXGxQ4OGf#iuiQGCQjB$HTs2C@um-^BB;ardZmb<7n)J$GuNJ{NHnjh zG?q!CSN8Q==jv+xWcatJFYcCPp8Y$8_+3|#SQ=unISX#u>)S!h^r#v%fh4^&k}r4p5< zc`R&Nr%Y;FP3y(g`%+_6G zhwmr%Q}LKgEK(EAsMO*%s0EoY`^OdgW~shc0t!RWHqIW95SU`XOv`=fgEZl!?KpzZ0|CQ{2B^2qhAZh&ALU&<%iE21c=xk!goZJxh^q zW$!)TLAiAwrOgS}VWmP%5jB16c}}+we25(RNDG5!+V>G0i{@sQ>|PuLR5B{bVgizO z5-k}BT|}E0Jh?OE&S6Y4zpqPwzl!K4&o`7bhH1dG1_whxsA%Pe*`{O4nt0QwfLMy6 zV7Vw*^A$xPW&uk4JSKC+mrbL13;jUs-;lc4jyMcJ$J@Bq$52=Ak=#sxgrOAPV~xcn zMN(uHg;iQb9{X8_0NQ1$>SKasEuR4?BX}JwP6L$*coV;$`B(J|0xG|?8MF-rZgErs+d5AMaY3_!U7ob{0*(UcwQU&{tBZ!gRz!q zX(6jEJ)g>|cT4B_foXpD=l<&c!S&o8aDxf}k#5$Q{mpXvrf)Z^C!+x*VQ7BFkX$^u z(kqk}8`=cz6M|9}CYqNv*6+t6tI@?y6uTG`Gw(u(ar}w!%h=QSIwA#1q(jzZX4N`0 zUWiypScl=TCC(dMD7m=QU&}AIHl$rh(#}h(vw+(by1NtOQk(9lqq@Vj#I~2IQbNf z!4jFln>=NeM$)5C(3J`6KtS_{Tf0)Y zmrL`+)vxr%vMD3b)#NvR|1o~}+wWbH=I(C~omaM1S`EW1l5So_FcN($D#Z^t4T`!e?Tryi!&p`=K6GV+AJ(Y*eKtaVjgQFgO*& z^szpg7hin7&$DL&<)xDp7ml)ZewOC!JS7=HTq*!@k?qz%FI0Hv;;Jr|$~Y1vIl(E+;38d6O=AzTx3>K#ul~E3!dz!EMv)|{gXa0;^&OgFUuRP1POXuj% zZ)I_23x#c@f~7!~em9udi%@N}N-6>_SiH??wsNZTCnztzf*K*ODh5l7*e%;=?6`%H zdP`VqCtQ~LcWJg zJ;zHQv;6|bNJ^3!^N-aKe6%ux#_lxrcNIlLpsJKX0529Vj!F$hr4%u?2h?q|4KEct zc;uW#i#00gaQ@s0p8xP4(tG|Y9c`3PIy z_F-}DsP$8LPtuN)MTClFOp4L zz^F$2F^QEXP!xf(jH~{@2l|yp6j+HGJ7je1EMJnlc|i`an$P3Nm>Co_FTTX-KmJ|x zu}`t3yG$d1;81U|SR5I_J5-yX84@xiI5e~O2RU}!3AQfijHtBrvU$0|mH>Q-)+L0K{I0SSh-hnck{cAq`Pj1&;sv^on& z*#_g-zIc+E)eAIyg~N}^(-Qz~LY)m6SKDAb&L`Yp-vP2Mw?x$_784*}KF!6?eT-KB z98OY+_Zad&uGl8|{TMEkn?ZmgHXcXf3KZhx$Crq&n70*Lg@5;fZ$5Ox9P~G=003_P zwx8=x&FuY1YkH6a*MhuQ`(utb_#! zsQMwYJl?uF;sf>In&c-6K@Fu>`bEW{^i*EJxRk>mFM80NHEFQ4`DU)}@;(J=*|WY^Y%>ysctpqsAKTSPy8h zej3U-V1c~RjAopS(CCQ!Y?@|vg^Zh!*P;-j5*?Y=!~Kjsi@gs<$K;$KR1uUHlP0Uf z1d9!lN}yv!nniJ9s2ll?tC=wTeNSdgY!EZV=CO=UTe1QI-NR^`& zXh0C0k3B7Yra05X$_jJ6McmRNuB@;rBH>Le3=%?wA(NFTL^`!RdES103;T||JtnLX zo5olzsE$9u>a&mFwU4(#=EuoA*SRs{*Qrict6wJ9MooH%MU6$p#lI%H)EWZDNZ39l zzjbk`cl=c^{8i+JFo1FSAHU-rPubSad;IFs5%DXrx=J7?`X~cw^Yqd*|K*EoeD2vU zCsuOy?`|{S=piPH9bRm})(Ql{XataA8c1|4Ldr>18wVqZVNj)YMpChnM0Y?^EY^#| zn+z|pep@u)Je0-}OvRd=<>}T#JU#W5^yhD8dfx%cMuW>ME7+ooqr{X2tEWyeGtwxULuM61zY+El~y7=f^LZAAj{#8QZ3bx=_SAyR6Ol$nsl>yt2q z5TK|?aBl?xQc@Obci z=H;WDJ@Yc*@*?x%X=RZ_R*Ar^3Rn#|4H$K(I7DJnn6z4SUwIBXt5{9txM4uGx<+&F zVPtw6O&_r#wL+CD4kHd?;=PR~9t=Z6J%%Ye(rOzGE!HjtKKsHNd)_gHlO7>&;C&!VnK4@PUJY*s z&=518ib|=}4{zw`5sah#HRb?FOdhE#_UiS>s9>c}&&={l;|MRc-a*IBP?;P%zl)vk z`g*1oc5vn|KSuA|ahhd;texhSPyH8mxs3L04>7)<41aH!s+e6lyxxnmxj z4mfn`OU(I#%WjtQ+xPKAYnt=NzeMkahgp8<^IUjzj%|C7ux0-}H1-{axt*xVP$4oe z8qiRruGfOj?`8Vd`?z%R0>SnPgjhLv{v<2Ue4d4^+bHrmR9x&I;A4xq=sbC{P+_!W zzTaV{v&M91h1t$Bvz=vH-ODt3Yh;5yQk5|ZxKg%iR=ltwFcmCgJ``P2y za64R8Ub6xKkn-|x=Q|GH@B62|+m#nVOG+C7mB#cGbImDa4T4p?dOr8UfLpg^Jan^R z5MqU0=}TN)$;0R-3n7d(3K6^y8z9;BZDv!*1SAA9tq@97Bmr>-Z#;pFGudIDY=0%E z@Hi`sj{9rURuVz84*EY%gkDZQ%UQy7`AhQ&$7ss=QCfzt{@Bz`dlj7CP{GL)Z|Gm1RbSwpr!t;)Gh^%YG|!z` zWuftRSiP2T+CK0u%YC$tp zBXHGoIcKv&JlXnco@qbGnwyG!{EWd9n~qd2CrmG}{ifS!&2Q)O>I(Eagq0=ws~2eQ z+09g|g{dl9MGpy zsx5+%=MYy`tBT9=ctcX_3>o^Ym1L|{%H>`p0vU$%(*A}qV#dR@1|OjCo;vGq;<`=% zX;;49_!J@#9jcPDX}LJpW_i~EF73U86E_{?#T{GeHJi-s*h`+z&^>n^+g~Lz7!{c1 z^Yl+0<=lxE7%ZM5(~6n)6vj63*yNX|z80NTI%i&>QB{%u(Fj^~3Eh(I2kxe5v{(oQ z+t!xYdFB{9pMQ+)k9>kXPkxG9Pd>?Q=Zrn_L z6)@O3AM8DM{hRJ;@t=PCPe1Y+8&JMZ3IO1T{`!$~I=636F<5=b6kP}biy`xU7Mg*9 zHaL2&q9lg>E|)?>l{>a&7#C6+Y`VxPX6n6CR6apPR{~vio3YvgaFmF60+t}L2&Yak zQ4va$aiV#MXW9?(eET7m%~q^fncu1O*WhV49Ql}^9p%*(z=jjPM)bzP^Yxp_ zCht#duzsV_WD9_=Vuojp(Rhg5_h+P+nT3=^V|eS;V+_&ly9bk+b;Hi{#z4h}Ngtg>tRSTzi3itu{N4J4~CXnOpW%~s8Fp4PApc1%4UdFyu`BVZflD2?z@k> z`7J+j|Bt`#nizjxOw7-a0?kF8R*WFfY>_B7&PYK5g_U~`tU z1x`2i@mTw-Io7<7%XTMD3xX&?G?`s?Sn+2RDjVs&Y;%G3O$XR^-~g@6a(8%^Z`pa8 zJM~cxnWvb}mpN_bST$P+G-GDjxM`9=J!gnSAE`cp>ren!vcq0!GLP?RV%NIa-bZG& zB=B-_4o2XwQp2F~6qTp+0WXfehfb+1cLrSUR}4Hu*2dBtpNo|6|l ztPQ$|3Im;^7<9O8PcydUs-b6*(fyrLV{1@pd|tuW1R+Kged-x#)su&cN}8O_4)J{J zKAvj7n`7LY1I%zX19r=Lv|X6D$rYd7Dp^&EGHr)f!_ zwsx7;f^)i?m*gOUCRS1&{KO;=WJYLZ23Logu0sLT&#yZwAQOK!{Cwh2hHn~>+IouD zpi*T}dAdbKXAtOCN)cjqUobZE7o;$t8T(H~QVQW~YQmS)vJ zf{9?X7T_YOY|9(emN)^?jDg7svs+o%v!CfkiyX27MJkWuS{ z`1XkXC%zorG^NS#k^#{tUvhhSvH1?3Y5f(RZ@r7tjoazTJWeYRPhm5_jlzz`#01rp z+UtVi)Pq<;%5=0&xLKZMcX)|HVw}H}7EjwF95n~<;;~Z2M574_G@Q_~Q32=;D1cYb z{oiN@6Mr`RT!yN3JPE@LEdU{coH6zt-K!um#uAdEs8@c~7-@;-zYG%^>#V;~%CVx6 z7lxv&59GBe05Dj!SP7I_z&j8`yVoKB03ZNKL_t(9lp<8lVVy;!BJxsYhy+UKsoE`O zx9w$N>rHf)*XVVZDQyh@L8M}Lz9g%96qio3_VO{-RxYu1>ojfg%$`2VyRwYCO_Q4g zw6u>S$7;Ze#s`s9MXkZ-hIw_&g`AuQ##n+i1S@eUjbe==p}-dvm-C#?ZMR;UJ-q*a z=EWDE{uiJB{A(Pik-Y8-;J1G7)8%*kwReBA-#GlX)r#9fWl(aw1Ts^xV=CivIm_{j z5wI&&>2yo(*lU=|!67Lhy`C15RtuBTM(asYuNv%qqAEMOBRVsyy0VZ@&Y!?yP-Pb^S$6yhV1BdZ+47Aa zE#02JTfwa|aRxF07NL5t5hR3j!rfJ&lm(>^m8m?<%)kj64#v1>0d|4|!(`B=ZDiKT ztM)Ry9FBsb3nwz45%XI3xIPcvEqnSOgW{ek#^fY|~mNk-q7%gqnho?=)sNo$V zP2WABo9L`>o-&A~Q5Gx%d{R%iOR_QuiD|?X&By_zA+(-zJOeBlq|B06ki*Wqb`rBfG@+K^Xsi^X#J*{)OvIL$zPxFTcc) za~x;il$4Y#c%N^SxE$I(Z8M?W4ZN|p32smr)o8p|nej>R0?v?12SO!dIN(2sJeWQk zMe$@Q9CU4&oJsh*I=;;2SP&YH8%86B=V{DJA)Gi5n~;>rbN#DbtO z%bIr8ImW&GQu4TQZ`vN4JxQjWq>KPG#!{MP91JQN)I~VyNoceP6=Q|~JL?IbFc#d= zSNIYBPBlz$!kSQE8E=MfP-Fblvb$l4@{m0;E$ZlZZS|oGBfVXVUPpT1Vs*?^Zcv6d z2mC?ew$M&zrXxWkq_tPV(^DKch6|AD%@OFSjwkl{C*@`g#rtohtsiXov-vpX91mdR zjv+5HHeSo%$bmjI`&TvgQQ#|MnOuYZ5T0j>x-<818-_Db7Ci-`;J3k8xm8;Gv-dT>-XNC!^|C@ z3deB4+bQ))n&e5DX%ri;S<;g4&jS>6IipYLT)!13haK6qbi8e?E=XHtLZ$i1yaHK5 z84d;h0h3*(ZRYx{RUSkJC|0nQhVm5`WNMo`a4X$Al0Us86zFUV)8-js0GS=*Z?(RayNrO`OIM# zGgRr;?(FAmc!pkc_!GPjn#ozd03AMYVVGz%3P;i%TU>1!-2?>1xQUD*Rt$7XMzb*i z8p@v-Dj4J(GMD)Ynk=qr&w8i9iNjV1)Q0x|mUDX^ZfnCv@wwlrKplneLp6VVY(5vm zHsr&6qUc?8tQB61B0n@br8=o7^f`x}@!xp0(sD+mXSU$C$7%H)@jBaw(f+R-?OL^Tc9RXCX5)p^e(9ds`=Ikc=) z5b1p@DH*rbFsQ5R$Qj~Ob#8B29po zlw^g&s`XbeJeX8~4?`h`V`g}iU-af^bnN3q(UGP2(7F*EzAR!|j@3v!Xe#kT!?#|?_TG$ra|LzzWkS#{tId^e{a*Xn;qZ`;QCYn z>KOE2GTeE2y1D*d7|jLDG{?SerR2r1E*co%6x%xeYq7l98ThVkn>vfj9(wNJdD$0D z-EoBMypqG>+ohl&k$-xgr$>@l?jkJtU05cf(1Z$GK(}m0Ev7UG8DrYYc+8*foOrQ?3@>_SJ^uKj#LRtLMGy z4>~b9cL-afuGRI_ad@VtZ39 z2UE{%n;QsK0|Oi0{TX#Qx6R_QI3?hqt6_?5RTSBS>q*2Q&X+L?G*=sG12J?Q2vT$C zDQUro%Q{|dp$7L*K~@BqTN%MbV>o5Luj^1fZGqx*RyV4=Y*-B0q>}JHoR6MYU)LTd zS7{4DmHLb^lkxcZX0Y*wiY$A-J9MSPRY=&>nvFAm1uQ@WYSn30bs-a`L7#kZs3T_O zkCl$Q{rF7mf=(TCdeLPc{gEo+#mGdAmaXIlGk0JU!({-shHGbJiOx5LThyFMZe$rU z679pJLgf-2F4pUBfWAKV$$sO$`ObXto!#-Be*0EWT2=Y&O?%J0D>4b_{w`Y+-MB_o}Fs7Q1f}qXb*rgy@u!4?V-w4;JCY;OT zGJa}QWKj4Ik=CR8Zuv{q{LnLsEWjSwwB-U{A5Yu3>3mcjIk)>dwj7ogt`sln{wiS% z2GQY>YF5f#z+M4C2r$F0 zt8fp;_QC>tGI~S^=Phk^T~Lo)rl zw=9r^%U0O5{YmU6xTO+Lw zh`3;zNl_^ett+aX6bMLF(wR~yHG6|}J0u*hP3dwtC+^?UEUT&=AoC@mW(YWjLWi8p z>PsT(ccTfJg@j>kPyRNfhDOB98-*Bj9dGSwQo+o?zpE@VPi;G|9xU>Go_F8)0jy`9 z{8&AdQTl3q9)Q2<;qgD_`cv(2RgP-25ZISj!97$HD-|LNZDt%_w?Eu>`;0eJ{GgcK z6OcR5Z9Q`8ZKXEEmJ%y27Jo@=o@gPf7T>D?S=~pDT^cnJIDrq*HLwPpHBI_G`lqHCg$aN}tNNl~96EAXgU z=gsP53$`EjaM0E2^I^I(UMR* zVmKj|WErn>W`MAXkdag(3@uEj)YP8VxSnc?`?~KaFM74~0&sU;zSxKE+`8{eD1iL+ zy>9w%djW6tJH5@kKd~QKzdED|#bHs(^*etZH~wy&eOzPX5I@4ctcL!b%*|;RTPK9) zH3j!#QCA-&R)81fx++NY&qOx?ZBW29hC9Jt0J!{&cEtTP>;n%X$K}!kBs-o^JX?@~ z>3rL|ZctKADD^^>{O((ceAuP}j18#wz^dMN&|00?)nHG|6Ikk zf1F9nZ-Nrecu;@qa+fB-v~7WAz_DaND&lS)9sLZH4!D~U>maa{Q=|W9!sW0>@)bpX zn&p>n^u{yYPsIsJgJ*6evlDI_*~bGq#2JrcZ0ylEje{Xx5;#uNXqC>E8p>=^v4(Jy z=0EH%$b5>darUH9iDI|CXuadPtFJE4`*d3wcX~l=p8*1-QE|9{>l_2Pil=Y=VD;Ik zFk$4YsDCJtil_vO5--jx<}LA-MC$_=oEoAPnkK?V=KT9AV+CLrapp#dqOqbjY>Uc2 zUDIWcFp%$B(9qX7P};W8F)gC=i)a%rO2%T`1~*+hvOqyki};F-l{{xBADNBTriPMl z>mX@<@%)ReKGh@1ux~YCxqR%0%TPNpb`dE-W)WOWqW1 zIO0!E>`XiKDx!CxP(@6dmuoZ`YxJDc>F3-* z<9Bie7^P3E^%c~^_fSUdgXq~4c!ltDxoiw8-Qqth18f!QGF7b6RVGI_{$U@zA8ZrE zC(lt$KZ)KFUu`l9n05VHZ-e*c?fI?@j}8iE73lswWHj|prZR>q;bLbZH1-;`ct$vc zA=Ed{p131Djgb=jtfMuMBnDRqqhigPe`LNnrT%fupXuOZ^JBqz^KRe#?^Uk&lB3Oz zm-}mMmN7AIG8uv z9~2r8px0r0E{(4x{NC45H<=51+Na7~EtCKS#fYP>tzq;AN2PhgNb^SS(@ZwC zbDewjq?oi$Yog>fa7=bpc5RKY*2bab8gLxrUa&^H@(mMwN;vm>cCvtBMLfT+ZR=3z z9fp5%{{BnieLDZ1ue4&d&iUsDEPl=IAUd%`leW9zaP*3l;Nop}W?nzc zHo9DDHaW+#RccTY84>@)fWwVurGjE3mk2eXZ8%1$KI1&rjkwApP5L`Y&!&}@ieYAx z9*xFGDI;1A7O$~ei1k4a4vNmrI|DKH8=tSm_T@U)ePidNKh4fN*j{Ga0swar7t7phoJdW;*u>}0o(wz4JYpg@; zWcnx&Aa}qjj>c!usNQ?|?;v7%U8YuDCS{Zbk?!I$b$&?{-ThOIFzu7LLasBiIK)Uh zGQ%wsO$hVq%Q>^hhLj_W)imV z$Zv$*@D%l&m#*06#1L@Z~56s?Ug6bK>Syy)1 z%@dw+N?3)rt&B5eg{-kwEsV95+n!-FS~1qL0wx((7VL3Dsv_p0$pgtj<`_j;|6o`6 z_#m~*m~_U{PJ5~jw=d%bU2*^AcDcnjmFIgicl(;C?fH{9h8<6z`P25NLeA5@P9ARb zsb7EGe1FrwaWG1a6O*nc(l$Y3w}6w^sMF zy?bgtMx5Ty0-dkp+9gMCXF3SRN%yb`+t@)?TQJvRCO9=48a39a%dT`H*}KloJGG19 zs^t|}kLwtaT?r_w*oo{O_oK{slqP~@-UH(CPc2)lSG0UlIG};1&76~sA2%nDQ#l-j zj$k`R%eE)uLGbtYGlRh+AgVq7_I8C+t#j;)$qQhPjD^a)(*_onG8?uUgtK62ziiYD zbRyWCsa7QpYbi6CL|MBiLOj8(?vSW~gH(Bh$id_uKXfcurM-5#dmBle0jFd9?ttP| z=d4=w?OQE>^(6W4nc9%f-iy(=9lqK}pVti5T+Z4AIq6|TNETOtEeb~wm=-}utF11r zos6^dL?^&%Er4~7WRSdYRjObdnla5MSV|UWZmv5Xl9n|~x_V}G?y}yeww02NKd8fu zkTShPY(mrz`ZdSUr6(ua z*9#(OYJZY76TjB zBQF14620!IsJrlCH4p;mt#+=D;f(4LzlTZr8*!<08vKy*o-(OE+6|Ak0aCYHQNjHX zmmN|>xpZ&t)0jF_v@NCKVf7fL00kbikSY+@h-w{I$)Q5B@_0I3!~2q7hAVOJ*kB{HNN69nlcH5(Y`C7AgKh?8;gASA0WTNnt7p8g4I! zO#m)@BapzQ`F9*Y&xS}xSOH9sB=z4q(0-O%OU!laS3!qh)i42MTmG`bg~qut)C~mn z4>K*>q%AJ=`<^~olN#BYyPJ<{D-C3FgL5~mXFSo6E08M~S*#{>p)a9Z6;tsCkcy_O z3yj-e=s(bH54F206tdpoiqXFd~ ze=lUx>#M;U==1<;ae6*4;PC+=UdKU;NB3d!p`i~{8gK*&oPUpRLI3stY_newhHq{nruvM*^^Hl49!{cU%5O0ibRSlZ)&6SEauV|mM#MfF~Z*X-v? zt6(0j>Tu!w@W_<&g0PYsDj)>AIJkpIQcRb~qe59LFq*@6=mBYexV__b+kOsm>lG#A z_fBW@f4c8+!{=Z}c$nR;CjeO0R*ngiSTG>|~vtRgMecnG|{O&rkZ!ZY!DSyWIo);XB*3h?7_$gF;j=5Wt z#Nm5gAu9;lK?Nx-He-N9mc0jmfS?bC@cTydfFAMaXJC;!5RjfD-9UeXS9B&&W6ozh}5 zAIm15#i47|FyB9HeXgi6KFXlE;TlTJ9FZV^&%yXs&SKBQTVg&%*Le)w_Bb5c4#WGD z1H2aIww;*!T~AANx0!iNQUdwo`^ZSt||N=6WK?& zAF~Q7s=vuVQ3eP{aDrA44|e%3`PN46eo?gWAG64RrdsJ{$ecTwP*4wB#~A2C6+syY zhyNlWL_?)?EDkFJ6Jd421IiJ&2G!;cu&oR*!>l9%jYP*i-b~ttAsk{^b|4iFaOg(s zJ50T(E=dSPl)5Q|5s@Xv6MxcDPGrmcON6x1yCLy#y_6J|$fLpmH}2GsP&5je-e`HR z-M~W?u*qq2^`KAsjznVYVMu<`dNrsjgok2J&66Voy5i+sJNqUWvhBM{&AsCRczMiq z|73po`keK9GwRJ8(^dio>bl|mps(KbJ=^94TzF}zaK=Z7-`<6?r6PQk8!$wKoM;W2 zulic+J8J(1Zs*ALh8)bqUQ2Fo{X=LyvPV@NEUdTQ1Ua$xtVZnPngRl=>Cf{Ar|^d8 zHr<#4jz#)tY&;MGUvsZtoX&Y8f^V8BmDDSuB}rLSHZN_EKv@Tp(#I9HLmORjm#Pv_ za=vrK!GcMD;?I-}+m9w780@8$zO$2d7lKEhVAd-FVejqlb zuckPXcFVs$b=hn)S6P^0;JP@`jjvqarQF^NbH8U=)91KJ?G=!+Bk^tL+vtJW9ZuHQ-I-KsGnu{+Bq&wrFi~iP z6qJt+x%TU#%=+Q!Fa+vPrQdxF(QV(y*=uf8(rjq(u#thgqvh=^rftJMEGlcwDvl@2 z);y2xq}xx!roVfajHPqe64b!3liO>Y7LA5yR87qxe(T)Y=vFWgu~dY|mqBuK-NvHB zTzeVzRiE&%$rxcp$L_Nthc4fFia=6`sv`ba=&V@_(UkY-Siqnl)teaLQ5#8aZ2oA=gfz)JdVx^vK}n-^*H^phvp!OwKTKuT#`&qey}u$A?3d1&oM12FKQp!URK1P; zm7MA*>uO?+`W1N;*=sTs7N`Slt6a8 z(%2kZr{`4ee;)gyE@vdg%`Crno(F2YZUFturMYiW5Pr|*+Y3qf+xv8VZJ(>~-;>L| zcQ4y75xlmVlpqk?qRpfP2ttQzY0({|M{`-J8E7^-gZ6X>_DpQrhQML7hia=;<- zA$VsG79E4j>WP2R=_o-I^8a#O%S=GwZ9b8)i|+G7iX&Cbem>0wgRjXAs!=1RXVRD2f zgb+~%dDF;S7S?BY7vX>~Pmq>P-!~|zQ3;24Hy=R4e}E}u$}UN{4d$xgn!@}h|0n`s zK(bt|X2l@Kpk9-4X#Z)cX#>6^ODpSZcdP2{u~ZQxO#j-dG0}3Mtav;az^vP|ni-=i zC2kV!@!Q|x*4$2S&}*~aAJsqU0k^dLZ+ie@Gy&S3kD9@)-0!5q-aqbaJSRo3>hyoE zXeSrIRk3=aaW#NgNMi7`ef4*!{=gN4N)adiZk|ujuuFvUTdpN0K&?=845nhhNL~w- zcD*AsZ5y3vc-YA3>Y6isNla9BGVDD1^cJIk30Hq7vS2=V`@)pZ=90Ss*xpP9k#^R; zf4|YbJU>6bnCY`JFIddkVNQ;;*l0E|{6wusp`7@OLbxjsLZSj(B7;QWUvEsn21Q6y zP9nNzg9=$0Z_;V=@19IE)mE}_o+$%!n$LcFrMB~?yZ7iYZs+P{JG!Nwb_2^&ZaH&x zaqH&!>iUDb*SY7!tLJ1$l8kO=+-4(@b5sMPPKIOzhn7^6=9X#>L3n2ZI!a;q@N=bV z@5gV+KR>AIraV0nPNggg2ng>^QbbTiFHb!sd_o=V@~u0b$XcuIqN2aC*{~L&@v!Su zM$HkTkX7xX>9v`V*?PhYJW*UI3Mi@C)7D!NTXP( z;#LQaL%(`C6KEcWPoxN(SRJnuNE;48$v9pOGv&bos%$gVQe*UNP@vc8)@vxhJ23?R%R1!;?_veOD~@Ke zTD&;@E#7KU@LXD9JR{0X_V3%%-#`k>fjo&S=k;ad-?&3CzwcG}QmT!lG+;4Jj|6cl zEa%8#>YzoAv2W*U5anvobF_GdBTAneUv4?h@3AosBPAqcdf!AJ&yxOrgQ(un#JF zQ30DauE#AIc5%5e-6PO*0M<@YcQ{Tk#i~~>SS`yY;wSB^`u}pF&UN@s2Y2g~k%pxz zHHXW!Nn8m8I-h>?Xq$YWR<5#tpN@L~HhMpwSAWyJ?$Q%_jjIFaO!|Jc=-zqhHGkdl zJ!h-Oox$swRW>NYgC0rebxYW?)S4$ewFSWzczpiT+ zdFvBu9S9ZO5aGdT+*@GKvKAN^f_-|*>hO(R2H_hQ<(8~qQO;8lL`{}`1EGQh8Aap? zV@2Sun*c|K@eeM-?~Dh)@m_aYC6}6KxL^-9t~}NBYUyD!JwC20VP|=De)~z~q87l? z4dl5*+|*uX$VqnJtDg{m3^KdVK=<7iV&}xIV5E?s#VAHBr&%_1UGF!dRW8i*zJKY2 zkDuG=$9+9kh@}`2piCZqmHtc4^{~1bIp*Ksx9GV^+wpx8ZGYV(`U52V(awIAL#uKC zT8q8f>ttH#X_ZZhQB1HZP!)hJiN5o*)i8?)p*M!~8_^r5;Uk9^*uAI0r~@y|;4kbM zlSp4gfkQyS4b<m|?tW0$3-} zIxL@ag3_B#Z1pTtmj`eX>wJc0jtIFJaV7mzVL_SDyCL-N2<}a z0)-z5j!u=rE|flU_w1XI-nC5=iN{>D9$U7breTyl^iO#fRuM1S;X!Kp=yJ_EcsSea zmcA0sY}`lXH=90~Z@NtADi~~r zbV2b+lT!S`f(uw%5kp-~itbeb5fGdYOD6)* zC1h^QTZq0V=wg5xiigp**Q{;PY*=1XAbIU z=NVgo&C&BZ{mP~f?4W6+Z1%jbtZ|$B?P#F5HvL<>m_tN z^9Zovcx+uHzP=AMA*WaPuaTBA=5V1>t*!U z<|p%}&p7yXM>aD}GE5^F#6Ht9m=-g*=63<|bLaGAtXY#S%%??;YP6-}7zA9q%nmIi zrz))T?jkAf$mK3n5m1QK0eK*DP}5S%kw!g%cEx1{z%*h?l!}uX-hLQ9_25t%+P}&k zF7vIN-eE#83qG_GtYenrEkl|kHjOVFcGgK|X{C6TZ569W(CcGYSbl{Tu@oCgd6_^e zi1kYr;ka1R@?F)kH|o1DcYJ>67+-<{j*qK%l%Q(SH+sH1)})vC9>;~>OwejFX*cnC z{-t1>3nwvY$qYv6CUyl`! z&mEl2D@lzdWX$`=TU;w|%Q$!+MLK^-){cC~^%sQMi}T^6o8lXC7LH}z(}!QO)eGEX zN+-s%9JYV)4{jhG`IW`G5NGZ$r5_v`dROoj*NL@cPZ_()0o-^m#OwyNUGSh~L}h z-{(dl=;9e=RN~Szb~4#HPC7`Zc#0L_iDtsa|du z)|`^iU~JIgsfAkXg)G6+?7M~pc+8MAmhl;^dCOV~3OSA+9vkkNRs$3ORO;n5vE9&V@b&p zs&5g2)d*CG#A3Q(ek#r^D~oArTBB;_pJ&-@OFJG+*3p@F&YFwGQ9eV{eaw_y*8bSD zCEnU*K0XRBZ4<7D^%-_d!Yi!YTL`DWs#2_ywbi>=Zs~f`y`MI{H**yr*LidA_;WL@ zsY1FZEF^n7MmHSpDc$RFPVr!x;W9o1aD!s86vg)?VFS=6||q?`*V-B)Rg62N3XpVRZ5>V4R!d(}tm$M(Bck!mV*3cs! z@qZG7w2oSGPTrNq2X5EKPU6@`qK-|IL4HpJ)&Cs#-)T1;571&|V~Ezt;CPBDssxEG zG?&f2M~v`~-)G&c?Do_;t|u0$y?v_}L1xd%atMLiQmJok2C7dIqt$O@UagU|Wv%)W z2qe?`-O@11kJq*xa{pr3eoN+G?sT2RY@qjCM_m)uMI}PLHm`Z@bZ~>j_1qjl@Hd$= z0q$i`efRHb0N6n`whQEg5MvV1 zEQ*#=#z~QJLo5hPQdbxRQh|9+5iS*Dshp!vVbV2xd;hu)Ey3d=0;?a4OE1m|FuACl zi1aiIL<%VT+2ix((!~noiqam%7>vTD5)+wXGDgntO8hY_I?!ZyN}wOIE^&_5j(qf< z3hhmeCczYG>vh16srM%EeOcwdXX%-oKRG(tVi>ts`i~;ZKn2My>zj1~9&Fn*R^?2v z)PxsmxmNYdA1Xah7RpVIXT5Ws-~vr~+DM%gSc z|HCD|gI_Ns#`kTo|NYsi-P%Pm%-w_d9O?LD78bMLoPRCoLI9pO$ga>|Ed6di3BCvR zfG^Ms3zQ;tkSHurL}+2fu(NDAc@lhu9gV)hzQTGTwf`jAt_j=7<|qGb$Ib_E6-g)$ zsDd;XNEzWMLgD5Db$63X)$r&!4lbfqzdq2kIf9arI zUiCKAEqac01_HY2^hpC6_5Hqq|DHj`efunO<#+B0A*Hl!0`C$v0wpXb!j@FB%tN4MB{-wh zjmyz5siv8(icmv?N@Xf?(jSB1U~%-xjPY7UZWi7EC-(xq{u&5U=>~?#^$xyi``)-U z9yo3fj4++ub3HS00=8Eh^xDk|VPpA4oe{28jT9F)A22^S$1ln_vefC<{rcqKRHxP1 z$ZuWOd;Dv*TUw+{Cj>=TYuRYc3L{&-r7xs+c)R?VcQAT zcB0OAKXg))TW`->kFxFBP-@3Xmfz?v&X9#S{&rEhZm}vt8RkH`SY6l#!6){7oBbM; zOLp0X*m(n27UOjr^P8IMwV=+`hu=AYw^T|GU@~4Ar($zTN-Jn@V4!SUb%a_`BM#pT zw8&CKa&IWn0inkZMYyZ_OKeXDR5l0aH(s)Wl))}28KfdkKb43%m{S4Pu7ieZ9&?Z? zTtw`;!;vPvK2p#W2DyfQ&@wA z*3!96kS96&iNEhS6hjYkuw?LKzg@5fnu%7H6!OXm^`CJMm<0hyy7 zwbT9I-m%3WH%2CV7?=qayrRt?Vp^-)kyRU!t(+pVgVav=YfdGTwD40-i<08Rtt>u4 zs+b8yJC)T$L-7`M1@lH2zo!YXP|Epk28cvi!$ig&z^jirB#?&^5o!Yk+x;JSMToSH zT(qzmJ4DY?DJGaHs?S*170wf9P4o?4X1B*`E?R|EhSu_&aza8l#l%M62DV-nULOvc zGQ8d{*sl!%EspQ$c`gJn0TQ7|K^6{Vzs}WAL{k~!%aNcvsk#z01}g04QJd5(!P4p_ z>8ifxk9DXT68DO>mOgn=E+rB~K@40WDVPE&Dli<6{Qoe{j#{^bF@U83RwXW8F$yiI_#eZ27Bt$npdZ{&Kr^mKeB6tq3nHPGbGQ&~=VZ4v4` zfs>7pmGQk94s7~f8X$h8{Mrxr!03H`YP;B(x_@QqXKR0V$j!v#m{J{0wfOa`n$3t@ zfvd8(J~7<%3|h$HDbRue#YT#d1uW5-p*h}s-6e^nqd*K6(fc;|R1Khj1Z>Fh;&1p} zZLq}t?{tLY_Ud}vnHb_z-;%UpQ; za3DcOz{FksP#S21QG#vqCFb6Y?P9k6$EJ|)&WGJUPebAoeZoKU5`jLfA5(v=UMQ|7N~O8Tm)e2xo%W?nNClslu2z&U&r)H62DBE&e6?(syg8<`A102LC zTV?6L)B#4d>y3XCg(cbaw@T1Xn*gmJaUUpzY*xJ9XbcR^9G%1W6h$)yF*35aF^b1y zHjVR{pKrG2O;&_;;LdfC$K{Qs+iWB+-vMh~ZY(~78+dSpfEsEVy|{0M$EW&Y1g}|X zM}8j{+?F}H8j7FDA|&0}8_mIAv*G01*|G{IPSA<=uSkQ2xVOYfJtr zb7IG_FV64Q!Vtb2&{CcD=j-883Hlb~8ODt#q1AP*$)4&XU=)4Q4Ns?{hT~8>I{>sO z><` zGv$^hf@oEA|HH9k_}ur>lKy>r-yLU>B#-(|(?`NdMjix!Q8WonrcYZ1H~E zKz~2a#kZ)2SYf7Mt_cgEx?;>#g%(Y#PijU*U+gmEhx;Pfkm;LtoSBX9jdcCd_kbd!3>CFauKvLiM&g(|4x2N_o-Nq`_ z&Y%0GaX+Wy%Lq7_;d_nEx`2y`7@1jl1Km(|R+u>d#quwfkU_Hi6A6%uGHeKwtEsLb zFXV{e-SF2UB9cHx$$0PLbcktWF3M2*K=(|{oXap>OiJ+xN&^*C9U2Edm)s|P@_I1X@r!QQmELwOFte^vccL3J*I4~E}(F} zf;}KN4~$v8(L+7d%)bP6WHMzNq1@8#2PvqMDm~Y!#+Ce$F-_*a-@gr=|CI0ayu9&V z@xC9`Ydu4i-u0-zOaygDy!^UxZ-j^i5eHo0@7yI+bC>?Pa-Uw>Sb}P=aC0~ttwi>* znKgb7ty-`!PM{%<%qyr}ePOs+W-TX!3OnTjjwKookdQf0C?st4=x#05)h8Lxg&Q<8 zR{OX{4N!F@&MX0`gqG#qgM<;O8bW14qB^=G3N0fR;}N6DFX!CFJF2-Bzv~&@z9!Nx z-H@^QH)^w(sJK@xRGuYeEp}c4o`2mgVPBid7lyzS^1^X4ZzpgK9xX9mYBK!1YONMM+;*4H(Y{5 zBy`Pde{;2B>}doZ2@2^PiWi!kR2B=Y7?P^;Y{)TXOa13a16plm#(vcq=HA{mqFEy+ z)8ekd6Nm9b9AkG^T(Q~tV(GQ+Z3o_8EFU9!sYn_jNHG0;p@>ug;#8T6F%jYV8se8} zll$<$&$*`6_4I%x*-SZ~%AVP@&Yu>zBj9!5)zb)u_j)N07!D#vE}Xu*y6BOunO_B0 z_hlc|uB9~FYPmkcyMm^W!U2v*%6fk9p6_H+{Zr~F3ucJFD|I78>G(s&JVZKW>rsU(72asTT>cn%dZt|#Y8%P@lR3fs zr}hloCSOr+j%>esP$c`0c{XBwxJA{(+pukj8Ds@~@FX3&eJe*De z8cS(mfx!r5vE9>%ENZmW_H{wXVzblH$Quwad>@e{H?h<1>gC=ud!N|d_GcW}JL#$d zzFX8Ei3147{dFt1O}OH3j9#~I>A$58M!GbwB4qm%kBx8`GwtTfmGqvx3ja2NO+F(Mownk+4e{W*vXAe5Jr} zS*c2{2hA)Rn!6KLlwe9j;5?D5kI8Z-s2bLa5kZK7opcwhhW+;eTYA1LJqSN{qc9aI534xEUvKk0 z3;=EPRs*Bgdf5i(deNm^=n4G@R0pgDpucTA5R4TUE7NL|s?U3uaXqkbbai0m?7(yk z#a=nV?vN52BoyXrD2!U-h^Xyuv=jk}VuaL-B3K|6C}>p;EZ7%65m`dEj}fwhpasl0 zoruV7uf+x)?W8;cZ?>8C*syLtiaps~y=acd%jzeOd0@G0C(g??@Aa}#L(#LGyG82d z+j$5?=d=NcddXm@-sq{&n*Y%0njQOly2;?Iy<92g=R}Pm8GoTspr0fu zDkoASWDxihObW>VKR1B?a}oTf1_T88L;NpGgRaY9-Olr{Z4R?2Js}Ic&2AG?O-|!- z4fYd?Z9Y>LT@kaMtv*vWjdoMYZEo{YT>*;%-2pTBHLksI4gRga{+EgCzb(7n_RF9n zUaM$Bp34G*e# ze_KKQ5Bcyuhh>m4kAHZ>K}(uFehcXhRMhpRJG^t(I)b!zJADbaTb)7whlut6X*R0=v;jB! zjx+THEV*{NFAR?8ufGgSYys-{)&ZqlOMp&+9l(^}$&ZeI^!ual9)VrJl-MC)SmXdu z&$R|<<=X;Gi=6-_#Et>2{F{KrpZ7Y2wgGiKYk+E=e}Ed^e?RqgKsEmgpha{Mpf02d zkPs3F^!mC3evWzo?iytPw~bPO^9EVK`44?qEeqJF)_PrOa2eg{4vyUH4CLDH^7{Y( zhX0GLXrRaixIQBoD=#L&x!R*|uu^s!kk3C2sNq}$bPN9ITi_7T$g>G3=UV;g*E@ho zk)xjof7|~>H}Gr$#zjs5qaw$E8t#99<{$l!|LA{8>=e-cf7pA^@F=e|TlAT^XXe~H z_dNH6=bk&$$!@#d!I>bbRHY0e=bSOdIDiAj0Vlu)V`G!E$yq2TL=ZuUoRJU`63SAk zsw4sSOm|Nwhgo;6{neHV0p0GNnKSA9*w6mztNg9^UGI9|9lnGH9Ez<&VRx_LfeiA1 zI3P2s8X2+Iu`j*`i~Fs`djsA^?b?@cYfn%7?YkVvT!thTR4V~ zhvD9?g z2I9l`%}90^BPHTGlA_9SFs2rl$nSYE4*mti^aAleme7by`nxbc&&L;f1Q-vhk?pC( z=^lO*(FXGQ+9PrGIKkME$LDh6Dv%O$9XT!T-&GxW??~Ozk0&-B zo%8?viI?F&+}o=5zwv)n7cLleHE%{iRdS!NYPQB;*(=eAi*aFS)L`t4FGPx`7@73{ zLoxL@OZ@lK4$|G%ag4G3JbnFK@LXnO1x|Hq!g)SEKwnRDS0JApAR9SAjyTNta6I0R z{KP8c^ew{H#6ohxHRQ&W;_3%)Gv-IZpB9f+wp*F8_&hrfpXVmxZ}a-#=lciXSBHm^ z2SyS1G5DJJe`)Ms93S)e*hJdGXteAdh047zT)%#B?mG7b>?#!j~KY|Be`3oA(0F_CJpcany3e z`W)NYZULNU)A2=Wz!T(x^vH4?k|v=4pP>!pQQxK0CNA)G2WT((akWV4SBSET8gNq{ zY~8#CDZ8?;rB5E}*N%iQEegKWXtboppf!Vbkmcr1Q?a5U=oyj)*-WWftf1+)IofA;|Y zoW`)r51Lb=h<_A0Kz88tH!`9P zABYQXWp!sf=uJ&95WhY$jJ(fSVDP66NE4Vwn;;jcea#s0)v@uobztm2RPB51O5M>< zd+>IH|Dg(VwMXauRqgSm)9d%Wc(XBk7`)ko;mhp@Z^md8P0nS^u0`p*>8Rfsjr!f; zXd?biNiH<)rvJ0|%NBM=qJC3vRJ=7Gmxmvx#;?OU+QOOm7M!LX69d#8+IHg`j%jCv|2Saf){6*BcAGB z&pJRgj`u7_UeEI=el81@i$6fkf`vFcrT}|J?m^DDOk93@E%{{}bzcJQE)D^5PIJ%( zY%e=#Yw1BQ$RZcyP#f;;gJ0$|KPVVZO%UXQHXaDtf^5Lp!6c&-zBoJ<)p;-0))g)o z3^Mo>=QRK)?5!7(o9g_Ff)0@p(U+Pj*0_XxP{n^{bx6zBfL=tI@NNH+d1;QoI!X z9tz%^jpdUjA~B*n3fB#TkH4Xw-_?{p9=;vVqcQ1O1agO2bJ`-HkayPjW$jlOOz!HG;3i{lwe&zG4II;VZV^$}V_b z`Qw+23I6@#QE_Pg2H(jA|2^c={hL3mJGSs|DvmDOSC=#4n+E!PbIw3C@caX{$Co@_bLjoj#;g&5b)NQ~}^V;hDb zK&+EK9Dt{XdEn*id`5c=U_aEse~*5L^IL?!^P2`CklBa7BMJe1XB!s;@egu>jS0<) z56lykBYd9Q8^547{7r#!L?<5Ht_z%)@HO)Ual${G9D`pU9f#_D&wo*K;?r?;hu-}+ zs}1YUtQ%CjfBG$Px|f(Ysu5?4d1x>Hv-md&e?ImmlY4g&bHf97!{70H?=BCTGRYUY z1JOV}sa`b`pNt-ltGkEMuLq$tX#__0?~Ib2!%&wy0CkzeuzUQ6xIBG3{dyv~o?4&W zWBAALk;6^00}~7QoS&_kHqc0$l=k%PCil=D9ebb-X|oBp;R8Q8p(Tx6kiptfRw8Q! zPTg4A(B_B^4_N$FFJK&C-Y7fxin(HQ-lX4_9a=R1WXkIQ^lym^s*le9^QsfeUZ~1_ z`Zr#Vk;vy8v)I`C4fo&a{~hs{M)0R6!nf1$@7uUP$OD1hVZ@I(WcMU?#EiaNxBeCI zc854U@DlmsDSqDoRBnF`J4P)=?S_}(&!7#YjzLlXOUx5$QN4U7yjiq0{Vu*g)FvGs zaQL9fXcWe)^gfJ7j5EPljWofh;j17J-rzZ2IF^yqfEU>d19Ll zFb@2KY6a8^sw1j)^c7>qg`Lx}d_mrZl?xC3o2Vhz9{J!uS07upv^rv5(UE(DDK8w3zgPI;wyNUyXHG|ev#)EX$j5vny%Y4RzBa8>ZT7mrCsTDXi z0!I^4A0B-g%jfRKgy9!3>;2;e3qQH=KmIlIKwZK6e^GmE(em2tao;pDeh1im#9uxb z>Q_3p*mpc{o)hm9Pw6=EtuLvo(f7jL$7|kXnslLupG_MvuMg@;;j?QJ8pP|_1B|wl zk6#|Q57!qmugn@i{F!&Ck&~KC8_3r>@4wscQ4A4p$-WfFnlk&Enw0r1{7p@2#ultT zacscm3r-EeO^JzEYfbE>3mG4rc;fK3PjQ?$3QK7XZ>Bgwwnxmn}karq((iW*py}P;wZSr=FV&j7Nz(+f7+0A-lvhsu& zjw8?p6c6$h4_G^9ytj2j$jG0i1apTG{e*87sz&Xr%_gLYAk1zkLvVpoI zAN)n#v1N-Jb4Q_Gm}kmIh#imXb?tf0?KSO)yLdqUWwoE}r2(Z0no{Gbw{E|#Cihnj zP}s_EjqeI0;VnOwt?4_(Km435=5ahP`|$BM`RMbiH~JKp_*=bfvQ@pO(bz(JZ+~~& z?=;`1oUt$JSd;MXq%H2eJO0v#vH?@GrbcZ@il$zPrapA)$TwL#{G8h57yAaVcC31l zV*|qfmjzQWXZit*pLhim$6dpOiB~aU!c`0%b`kHsQ+RCd+^hd8Y@p`QJAYPrYR%k+ z>@nZeXZPbAhylc(*IpbD^eu0ud{Wn!*S>@Q>#@1E!dtB^=OUKWfZo*Z4!`nRn%s~1 zKqIetQ%ZvKS;AG##BTXIZO?p{Y=d}bO4kc_zD8Ux+a$*3F>Ta&%-^QCV193q56EB6 zIi1&g+MD8r{#zaMlg1t70OD_Lpglg(W)&02Q+~D!D~Dqt>&lznn#a0E0&b*gY=QOT zG}Vterl@$J+A-@zsucwGy^3kip2WDZ<(N3J1Y^dRW72pp#y{1Hp~K5C`@Iu;-RdaQ2g((0mg6D-Aw%@h`$pDhMQV{)|5K!4A9}v@!c#2DgykVSi6sPt0Wtzqiqj+g`8#VH#~BgLa2x)q(CR?rM9EK^wGT;vPA)0dxx4bn6HPkLONimFX(Hvup<2XVB=a==w zuMQ5t-;)cjXTFYSC!I08KXH5s#!slhQ{#V!@#DTBAN&rZhgE$u_k)Y8-<)~vUo1DQ zJFz0VYVWhZsw3{#(*~hDowb*&KFqJlr@`wczLoC?6U+Uf_}d(-BmT~L)&Vkl82qKN zgnbjQXPt5a`k(Rp5F2R2J!l8UXYYZ(@H4ro`JKWzq=nkV@57(zQm+z~!pOX$0{ymMh@=|9>V=La) zQA-JH6F2y|ZQs#m3;aIC1litg_*;xSo)3NO{O&eRxC8%SoZ$IJ+F(87dL!{~4Dx{G zfKdOhr;Y4>?==kWRe&i2_o86QNNk%Ki}C%!;fZp=kRW8|o#zn=Hu#a{m_ZJ_SZ+ka70 zFmI2k>9FornEV{v>nahsz6v{&W|4s*$g#g zdJl4FP-BZz8E@-TsH2E&NB_Sa>rhOcWBGe~vs~Wsb&id+zb^DW&awWR_^mzLH)q(_)r|SIX#=o-?I;YIvkGsM11_a-9E+ULltInM++TXk&zfta#`H{$UB1pS zU-`Rgs_a9Xo)h+7V&5n&$2_Y^{JN`iP-k^P1LLL9U~T?>7Yr?jhxorRb@aWX_l@Qc zc|O#BOisY(I_3j<+z@Q_>@`j)>>GCyf7{w@!HEmroze%6M({CLlrC&!?qKvR?Vz6H z3fH!D!=V+uvHIw)%^r|_C0~Y1I}akFml1jDoh;z1!KUM?7t!x z{2T)Yp2X~TjvsjYo%8?spW6nmA9}xQL*9hncvGqO*iLNejegz2uys}+)KCXhnQNwT zo&g-&?~fMxzn{1_)9+hZpKm6o8|>--0X9GJS99XOxFDFzOS2Q-hP3Xi0d;B9R^rtL z&c{^FcY99WZUat^M}FwQ|Ls2A?)$HMU5$}pQiW5#T|n%ws$ysc8kWI?N6g{ z*EAeXn#y?aEH0!yg=<-(P)k2kWW;&^-SaQkiNEKk@z_})jnwAmXLva4oqA*RqRnv&F7Bi^Nr@F>LK&ytXL` zOSdn>q10Dc3*uZ0+JG5r6VDr8SKqD;l_LoMD%NarQr<$=ju)8kF}Gq2wfNU6<_ahI zcPMV5$9MJXyW?;1b?nI64!PZMnZ8GLBE^2z1lSb!E&g@n?l$a$SX=B(Z_f#D#sG7U z#|_EiFn$jItGG<#Bq<9AVMJdKqTHJE9D_(tA9Rn&f;;XA;^U5@Tf#9D5BiV``u06T z-Vb2t;9p_HNVZ|WLEnB&nECqk%WuC^^?(0U+rWD%Cm)%#@z5>L(&Om5=mNr@{utq% zJE2qeA&B_&48oRPLDyv^2w#5Hw1^d@P>Wnuis)5W&~wdsOx>7+oaFaVn>~tiKxprI ztk07l0^|oX|A+OtdXCqK*R#^zM7K@X&~sBMPVFQYsNT!#rZ`%^oBCh19CPiY1MlAM z%>V9%zZ2($hp?7CnBHKnW3Bb#bJR6n9t(TLk_Of}>UMI@k^oZ6A$c`1 z-r2et7cwW)&qo-2Sa0}`7*p@b_phZ4!~64JN6+=;=)3h2j_#ypP_5nI&zzdJ;8mST z_>(U}^FLEd4%)-F!e2Z=9x*jbgKIz3WiU?dnZSA46HuEuoR4J_oS#a}rTvA!(f`bS zYKf=i_&afTY@(ieuzou^Y)b@cQ+u#(MD4=(R?pwLf5jjS>m7;kun2Swb2AqV$4g^8 z*teYXRyK@6BJCj3GZ;PNKERMZDYS*di0@W_?(r9q*t-$EdVPVuy{Q5F{vC$)|2rh~ z_ySK)stnAXTmAiiDjRq$tMtX_6-9Vt3H|=#6L>tPAG$vAIG!B#5?qTfqZ6?YUsHqd z&+5^2#kF?)SCqlEvJBz0f$-HO2^c(4*@Oz|Bk)22c55@hN($UKvl{p>SWGQ z;rFe5t2d$}!w?Z3hB!}GJU==L`{ddrn&`Te5{ zFQN0qPw?2|VR*vR17Y(E$@`blbxjq*)_W1L!H3ATHROHbzN(yfm$Sdd{u(^A0UdW) zSx!DEWsJCnS2rf3Bx8b^6LfCdaJ)v$V_o5RW>^$Tb`3>MD(6}-S2Fcq`Mjy8hcOl~ zex}43?zkKNp?q++*wDo5Z*9P-Q#;t#(=HnGr=q^#9n>D3g}S4&QCBbvjfbbBmiesD z)C?JGh+UoHK(cZ_`nZkjA-d0EufCr6*E8N{emo14hvZ=Hlr8x1`Jsq%J&C^EBk&8U2)~2t2I&X&oD+X+-C%T!4MzmEz^MMwC{7uP0M`%&_Kim4o@a1&>pR%-@hU8Q zEd#GlK80sS7jd2d$B2ejVBFARy!w3MZ_+pB{G;a(zME6=NyO43Ji6!-9{sckVILhw zmyz$m^~!p5SzLrpOG?r8vpRHL??c!|;=itzTu=q~MlakO8tD79fz{*$;;(q%UU`-F zP=-j_NX&|2tlYK`IZFp)ST7fzj0nS117dJ#2lF7t0@Zo^yF2mv$_AJNni`;Lz={PL z|05^!dMOUru>gyGXdh|=7I%{i8XkAJLHw?|wfD#j`u%%oqVIc&eeIDsXefA#T7RgC zIp%%T0*$Qw*6!f=AF*u^{^TTKZSqr74^%x!eoy?V5lfRsVPN-D=-Q}#O@spo%s_qiVMgu4+F8HL>+4?^>vk!an^-08q@+&C}_HxGe{hs{KI1nMb zSYL;TwN)lAge_-$Uv>adu`vh_?}90VV{tBtx{AErn9~P=9nw~;ukzaZwp0I+12mRa zPyer0uem=O=jHX%_@8XxUbwf#0%9y1F!^0Dj{9_u_}5C`9prT^c#r(gI%c7I+QE_6 zXdBY#PF>q@2ESV|-SKnPenRnA+;{3hwX{<&b;6b1qtU{#ci-@i@`0VWk83$x)}aab;_!I3akz1CBI@@|<$UsmkN>GU;LYr7i@Pi?Chs%$6aU8-UL@uv=)8nH zzKD8H$JF~_>l+RB2JclB24mMIKhz@Dur4h8SCa>54-vGBh>cC;f(pigtLU_%0#U=J z@qZ?ugt_kx%@5a@eHzDBSQ~3j?qcQuHfsKFawoq6X$|G}k z*B_esN9%xTDP{j-@Ydp%$3H2;V~elS28!|6q9Q!GstOOUtHKkjtH}LVh(Eb~17p9q ze?y}a??0V(VNdZBRJ7}V_Gnry~`I@*JtYoreF(SOW%QwRJz+Jf?XgJF;Z zWCQYP2Y>29&Hs=t&t;4~@I1WxUqDSZ^8lXn(@q*p{3rIiIHS=GsTV?YX4gKJkL4b?>sL~QC?A&G6ci9J|UKRFl~|Sg7G1j zzRy~zu(vIg2V?`LwQ<3Ce13>)4EeZW|CC?V9{u>qKb8aD%_^JOg*^Z8Cl~SfvI@rk z5@QEXtggqCs~PWCv61_`Fph^a)(czL+B$>3i##8>iN0>}S3byd@_iRIqH9ex+{_cY zEUz&6LiGFT=o%4@u!ydRc10k;6UKbUg{i~3V%D?K*fO^dCT}=|UYkphv~{}Ce}1C{ zl?!m)566fU2ipB#Jm56L`?L$?0jAEwWKrilWN+6lLHWc*+oVo`CW5R#2Fe7k#693kPkFIqIyFe ze^-Oz4!J;fwr6Eu#D_=Xlh+f-Myq6 zgx39|P*Je(vp)v^m(t7s%cNZ;S07uzm{0s4Sy73{$oY>gEyWXS>hZ+ddW5a6Mwex! z?8)n!~NPY;Io zj=;zsE{yIIhGz#y;LUO2nEgg?3|`Or;yN!jZX+*qEXccq{A+Rp`W|CKQzqB*5L?r% z77*6KX2*SO-PrQKuyJxgM@NbSt}@=fR+fi-hhCxI(?1P<4D{YM$R`zge<5Vn~{uw3@ zpF^APk6O;9P;TSoHySg$6Mw}4qXmQhZ{mRAfObvrIpadr!Pjqb{oVikwl**;>soKu zYR39cuHun}7w{OpCJ z=>V5FLE4a*yG?C~c_3?papT{?>=%0A;!gSy|M&GB@r<2O)OegTx07o-7zc8;J%jDr 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 z

    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 Lv@^N`&yW8P^)o7P diff --git a/ShoalShell.Plugins.Runtime.Environment/RuntimeEnvironmentHandler.vb b/ShoalShell.Plugins.Runtime.Environment/RuntimeEnvironmentHandler.vb deleted file mode 100644 index 05be625b2..000000000 --- a/ShoalShell.Plugins.Runtime.Environment/RuntimeEnvironmentHandler.vb +++ /dev/null @@ -1,65 +0,0 @@ -Imports Microsoft.VisualBasic.CommandLine.Reflection -Imports Microsoft.VisualBasic.Scripting.ShoalShell.SPM -Imports Microsoft.Win32 - -'''

    -''' 假若将本模块直接集成在Shoal的主程序之中,则在Windows 7或者更高版本的Windows之中,假若开启了UAC的话,则程序每一次执行都必须要管理员权限了,所以现在将涉及到系统底层的操作都放在一个模块之中以避免这个问题 -''' -''' -''' -<[Namespace]("Shoal.Runtime")> -Public Module RuntimeEnvironmentHandler - - Const UAC_EXCEPTION As String = "UAC is turn on on your windows, you should run Shoal As Administrator and then using this command to associate the script file!" - - - Public Function FileAssociations() As Boolean - Try - - Dim IconPath As String = FileIO.FileSystem.GetFileInfo(My.Application.Info.DirectoryPath & "/icons/shl.ico").FullName - Dim InteropPath As String = My.Application.Info.DirectoryPath & "/icons/shoalex.exe" - Dim ShoalPath As String = FileIO.FileSystem.GetFileInfo(String.Format("{0}/{1}.exe", My.Application.Info.DirectoryPath, My.Application.Info.AssemblyName)).FullName - Dim argvs As String = String.Format("""{0}"" ""{1}""", ShoalPath, IconPath) - - Call My.Resources.Shoal.FlushStream(IconPath) - Call My.Resources.ShoalEx.FlushStream(InteropPath) - Call Process.Start(InteropPath, argvs) - Call Threading.Thread.Sleep(100) - Call FileIO.FileSystem.DeleteFile(InteropPath, FileIO.UIOption.OnlyErrorDialogs, FileIO.RecycleOption.DeletePermanently) - - Catch ex As Exception - Call App.LogException(ex) - Call Console.WriteLine(UAC_EXCEPTION) - End Try - - Return True - End Function - - - Public Function ScanPlugIns(DIR As String, Optional ext As String = "*.*") As PackageModuleDb - ext = If(String.IsNullOrEmpty(ext), "*.*", ext) - - Dim FilesForScan = FileIO.FileSystem.GetFiles(DIR, FileIO.SearchOption.SearchTopLevelOnly, ext) - Dim SPMgrDb As PackageModuleDb = PackageModuleDb.LoadDefault - - Using SMgr As New ShoalPackageMgr(SPMgrDb) - For Each File As String In FilesForScan - Call SMgr.Imports(File) - Next - End Using - - Return SPMgrDb - End Function - - Const WMIC_PATH_CMD As String = "ENVIRONMENT where ""name='path' and username=''"" set VariableValue=""%path%;{0}""" - - - Public Function SetupEnvironmentVariable() As Boolean - Dim path As String = My.Application.Info.DirectoryPath - Dim cmdl As String = String.Format(WMIC_PATH_CMD, path) - Dim Process = System.Diagnostics.Process.Start("wmic", cmdl) - Call Process.WaitForExit() - - Return Process.ExitCode = 0 - End Function -End Module diff --git a/ShoalShell.Plugins.Runtime.Environment/ShoalEx/FileEx.bas b/ShoalShell.Plugins.Runtime.Environment/ShoalEx/FileEx.bas deleted file mode 100644 index 0dffdc0d7..000000000 --- a/ShoalShell.Plugins.Runtime.Environment/ShoalEx/FileEx.bas +++ /dev/null @@ -1,73 +0,0 @@ -Attribute VB_Name = "modFileEx" - -Public Const REG_SZ As Long = 1 -Public Const REG_DWORD As Long = 4 -Public Const HKEY_CLASSES_ROOT = &H80000000 -Public Const HKEY_CURRENT_USER = &H80000001 -Public Const HKEY_LOCAL_MACHINE = &H80000002 -Public Const HKEY_USERS = &H80000003 -Public Const ERROR_NONE = 0 -Public Const ERROR_BADDB = 1 -Public Const ERROR_BADKEY = 2 -Public Const ERROR_CANTOPEN = 3 -Public Const ERROR_CANTREAD = 4 -Public Const ERROR_CANTWRITE = 5 -Public Const ERROR_OUTOFMEMORY = 6 -Public Const ERROR_INVALID_PARAMETER = 7 -Public Const ERROR_ACCESS_DENIED = 8 -Public Const ERROR_INVALID_PARAMETERS = 87 -Public Const ERROR_NO_MORE_ITEMS = 259 -Public Const KEY_ALL_ACCESS = &H3F -Public Const REG_OPTION_NON_VOLATILE = 0 - -Public Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long -Public Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, ByVal lpSecurityAttributes As Long, phkResult As Long, lpdwDisposition As Long) As Long -Public Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long -Public Declare Function RegSetValueExString Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpValue As String, ByVal cbData As Long) As Long -Public Declare Function RegSetValueExLong Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpValue As Long, ByVal cbData As Long) As Long - -Public Sub CreateAssociation(strAsso As String, strDescription As String, strExeName As String, strIcon As String) - Dim sPath As String - - CreateNewKey strAsso, HKEY_CLASSES_ROOT - SetKeyValue strAsso, "", strDescription, REG_SZ - - CreateNewKey strDescription & "\shell\open\command", HKEY_CLASSES_ROOT - SetKeyValue strDescription, "", strDescription, REG_SZ - sPath = strExeName & " %1" - SetKeyValue strDescription & "\shell\open\command", "", sPath, REG_SZ - - CreateNewKey strDescription & "\DefaultIcon", HKEY_CLASSES_ROOT - SetKeyValue strDescription & "\DefaultIcon", "", strIcon, REG_SZ -End Sub - -Public Function SetValueEx(ByVal hKey As Long, sValueName As String, lType As Long, vValue As Variant) As Long - Dim nValue As Long - Dim sValue As String - - Select Case lType - Case REG_SZ - sValue = vValue & Chr$(0) - SetValueEx = RegSetValueExString(hKey, sValueName, 0&, lType, sValue, Len(sValue)) - Case REG_DWORD - nValue = vValue - SetValueEx = RegSetValueExLong(hKey, sValueName, 0&, lType, nValue, 4) - End Select -End Function - -Public Sub CreateNewKey(sNewKeyName As String, lPredefinedKey As Long) - Dim hKey As Long - Dim r As Long - - r = RegCreateKeyEx(lPredefinedKey, sNewKeyName, 0&, vbNullString, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, 0&, hKey, r) - Call RegCloseKey(hKey) -End Sub - -Public Sub SetKeyValue(sKeyName As String, sValueName As String, vValueSetting As Variant, lValueType As Long) - Dim r As Long - Dim hKey As Long - - r = RegOpenKeyEx(HKEY_CLASSES_ROOT, sKeyName, 0, KEY_ALL_ACCESS, hKey) - r = SetValueEx(hKey, sValueName, lValueType, vValueSetting) - Call RegCloseKey(hKey) -End Sub diff --git a/ShoalShell.Plugins.Runtime.Environment/ShoalEx/ShoalEx.res_exe b/ShoalShell.Plugins.Runtime.Environment/ShoalEx/ShoalEx.res_exe deleted file mode 100644 index a67d5c9aceebbf9bb220a975a5e0b1b1437d441d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 zcmeHNU2Igx6+XMZ;I%Pk8*QnPopSjrE=tWB8`rJ2;^M!6yMTo)3)01~*c*GL>-Dl; z!zOCQzBF>BNc4e+JVYpvJVuotQi-CrGRgyaNRTTat&YChR> z*BAX{&(K72T2E)D#xwCreKej*O=b1V2|Y8D(vvB@=ggo!IW?AO*}lDYzwLUmvHG*` zzn+|R_y_05W}9K3O^!}*+{P9R^b$pVRkW{bWXMS?&<@`=-&Ud^VssTd!FtIyln$Hw z=>xNrWFSQRi+x0X83BXKaUf+$$kgQ~qGr~@M4tv^)Yl4hRI0NF)Fu5s!&^%>k;@|O z&Fw0$Y@6Lar-)8;sbwsljU(b54=N%mkwG-yl9|qoB2o4MeUbijNEaEH2IgOW*6*(7 z)ZlQ}@Trb)OHVZF%Ic{e0v-Y$0v-Y$0v-Y$0v-Y$0v-Y$0v-bY=Lj76)9uXR^qtJw zJ2x}_zuwOL?d3a}&wlZ4=EB0enLpOw$-H;;X2#tGaUc*hNF1n>A;~Z#LrsQFG7QSF zL54a)qKU}23|f35_>F;yubiDyBdTkz4lg9yx^6u+I)2;#=Mfdnw{%5=6H{@sHz$p1 zgw5YEh-G1?l5g2^0Fq066fzLEDl&F?8`;8!s zI^Kj2T0+m!ERJ@1_yzPicx29kxu<#XEcjR8jpX3rNGd7p(^s+oQS>2*{@1`+C)!bG z_doVa^q>0%Hi2uNb;x(X?}JaHJqF|)u$=&}utc6p6lyf+(_O%=!Jq~3J&v%ky2lBQ z&KVq?Gurwx0CC2y0GOA+>K((NA+*CI4}pyc@S1Vn^1_(k3z)0C>N%edd-5L_eiYjI zu{ZO{|X^IC9pjA88Bl&A#478dCuNn0^l1S-V`5FR!cx ztZ{e#20Q;O`<5kn>6i24Ep$M=l@dYkOPUF}%Q?%rj_l0?Wm~`ll%XjaM;NC`tl#6% z#%Tt6f>M-4OfOFJkvXvZofBrU{bUl=L?UYYM(hcM4)5*3Y&VE;ixU-4zZgXln@zca>6vqD01Lhaj=6x&`-44UpHlOv2 z!UXTrcf$~P$i!I&IZei|^hxL;AXpP{lJ{w}%w40j#x*!WKRJ$Q)8 zaZqT-Fal{gelZ$_K8e3LMsp1Lc>HuaK&_AsvRn^xzKZl2j7XMF$`UE0@VrvQI`5%u zNnN&?HAPOmmK9n~Jmtuz$2gE$DahB6mKN=1TI7Q?5}^Hb#S{^kW*rsJnWngs6^CKv zL~RWaiG+CW*I^_FkX6wOQtc0oB!x5F&^EjdtW^P3Y89Zrg*VJgx0)pr}G;+g9|iFD6#MjEGCEY0;rk zOhg2r=m%@<0I6NTg9H#@X`P7aWSmB-F=|)BfDLAlVQUuv6*4T)<|7&*tN89i;+lC6 zd(iaIuDQ4u_{un7^c9^;r-wU5hR!mDfH)d$5vY60fJQ+)#xl&-57O`~|Z+S+=4dr&1Tse7Nu0q)P6n;7tpMzfx zScN2V{H0LyImUC^iZVRdzXZ*#auH8cIWoj(~oC$to9&( zDm*rBrS5{I6|BZ;>V9NtkF45&8mvcF!NUB+*00gqwBHwjM8cBTE;$+k%n=ezKF1w&O$p$XXrHS zlL-5uGyOsP(o$z3pMA=Aq)aAmmfd_6fv`tv!#MwC;76UxPvWfjD$b2e`(>#ir1A-J z8oOm2r^F;u)frI>%xPIT^`T8!dBRWO{;=88fXoxd`%IYHC3ng9nwM}Cz-M2cQq!`I z*U%%ri>S>j4xRs)!q`-O_Kjr>=hacv=+0Zdd-Tfpj&^*)e5JMw!(#?LD7U>8H&vyk zcg{w}hjpdvet7Z8S<^bB>x_>k=hTszU{F~+`b7H}>qTyS}o; zL&nyVCr~0BiF@;#oa5%iq)&4xEp+ZRji@z=ka~9TKtJv{qVk6 ni5!Fc*X^xPIihU5=KuS6mC^7t4*?GW4*?GW4*?H>N(lTDm}i(p diff --git a/ShoalShell.Plugins.Runtime.Environment/ShoalEx/ShoalEx.vbp b/ShoalShell.Plugins.Runtime.Environment/ShoalEx/ShoalEx.vbp deleted file mode 100644 index 901126d49..000000000 --- a/ShoalShell.Plugins.Runtime.Environment/ShoalEx/ShoalEx.vbp +++ /dev/null @@ -1,34 +0,0 @@ -Type=Exe -Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\Windows\system32\stdole2.tlb#OLE Automation -Module=modProgram; modProgram.bas -Module=modFileEx; FileEx.bas -Startup="Sub Main" -HelpFile="" -Title="ShoalEx" -ExeName32="ShoalEx.exe" -Command32="" -Name="ShoalEx" -HelpContextID="0" -CompatibleMode="0" -MajorVer=1 -MinorVer=0 -RevisionVer=10 -AutoIncrementVer=1 -ServerSupportFiles=0 -VersionCompanyName="aaaa" -CompilationType=0 -OptimizationType=0 -FavorPentiumPro(tm)=-1 -CodeViewDebugInfo=-1 -NoAliasing=-1 -BoundsCheck=-1 -OverflowCheck=-1 -FlPointCheck=-1 -FDIVCheck=-1 -UnroundedFP=-1 -StartMode=0 -Unattended=0 -Retained=0 -ThreadPerObject=0 -MaxNumberOfThreads=1 -DebugStartupOption=0 diff --git a/ShoalShell.Plugins.Runtime.Environment/ShoalEx/ShoalEx.vbw b/ShoalShell.Plugins.Runtime.Environment/ShoalEx/ShoalEx.vbw deleted file mode 100644 index 3bd3775af..000000000 --- a/ShoalShell.Plugins.Runtime.Environment/ShoalEx/ShoalEx.vbw +++ /dev/null @@ -1,2 +0,0 @@ -modProgram = 44, 44, 1149, 775, Z -modFileEx = 22, 22, 1127, 753, diff --git a/ShoalShell.Plugins.Runtime.Environment/ShoalEx/modProgram.bas b/ShoalShell.Plugins.Runtime.Environment/ShoalEx/modProgram.bas deleted file mode 100644 index b025ddff2..000000000 --- a/ShoalShell.Plugins.Runtime.Environment/ShoalEx/modProgram.bas +++ /dev/null @@ -1,24 +0,0 @@ -Attribute VB_Name = "modProgram" -Sub Main() - - If Len(Command) = 0 Then - MsgBox "Program Argument Error!", vbCritical - Exit Sub - End If - - Dim ChunkBuffer() As String, Cmdl As String - - Cmdl = Command - ChunkBuffer = Split(Cmdl, """ """) - - Dim ProgramPath As String, IconPath As String - - ProgramPath = ChunkBuffer(0) - IconPath = ChunkBuffer(1) - - ProgramPath = Mid(ProgramPath, 2) - IconPath = Mid(IconPath, 1, Len(IconPath) - 1) - - Call CreateAssociation(".shl", "Shoal Shell Script File", ProgramPath, IconPath) - -End Sub diff --git a/ShoalShell.Plugins.Runtime.Environment/ShoalShell.Plugins.Runtime.Environment.vbproj b/ShoalShell.Plugins.Runtime.Environment/ShoalShell.Plugins.Runtime.Environment.vbproj deleted file mode 100644 index 89ee4173e..000000000 --- a/ShoalShell.Plugins.Runtime.Environment/ShoalShell.Plugins.Runtime.Environment.vbproj +++ /dev/null @@ -1,228 +0,0 @@ - - - - - Debug - AnyCPU - {4863E23A-8E58-4E10-9A77-8DBA4D4BB586} - Library - ShoalShell.Plugins.Runtime.Environment - ShoalShell.Plugins.Runtime.Environment - 512 - Windows - v4.6 - - - - true - full - true - true - ..\ShoalShell\bin\Debug\ - ShoalShell.Plugins.Runtime.Environment.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - pdbonly - false - true - true - ..\..\GCModeller\GCModeller\ - ShoalShell.Plugins.Runtime.Environment.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - true - true - true - bin\x64\Debug\ - ShoalShell.Plugins.Runtime.Environment.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - full - x64 - MinimumRecommendedRules.ruleset - - - true - ..\..\GCModeller\GCModeller-x64\ - ShoalShell.Plugins.Runtime.Environment.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x64 - MinimumRecommendedRules.ruleset - - - true - bin\Publish\ - ShoalShell.Plugins.Runtime.Environment.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - AnyCPU - MinimumRecommendedRules.ruleset - - - true - bin\x64\Publish\ - ShoalShell.Plugins.Runtime.Environment.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x64 - MinimumRecommendedRules.ruleset - - - true - true - true - bin\x86\Debug\ - ShoalShell.Plugins.Runtime.Environment.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - full - x86 - MinimumRecommendedRules.ruleset - - - true - bin\x86\Release\ - ShoalShell.Plugins.Runtime.Environment.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x86 - MinimumRecommendedRules.ruleset - - - true - bin\x86\Publish\ - ShoalShell.Plugins.Runtime.Environment.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x86 - MinimumRecommendedRules.ruleset - - - true - bin\docs\ - ShoalShell.Plugins.Runtime.Environment.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - AnyCPU - MinimumRecommendedRules.ruleset - - - true - bin\x64\docs\ - ShoalShell.Plugins.Runtime.Environment.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x64 - MinimumRecommendedRules.ruleset - - - true - bin\x86\docs\ - ShoalShell.Plugins.Runtime.Environment.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x86 - MinimumRecommendedRules.ruleset - - - - - - - - - - - - - - - - - - - - - - - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - - - {fecce1fd-e1d4-49e3-a668-60bb5e7aed99} - +Microsoft.VisualBasic.Architecture.Framework - - - {a7cb16ff-75c6-4746-8449-86c121d723c4} - ShoalShell_Core.v2 - - - - - - - - \ No newline at end of file diff --git a/ShoalShell.Plugins.SQLDatabaseInterface/My Project/Application.Designer.vb b/ShoalShell.Plugins.SQLDatabaseInterface/My Project/Application.Designer.vb deleted file mode 100644 index 88dd01c78..000000000 --- a/ShoalShell.Plugins.SQLDatabaseInterface/My Project/Application.Designer.vb +++ /dev/null @@ -1,13 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - diff --git a/ShoalShell.Plugins.SQLDatabaseInterface/My Project/Application.myapp b/ShoalShell.Plugins.SQLDatabaseInterface/My Project/Application.myapp deleted file mode 100644 index 758895def..000000000 --- a/ShoalShell.Plugins.SQLDatabaseInterface/My Project/Application.myapp +++ /dev/null @@ -1,10 +0,0 @@ - - - false - false - 0 - true - 0 - 1 - true - diff --git a/ShoalShell.Plugins.SQLDatabaseInterface/My Project/AssemblyInfo.vb b/ShoalShell.Plugins.SQLDatabaseInterface/My Project/AssemblyInfo.vb deleted file mode 100644 index 3de4761bd..000000000 --- a/ShoalShell.Plugins.SQLDatabaseInterface/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,35 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - -' General Information about an assembly is controlled through the following -' set of attributes. Change these attribute values to modify the information -' associated with an assembly. - -' Review the values of the assembly attributes - - - - - - - - - - -'The following GUID is for the ID of the typelib if this project is exposed to COM - - -' Version information for an assembly consists of the following four values: -' -' Major Version -' Minor Version -' Build Number -' Revision -' -' You can specify all the values or you can default the Build and Revision Numbers -' by using the '*' as shown below: -' - - - diff --git a/ShoalShell.Plugins.SQLDatabaseInterface/My Project/Resources.Designer.vb b/ShoalShell.Plugins.SQLDatabaseInterface/My Project/Resources.Designer.vb deleted file mode 100644 index f85e5fa7b..000000000 --- a/ShoalShell.Plugins.SQLDatabaseInterface/My Project/Resources.Designer.vb +++ /dev/null @@ -1,63 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - -Imports System - -Namespace My.Resources - - 'This class was auto-generated by the StronglyTypedResourceBuilder - 'class via a tool like ResGen or Visual Studio. - 'To add or remove a member, edit your .ResX file then rerun ResGen - 'with the /str option, or rebuild your VS project. - ''' - ''' A strongly-typed resource class, for looking up localized strings, etc. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Returns the cached ResourceManager instance used by this class. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("ShoalShell.Plugins.SQLDatabaseInterface.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Overrides the current thread's CurrentUICulture property for all - ''' resource lookups using this strongly typed resource class. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set - resourceCulture = value - End Set - End Property - End Module -End Namespace diff --git a/ShoalShell.Plugins.SQLDatabaseInterface/My Project/Resources.resx b/ShoalShell.Plugins.SQLDatabaseInterface/My Project/Resources.resx deleted file mode 100644 index af7dbebba..000000000 --- a/ShoalShell.Plugins.SQLDatabaseInterface/My Project/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/ShoalShell.Plugins.SQLDatabaseInterface/My Project/Settings.Designer.vb b/ShoalShell.Plugins.SQLDatabaseInterface/My Project/Settings.Designer.vb deleted file mode 100644 index 395b1001d..000000000 --- a/ShoalShell.Plugins.SQLDatabaseInterface/My Project/Settings.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ -'------------------------------------------------------------------------------ -' -' This code was generated by a tool. -' Runtime Version:4.0.30319.42000 -' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) - -#Region "My.Settings Auto-Save Functionality" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings( sender As Global.System.Object, e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.ShoalShell.Plugins.SQLDatabaseInterface.My.MySettings - Get - Return Global.ShoalShell.Plugins.SQLDatabaseInterface.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/ShoalShell.Plugins.SQLDatabaseInterface/My Project/Settings.settings b/ShoalShell.Plugins.SQLDatabaseInterface/My Project/Settings.settings deleted file mode 100644 index 85b890b3c..000000000 --- a/ShoalShell.Plugins.SQLDatabaseInterface/My Project/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/ShoalShell.Plugins.SQLDatabaseInterface/SQLite.vb b/ShoalShell.Plugins.SQLDatabaseInterface/SQLite.vb deleted file mode 100644 index cd90a7274..000000000 --- a/ShoalShell.Plugins.SQLDatabaseInterface/SQLite.vb +++ /dev/null @@ -1,117 +0,0 @@ -Imports Microsoft.VisualBasic.CommandLine.Reflection -Imports Microsoft.VisualBasic.DocumentFormat.Csv.Extensions -Imports Microsoft.VisualBasic.Scripting.MetaData -Imports Microsoft.VisualBasic.Scripting.ShoalShell -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Runtime -Imports Microsoft.VisualBasic.Scripting.ShoalShell.Runtime.HybridsScripting -Imports Microsoft.VisualBasic.ComponentModel.DataSourceModel.SchemaMaps -Imports System.Data.SQLite.Linq.DataMapping.Interface -Imports System.Data.SQLite.Linq - - -<[PackageNamespace]("DBI.SQLite", - Publisher:="xie.guigang@gmail.com", - Category:=APICategories.SoftwareTools, - Url:="", - Description:="Language for query local configuration database.")> -Public Module SQLite - -#Region "Shoal shell hybrid scripting interface API" - - Dim SQLiteEngine As SQLProcedure - - ''' - ''' Gets or set the SQLite database file for the API. - ''' - ''' - ''' - ''' - - Public Property DataSource As String - Get - If SQLiteEngine Is Nothing Then - Return "" - Else - Return SQLiteEngine.URL - End If - End Get - Set(value As String) - SQLite.SQLiteEngine = SQLProcedure.CreateSQLTransaction(value) - End Set - End Property - - - - Public Function Exec(SQL As String) As Object - Dim DbReader = SQLiteEngine.Execute(SQL) - If DbReader Is Nothing Then - Return Nothing - Else - Return DbReader.DataFrame - End If - End Function - - - - Public Function InsertOrUpdate(Table As String, obj As Object) As Boolean - If Reflector.RecordExists(SQLiteEngine, obj) Then - Return Reflector.Update(SQLiteEngine, obj) - Else - Return Reflector.Insert(SQLiteEngine, obj) - End If - End Function -#End Region - - - Public Function Connect(url As String) As SQLProcedure - SQLiteEngine = SQLProcedure.CreateSQLTransaction(url) - Return SQLiteEngine - End Function - - - Public Function Exec(DBI As SQLProcedure, SQL As String) As Object - Return DBI.Execute(SQL) - End Function - - - Public Function Insert(DBI As SQLProcedure, obj As Object) As Boolean - Return Reflector.Insert(DBI, obj:=obj) - End Function - - - Public Function Delete(DBI As SQLProcedure, obj As Object) As Boolean - Return Reflector.Delete(DBI, obj) - End Function - - - Public Function CreateTable(DBI As SQLProcedure, Table As Type, Optional Delete_Exists As Boolean = False) As String - If DBI.ExistsTable(Table) Then - If Delete_Exists Then - Call DBI.DeleteTable(Table) - Else - Return "" - End If - End If - - Return DBI.CreateTableFor(Table) - End Function - - - Public Function GetTableName(Schema As Type) As String - Return DataMapping.Interface.GetTableName(type:=Schema) - End Function - - - Public Function TableExists(DBI As SQLProcedure, Table As String) As Boolean - Return DBI.ExistsTable(Table) - End Function - - - Public Function QueryTable(DBI As SQLProcedure, Schema As Type) As Object() - Dim ChunkBuffer = Reflector.Load(DBI, Schema) - Dim LQuery = (From row In ChunkBuffer Select s = row.ToString).ToArray - Call Console.WriteLine(String.Join(vbCrLf, LQuery)) - Return ChunkBuffer - End Function -End Module diff --git a/ShoalShell.Plugins.SQLDatabaseInterface/ShoalShell.Plugins.SQLDatabaseInterface.vbproj b/ShoalShell.Plugins.SQLDatabaseInterface/ShoalShell.Plugins.SQLDatabaseInterface.vbproj deleted file mode 100644 index 1d6738275..000000000 --- a/ShoalShell.Plugins.SQLDatabaseInterface/ShoalShell.Plugins.SQLDatabaseInterface.vbproj +++ /dev/null @@ -1,230 +0,0 @@ - - - - - Debug - AnyCPU - {75B2A52A-F76B-4912-AAC2-CAC4AE56A001} - Library - ShoalShell.Plugins.SQLDatabaseInterface - ShoalShell.Plugins.SQLDatabaseInterface - 512 - Windows - v4.6 - - - - true - full - true - true - ..\ShoalShell\bin\Debug\ - ShoalShell.Plugins.SQLDatabaseInterface.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - pdbonly - false - true - true - ..\..\GCModeller\GCModeller\ - ShoalShell.Plugins.SQLDatabaseInterface.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - - On - - - Binary - - - Off - - - On - - - true - true - true - bin\x64\Debug\ - ShoalShell.Plugins.SQLDatabaseInterface.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - full - x64 - MinimumRecommendedRules.ruleset - - - true - ..\..\GCModeller\GCModeller-x64\ - ShoalShell.Plugins.SQLDatabaseInterface.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x64 - MinimumRecommendedRules.ruleset - - - true - bin\Publish\ - ShoalShell.Plugins.SQLDatabaseInterface.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - AnyCPU - MinimumRecommendedRules.ruleset - - - true - bin\x64\Publish\ - ShoalShell.Plugins.SQLDatabaseInterface.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x64 - MinimumRecommendedRules.ruleset - - - true - true - true - bin\x86\Debug\ - ShoalShell.Plugins.SQLDatabaseInterface.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - full - x86 - MinimumRecommendedRules.ruleset - - - true - bin\x86\Release\ - ShoalShell.Plugins.SQLDatabaseInterface.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x86 - MinimumRecommendedRules.ruleset - - - true - bin\x86\Publish\ - ShoalShell.Plugins.SQLDatabaseInterface.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x86 - MinimumRecommendedRules.ruleset - - - true - bin\docs\ - ShoalShell.Plugins.SQLDatabaseInterface.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - AnyCPU - MinimumRecommendedRules.ruleset - - - true - bin\x64\docs\ - ShoalShell.Plugins.SQLDatabaseInterface.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x64 - MinimumRecommendedRules.ruleset - - - true - bin\x86\docs\ - ShoalShell.Plugins.SQLDatabaseInterface.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - x86 - MinimumRecommendedRules.ruleset - - - - - - - - - - - - - - - - - - - - - - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - - - {ec288ffe-8fee-4e89-88c1-cd68f92f75bc} - SQLite_Interface - - - {7283c179-f852-4ead-8d8f-b82ef2cbd7db} - +VB_Tabular.DataFrame - - - {fecce1fd-e1d4-49e3-a668-60bb5e7aed99} - +Microsoft.VisualBasic.Architecture.Framework - - - {a7cb16ff-75c6-4746-8449-86c121d723c4} - ShoalShell_Core.v2 - - - - - \ No newline at end of file diff --git a/gpl.txt b/gpl.txt deleted file mode 100644 index 94a9ed024..000000000 --- a/gpl.txt +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/index.html b/index.html deleted file mode 100644 index 7d8165337..000000000 --- a/index.html +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - - - - - Shoal - - - - - - - - -
    -
    -

    -Welcome to GitHub Pages.

    - -

    This automatic page generator is the easiest way to create beautiful pages for all of your projects. Author your page content here using GitHub Flavored Markdown, select a template crafted by a designer, and publish. After your page is generated, you can check out the new gh-pages branch locally. If you’re using GitHub Desktop, simply sync your repository and you’ll see the new branch.

    - -

    -Designer Templates

    - -

    We’ve crafted some handsome templates for you to use. Go ahead and click 'Continue to layouts' to browse through them. You can easily go back to edit your page before publishing. After publishing your page, you can revisit the page generator and switch to another theme. Your Page content will be preserved.

    - -

    -Creating pages manually

    - -

    If you prefer to not use the automatic generator, push a branch named gh-pages to your repository to create a page manually. In addition to supporting regular HTML content, GitHub Pages support Jekyll, a simple, blog aware static site generator. Jekyll makes it easy to create site-wide headers and footers without having to copy them across every page. It also offers intelligent blog support and other advanced templating features.

    - -

    -Authors and Contributors

    - -

    You can @mention a GitHub username to generate a link to their profile. The resulting <a> element will link to the contributor’s GitHub Profile. For example: In 2007, Chris Wanstrath (@defunkt), PJ Hyett (@pjhyett), and Tom Preston-Werner (@mojombo) founded GitHub.

    - -

    -Support or Contact

    - -

    Having trouble with Pages? Check out our documentation or contact support and we’ll help you sort it out.

    -
    -
    - - - - - - - - diff --git a/params.json b/params.json deleted file mode 100644 index c75a48fd7..000000000 --- a/params.json +++ /dev/null @@ -1 +0,0 @@ -{"name":"Shoal","tagline":"Shoal Shell Language for GCModeller Virtual Cell Programming","body":"### Welcome to GitHub Pages.\r\nThis automatic page generator is the easiest way to create beautiful pages for all of your projects. Author your page content here [using GitHub Flavored Markdown](https://guides.github.com/features/mastering-markdown/), select a template crafted by a designer, and publish. After your page is generated, you can check out the new `gh-pages` branch locally. If you’re using GitHub Desktop, simply sync your repository and you’ll see the new branch.\r\n\r\n### Designer Templates\r\nWe’ve crafted some handsome templates for you to use. Go ahead and click 'Continue to layouts' to browse through them. You can easily go back to edit your page before publishing. After publishing your page, you can revisit the page generator and switch to another theme. Your Page content will be preserved.\r\n\r\n### Creating pages manually\r\nIf you prefer to not use the automatic generator, push a branch named `gh-pages` to your repository to create a page manually. In addition to supporting regular HTML content, GitHub Pages support Jekyll, a simple, blog aware static site generator. Jekyll makes it easy to create site-wide headers and footers without having to copy them across every page. It also offers intelligent blog support and other advanced templating features.\r\n\r\n### Authors and Contributors\r\nYou can @mention a GitHub username to generate a link to their profile. The resulting `` element will link to the contributor’s GitHub Profile. For example: In 2007, Chris Wanstrath (@defunkt), PJ Hyett (@pjhyett), and Tom Preston-Werner (@mojombo) founded GitHub.\r\n\r\n### Support or Contact\r\nHaving trouble with Pages? Check out our [documentation](https://help.github.com/pages) or [contact support](https://github.com/contact) and we’ll help you sort it out.\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."} \ No newline at end of file From c0b7c2be48a092caee5802aa09fc408462f9c200 Mon Sep 17 00:00:00 2001 From: xieguigang Date: Mon, 5 Jun 2017 18:55:05 +0800 Subject: [PATCH 02/33] very simple parser --- .vs/VSWorkspaceState.json | 6 +++++ R/R.sln | 2 +- R/R/Module1.vb | 3 +-- R/R/R.vbproj | 2 +- R/R/TokenIcer.vb | 48 ++++++++++++++++++++++++++++----------- 5 files changed, 44 insertions(+), 17 deletions(-) create mode 100644 .vs/VSWorkspaceState.json diff --git a/.vs/VSWorkspaceState.json b/.vs/VSWorkspaceState.json new file mode 100644 index 000000000..6b6114114 --- /dev/null +++ b/.vs/VSWorkspaceState.json @@ -0,0 +1,6 @@ +{ + "ExpandedNodes": [ + "" + ], + "PreviewInSolutionExplorer": false +} \ No newline at end of file diff --git a/R/R.sln b/R/R.sln index e6d995acc..ffc6ec51a 100644 --- a/R/R.sln +++ b/R/R.sln @@ -5,7 +5,7 @@ VisualStudioVersion = 15.0.26430.12 MinimumVisualStudioVersion = 10.0.40219.1 Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "R", "R\R.vbproj", "{0C2EB77C-39F2-460D-A3F8-CE905F867637}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "+Microsoft.VisualBasic.Architecture.Framework", "..\..\Source\Repos\sciBASIC\Microsoft.VisualBasic.Architecture.Framework\+Microsoft.VisualBasic.Architecture.Framework.vbproj", "{FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "+Microsoft.VisualBasic.Architecture.Framework", "..\..\..\Source\Repos\sciBASIC\Microsoft.VisualBasic.Architecture.Framework\+Microsoft.VisualBasic.Architecture.Framework.vbproj", "{FECCE1FD-E1D4-49E3-A668-60BB5E7AED99}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/R/R/Module1.vb b/R/R/Module1.vb index 5d7e3a343..c08a73941 100644 --- a/R/R/Module1.vb +++ b/R/R/Module1.vb @@ -1,7 +1,6 @@ Module Module1 Sub Main() - + Call TokenIcer.Parse("var x <- ""33333333"";").First.GetSourceTree.SaveTo("x:\test.xml") End Sub - End Module diff --git a/R/R/R.vbproj b/R/R/R.vbproj index 2d8384988..13cff5adc 100644 --- a/R/R/R.vbproj +++ b/R/R/R.vbproj @@ -107,7 +107,7 @@ - + {fecce1fd-e1d4-49e3-a668-60bb5e7aed99} +Microsoft.VisualBasic.Architecture.Framework diff --git a/R/R/TokenIcer.vb b/R/R/TokenIcer.vb index e220718f7..5cebc7f4b 100644 --- a/R/R/TokenIcer.vb +++ b/R/R/TokenIcer.vb @@ -1,4 +1,5 @@ Imports System.Runtime.CompilerServices +Imports System.Xml.Serialization Imports Microsoft.VisualBasic.Emit.Marshal Imports Microsoft.VisualBasic.Language Imports Microsoft.VisualBasic.Scripting.TokenIcer @@ -17,7 +18,7 @@ Public Module TokenIcer Do While Not buffer.EndRead Dim c As Char = +buffer - If QuotOpen Then + If QuotOpen Then ' 当前所解析的状态为字符串解析 If c = ASCII.Quot AndAlso Not tmp.StartEscaping Then ' 当前的字符为双引号,并且不是转义状态,则结束字符串 tokens += New langToken With { @@ -25,23 +26,43 @@ Public Module TokenIcer .Value = New String(tmp) } tmp *= 0 + QuotOpen = False + Else + ' 任然是字符串之中的一部分字符,则继续添加进入tmp之中 + tmp += c End If - End If - If Not QuotOpen AndAlso c = ASCII.Quot Then - QuotOpen = True - Continue Do - End If - If c = ";"c Then - ' 结束当前的statement的解析 - last = New Statement With { - .Tokens = tokens - } - tokens *= 0 + Else + ' 遇见了字符串的起始的第一个双引号 + If Not QuotOpen AndAlso c = ASCII.Quot Then + QuotOpen = True + Else + ' 遇见了语句的结束符号 + If c = ";"c Then + ' 结束当前的statement的解析 + last = New Statement With { + .Tokens = tokens + } + tokens *= 0 - Yield last + Yield last + ElseIf c = " "c OrElse c = ASCII.TAB Then + ' 遇见了空格,结束当前的token + tokens += New langToken With { + .Name = LanguageTokens.Identifier, + .Value = New String(tmp) + } + tmp *= 0 + Else + tmp += c + End If + End If End If Loop End Function + + Public Function GetSourceTree(s As Statement) As String + Return s.GetXml + End Function End Module ''' @@ -49,6 +70,7 @@ End Module ''' Public Class Statement + Public Tokens As langToken() ''' ''' 堆栈 From e5bfb8d8cb3ae38c0deb143254c83d0e6b8a563f Mon Sep 17 00:00:00 2001 From: xieguigang Date: Mon, 5 Jun 2017 18:57:44 +0800 Subject: [PATCH 03/33] adjust xml layout --- R/R/TokenIcer.vb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/R/R/TokenIcer.vb b/R/R/TokenIcer.vb index 5cebc7f4b..266c4c67c 100644 --- a/R/R/TokenIcer.vb +++ b/R/R/TokenIcer.vb @@ -12,7 +12,7 @@ Public Module TokenIcer Dim buffer As New Pointer(Of Char)(Trim(s$)) Dim QuotOpen As Boolean = False Dim tmp As New List(Of Char) - Dim tokens As New List(Of Token(Of LanguageTokens)) + Dim tokens As New List(Of langToken) Dim last As Statement Do While Not buffer.EndRead @@ -71,11 +71,11 @@ End Module Public Class Statement - Public Tokens As langToken() + Public Property Tokens As langToken() ''' ''' 堆栈 ''' - Public Child As Statement + Public Property Child As Statement End Class From 5b561ca061b0ed6162ace0ec4b5d8d9fb4a97d4f Mon Sep 17 00:00:00 2001 From: xieguigang Date: Mon, 5 Jun 2017 19:07:13 +0800 Subject: [PATCH 04/33] test on variable declare --- R/R/TokenIcer.vb | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/R/R/TokenIcer.vb b/R/R/TokenIcer.vb index 266c4c67c..e8be96f16 100644 --- a/R/R/TokenIcer.vb +++ b/R/R/TokenIcer.vb @@ -14,6 +14,13 @@ Public Module TokenIcer Dim tmp As New List(Of Char) Dim tokens As New List(Of langToken) Dim last As Statement + Dim varDefInit = Function() + If tokens.Count = 0 AndAlso tmp.SequenceEqual("var") Then + Return True + Else + Return False + End If + End Function Do While Not buffer.EndRead Dim c As Char = +buffer @@ -47,10 +54,18 @@ Public Module TokenIcer Yield last ElseIf c = " "c OrElse c = ASCII.TAB Then ' 遇见了空格,结束当前的token - tokens += New langToken With { - .Name = LanguageTokens.Identifier, - .Value = New String(tmp) - } + If varDefInit() Then + tokens += New langToken With { + .Name = LanguageTokens.var, + .Value = "var" + } + Else + tokens += New langToken With { + .Name = LanguageTokens.Identifier, + .Value = New String(tmp) + } + End If + tmp *= 0 Else tmp += c @@ -94,6 +109,9 @@ Public Enum LanguageTokens StackClose BracketOpen BracketClose + ''' + ''' Variable declare init + ''' var ''' ''' 字符串值 From 7f0df556e535d3e0495d9715b905c8ceac9f3230 Mon Sep 17 00:00:00 2001 From: xieguigang Date: Mon, 5 Jun 2017 19:12:06 +0800 Subject: [PATCH 05/33] improvements on the parser tree --- R/R/TokenIcer.vb | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/R/R/TokenIcer.vb b/R/R/TokenIcer.vb index e8be96f16..3d0be0550 100644 --- a/R/R/TokenIcer.vb +++ b/R/R/TokenIcer.vb @@ -21,6 +21,21 @@ Public Module TokenIcer Return False End If End Function + Dim newToken = + Sub() + ' 创建除了字符串之外的其他的token + If varDefInit() Then + tokens += New langToken(LanguageTokens.var, "var") + ElseIf tmp.SequenceEqual("<-") Then + tokens += New langToken(LanguageTokens.LeftAssign, "<-") + Else + tokens += New langToken(LanguageTokens.Identifier) With { + .Value = New String(tmp) + } + End If + + tmp *= 0 + End Sub Do While Not buffer.EndRead Dim c As Char = +buffer @@ -54,19 +69,7 @@ Public Module TokenIcer Yield last ElseIf c = " "c OrElse c = ASCII.TAB Then ' 遇见了空格,结束当前的token - If varDefInit() Then - tokens += New langToken With { - .Name = LanguageTokens.var, - .Value = "var" - } - Else - tokens += New langToken With { - .Name = LanguageTokens.Identifier, - .Value = New String(tmp) - } - End If - - tmp *= 0 + newToken() Else tmp += c End If From bab571c4105fcb74922e2f51acccc165c12fb89a Mon Sep 17 00:00:00 2001 From: xieguigang Date: Mon, 5 Jun 2017 19:37:17 +0800 Subject: [PATCH 06/33] fix empty token --- R/R/Module1.vb | 2 +- R/R/TokenIcer.vb | 24 ++++++++++++++++++++++-- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/R/R/Module1.vb b/R/R/Module1.vb index c08a73941..4316623b9 100644 --- a/R/R/Module1.vb +++ b/R/R/Module1.vb @@ -1,6 +1,6 @@ Module Module1 Sub Main() - Call TokenIcer.Parse("var x <- ""33333333"";").First.GetSourceTree.SaveTo("x:\test.xml") + Call TokenIcer.Parse("var x <- ""33333333"" & 33:ToString(""F2"");").First.GetSourceTree.SaveTo("x:\test.xml") End Sub End Module diff --git a/R/R/TokenIcer.vb b/R/R/TokenIcer.vb index 3d0be0550..f2632a0b4 100644 --- a/R/R/TokenIcer.vb +++ b/R/R/TokenIcer.vb @@ -23,6 +23,10 @@ Public Module TokenIcer End Function Dim newToken = Sub() + If tmp.Count = 0 Then + Return + End If + ' 创建除了字符串之外的其他的token If varDefInit() Then tokens += New langToken(LanguageTokens.var, "var") @@ -57,6 +61,7 @@ Public Module TokenIcer ' 遇见了字符串的起始的第一个双引号 If Not QuotOpen AndAlso c = ASCII.Quot Then QuotOpen = True + newToken() Else ' 遇见了语句的结束符号 If c = ";"c Then @@ -67,6 +72,18 @@ Public Module TokenIcer tokens *= 0 Yield last + ElseIf c = ":"c Then + ' 这是方法调用的符号 + newToken() + tokens += New langToken(LanguageTokens.methodCall, ":") + ElseIf c = "("c Then + ' 新的堆栈 + tokens += New langToken(LanguageTokens.StackOpen, "("c) + ElseIf c = ")"c Then + tokens += New langToken(LanguageTokens.StackClose, ")"c) + ElseIf c = "&"c Then + ' 字符串拼接 + tokens += New langToken(LanguageTokens.StringContact, "&") ElseIf c = " "c OrElse c = ASCII.TAB Then ' 遇见了空格,结束当前的token newToken() @@ -91,14 +108,15 @@ Public Class Statement Public Property Tokens As langToken() ''' - ''' 堆栈 + ''' if/for/do/function堆栈 ''' - Public Property Child As Statement + Public Property Child As Statement() End Class Public Enum LanguageTokens + undefine ''' ''' 允许使用小数点作为变量名称的一部分 ''' @@ -108,10 +126,12 @@ Public Enum LanguageTokens ''' LeftAssign ParameterAssign + methodCall StackOpen StackClose BracketOpen BracketClose + StringContact ''' ''' Variable declare init ''' From bf321267fdf6c3f7a22a874765b4c88e46bedc53 Mon Sep 17 00:00:00 2001 From: xieguigang Date: Mon, 5 Jun 2017 19:38:41 +0800 Subject: [PATCH 07/33] fix for method call --- R/R/TokenIcer.vb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/R/R/TokenIcer.vb b/R/R/TokenIcer.vb index f2632a0b4..9f64fb0ed 100644 --- a/R/R/TokenIcer.vb +++ b/R/R/TokenIcer.vb @@ -78,8 +78,10 @@ Public Module TokenIcer tokens += New langToken(LanguageTokens.methodCall, ":") ElseIf c = "("c Then ' 新的堆栈 + newToken() tokens += New langToken(LanguageTokens.StackOpen, "("c) ElseIf c = ")"c Then + newToken() tokens += New langToken(LanguageTokens.StackClose, ")"c) ElseIf c = "&"c Then ' 字符串拼接 From 4dec21ecd40cdb6bd6b8c6db7b7a45eace0b0777 Mon Sep 17 00:00:00 2001 From: xieguigang Date: Mon, 5 Jun 2017 19:51:59 +0800 Subject: [PATCH 08/33] add closure parser --- R/R/Module1.vb | 10 +++++++++- R/R/TokenIcer.vb | 36 ++++++++++++++++++++++++++++++++++-- 2 files changed, 43 insertions(+), 3 deletions(-) diff --git a/R/R/Module1.vb b/R/R/Module1.vb index 4316623b9..204b30667 100644 --- a/R/R/Module1.vb +++ b/R/R/Module1.vb @@ -1,6 +1,14 @@ Module Module1 Sub Main() - Call TokenIcer.Parse("var x <- ""33333333"" & 33:ToString(""F2"");").First.GetSourceTree.SaveTo("x:\test.xml") + Call TokenIcer.Parse(" +var x <- ""33333333"" & 33:ToString(""F2""); + +if (x:Length <= 10) { + println(x); +} +").ToArray _ +.GetSourceTree _ +.SaveTo("x:\test.xml") End Sub End Module diff --git a/R/R/TokenIcer.vb b/R/R/TokenIcer.vb index 9f64fb0ed..d271486cd 100644 --- a/R/R/TokenIcer.vb +++ b/R/R/TokenIcer.vb @@ -10,6 +10,12 @@ Public Module TokenIcer Public Iterator Function Parse(s$) As IEnumerable(Of Statement) Dim buffer As New Pointer(Of Char)(Trim(s$)) + Do While Not buffer.EndRead + Yield buffer.Parse(Nothing) + Loop + End Function + + Private Function Parse(buffer As Pointer(Of Char), ByRef parent As List(Of Statement)) As Statement Dim QuotOpen As Boolean = False Dim tmp As New List(Of Char) Dim tokens As New List(Of langToken) @@ -71,7 +77,11 @@ Public Module TokenIcer } tokens *= 0 - Yield last + If parent Is Nothing Then + Return last + Else + parent += last + End If ElseIf c = ":"c Then ' 这是方法调用的符号 newToken() @@ -86,6 +96,26 @@ Public Module TokenIcer ElseIf c = "&"c Then ' 字符串拼接 tokens += New langToken(LanguageTokens.StringContact, "&") + ElseIf c = "{"c Then + ' closure stack open + Dim childs As New List(Of Statement) + Call buffer.Parse(childs) + last = New Statement With { + .Tokens = tokens, + .Child = childs + } + tokens *= 0 + + Return last + ElseIf c = "}"c Then + ' closure stack close + ' 结束当前的statement,相当于分号 + last = New Statement With { + .Tokens = tokens + } + tokens *= 0 + parent += last ' 右花括号必定是结束堆栈 + Return Nothing ElseIf c = " "c OrElse c = ASCII.TAB Then ' 遇见了空格,结束当前的token newToken() @@ -95,9 +125,11 @@ Public Module TokenIcer End If End If Loop + + Return New Statement With {.Tokens = tokens} End Function - Public Function GetSourceTree(s As Statement) As String + Public Function GetSourceTree(s As Statement()) As String Return s.GetXml End Function End Module From 5b3447098e10caedd5c9a31ed9e17fdefebb91ab Mon Sep 17 00:00:00 2001 From: xieguigang Date: Mon, 5 Jun 2017 19:53:47 +0800 Subject: [PATCH 09/33] cr and lf using as token delimiter --- R/R/TokenIcer.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/R/TokenIcer.vb b/R/R/TokenIcer.vb index d271486cd..045d7f988 100644 --- a/R/R/TokenIcer.vb +++ b/R/R/TokenIcer.vb @@ -116,7 +116,7 @@ Public Module TokenIcer tokens *= 0 parent += last ' 右花括号必定是结束堆栈 Return Nothing - ElseIf c = " "c OrElse c = ASCII.TAB Then + ElseIf c = " "c OrElse c = ASCII.TAB OrElse c = ASCII.LF OrElse c = ASCII.CR Then ' 遇见了空格,结束当前的token newToken() Else From 4b839ee4b13c4d61915671a171971d132300a459 Mon Sep 17 00:00:00 2001 From: xieguigang Date: Mon, 5 Jun 2017 20:09:16 +0800 Subject: [PATCH 10/33] source tree parser test success --- R/R/Module1.vb | 6 ++++++ R/R/TokenIcer.vb | 10 +++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/R/R/Module1.vb b/R/R/Module1.vb index 204b30667..f11e44d22 100644 --- a/R/R/Module1.vb +++ b/R/R/Module1.vb @@ -6,6 +6,12 @@ var x <- ""33333333"" & 33:ToString(""F2""); if (x:Length <= 10) { println(x); + + test <- function(...) { + var gg <- ...; + var x <- ...; + var s <- x & global$x; + } } ").ToArray _ .GetSourceTree _ diff --git a/R/R/TokenIcer.vb b/R/R/TokenIcer.vb index 045d7f988..735c70e3f 100644 --- a/R/R/TokenIcer.vb +++ b/R/R/TokenIcer.vb @@ -72,6 +72,7 @@ Public Module TokenIcer ' 遇见了语句的结束符号 If c = ";"c Then ' 结束当前的statement的解析 + newToken() last = New Statement With { .Tokens = tokens } @@ -101,12 +102,15 @@ Public Module TokenIcer Dim childs As New List(Of Statement) Call buffer.Parse(childs) last = New Statement With { - .Tokens = tokens, + .Tokens = tokens.ToArray, .Child = childs } tokens *= 0 - - Return last + If Not parent Is Nothing Then + parent += last + Else + Return last + End If ElseIf c = "}"c Then ' closure stack close ' 结束当前的statement,相当于分号 From e057566f9fcd88d8a9a75c04f68285b20a724520 Mon Sep 17 00:00:00 2001 From: xieguigang Date: Mon, 5 Jun 2017 20:12:32 +0800 Subject: [PATCH 11/33] add more test success --- R/R/Module1.vb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/R/R/Module1.vb b/R/R/Module1.vb index f11e44d22..71c54f829 100644 --- a/R/R/Module1.vb +++ b/R/R/Module1.vb @@ -12,6 +12,12 @@ if (x:Length <= 10) { var x <- ...; var s <- x & global$x; } + + test(x = x, gg = x, s = x); +} + +do while(TRUE) { + cat("".""); } ").ToArray _ .GetSourceTree _ From 3c1d90e391a5c26b98993ab094ab57956cec22e9 Mon Sep 17 00:00:00 2001 From: xieguigang Date: Tue, 6 Jun 2017 07:56:06 +0800 Subject: [PATCH 12/33] split source files --- R/R/LangModels.vb | 45 +++++++++++++++++++++++++++++++++++++++++++++ R/R/R.vbproj | 1 + R/R/TokenIcer.vb | 43 ------------------------------------------- 3 files changed, 46 insertions(+), 43 deletions(-) create mode 100644 R/R/LangModels.vb diff --git a/R/R/LangModels.vb b/R/R/LangModels.vb new file mode 100644 index 000000000..4e2b24b9a --- /dev/null +++ b/R/R/LangModels.vb @@ -0,0 +1,45 @@ +Imports System.Xml.Serialization +Imports langToken = Microsoft.VisualBasic.Scripting.TokenIcer.Token(Of R.LanguageTokens) + +''' +''' +''' +Public Class Statement + + + Public Property Tokens As langToken() + ''' + ''' if/for/do/function堆栈 + ''' + Public Property Child As Statement() + +End Class + +Public Enum LanguageTokens + + undefine + ''' + ''' 允许使用小数点作为变量名称的一部分 + ''' + Identifier + ''' + ''' <- + ''' + LeftAssign + ParameterAssign + methodCall + StackOpen + StackClose + BracketOpen + BracketClose + StringContact + ''' + ''' Variable declare init + ''' + var + ''' + ''' 字符串值 + ''' + [String] + +End Enum \ No newline at end of file diff --git a/R/R/R.vbproj b/R/R/R.vbproj index 13cff5adc..cfe2b1ea0 100644 --- a/R/R/R.vbproj +++ b/R/R/R.vbproj @@ -69,6 +69,7 @@ + diff --git a/R/R/TokenIcer.vb b/R/R/TokenIcer.vb index 735c70e3f..a80c3be9b 100644 --- a/R/R/TokenIcer.vb +++ b/R/R/TokenIcer.vb @@ -137,46 +137,3 @@ Public Module TokenIcer Return s.GetXml End Function End Module - -''' -''' -''' -Public Class Statement - - - Public Property Tokens As langToken() - ''' - ''' if/for/do/function堆栈 - ''' - Public Property Child As Statement() - -End Class - -Public Enum LanguageTokens - - undefine - ''' - ''' 允许使用小数点作为变量名称的一部分 - ''' - Identifier - ''' - ''' <- - ''' - LeftAssign - ParameterAssign - methodCall - StackOpen - StackClose - BracketOpen - BracketClose - StringContact - ''' - ''' Variable declare init - ''' - var - ''' - ''' 字符串值 - ''' - [String] - -End Enum \ No newline at end of file From b96b980136ffd08090fe1927a04627572e35539e Mon Sep 17 00:00:00 2001 From: xieguigang Date: Tue, 6 Jun 2017 08:00:15 +0800 Subject: [PATCH 13/33] object renames --- R/R/LangModels.vb | 26 ++++++++++++++++++++++---- R/R/TokenIcer.vb | 7 +++---- 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/R/R/LangModels.vb b/R/R/LangModels.vb index 4e2b24b9a..0b2811c26 100644 --- a/R/R/LangModels.vb +++ b/R/R/LangModels.vb @@ -19,19 +19,37 @@ Public Enum LanguageTokens undefine ''' - ''' 允许使用小数点作为变量名称的一部分 + ''' identifier, value expression, etc.(允许使用小数点作为变量名称的一部分) ''' - Identifier + [Object] ''' ''' <- ''' LeftAssign + ''' + ''' = + ''' ParameterAssign + ''' + ''' : + ''' methodCall +#Region "{...}" StackOpen StackClose - BracketOpen - BracketClose +#End Region +#Region "(...)" + EvalOpen + EvalClose +#End Region +#Region "[...]" + IndexOpen + IndexClose +#End Region + + ''' + ''' & + ''' StringContact ''' ''' Variable declare init diff --git a/R/R/TokenIcer.vb b/R/R/TokenIcer.vb index a80c3be9b..843091090 100644 --- a/R/R/TokenIcer.vb +++ b/R/R/TokenIcer.vb @@ -1,5 +1,4 @@ Imports System.Runtime.CompilerServices -Imports System.Xml.Serialization Imports Microsoft.VisualBasic.Emit.Marshal Imports Microsoft.VisualBasic.Language Imports Microsoft.VisualBasic.Scripting.TokenIcer @@ -39,7 +38,7 @@ Public Module TokenIcer ElseIf tmp.SequenceEqual("<-") Then tokens += New langToken(LanguageTokens.LeftAssign, "<-") Else - tokens += New langToken(LanguageTokens.Identifier) With { + tokens += New langToken(LanguageTokens.Object) With { .Value = New String(tmp) } End If @@ -90,10 +89,10 @@ Public Module TokenIcer ElseIf c = "("c Then ' 新的堆栈 newToken() - tokens += New langToken(LanguageTokens.StackOpen, "("c) + tokens += New langToken(LanguageTokens.EvalOpen, "("c) ElseIf c = ")"c Then newToken() - tokens += New langToken(LanguageTokens.StackClose, ")"c) + tokens += New langToken(LanguageTokens.EvalClose, ")"c) ElseIf c = "&"c Then ' 字符串拼接 tokens += New langToken(LanguageTokens.StringContact, "&") From 3e6c71ca365b65705f9cc291517c408a3d0d235e Mon Sep 17 00:00:00 2001 From: Master Date: Tue, 6 Jun 2017 12:44:01 +0800 Subject: [PATCH 14/33] Create README.md --- README.md | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 000000000..3e218cc51 --- /dev/null +++ b/README.md @@ -0,0 +1,42 @@ +## R# language design + +###### Code comments + +```R +## This is code comments, it just only allow single line comments. +``` + +###### Variable + +Variable in ``R#`` should be declared by ``var`` keyword, and its value assign is force using ``<-`` operator: + +```R +var s <- "12345"; +var x <- {1, 2, 3, 4, 5}; +var m <- { + {1, 2, 3}, + {4, 5, 6}, + {7, 8, 9} +}; +``` + +Delcare a vector or matrix will no longer required of the ``c(...)`` function or ``matrix`` function. Almost keeps the same as the VisualBasic language it does: + +```vbnet +Dim s = "12345" +Dim x = {1, 2, 3, 4, 5} +Dim m = { + {1, 2, 3}, + {4, 5, 6}, + {7, 8, 9} +} +``` + +###### Get/Set value + +Get/Set property value keeps the same as the R language: + +```R +var names <- dataframe[, "name"]; +dataframe[, "name"] <- new.names; +``` From 36f3b6018eb1479aa43b1a02ec4ac55233ab2b9d Mon Sep 17 00:00:00 2001 From: Master Date: Tue, 6 Jun 2017 12:54:41 +0800 Subject: [PATCH 15/33] Update README.md --- README.md | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/README.md b/README.md index 3e218cc51..ad063fe22 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,10 @@ Dim m = { } ``` +###### Types + + + ###### Get/Set value Get/Set property value keeps the same as the R language: @@ -40,3 +44,40 @@ Get/Set property value keeps the same as the R language: var names <- dataframe[, "name"]; dataframe[, "name"] <- new.names; ``` + +###### String + +Add new string contact and string interploate feature for ``R#``: + +``` +var name <- first.name & " " & last.name; +# or +var my.name <- "{first.name} {last.name}"; +# sprintf function is still avaliable +var his.name <- sprintf("%s %s", first.name, last.name); +``` + +###### Logical operators + ++ and, andalso ++ or, orelse ++ not + +```R +if (x <= 10 andalso y != 99) { + # ...... +} else if(not z is null) { + # ...... +} +``` + +###### Simple external calls + +Makes more easier for calls external command from CLI, apply a ``@`` operator on a string vector will makes an external system calls: + +``` +var exitCode <- @"/bin/GCModeller/localblast /blastp /query \"{query.fasta}\" /subject \"{COG_myva}\" /out \"{COG_myva.csv}\""; +# or +var CLI <- "/bin/GCModeller/localblast /blastp /query \"{query.fasta}\" /subject \"{COG_myva}\" /out \"{COG_myva.csv}\""; +var exitCode <- @CLI; +``` From aa502bed518162b6a80a846dc6002710f9397258 Mon Sep 17 00:00:00 2001 From: Master Date: Tue, 6 Jun 2017 13:01:00 +0800 Subject: [PATCH 16/33] Update README.md --- README.md | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ad063fe22..1907b99f2 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,7 @@ dataframe[, "name"] <- new.names; Add new string contact and string interploate feature for ``R#``: -``` +```R var name <- first.name & " " & last.name; # or var my.name <- "{first.name} {last.name}"; @@ -71,11 +71,37 @@ if (x <= 10 andalso y != 99) { } ``` +###### Operator binding + +Allows you bind operator on your custom type: + +```R +var me <- list() + +with me { + %+% <- function($, other) { + } + %is% <- function($, other) { + } +} + +# and then using the operator + +var new.me <- me + other; +var detecte <- me is other; + +if (not me is him) { + # ...... +} +``` + +Allows + ###### Simple external calls Makes more easier for calls external command from CLI, apply a ``@`` operator on a string vector will makes an external system calls: -``` +```R var exitCode <- @"/bin/GCModeller/localblast /blastp /query \"{query.fasta}\" /subject \"{COG_myva}\" /out \"{COG_myva.csv}\""; # or var CLI <- "/bin/GCModeller/localblast /blastp /query \"{query.fasta}\" /subject \"{COG_myva}\" /out \"{COG_myva.csv}\""; From 3d05e34a37dad41c7641a8da70c53f704b026f76 Mon Sep 17 00:00:00 2001 From: Master Date: Tue, 6 Jun 2017 14:08:09 +0800 Subject: [PATCH 17/33] Update README.md --- README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 1907b99f2..4b8a122cd 100644 --- a/README.md +++ b/README.md @@ -76,9 +76,8 @@ if (x <= 10 andalso y != 99) { Allows you bind operator on your custom type: ```R -var me <- list() - -with me { +# binding operator only allows in the with closure in the object declare statement +var me <- list() with { %+% <- function($, other) { } %is% <- function($, other) { From f1c9b6d02e91b7d9681ce3bd891ec245f0488e0b Mon Sep 17 00:00:00 2001 From: Master Date: Tue, 6 Jun 2017 14:11:13 +0800 Subject: [PATCH 18/33] Update README.md --- README.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4b8a122cd..2e15cb3c6 100644 --- a/README.md +++ b/README.md @@ -86,8 +86,8 @@ var me <- list() with { # and then using the operator -var new.me <- me + other; -var detecte <- me is other; +var new.me <- me + other; +var predicate <- me is other; if (not me is him) { # ...... @@ -96,6 +96,9 @@ if (not me is him) { Allows ++-*/\%^ +is like in which + ###### Simple external calls Makes more easier for calls external command from CLI, apply a ``@`` operator on a string vector will makes an external system calls: From 6c5c021d53b302d5f7deca0f287c92c070948178 Mon Sep 17 00:00:00 2001 From: Master Date: Tue, 6 Jun 2017 17:03:28 +0800 Subject: [PATCH 19/33] Update README.md --- README.md | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 2e15cb3c6..2d17090f0 100644 --- a/README.md +++ b/README.md @@ -94,10 +94,21 @@ if (not me is him) { } ``` -Allows - -+-*/\%^ -is like in which +Allows user operator + +|Operator |Description | +|---------|---------------------| +|``+`` | add | +|``-`` | substract | +|``*`` | multiply | +|``/`` | devide | +|``\`` | integer devide | +|``%`` | mod | +|``^`` | power | +|``is`` | object equals | +|``like`` | object similarity | +|``in`` | collection set | +|``which``| index list for true | ###### Simple external calls From d65b09814378da4ceea7ad1eeb014818c7119df2 Mon Sep 17 00:00:00 2001 From: Master Date: Tue, 6 Jun 2017 17:19:09 +0800 Subject: [PATCH 20/33] Update README.md --- README.md | 36 ++++++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 2d17090f0..f9581c39e 100644 --- a/README.md +++ b/README.md @@ -110,13 +110,45 @@ Allows user operator |``in`` | collection set | |``which``| index list for true | +###### IN operator + +```R +# in list +var booleans <- name in names(obj); +# in range +var booleans <- x in [min, max]; +``` + +###### combine Which operator + +```R +var x <- {1, 2, 3, 4, 5}; +var indices.true <- which x in [min, max]; +``` + ###### Simple external calls Makes more easier for calls external command from CLI, apply a ``@`` operator on a string vector will makes an external system calls: ```R -var exitCode <- @"/bin/GCModeller/localblast /blastp /query \"{query.fasta}\" /subject \"{COG_myva}\" /out \"{COG_myva.csv}\""; +var [exitCode, stdout] <- @"/bin/GCModeller/localblast /blastp /query \"{query.fasta}\" /subject \"{COG_myva}\" /out \"{COG_myva.csv}\""; # or var CLI <- "/bin/GCModeller/localblast /blastp /query \"{query.fasta}\" /subject \"{COG_myva}\" /out \"{COG_myva.csv}\""; -var exitCode <- @CLI; +var [exitCode, stdout] <- @CLI; +``` + +###### Using tuple + +Tuple enable the R function returns multiple value at once: + +```R +tuple.test <- function(a as integer, b as integer) { + return [a, b, a^b]; +} + +var [a, b, c] <- tuple.test(3, 2); + +if (a == 3) { + c = c + a + b; +} ``` From 6f764f3c1acb0fbf060ae49f92351efde6cf865f Mon Sep 17 00:00:00 2001 From: xieguigang Date: Tue, 6 Jun 2017 18:20:40 +0800 Subject: [PATCH 21/33] add license file --- CONTRIBUTING.md | 4 + LICENSE | 675 ++++++++++++++++++++++++++++++++++++++++++++++++ license.txt | 12 - 3 files changed, 679 insertions(+), 12 deletions(-) create mode 100644 CONTRIBUTING.md create mode 100644 LICENSE delete mode 100644 license.txt diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..9237fc19a --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,4 @@ +## CodeStyling Guidelines + +When contributing to the [**sciBASIC#**](http://github.com/xieguigang/sciBASIC) project, If possible, please follow this [**sciBASIC Code Style Guidelines**](https://github.com/xieguigang/sciBASIC/tree/master/docs/vb_codestyle). We have been using this coding style for many years, please make your patches conform to these guidelines. + diff --git a/LICENSE b/LICENSE new file mode 100644 index 000000000..733c07236 --- /dev/null +++ b/LICENSE @@ -0,0 +1,675 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + {one line to give the program's name and a brief idea of what it does.} + Copyright (C) {year} {name of author} + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + {project} Copyright (C) {year} {fullname} + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. + diff --git a/license.txt b/license.txt deleted file mode 100644 index da76ca0a9..000000000 --- a/license.txt +++ /dev/null @@ -1,12 +0,0 @@ -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . \ No newline at end of file From 07360f22b2ed83336811e3e9049ca7e511c921ba Mon Sep 17 00:00:00 2001 From: xieguigang Date: Tue, 6 Jun 2017 18:29:50 +0800 Subject: [PATCH 22/33] syntax description of the R object to tuple --- README.md | 43 +++++++++++++++++++++++++++++++++++++++---- 1 file changed, 39 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index f9581c39e..588e432cb 100644 --- a/README.md +++ b/README.md @@ -14,8 +14,8 @@ Variable in ``R#`` should be declared by ``var`` keyword, and its value assign i var s <- "12345"; var x <- {1, 2, 3, 4, 5}; var m <- { - {1, 2, 3}, - {4, 5, 6}, + {1, 2, 3}, + {4, 5, 6}, {7, 8, 9} }; ``` @@ -26,8 +26,8 @@ Delcare a vector or matrix will no longer required of the ``c(...)`` function or Dim s = "12345" Dim x = {1, 2, 3, 4, 5} Dim m = { - {1, 2, 3}, - {4, 5, 6}, + {1, 2, 3}, + {4, 5, 6}, {7, 8, 9} } ``` @@ -152,3 +152,38 @@ if (a == 3) { c = c + a + b; } ``` + +###### R object to tuple + +You can naturally convert the object as tuple value. The member in the tuple their name should matched the names in an object, so that you can doing something like this example in ``R#``: + +```R +var obj <- list() with { + $a <- 333; + $b <- 999; +} +var [a, b] <- obj; +``` + +But, wait, if the property in an object is not a valid identifier name in ``R#``? Don't worried, you can using alias: + +```R +var obj <- list() with { + $"112233+5" <- 999; + $x <- 1; +} +var [a as "112233+5", b as "x"] <- obj; +``` + +The tuple feature is espacially useful in operates the dataframe: + +```R +var d <- data.frame( + a = {1,2,3}, + b = {"a","g","y"}, + t = {TRUE, TRUE, FALSE}); + +for([a,b,c] in d) { + println("%s = %s ? (%s)", a,b,c); +} +``` \ No newline at end of file From b02c7c26a64bd6f5ca3a061d898d47051571d2fa Mon Sep 17 00:00:00 2001 From: xieguigang Date: Tue, 6 Jun 2017 18:59:46 +0800 Subject: [PATCH 23/33] types --- README.md | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 588e432cb..788e297b8 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,26 @@ Dim m = { ###### Types +``R#`` language have sevral primitive type: ++ ``integer``, System.Int64 vector ++ ``double``, System.Double vector ++ ``uinteger``, System.UInt64 vector ++ ``string``, System.String vector ++ ``char``, System.Char vector ++ ``boolean``, System.Boolean vector + +And you can declare the user type by using ``list()`` function, example like: + +```R +var obj <- list(); + +# using with for object property initialize +var obj <- list() with { + $a <- 123; + $b <- "+++"; +} +``` ###### Get/Set value @@ -186,4 +205,8 @@ var d <- data.frame( for([a,b,c] in d) { println("%s = %s ? (%s)", a,b,c); } -``` \ No newline at end of file + +var [a, b, booleans as "t"] <- d; +``` + +If the tuple is applied on a for loop, then it means convert each row in dataframe as tuple, or just applied the tuple on the var declaring, then it means converts the columns in dataframe as the tuple, so that the variable in tuple is a vector with nrows of the dataframe. \ No newline at end of file From afa206be586bec867eec76756dcac9d6635da828 Mon Sep 17 00:00:00 2001 From: xieguigang Date: Tue, 6 Jun 2017 19:03:18 +0800 Subject: [PATCH 24/33] function types --- README.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/README.md b/README.md index 788e297b8..be1b1d887 100644 --- a/README.md +++ b/README.md @@ -55,6 +55,22 @@ var obj <- list() with { } ``` +generally, the parameter in a function is a generic type, so that a function definition like: + +```R +test <- function(x) { +} +``` + +can accept any type you have input. but you can using the ``param as `` for limit the type as a specific type: + +```R +test.integer <- function(x as integer) { + # the type constraint means the parameter only allow the integer vector type + # if the parameter is a string vector, then the interpreter will throw exceptions. +} +``` + ###### Get/Set value Get/Set property value keeps the same as the R language: From 30d0c0c0bea556f121965088cf217a4dbdac5b0e Mon Sep 17 00:00:00 2001 From: xieguigang Date: Tue, 6 Jun 2017 19:05:55 +0800 Subject: [PATCH 25/33] doc improvemenmts --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index be1b1d887..e91af2ddb 100644 --- a/README.md +++ b/README.md @@ -154,7 +154,7 @@ var booleans <- name in names(obj); var booleans <- x in [min, max]; ``` -###### combine Which operator +###### combine with ``Which`` operator ```R var x <- {1, 2, 3, 4, 5}; @@ -167,7 +167,8 @@ Makes more easier for calls external command from CLI, apply a ``@`` operator on ```R var [exitCode, stdout] <- @"/bin/GCModeller/localblast /blastp /query \"{query.fasta}\" /subject \"{COG_myva}\" /out \"{COG_myva.csv}\""; -# or + +# or makes it more clear to read var CLI <- "/bin/GCModeller/localblast /blastp /query \"{query.fasta}\" /subject \"{COG_myva}\" /out \"{COG_myva.csv}\""; var [exitCode, stdout] <- @CLI; ``` From 242b4a2cba8662069a1b8eecaf2412665c5e1497 Mon Sep 17 00:00:00 2001 From: xieguigang Date: Tue, 6 Jun 2017 19:22:29 +0800 Subject: [PATCH 26/33] [] bracket --- README.md | 39 +++++++++++++++++++++++++++++++++++---- 1 file changed, 35 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index e91af2ddb..2c4e0b09c 100644 --- a/README.md +++ b/README.md @@ -161,6 +161,37 @@ var x <- {1, 2, 3, 4, 5}; var indices.true <- which x in [min, max]; ``` +###### ``[]`` bracket in R language + +Global variable: + +```R +var g <- "test"; + +test <- function(g as integer) { + # just like the VisualBasic language, you can using [] bracket + # for eliminates the object identifier conflicts in R language. + # string contact of the parameter g with global variable [g] + return g:ToString("F2") & [g]; +} +``` + +Range generator: + +```R +if (mz in [mz.min, mz.max]) { + # range generator only allows numeric type +} +``` + +tuple variable: + +```R +# run commandline using @ operator in R +var prot.fasta = "/home/biostack/sample.fasta"; +var [exitCode, std_out] <- @"makeblastdb -in \"{prot.fasta}\" -dbtype prot"; +``` + ###### Simple external calls Makes more easier for calls external command from CLI, apply a ``@`` operator on a string vector will makes an external system calls: @@ -215,12 +246,12 @@ The tuple feature is espacially useful in operates the dataframe: ```R var d <- data.frame( - a = {1,2,3}, - b = {"a","g","y"}, + a = {1, 2, 3}, + b = {"a", "g", "y"}, t = {TRUE, TRUE, FALSE}); -for([a,b,c] in d) { - println("%s = %s ? (%s)", a,b,c); +for([a, b, c as "t"] in d) { + println("%s = %s ? (%s)", a, b, c); } var [a, b, booleans as "t"] <- d; From b3981698c42840cbffb94cbed4083cc9b7dde30d Mon Sep 17 00:00:00 2001 From: xieguigang Date: Tue, 6 Jun 2017 19:41:04 +0800 Subject: [PATCH 27/33] pipeline --- README.md | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/README.md b/README.md index 2c4e0b09c..56e3df8b0 100644 --- a/README.md +++ b/README.md @@ -145,6 +145,45 @@ Allows user operator |``in`` | collection set | |``which``| index list for true | +###### pipeline operator + +Extension caller chain in VisualBasic is also named as function pipeline + +```vbnet + Function test1(x) +End Function + + Function test2(x, y) +End Function + + Function test3(a) +End Function + +Dim result = "hello world!" + .test1 + .test2(99) + .test3 +``` + +All of the R function which have at least one parameter can be using in pipeline mode, using ``|`` as the pipeline operator: + +```R +test1 <- function(x) { +} +test2 <- function(x, y) { +} +test3 <- function(a) { +} + +# Doing the exactly the same as VisualBasic pipeline in R language: +var result <- "hello world!" + |test1 + |test2(99) + |test3; +# or you can just using the R function in normal way, and it is much complicated to read: +var result <- test3(test2(test1("hello world"), 99)); +``` + ###### IN operator ```R From 8cb6d3da7b1a1bd2b5b37046a1abe71d2f549b71 Mon Sep 17 00:00:00 2001 From: xieguigang Date: Tue, 6 Jun 2017 19:42:32 +0800 Subject: [PATCH 28/33] fix tab indent --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 56e3df8b0..fe42dea10 100644 --- a/README.md +++ b/README.md @@ -160,7 +160,7 @@ End Function End Function Dim result = "hello world!" - .test1 + .test1 .test2(99) .test3 ``` @@ -177,7 +177,7 @@ test3 <- function(a) { # Doing the exactly the same as VisualBasic pipeline in R language: var result <- "hello world!" - |test1 + |test1 |test2(99) |test3; # or you can just using the R function in normal way, and it is much complicated to read: From 5eb3953efcf121ebf887099176f72c6271549c36 Mon Sep 17 00:00:00 2001 From: xieguigang Date: Tue, 6 Jun 2017 19:49:26 +0800 Subject: [PATCH 29/33] CLI calls --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index fe42dea10..77bca3e0c 100644 --- a/README.md +++ b/README.md @@ -209,7 +209,7 @@ var g <- "test"; test <- function(g as integer) { # just like the VisualBasic language, you can using [] bracket - # for eliminates the object identifier conflicts in R language. + # for eliminates the object identifier conflicts in R language. # string contact of the parameter g with global variable [g] return g:ToString("F2") & [g]; } @@ -233,7 +233,7 @@ var [exitCode, std_out] <- @"makeblastdb -in \"{prot.fasta}\" -dbtype prot"; ###### Simple external calls -Makes more easier for calls external command from CLI, apply a ``@`` operator on a string vector will makes an external system calls: +The ``R#`` language makes more easier for calling external command from CLI, apply a ``@`` operator on a string vector will makes an external system calls: ```R var [exitCode, stdout] <- @"/bin/GCModeller/localblast /blastp /query \"{query.fasta}\" /subject \"{COG_myva}\" /out \"{COG_myva.csv}\""; From 7a9f901d0b6bc72e2e600cddf04e393409bc5948 Mon Sep 17 00:00:00 2001 From: xieguigang Date: Tue, 6 Jun 2017 20:14:39 +0800 Subject: [PATCH 30/33] add operator supports --- R/R/LangModels.vb | 9 ++++++++- R/R/Module1.vb | 3 ++- R/R/TokenIcer.vb | 26 ++++++++++++++++++++++++++ 3 files changed, 36 insertions(+), 2 deletions(-) diff --git a/R/R/LangModels.vb b/R/R/LangModels.vb index 0b2811c26..0d8e6e622 100644 --- a/R/R/LangModels.vb +++ b/R/R/LangModels.vb @@ -6,11 +6,12 @@ Imports langToken = Microsoft.VisualBasic.Scripting.TokenIcer.Token(Of R.Languag ''' Public Class Statement - + Public Property Tokens As langToken() ''' ''' if/for/do/function堆栈 ''' + Public Property Child As Statement() End Class @@ -30,10 +31,16 @@ Public Enum LanguageTokens ''' = ''' ParameterAssign + [Operator] ''' ''' : ''' methodCall + ''' + ''' , + ''' + ParameterDelimiter + #Region "{...}" StackOpen StackClose diff --git a/R/R/Module1.vb b/R/R/Module1.vb index 71c54f829..ab0c4ec75 100644 --- a/R/R/Module1.vb +++ b/R/R/Module1.vb @@ -2,6 +2,7 @@ Sub Main() Call TokenIcer.Parse(" +var x <- {1, 2, 3, 4, 5}; var x <- ""33333333"" & 33:ToString(""F2""); if (x:Length <= 10) { @@ -16,7 +17,7 @@ if (x:Length <= 10) { test(x = x, gg = x, s = x); } -do while(TRUE) { +do while(TRUE andalso t == ""123 + 555"") { cat("".""); } ").ToArray _ diff --git a/R/R/TokenIcer.vb b/R/R/TokenIcer.vb index 843091090..7b246fee4 100644 --- a/R/R/TokenIcer.vb +++ b/R/R/TokenIcer.vb @@ -26,6 +26,13 @@ Public Module TokenIcer Return False End If End Function + Dim bufferEquals = Function(c As Char) + If tmp.Count = 1 AndAlso tmp.First = c Then + Return True + Else + Return False + End If + End Function Dim newToken = Sub() If tmp.Count = 0 Then @@ -95,7 +102,26 @@ Public Module TokenIcer tokens += New langToken(LanguageTokens.EvalClose, ")"c) ElseIf c = "&"c Then ' 字符串拼接 + newToken() tokens += New langToken(LanguageTokens.StringContact, "&") + ElseIf c = ","c Then + newToken() + tokens += New langToken(LanguageTokens.ParameterDelimiter, ",") + ElseIf c = "="c Then + If bufferEquals("<"c) Then + tokens += New langToken(LanguageTokens.Operator, "<=") + tmp *= 0 + ElseIf bufferEquals("="c) Then + tokens += New langToken(LanguageTokens.Operator, "==") + tmp *= 0 + Else + If tmp.Count = 0 Then + ' 可能是==的第一个等号,则只添加 + tmp += c + Else + newToken() + End If + End If ElseIf c = "{"c Then ' closure stack open Dim childs As New List(Of Statement) From bee0a8c7140c06fc5cb2bd0bdd01e66f7548558f Mon Sep 17 00:00:00 2001 From: xieguigang Date: Tue, 6 Jun 2017 20:27:34 +0800 Subject: [PATCH 31/33] not sure why yield empty statements --- R/R/LangModels.vb | 6 ++++++ R/R/TokenIcer.vb | 7 ++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/R/R/LangModels.vb b/R/R/LangModels.vb index 0d8e6e622..637999404 100644 --- a/R/R/LangModels.vb +++ b/R/R/LangModels.vb @@ -14,6 +14,12 @@ Public Class Statement Public Property Child As Statement() + Public ReadOnly Property IsEmpty As Boolean + Get + Return Tokens.IsNullOrEmpty AndAlso Child.IsNullOrEmpty + End Get + End Property + End Class Public Enum LanguageTokens diff --git a/R/R/TokenIcer.vb b/R/R/TokenIcer.vb index 7b246fee4..04bfb93dc 100644 --- a/R/R/TokenIcer.vb +++ b/R/R/TokenIcer.vb @@ -9,8 +9,12 @@ Public Module TokenIcer Public Iterator Function Parse(s$) As IEnumerable(Of Statement) Dim buffer As New Pointer(Of Char)(Trim(s$)) + Dim it As New Value(Of Statement) + Do While Not buffer.EndRead - Yield buffer.Parse(Nothing) + If Not (it = buffer.Parse(Nothing)) Is Nothing AndAlso Not (+it).IsEmpty Then + Yield it + End If Loop End Function @@ -139,6 +143,7 @@ Public Module TokenIcer ElseIf c = "}"c Then ' closure stack close ' 结束当前的statement,相当于分号 + newToken() last = New Statement With { .Tokens = tokens } From 3258024436acd8602606e2421837f8ff2409a2ee Mon Sep 17 00:00:00 2001 From: xieguigang Date: Tue, 6 Jun 2017 20:36:08 +0800 Subject: [PATCH 32/33] enable code comments --- R/R/LangModels.vb | 1 + R/R/Module1.vb | 10 ++++++++++ R/R/TokenIcer.vb | 17 +++++++++++++++++ 3 files changed, 28 insertions(+) diff --git a/R/R/LangModels.vb b/R/R/LangModels.vb index 637999404..4777012df 100644 --- a/R/R/LangModels.vb +++ b/R/R/LangModels.vb @@ -72,5 +72,6 @@ Public Enum LanguageTokens ''' 字符串值 ''' [String] + Comment End Enum \ No newline at end of file diff --git a/R/R/Module1.vb b/R/R/Module1.vb index ab0c4ec75..31190ec99 100644 --- a/R/R/Module1.vb +++ b/R/R/Module1.vb @@ -2,6 +2,16 @@ Sub Main() Call TokenIcer.Parse(" +# run commandline using @ operator in R +var prot.fasta = ""/home/biostack/sample.fasta""; +var [exitCode, std_out] <- @""makeblastdb -in \""{prot.fasta}\"" -dbtype prot""; + +test.integer <- function(x as integer) { + # the type constraint means the parameter only allow the integer vector type + # if the parameter is a string vector, then the interpreter will throw exceptions. +} + +var name <- first.name & "" "" & last.name; var x <- {1, 2, 3, 4, 5}; var x <- ""33333333"" & 33:ToString(""F2""); diff --git a/R/R/TokenIcer.vb b/R/R/TokenIcer.vb index 04bfb93dc..701f1bb58 100644 --- a/R/R/TokenIcer.vb +++ b/R/R/TokenIcer.vb @@ -20,6 +20,7 @@ Public Module TokenIcer Private Function Parse(buffer As Pointer(Of Char), ByRef parent As List(Of Statement)) As Statement Dim QuotOpen As Boolean = False + Dim commentOpen As Boolean = False ' 当出现注释符的时候,会一直持续到遇见换行符为止 Dim tmp As New List(Of Char) Dim tokens As New List(Of langToken) Dim last As Statement @@ -73,11 +74,27 @@ Public Module TokenIcer ' 任然是字符串之中的一部分字符,则继续添加进入tmp之中 tmp += c End If + ElseIf commentOpen Then + If c = ASCII.CR OrElse c = ASCII.LF Then + ' 遇见了换行符,则结束注释 + tokens += New langToken With { + .Name = LanguageTokens.Comment, + .Value = New String(tmp) + } + tmp *= 0 + commentOpen = False + Else + ' 任然是注释串之中的一部分字符,则继续添加进入tmp之中 + tmp += c + End If Else ' 遇见了字符串的起始的第一个双引号 If Not QuotOpen AndAlso c = ASCII.Quot Then QuotOpen = True newToken() + ElseIf Not commentOpen AndAlso c = "#"c Then + commentOpen = True + newToken() Else ' 遇见了语句的结束符号 If c = ";"c Then From edde5b1c7b6c5daf6363acbb4bd6e969422249c7 Mon Sep 17 00:00:00 2001 From: xieguigang Date: Tue, 6 Jun 2017 20:42:30 +0800 Subject: [PATCH 33/33] merge the brachet token types?? --- R/R/LangModels.vb | 4 ++++ R/R/TokenIcer.vb | 10 ++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/R/R/LangModels.vb b/R/R/LangModels.vb index 4777012df..ed35fa1ab 100644 --- a/R/R/LangModels.vb +++ b/R/R/LangModels.vb @@ -22,6 +22,10 @@ Public Class Statement End Class +Public Class Main + Public Property program As Statement() +End Class + Public Enum LanguageTokens undefine diff --git a/R/R/TokenIcer.vb b/R/R/TokenIcer.vb index 701f1bb58..45f42f14a 100644 --- a/R/R/TokenIcer.vb +++ b/R/R/TokenIcer.vb @@ -121,6 +121,12 @@ Public Module TokenIcer ElseIf c = ")"c Then newToken() tokens += New langToken(LanguageTokens.EvalClose, ")"c) + ElseIf c = "["c Then + newToken() + tokens += New langToken(LanguageTokens.IndexOpen, "["c) + ElseIf c = "]"c Then + newToken() + tokens += New langToken(LanguageTokens.IndexClose, "]"c) ElseIf c = "&"c Then ' 字符串拼接 newToken() @@ -180,7 +186,7 @@ Public Module TokenIcer Return New Statement With {.Tokens = tokens} End Function - Public Function GetSourceTree(s As Statement()) As String - Return s.GetXml + Public Function GetSourceTree(s As IEnumerable(Of Statement)) As String + Return New Main With {.program = s.ToArray}.GetXml End Function End Module
    -
    - View on GitHub - -

    Shoal

    -

    Shoal Shell Language for GCModeller Virtual Cell Programming

    - -
    - Download this project as a .zip file - Download this project as a tar.gz file -
    -
    -