From 0a93429800a3d567391de6968820721fd96d1e09 Mon Sep 17 00:00:00 2001 From: Gary Sharp Date: Fri, 1 Feb 2013 12:35:28 +1100 Subject: [PATCH] initial source commit --- Disco.BI/BI/AttachmentBI/Utilities.cs | 96 + Disco.BI/BI/DataStore.cs | 31 + Disco.BI/BI/DeviceBI/BatchUtilities.cs | 21 + Disco.BI/BI/DeviceBI/Enrol.cs | 621 + Disco.BI/BI/DeviceBI/EnrolSafeException.cs | 14 + Disco.BI/BI/DeviceBI/EnrolmentLog.cs | 482 + Disco.BI/BI/DeviceBI/Searching.cs | 56 + Disco.BI/BI/DisposableImageCollection.cs | 21 + .../DocumentTemplateQRCodeLocationCache.cs | 72 + .../DocumentUniqueIdentifier.cs | 203 + .../Importer/DocumentDropBoxMonitor.cs | 85 + .../Importer/DocumentImporterCleanCacheJob.cs | 63 + .../Importer/DocumentImporterJob.cs | 120 + .../Importer/DocumentImporterLog.cs | 304 + Disco.BI/BI/DocumentTemplateBI/Utilities.cs | 49 + .../EvaluateExpressionParseException.cs | 27 + .../BI/Expressions/EvaluateExpressionPart.cs | 84 + Disco.BI/BI/Expressions/Expression.cs | 259 + Disco.BI/BI/Expressions/ExpressionCache.cs | 103 + .../Expressions/ExpressionCachePreloadTask.cs | 43 + .../Expressions/ExpressionTypeDescriptor.cs | 58 + .../ExpressionTypeMemberDescriptor.cs | 61 + Disco.BI/BI/Expressions/Extensions/DataExt.cs | 176 + .../BI/Expressions/Extensions/DeviceExt.cs | 51 + .../BI/Expressions/Extensions/ImageExt.cs | 140 + .../BaseImageExpressionResult.cs | 70 + .../BitmapImageExpressionResult.cs | 27 + .../FileImageExpressionResult.cs | 32 + .../FileMontageImageExpressionResult.cs | 181 + Disco.BI/BI/Expressions/Extensions/UserExt.cs | 51 + Disco.BI/BI/Expressions/IExpressionPart.cs | 16 + Disco.BI/BI/Expressions/TextExpressionPart.cs | 74 + .../Extensions/AttachmentActionExtensions.cs | 53 + .../BI/Extensions/AttachmentExtensions.cs | 196 + .../BI/Extensions/ClientServicesExtensions.cs | 70 + .../BI/Extensions/DeviceActionExtensions.cs | 133 + .../BI/Extensions/DeviceBatchExtensions.cs | 31 + .../Extensions/DeviceCertificateExtensions.cs | 44 + Disco.BI/BI/Extensions/DeviceExtensions.cs | 186 + .../BI/Extensions/DeviceModelExtensions.cs | 101 + .../BI/Extensions/DeviceProfileExtensions.cs | 54 + .../Extensions/DocumentTemplateExtensions.cs | 220 + Disco.BI/BI/Extensions/JobActionExtensions.cs | 415 + Disco.BI/BI/Extensions/JobExtensions.cs | 303 + Disco.BI/BI/Extensions/JobFlagExtensions.cs | 80 + Disco.BI/BI/Extensions/JobTableExtensions.cs | 94 + Disco.BI/BI/Extensions/UserExtensions.cs | 65 + Disco.BI/BI/Extensions/UtilityExtensions.cs | 313 + .../WirelessCertificateExtensions.cs | 18 + .../ActiveDirectory/ActiveDirectory.cs | 397 + .../ActiveDirectoryCachedGroups.cs | 186 + .../ActiveDirectory/ActiveDirectoryHelpers.cs | 169 + ...ActiveDirectoryMachineAccountExtensions.cs | 296 + .../ActiveDirectoryOrganisationalUnit.cs | 14 + ...eDirectoryUpdateLastNetworkLogonDateJob.cs | 293 + .../ActiveDirectoryUserAccountExtensions.cs | 42 + Disco.BI/BI/Interop/Community/UpdateCheck.cs | 185 + .../BI/Interop/Community/UpdateCheckTask.cs | 86 + Disco.BI/BI/Interop/MimeTypes.cs | 85 + Disco.BI/BI/Interop/Pdf/PdfGenerator.cs | 251 + Disco.BI/BI/Interop/Pdf/PdfImporter.cs | 471 + .../PluginServices/IDiscoScheduledTask.cs | 14 + .../BI/Interop/PluginServices/Utilities.cs | 45 + .../SignalRHandlers/UserHeldDevices.cs | 23 + Disco.BI/BI/JobBI/Searching.cs | 93 + .../BI/JobBI/Statistics/DailyOpenedClosed.cs | 142 + Disco.BI/BI/JobBI/Utilities.cs | 171 + Disco.BI/BI/UserBI/Searching.cs | 61 + Disco.BI/BI/UserBI/UserCache.cs | 193 + Disco.BI/BI/UserBI/Utilities.cs | 76 + Disco.BI/BI/Wireless/BaseWirelessProvider.cs | 83 + .../BI/Wireless/WirelessCertificatesLog.cs | 304 + .../eduSTAR/eduSTARWirelessProvider.cs | 283 + Disco.BI/Disco.BI.csproj | 233 + Disco.BI/Properties/AssemblyInfo.cs | 36 + Disco.BI/Properties/Resources.Designer.cs | 113 + Disco.BI/Properties/Resources.resx | 136 + Disco.BI/Resources/EmptyLogo.png | Bin 0 -> 30171 bytes Disco.BI/Resources/MimeType-doc48.png | Bin 0 -> 5814 bytes Disco.BI/Resources/MimeType-img16.png | Bin 0 -> 3206 bytes Disco.BI/Resources/MimeType-pdf16.png | Bin 0 -> 3306 bytes Disco.BI/Resources/MimeType-pdf48.png | Bin 0 -> 5178 bytes Disco.BI/Resources/MimeType-unknown48.png | Bin 0 -> 4317 bytes Disco.BI/app.config | 21 + Disco.BI/packages.config | 9 + Disco.Client/App.config | 6 + Disco.Client/Disco.Client.csproj | 138 + Disco.Client/ErrorReporting.cs | 192 + .../Extensions/ClientServiceException.cs | 18 + .../Extensions/ClientServicesExtensions.cs | 56 + Disco.Client/Extensions/EnrolExtensions.cs | 188 + Disco.Client/Extensions/WhoAmIExtensions.cs | 36 + Disco.Client/Icon.ico | Bin 0 -> 69477 bytes Disco.Client/Interop/Certificates.cs | 103 + Disco.Client/Interop/LocalAuthentication.cs | 59 + Disco.Client/Interop/Network.cs | 327 + Disco.Client/Interop/SystemAudit.cs | 180 + Disco.Client/Package Creation/7z.dll | Bin 0 -> 914432 bytes Disco.Client/Package Creation/7z.exe | Bin 0 -> 163840 bytes .../Package Creation/PreparationClient.zip | Bin 0 -> 418415 bytes Disco.Client/Presentation.cs | 104 + Disco.Client/Program.cs | 137 + Disco.Client/Properties/AssemblyInfo.cs | 36 + Disco.Client/Properties/app.manifest | 48 + Disco.Client/PsExec.exe | Bin 0 -> 381816 bytes Disco.Client/Start.bat | 9 + Disco.Client/packages.config | 4 + Disco.ClientBootstrapper/BootstrapperLoop.cs | 252 + .../BootstrapperWorkstationInstall.vbs | 11 + .../Disco.ClientBootstrapper.csproj | 335 + .../EmbedBootstrapper.vbs | 0 .../FormStatus.Designer.cs | 125 + Disco.ClientBootstrapper/FormStatus.cs | 82 + Disco.ClientBootstrapper/FormStatus.resx | 120 + Disco.ClientBootstrapper/IStatus.cs | 12 + Disco.ClientBootstrapper/Icon.ico | Bin 0 -> 69477 bytes .../InstallBootstrapper.vbs | 62 + Disco.ClientBootstrapper/InstallLoop.cs | 55 + .../Interop/CertificateInterop.cs | 180 + .../Interop/InstallInterop.cs | 525 + .../Interop/NetworkAdapter.cs | 164 + .../Interop/NetworkInterop.cs | 289 + .../Interop/RegistryInterop.cs | 108 + .../Interop/ShutdownInterop.cs | 103 + .../Interop/WIMInterop.cs | 1585 + Disco.ClientBootstrapper/NullStatus.cs | 15 + Disco.ClientBootstrapper/Program.cs | 191 + .../Properties/AssemblyInfo.cs | 36 + .../Properties/Resources.Designer.cs | 73 + .../Properties/Resources.resx | 124 + .../Properties/Settings.Designer.cs | 30 + .../Properties/Settings.settings | 7 + .../Properties/app.manifest | 48 + .../Resources/Background-BW.png | Bin 0 -> 3506 bytes .../UninstallBootstrapper.vbs | 54 + .../Disco.Configuration.vbproj | 116 + .../My Project/Application.Designer.vb | 13 + .../My Project/Application.myapp | 10 + .../My Project/AssemblyInfo.vb | 35 + .../My Project/Resources.Designer.vb | 62 + Disco.Configuration/My Project/Resources.resx | 117 + .../My Project/Settings.Designer.vb | 73 + .../My Project/Settings.settings | 7 + Disco.Data/App.config | 20 + Disco.Data/Configuration/ConfigurationBase.cs | 36 + .../Configuration/ConfigurationContext.cs | 472 + .../Modules/BootstrapperConfiguration.cs | 41 + .../Modules/DeviceProfileConfiguration.cs | 86 + .../Modules/DeviceProfilesConfiguration.cs | 70 + .../OrganisationAddressesConfiguration.cs | 89 + .../Modules/WirelessConfiguration.cs | 109 + Disco.Data/Disco.Data.csproj | 147 + Disco.Data/Disco.Data.sln | 20 + .../201204250418485_DBv0.Designer.cs | 24 + Disco.Data/Migrations/201204250418485_DBv0.cs | 604 + .../201205100307196_DBv1.Designer.cs | 24 + Disco.Data/Migrations/201205100307196_DBv1.cs | 25 + .../201205290205162_DBv2.Designer.cs | 24 + Disco.Data/Migrations/201205290205162_DBv2.cs | 17 + .../201206140712161_DBv3.Designer.cs | 24 + Disco.Data/Migrations/201206140712161_DBv3.cs | 30 + .../201206280337277_DBv4.Designer.cs | 24 + Disco.Data/Migrations/201206280337277_DBv4.cs | 52 + .../201211090325116_DBv5.Designer.cs | 27 + Disco.Data/Migrations/201211090325116_DBv5.cs | 96 + .../Migrations/201211090325116_DBv5.resx | 123 + .../201301150107063_DBv6.Designer.cs | 27 + Disco.Data/Migrations/201301150107063_DBv6.cs | 18 + .../Migrations/201301150107063_DBv6.resx | 123 + Disco.Data/Migrations/Configuration.cs | 21 + Disco.Data/Migrations/DiscoDataMigrator.cs | 97 + Disco.Data/Properties/AssemblyInfo.cs | 36 + Disco.Data/Properties/Resources.Designer.cs | 73 + Disco.Data/Properties/Resources.resx | 124 + Disco.Data/Repository/DiscoDataContext.cs | 72 + .../Repository/DiscoDataContextInitializer.cs | 19 + Disco.Data/Repository/DiscoDataSeeder.cs | 270 + .../DiscoDatabaseConnectionFactory.cs | 88 + Disco.Data/Resources/EmptyLogo.png | Bin 0 -> 30171 bytes Disco.Data/packages.config | 5 + Disco.Logging/App.config | 14 + Disco.Logging/Disco.Logging.csproj | 125 + Disco.Logging/LogBase.cs | 43 + Disco.Logging/LogContext.cs | 311 + Disco.Logging/LogReInitalizeJob.cs | 20 + Disco.Logging/Models/LogEvent.cs | 22 + Disco.Logging/Models/LogEventType.cs | 66 + Disco.Logging/Models/LogLiveEvent.cs | 57 + Disco.Logging/Models/LogModule.cs | 21 + Disco.Logging/Properties/AssemblyInfo.cs | 36 + Disco.Logging/ReadLogContext.cs | 179 + Disco.Logging/SystemLog.cs | 126 + Disco.Logging/Targets/LogLiveContext.cs | 55 + Disco.Logging/Targets/LogPersistContext.cs | 23 + Disco.Logging/Utilities.cs | 263 + Disco.Logging/packages.config | 9 + Disco.Models/App.config | 17 + Disco.Models/BI/Config/OrganisationAddress.cs | 74 + .../BI/DocumentTemplate/DocumentState.cs | 59 + .../BI/Expressions/IImageExpressionResult.cs | 18 + .../BI/Interop/Community/UpdateRequestBase.cs | 16 + .../BI/Interop/Community/UpdateRequestV1.cs | 32 + .../BI/Interop/Community/UpdateResponse.cs | 24 + Disco.Models/BI/Job/JobTableModel.cs | 74 + .../Job/Statistics/DailyOpenedClosedItem.cs | 15 + .../BI/Search/DeviceSearchResultItem.cs | 34 + .../BI/Search/UserSearchResultItem.cs | 17 + Disco.Models/ClientServices/Enrol.cs | 31 + Disco.Models/ClientServices/EnrolResponse.cs | 31 + Disco.Models/ClientServices/MacEnrol.cs | 28 + .../ClientServices/MacEnrolResponse.cs | 19 + .../ClientServices/MacSecureEnrolResponse.cs | 32 + Disco.Models/ClientServices/ServiceBase.cs | 16 + Disco.Models/ClientServices/WhoAmI.cs | 16 + Disco.Models/ClientServices/WhoAmIResponse.cs | 19 + Disco.Models/Disco.Models.csproj | 114 + .../ActiveDirectoryMachineAccount.cs | 45 + .../ActiveDirectoryUserAccount.cs | 41 + Disco.Models/Properties/AssemblyInfo.cs | 36 + Disco.Models/Repository/ConfigurationItem.cs | 19 + Disco.Models/Repository/Device/Device.cs | 67 + .../Repository/Device/DeviceAttachment.cs | 37 + Disco.Models/Repository/Device/DeviceBatch.cs | 61 + .../Repository/Device/DeviceCertificate.cs | 35 + .../Repository/Device/DeviceComponent.cs | 24 + .../Repository/Device/DeviceDetail.cs | 26 + Disco.Models/Repository/Device/DeviceModel.cs | 49 + .../Repository/Device/DeviceProfile.cs | 83 + .../Repository/Device/DeviceUserAssignment.cs | 26 + .../DocumentTemplate/DocumentTemplate.cs | 44 + Disco.Models/Repository/Job/Job.cs | 132 + Disco.Models/Repository/Job/JobAssignment.cs | 30 + Disco.Models/Repository/Job/JobAttachment.cs | 37 + Disco.Models/Repository/Job/JobComponent.cs | 28 + Disco.Models/Repository/Job/JobLog.cs | 28 + .../Job/JobMeta/JobMetaInsurance.cs | 68 + .../Job/JobMeta/JobMetaNonWarranty.cs | 67 + .../Repository/Job/JobMeta/JobMetaWarranty.cs | 27 + Disco.Models/Repository/Job/JobSubType.cs | 37 + Disco.Models/Repository/Job/JobType.cs | 34 + Disco.Models/Repository/User/User.cs | 79 + .../Repository/User/UserAttachment.cs | 36 + Disco.Models/Repository/User/UserDetail.cs | 26 + Disco.Services/App.config | 17 + .../App_Start/RazorGeneratorMvcStart.cs | 21 + Disco.Services/Disco.Services.csproj | 186 + Disco.Services/Logging/LogBase.cs | 43 + Disco.Services/Logging/LogContext.cs | 314 + Disco.Services/Logging/LogReInitalizeJob.cs | 20 + Disco.Services/Logging/Models/LogEvent.cs | 23 + Disco.Services/Logging/Models/LogEventType.cs | 67 + Disco.Services/Logging/Models/LogLiveEvent.cs | 59 + Disco.Services/Logging/Models/LogModule.cs | 22 + Disco.Services/Logging/ReadLogContext.cs | 179 + Disco.Services/Logging/SystemLog.cs | 140 + .../Logging/Targets/LogLiveContext.cs | 56 + .../Logging/Targets/LogPersistContext.cs | 23 + Disco.Services/Logging/Utilities.cs | 266 + .../CertificateProviderFeature.cs | 18 + .../CertificateProviderLog.cs | 304 + .../InteroperabilityProviderFeature.cs | 13 + .../Plugins/Features/Other/OtherFeature.cs | 13 + .../WarrantyProviderFeature.cs | 49 + .../WarrantyProviderSubmitJobException.cs | 12 + .../InvalidFeatureCategoryTypeException.cs | 50 + Disco.Services/Plugins/Plugin.cs | 31 + Disco.Services/Plugins/PluginAttribute.cs | 16 + .../Plugins/PluginConfigurationHandler.cs | 47 + Disco.Services/Plugins/PluginExtensions.cs | 190 + Disco.Services/Plugins/PluginFeature.cs | 21 + .../Plugins/PluginFeatureAttribute.cs | 15 + .../Plugins/PluginFeatureCategoryAttribute.cs | 14 + .../Plugins/PluginFeatureManifest.cs | 107 + Disco.Services/Plugins/PluginManifest.cs | 321 + Disco.Services/Plugins/PluginWebHandler.cs | 229 + .../Plugins/PluginWebHandlerController.cs | 121 + Disco.Services/Plugins/Plugins.cs | 363 + Disco.Services/Plugins/PluginsLog.cs | 275 + .../Plugins/UnknownPluginException.cs | 37 + Disco.Services/Properties/AssemblyInfo.cs | 36 + Disco.Services/Tasks/ScheduledTask.cs | 108 + Disco.Services/Tasks/ScheduledTaskCleanup.cs | 10 + Disco.Services/Tasks/ScheduledTaskStatus.cs | 351 + .../Tasks/ScheduledTaskStatusLive.cs | 56 + Disco.Services/Tasks/ScheduledTasks.cs | 190 + .../Tasks/ScheduledTasksLiveStatusService.cs | 56 + Disco.Services/Tasks/ScheduledTasksLog.cs | 196 + .../CertificateProviderLog.cs | 304 + .../CertificateProviderPlugin.cs | 23 + .../InteroperabilityProviderPlugin.cs | 17 + .../WarrantyProviderPlugin.cs | 52 + .../WarrantyProviderSubmitJobException.cs | 12 + .../_Plugins/IPluginConfiguration.cs | 16 + .../_Plugins/IPluginWebController.cs | 13 + .../_Plugins/InvalidCategoryTypeException.cs | 50 + Disco.Services/_Plugins/Plugin.cs | 28 + .../_Plugins/PluginCategoryAttribute.cs | 13 + Disco.Services/_Plugins/PluginDefinition.cs | 86 + Disco.Services/_Plugins/PluginExtensions.cs | 75 + .../_Plugins/PluginWebControllerException.cs | 15 + .../_Plugins/PluginWebControllerExtensions.cs | 210 + Disco.Services/_Plugins/Plugins.cs | 290 + Disco.Services/_Plugins/PluginsLog.cs | 259 + .../_Plugins/UnknownPluginException.cs | 37 + Disco.Services/packages.config | 13 + Disco.Silverlight.AttachmentUpload/App.xaml | 14 + .../App.xaml.vb | 37 + .../Assets/Styles.xaml | 350 + .../Assets/dropTarget.png | Bin 0 -> 13871 bytes .../Disco.Silverlight.AttachmentUpload.vbproj | 196 + .../FileUploader.vb | 77 + .../JavascriptNavigator.vb | 24 + .../MainPage.xaml | 37 + .../MainPage.xaml.vb | 60 + .../My Project/AppManifest.xml | 7 + .../My Project/AssemblyInfo.vb | 34 + .../Views/ErrorWindow.xaml | 34 + .../Views/ErrorWindow.xaml.vb | 27 + .../Views/File.xaml | 24 + .../Views/File.xaml.vb | 62 + .../Views/FileWindow.xaml | 50 + .../Views/FileWindow.xaml.vb | 55 + .../Views/Hidden.xaml | 14 + .../Views/Hidden.xaml.vb | 13 + .../Views/WebCam.xaml | 37 + .../Views/WebCam.xaml.vb | 143 + .../WriteableBitmapExtensions.vb | 40 + Disco.Utilities/Disco.Utilities.vbproj | 175 + Disco.Utilities/ModuleMain.vb | 131 + .../My Project/Application.Designer.vb | 13 + Disco.Utilities/My Project/Application.myapp | 10 + Disco.Utilities/My Project/AssemblyInfo.vb | 35 + .../My Project/Resources.Designer.vb | 63 + Disco.Utilities/My Project/Resources.resx | 117 + .../My Project/Settings.Designer.vb | 73 + Disco.Utilities/My Project/Settings.settings | 7 + Disco.Utilities/My Project/app.manifest | 48 + Disco.Utilities/app.config | 32 + Disco.Utilities/packages.config | 4 + Disco.Web.Extensions/App.config | 17 + .../DiscoPluginDefinitionExtensions.cs | 36 + .../OrganisationAddressExtensions.cs | 36 + .../BIModelExtensions/UtilityExtensions.cs | 29 + .../DeviceBatchExtensions.cs | 32 + .../DeviceModelExtensions.cs | 32 + .../DeviceProfileExtensions.cs | 31 + .../DocumentTemplateExtensions.cs | 20 + .../JobSubTypeExtensions.cs | 30 + .../DataModelExtension/JobTypeExtensions.cs | 48 + .../Disco.Web.Extensions.csproj | 147 + .../MvcExtensions/Bundles/Bundle.cs | 134 + .../MvcExtensions/Bundles/BundleExtensions.cs | 49 + .../MvcExtensions/Bundles/BundleHandler.cs | 52 + .../MvcExtensions/Bundles/BundleModule.cs | 44 + .../MvcExtensions/Bundles/BundleTable.cs | 70 + .../MvcExtensions/Bundles/BundleUnordered.cs | 17 + .../MvcExtensions/Bundles/JsJoin.cs | 63 + .../MvcExtensions/Bundles/LessCompile.cs | 140 + .../MvcExtensions/JsonNet/JsonNetResult.cs | 58 + .../PartialCompiledHtmlExtensions.cs | 51 + .../MvcExtensions/XmlResult.cs | 71 + .../MvcExtensions/dbAdminController.cs | 13 + .../MvcExtensions/dbController.cs | 34 + .../Properties/AssemblyInfo.cs | 36 + Disco.Web.Extensions/packages.config | 11 + Disco.Web/App_Code/AjaxHelpers.cshtml | 32 + Disco.Web/App_Code/AjaxHelpers.generated.cs | 211 + Disco.Web/App_Code/CommonHelpers.cshtml | 132 + Disco.Web/App_Code/CommonHelpers.generated.cs | 984 + Disco.Web/App_Start/AppConfig.cs | 89 + Disco.Web/App_Start/BundleConfig.cs | 52 + Disco.Web/App_Start/FilterConfig.cs | 13 + Disco.Web/App_Start/RazorGeneratorMvcStart.cs | 25 + Disco.Web/App_Start/RouteConfig.cs | 72 + Disco.Web/App_Start/WebApiConfig.cs | 22 + Disco.Web/Areas/API/APIAreaRegistration.cs | 38 + .../API/Controllers/BootstrapperController.cs | 55 + .../API/Controllers/DeviceBatchController.cs | 469 + .../Areas/API/Controllers/DeviceController.cs | 468 + .../API/Controllers/DeviceModelController.cs | 338 + .../Controllers/DeviceProfileController.cs | 393 + .../Controllers/DocumentTemplateController.cs | 469 + .../API/Controllers/ExpressionsController.cs | 17 + .../Areas/API/Controllers/JobController.cs | 1950 + .../API/Controllers/LoggingController.cs | 62 + .../Areas/API/Controllers/SystemController.cs | 230 + .../Areas/API/Controllers/UserController.cs | 180 + .../WirelessCertificateController.cs | 195 + .../API/Models/Attachment/AttachmentModel.cs | 13 + .../API/Models/Attachment/AttachmentsModel.cs | 13 + .../API/Models/Attachment/_AttachmentModel.cs | 79 + .../DeviceBatch/DeviceBatchTimelineEvent.cs | 31 + .../DeviceBatchTimelineEventSource.cs | 15 + .../API/Models/DeviceModel/ComponentModel.cs | 13 + .../API/Models/DeviceModel/_ComponentModel.cs | 27 + .../API/Models/DeviceModel/_DeviceModel.cs | 28 + .../ImporterUndetectedDataIdLookupModel.cs | 39 + .../ImporterUndetectedFilesModel.cs | 14 + .../Expressions/ValidateExpressionModel.cs | 37 + .../Areas/API/Models/Job/CommentPostModel.cs | 13 + .../Areas/API/Models/Job/CommentsModel.cs | 13 + .../Areas/API/Models/Job/ComponentModel.cs | 13 + .../Areas/API/Models/Job/_CommentModel.cs | 51 + .../Areas/API/Models/Job/_ComponentModel.cs | 24 + .../Areas/API/Models/Job/_DateChangeModel.cs | 14 + .../API/Models/Logs/LogEventTypeModel.cs | 25 + .../Areas/API/Models/Logs/LogModuleModel.cs | 29 + .../UpdateLastNetworkLogonDatesModel.cs | 13 + .../Areas/Config/ConfigAreaRegistration.cs | 122 + .../Config/Controllers/ConfigController.cs | 26 + .../Controllers/DeviceBatchController.cs | 79 + .../Controllers/DeviceModelController.cs | 57 + .../Controllers/DeviceProfileController.cs | 100 + .../Controllers/DocumentTemplateController.cs | 123 + .../Config/Controllers/EnrolmentController.cs | 29 + .../Controllers/ExpressionsController.cs | 23 + .../Config/Controllers/LoggingController.cs | 53 + .../Controllers/OrganisationController.cs | 26 + .../Config/Controllers/PluginsController.cs | 99 + .../Controllers/SystemConfigController.cs | 32 + .../Areas/Config/Models/Config/IndexModel.cs | 26 + .../Config/Models/DeviceBatch/IndexModel.cs | 34 + .../Config/Models/DeviceBatch/ShowModel.cs | 17 + .../DeviceBatch/_IndexModelDeviceBatch.cs | 23 + .../DeviceModel/DeviceComponentsModel.cs | 15 + .../Config/Models/DeviceModel/IndexModel.cs | 30 + .../Config/Models/DeviceModel/ShowModel.cs | 19 + .../DeviceModel/_IndexModelDeviceModel.cs | 26 + .../Models/DeviceProfile/DefaultsModel.cs | 15 + .../Config/Models/DeviceProfile/IndexModel.cs | 40 + .../Config/Models/DeviceProfile/ShowModel.cs | 20 + .../DeviceProfile/_IndexModelDeviceProfile.cs | 32 + .../Models/DocumentTemplate/CreateModel.cs | 87 + .../ExpressionBrowserModel.cs | 21 + .../Models/DocumentTemplate/IndexModel.cs | 12 + .../Models/DocumentTemplate/ShowModel.cs | 74 + .../DocumentTemplate/UndetectedPagesModel.cs | 30 + .../Config/Models/Enrolment/IndexModel.cs | 12 + .../Config/Models/Expressions/EditorModel.cs | 16 + .../Areas/Config/Models/Logging/IndexModel.cs | 14 + .../Config/Models/Logging/TaskStatusModel.cs | 12 + .../Config/Models/Organisation/IndexModel.cs | 17 + .../Config/Models/Plugins/IndexViewModel.cs | 52 + .../Plugins/ProviderConfigurationViewModel.cs | 23 + .../Config/Models/Shared/LogEventsModel.cs | 20 + .../Config/Models/SystemConfig/IndexModel.cs | 126 + .../Models/WirelessCertificate/IndexModel.cs | 21 + .../Areas/Config/Views/Config/Index.cshtml | 87 + .../Config/Views/Config/Index.generated.cs | 304 + .../Config/Views/DeviceBatch/Create.cshtml | 39 + .../Views/DeviceBatch/Create.generated.cs | 148 + .../Config/Views/DeviceBatch/Index.cshtml | 69 + .../Views/DeviceBatch/Index.generated.cs | 319 + .../Config/Views/DeviceBatch/Show.cshtml | 504 + .../Views/DeviceBatch/Show.generated.cs | 1154 + .../Config/Views/DeviceBatch/Timeline.cshtml | 122 + .../Views/DeviceBatch/Timeline.generated.cs | 131 + .../DeviceModel/GenericComponents.cshtml | 5 + .../GenericComponents.generated.cs | 63 + .../Config/Views/DeviceModel/Index.cshtml | 46 + .../Views/DeviceModel/Index.generated.cs | 173 + .../Config/Views/DeviceModel/Show.cshtml | 205 + .../Views/DeviceModel/Show.generated.cs | 458 + .../DeviceModel/_DeviceComponentsTable.cshtml | 270 + .../_DeviceComponentsTable.generated.cs | 412 + .../Config/Views/DeviceProfile/Create.cshtml | 43 + .../Views/DeviceProfile/Create.generated.cs | 174 + .../Views/DeviceProfile/Defaults.cshtml | 60 + .../Views/DeviceProfile/Defaults.generated.cs | 192 + .../Config/Views/DeviceProfile/Index.cshtml | 9 + .../Views/DeviceProfile/Index.generated.cs | 91 + .../Config/Views/DeviceProfile/Show.cshtml | 536 + .../Views/DeviceProfile/Show.generated.cs | 1069 + .../Config/Views/DeviceProfile/_Table.cshtml | 15 + .../Views/DeviceProfile/_Table.generated.cs | 109 + .../Views/DeviceProfile/_TableRender.cshtml | 39 + .../DeviceProfile/_TableRender.generated.cs | 186 + .../Views/DocumentTemplate/Create.cshtml | 96 + .../DocumentTemplate/Create.generated.cs | 299 + .../DocumentTemplate/ExpressionBrowser.cshtml | 132 + .../ExpressionBrowser2.generated.cs | 282 + .../DocumentTemplate/ImportStatus.cshtml | 322 + .../ImportStatus.generated.cs | 484 + .../Views/DocumentTemplate/Index.cshtml | 37 + .../Views/DocumentTemplate/Index.generated.cs | 168 + .../Config/Views/DocumentTemplate/Show.cshtml | 362 + .../Views/DocumentTemplate/Show.generated.cs | 781 + .../DocumentTemplate/UndetectedPages.cshtml | 239 + .../UndetectedPages.generated.cs | 370 + .../DocumentTemplate/_ExpressionsTable.cshtml | 75 + .../_ExpressionsTable.generated.cs | 346 + .../Areas/Config/Views/Enrolment/Index.cshtml | 130 + .../Config/Views/Enrolment/Index.generated.cs | 335 + .../Config/Views/Enrolment/Status.cshtml | 370 + .../Views/Enrolment/Status.generated.cs | 539 + .../Config/Views/Expressions/Editor.cshtml | 52 + .../Views/Expressions/Editor.generated.cs | 169 + .../Areas/Config/Views/Logging/Index.cshtml | 164 + .../Config/Views/Logging/Index.generated.cs | 388 + .../Config/Views/Logging/TaskStatus.cshtml | 260 + .../Views/Logging/TaskStatus.generated.cs | 314 + .../Config/Views/Organisation/Index.cshtml | 371 + .../Views/Organisation/Index.generated.cs | 782 + .../Config/Views/Plugins/Configure.cshtml | 14 + .../Areas/Config/Views/Plugins/Index.cshtml | 76 + .../Config/Views/Plugins/Index.generated.cs | 251 + .../ProviderConfiguration.generated.cs | 115 + .../Config/Views/Shared/LogEvents.cshtml | 143 + .../Views/Shared/LogEvents.generated.cs | 365 + .../Config/Views/SystemConfig/Index.cshtml | 178 + .../Views/SystemConfig/Index.generated.cs | 626 + Disco.Web/Areas/Config/Views/Web.config | 62 + .../Areas/Config/Views/_ViewStart.cshtml | 4 + .../Config/Views/_ViewStart.generated.cs | 55 + .../Public/Controllers/PublicController.cs | 29 + .../Controllers/UserHeldDevicesController.cs | 132 + .../UserHeldDevices/HeldJobDeviceModel.cs | 68 + .../UserHeldDevices/UserHeldDeviceModel.cs | 22 + .../Areas/Public/PublicAreaRegistration.cs | 43 + .../Areas/Public/Views/Public/Credits.cshtml | 339 + .../Public/Views/Public/Credits.generated.cs | 945 + .../Areas/Public/Views/Public/Index.cshtml | 29 + .../Public/Views/Public/Index.generated.cs | 115 + .../Areas/Public/Views/Public/Licence.cshtml | 542 + .../Public/Views/Public/Licence.generated.cs | 622 + .../Areas/Public/Views/Shared/_Layout.cshtml | 42 + .../Public/Views/Shared/_Layout.generated.cs | 242 + .../Public/Views/UserHeldDevices/Index.cshtml | 77 + .../Views/UserHeldDevices/Index.generated.cs | 396 + .../Views/UserHeldDevices/Noticeboard.cshtml | 494 + .../UserHeldDevices/Noticeboard.generated.cs | 502 + Disco.Web/Areas/Public/Views/Web.config | 62 + .../Areas/Public/Views/_ViewStart.cshtml | 3 + .../Public/Views/_ViewStart.generated.cs | 54 + .../Services/Controllers/ClientController.cs | 131 + .../Services/ServicesAreaRegistration.cs | 24 + Disco.Web/ClientSource/Scripts/Core.js | 40170 ++++++++++++++++ Disco.Web/ClientSource/Scripts/Core.js.bundle | 12 + Disco.Web/ClientSource/Scripts/Core.min.js | 2 + .../ClientSource/Scripts/Core.min.js.map | 8 + .../Core/disco.dataTables.extensions.js | 40 + .../disco.unobtrusiveValidation.extensions.js | 35 + .../Scripts/Core/jquery-1.8.3.intellisense.js | 2494 + .../ClientSource/Scripts/Core/jquery-1.8.3.js | 9472 ++++ .../Scripts/Core/jquery-ui-1.9.2.js | 14912 ++++++ .../Scripts/Core/jquery.dataTables.js | 12092 +++++ .../Scripts/Core/jquery.validate-vsdoc.js | 1291 + .../Scripts/Core/jquery.validate.js | 1248 + .../Core/jquery.validate.unobtrusive.js | 365 + .../Scripts/Core/jquery.watermark.js | 598 + .../Scripts/Core/modernizr-2.6.2.js | 1393 + .../Scripts/Modules/Disco-AjaxHelperIcons.js | 4 + .../Modules/Disco-AjaxHelperIcons.js.bundle | 4 + .../Modules/Disco-AjaxHelperIcons.min.js | 2 + .../Modules/Disco-AjaxHelperIcons.min.js.map | 8 + .../disco.ajaxhelpericons.js | 3 + .../Scripts/Modules/Disco-CreateJob.js | 46 + .../Scripts/Modules/Disco-CreateJob.js.bundle | 4 + .../Scripts/Modules/Disco-CreateJob.min.js | 2 + .../Modules/Disco-CreateJob.min.js.map | 8 + .../Disco-CreateJob/disco.createjob.js | 45 + .../Scripts/Modules/Disco-DataTableHelpers.js | 144 + .../Modules/Disco-DataTableHelpers.js.bundle | 4 + .../Modules/Disco-DataTableHelpers.min.js | 2 + .../Modules/Disco-DataTableHelpers.min.js.map | 8 + .../disco.datatablehelpers.js | 143 + .../Scripts/Modules/Disco-ExpressionEditor.js | 113 + .../Modules/Disco-ExpressionEditor.js.bundle | 4 + .../Modules/Disco-ExpressionEditor.min.js | 2 + .../Modules/Disco-ExpressionEditor.min.js.map | 8 + .../disco.expressioneditor.js | 112 + .../Modules/Disco-PropertyChangeHelpers.js | 198 + .../Disco-PropertyChangeHelpers.js.bundle | 4 + .../Disco-PropertyChangeHelpers.min.js | 2 + .../Disco-PropertyChangeHelpers.min.js.map | 8 + .../disco.propertychangehelpers.js | 197 + .../Scripts/Modules/Disco-jQueryExtensions.js | 83 + .../Modules/Disco-jQueryExtensions.js.bundle | 4 + .../Modules/Disco-jQueryExtensions.min.js | 2 + .../Modules/Disco-jQueryExtensions.min.js.map | 8 + .../disco.jQueryExtensions.js | 82 + .../Scripts/Modules/Highcharts.js | 13545 ++++++ .../Scripts/Modules/Highcharts.js.bundle | 4 + .../Scripts/Modules/Highcharts.min.js | 2 + .../Scripts/Modules/Highcharts.min.js.map | 8 + .../Modules/Highcharts/highcharts.src.js | 13543 ++++++ .../Highcharts/modules/canvas-tools.js | 133 + .../Highcharts/modules/canvas-tools.src.js | 3114 ++ .../Modules/Highcharts/modules/exporting.js | 23 + .../Highcharts/modules/exporting.src.js | 737 + .../Modules/Highcharts/themes/dark-blue.js | 263 + .../Modules/Highcharts/themes/dark-green.js | 263 + .../Scripts/Modules/Highcharts/themes/gray.js | 262 + .../Scripts/Modules/Highcharts/themes/grid.js | 95 + .../Modules/Highcharts/themes/skies.js | 89 + .../ClientSource/Scripts/Modules/Knockout.js | 87 + .../Scripts/Modules/Knockout.js.bundle | 4 + .../Scripts/Modules/Knockout.min.js | 2 + .../Scripts/Modules/Knockout.min.js.map | 8 + .../Modules/Knockout/knockout-2.1.0.debug.js | 3443 ++ .../Modules/Knockout/knockout-2.2.0.js | 85 + .../ClientSource/Scripts/Modules/Shadowbox.js | 9 + .../Scripts/Modules/Shadowbox.js.bundle | 4 + .../Scripts/Modules/Shadowbox.min.js | 2 + .../Scripts/Modules/Shadowbox.min.js.map | 8 + .../Scripts/Modules/Shadowbox/shadowbox.js | 8 + .../Scripts/Modules/Silverlight.js | 3 + .../Scripts/Modules/Silverlight.js.bundle | 4 + .../Scripts/Modules/Silverlight.min.js | 2 + .../Scripts/Modules/Silverlight.min.js.map | 8 + .../Modules/Silverlight/Silverlight.js | 2 + .../Scripts/Modules/Timeline.js.bundle | 9 + .../Scripts/Modules/Timeline.min.js | 2 + .../Scripts/Modules/Timeline.min.js.map | 8 + .../Timeline/disco.simileajaxextensions.js | 7 + .../Timeline/disco.timelineextensions.js | 6 + .../Scripts/Modules/Timeline/labellers.js | 12 + .../Timeline/simile-ajax-bundle-DiscoMod.js | 1561 + .../Modules/Timeline/timeline-bundle.js | 2835 ++ .../Scripts/Modules/Timeline/timeline.js | 9 + .../Scripts/Modules/jQuery-Isotope.js | 1402 + .../Scripts/Modules/jQuery-Isotope.js.bundle | 4 + .../Scripts/Modules/jQuery-Isotope.min.js | 2 + .../Scripts/Modules/jQuery-Isotope.min.js.map | 8 + .../Modules/jQuery-Isotope/jquery.isotope.js | 1401 + .../Scripts/Modules/jQuery-NumberFormatter.js | 528 + .../Modules/jQuery-NumberFormatter.js.bundle | 5 + .../Modules/jQuery-NumberFormatter.min.js | 2 + .../Modules/jQuery-NumberFormatter.min.js.map | 8 + .../jquery.numberformatter.js | 510 + .../jQuery-NumberFormatter/jshashtable-2.1.js | 16 + .../Scripts/Modules/jQuery-SignalR.js | 1524 + .../Scripts/Modules/jQuery-SignalR.js.bundle | 4 + .../Scripts/Modules/jQuery-SignalR.min.js | 2 + .../Scripts/Modules/jQuery-SignalR.min.js.map | 8 + .../jQuery-SignalR/jquery.signalR-0.5.3.js | 1522 + .../Scripts/Modules/jQueryUI-DynaTree.js | 3339 ++ .../Modules/jQueryUI-DynaTree.js.bundle | 4 + .../Scripts/Modules/jQueryUI-DynaTree.min.js | 2 + .../Modules/jQueryUI-DynaTree.min.js.map | 8 + .../jQueryUI-DynaTree/jquery.dynatree.js | 3337 ++ .../Scripts/Modules/jQueryUI-TimePicker.js | 1678 + .../Modules/jQueryUI-TimePicker.js.bundle | 4 + .../Modules/jQueryUI-TimePicker.min.js | 2 + .../Modules/jQueryUI-TimePicker.min.js.map | 8 + .../jquery-ui-timepicker-addon.js | 1677 + .../ClientSource/Scripts/Modules/timeline.js | 4440 ++ .../ClientSource/Scripts/Modules/tinymce.js | 10 + .../Scripts/Modules/tinymce.js.bundle | 6 + .../Scripts/Modules/tinymce.min.js | 2 + .../Scripts/Modules/tinymce.min.js.map | 8 + .../tinymce/disco.tinymceextensions.js | 5 + .../Scripts/Modules/tinymce/jquery.tinymce.js | 1 + .../Scripts/Modules/tinymce/langs/en.js | 1 + .../Scripts/Modules/tinymce/license.txt | 504 + .../Modules/tinymce/themes/advanced/about.htm | 52 + .../tinymce/themes/advanced/anchor.htm | 26 + .../tinymce/themes/advanced/charmap.htm | 55 + .../tinymce/themes/advanced/color_picker.htm | 70 + .../themes/advanced/editor_template.js | 1 + .../themes/advanced/editor_template_src.js | 1490 + .../Modules/tinymce/themes/advanced/image.htm | 80 + .../themes/advanced/img/colorpicker.jpg | Bin 0 -> 2584 bytes .../tinymce/themes/advanced/img/flash.gif | Bin 0 -> 239 bytes .../tinymce/themes/advanced/img/icons.gif | Bin 0 -> 11982 bytes .../tinymce/themes/advanced/img/iframe.gif | Bin 0 -> 600 bytes .../tinymce/themes/advanced/img/pagebreak.gif | Bin 0 -> 325 bytes .../tinymce/themes/advanced/img/quicktime.gif | Bin 0 -> 301 bytes .../tinymce/themes/advanced/img/realmedia.gif | Bin 0 -> 439 bytes .../tinymce/themes/advanced/img/shockwave.gif | Bin 0 -> 384 bytes .../tinymce/themes/advanced/img/trans.gif | Bin 0 -> 43 bytes .../tinymce/themes/advanced/img/video.gif | Bin 0 -> 597 bytes .../themes/advanced/img/windowsmedia.gif | Bin 0 -> 415 bytes .../tinymce/themes/advanced/js/about.js | 73 + .../tinymce/themes/advanced/js/anchor.js | 56 + .../tinymce/themes/advanced/js/charmap.js | 363 + .../themes/advanced/js/color_picker.js | 345 + .../tinymce/themes/advanced/js/image.js | 253 + .../tinymce/themes/advanced/js/link.js | 159 + .../themes/advanced/js/source_editor.js | 78 + .../tinymce/themes/advanced/langs/en.js | 1 + .../tinymce/themes/advanced/langs/en_dlg.js | 1 + .../Modules/tinymce/themes/advanced/link.htm | 57 + .../tinymce/themes/advanced/shortcuts.htm | 47 + .../themes/advanced/skins/default/content.css | 50 + .../themes/advanced/skins/default/dialog.css | 118 + .../advanced/skins/default/img/buttons.png | Bin 0 -> 3133 bytes .../advanced/skins/default/img/items.gif | Bin 0 -> 64 bytes .../advanced/skins/default/img/menu_arrow.gif | Bin 0 -> 68 bytes .../advanced/skins/default/img/menu_check.gif | Bin 0 -> 70 bytes .../advanced/skins/default/img/progress.gif | Bin 0 -> 1787 bytes .../advanced/skins/default/img/tabs.gif | Bin 0 -> 1322 bytes .../themes/advanced/skins/default/ui.css | 219 + .../advanced/skins/highcontrast/content.css | 24 + .../advanced/skins/highcontrast/dialog.css | 106 + .../themes/advanced/skins/highcontrast/ui.css | 106 + .../themes/advanced/skins/o2k7/content.css | 48 + .../themes/advanced/skins/o2k7/dialog.css | 118 + .../advanced/skins/o2k7/img/button_bg.png | Bin 0 -> 2766 bytes .../skins/o2k7/img/button_bg_black.png | Bin 0 -> 651 bytes .../skins/o2k7/img/button_bg_silver.png | Bin 0 -> 2084 bytes .../tinymce/themes/advanced/skins/o2k7/ui.css | 222 + .../themes/advanced/skins/o2k7/ui_black.css | 8 + .../themes/advanced/skins/o2k7/ui_silver.css | 5 + .../tinymce/themes/advanced/source_editor.htm | 25 + .../tinymce/themes/simple/editor_template.js | 1 + .../themes/simple/editor_template_src.js | 84 + .../tinymce/themes/simple/img/icons.gif | Bin 0 -> 806 bytes .../Modules/tinymce/themes/simple/langs/en.js | 1 + .../themes/simple/skins/default/content.css | 25 + .../themes/simple/skins/default/ui.css | 32 + .../themes/simple/skins/o2k7/content.css | 17 + .../simple/skins/o2k7/img/button_bg.png | Bin 0 -> 2142 bytes .../tinymce/themes/simple/skins/o2k7/ui.css | 35 + .../Scripts/Modules/tinymce/tiny_mce.js | 1 + .../Modules/tinymce/tiny_mce_jquery.js | 1 + .../Scripts/Modules/tinymce/tiny_mce_popup.js | 5 + .../Scripts/Modules/tinymce/tiny_mce_src.js | 18859 ++++++++ .../Modules/tinymce/utils/editable_selects.js | 70 + .../Modules/tinymce/utils/form_utils.js | 210 + .../Scripts/Modules/tinymce/utils/mctabs.js | 162 + .../Scripts/Modules/tinymce/utils/validate.js | 252 + Disco.Web/ClientSource/Style/BundleSite.css | 1689 + .../ClientSource/Style/BundleSite.css.bundle | 5 + .../ClientSource/Style/BundleSite.min.css | 1 + Disco.Web/ClientSource/Style/Config.css | 702 + Disco.Web/ClientSource/Style/Config.less | 950 + Disco.Web/ClientSource/Style/Config.min.css | 1 + Disco.Web/ClientSource/Style/Credits.css | 144 + Disco.Web/ClientSource/Style/Credits.less | 156 + Disco.Web/ClientSource/Style/Credits.min.css | 1 + .../Style/Credits/CrystalIcons.png | Bin 0 -> 7919 bytes .../Style/Credits/HighchartsJS.png | Bin 0 -> 3454 bytes .../ClientSource/Style/Credits/JsonNET.png | Bin 0 -> 2773 bytes .../ClientSource/Style/Credits/LibTiff.png | Bin 0 -> 7432 bytes .../Style/Credits/MicrosoftASPNET.png | Bin 0 -> 2068 bytes .../Style/Credits/MicrosoftNET.png | Bin 0 -> 5353 bytes .../Style/Credits/MicrosoftSQLServer.png | Bin 0 -> 5011 bytes .../Style/Credits/MicrosoftSilverlight.png | Bin 0 -> 13938 bytes .../ClientSource/Style/Credits/Modernizr.png | Bin 0 -> 419 bytes .../ClientSource/Style/Credits/Quartz.png | Bin 0 -> 2321 bytes .../Style/Credits/Shadowboxjs.png | Bin 0 -> 1960 bytes .../ClientSource/Style/Credits/SignalR.png | Bin 0 -> 4578 bytes .../ClientSource/Style/Credits/SpringNET.png | Bin 0 -> 2724 bytes .../ClientSource/Style/Credits/TinyMCE.png | Bin 0 -> 3841 bytes .../ClientSource/Style/Credits/ZXing.png | Bin 0 -> 5247 bytes .../ClientSource/Style/Credits/dotless.png | Bin 0 -> 6196 bytes .../ClientSource/Style/Credits/iTextSharp.png | Bin 0 -> 4032 bytes .../ClientSource/Style/Credits/jQuery.png | Bin 0 -> 3968 bytes .../ClientSource/Style/Credits/jQueryUI.png | Bin 0 -> 3225 bytes .../ClientSource/Style/Credits/knockoutjs.png | Bin 0 -> 4473 bytes .../ClientSource/Style/Credits/nuget.png | Bin 0 -> 3787 bytes Disco.Web/ClientSource/Style/Declarations.css | 1 + .../ClientSource/Style/Declarations.less | 46 + .../ClientSource/Style/Declarations.min.css | 1 + Disco.Web/ClientSource/Style/Device.css | 223 + Disco.Web/ClientSource/Style/Device.less | 142 + Disco.Web/ClientSource/Style/Device.min.css | 1 + Disco.Web/ClientSource/Style/Dialog.css | 77 + Disco.Web/ClientSource/Style/Dialog.less | 13 + Disco.Web/ClientSource/Style/Dialog.min.css | 1 + .../ClientSource/Style/ExpressionEditor.css | 28 + .../ClientSource/Style/ExpressionEditor.htm | 11 + .../Style/ExpressionEditor.min.css | 1 + .../Style/Images/Actions/attach.png | Bin 0 -> 1398 bytes .../Style/Images/Actions/dataTableFirst.png | Bin 0 -> 99 bytes .../Images/Actions/dataTableFirstDisabled.png | Bin 0 -> 99 bytes .../Style/Images/Actions/dataTableLast.png | Bin 0 -> 100 bytes .../Images/Actions/dataTableLastDisabled.png | Bin 0 -> 100 bytes .../Style/Images/Actions/dataTableNext.png | Bin 0 -> 94 bytes .../Images/Actions/dataTableNextDisabled.png | Bin 0 -> 94 bytes .../Style/Images/Actions/dataTablePrev.png | Bin 0 -> 94 bytes .../Images/Actions/dataTablePrevDisabled.png | Bin 0 -> 94 bytes .../Style/Images/Actions/dataTableSort.png | Bin 0 -> 173 bytes .../Style/Images/Actions/editForm.png | Bin 0 -> 633 bytes .../Images/Actions/expressionBrowser.png | Bin 0 -> 610 bytes .../Images/Actions/expressionBrowser256.png | Bin 0 -> 14910 bytes .../Style/Images/Actions/list.png | Bin 0 -> 367 bytes .../Style/Images/Actions/listAlert.png | Bin 0 -> 652 bytes .../Style/Images/Actions/locked.png | Bin 0 -> 699 bytes .../Images/Actions/pageMenuConfigIcon.png | Bin 0 -> 745 bytes .../Actions/pageMenuConfigIconHover.png | Bin 0 -> 705 bytes .../Style/Images/Actions/pageMenuIcon.png | Bin 0 -> 509 bytes .../Images/Actions/pageMenuIconHover.png | Bin 0 -> 696 bytes .../Actions/pageMenuNoticeboardIcon.png | Bin 0 -> 569 bytes .../Actions/pageMenuNoticeboardIconHover.png | Bin 0 -> 681 bytes .../Images/Actions/pageMenuReportIcon.png | Bin 0 -> 1282 bytes .../Actions/pageMenuReportIconHover.png | Bin 0 -> 562 bytes .../Style/Images/Actions/photo.png | Bin 0 -> 2904 bytes .../Style/Images/Actions/post.png | Bin 0 -> 1345 bytes .../Style/Images/Actions/remove.png | Bin 0 -> 852 bytes .../Style/Images/Actions/removeSubtle.png | Bin 0 -> 855 bytes .../Style/Images/Actions/unlocked.png | Bin 0 -> 658 bytes .../Images/AttachmentTypes/MimeTypeIcons.cs | 33 + .../Style/Images/AttachmentTypes/document.png | Bin 0 -> 3087 bytes .../expressionBrowserIcons.png | Bin 0 -> 1615 bytes .../Style/Images/AttachmentTypes/image.png | Bin 0 -> 2671 bytes .../Style/Images/AttachmentTypes/pdf.png | Bin 0 -> 2437 bytes .../Style/Images/AttachmentTypes/unknown.png | Bin 0 -> 1578 bytes .../Style/Images/BackgroundDocument.png | Bin 0 -> 947 bytes .../Style/Images/BackgroundInitialConfig.jpg | Bin 0 -> 7899 bytes .../Style/Images/BackgroundPage-Old.png | Bin 0 -> 869 bytes .../Style/Images/BackgroundPage.png | Bin 0 -> 114 bytes .../Style/Images/DeviceTypes/AppliancePC.png | Bin 0 -> 49442 bytes .../Style/Images/DeviceTypes/Desktop.png | Bin 0 -> 62656 bytes .../Images/DeviceTypes/EnterpriseServer.png | Bin 0 -> 61296 bytes .../Style/Images/DeviceTypes/Maximum.png | Bin 0 -> 49442 bytes .../Style/Images/DeviceTypes/Mobile.png | Bin 0 -> 62713 bytes .../Images/DeviceTypes/PerformanceServer.png | Bin 0 -> 61296 bytes .../SmallOfficeAndHomeOfficeServer.png | Bin 0 -> 61296 bytes .../Style/Images/DeviceTypes/Unknown.png | Bin 0 -> 49442 bytes .../Style/Images/DeviceTypes/Workstation.png | Bin 0 -> 62656 bytes .../ClientSource/Style/Images/Heading.png | Bin 0 -> 8197 bytes .../ClientSource/Style/Images/Icon32.png | Bin 0 -> 2291 bytes .../Style/Images/Status/error.png | Bin 0 -> 852 bytes .../Style/Images/Status/fail32.png | Bin 0 -> 2416 bytes .../Style/Images/Status/fileBroken256.png | Bin 0 -> 11193 bytes .../Style/Images/Status/information.png | Bin 0 -> 901 bytes .../Style/Images/Status/jobStatus-Closed.png | Bin 0 -> 700 bytes .../Images/Status/jobStatus-Insurance.png | Bin 0 -> 773 bytes .../Style/Images/Status/jobStatus-Open.png | Bin 0 -> 748 bytes .../Style/Images/Status/jobStatus-Repairs.png | Bin 0 -> 763 bytes .../Style/Images/Status/jobStatus-User.png | Bin 0 -> 769 bytes .../Style/Images/Status/loading.gif | Bin 0 -> 723 bytes .../ClientSource/Style/Images/Status/ok.png | Bin 0 -> 542 bytes .../Style/Images/Status/pbar-ani.gif | Bin 0 -> 7970 bytes .../ClientSource/Style/Images/Status/save.png | Bin 0 -> 586 bytes .../Style/Images/Status/success.png | Bin 0 -> 539 bytes .../Style/Images/Status/updateAvailable.png | Bin 0 -> 5494 bytes .../Style/Images/Status/warning.png | Bin 0 -> 726 bytes .../Style/Images/Status/warning32.png | Bin 0 -> 1917 bytes .../Style/Images/SubMenuBackground.png | Bin 0 -> 90 bytes .../Style/Images/SubSubMenuIcon.png | Bin 0 -> 164 bytes Disco.Web/ClientSource/Style/Images/pi.gif | Bin 0 -> 327029 bytes .../ClientSource/Style/InitialConfig.css | 61 + .../ClientSource/Style/InitialConfig.less | 101 + .../ClientSource/Style/InitialConfig.min.css | 1 + .../ClientSource/Style/IsotopeStyles.css | 45 + .../ClientSource/Style/IsotopeStyles.min.css | 1 + Disco.Web/ClientSource/Style/Job.css | 649 + Disco.Web/ClientSource/Style/Job.less | 783 + Disco.Web/ClientSource/Style/Job.min.css | 1 + .../Style/Public/UserHeldDevices.css | 30 + .../Style/Public/UserHeldDevices.less | 33 + .../Style/Public/UserHeldDevices.min.css | 1 + .../Public/UserHeldDevicesNoticeboard.css | 82 + .../Public/UserHeldDevicesNoticeboard.less | 87 + .../Public/UserHeldDevicesNoticeboard.min.css | 1 + .../Public/UserHeldDevicesXml_Sharepoint.xslt | 27 + Disco.Web/ClientSource/Style/Shadowbox.css | 34 + .../ClientSource/Style/Shadowbox.css.bundle | 6 + .../ClientSource/Style/Shadowbox.min.css | 1 + .../ClientSource/Style/Shadowbox/close.png | Bin 0 -> 201 bytes .../ClientSource/Style/Shadowbox/loading.gif | Bin 0 -> 2545 bytes .../ClientSource/Style/Shadowbox/next.png | Bin 0 -> 182 bytes .../ClientSource/Style/Shadowbox/pause.png | Bin 0 -> 101 bytes .../ClientSource/Style/Shadowbox/play.png | Bin 0 -> 153 bytes .../ClientSource/Style/Shadowbox/previous.png | Bin 0 -> 206 bytes .../Style/Shadowbox/shadowbox.css | 30 + .../Style/Shadowbox/shadowbox.min.css | 1 + Disco.Web/ClientSource/Style/Shared.css | 73 + Disco.Web/ClientSource/Style/Shared.less | 121 + Disco.Web/ClientSource/Style/Shared.min.css | 1 + Disco.Web/ClientSource/Style/Site.css | 1121 + Disco.Web/ClientSource/Style/Site.less | 1283 + Disco.Web/ClientSource/Style/Site.min.css | 1 + Disco.Web/ClientSource/Style/Timeline.css | 414 + .../ClientSource/Style/Timeline.css.bundle | 6 + Disco.Web/ClientSource/Style/Timeline.min.css | 1 + .../Timeline/disco.timelineextensions.css | 8 + .../Timeline/disco.timelineextensions.less | 9 + .../Timeline/disco.timelineextensions.min.css | 1 + .../ClientSource/Style/Timeline/graphics.css | 171 + .../Style/Timeline/graphics.min.css | 1 + .../Style/Timeline/images/blue-circle.png | Bin 0 -> 409 bytes .../images/bubble-arrow-point-down.png | Bin 0 -> 937 bytes .../images/bubble-arrow-point-left.png | Bin 0 -> 734 bytes .../images/bubble-arrow-point-right.png | Bin 0 -> 811 bytes .../Timeline/images/bubble-arrow-point-up.png | Bin 0 -> 696 bytes .../Timeline/images/bubble-bottom-arrow.png | Bin 0 -> 824 bytes .../Timeline/images/bubble-bottom-left.png | Bin 0 -> 476 bytes .../Timeline/images/bubble-bottom-right.png | Bin 0 -> 553 bytes .../Style/Timeline/images/bubble-bottom.png | Bin 0 -> 355 bytes .../Timeline/images/bubble-left-arrow.png | Bin 0 -> 637 bytes .../Style/Timeline/images/bubble-left.png | Bin 0 -> 620 bytes .../Timeline/images/bubble-right-arrow.png | Bin 0 -> 716 bytes .../Style/Timeline/images/bubble-right.png | Bin 0 -> 744 bytes .../Timeline/images/bubble-top-arrow.png | Bin 0 -> 596 bytes .../Style/Timeline/images/bubble-top-left.png | Bin 0 -> 365 bytes .../Timeline/images/bubble-top-right.png | Bin 0 -> 496 bytes .../Style/Timeline/images/bubble-top.png | Bin 0 -> 283 bytes .../Style/Timeline/images/close-button.png | Bin 0 -> 526 bytes .../Style/Timeline/images/copy.png | Bin 0 -> 94 bytes .../Timeline/images/copyright-vertical.png | Bin 0 -> 764 bytes .../Style/Timeline/images/copyright.png | Bin 0 -> 771 bytes .../Timeline/images/dark-blue-circle.png | Bin 0 -> 411 bytes .../Timeline/images/dark-green-circle.png | Bin 0 -> 357 bytes .../Style/Timeline/images/dark-red-circle.png | Bin 0 -> 355 bytes .../Timeline/images/dull-blue-circle.png | Bin 0 -> 415 bytes .../Timeline/images/dull-green-circle.png | Bin 0 -> 408 bytes .../Style/Timeline/images/dull-red-circle.png | Bin 0 -> 406 bytes .../Style/Timeline/images/gray-circle.png | Bin 0 -> 404 bytes .../Style/Timeline/images/green-circle.png | Bin 0 -> 399 bytes .../Timeline/images/message-bottom-left.png | Bin 0 -> 1064 bytes .../Timeline/images/message-bottom-right.png | Bin 0 -> 1373 bytes .../Style/Timeline/images/message-left.png | Bin 0 -> 208 bytes .../Style/Timeline/images/message-right.png | Bin 0 -> 462 bytes .../Timeline/images/message-top-left.png | Bin 0 -> 734 bytes .../Timeline/images/message-top-right.png | Bin 0 -> 923 bytes .../Timeline/images/progress-running.gif | Bin 0 -> 1002 bytes .../Style/Timeline/images/red-circle.png | Bin 0 -> 406 bytes .../Style/Timeline/images/top-bubble.png | Bin 0 -> 3130 bytes .../Style/Timeline/timeline-bundle.css | 229 + .../Style/Timeline/timeline-bundle.min.css | 1 + Disco.Web/ClientSource/Style/User.css | 188 + Disco.Web/ClientSource/Style/User.less | 117 + Disco.Web/ClientSource/Style/User.min.css | 1 + .../Style/jQueryUI/dynatree/icons.gif | Bin 0 -> 5512 bytes .../Style/jQueryUI/dynatree/loading.gif | Bin 0 -> 3111 bytes .../Style/jQueryUI/dynatree/ui.dynatree.css | 452 + .../jQueryUI/dynatree/ui.dynatree.min.css | 1 + .../ui-bg_diagonals-thick_18_b81900_40x40.png | Bin 0 -> 319 bytes .../ui-bg_diagonals-thick_20_666666_40x40.png | Bin 0 -> 214 bytes .../images/ui-bg_flat_10_000000_40x100.png | Bin 0 -> 148 bytes .../images/ui-bg_glass_100_f6f6f6_1x400.png | Bin 0 -> 104 bytes .../images/ui-bg_glass_100_fdf5ce_1x400.png | Bin 0 -> 123 bytes .../images/ui-bg_glass_65_ffffff_1x400.png | Bin 0 -> 95 bytes .../ui-bg_gloss-wave_35_f6a828_500x100.png | Bin 0 -> 2629 bytes .../ui-bg_highlight-soft_100_eeeeee_1x100.png | Bin 0 -> 90 bytes .../ui-bg_highlight-soft_75_ffe45c_1x100.png | Bin 0 -> 128 bytes .../images/ui-icons_222222_256x240.png | Bin 0 -> 4194 bytes .../images/ui-icons_228ef1_256x240.png | Bin 0 -> 4194 bytes .../images/ui-icons_ef8c08_256x240.png | Bin 0 -> 4194 bytes .../images/ui-icons_ffd27a_256x240.png | Bin 0 -> 4194 bytes .../images/ui-icons_ffffff_256x240.png | Bin 0 -> 4194 bytes .../ClientSource/Style/jQueryUI/jquery-ui.css | 565 + .../Style/jQueryUI/jquery-ui.min.css | 1 + .../ClientSource/Style/jQueryUIExtensions.css | 55 + .../Style/jQueryUIExtensions.less | 101 + .../Style/jQueryUIExtensions.min.css | 1 + Disco.Web/Controllers/DeviceController.cs | 114 + .../Controllers/InitialConfigController.cs | 306 + Disco.Web/Controllers/JobController.cs | 468 + .../Controllers/PluginWebHandlerController.cs | 54 + Disco.Web/Controllers/SearchController.cs | 149 + Disco.Web/Controllers/UserController.cs | 51 + Disco.Web/Disco.Web.csproj | 1820 + Disco.Web/Extensions/HtmlExtensions.cs | 127 + Disco.Web/Global.asax | 1 + Disco.Web/Global.asax.cs | 205 + Disco.Web/Models/Device/AddOfflineModel.cs | 17 + Disco.Web/Models/Device/ShowModel.cs | 37 + .../Models/InitialConfig/CompleteModel.cs | 88 + .../Models/InitialConfig/DatabaseModel.cs | 111 + .../Models/InitialConfig/FileStoreModel.cs | 181 + .../Models/InitialConfig/WelcomeModel.cs | 90 + Disco.Web/Models/Job/CreateModel.cs | 184 + Disco.Web/Models/Job/CreateModelOld.cs | 154 + Disco.Web/Models/Job/CreateRedirectModel.cs | 13 + Disco.Web/Models/Job/IndexModel.cs | 16 + Disco.Web/Models/Job/ListModel.cs | 21 + Disco.Web/Models/Job/LogWarrantyModel.cs | 99 + Disco.Web/Models/Job/ShowModel.cs | 29 + .../Job/WarrantyProviderJobDetailsModel.cs | 17 + Disco.Web/Models/Search/QueryModel.cs | 18 + Disco.Web/Models/User/ShowModel.cs | 46 + Disco.Web/Properties/AssemblyInfo.cs | 35 + Disco.Web/T4MVC.cs | 8895 ++++ Disco.Web/T4MVC.tt | 1964 + Disco.Web/T4MVC.tt.hooks.t4 | 43 + Disco.Web/T4MVC.tt.settings.xml | 70 + Disco.Web/Views/Device/AddOffline.cshtml | 114 + .../Views/Device/AddOffline.generated.cs | 304 + .../Views/Device/DeviceParts/Resources.cshtml | 193 + .../Device/DeviceParts/Resources.generated.cs | 480 + Disco.Web/Views/Device/Index.cshtml | 9 + Disco.Web/Views/Device/Index.generated.cs | 80 + Disco.Web/Views/Device/Show.cshtml | 467 + Disco.Web/Views/Device/Show.generated.cs | 1200 + .../Views/Device/_CertificateTable.cshtml | 43 + .../Device/_CertificateTable.generated.cs | 180 + Disco.Web/Views/Device/_DeviceActions.cshtml | 124 + .../Views/Device/_DeviceActions.generated.cs | 326 + Disco.Web/Views/Device/_DeviceTable.cshtml | 89 + .../Views/Device/_DeviceTable.generated.cs | 387 + .../_DeviceUserAssignmentHistoryTable.cshtml | 35 + ...iceUserAssignmentHistoryTable.generated.cs | 142 + Disco.Web/Views/Device/_ViewStart.cshtml | 3 + .../Views/Device/_ViewStart.generated.cs | 54 + Disco.Web/Views/InitialConfig/Complete.cshtml | 200 + .../Views/InitialConfig/Complete.generated.cs | 726 + Disco.Web/Views/InitialConfig/Database.cshtml | 119 + .../Views/InitialConfig/Database.generated.cs | 317 + .../Views/InitialConfig/FileStore.cshtml | 249 + .../InitialConfig/FileStore.generated.cs | 329 + .../Views/InitialConfig/RestartWebApp.cshtml | 34 + .../InitialConfig/RestartWebApp.generated.cs | 111 + Disco.Web/Views/InitialConfig/Welcome.cshtml | 34 + .../Views/InitialConfig/Welcome.generated.cs | 133 + Disco.Web/Views/InitialConfig/_Layout.cshtml | 35 + .../Views/InitialConfig/_Layout.generated.cs | 218 + .../Views/InitialConfig/_ViewStart.cshtml | 4 + .../InitialConfig/_ViewStart.generated.cs | 55 + Disco.Web/Views/Job/Create-Old.cshtml | 58 + Disco.Web/Views/Job/Create.cshtml | 301 + Disco.Web/Views/Job/Create.generated.cs | 598 + Disco.Web/Views/Job/Create_Redirect.cshtml | 21 + .../Views/Job/Create_Redirect.generated.cs | 87 + Disco.Web/Views/Job/Index.cshtml | 131 + Disco.Web/Views/Job/Index.generated.cs | 191 + .../Views/Job/JobParts/Components.cshtml | 184 + .../Job/JobParts/Components.generated.cs | 294 + Disco.Web/Views/Job/JobParts/Flags.cshtml | 90 + .../Views/Job/JobParts/Flags.generated.cs | 327 + Disco.Web/Views/Job/JobParts/Insurance.cshtml | 380 + .../Views/Job/JobParts/Insurance.generated.cs | 1095 + .../Job/JobParts/JobMetaAdditions.cshtml | 19 + .../JobParts/JobMetaAdditions1.generated.cs | 119 + .../Views/Job/JobParts/NonWarranty.cshtml | 16 + .../Job/JobParts/NonWarranty.generated.cs | 123 + .../Job/JobParts/NonWarrantyFinance.cshtml | 184 + .../JobParts/NonWarrantyFinance.generated.cs | 561 + Disco.Web/Views/Job/JobParts/Repairs.cshtml | 85 + .../Views/Job/JobParts/Repairs.generated.cs | 256 + Disco.Web/Views/Job/JobParts/Resources.cshtml | 332 + .../Views/Job/JobParts/Resources.generated.cs | 718 + Disco.Web/Views/Job/JobParts/Warranty.cshtml | 127 + .../Views/Job/JobParts/Warranty.generated.cs | 341 + Disco.Web/Views/Job/JobParts/_Subject.cshtml | 715 + .../Views/Job/JobParts/_Subject.generated.cs | 2231 + Disco.Web/Views/Job/List.cshtml | 5 + Disco.Web/Views/Job/List.generated.cs | 63 + Disco.Web/Views/Job/LogWarranty.cshtml | 136 + Disco.Web/Views/Job/LogWarranty.generated.cs | 438 + .../Views/Job/LogWarrantyDisclose.cshtml | 108 + .../Job/LogWarrantyDisclose.generated.cs | 436 + Disco.Web/Views/Job/LogWarrantyError.cshtml | 124 + .../Views/Job/LogWarrantyError.generated.cs | 416 + Disco.Web/Views/Job/Show.cshtml | 56 + Disco.Web/Views/Job/Show.generated.cs | 192 + .../Job/WarrantyProviderJobDetails.cshtml | 53 + .../WarrantyProviderJobDetails.generated.cs | 237 + Disco.Web/Views/Job/_CreateSubject-Old.cshtml | 34 + .../Views/Job/_CreateSubject-Old.generated.cs | 229 + Disco.Web/Views/Job/_CreateSubject.cshtml | 41 + .../Views/Job/_CreateSubject.generated.cs | 254 + Disco.Web/Views/Job/_ViewStart.cshtml | 3 + Disco.Web/Views/Job/_ViewStart.generated.cs | 54 + Disco.Web/Views/Search/Query.cshtml | 37 + Disco.Web/Views/Search/Query.generated.cs | 169 + Disco.Web/Views/Shared/Error.cshtml | 10 + Disco.Web/Views/Shared/Error.generated.cs | 68 + Disco.Web/Views/Shared/_DialogLayout.cshtml | 22 + .../Views/Shared/_DialogLayout.generated.cs | 132 + Disco.Web/Views/Shared/_EmptyLayout.cshtml | 21 + .../Views/Shared/_EmptyLayout.generated.cs | 131 + Disco.Web/Views/Shared/_JobTable.cshtml | 27 + Disco.Web/Views/Shared/_JobTable.generated.cs | 131 + Disco.Web/Views/Shared/_JobTableRender.cshtml | 108 + .../Views/Shared/_JobTableRender.generated.cs | 732 + Disco.Web/Views/Shared/_Layout.cshtml | 108 + Disco.Web/Views/Shared/_Layout.generated.cs | 486 + Disco.Web/Views/Shared/_SearchDialog.cshtml | 35 + .../Views/Shared/_SearchDialog.generated.cs | 169 + Disco.Web/Views/User/Index.cshtml | 6 + Disco.Web/Views/User/Index.generated.cs | 65 + Disco.Web/Views/User/Show.cshtml | 85 + Disco.Web/Views/User/Show.generated.cs | 300 + .../Views/User/UserParts/Resources.cshtml | 193 + .../User/UserParts/Resources.generated.cs | 479 + .../_UserDeviceAssignmentHistoryTable.cshtml | 80 + ...rDeviceAssignmentHistoryTable.generated.cs | 334 + Disco.Web/Views/User/_UserTable.cshtml | 59 + Disco.Web/Views/User/_UserTable.generated.cs | 211 + Disco.Web/Views/User/_ViewStart.cshtml | 3 + Disco.Web/Views/User/_ViewStart.generated.cs | 54 + Disco.Web/Views/Web.config | 62 + Disco.Web/Views/_ViewStart.cshtml | 3 + Disco.Web/Views/_ViewStart.generated.cs | 54 + Disco.Web/Web.Debug.config | 31 + Disco.Web/Web.Release.config | 35 + Disco.Web/Web.config | 83 + .../Microsoft.VC90.CRT.manifest | 6 + .../amd64/Microsoft.VC90.CRT/README_ENU.txt | Bin 0 -> 406 bytes .../amd64/Microsoft.VC90.CRT/msvcr90.dll | Bin 0 -> 624448 bytes .../amd64/sqlceca40.dll | Bin 0 -> 463584 bytes .../amd64/sqlcecompact40.dll | Bin 0 -> 106720 bytes .../amd64/sqlceer40EN.dll | Bin 0 -> 154848 bytes .../amd64/sqlceme40.dll | Bin 0 -> 81120 bytes .../amd64/sqlceqp40.dll | Bin 0 -> 909536 bytes .../amd64/sqlcese40.dll | Bin 0 -> 561888 bytes .../Microsoft.VC90.CRT.manifest | 6 + .../x86/Microsoft.VC90.CRT/README_ENU.txt | Bin 0 -> 406 bytes .../x86/Microsoft.VC90.CRT/msvcr90.dll | Bin 0 -> 653120 bytes .../x86/sqlceca40.dll | Bin 0 -> 349920 bytes .../x86/sqlcecompact40.dll | Bin 0 -> 90848 bytes .../x86/sqlceer40EN.dll | Bin 0 -> 154336 bytes .../x86/sqlceme40.dll | Bin 0 -> 67296 bytes .../x86/sqlceqp40.dll | Bin 0 -> 642784 bytes .../x86/sqlcese40.dll | Bin 0 -> 406240 bytes Disco.Web/favicon.ico | Bin 0 -> 32988 bytes Disco.Web/packages.config | 37 + Disco.sln | 125 + 1103 files changed, 285609 insertions(+) create mode 100644 Disco.BI/BI/AttachmentBI/Utilities.cs create mode 100644 Disco.BI/BI/DataStore.cs create mode 100644 Disco.BI/BI/DeviceBI/BatchUtilities.cs create mode 100644 Disco.BI/BI/DeviceBI/Enrol.cs create mode 100644 Disco.BI/BI/DeviceBI/EnrolSafeException.cs create mode 100644 Disco.BI/BI/DeviceBI/EnrolmentLog.cs create mode 100644 Disco.BI/BI/DeviceBI/Searching.cs create mode 100644 Disco.BI/BI/DisposableImageCollection.cs create mode 100644 Disco.BI/BI/DocumentTemplateBI/DocumentTemplateQRCodeLocationCache.cs create mode 100644 Disco.BI/BI/DocumentTemplateBI/DocumentUniqueIdentifier.cs create mode 100644 Disco.BI/BI/DocumentTemplateBI/Importer/DocumentDropBoxMonitor.cs create mode 100644 Disco.BI/BI/DocumentTemplateBI/Importer/DocumentImporterCleanCacheJob.cs create mode 100644 Disco.BI/BI/DocumentTemplateBI/Importer/DocumentImporterJob.cs create mode 100644 Disco.BI/BI/DocumentTemplateBI/Importer/DocumentImporterLog.cs create mode 100644 Disco.BI/BI/DocumentTemplateBI/Utilities.cs create mode 100644 Disco.BI/BI/Expressions/EvaluateExpressionParseException.cs create mode 100644 Disco.BI/BI/Expressions/EvaluateExpressionPart.cs create mode 100644 Disco.BI/BI/Expressions/Expression.cs create mode 100644 Disco.BI/BI/Expressions/ExpressionCache.cs create mode 100644 Disco.BI/BI/Expressions/ExpressionCachePreloadTask.cs create mode 100644 Disco.BI/BI/Expressions/ExpressionTypeDescriptor.cs create mode 100644 Disco.BI/BI/Expressions/ExpressionTypeMemberDescriptor.cs create mode 100644 Disco.BI/BI/Expressions/Extensions/DataExt.cs create mode 100644 Disco.BI/BI/Expressions/Extensions/DeviceExt.cs create mode 100644 Disco.BI/BI/Expressions/Extensions/ImageExt.cs create mode 100644 Disco.BI/BI/Expressions/Extensions/ImageResultImplementations/BaseImageExpressionResult.cs create mode 100644 Disco.BI/BI/Expressions/Extensions/ImageResultImplementations/BitmapImageExpressionResult.cs create mode 100644 Disco.BI/BI/Expressions/Extensions/ImageResultImplementations/FileImageExpressionResult.cs create mode 100644 Disco.BI/BI/Expressions/Extensions/ImageResultImplementations/FileMontageImageExpressionResult.cs create mode 100644 Disco.BI/BI/Expressions/Extensions/UserExt.cs create mode 100644 Disco.BI/BI/Expressions/IExpressionPart.cs create mode 100644 Disco.BI/BI/Expressions/TextExpressionPart.cs create mode 100644 Disco.BI/BI/Extensions/AttachmentActionExtensions.cs create mode 100644 Disco.BI/BI/Extensions/AttachmentExtensions.cs create mode 100644 Disco.BI/BI/Extensions/ClientServicesExtensions.cs create mode 100644 Disco.BI/BI/Extensions/DeviceActionExtensions.cs create mode 100644 Disco.BI/BI/Extensions/DeviceBatchExtensions.cs create mode 100644 Disco.BI/BI/Extensions/DeviceCertificateExtensions.cs create mode 100644 Disco.BI/BI/Extensions/DeviceExtensions.cs create mode 100644 Disco.BI/BI/Extensions/DeviceModelExtensions.cs create mode 100644 Disco.BI/BI/Extensions/DeviceProfileExtensions.cs create mode 100644 Disco.BI/BI/Extensions/DocumentTemplateExtensions.cs create mode 100644 Disco.BI/BI/Extensions/JobActionExtensions.cs create mode 100644 Disco.BI/BI/Extensions/JobExtensions.cs create mode 100644 Disco.BI/BI/Extensions/JobFlagExtensions.cs create mode 100644 Disco.BI/BI/Extensions/JobTableExtensions.cs create mode 100644 Disco.BI/BI/Extensions/UserExtensions.cs create mode 100644 Disco.BI/BI/Extensions/UtilityExtensions.cs create mode 100644 Disco.BI/BI/Extensions/WirelessCertificateExtensions.cs create mode 100644 Disco.BI/BI/Interop/ActiveDirectory/ActiveDirectory.cs create mode 100644 Disco.BI/BI/Interop/ActiveDirectory/ActiveDirectoryCachedGroups.cs create mode 100644 Disco.BI/BI/Interop/ActiveDirectory/ActiveDirectoryHelpers.cs create mode 100644 Disco.BI/BI/Interop/ActiveDirectory/ActiveDirectoryMachineAccountExtensions.cs create mode 100644 Disco.BI/BI/Interop/ActiveDirectory/ActiveDirectoryOrganisationalUnit.cs create mode 100644 Disco.BI/BI/Interop/ActiveDirectory/ActiveDirectoryUpdateLastNetworkLogonDateJob.cs create mode 100644 Disco.BI/BI/Interop/ActiveDirectory/ActiveDirectoryUserAccountExtensions.cs create mode 100644 Disco.BI/BI/Interop/Community/UpdateCheck.cs create mode 100644 Disco.BI/BI/Interop/Community/UpdateCheckTask.cs create mode 100644 Disco.BI/BI/Interop/MimeTypes.cs create mode 100644 Disco.BI/BI/Interop/Pdf/PdfGenerator.cs create mode 100644 Disco.BI/BI/Interop/Pdf/PdfImporter.cs create mode 100644 Disco.BI/BI/Interop/PluginServices/IDiscoScheduledTask.cs create mode 100644 Disco.BI/BI/Interop/PluginServices/Utilities.cs create mode 100644 Disco.BI/BI/Interop/SignalRHandlers/UserHeldDevices.cs create mode 100644 Disco.BI/BI/JobBI/Searching.cs create mode 100644 Disco.BI/BI/JobBI/Statistics/DailyOpenedClosed.cs create mode 100644 Disco.BI/BI/JobBI/Utilities.cs create mode 100644 Disco.BI/BI/UserBI/Searching.cs create mode 100644 Disco.BI/BI/UserBI/UserCache.cs create mode 100644 Disco.BI/BI/UserBI/Utilities.cs create mode 100644 Disco.BI/BI/Wireless/BaseWirelessProvider.cs create mode 100644 Disco.BI/BI/Wireless/WirelessCertificatesLog.cs create mode 100644 Disco.BI/BI/Wireless/eduSTAR/eduSTARWirelessProvider.cs create mode 100644 Disco.BI/Disco.BI.csproj create mode 100644 Disco.BI/Properties/AssemblyInfo.cs create mode 100644 Disco.BI/Properties/Resources.Designer.cs create mode 100644 Disco.BI/Properties/Resources.resx create mode 100644 Disco.BI/Resources/EmptyLogo.png create mode 100644 Disco.BI/Resources/MimeType-doc48.png create mode 100644 Disco.BI/Resources/MimeType-img16.png create mode 100644 Disco.BI/Resources/MimeType-pdf16.png create mode 100644 Disco.BI/Resources/MimeType-pdf48.png create mode 100644 Disco.BI/Resources/MimeType-unknown48.png create mode 100644 Disco.BI/app.config create mode 100644 Disco.BI/packages.config create mode 100644 Disco.Client/App.config create mode 100644 Disco.Client/Disco.Client.csproj create mode 100644 Disco.Client/ErrorReporting.cs create mode 100644 Disco.Client/Extensions/ClientServiceException.cs create mode 100644 Disco.Client/Extensions/ClientServicesExtensions.cs create mode 100644 Disco.Client/Extensions/EnrolExtensions.cs create mode 100644 Disco.Client/Extensions/WhoAmIExtensions.cs create mode 100644 Disco.Client/Icon.ico create mode 100644 Disco.Client/Interop/Certificates.cs create mode 100644 Disco.Client/Interop/LocalAuthentication.cs create mode 100644 Disco.Client/Interop/Network.cs create mode 100644 Disco.Client/Interop/SystemAudit.cs create mode 100644 Disco.Client/Package Creation/7z.dll create mode 100644 Disco.Client/Package Creation/7z.exe create mode 100644 Disco.Client/Package Creation/PreparationClient.zip create mode 100644 Disco.Client/Presentation.cs create mode 100644 Disco.Client/Program.cs create mode 100644 Disco.Client/Properties/AssemblyInfo.cs create mode 100644 Disco.Client/Properties/app.manifest create mode 100644 Disco.Client/PsExec.exe create mode 100644 Disco.Client/Start.bat create mode 100644 Disco.Client/packages.config create mode 100644 Disco.ClientBootstrapper/BootstrapperLoop.cs create mode 100644 Disco.ClientBootstrapper/BootstrapperWorkstationInstall.vbs create mode 100644 Disco.ClientBootstrapper/Disco.ClientBootstrapper.csproj create mode 100644 Disco.ClientBootstrapper/EmbedBootstrapper.vbs create mode 100644 Disco.ClientBootstrapper/FormStatus.Designer.cs create mode 100644 Disco.ClientBootstrapper/FormStatus.cs create mode 100644 Disco.ClientBootstrapper/FormStatus.resx create mode 100644 Disco.ClientBootstrapper/IStatus.cs create mode 100644 Disco.ClientBootstrapper/Icon.ico create mode 100644 Disco.ClientBootstrapper/InstallBootstrapper.vbs create mode 100644 Disco.ClientBootstrapper/InstallLoop.cs create mode 100644 Disco.ClientBootstrapper/Interop/CertificateInterop.cs create mode 100644 Disco.ClientBootstrapper/Interop/InstallInterop.cs create mode 100644 Disco.ClientBootstrapper/Interop/NetworkAdapter.cs create mode 100644 Disco.ClientBootstrapper/Interop/NetworkInterop.cs create mode 100644 Disco.ClientBootstrapper/Interop/RegistryInterop.cs create mode 100644 Disco.ClientBootstrapper/Interop/ShutdownInterop.cs create mode 100644 Disco.ClientBootstrapper/Interop/WIMInterop.cs create mode 100644 Disco.ClientBootstrapper/NullStatus.cs create mode 100644 Disco.ClientBootstrapper/Program.cs create mode 100644 Disco.ClientBootstrapper/Properties/AssemblyInfo.cs create mode 100644 Disco.ClientBootstrapper/Properties/Resources.Designer.cs create mode 100644 Disco.ClientBootstrapper/Properties/Resources.resx create mode 100644 Disco.ClientBootstrapper/Properties/Settings.Designer.cs create mode 100644 Disco.ClientBootstrapper/Properties/Settings.settings create mode 100644 Disco.ClientBootstrapper/Properties/app.manifest create mode 100644 Disco.ClientBootstrapper/Resources/Background-BW.png create mode 100644 Disco.ClientBootstrapper/UninstallBootstrapper.vbs create mode 100644 Disco.Configuration/Disco.Configuration.vbproj create mode 100644 Disco.Configuration/My Project/Application.Designer.vb create mode 100644 Disco.Configuration/My Project/Application.myapp create mode 100644 Disco.Configuration/My Project/AssemblyInfo.vb create mode 100644 Disco.Configuration/My Project/Resources.Designer.vb create mode 100644 Disco.Configuration/My Project/Resources.resx create mode 100644 Disco.Configuration/My Project/Settings.Designer.vb create mode 100644 Disco.Configuration/My Project/Settings.settings create mode 100644 Disco.Data/App.config create mode 100644 Disco.Data/Configuration/ConfigurationBase.cs create mode 100644 Disco.Data/Configuration/ConfigurationContext.cs create mode 100644 Disco.Data/Configuration/Modules/BootstrapperConfiguration.cs create mode 100644 Disco.Data/Configuration/Modules/DeviceProfileConfiguration.cs create mode 100644 Disco.Data/Configuration/Modules/DeviceProfilesConfiguration.cs create mode 100644 Disco.Data/Configuration/Modules/OrganisationAddressesConfiguration.cs create mode 100644 Disco.Data/Configuration/Modules/WirelessConfiguration.cs create mode 100644 Disco.Data/Disco.Data.csproj create mode 100644 Disco.Data/Disco.Data.sln create mode 100644 Disco.Data/Migrations/201204250418485_DBv0.Designer.cs create mode 100644 Disco.Data/Migrations/201204250418485_DBv0.cs create mode 100644 Disco.Data/Migrations/201205100307196_DBv1.Designer.cs create mode 100644 Disco.Data/Migrations/201205100307196_DBv1.cs create mode 100644 Disco.Data/Migrations/201205290205162_DBv2.Designer.cs create mode 100644 Disco.Data/Migrations/201205290205162_DBv2.cs create mode 100644 Disco.Data/Migrations/201206140712161_DBv3.Designer.cs create mode 100644 Disco.Data/Migrations/201206140712161_DBv3.cs create mode 100644 Disco.Data/Migrations/201206280337277_DBv4.Designer.cs create mode 100644 Disco.Data/Migrations/201206280337277_DBv4.cs create mode 100644 Disco.Data/Migrations/201211090325116_DBv5.Designer.cs create mode 100644 Disco.Data/Migrations/201211090325116_DBv5.cs create mode 100644 Disco.Data/Migrations/201211090325116_DBv5.resx create mode 100644 Disco.Data/Migrations/201301150107063_DBv6.Designer.cs create mode 100644 Disco.Data/Migrations/201301150107063_DBv6.cs create mode 100644 Disco.Data/Migrations/201301150107063_DBv6.resx create mode 100644 Disco.Data/Migrations/Configuration.cs create mode 100644 Disco.Data/Migrations/DiscoDataMigrator.cs create mode 100644 Disco.Data/Properties/AssemblyInfo.cs create mode 100644 Disco.Data/Properties/Resources.Designer.cs create mode 100644 Disco.Data/Properties/Resources.resx create mode 100644 Disco.Data/Repository/DiscoDataContext.cs create mode 100644 Disco.Data/Repository/DiscoDataContextInitializer.cs create mode 100644 Disco.Data/Repository/DiscoDataSeeder.cs create mode 100644 Disco.Data/Repository/DiscoDatabaseConnectionFactory.cs create mode 100644 Disco.Data/Resources/EmptyLogo.png create mode 100644 Disco.Data/packages.config create mode 100644 Disco.Logging/App.config create mode 100644 Disco.Logging/Disco.Logging.csproj create mode 100644 Disco.Logging/LogBase.cs create mode 100644 Disco.Logging/LogContext.cs create mode 100644 Disco.Logging/LogReInitalizeJob.cs create mode 100644 Disco.Logging/Models/LogEvent.cs create mode 100644 Disco.Logging/Models/LogEventType.cs create mode 100644 Disco.Logging/Models/LogLiveEvent.cs create mode 100644 Disco.Logging/Models/LogModule.cs create mode 100644 Disco.Logging/Properties/AssemblyInfo.cs create mode 100644 Disco.Logging/ReadLogContext.cs create mode 100644 Disco.Logging/SystemLog.cs create mode 100644 Disco.Logging/Targets/LogLiveContext.cs create mode 100644 Disco.Logging/Targets/LogPersistContext.cs create mode 100644 Disco.Logging/Utilities.cs create mode 100644 Disco.Logging/packages.config create mode 100644 Disco.Models/App.config create mode 100644 Disco.Models/BI/Config/OrganisationAddress.cs create mode 100644 Disco.Models/BI/DocumentTemplate/DocumentState.cs create mode 100644 Disco.Models/BI/Expressions/IImageExpressionResult.cs create mode 100644 Disco.Models/BI/Interop/Community/UpdateRequestBase.cs create mode 100644 Disco.Models/BI/Interop/Community/UpdateRequestV1.cs create mode 100644 Disco.Models/BI/Interop/Community/UpdateResponse.cs create mode 100644 Disco.Models/BI/Job/JobTableModel.cs create mode 100644 Disco.Models/BI/Job/Statistics/DailyOpenedClosedItem.cs create mode 100644 Disco.Models/BI/Search/DeviceSearchResultItem.cs create mode 100644 Disco.Models/BI/Search/UserSearchResultItem.cs create mode 100644 Disco.Models/ClientServices/Enrol.cs create mode 100644 Disco.Models/ClientServices/EnrolResponse.cs create mode 100644 Disco.Models/ClientServices/MacEnrol.cs create mode 100644 Disco.Models/ClientServices/MacEnrolResponse.cs create mode 100644 Disco.Models/ClientServices/MacSecureEnrolResponse.cs create mode 100644 Disco.Models/ClientServices/ServiceBase.cs create mode 100644 Disco.Models/ClientServices/WhoAmI.cs create mode 100644 Disco.Models/ClientServices/WhoAmIResponse.cs create mode 100644 Disco.Models/Disco.Models.csproj create mode 100644 Disco.Models/Interop/ActiveDirectory/ActiveDirectoryMachineAccount.cs create mode 100644 Disco.Models/Interop/ActiveDirectory/ActiveDirectoryUserAccount.cs create mode 100644 Disco.Models/Properties/AssemblyInfo.cs create mode 100644 Disco.Models/Repository/ConfigurationItem.cs create mode 100644 Disco.Models/Repository/Device/Device.cs create mode 100644 Disco.Models/Repository/Device/DeviceAttachment.cs create mode 100644 Disco.Models/Repository/Device/DeviceBatch.cs create mode 100644 Disco.Models/Repository/Device/DeviceCertificate.cs create mode 100644 Disco.Models/Repository/Device/DeviceComponent.cs create mode 100644 Disco.Models/Repository/Device/DeviceDetail.cs create mode 100644 Disco.Models/Repository/Device/DeviceModel.cs create mode 100644 Disco.Models/Repository/Device/DeviceProfile.cs create mode 100644 Disco.Models/Repository/Device/DeviceUserAssignment.cs create mode 100644 Disco.Models/Repository/DocumentTemplate/DocumentTemplate.cs create mode 100644 Disco.Models/Repository/Job/Job.cs create mode 100644 Disco.Models/Repository/Job/JobAssignment.cs create mode 100644 Disco.Models/Repository/Job/JobAttachment.cs create mode 100644 Disco.Models/Repository/Job/JobComponent.cs create mode 100644 Disco.Models/Repository/Job/JobLog.cs create mode 100644 Disco.Models/Repository/Job/JobMeta/JobMetaInsurance.cs create mode 100644 Disco.Models/Repository/Job/JobMeta/JobMetaNonWarranty.cs create mode 100644 Disco.Models/Repository/Job/JobMeta/JobMetaWarranty.cs create mode 100644 Disco.Models/Repository/Job/JobSubType.cs create mode 100644 Disco.Models/Repository/Job/JobType.cs create mode 100644 Disco.Models/Repository/User/User.cs create mode 100644 Disco.Models/Repository/User/UserAttachment.cs create mode 100644 Disco.Models/Repository/User/UserDetail.cs create mode 100644 Disco.Services/App.config create mode 100644 Disco.Services/App_Start/RazorGeneratorMvcStart.cs create mode 100644 Disco.Services/Disco.Services.csproj create mode 100644 Disco.Services/Logging/LogBase.cs create mode 100644 Disco.Services/Logging/LogContext.cs create mode 100644 Disco.Services/Logging/LogReInitalizeJob.cs create mode 100644 Disco.Services/Logging/Models/LogEvent.cs create mode 100644 Disco.Services/Logging/Models/LogEventType.cs create mode 100644 Disco.Services/Logging/Models/LogLiveEvent.cs create mode 100644 Disco.Services/Logging/Models/LogModule.cs create mode 100644 Disco.Services/Logging/ReadLogContext.cs create mode 100644 Disco.Services/Logging/SystemLog.cs create mode 100644 Disco.Services/Logging/Targets/LogLiveContext.cs create mode 100644 Disco.Services/Logging/Targets/LogPersistContext.cs create mode 100644 Disco.Services/Logging/Utilities.cs create mode 100644 Disco.Services/Plugins/Features/CertificateProvider/CertificateProviderFeature.cs create mode 100644 Disco.Services/Plugins/Features/CertificateProvider/CertificateProviderLog.cs create mode 100644 Disco.Services/Plugins/Features/InteroperabilityProvider/InteroperabilityProviderFeature.cs create mode 100644 Disco.Services/Plugins/Features/Other/OtherFeature.cs create mode 100644 Disco.Services/Plugins/Features/WarrantyProvider/WarrantyProviderFeature.cs create mode 100644 Disco.Services/Plugins/Features/WarrantyProvider/WarrantyProviderSubmitJobException.cs create mode 100644 Disco.Services/Plugins/InvalidFeatureCategoryTypeException.cs create mode 100644 Disco.Services/Plugins/Plugin.cs create mode 100644 Disco.Services/Plugins/PluginAttribute.cs create mode 100644 Disco.Services/Plugins/PluginConfigurationHandler.cs create mode 100644 Disco.Services/Plugins/PluginExtensions.cs create mode 100644 Disco.Services/Plugins/PluginFeature.cs create mode 100644 Disco.Services/Plugins/PluginFeatureAttribute.cs create mode 100644 Disco.Services/Plugins/PluginFeatureCategoryAttribute.cs create mode 100644 Disco.Services/Plugins/PluginFeatureManifest.cs create mode 100644 Disco.Services/Plugins/PluginManifest.cs create mode 100644 Disco.Services/Plugins/PluginWebHandler.cs create mode 100644 Disco.Services/Plugins/PluginWebHandlerController.cs create mode 100644 Disco.Services/Plugins/Plugins.cs create mode 100644 Disco.Services/Plugins/PluginsLog.cs create mode 100644 Disco.Services/Plugins/UnknownPluginException.cs create mode 100644 Disco.Services/Properties/AssemblyInfo.cs create mode 100644 Disco.Services/Tasks/ScheduledTask.cs create mode 100644 Disco.Services/Tasks/ScheduledTaskCleanup.cs create mode 100644 Disco.Services/Tasks/ScheduledTaskStatus.cs create mode 100644 Disco.Services/Tasks/ScheduledTaskStatusLive.cs create mode 100644 Disco.Services/Tasks/ScheduledTasks.cs create mode 100644 Disco.Services/Tasks/ScheduledTasksLiveStatusService.cs create mode 100644 Disco.Services/Tasks/ScheduledTasksLog.cs create mode 100644 Disco.Services/_Plugins/Categories/CertificateProvider/CertificateProviderLog.cs create mode 100644 Disco.Services/_Plugins/Categories/CertificateProvider/CertificateProviderPlugin.cs create mode 100644 Disco.Services/_Plugins/Categories/InteroperabilityProvider/InteroperabilityProviderPlugin.cs create mode 100644 Disco.Services/_Plugins/Categories/WarrantyProvider/WarrantyProviderPlugin.cs create mode 100644 Disco.Services/_Plugins/Categories/WarrantyProvider/WarrantyProviderSubmitJobException.cs create mode 100644 Disco.Services/_Plugins/IPluginConfiguration.cs create mode 100644 Disco.Services/_Plugins/IPluginWebController.cs create mode 100644 Disco.Services/_Plugins/InvalidCategoryTypeException.cs create mode 100644 Disco.Services/_Plugins/Plugin.cs create mode 100644 Disco.Services/_Plugins/PluginCategoryAttribute.cs create mode 100644 Disco.Services/_Plugins/PluginDefinition.cs create mode 100644 Disco.Services/_Plugins/PluginExtensions.cs create mode 100644 Disco.Services/_Plugins/PluginWebControllerException.cs create mode 100644 Disco.Services/_Plugins/PluginWebControllerExtensions.cs create mode 100644 Disco.Services/_Plugins/Plugins.cs create mode 100644 Disco.Services/_Plugins/PluginsLog.cs create mode 100644 Disco.Services/_Plugins/UnknownPluginException.cs create mode 100644 Disco.Services/packages.config create mode 100644 Disco.Silverlight.AttachmentUpload/App.xaml create mode 100644 Disco.Silverlight.AttachmentUpload/App.xaml.vb create mode 100644 Disco.Silverlight.AttachmentUpload/Assets/Styles.xaml create mode 100644 Disco.Silverlight.AttachmentUpload/Assets/dropTarget.png create mode 100644 Disco.Silverlight.AttachmentUpload/Disco.Silverlight.AttachmentUpload.vbproj create mode 100644 Disco.Silverlight.AttachmentUpload/FileUploader.vb create mode 100644 Disco.Silverlight.AttachmentUpload/JavascriptNavigator.vb create mode 100644 Disco.Silverlight.AttachmentUpload/MainPage.xaml create mode 100644 Disco.Silverlight.AttachmentUpload/MainPage.xaml.vb create mode 100644 Disco.Silverlight.AttachmentUpload/My Project/AppManifest.xml create mode 100644 Disco.Silverlight.AttachmentUpload/My Project/AssemblyInfo.vb create mode 100644 Disco.Silverlight.AttachmentUpload/Views/ErrorWindow.xaml create mode 100644 Disco.Silverlight.AttachmentUpload/Views/ErrorWindow.xaml.vb create mode 100644 Disco.Silverlight.AttachmentUpload/Views/File.xaml create mode 100644 Disco.Silverlight.AttachmentUpload/Views/File.xaml.vb create mode 100644 Disco.Silverlight.AttachmentUpload/Views/FileWindow.xaml create mode 100644 Disco.Silverlight.AttachmentUpload/Views/FileWindow.xaml.vb create mode 100644 Disco.Silverlight.AttachmentUpload/Views/Hidden.xaml create mode 100644 Disco.Silverlight.AttachmentUpload/Views/Hidden.xaml.vb create mode 100644 Disco.Silverlight.AttachmentUpload/Views/WebCam.xaml create mode 100644 Disco.Silverlight.AttachmentUpload/Views/WebCam.xaml.vb create mode 100644 Disco.Silverlight.AttachmentUpload/WriteableBitmapExtensions.vb create mode 100644 Disco.Utilities/Disco.Utilities.vbproj create mode 100644 Disco.Utilities/ModuleMain.vb create mode 100644 Disco.Utilities/My Project/Application.Designer.vb create mode 100644 Disco.Utilities/My Project/Application.myapp create mode 100644 Disco.Utilities/My Project/AssemblyInfo.vb create mode 100644 Disco.Utilities/My Project/Resources.Designer.vb create mode 100644 Disco.Utilities/My Project/Resources.resx create mode 100644 Disco.Utilities/My Project/Settings.Designer.vb create mode 100644 Disco.Utilities/My Project/Settings.settings create mode 100644 Disco.Utilities/My Project/app.manifest create mode 100644 Disco.Utilities/app.config create mode 100644 Disco.Utilities/packages.config create mode 100644 Disco.Web.Extensions/App.config create mode 100644 Disco.Web.Extensions/BIModelExtensions/DiscoPluginDefinitionExtensions.cs create mode 100644 Disco.Web.Extensions/BIModelExtensions/OrganisationAddressExtensions.cs create mode 100644 Disco.Web.Extensions/BIModelExtensions/UtilityExtensions.cs create mode 100644 Disco.Web.Extensions/DataModelExtension/DeviceBatchExtensions.cs create mode 100644 Disco.Web.Extensions/DataModelExtension/DeviceModelExtensions.cs create mode 100644 Disco.Web.Extensions/DataModelExtension/DeviceProfileExtensions.cs create mode 100644 Disco.Web.Extensions/DataModelExtension/DocumentTemplateExtensions.cs create mode 100644 Disco.Web.Extensions/DataModelExtension/JobSubTypeExtensions.cs create mode 100644 Disco.Web.Extensions/DataModelExtension/JobTypeExtensions.cs create mode 100644 Disco.Web.Extensions/Disco.Web.Extensions.csproj create mode 100644 Disco.Web.Extensions/MvcExtensions/Bundles/Bundle.cs create mode 100644 Disco.Web.Extensions/MvcExtensions/Bundles/BundleExtensions.cs create mode 100644 Disco.Web.Extensions/MvcExtensions/Bundles/BundleHandler.cs create mode 100644 Disco.Web.Extensions/MvcExtensions/Bundles/BundleModule.cs create mode 100644 Disco.Web.Extensions/MvcExtensions/Bundles/BundleTable.cs create mode 100644 Disco.Web.Extensions/MvcExtensions/Bundles/BundleUnordered.cs create mode 100644 Disco.Web.Extensions/MvcExtensions/Bundles/JsJoin.cs create mode 100644 Disco.Web.Extensions/MvcExtensions/Bundles/LessCompile.cs create mode 100644 Disco.Web.Extensions/MvcExtensions/JsonNet/JsonNetResult.cs create mode 100644 Disco.Web.Extensions/MvcExtensions/PartialCompiled/PartialCompiledHtmlExtensions.cs create mode 100644 Disco.Web.Extensions/MvcExtensions/XmlResult.cs create mode 100644 Disco.Web.Extensions/MvcExtensions/dbAdminController.cs create mode 100644 Disco.Web.Extensions/MvcExtensions/dbController.cs create mode 100644 Disco.Web.Extensions/Properties/AssemblyInfo.cs create mode 100644 Disco.Web.Extensions/packages.config create mode 100644 Disco.Web/App_Code/AjaxHelpers.cshtml create mode 100644 Disco.Web/App_Code/AjaxHelpers.generated.cs create mode 100644 Disco.Web/App_Code/CommonHelpers.cshtml create mode 100644 Disco.Web/App_Code/CommonHelpers.generated.cs create mode 100644 Disco.Web/App_Start/AppConfig.cs create mode 100644 Disco.Web/App_Start/BundleConfig.cs create mode 100644 Disco.Web/App_Start/FilterConfig.cs create mode 100644 Disco.Web/App_Start/RazorGeneratorMvcStart.cs create mode 100644 Disco.Web/App_Start/RouteConfig.cs create mode 100644 Disco.Web/App_Start/WebApiConfig.cs create mode 100644 Disco.Web/Areas/API/APIAreaRegistration.cs create mode 100644 Disco.Web/Areas/API/Controllers/BootstrapperController.cs create mode 100644 Disco.Web/Areas/API/Controllers/DeviceBatchController.cs create mode 100644 Disco.Web/Areas/API/Controllers/DeviceController.cs create mode 100644 Disco.Web/Areas/API/Controllers/DeviceModelController.cs create mode 100644 Disco.Web/Areas/API/Controllers/DeviceProfileController.cs create mode 100644 Disco.Web/Areas/API/Controllers/DocumentTemplateController.cs create mode 100644 Disco.Web/Areas/API/Controllers/ExpressionsController.cs create mode 100644 Disco.Web/Areas/API/Controllers/JobController.cs create mode 100644 Disco.Web/Areas/API/Controllers/LoggingController.cs create mode 100644 Disco.Web/Areas/API/Controllers/SystemController.cs create mode 100644 Disco.Web/Areas/API/Controllers/UserController.cs create mode 100644 Disco.Web/Areas/API/Controllers/WirelessCertificateController.cs create mode 100644 Disco.Web/Areas/API/Models/Attachment/AttachmentModel.cs create mode 100644 Disco.Web/Areas/API/Models/Attachment/AttachmentsModel.cs create mode 100644 Disco.Web/Areas/API/Models/Attachment/_AttachmentModel.cs create mode 100644 Disco.Web/Areas/API/Models/DeviceBatch/DeviceBatchTimelineEvent.cs create mode 100644 Disco.Web/Areas/API/Models/DeviceBatch/DeviceBatchTimelineEventSource.cs create mode 100644 Disco.Web/Areas/API/Models/DeviceModel/ComponentModel.cs create mode 100644 Disco.Web/Areas/API/Models/DeviceModel/_ComponentModel.cs create mode 100644 Disco.Web/Areas/API/Models/DeviceModel/_DeviceModel.cs create mode 100644 Disco.Web/Areas/API/Models/DocumentTemplate/ImporterUndetectedDataIdLookupModel.cs create mode 100644 Disco.Web/Areas/API/Models/DocumentTemplate/ImporterUndetectedFilesModel.cs create mode 100644 Disco.Web/Areas/API/Models/Expressions/ValidateExpressionModel.cs create mode 100644 Disco.Web/Areas/API/Models/Job/CommentPostModel.cs create mode 100644 Disco.Web/Areas/API/Models/Job/CommentsModel.cs create mode 100644 Disco.Web/Areas/API/Models/Job/ComponentModel.cs create mode 100644 Disco.Web/Areas/API/Models/Job/_CommentModel.cs create mode 100644 Disco.Web/Areas/API/Models/Job/_ComponentModel.cs create mode 100644 Disco.Web/Areas/API/Models/Job/_DateChangeModel.cs create mode 100644 Disco.Web/Areas/API/Models/Logs/LogEventTypeModel.cs create mode 100644 Disco.Web/Areas/API/Models/Logs/LogModuleModel.cs create mode 100644 Disco.Web/Areas/API/Models/System/UpdateLastNetworkLogonDatesModel.cs create mode 100644 Disco.Web/Areas/Config/ConfigAreaRegistration.cs create mode 100644 Disco.Web/Areas/Config/Controllers/ConfigController.cs create mode 100644 Disco.Web/Areas/Config/Controllers/DeviceBatchController.cs create mode 100644 Disco.Web/Areas/Config/Controllers/DeviceModelController.cs create mode 100644 Disco.Web/Areas/Config/Controllers/DeviceProfileController.cs create mode 100644 Disco.Web/Areas/Config/Controllers/DocumentTemplateController.cs create mode 100644 Disco.Web/Areas/Config/Controllers/EnrolmentController.cs create mode 100644 Disco.Web/Areas/Config/Controllers/ExpressionsController.cs create mode 100644 Disco.Web/Areas/Config/Controllers/LoggingController.cs create mode 100644 Disco.Web/Areas/Config/Controllers/OrganisationController.cs create mode 100644 Disco.Web/Areas/Config/Controllers/PluginsController.cs create mode 100644 Disco.Web/Areas/Config/Controllers/SystemConfigController.cs create mode 100644 Disco.Web/Areas/Config/Models/Config/IndexModel.cs create mode 100644 Disco.Web/Areas/Config/Models/DeviceBatch/IndexModel.cs create mode 100644 Disco.Web/Areas/Config/Models/DeviceBatch/ShowModel.cs create mode 100644 Disco.Web/Areas/Config/Models/DeviceBatch/_IndexModelDeviceBatch.cs create mode 100644 Disco.Web/Areas/Config/Models/DeviceModel/DeviceComponentsModel.cs create mode 100644 Disco.Web/Areas/Config/Models/DeviceModel/IndexModel.cs create mode 100644 Disco.Web/Areas/Config/Models/DeviceModel/ShowModel.cs create mode 100644 Disco.Web/Areas/Config/Models/DeviceModel/_IndexModelDeviceModel.cs create mode 100644 Disco.Web/Areas/Config/Models/DeviceProfile/DefaultsModel.cs create mode 100644 Disco.Web/Areas/Config/Models/DeviceProfile/IndexModel.cs create mode 100644 Disco.Web/Areas/Config/Models/DeviceProfile/ShowModel.cs create mode 100644 Disco.Web/Areas/Config/Models/DeviceProfile/_IndexModelDeviceProfile.cs create mode 100644 Disco.Web/Areas/Config/Models/DocumentTemplate/CreateModel.cs create mode 100644 Disco.Web/Areas/Config/Models/DocumentTemplate/ExpressionBrowserModel.cs create mode 100644 Disco.Web/Areas/Config/Models/DocumentTemplate/IndexModel.cs create mode 100644 Disco.Web/Areas/Config/Models/DocumentTemplate/ShowModel.cs create mode 100644 Disco.Web/Areas/Config/Models/DocumentTemplate/UndetectedPagesModel.cs create mode 100644 Disco.Web/Areas/Config/Models/Enrolment/IndexModel.cs create mode 100644 Disco.Web/Areas/Config/Models/Expressions/EditorModel.cs create mode 100644 Disco.Web/Areas/Config/Models/Logging/IndexModel.cs create mode 100644 Disco.Web/Areas/Config/Models/Logging/TaskStatusModel.cs create mode 100644 Disco.Web/Areas/Config/Models/Organisation/IndexModel.cs create mode 100644 Disco.Web/Areas/Config/Models/Plugins/IndexViewModel.cs create mode 100644 Disco.Web/Areas/Config/Models/Plugins/ProviderConfigurationViewModel.cs create mode 100644 Disco.Web/Areas/Config/Models/Shared/LogEventsModel.cs create mode 100644 Disco.Web/Areas/Config/Models/SystemConfig/IndexModel.cs create mode 100644 Disco.Web/Areas/Config/Models/WirelessCertificate/IndexModel.cs create mode 100644 Disco.Web/Areas/Config/Views/Config/Index.cshtml create mode 100644 Disco.Web/Areas/Config/Views/Config/Index.generated.cs create mode 100644 Disco.Web/Areas/Config/Views/DeviceBatch/Create.cshtml create mode 100644 Disco.Web/Areas/Config/Views/DeviceBatch/Create.generated.cs create mode 100644 Disco.Web/Areas/Config/Views/DeviceBatch/Index.cshtml create mode 100644 Disco.Web/Areas/Config/Views/DeviceBatch/Index.generated.cs create mode 100644 Disco.Web/Areas/Config/Views/DeviceBatch/Show.cshtml create mode 100644 Disco.Web/Areas/Config/Views/DeviceBatch/Show.generated.cs create mode 100644 Disco.Web/Areas/Config/Views/DeviceBatch/Timeline.cshtml create mode 100644 Disco.Web/Areas/Config/Views/DeviceBatch/Timeline.generated.cs create mode 100644 Disco.Web/Areas/Config/Views/DeviceModel/GenericComponents.cshtml create mode 100644 Disco.Web/Areas/Config/Views/DeviceModel/GenericComponents.generated.cs create mode 100644 Disco.Web/Areas/Config/Views/DeviceModel/Index.cshtml create mode 100644 Disco.Web/Areas/Config/Views/DeviceModel/Index.generated.cs create mode 100644 Disco.Web/Areas/Config/Views/DeviceModel/Show.cshtml create mode 100644 Disco.Web/Areas/Config/Views/DeviceModel/Show.generated.cs create mode 100644 Disco.Web/Areas/Config/Views/DeviceModel/_DeviceComponentsTable.cshtml create mode 100644 Disco.Web/Areas/Config/Views/DeviceModel/_DeviceComponentsTable.generated.cs create mode 100644 Disco.Web/Areas/Config/Views/DeviceProfile/Create.cshtml create mode 100644 Disco.Web/Areas/Config/Views/DeviceProfile/Create.generated.cs create mode 100644 Disco.Web/Areas/Config/Views/DeviceProfile/Defaults.cshtml create mode 100644 Disco.Web/Areas/Config/Views/DeviceProfile/Defaults.generated.cs create mode 100644 Disco.Web/Areas/Config/Views/DeviceProfile/Index.cshtml create mode 100644 Disco.Web/Areas/Config/Views/DeviceProfile/Index.generated.cs create mode 100644 Disco.Web/Areas/Config/Views/DeviceProfile/Show.cshtml create mode 100644 Disco.Web/Areas/Config/Views/DeviceProfile/Show.generated.cs create mode 100644 Disco.Web/Areas/Config/Views/DeviceProfile/_Table.cshtml create mode 100644 Disco.Web/Areas/Config/Views/DeviceProfile/_Table.generated.cs create mode 100644 Disco.Web/Areas/Config/Views/DeviceProfile/_TableRender.cshtml create mode 100644 Disco.Web/Areas/Config/Views/DeviceProfile/_TableRender.generated.cs create mode 100644 Disco.Web/Areas/Config/Views/DocumentTemplate/Create.cshtml create mode 100644 Disco.Web/Areas/Config/Views/DocumentTemplate/Create.generated.cs create mode 100644 Disco.Web/Areas/Config/Views/DocumentTemplate/ExpressionBrowser.cshtml create mode 100644 Disco.Web/Areas/Config/Views/DocumentTemplate/ExpressionBrowser2.generated.cs create mode 100644 Disco.Web/Areas/Config/Views/DocumentTemplate/ImportStatus.cshtml create mode 100644 Disco.Web/Areas/Config/Views/DocumentTemplate/ImportStatus.generated.cs create mode 100644 Disco.Web/Areas/Config/Views/DocumentTemplate/Index.cshtml create mode 100644 Disco.Web/Areas/Config/Views/DocumentTemplate/Index.generated.cs create mode 100644 Disco.Web/Areas/Config/Views/DocumentTemplate/Show.cshtml create mode 100644 Disco.Web/Areas/Config/Views/DocumentTemplate/Show.generated.cs create mode 100644 Disco.Web/Areas/Config/Views/DocumentTemplate/UndetectedPages.cshtml create mode 100644 Disco.Web/Areas/Config/Views/DocumentTemplate/UndetectedPages.generated.cs create mode 100644 Disco.Web/Areas/Config/Views/DocumentTemplate/_ExpressionsTable.cshtml create mode 100644 Disco.Web/Areas/Config/Views/DocumentTemplate/_ExpressionsTable.generated.cs create mode 100644 Disco.Web/Areas/Config/Views/Enrolment/Index.cshtml create mode 100644 Disco.Web/Areas/Config/Views/Enrolment/Index.generated.cs create mode 100644 Disco.Web/Areas/Config/Views/Enrolment/Status.cshtml create mode 100644 Disco.Web/Areas/Config/Views/Enrolment/Status.generated.cs create mode 100644 Disco.Web/Areas/Config/Views/Expressions/Editor.cshtml create mode 100644 Disco.Web/Areas/Config/Views/Expressions/Editor.generated.cs create mode 100644 Disco.Web/Areas/Config/Views/Logging/Index.cshtml create mode 100644 Disco.Web/Areas/Config/Views/Logging/Index.generated.cs create mode 100644 Disco.Web/Areas/Config/Views/Logging/TaskStatus.cshtml create mode 100644 Disco.Web/Areas/Config/Views/Logging/TaskStatus.generated.cs create mode 100644 Disco.Web/Areas/Config/Views/Organisation/Index.cshtml create mode 100644 Disco.Web/Areas/Config/Views/Organisation/Index.generated.cs create mode 100644 Disco.Web/Areas/Config/Views/Plugins/Configure.cshtml create mode 100644 Disco.Web/Areas/Config/Views/Plugins/Index.cshtml create mode 100644 Disco.Web/Areas/Config/Views/Plugins/Index.generated.cs create mode 100644 Disco.Web/Areas/Config/Views/Plugins/ProviderConfiguration.generated.cs create mode 100644 Disco.Web/Areas/Config/Views/Shared/LogEvents.cshtml create mode 100644 Disco.Web/Areas/Config/Views/Shared/LogEvents.generated.cs create mode 100644 Disco.Web/Areas/Config/Views/SystemConfig/Index.cshtml create mode 100644 Disco.Web/Areas/Config/Views/SystemConfig/Index.generated.cs create mode 100644 Disco.Web/Areas/Config/Views/Web.config create mode 100644 Disco.Web/Areas/Config/Views/_ViewStart.cshtml create mode 100644 Disco.Web/Areas/Config/Views/_ViewStart.generated.cs create mode 100644 Disco.Web/Areas/Public/Controllers/PublicController.cs create mode 100644 Disco.Web/Areas/Public/Controllers/UserHeldDevicesController.cs create mode 100644 Disco.Web/Areas/Public/Models/UserHeldDevices/HeldJobDeviceModel.cs create mode 100644 Disco.Web/Areas/Public/Models/UserHeldDevices/UserHeldDeviceModel.cs create mode 100644 Disco.Web/Areas/Public/PublicAreaRegistration.cs create mode 100644 Disco.Web/Areas/Public/Views/Public/Credits.cshtml create mode 100644 Disco.Web/Areas/Public/Views/Public/Credits.generated.cs create mode 100644 Disco.Web/Areas/Public/Views/Public/Index.cshtml create mode 100644 Disco.Web/Areas/Public/Views/Public/Index.generated.cs create mode 100644 Disco.Web/Areas/Public/Views/Public/Licence.cshtml create mode 100644 Disco.Web/Areas/Public/Views/Public/Licence.generated.cs create mode 100644 Disco.Web/Areas/Public/Views/Shared/_Layout.cshtml create mode 100644 Disco.Web/Areas/Public/Views/Shared/_Layout.generated.cs create mode 100644 Disco.Web/Areas/Public/Views/UserHeldDevices/Index.cshtml create mode 100644 Disco.Web/Areas/Public/Views/UserHeldDevices/Index.generated.cs create mode 100644 Disco.Web/Areas/Public/Views/UserHeldDevices/Noticeboard.cshtml create mode 100644 Disco.Web/Areas/Public/Views/UserHeldDevices/Noticeboard.generated.cs create mode 100644 Disco.Web/Areas/Public/Views/Web.config create mode 100644 Disco.Web/Areas/Public/Views/_ViewStart.cshtml create mode 100644 Disco.Web/Areas/Public/Views/_ViewStart.generated.cs create mode 100644 Disco.Web/Areas/Services/Controllers/ClientController.cs create mode 100644 Disco.Web/Areas/Services/ServicesAreaRegistration.cs create mode 100644 Disco.Web/ClientSource/Scripts/Core.js create mode 100644 Disco.Web/ClientSource/Scripts/Core.js.bundle create mode 100644 Disco.Web/ClientSource/Scripts/Core.min.js create mode 100644 Disco.Web/ClientSource/Scripts/Core.min.js.map create mode 100644 Disco.Web/ClientSource/Scripts/Core/disco.dataTables.extensions.js create mode 100644 Disco.Web/ClientSource/Scripts/Core/disco.unobtrusiveValidation.extensions.js create mode 100644 Disco.Web/ClientSource/Scripts/Core/jquery-1.8.3.intellisense.js create mode 100644 Disco.Web/ClientSource/Scripts/Core/jquery-1.8.3.js create mode 100644 Disco.Web/ClientSource/Scripts/Core/jquery-ui-1.9.2.js create mode 100644 Disco.Web/ClientSource/Scripts/Core/jquery.dataTables.js create mode 100644 Disco.Web/ClientSource/Scripts/Core/jquery.validate-vsdoc.js create mode 100644 Disco.Web/ClientSource/Scripts/Core/jquery.validate.js create mode 100644 Disco.Web/ClientSource/Scripts/Core/jquery.validate.unobtrusive.js create mode 100644 Disco.Web/ClientSource/Scripts/Core/jquery.watermark.js create mode 100644 Disco.Web/ClientSource/Scripts/Core/modernizr-2.6.2.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Disco-AjaxHelperIcons.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Disco-AjaxHelperIcons.js.bundle create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Disco-AjaxHelperIcons.min.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Disco-AjaxHelperIcons.min.js.map create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Disco-AjaxHelperIcons/disco.ajaxhelpericons.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Disco-CreateJob.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Disco-CreateJob.js.bundle create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Disco-CreateJob.min.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Disco-CreateJob.min.js.map create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Disco-CreateJob/disco.createjob.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Disco-DataTableHelpers.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Disco-DataTableHelpers.js.bundle create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Disco-DataTableHelpers.min.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Disco-DataTableHelpers.min.js.map create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Disco-DataTableHelpers/disco.datatablehelpers.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Disco-ExpressionEditor.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Disco-ExpressionEditor.js.bundle create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Disco-ExpressionEditor.min.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Disco-ExpressionEditor.min.js.map create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Disco-ExpressionEditor/disco.expressioneditor.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Disco-PropertyChangeHelpers.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Disco-PropertyChangeHelpers.js.bundle create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Disco-PropertyChangeHelpers.min.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Disco-PropertyChangeHelpers.min.js.map create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Disco-PropertyChangeHelpers/disco.propertychangehelpers.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Disco-jQueryExtensions.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Disco-jQueryExtensions.js.bundle create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Disco-jQueryExtensions.min.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Disco-jQueryExtensions.min.js.map create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Disco-jQueryExtensions/disco.jQueryExtensions.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Highcharts.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Highcharts.js.bundle create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Highcharts.min.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Highcharts.min.js.map create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Highcharts/highcharts.src.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Highcharts/modules/canvas-tools.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Highcharts/modules/canvas-tools.src.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Highcharts/modules/exporting.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Highcharts/modules/exporting.src.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Highcharts/themes/dark-blue.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Highcharts/themes/dark-green.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Highcharts/themes/gray.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Highcharts/themes/grid.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Highcharts/themes/skies.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Knockout.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Knockout.js.bundle create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Knockout.min.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Knockout.min.js.map create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Knockout/knockout-2.1.0.debug.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Knockout/knockout-2.2.0.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Shadowbox.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Shadowbox.js.bundle create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Shadowbox.min.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Shadowbox.min.js.map create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Shadowbox/shadowbox.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Silverlight.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Silverlight.js.bundle create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Silverlight.min.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Silverlight.min.js.map create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Silverlight/Silverlight.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Timeline.js.bundle create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Timeline.min.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Timeline.min.js.map create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Timeline/disco.simileajaxextensions.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Timeline/disco.timelineextensions.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Timeline/labellers.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Timeline/simile-ajax-bundle-DiscoMod.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Timeline/timeline-bundle.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/Timeline/timeline.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/jQuery-Isotope.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/jQuery-Isotope.js.bundle create mode 100644 Disco.Web/ClientSource/Scripts/Modules/jQuery-Isotope.min.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/jQuery-Isotope.min.js.map create mode 100644 Disco.Web/ClientSource/Scripts/Modules/jQuery-Isotope/jquery.isotope.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/jQuery-NumberFormatter.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/jQuery-NumberFormatter.js.bundle create mode 100644 Disco.Web/ClientSource/Scripts/Modules/jQuery-NumberFormatter.min.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/jQuery-NumberFormatter.min.js.map create mode 100644 Disco.Web/ClientSource/Scripts/Modules/jQuery-NumberFormatter/jquery.numberformatter.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/jQuery-NumberFormatter/jshashtable-2.1.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/jQuery-SignalR.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/jQuery-SignalR.js.bundle create mode 100644 Disco.Web/ClientSource/Scripts/Modules/jQuery-SignalR.min.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/jQuery-SignalR.min.js.map create mode 100644 Disco.Web/ClientSource/Scripts/Modules/jQuery-SignalR/jquery.signalR-0.5.3.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/jQueryUI-DynaTree.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/jQueryUI-DynaTree.js.bundle create mode 100644 Disco.Web/ClientSource/Scripts/Modules/jQueryUI-DynaTree.min.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/jQueryUI-DynaTree.min.js.map create mode 100644 Disco.Web/ClientSource/Scripts/Modules/jQueryUI-DynaTree/jquery.dynatree.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/jQueryUI-TimePicker.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/jQueryUI-TimePicker.js.bundle create mode 100644 Disco.Web/ClientSource/Scripts/Modules/jQueryUI-TimePicker.min.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/jQueryUI-TimePicker.min.js.map create mode 100644 Disco.Web/ClientSource/Scripts/Modules/jQueryUI-TimePicker/jquery-ui-timepicker-addon.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/timeline.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce.js.bundle create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce.min.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce.min.js.map create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/disco.tinymceextensions.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/jquery.tinymce.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/langs/en.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/license.txt create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/about.htm create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/anchor.htm create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/charmap.htm create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/color_picker.htm create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/editor_template.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/editor_template_src.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/image.htm create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/img/colorpicker.jpg create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/img/flash.gif create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/img/icons.gif create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/img/iframe.gif create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/img/pagebreak.gif create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/img/quicktime.gif create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/img/realmedia.gif create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/img/shockwave.gif create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/img/trans.gif create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/img/video.gif create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/img/windowsmedia.gif create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/js/about.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/js/anchor.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/js/charmap.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/js/color_picker.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/js/image.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/js/link.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/js/source_editor.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/langs/en.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/langs/en_dlg.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/link.htm create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/shortcuts.htm create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/skins/default/content.css create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/skins/default/dialog.css create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/skins/default/img/buttons.png create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/skins/default/img/items.gif create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/skins/default/img/menu_arrow.gif create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/skins/default/img/menu_check.gif create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/skins/default/img/progress.gif create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/skins/default/img/tabs.gif create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/skins/default/ui.css create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/skins/highcontrast/content.css create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/skins/highcontrast/dialog.css create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/skins/highcontrast/ui.css create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/skins/o2k7/content.css create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/skins/o2k7/dialog.css create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/skins/o2k7/img/button_bg.png create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/skins/o2k7/img/button_bg_black.png create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/skins/o2k7/img/button_bg_silver.png create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/skins/o2k7/ui.css create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/skins/o2k7/ui_black.css create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/skins/o2k7/ui_silver.css create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/advanced/source_editor.htm create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/simple/editor_template.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/simple/editor_template_src.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/simple/img/icons.gif create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/simple/langs/en.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/simple/skins/default/content.css create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/simple/skins/default/ui.css create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/simple/skins/o2k7/content.css create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/simple/skins/o2k7/img/button_bg.png create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/themes/simple/skins/o2k7/ui.css create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/tiny_mce.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/tiny_mce_jquery.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/tiny_mce_popup.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/tiny_mce_src.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/utils/editable_selects.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/utils/form_utils.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/utils/mctabs.js create mode 100644 Disco.Web/ClientSource/Scripts/Modules/tinymce/utils/validate.js create mode 100644 Disco.Web/ClientSource/Style/BundleSite.css create mode 100644 Disco.Web/ClientSource/Style/BundleSite.css.bundle create mode 100644 Disco.Web/ClientSource/Style/BundleSite.min.css create mode 100644 Disco.Web/ClientSource/Style/Config.css create mode 100644 Disco.Web/ClientSource/Style/Config.less create mode 100644 Disco.Web/ClientSource/Style/Config.min.css create mode 100644 Disco.Web/ClientSource/Style/Credits.css create mode 100644 Disco.Web/ClientSource/Style/Credits.less create mode 100644 Disco.Web/ClientSource/Style/Credits.min.css create mode 100644 Disco.Web/ClientSource/Style/Credits/CrystalIcons.png create mode 100644 Disco.Web/ClientSource/Style/Credits/HighchartsJS.png create mode 100644 Disco.Web/ClientSource/Style/Credits/JsonNET.png create mode 100644 Disco.Web/ClientSource/Style/Credits/LibTiff.png create mode 100644 Disco.Web/ClientSource/Style/Credits/MicrosoftASPNET.png create mode 100644 Disco.Web/ClientSource/Style/Credits/MicrosoftNET.png create mode 100644 Disco.Web/ClientSource/Style/Credits/MicrosoftSQLServer.png create mode 100644 Disco.Web/ClientSource/Style/Credits/MicrosoftSilverlight.png create mode 100644 Disco.Web/ClientSource/Style/Credits/Modernizr.png create mode 100644 Disco.Web/ClientSource/Style/Credits/Quartz.png create mode 100644 Disco.Web/ClientSource/Style/Credits/Shadowboxjs.png create mode 100644 Disco.Web/ClientSource/Style/Credits/SignalR.png create mode 100644 Disco.Web/ClientSource/Style/Credits/SpringNET.png create mode 100644 Disco.Web/ClientSource/Style/Credits/TinyMCE.png create mode 100644 Disco.Web/ClientSource/Style/Credits/ZXing.png create mode 100644 Disco.Web/ClientSource/Style/Credits/dotless.png create mode 100644 Disco.Web/ClientSource/Style/Credits/iTextSharp.png create mode 100644 Disco.Web/ClientSource/Style/Credits/jQuery.png create mode 100644 Disco.Web/ClientSource/Style/Credits/jQueryUI.png create mode 100644 Disco.Web/ClientSource/Style/Credits/knockoutjs.png create mode 100644 Disco.Web/ClientSource/Style/Credits/nuget.png create mode 100644 Disco.Web/ClientSource/Style/Declarations.css create mode 100644 Disco.Web/ClientSource/Style/Declarations.less create mode 100644 Disco.Web/ClientSource/Style/Declarations.min.css create mode 100644 Disco.Web/ClientSource/Style/Device.css create mode 100644 Disco.Web/ClientSource/Style/Device.less create mode 100644 Disco.Web/ClientSource/Style/Device.min.css create mode 100644 Disco.Web/ClientSource/Style/Dialog.css create mode 100644 Disco.Web/ClientSource/Style/Dialog.less create mode 100644 Disco.Web/ClientSource/Style/Dialog.min.css create mode 100644 Disco.Web/ClientSource/Style/ExpressionEditor.css create mode 100644 Disco.Web/ClientSource/Style/ExpressionEditor.htm create mode 100644 Disco.Web/ClientSource/Style/ExpressionEditor.min.css create mode 100644 Disco.Web/ClientSource/Style/Images/Actions/attach.png create mode 100644 Disco.Web/ClientSource/Style/Images/Actions/dataTableFirst.png create mode 100644 Disco.Web/ClientSource/Style/Images/Actions/dataTableFirstDisabled.png create mode 100644 Disco.Web/ClientSource/Style/Images/Actions/dataTableLast.png create mode 100644 Disco.Web/ClientSource/Style/Images/Actions/dataTableLastDisabled.png create mode 100644 Disco.Web/ClientSource/Style/Images/Actions/dataTableNext.png create mode 100644 Disco.Web/ClientSource/Style/Images/Actions/dataTableNextDisabled.png create mode 100644 Disco.Web/ClientSource/Style/Images/Actions/dataTablePrev.png create mode 100644 Disco.Web/ClientSource/Style/Images/Actions/dataTablePrevDisabled.png create mode 100644 Disco.Web/ClientSource/Style/Images/Actions/dataTableSort.png create mode 100644 Disco.Web/ClientSource/Style/Images/Actions/editForm.png create mode 100644 Disco.Web/ClientSource/Style/Images/Actions/expressionBrowser.png create mode 100644 Disco.Web/ClientSource/Style/Images/Actions/expressionBrowser256.png create mode 100644 Disco.Web/ClientSource/Style/Images/Actions/list.png create mode 100644 Disco.Web/ClientSource/Style/Images/Actions/listAlert.png create mode 100644 Disco.Web/ClientSource/Style/Images/Actions/locked.png create mode 100644 Disco.Web/ClientSource/Style/Images/Actions/pageMenuConfigIcon.png create mode 100644 Disco.Web/ClientSource/Style/Images/Actions/pageMenuConfigIconHover.png create mode 100644 Disco.Web/ClientSource/Style/Images/Actions/pageMenuIcon.png create mode 100644 Disco.Web/ClientSource/Style/Images/Actions/pageMenuIconHover.png create mode 100644 Disco.Web/ClientSource/Style/Images/Actions/pageMenuNoticeboardIcon.png create mode 100644 Disco.Web/ClientSource/Style/Images/Actions/pageMenuNoticeboardIconHover.png create mode 100644 Disco.Web/ClientSource/Style/Images/Actions/pageMenuReportIcon.png create mode 100644 Disco.Web/ClientSource/Style/Images/Actions/pageMenuReportIconHover.png create mode 100644 Disco.Web/ClientSource/Style/Images/Actions/photo.png create mode 100644 Disco.Web/ClientSource/Style/Images/Actions/post.png create mode 100644 Disco.Web/ClientSource/Style/Images/Actions/remove.png create mode 100644 Disco.Web/ClientSource/Style/Images/Actions/removeSubtle.png create mode 100644 Disco.Web/ClientSource/Style/Images/Actions/unlocked.png create mode 100644 Disco.Web/ClientSource/Style/Images/AttachmentTypes/MimeTypeIcons.cs create mode 100644 Disco.Web/ClientSource/Style/Images/AttachmentTypes/document.png create mode 100644 Disco.Web/ClientSource/Style/Images/AttachmentTypes/expressionBrowserIcons.png create mode 100644 Disco.Web/ClientSource/Style/Images/AttachmentTypes/image.png create mode 100644 Disco.Web/ClientSource/Style/Images/AttachmentTypes/pdf.png create mode 100644 Disco.Web/ClientSource/Style/Images/AttachmentTypes/unknown.png create mode 100644 Disco.Web/ClientSource/Style/Images/BackgroundDocument.png create mode 100644 Disco.Web/ClientSource/Style/Images/BackgroundInitialConfig.jpg create mode 100644 Disco.Web/ClientSource/Style/Images/BackgroundPage-Old.png create mode 100644 Disco.Web/ClientSource/Style/Images/BackgroundPage.png create mode 100644 Disco.Web/ClientSource/Style/Images/DeviceTypes/AppliancePC.png create mode 100644 Disco.Web/ClientSource/Style/Images/DeviceTypes/Desktop.png create mode 100644 Disco.Web/ClientSource/Style/Images/DeviceTypes/EnterpriseServer.png create mode 100644 Disco.Web/ClientSource/Style/Images/DeviceTypes/Maximum.png create mode 100644 Disco.Web/ClientSource/Style/Images/DeviceTypes/Mobile.png create mode 100644 Disco.Web/ClientSource/Style/Images/DeviceTypes/PerformanceServer.png create mode 100644 Disco.Web/ClientSource/Style/Images/DeviceTypes/SmallOfficeAndHomeOfficeServer.png create mode 100644 Disco.Web/ClientSource/Style/Images/DeviceTypes/Unknown.png create mode 100644 Disco.Web/ClientSource/Style/Images/DeviceTypes/Workstation.png create mode 100644 Disco.Web/ClientSource/Style/Images/Heading.png create mode 100644 Disco.Web/ClientSource/Style/Images/Icon32.png create mode 100644 Disco.Web/ClientSource/Style/Images/Status/error.png create mode 100644 Disco.Web/ClientSource/Style/Images/Status/fail32.png create mode 100644 Disco.Web/ClientSource/Style/Images/Status/fileBroken256.png create mode 100644 Disco.Web/ClientSource/Style/Images/Status/information.png create mode 100644 Disco.Web/ClientSource/Style/Images/Status/jobStatus-Closed.png create mode 100644 Disco.Web/ClientSource/Style/Images/Status/jobStatus-Insurance.png create mode 100644 Disco.Web/ClientSource/Style/Images/Status/jobStatus-Open.png create mode 100644 Disco.Web/ClientSource/Style/Images/Status/jobStatus-Repairs.png create mode 100644 Disco.Web/ClientSource/Style/Images/Status/jobStatus-User.png create mode 100644 Disco.Web/ClientSource/Style/Images/Status/loading.gif create mode 100644 Disco.Web/ClientSource/Style/Images/Status/ok.png create mode 100644 Disco.Web/ClientSource/Style/Images/Status/pbar-ani.gif create mode 100644 Disco.Web/ClientSource/Style/Images/Status/save.png create mode 100644 Disco.Web/ClientSource/Style/Images/Status/success.png create mode 100644 Disco.Web/ClientSource/Style/Images/Status/updateAvailable.png create mode 100644 Disco.Web/ClientSource/Style/Images/Status/warning.png create mode 100644 Disco.Web/ClientSource/Style/Images/Status/warning32.png create mode 100644 Disco.Web/ClientSource/Style/Images/SubMenuBackground.png create mode 100644 Disco.Web/ClientSource/Style/Images/SubSubMenuIcon.png create mode 100644 Disco.Web/ClientSource/Style/Images/pi.gif create mode 100644 Disco.Web/ClientSource/Style/InitialConfig.css create mode 100644 Disco.Web/ClientSource/Style/InitialConfig.less create mode 100644 Disco.Web/ClientSource/Style/InitialConfig.min.css create mode 100644 Disco.Web/ClientSource/Style/IsotopeStyles.css create mode 100644 Disco.Web/ClientSource/Style/IsotopeStyles.min.css create mode 100644 Disco.Web/ClientSource/Style/Job.css create mode 100644 Disco.Web/ClientSource/Style/Job.less create mode 100644 Disco.Web/ClientSource/Style/Job.min.css create mode 100644 Disco.Web/ClientSource/Style/Public/UserHeldDevices.css create mode 100644 Disco.Web/ClientSource/Style/Public/UserHeldDevices.less create mode 100644 Disco.Web/ClientSource/Style/Public/UserHeldDevices.min.css create mode 100644 Disco.Web/ClientSource/Style/Public/UserHeldDevicesNoticeboard.css create mode 100644 Disco.Web/ClientSource/Style/Public/UserHeldDevicesNoticeboard.less create mode 100644 Disco.Web/ClientSource/Style/Public/UserHeldDevicesNoticeboard.min.css create mode 100644 Disco.Web/ClientSource/Style/Public/UserHeldDevicesXml_Sharepoint.xslt create mode 100644 Disco.Web/ClientSource/Style/Shadowbox.css create mode 100644 Disco.Web/ClientSource/Style/Shadowbox.css.bundle create mode 100644 Disco.Web/ClientSource/Style/Shadowbox.min.css create mode 100644 Disco.Web/ClientSource/Style/Shadowbox/close.png create mode 100644 Disco.Web/ClientSource/Style/Shadowbox/loading.gif create mode 100644 Disco.Web/ClientSource/Style/Shadowbox/next.png create mode 100644 Disco.Web/ClientSource/Style/Shadowbox/pause.png create mode 100644 Disco.Web/ClientSource/Style/Shadowbox/play.png create mode 100644 Disco.Web/ClientSource/Style/Shadowbox/previous.png create mode 100644 Disco.Web/ClientSource/Style/Shadowbox/shadowbox.css create mode 100644 Disco.Web/ClientSource/Style/Shadowbox/shadowbox.min.css create mode 100644 Disco.Web/ClientSource/Style/Shared.css create mode 100644 Disco.Web/ClientSource/Style/Shared.less create mode 100644 Disco.Web/ClientSource/Style/Shared.min.css create mode 100644 Disco.Web/ClientSource/Style/Site.css create mode 100644 Disco.Web/ClientSource/Style/Site.less create mode 100644 Disco.Web/ClientSource/Style/Site.min.css create mode 100644 Disco.Web/ClientSource/Style/Timeline.css create mode 100644 Disco.Web/ClientSource/Style/Timeline.css.bundle create mode 100644 Disco.Web/ClientSource/Style/Timeline.min.css create mode 100644 Disco.Web/ClientSource/Style/Timeline/disco.timelineextensions.css create mode 100644 Disco.Web/ClientSource/Style/Timeline/disco.timelineextensions.less create mode 100644 Disco.Web/ClientSource/Style/Timeline/disco.timelineextensions.min.css create mode 100644 Disco.Web/ClientSource/Style/Timeline/graphics.css create mode 100644 Disco.Web/ClientSource/Style/Timeline/graphics.min.css create mode 100644 Disco.Web/ClientSource/Style/Timeline/images/blue-circle.png create mode 100644 Disco.Web/ClientSource/Style/Timeline/images/bubble-arrow-point-down.png create mode 100644 Disco.Web/ClientSource/Style/Timeline/images/bubble-arrow-point-left.png create mode 100644 Disco.Web/ClientSource/Style/Timeline/images/bubble-arrow-point-right.png create mode 100644 Disco.Web/ClientSource/Style/Timeline/images/bubble-arrow-point-up.png create mode 100644 Disco.Web/ClientSource/Style/Timeline/images/bubble-bottom-arrow.png create mode 100644 Disco.Web/ClientSource/Style/Timeline/images/bubble-bottom-left.png create mode 100644 Disco.Web/ClientSource/Style/Timeline/images/bubble-bottom-right.png create mode 100644 Disco.Web/ClientSource/Style/Timeline/images/bubble-bottom.png create mode 100644 Disco.Web/ClientSource/Style/Timeline/images/bubble-left-arrow.png create mode 100644 Disco.Web/ClientSource/Style/Timeline/images/bubble-left.png create mode 100644 Disco.Web/ClientSource/Style/Timeline/images/bubble-right-arrow.png create mode 100644 Disco.Web/ClientSource/Style/Timeline/images/bubble-right.png create mode 100644 Disco.Web/ClientSource/Style/Timeline/images/bubble-top-arrow.png create mode 100644 Disco.Web/ClientSource/Style/Timeline/images/bubble-top-left.png create mode 100644 Disco.Web/ClientSource/Style/Timeline/images/bubble-top-right.png create mode 100644 Disco.Web/ClientSource/Style/Timeline/images/bubble-top.png create mode 100644 Disco.Web/ClientSource/Style/Timeline/images/close-button.png create mode 100644 Disco.Web/ClientSource/Style/Timeline/images/copy.png create mode 100644 Disco.Web/ClientSource/Style/Timeline/images/copyright-vertical.png create mode 100644 Disco.Web/ClientSource/Style/Timeline/images/copyright.png create mode 100644 Disco.Web/ClientSource/Style/Timeline/images/dark-blue-circle.png create mode 100644 Disco.Web/ClientSource/Style/Timeline/images/dark-green-circle.png create mode 100644 Disco.Web/ClientSource/Style/Timeline/images/dark-red-circle.png create mode 100644 Disco.Web/ClientSource/Style/Timeline/images/dull-blue-circle.png create mode 100644 Disco.Web/ClientSource/Style/Timeline/images/dull-green-circle.png create mode 100644 Disco.Web/ClientSource/Style/Timeline/images/dull-red-circle.png create mode 100644 Disco.Web/ClientSource/Style/Timeline/images/gray-circle.png create mode 100644 Disco.Web/ClientSource/Style/Timeline/images/green-circle.png create mode 100644 Disco.Web/ClientSource/Style/Timeline/images/message-bottom-left.png create mode 100644 Disco.Web/ClientSource/Style/Timeline/images/message-bottom-right.png create mode 100644 Disco.Web/ClientSource/Style/Timeline/images/message-left.png create mode 100644 Disco.Web/ClientSource/Style/Timeline/images/message-right.png create mode 100644 Disco.Web/ClientSource/Style/Timeline/images/message-top-left.png create mode 100644 Disco.Web/ClientSource/Style/Timeline/images/message-top-right.png create mode 100644 Disco.Web/ClientSource/Style/Timeline/images/progress-running.gif create mode 100644 Disco.Web/ClientSource/Style/Timeline/images/red-circle.png create mode 100644 Disco.Web/ClientSource/Style/Timeline/images/top-bubble.png create mode 100644 Disco.Web/ClientSource/Style/Timeline/timeline-bundle.css create mode 100644 Disco.Web/ClientSource/Style/Timeline/timeline-bundle.min.css create mode 100644 Disco.Web/ClientSource/Style/User.css create mode 100644 Disco.Web/ClientSource/Style/User.less create mode 100644 Disco.Web/ClientSource/Style/User.min.css create mode 100644 Disco.Web/ClientSource/Style/jQueryUI/dynatree/icons.gif create mode 100644 Disco.Web/ClientSource/Style/jQueryUI/dynatree/loading.gif create mode 100644 Disco.Web/ClientSource/Style/jQueryUI/dynatree/ui.dynatree.css create mode 100644 Disco.Web/ClientSource/Style/jQueryUI/dynatree/ui.dynatree.min.css create mode 100644 Disco.Web/ClientSource/Style/jQueryUI/images/ui-bg_diagonals-thick_18_b81900_40x40.png create mode 100644 Disco.Web/ClientSource/Style/jQueryUI/images/ui-bg_diagonals-thick_20_666666_40x40.png create mode 100644 Disco.Web/ClientSource/Style/jQueryUI/images/ui-bg_flat_10_000000_40x100.png create mode 100644 Disco.Web/ClientSource/Style/jQueryUI/images/ui-bg_glass_100_f6f6f6_1x400.png create mode 100644 Disco.Web/ClientSource/Style/jQueryUI/images/ui-bg_glass_100_fdf5ce_1x400.png create mode 100644 Disco.Web/ClientSource/Style/jQueryUI/images/ui-bg_glass_65_ffffff_1x400.png create mode 100644 Disco.Web/ClientSource/Style/jQueryUI/images/ui-bg_gloss-wave_35_f6a828_500x100.png create mode 100644 Disco.Web/ClientSource/Style/jQueryUI/images/ui-bg_highlight-soft_100_eeeeee_1x100.png create mode 100644 Disco.Web/ClientSource/Style/jQueryUI/images/ui-bg_highlight-soft_75_ffe45c_1x100.png create mode 100644 Disco.Web/ClientSource/Style/jQueryUI/images/ui-icons_222222_256x240.png create mode 100644 Disco.Web/ClientSource/Style/jQueryUI/images/ui-icons_228ef1_256x240.png create mode 100644 Disco.Web/ClientSource/Style/jQueryUI/images/ui-icons_ef8c08_256x240.png create mode 100644 Disco.Web/ClientSource/Style/jQueryUI/images/ui-icons_ffd27a_256x240.png create mode 100644 Disco.Web/ClientSource/Style/jQueryUI/images/ui-icons_ffffff_256x240.png create mode 100644 Disco.Web/ClientSource/Style/jQueryUI/jquery-ui.css create mode 100644 Disco.Web/ClientSource/Style/jQueryUI/jquery-ui.min.css create mode 100644 Disco.Web/ClientSource/Style/jQueryUIExtensions.css create mode 100644 Disco.Web/ClientSource/Style/jQueryUIExtensions.less create mode 100644 Disco.Web/ClientSource/Style/jQueryUIExtensions.min.css create mode 100644 Disco.Web/Controllers/DeviceController.cs create mode 100644 Disco.Web/Controllers/InitialConfigController.cs create mode 100644 Disco.Web/Controllers/JobController.cs create mode 100644 Disco.Web/Controllers/PluginWebHandlerController.cs create mode 100644 Disco.Web/Controllers/SearchController.cs create mode 100644 Disco.Web/Controllers/UserController.cs create mode 100644 Disco.Web/Disco.Web.csproj create mode 100644 Disco.Web/Extensions/HtmlExtensions.cs create mode 100644 Disco.Web/Global.asax create mode 100644 Disco.Web/Global.asax.cs create mode 100644 Disco.Web/Models/Device/AddOfflineModel.cs create mode 100644 Disco.Web/Models/Device/ShowModel.cs create mode 100644 Disco.Web/Models/InitialConfig/CompleteModel.cs create mode 100644 Disco.Web/Models/InitialConfig/DatabaseModel.cs create mode 100644 Disco.Web/Models/InitialConfig/FileStoreModel.cs create mode 100644 Disco.Web/Models/InitialConfig/WelcomeModel.cs create mode 100644 Disco.Web/Models/Job/CreateModel.cs create mode 100644 Disco.Web/Models/Job/CreateModelOld.cs create mode 100644 Disco.Web/Models/Job/CreateRedirectModel.cs create mode 100644 Disco.Web/Models/Job/IndexModel.cs create mode 100644 Disco.Web/Models/Job/ListModel.cs create mode 100644 Disco.Web/Models/Job/LogWarrantyModel.cs create mode 100644 Disco.Web/Models/Job/ShowModel.cs create mode 100644 Disco.Web/Models/Job/WarrantyProviderJobDetailsModel.cs create mode 100644 Disco.Web/Models/Search/QueryModel.cs create mode 100644 Disco.Web/Models/User/ShowModel.cs create mode 100644 Disco.Web/Properties/AssemblyInfo.cs create mode 100644 Disco.Web/T4MVC.cs create mode 100644 Disco.Web/T4MVC.tt create mode 100644 Disco.Web/T4MVC.tt.hooks.t4 create mode 100644 Disco.Web/T4MVC.tt.settings.xml create mode 100644 Disco.Web/Views/Device/AddOffline.cshtml create mode 100644 Disco.Web/Views/Device/AddOffline.generated.cs create mode 100644 Disco.Web/Views/Device/DeviceParts/Resources.cshtml create mode 100644 Disco.Web/Views/Device/DeviceParts/Resources.generated.cs create mode 100644 Disco.Web/Views/Device/Index.cshtml create mode 100644 Disco.Web/Views/Device/Index.generated.cs create mode 100644 Disco.Web/Views/Device/Show.cshtml create mode 100644 Disco.Web/Views/Device/Show.generated.cs create mode 100644 Disco.Web/Views/Device/_CertificateTable.cshtml create mode 100644 Disco.Web/Views/Device/_CertificateTable.generated.cs create mode 100644 Disco.Web/Views/Device/_DeviceActions.cshtml create mode 100644 Disco.Web/Views/Device/_DeviceActions.generated.cs create mode 100644 Disco.Web/Views/Device/_DeviceTable.cshtml create mode 100644 Disco.Web/Views/Device/_DeviceTable.generated.cs create mode 100644 Disco.Web/Views/Device/_DeviceUserAssignmentHistoryTable.cshtml create mode 100644 Disco.Web/Views/Device/_DeviceUserAssignmentHistoryTable.generated.cs create mode 100644 Disco.Web/Views/Device/_ViewStart.cshtml create mode 100644 Disco.Web/Views/Device/_ViewStart.generated.cs create mode 100644 Disco.Web/Views/InitialConfig/Complete.cshtml create mode 100644 Disco.Web/Views/InitialConfig/Complete.generated.cs create mode 100644 Disco.Web/Views/InitialConfig/Database.cshtml create mode 100644 Disco.Web/Views/InitialConfig/Database.generated.cs create mode 100644 Disco.Web/Views/InitialConfig/FileStore.cshtml create mode 100644 Disco.Web/Views/InitialConfig/FileStore.generated.cs create mode 100644 Disco.Web/Views/InitialConfig/RestartWebApp.cshtml create mode 100644 Disco.Web/Views/InitialConfig/RestartWebApp.generated.cs create mode 100644 Disco.Web/Views/InitialConfig/Welcome.cshtml create mode 100644 Disco.Web/Views/InitialConfig/Welcome.generated.cs create mode 100644 Disco.Web/Views/InitialConfig/_Layout.cshtml create mode 100644 Disco.Web/Views/InitialConfig/_Layout.generated.cs create mode 100644 Disco.Web/Views/InitialConfig/_ViewStart.cshtml create mode 100644 Disco.Web/Views/InitialConfig/_ViewStart.generated.cs create mode 100644 Disco.Web/Views/Job/Create-Old.cshtml create mode 100644 Disco.Web/Views/Job/Create.cshtml create mode 100644 Disco.Web/Views/Job/Create.generated.cs create mode 100644 Disco.Web/Views/Job/Create_Redirect.cshtml create mode 100644 Disco.Web/Views/Job/Create_Redirect.generated.cs create mode 100644 Disco.Web/Views/Job/Index.cshtml create mode 100644 Disco.Web/Views/Job/Index.generated.cs create mode 100644 Disco.Web/Views/Job/JobParts/Components.cshtml create mode 100644 Disco.Web/Views/Job/JobParts/Components.generated.cs create mode 100644 Disco.Web/Views/Job/JobParts/Flags.cshtml create mode 100644 Disco.Web/Views/Job/JobParts/Flags.generated.cs create mode 100644 Disco.Web/Views/Job/JobParts/Insurance.cshtml create mode 100644 Disco.Web/Views/Job/JobParts/Insurance.generated.cs create mode 100644 Disco.Web/Views/Job/JobParts/JobMetaAdditions.cshtml create mode 100644 Disco.Web/Views/Job/JobParts/JobMetaAdditions1.generated.cs create mode 100644 Disco.Web/Views/Job/JobParts/NonWarranty.cshtml create mode 100644 Disco.Web/Views/Job/JobParts/NonWarranty.generated.cs create mode 100644 Disco.Web/Views/Job/JobParts/NonWarrantyFinance.cshtml create mode 100644 Disco.Web/Views/Job/JobParts/NonWarrantyFinance.generated.cs create mode 100644 Disco.Web/Views/Job/JobParts/Repairs.cshtml create mode 100644 Disco.Web/Views/Job/JobParts/Repairs.generated.cs create mode 100644 Disco.Web/Views/Job/JobParts/Resources.cshtml create mode 100644 Disco.Web/Views/Job/JobParts/Resources.generated.cs create mode 100644 Disco.Web/Views/Job/JobParts/Warranty.cshtml create mode 100644 Disco.Web/Views/Job/JobParts/Warranty.generated.cs create mode 100644 Disco.Web/Views/Job/JobParts/_Subject.cshtml create mode 100644 Disco.Web/Views/Job/JobParts/_Subject.generated.cs create mode 100644 Disco.Web/Views/Job/List.cshtml create mode 100644 Disco.Web/Views/Job/List.generated.cs create mode 100644 Disco.Web/Views/Job/LogWarranty.cshtml create mode 100644 Disco.Web/Views/Job/LogWarranty.generated.cs create mode 100644 Disco.Web/Views/Job/LogWarrantyDisclose.cshtml create mode 100644 Disco.Web/Views/Job/LogWarrantyDisclose.generated.cs create mode 100644 Disco.Web/Views/Job/LogWarrantyError.cshtml create mode 100644 Disco.Web/Views/Job/LogWarrantyError.generated.cs create mode 100644 Disco.Web/Views/Job/Show.cshtml create mode 100644 Disco.Web/Views/Job/Show.generated.cs create mode 100644 Disco.Web/Views/Job/WarrantyProviderJobDetails.cshtml create mode 100644 Disco.Web/Views/Job/WarrantyProviderJobDetails.generated.cs create mode 100644 Disco.Web/Views/Job/_CreateSubject-Old.cshtml create mode 100644 Disco.Web/Views/Job/_CreateSubject-Old.generated.cs create mode 100644 Disco.Web/Views/Job/_CreateSubject.cshtml create mode 100644 Disco.Web/Views/Job/_CreateSubject.generated.cs create mode 100644 Disco.Web/Views/Job/_ViewStart.cshtml create mode 100644 Disco.Web/Views/Job/_ViewStart.generated.cs create mode 100644 Disco.Web/Views/Search/Query.cshtml create mode 100644 Disco.Web/Views/Search/Query.generated.cs create mode 100644 Disco.Web/Views/Shared/Error.cshtml create mode 100644 Disco.Web/Views/Shared/Error.generated.cs create mode 100644 Disco.Web/Views/Shared/_DialogLayout.cshtml create mode 100644 Disco.Web/Views/Shared/_DialogLayout.generated.cs create mode 100644 Disco.Web/Views/Shared/_EmptyLayout.cshtml create mode 100644 Disco.Web/Views/Shared/_EmptyLayout.generated.cs create mode 100644 Disco.Web/Views/Shared/_JobTable.cshtml create mode 100644 Disco.Web/Views/Shared/_JobTable.generated.cs create mode 100644 Disco.Web/Views/Shared/_JobTableRender.cshtml create mode 100644 Disco.Web/Views/Shared/_JobTableRender.generated.cs create mode 100644 Disco.Web/Views/Shared/_Layout.cshtml create mode 100644 Disco.Web/Views/Shared/_Layout.generated.cs create mode 100644 Disco.Web/Views/Shared/_SearchDialog.cshtml create mode 100644 Disco.Web/Views/Shared/_SearchDialog.generated.cs create mode 100644 Disco.Web/Views/User/Index.cshtml create mode 100644 Disco.Web/Views/User/Index.generated.cs create mode 100644 Disco.Web/Views/User/Show.cshtml create mode 100644 Disco.Web/Views/User/Show.generated.cs create mode 100644 Disco.Web/Views/User/UserParts/Resources.cshtml create mode 100644 Disco.Web/Views/User/UserParts/Resources.generated.cs create mode 100644 Disco.Web/Views/User/_UserDeviceAssignmentHistoryTable.cshtml create mode 100644 Disco.Web/Views/User/_UserDeviceAssignmentHistoryTable.generated.cs create mode 100644 Disco.Web/Views/User/_UserTable.cshtml create mode 100644 Disco.Web/Views/User/_UserTable.generated.cs create mode 100644 Disco.Web/Views/User/_ViewStart.cshtml create mode 100644 Disco.Web/Views/User/_ViewStart.generated.cs create mode 100644 Disco.Web/Views/Web.config create mode 100644 Disco.Web/Views/_ViewStart.cshtml create mode 100644 Disco.Web/Views/_ViewStart.generated.cs create mode 100644 Disco.Web/Web.Debug.config create mode 100644 Disco.Web/Web.Release.config create mode 100644 Disco.Web/Web.config create mode 100644 Disco.Web/_bin_deployableAssemblies/amd64/Microsoft.VC90.CRT/Microsoft.VC90.CRT.manifest create mode 100644 Disco.Web/_bin_deployableAssemblies/amd64/Microsoft.VC90.CRT/README_ENU.txt create mode 100644 Disco.Web/_bin_deployableAssemblies/amd64/Microsoft.VC90.CRT/msvcr90.dll create mode 100644 Disco.Web/_bin_deployableAssemblies/amd64/sqlceca40.dll create mode 100644 Disco.Web/_bin_deployableAssemblies/amd64/sqlcecompact40.dll create mode 100644 Disco.Web/_bin_deployableAssemblies/amd64/sqlceer40EN.dll create mode 100644 Disco.Web/_bin_deployableAssemblies/amd64/sqlceme40.dll create mode 100644 Disco.Web/_bin_deployableAssemblies/amd64/sqlceqp40.dll create mode 100644 Disco.Web/_bin_deployableAssemblies/amd64/sqlcese40.dll create mode 100644 Disco.Web/_bin_deployableAssemblies/x86/Microsoft.VC90.CRT/Microsoft.VC90.CRT.manifest create mode 100644 Disco.Web/_bin_deployableAssemblies/x86/Microsoft.VC90.CRT/README_ENU.txt create mode 100644 Disco.Web/_bin_deployableAssemblies/x86/Microsoft.VC90.CRT/msvcr90.dll create mode 100644 Disco.Web/_bin_deployableAssemblies/x86/sqlceca40.dll create mode 100644 Disco.Web/_bin_deployableAssemblies/x86/sqlcecompact40.dll create mode 100644 Disco.Web/_bin_deployableAssemblies/x86/sqlceer40EN.dll create mode 100644 Disco.Web/_bin_deployableAssemblies/x86/sqlceme40.dll create mode 100644 Disco.Web/_bin_deployableAssemblies/x86/sqlceqp40.dll create mode 100644 Disco.Web/_bin_deployableAssemblies/x86/sqlcese40.dll create mode 100644 Disco.Web/favicon.ico create mode 100644 Disco.Web/packages.config create mode 100644 Disco.sln diff --git a/Disco.BI/BI/AttachmentBI/Utilities.cs b/Disco.BI/BI/AttachmentBI/Utilities.cs new file mode 100644 index 00000000..54ce4815 --- /dev/null +++ b/Disco.BI/BI/AttachmentBI/Utilities.cs @@ -0,0 +1,96 @@ +using System; +using System.Drawing; +using System.IO; +using System.Linq; +using Disco.BI.Extensions; +using iTextSharp.text.pdf; + +namespace Disco.BI.AttachmentBI +{ + public static class Utilities + { + + public static bool GenerateThumbnail(Stream Source, string SourceMimeType, Stream OutStream) + { + if (Source != null) + { + // GDI+ (jpg, png, gif, bmp) + if (SourceMimeType.Equals("image/jpeg", StringComparison.InvariantCultureIgnoreCase) || SourceMimeType.Contains("jpg") || + SourceMimeType.Equals("image/png", StringComparison.InvariantCultureIgnoreCase) || SourceMimeType.Contains("png") || + SourceMimeType.Equals("image/gif", StringComparison.InvariantCultureIgnoreCase) || SourceMimeType.Contains("gif") || + SourceMimeType.Equals("image/bmp", StringComparison.InvariantCultureIgnoreCase) || SourceMimeType.Contains("bmp")) + { + try + { + using (Image sourceImage = Image.FromStream(Source)) + { + using (Image thumbImage = sourceImage.ResizeImage(48, 48)) + { + using (Image mimeTypeIcon = Disco.Properties.Resources.MimeType_img16) + thumbImage.EmbedIconOverlay(mimeTypeIcon); + thumbImage.SaveJpg(90, OutStream); + return true; + } + } + } + catch (Exception) + { + // Ignore Thumbnail Generation exceptions for images + //throw; + } + + } + + // PDF + if (SourceMimeType.Equals("application/pdf", StringComparison.InvariantCultureIgnoreCase) || SourceMimeType.Contains("pdf")) + { + PdfReader pdfReader = new PdfReader(Source); + try + { + using (DisposableImageCollection pdfPageImages = pdfReader.PdfPageImages(1)) + { + if (pdfPageImages.Count() > 0) + { + // Find Biggest Image on Page + Image biggestImage = pdfPageImages.OrderByDescending(i => i.Height * i.Width).First(); + using (Image thumbImage = biggestImage.ResizeImage(48, 48, Brushes.White)) + { + using (Image mimeTypeIcon = Disco.Properties.Resources.MimeType_pdf16) + thumbImage.EmbedIconOverlay(mimeTypeIcon); + thumbImage.SaveJpg(90, OutStream); + return true; + } + } + } + } + finally + { + if (pdfReader != null) + pdfReader.Close(); + } + } + } + return false; + } + public static bool GenerateThumbnail(string SourceFilename, string SourceMimeType, string DestinationFilename) + { + using (FileStream sourceStream = new FileStream(SourceFilename, FileMode.Open, FileAccess.Read)) + { + return GenerateThumbnail(sourceStream, SourceMimeType, DestinationFilename); + } + } + public static bool GenerateThumbnail(Stream Source, string SourceMimeType, string DestinationFilename) + { + bool result; + using (FileStream destinationStream = new FileStream(DestinationFilename, FileMode.Create, FileAccess.Write, FileShare.None)) + { + result = GenerateThumbnail(Source, SourceMimeType, destinationStream); + } + if (!result && File.Exists(DestinationFilename)) + File.Delete(DestinationFilename); + + return result; + } + + } +} diff --git a/Disco.BI/BI/DataStore.cs b/Disco.BI/BI/DataStore.cs new file mode 100644 index 00000000..66ccbd90 --- /dev/null +++ b/Disco.BI/BI/DataStore.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Data.Repository; +using Disco.Data.Configuration; + +namespace Disco.BI +{ + public static class DataStore + { + + public static string CreateLocation(DiscoDataContext dbContext, string SubLocation, DateTime? SubSubLocationTimestamp = null) + { + return CreateLocation(dbContext.DiscoConfiguration, SubLocation, SubSubLocationTimestamp); + } + public static string CreateLocation(ConfigurationContext DiscoConfiguration, string SubLocation, DateTime? SubSubLocationTimestamp = null) + { + string SubSubLocation = string.Empty; + if (SubSubLocationTimestamp.HasValue) + SubSubLocation = SubSubLocationTimestamp.Value.ToString(@"yyyy\\MM"); + + string storeDirectory = System.IO.Path.Combine(DiscoConfiguration.DataStoreLocation, SubLocation, SubSubLocation); + if (!System.IO.Directory.Exists(storeDirectory)) + System.IO.Directory.CreateDirectory(storeDirectory); + + return storeDirectory; + } + + } +} diff --git a/Disco.BI/BI/DeviceBI/BatchUtilities.cs b/Disco.BI/BI/DeviceBI/BatchUtilities.cs new file mode 100644 index 00000000..c2b91d9d --- /dev/null +++ b/Disco.BI/BI/DeviceBI/BatchUtilities.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Models.Repository; +using Disco.Data.Repository; + +namespace Disco.BI.DeviceBI +{ + public static class BatchUtilities + { + public static DeviceBatch DefaultNewDeviceBatch(DiscoDataContext dbContext) + { + return new DeviceBatch() + { + PurchaseDate = DateTime.Today + }; + } + + } +} diff --git a/Disco.BI/BI/DeviceBI/Enrol.cs b/Disco.BI/BI/DeviceBI/Enrol.cs new file mode 100644 index 00000000..c5166870 --- /dev/null +++ b/Disco.BI/BI/DeviceBI/Enrol.cs @@ -0,0 +1,621 @@ +using System; +using System.Linq; +using System.Text.RegularExpressions; +using Disco.BI.Interop.ActiveDirectory; +using Disco.BI.Extensions; +using Disco.Data.Configuration.Modules; +using Disco.Data.Repository; +using Disco.Models.ClientServices; +using Disco.Models.Interop.ActiveDirectory; +using Disco.Models.Repository; +using Tamir.SharpSsh; +using Disco.Services.Plugins; +using Disco.Services.Plugins.Features.CertificateProvider; + +namespace Disco.BI.DeviceBI +{ + public class DeviceEnrol + { + public enum EnrolmentTypes + { + Normal, + Mac = 5, + MacSecure + } + + private static Regex SshPromptRegEx = new Regex("[\\$,\\#]", RegexOptions.Multiline); + public static MacSecureEnrolResponse MacSecureEnrol(DiscoDataContext dbContext, string Host) + { + MacEnrol trustedRequest = new MacEnrol(); + string sessionId = System.Guid.NewGuid().ToString("B"); + MacSecureEnrolResponse MacSecureEnrol; + try + { + EnrolmentLog.LogSessionStarting(sessionId, Host, EnrolmentTypes.MacSecure); + EnrolmentLog.LogSessionProgress(sessionId, 0, string.Format("Connecting to '{0}' as '{1}'", Host, dbContext.DiscoConfiguration.Bootstrapper.MacSshUsername)); + SshShell shell = new SshShell(Host, dbContext.DiscoConfiguration.Bootstrapper.MacSshUsername, dbContext.DiscoConfiguration.Bootstrapper.MacSshPassword); + try + { + shell.ExpectPattern = "#"; + shell.Connect(); + EnrolmentLog.LogSessionProgress(sessionId, 10, "Connected, Authenticating"); + var output = shell.Expect(SshPromptRegEx); + bool sessionElevated = false; + EnrolmentLog.LogSessionDiagnosticInformation(sessionId, output); + if (!output.TrimEnd(new char[0]).EndsWith("#")) + { + EnrolmentLog.LogSessionProgress(sessionId, 22, "Connected, Elevating Credentials"); + shell.WriteLine("sudo -k"); + System.Threading.Thread.Sleep(250); + output = shell.Expect(SshPromptRegEx); + EnrolmentLog.LogSessionProgress(sessionId, 25, "Connected, Elevating Credentials"); + EnrolmentLog.LogSessionDiagnosticInformation(sessionId, output); + shell.WriteLine("sudo -s -S"); + System.Threading.Thread.Sleep(250); + output = shell.Expect(":"); + EnrolmentLog.LogSessionProgress(sessionId, 27, "Connected, Elevating Credentials"); + EnrolmentLog.LogSessionDiagnosticInformation(sessionId, output); + shell.WriteLine(dbContext.DiscoConfiguration.Bootstrapper.MacSshPassword); + System.Threading.Thread.Sleep(250); + output = shell.Expect(SshPromptRegEx); + sessionElevated = true; + EnrolmentLog.LogSessionDiagnosticInformation(sessionId, output); + } + EnrolmentLog.LogSessionProgress(sessionId, 20, "Retrieving Serial Number"); + trustedRequest.DeviceSerialNumber = ParseMacShellCommand(shell, "system_profiler SPHardwareDataType | grep \"Serial Number\" | cut -d \":\" -f 2-", sessionId); + EnrolmentLog.LogSessionDevice(sessionId, trustedRequest.DeviceSerialNumber, null); + EnrolmentLog.LogSessionProgress(sessionId, 30, "Retrieving Hardware UUID"); + trustedRequest.DeviceUUID = ParseMacShellCommand(shell, "system_profiler SPHardwareDataType | grep \"Hardware UUID:\" | cut -d \":\" -f 2-", sessionId); + EnrolmentLog.LogSessionProgress(sessionId, 40, "Retrieving Computer Name"); + trustedRequest.DeviceComputerName = ParseMacShellCommand(shell, "scutil --get ComputerName", sessionId); + EnrolmentLog.LogSessionProgress(sessionId, 50, "Retrieving Ethernet MAC Address"); + string lanNicId = ParseMacShellCommand(shell, "system_profiler SPEthernetDataType | egrep -o \"en0|en1|en2|en3|en4|en5|en6\"", sessionId); + if (!string.IsNullOrWhiteSpace(lanNicId)) + { + trustedRequest.DeviceLanMacAddress = ParseMacShellCommand(shell, string.Format("ifconfig {0} | grep ether | cut -d \" \" -f 2-", lanNicId), sessionId); + } + EnrolmentLog.LogSessionProgress(sessionId, 65, "Retrieving Wireless MAC Address"); + string wlanNicId = ParseMacShellCommand(shell, "system_profiler SPAirPortDataType | egrep -o \"en0|en1|en2|en3|en4|en5|en6\"", sessionId); + if (!string.IsNullOrWhiteSpace(wlanNicId)) + { + trustedRequest.DeviceWlanMacAddress = ParseMacShellCommand(shell, string.Format("ifconfig {0} | grep ether | cut -d \" \" -f 2-", wlanNicId), sessionId); + } + trustedRequest.DeviceManufacturer = "Apple Inc."; + EnrolmentLog.LogSessionProgress(sessionId, 80, "Retrieving Model"); + trustedRequest.DeviceModel = ParseMacShellCommand(shell, "system_profiler SPHardwareDataType | grep \"Model Identifier:\" | cut -d \":\" -f 2-", sessionId); + EnrolmentLog.LogSessionProgress(sessionId, 90, "Retrieving Model Type"); + trustedRequest.DeviceModelType = ParseMacModelType(ParseMacShellCommand(shell, "system_profiler SPHardwareDataType | grep \"Model Name:\" | cut -d \":\" -f 2-", sessionId)); + EnrolmentLog.LogSessionProgress(sessionId, 99, "Disconnecting"); + output = ParseMacModelType(ParseMacShellCommand(shell, "exit", sessionId)); + if (sessionElevated) + { + output = ParseMacModelType(ParseMacShellCommand(shell, "exit", sessionId)); + } + if (shell.Connected) + { + shell.Close(); + } + EnrolmentLog.LogSessionProgress(sessionId, 100, "Disconnected, Starting Disco Enrolment"); + MacSecureEnrolResponse response = MacSecureEnrolResponse.FromMacEnrolResponse(MacEnrol(dbContext, trustedRequest, true, sessionId)); + EnrolmentLog.LogSessionFinished(sessionId); + MacSecureEnrol = response; + } + catch (System.Exception ex) + { + throw ex; + } + finally + { + if (shell != null) + { + bool connected = shell.Connected; + if (connected) + { + shell.Close(); + } + } + } + } + catch (System.Exception ex) + { + EnrolmentLog.LogSessionError(sessionId, ex); + throw ex; + } + return MacSecureEnrol; + } + + #region "Mac Enrol Helpers" + + private static string ParseMacModelType(string ModelName) + { + string ParseMacModelType; + if (!string.IsNullOrWhiteSpace(ModelName)) + { + string mn = ModelName.ToLower(); + if (mn.Contains("imac") || mn.Contains("mini")) + { + ParseMacModelType = "Desktop"; + return ParseMacModelType; + } + if (mn.Contains("macbook")) + { + ParseMacModelType = "Mobile"; + return ParseMacModelType; + } + if (mn.Contains("xserve")) + { + ParseMacModelType = "Server"; + return ParseMacModelType; + } + } + ParseMacModelType = "Unknown"; + return ParseMacModelType; + } + + private static string ParseMacShellCommand(SshShell Shell, string Command, string LogSessionId) + { + Shell.WriteLine(Command); + System.Threading.Thread.Sleep(250); + string Response = Shell.Expect(SshPromptRegEx); + Response = Response.Replace("\r", string.Empty); + EnrolmentLog.LogSessionDiagnosticInformation(LogSessionId, Response); + bool flag = Response.Contains("\n"); + string ParseMacShellCommand; + if (flag) + { + string[] ResponseLines = Response.Split(new char[] + { + '\n' + }); + switch (ResponseLines.Length) + { + case 0: + case 1: + { + ParseMacShellCommand = string.Empty; + break; + } + case 2: + case 3: + { + ParseMacShellCommand = ResponseLines[1].Trim(); + break; + } + default: + { + System.Text.StringBuilder ResponseBuilder = new System.Text.StringBuilder(); + int num = ResponseLines.Length - 2; + int lineIndex = 1; + while (true) + { + int arg_111_0 = lineIndex; + int num2 = num; + if (arg_111_0 > num2) + { + break; + } + ResponseBuilder.AppendLine(ResponseLines[lineIndex]); + lineIndex++; + } + ParseMacShellCommand = ResponseBuilder.ToString().Trim(); + break; + } + } + } + else + { + ParseMacShellCommand = Response; + } + return ParseMacShellCommand; + } + + #endregion + + public static MacEnrolResponse MacEnrol(DiscoDataContext dbContext, MacEnrol Request, bool Trusted, string OpenSessionId = null) + { + string sessionId; + if (OpenSessionId == null) + { + sessionId = System.Guid.NewGuid().ToString("B"); + EnrolmentLog.LogSessionStarting(sessionId, Request.DeviceSerialNumber, EnrolmentTypes.Mac); + } + else + { + sessionId = OpenSessionId; + } + EnrolmentLog.LogSessionDeviceInfo(sessionId, Request); + MacEnrolResponse response = new MacEnrolResponse(); + try + { + EnrolmentLog.LogSessionProgress(sessionId, 10, "Querying Database"); + Device RepoDevice = dbContext.Devices.Include("AssignedUser").Include("DeviceProfile").Include("DeviceProfile").Where(d => d.SerialNumber == Request.DeviceSerialNumber).FirstOrDefault(); + if (!Trusted) + { + if (RepoDevice == null) + throw new EnrolSafeException(string.Format("Unknown Device Serial Number (SN: '{0}')", Request.DeviceSerialNumber)); + if (!RepoDevice.AllowUnauthenticatedEnrol) + throw new EnrolSafeException(string.Format("Device isn't allowed an Unauthenticated Enrolment (SN: '{0}')", Request.DeviceSerialNumber)); + } + if (RepoDevice == null) + { + EnrolmentLog.LogSessionProgress(sessionId, 50, "New Device, Building Disco Instance"); + EnrolmentLog.LogSessionTaskAddedDevice(sessionId, Request.DeviceSerialNumber); + DeviceProfile deviceProfile = dbContext.DeviceProfiles.Find(dbContext.DiscoConfiguration.DeviceProfiles.DefaultDeviceProfileId); + DeviceModel deviceModel = dbContext.DeviceModels.Where(dm => dm.Manufacturer == Request.DeviceManufacturer.Trim() && dm.Model == Request.DeviceModel.Trim()).FirstOrDefault(); + if (deviceModel == null) + { + deviceModel = new DeviceModel + { + Manufacturer = Request.DeviceManufacturer.Trim(), + Model = Request.DeviceModel.Trim(), + ModelType = Request.DeviceModelType.Trim(), + Description = string.Format("{0} {1}", Request.DeviceManufacturer.Trim(), Request.DeviceModel) + }; + dbContext.DeviceModels.Add(deviceModel); + EnrolmentLog.LogSessionTaskCreatedDeviceModel(sessionId, Request.DeviceSerialNumber, Request.DeviceManufacturer.Trim(), Request.DeviceModel.Trim()); + } + else + { + EnrolmentLog.LogSessionDevice(sessionId, Request.DeviceSerialNumber, deviceModel.Id); + } + RepoDevice = new Device + { + SerialNumber = Request.DeviceSerialNumber, + ComputerName = Request.DeviceComputerName, + DeviceProfile = deviceProfile, + DeviceModel = deviceModel, + AllowUnauthenticatedEnrol = false, + Active = true, + CreatedDate = DateTime.Now, + EnrolledDate = DateTime.Now + }; + dbContext.Devices.Add(RepoDevice); + } + else + { + EnrolmentLog.LogSessionProgress(sessionId, 50, "Existing Device, Updating Disco Instance"); + EnrolmentLog.LogSessionTaskUpdatingDevice(sessionId, Request.DeviceSerialNumber); + if (!RepoDevice.DeviceModelId.HasValue || RepoDevice.DeviceModelId.Value == 1) + { + DeviceModel deviceModel = dbContext.DeviceModels.Where(dm => dm.Manufacturer == Request.DeviceManufacturer.Trim() && dm.Model == Request.DeviceModel.Trim()).FirstOrDefault(); + if (deviceModel == null) + { + deviceModel = new DeviceModel + { + Manufacturer = Request.DeviceManufacturer.Trim(), + Model = Request.DeviceModel.Trim(), + ModelType = Request.DeviceModelType.Trim(), + Description = string.Format("{0} {1}", Request.DeviceManufacturer.Trim(), Request.DeviceModel.Trim()) + }; + dbContext.DeviceModels.Add(deviceModel); + EnrolmentLog.LogSessionTaskCreatedDeviceModel(sessionId, Request.DeviceSerialNumber, Request.DeviceManufacturer.Trim(), Request.DeviceModel.Trim()); + } + else + { + EnrolmentLog.LogSessionDevice(sessionId, Request.DeviceSerialNumber, deviceModel.Id); + } + RepoDevice.DeviceModel = deviceModel; + } + else + { + EnrolmentLog.LogSessionDevice(sessionId, Request.DeviceSerialNumber, RepoDevice.DeviceModelId); + } + RepoDevice.ComputerName = Request.DeviceComputerName; + if (!RepoDevice.EnrolledDate.HasValue) + { + RepoDevice.EnrolledDate = DateTime.Now; + } + } + RepoDevice.LastEnrolDate = DateTime.Now; + RepoDevice.AllowUnauthenticatedEnrol = false; + // Removed 2012-06-14 G# - Properties moved to DeviceProfile model & DB Migrated in DBv3. + //DeviceProfileConfiguration RepoDeviceProfileContext = RepoDevice.DeviceProfile.Configuration(Context); + EnrolmentLog.LogSessionProgress(sessionId, 90, "Building Response"); + //if (RepoDeviceProfileContext.DistributionType == DeviceProfileConfiguration.DeviceProfileDistributionTypes.OneToOne && RepoDevice.AssignedUser != null) + if (RepoDevice.DeviceProfile.DistributionType == DeviceProfile.DistributionTypes.OneToOne && RepoDevice.AssignedUser != null) + { + ActiveDirectoryUserAccount AssignedUserInfo = ActiveDirectory.GetUserAccount(RepoDevice.AssignedUser.Id); + EnrolmentLog.LogSessionTaskAssigningUser(sessionId, RepoDevice.SerialNumber, AssignedUserInfo.DisplayName, AssignedUserInfo.sAMAccountName, AssignedUserInfo.Domain, AssignedUserInfo.ObjectSid); + response.DeviceAssignedUserUsername = AssignedUserInfo.sAMAccountName; + response.DeviceAssignedUserDomain = AssignedUserInfo.Domain; + response.DeviceAssignedUserName = AssignedUserInfo.DisplayName; + response.DeviceAssignedUserSID = AssignedUserInfo.ObjectSid; + } + response.DeviceComputerName = RepoDevice.ComputerName; + EnrolmentLog.LogSessionProgress(sessionId, 100, "Completed Successfully"); + } + catch (EnrolSafeException ex) + { + EnrolmentLog.LogSessionError(sessionId, ex); + return new MacEnrolResponse { ErrorMessage = ex.Message }; + } + catch (System.Exception ex2) + { + EnrolmentLog.LogSessionError(sessionId, ex2); + throw ex2; + } + finally + { + if (OpenSessionId == null) + EnrolmentLog.LogSessionFinished(sessionId); + } + return response; + } + public static EnrolResponse Enrol(DiscoDataContext dbContext, string Username, Models.ClientServices.Enrol Request) + { + ActiveDirectoryMachineAccount MachineInfo = null; + EnrolResponse response = new EnrolResponse(); + User authenticatedUser = null; + bool isAuthenticated = false; + string sessionId = System.Guid.NewGuid().ToString("B"); + response.SessionId = sessionId; + EnrolmentLog.LogSessionStarting(sessionId, Request.DeviceSerialNumber, EnrolmentTypes.Normal); + EnrolmentLog.LogSessionDeviceInfo(sessionId, Request); + try + { + EnrolmentLog.LogSessionProgress(sessionId, 10, "Loading User Data"); + if (!string.IsNullOrWhiteSpace(Username)) + { + authenticatedUser = UserBI.UserCache.GetUser(Username, dbContext); + isAuthenticated = (authenticatedUser != null); + } + EnrolmentLog.LogSessionProgress(sessionId, 13, "Loading Device Data"); + + Device RepoDevice = dbContext.Devices.Include("AssignedUser").Include("DeviceModel").Include("DeviceProfile").Where(d => d.SerialNumber == Request.DeviceSerialNumber).FirstOrDefault(); + EnrolmentLog.LogSessionProgress(sessionId, 15, "Discovering User/Device Disco Permissions"); + if (isAuthenticated) + { + if (authenticatedUser.Type != "Admin") + { + if (authenticatedUser.Type != "Computer") + throw new EnrolSafeException(string.Format("Connection not correctly authenticated (SN: {0}; Auth User: {1}; User Type: {2})", Request.DeviceSerialNumber, authenticatedUser.Id, authenticatedUser.Type)); + if (!authenticatedUser.Id.Equals(string.Format("{0}$", Request.DeviceComputerName), System.StringComparison.InvariantCultureIgnoreCase)) + throw new EnrolSafeException(string.Format("Connection not correctly authenticated (SN: {0}; Auth User: {1}; User Type: {2})", Request.DeviceSerialNumber, authenticatedUser.Id, authenticatedUser.Type)); + } + } + else + { + if (RepoDevice == null) + throw new EnrolSafeException(string.Format("Unknown Device Serial Number (SN: '{0}')", Request.DeviceSerialNumber)); + if (!RepoDevice.AllowUnauthenticatedEnrol) + throw new EnrolSafeException(string.Format("Device isn't allowed an Unauthenticated Enrolment (SN: '{0}')", Request.DeviceSerialNumber)); + } + if (Request.DeviceIsPartOfDomain && !string.IsNullOrWhiteSpace(Request.DeviceComputerName)) + { + EnrolmentLog.LogSessionProgress(sessionId, 20, "Loading Active Directory Computer Account"); + System.Guid? uuidGuid = null; + System.Guid? macAddressGuid = null; + if (!string.IsNullOrEmpty(Request.DeviceUUID)) + uuidGuid = ActiveDirectoryMachineAccountExtensions.NetbootGUIDFromUUID(Request.DeviceUUID); + if (!string.IsNullOrEmpty(Request.DeviceLanMacAddress)) + macAddressGuid = ActiveDirectoryMachineAccountExtensions.NetbootGUIDFromMACAddress(Request.DeviceLanMacAddress); + MachineInfo = ActiveDirectory.GetMachineAccount(Request.DeviceComputerName, uuidGuid, macAddressGuid); + } + if (RepoDevice == null) + { + EnrolmentLog.LogSessionProgress(sessionId, 30, "New Device, Creating Disco Instance"); + EnrolmentLog.LogSessionTaskAddedDevice(sessionId, Request.DeviceSerialNumber); + DeviceProfile deviceProfile = dbContext.DeviceProfiles.Find(dbContext.DiscoConfiguration.DeviceProfiles.DefaultDeviceProfileId); + DeviceModel deviceModel = dbContext.DeviceModels.Where(dm => dm.Manufacturer == Request.DeviceManufacturer.Trim() && dm.Model == Request.DeviceModel.Trim()).FirstOrDefault(); + if (deviceModel == null) + { + deviceModel = new DeviceModel + { + Manufacturer = Request.DeviceManufacturer.Trim(), + Model = Request.DeviceModel.Trim(), + ModelType = Request.DeviceModelType.Trim(), + Description = string.Format("{0} {1}", Request.DeviceManufacturer.Trim(), Request.DeviceModel.Trim()) + }; + dbContext.DeviceModels.Add(deviceModel); + EnrolmentLog.LogSessionTaskCreatedDeviceModel(sessionId, Request.DeviceSerialNumber, Request.DeviceManufacturer.Trim(), Request.DeviceModel.Trim()); + } + else + { + EnrolmentLog.LogSessionDevice(sessionId, Request.DeviceSerialNumber, deviceModel.Id); + } + RepoDevice = new Device + { + SerialNumber = Request.DeviceSerialNumber, + ComputerName = Request.DeviceComputerName, + DeviceProfile = deviceProfile, + DeviceModel = deviceModel, + AllowUnauthenticatedEnrol = false, + Active = true, + CreatedDate = DateTime.Now, + EnrolledDate = DateTime.Now, + LastEnrolDate = DateTime.Now + }; + dbContext.Devices.Add(RepoDevice); + } + else + { + EnrolmentLog.LogSessionProgress(sessionId, 30, "Existing Device, Updating Disco Instance"); + EnrolmentLog.LogSessionTaskUpdatingDevice(sessionId, Request.DeviceSerialNumber); + + DeviceModel deviceModel = dbContext.DeviceModels.Where(dm => dm.Manufacturer == Request.DeviceManufacturer.Trim() && dm.Model == Request.DeviceModel.Trim()).FirstOrDefault(); + if (deviceModel == null) + { + deviceModel = new DeviceModel + { + Manufacturer = Request.DeviceManufacturer.Trim(), + Model = Request.DeviceModel.Trim(), + ModelType = Request.DeviceModelType.Trim(), + Description = string.Format("{0} {1}", Request.DeviceManufacturer.Trim(), Request.DeviceModel) + }; + dbContext.DeviceModels.Add(deviceModel); + RepoDevice.DeviceModel = deviceModel; + EnrolmentLog.LogSessionTaskCreatedDeviceModel(sessionId, Request.DeviceSerialNumber, Request.DeviceManufacturer.Trim(), Request.DeviceModel.Trim()); + } + else + { + if (!RepoDevice.DeviceModelId.HasValue || RepoDevice.DeviceModelId.Value != deviceModel.Id) + { + RepoDevice.DeviceModel = deviceModel; + } + EnrolmentLog.LogSessionDevice(sessionId, Request.DeviceSerialNumber, RepoDevice.DeviceModelId); + } + + if (!RepoDevice.EnrolledDate.HasValue) + RepoDevice.EnrolledDate = DateTime.Now; + RepoDevice.LastEnrolDate = DateTime.Now; + } + + if (MachineInfo == null) + { + if (isAuthenticated || RepoDevice.AllowUnauthenticatedEnrol) + { + if (RepoDevice.DeviceProfile.ProvisionADAccount) + { + EnrolmentLog.LogSessionProgress(sessionId, 50, "Provisioning an Active Directory Computer Account"); + if (string.IsNullOrEmpty(RepoDevice.ComputerName) || RepoDevice.DeviceProfile.EnforceComputerNameConvention) + RepoDevice.ComputerName = RepoDevice.ComputerNameRender(dbContext); + EnrolmentLog.LogSessionTaskProvisioningADAccount(sessionId, RepoDevice.SerialNumber, RepoDevice.ComputerName); + MachineInfo = ActiveDirectory.GetMachineAccount(RepoDevice.ComputerName); + response.OfflineDomainJoin = ActiveDirectory.OfflineDomainJoinProvision(ref MachineInfo, RepoDevice.ComputerName, RepoDevice.DeviceProfile.OrganisationalUnit, sessionId); + response.RequireReboot = true; + } + if (MachineInfo != null) + { + response.DeviceComputerName = MachineInfo.Name; + response.DeviceDomainName = MachineInfo.Domain; + } + else + { + response.DeviceComputerName = RepoDevice.ComputerName; + response.DeviceDomainName = RepoDevice.ComputerName; + } + } + else + { + RepoDevice.ComputerName = Request.DeviceComputerName; + response.DeviceComputerName = Request.DeviceComputerName; + response.DeviceDomainName = RepoDevice.ComputerName; + } + } + else + { + RepoDevice.ComputerName = MachineInfo.Name; + response.DeviceComputerName = MachineInfo.Name; + response.DeviceDomainName = MachineInfo.Domain; + + // Enforce Computer Name Convention + if (RepoDevice.DeviceProfile.EnforceComputerNameConvention) + { + var calculatedComputerName = RepoDevice.ComputerNameRender(dbContext); + if (!Request.DeviceComputerName.Equals(calculatedComputerName, StringComparison.InvariantCultureIgnoreCase)) + { + EnrolmentLog.LogSessionProgress(sessionId, 50, string.Format("Renaming Device: {0} -> {1}", Request.DeviceComputerName, calculatedComputerName)); + EnrolmentLog.LogSessionTaskRenamingDevice(sessionId, Request.DeviceComputerName, calculatedComputerName); + + RepoDevice.ComputerName = calculatedComputerName; + response.DeviceComputerName = calculatedComputerName; + + // Create New Account + response.OfflineDomainJoin = ActiveDirectory.OfflineDomainJoinProvision(ref MachineInfo, RepoDevice.ComputerName, RepoDevice.DeviceProfile.OrganisationalUnit, sessionId); + response.RequireReboot = true; + } + } + + // Enforce Organisation Unit + if (response.OfflineDomainJoin == null && RepoDevice.DeviceProfile.EnforceOrganisationalUnit) + { + if ((RepoDevice.DeviceProfile.OrganisationalUnit == null && MachineInfo.ParentDistinguishedName.Equals("CN=Computers", StringComparison.InvariantCultureIgnoreCase)) // Null (Default) OU + || !MachineInfo.ParentDistinguishedName.Equals(RepoDevice.DeviceProfile.OrganisationalUnit, StringComparison.InvariantCultureIgnoreCase)) // Custom OU + { + string newOU = RepoDevice.DeviceProfile.OrganisationalUnit ?? "CN=Computers"; + + EnrolmentLog.LogSessionProgress(sessionId, 65, string.Format("Moving Device Organisation Unit: {0} -> {1}", MachineInfo.ParentDistinguishedName, newOU)); + EnrolmentLog.LogSessionTaskMovingDeviceOrganisationUnit(sessionId, MachineInfo.ParentDistinguishedName, newOU); + MachineInfo.MoveOrganisationUnit(RepoDevice.DeviceProfile.OrganisationalUnit); + MachineInfo = ActiveDirectory.GetMachineAccount(MachineInfo.sAMAccountName); + response.RequireReboot = true; + } + } + + } + if (MachineInfo != null) + { + EnrolmentLog.LogSessionProgress(sessionId, 75, "Updating Active Directory Computer Account Properties"); + MachineInfo.UpdateNetbootGUID(Request.DeviceUUID, Request.DeviceLanMacAddress); + if (RepoDevice.AssignedUser != null) + MachineInfo.SetDescription(RepoDevice); + } + if (RepoDevice.DeviceProfile.DistributionType == DeviceProfile.DistributionTypes.OneToOne) + { + if (RepoDevice.AssignedUser == null) + { + response.AllowBootstrapperUninstall = false; + } + else + { + EnrolmentLog.LogSessionProgress(sessionId, 80, "Retrieving Active Directory Assigned User Account"); + ActiveDirectoryUserAccount AssignedUserInfo = ActiveDirectory.GetUserAccount(RepoDevice.AssignedUser.Id); + EnrolmentLog.LogSessionTaskAssigningUser(sessionId, RepoDevice.SerialNumber, AssignedUserInfo.DisplayName, AssignedUserInfo.sAMAccountName, AssignedUserInfo.Domain, AssignedUserInfo.ObjectSid); + response.AllowBootstrapperUninstall = true; + response.DeviceAssignedUserUsername = AssignedUserInfo.sAMAccountName; + response.DeviceAssignedUserDomain = AssignedUserInfo.Domain; + response.DeviceAssignedUserName = AssignedUserInfo.DisplayName; + response.DeviceAssignedUserSID = AssignedUserInfo.ObjectSid; + } + } + else + { + response.AllowBootstrapperUninstall = true; + } + if (!string.IsNullOrEmpty(Request.DeviceWlanMacAddress) && !string.IsNullOrEmpty(RepoDevice.DeviceProfile.CertificateProviderId)) + { + EnrolmentLog.LogSessionProgress(sessionId, 90, "Provisioning a Wireless Certificate"); + + var allocationResult = RepoDevice.AllocateCertificate(dbContext); + var deviceCertificate = allocationResult.Item1; + if (deviceCertificate != null) + { + bool certAlreadyInstalled = false; + if (Request.DeviceCertificates != null && Request.DeviceCertificates.Count > 0) + { + foreach (string existingCertName in Request.DeviceCertificates) + { + if (existingCertName.Contains(deviceCertificate.Name)) + { + certAlreadyInstalled = true; + break; + } + } + } + if (!certAlreadyInstalled) + { + EnrolmentLog.LogSessionTaskProvisioningWirelessCertificate(sessionId, RepoDevice.SerialNumber, deviceCertificate.Name); + response.DeviceCertificate = System.Convert.ToBase64String(deviceCertificate.Content); + } + } + response.DeviceCertificateRemoveExisting = allocationResult.Item2; + } + + // Reset 'AllowUnauthenticatedEnrol' + if (RepoDevice.AllowUnauthenticatedEnrol) + RepoDevice.AllowUnauthenticatedEnrol = false; + + EnrolmentLog.LogSessionProgress(sessionId, 100, "Completed Successfully"); + } + catch (EnrolSafeException ex) + { + EnrolmentLog.LogSessionError(sessionId, ex); + return new EnrolResponse + { + SessionId = sessionId, + ErrorMessage = ex.Message + }; + } + catch (System.Exception ex2) + { + EnrolmentLog.LogSessionError(sessionId, ex2); + throw ex2; + } + finally + { + EnrolmentLog.LogSessionFinished(sessionId); + } + return response; + } + } +} diff --git a/Disco.BI/BI/DeviceBI/EnrolSafeException.cs b/Disco.BI/BI/DeviceBI/EnrolSafeException.cs new file mode 100644 index 00000000..85244d8b --- /dev/null +++ b/Disco.BI/BI/DeviceBI/EnrolSafeException.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Runtime.CompilerServices; +using System.Threading; +namespace Disco.BI +{ + public class EnrolSafeException : System.Exception + { + public EnrolSafeException(string Message) : base(Message) + { + } + } +} diff --git a/Disco.BI/BI/DeviceBI/EnrolmentLog.cs b/Disco.BI/BI/DeviceBI/EnrolmentLog.cs new file mode 100644 index 00000000..de68bea6 --- /dev/null +++ b/Disco.BI/BI/DeviceBI/EnrolmentLog.cs @@ -0,0 +1,482 @@ +using Disco.Services.Logging; +using Disco.Services.Logging.Models; +using Disco.Models.ClientServices; +using System; +using System.Collections.Generic; +using System.Diagnostics; +namespace Disco.BI.DeviceBI +{ + public class EnrolmentLog : LogBase + { + public enum EventTypeIds + { + SessionStarting = 10, + SessionProgress, + SessionDevice, + SessionDeviceInfo, + SessionFinished = 20, + SessionDiagnosticInformation, + SessionWarning, + SessionError, + SessionErrorWithInner, + SessionClientError, + SessionTaskAddedDevice = 50, + SessionTaskUpdatingDevice, + SessionTaskCreatedDeviceModel = 56, + SessionTaskProvisioningADAccount = 58, + SessionTaskAssigningUser = 60, + SessionTaskProvisioningWirelessCertificate = 62, + SessionTaskRenamingDevice = 64, + SessionTaskMovingDeviceOrganisationUnit = 66, + ClientError = 400 + } + private const int _ModuleId = 50; + public static EnrolmentLog Current + { + get + { + return (EnrolmentLog)LogContext.LogModules[50]; + } + } + public override string ModuleDescription + { + get + { + return "Device Enrolment"; + } + } + public override int ModuleId + { + get + { + return 50; + } + } + public override string ModuleName + { + get + { + return "DeviceEnrolment"; + } + } + [System.Diagnostics.DebuggerNonUserCode] + public EnrolmentLog() + { + } + private static void Log(EnrolmentLog.EventTypeIds EventTypeId, params object[] Args) + { + EnrolmentLog.Current.Log((int)EventTypeId, Args); + } + public static void LogSessionStarting(string SessionId, string HostId, DeviceEnrol.EnrolmentTypes EnrolmentType) + { + EnrolmentLog.Log(EnrolmentLog.EventTypeIds.SessionStarting, new object[] + { + SessionId, + HostId, + System.Enum.GetName(EnrolmentType.GetType(), EnrolmentType) + }); + } + public static void LogSessionDevice(string SessionId, string DeviceSerialNumber, int? DeviceModelId) + { + EnrolmentLog.Log(EnrolmentLog.EventTypeIds.SessionDevice, new object[] + { + SessionId, + DeviceSerialNumber, + DeviceModelId + }); + } + public static void LogSessionDeviceInfo(string SessionId, string SerialNumber, string UUID, string ComputerName, string LanMacAddress, string WlanMacAddress, string Manufacturer, string Model, string ModelType) + { + EnrolmentLog.Log(EnrolmentLog.EventTypeIds.SessionDeviceInfo, new object[] + { + SessionId, + SerialNumber, + UUID, + ComputerName, + LanMacAddress, + WlanMacAddress, + Manufacturer, + Model, + ModelType + }); + } + public static void LogSessionDeviceInfo(string SessionId, MacEnrol Request) + { + EnrolmentLog.LogSessionDeviceInfo(SessionId, Request.DeviceSerialNumber, Request.DeviceUUID, Request.DeviceComputerName, Request.DeviceLanMacAddress, Request.DeviceWlanMacAddress, Request.DeviceManufacturer, Request.DeviceModel, Request.DeviceModelType); + } + public static void LogSessionDeviceInfo(string SessionId, Models.ClientServices.Enrol Request) + { + EnrolmentLog.LogSessionDeviceInfo(SessionId, Request.DeviceSerialNumber, Request.DeviceUUID, Request.DeviceComputerName, Request.DeviceLanMacAddress, Request.DeviceWlanMacAddress, Request.DeviceManufacturer, Request.DeviceModel, Request.DeviceModelType); + } + public static void LogSessionProgress(string SessionId, int Progress, string Status) + { + EnrolmentLog.Log(EnrolmentLog.EventTypeIds.SessionProgress, new object[] + { + SessionId, + Progress, + Status + }); + } + public static void LogSessionFinished(string SessionId) + { + EnrolmentLog.Log(EnrolmentLog.EventTypeIds.SessionFinished, new object[] + { + SessionId + }); + } + public static void LogSessionDiagnosticInformation(string SessionId, string Message) + { + EnrolmentLog.Log(EnrolmentLog.EventTypeIds.SessionDiagnosticInformation, new object[] + { + SessionId, + Message + }); + } + public static void LogSessionWarning(string SessionId, string Message) + { + EnrolmentLog.Log(EnrolmentLog.EventTypeIds.SessionWarning, new object[] + { + SessionId, + Message + }); + } + public static void LogSessionError(string SessionId, System.Exception Ex) + { + if (Ex.InnerException == null) + { + EnrolmentLog.Log(EnrolmentLog.EventTypeIds.SessionError, new object[] + { + SessionId, + Ex.GetType().Name, + Ex.Message, + Ex.StackTrace + }); + } + else + { + EnrolmentLog.Log(EnrolmentLog.EventTypeIds.SessionErrorWithInner, new object[] + { + SessionId, + Ex.GetType().Name, + Ex.Message, + Ex.InnerException.GetType().Name, + Ex.InnerException.Message, + Ex.StackTrace, + Ex.InnerException.StackTrace + }); + } + } + public static void LogSessionClientError(string SessionId, string ClientIP, string ClientIdentifier, string ClientVersion, string Error, string RawError) + { + EnrolmentLog.Log(EnrolmentLog.EventTypeIds.SessionClientError, new object[] + { + SessionId, + ClientIP, + ClientIdentifier, + ClientVersion, + Error, + RawError + }); + } + public static void LogSessionTaskAddedDevice(string SessionId, string DeviceSerialNumber) + { + EnrolmentLog.Log(EnrolmentLog.EventTypeIds.SessionTaskAddedDevice, new object[] + { + SessionId, + DeviceSerialNumber + }); + } + public static void LogSessionTaskUpdatingDevice(string SessionId, string DeviceSerialNumber) + { + EnrolmentLog.Log(EnrolmentLog.EventTypeIds.SessionTaskUpdatingDevice, new object[] + { + SessionId, + DeviceSerialNumber + }); + } + public static void LogSessionTaskCreatedDeviceModel(string SessionId, string DeviceSerialNumber, string Manufacturer, string Model) + { + EnrolmentLog.Log(EnrolmentLog.EventTypeIds.SessionTaskCreatedDeviceModel, new object[] + { + SessionId, + DeviceSerialNumber, + Manufacturer, + Model + }); + } + public static void LogSessionTaskProvisioningADAccount(string SessionId, string DeviceSerialNumber, string ADAccountName) + { + EnrolmentLog.Log(EnrolmentLog.EventTypeIds.SessionTaskProvisioningADAccount, new object[] + { + SessionId, + DeviceSerialNumber, + ADAccountName + }); + } + public static void LogSessionTaskAssigningUser(string SessionId, string DeviceSerialNumber, string UserDisplayName, string UserUsername, string UserDomain, string UserSID) + { + EnrolmentLog.Log(EnrolmentLog.EventTypeIds.SessionTaskAssigningUser, new object[] + { + SessionId, + DeviceSerialNumber, + UserDisplayName, + UserUsername, + UserDomain, + UserSID + }); + } + public static void LogSessionTaskProvisioningWirelessCertificate(string SessionId, string DeviceSerialNumber, string CertificateName) + { + EnrolmentLog.Log(EnrolmentLog.EventTypeIds.SessionTaskProvisioningWirelessCertificate, new object[] + { + SessionId, + DeviceSerialNumber, + CertificateName + }); + } + public static void LogSessionTaskRenamingDevice(string SessionId, string OldComputerName, string NewComputerName) + { + EnrolmentLog.Log(EnrolmentLog.EventTypeIds.SessionTaskRenamingDevice, new object[] + { + SessionId, + OldComputerName, + NewComputerName + }); + } + public static void LogSessionTaskMovingDeviceOrganisationUnit(string SessionId, string OldOrganisationUnit, string NewOrganisationUnit) + { + EnrolmentLog.Log(EnrolmentLog.EventTypeIds.SessionTaskMovingDeviceOrganisationUnit, new object[] + { + SessionId, + OldOrganisationUnit, + NewOrganisationUnit + }); + } + public static void LogClientError(string ClientIP, string ClientIdentifier, string ClientVersion, string Error, string RawError) + { + EnrolmentLog.Log(EnrolmentLog.EventTypeIds.ClientError, new object[] + { + ClientIP, + ClientIdentifier, + ClientVersion, + Error, + RawError + }); + } + protected override System.Collections.Generic.List LoadEventTypes() + { + return new System.Collections.Generic.List + { + new LogEventType + { + Id = 10, + ModuleId = 50, + Name = "Session Starting", + Format = "Starting '{2}' Enrolment for {1} (Session# {0})", + Severity = 0, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 12, + ModuleId = 50, + Name = "Session Device", + Format = null, + Severity = 0, + UseLive = true, + UsePersist = true, + UseDisplay = false + }, + new LogEventType + { + Id = 11, + ModuleId = 50, + Name = "Session Progress", + Format = "Processing Session# {0}; {1}% Complete; Status: {2}", + Severity = 0, + UseLive = true, + UsePersist = false, + UseDisplay = false + }, + new LogEventType + { + Id = 13, + ModuleId = 50, + Name = "Session Device Info", + Format = null, + Severity = 0, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 20, + ModuleId = 50, + Name = "Session Finished", + Format = "Finished Session# {0}", + Severity = 0, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 21, + ModuleId = 50, + Name = "Session Diagnostic Information", + Format = null, + Severity = 0, + UseLive = true, + UsePersist = false, + UseDisplay = false + }, + new LogEventType + { + Id = 22, + ModuleId = 50, + Name = "Session Warning", + Format = null, + Severity = 1, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 23, + ModuleId = 50, + Name = "Session Error", + Format = "An Error Occurred: [{1}] {2}", + Severity = 2, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 24, + ModuleId = 50, + Name = "Session Error with Internal", + Format = "An Error Occurred: [{1}] {2}; Internal Error: [{3}] {4}", + Severity = 2, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = (int)EventTypeIds.SessionClientError, + ModuleId = _ModuleId, + Name = "Client Error", + Format = "IP: {1}; Device ID: {2}; Version: {3} Error: {4}; Session# {0}", + Severity = (int)LogEventType.Severities.Error, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 50, + ModuleId = 50, + Name = "Task - Added Device", + Format = "Creating Disco Device {1}", + Severity = 0, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 51, + ModuleId = 50, + Name = "Task - Updating Device", + Format = "Updating Disco Device {1}", + Severity = 0, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 56, + ModuleId = 50, + Name = "Task - Creating Device Model", + Format = "Creating Device Model '{2} {3}' for Device {1}", + Severity = 0, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 58, + ModuleId = 50, + Name = "Task - Provisioning Active Directory Account", + Format = "Provisioning Active Directory Account '{2}' for Device {1}", + Severity = 0, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 60, + ModuleId = 50, + Name = "Task - Assigning User", + Format = "Assigning User '{2}' ({4}\\{3} {{{5}}}) for Device {1}", + Severity = 0, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 62, + ModuleId = 50, + Name = "Task - Provisioning Wireless Certificate", + Format = "Provisioning Wireless Certificate '{2}' for Device {1}", + Severity = 0, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 64, + ModuleId = 50, + Name = "Task - Renaming Device", + Format = "Renaming Device '{1}' to '{2}'", + Severity = 0, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 66, + ModuleId = 50, + Name = "Task - Moving Device Organisation Unit", + Format = "Moving Device Organisation Unit '{1}' to '{2}'", + Severity = 0, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = (int)EventTypeIds.ClientError, + ModuleId = _ModuleId, + Name = "Client Error", + Format = "IP: {0}; Device ID: {1}; Version: {2} Error: {3}", + Severity = (int)LogEventType.Severities.Error, + UseLive = true, + UsePersist = true, + UseDisplay = true + } + }; + } + } +} diff --git a/Disco.BI/BI/DeviceBI/Searching.cs b/Disco.BI/BI/DeviceBI/Searching.cs new file mode 100644 index 00000000..e4fb1f11 --- /dev/null +++ b/Disco.BI/BI/DeviceBI/Searching.cs @@ -0,0 +1,56 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Models.BI.Search; +using Disco.Models.Repository; +using Disco.Data.Repository; + +namespace Disco.BI.DeviceBI +{ + public static class Searching + { + private static List Search_SelectDeviceSearchResultItem(IQueryable Query, int? LimitCount = null){ + if (LimitCount.HasValue) + Query = Query.Take(LimitCount.Value); + + return Query.Select(d => new DeviceSearchResultItem() + { + SerialNumber = d.SerialNumber, + AssetNumber = d.AssetNumber, + ComputerName = d.ComputerName, + DeviceModelDescription = d.DeviceModel.Description, + DeviceProfileDescription = d.DeviceProfile.Description, + DecommissionedDate = d.DecommissionedDate, + AssignedUserId = d.AssignedUserId, + AssignedUserDisplayName = d.AssignedUser.DisplayName, + JobCount = d.Jobs.Count() + }).ToList(); + } + + public static List Search(DiscoDataContext dbContext, string Term, int? LimitCount = null) + { + return Search_SelectDeviceSearchResultItem(dbContext.Devices.Where(d => + d.AssetNumber.Contains(Term) || + d.ComputerName.Contains(Term) || + d.SerialNumber.Contains(Term) || + d.Location.Contains(Term) || + Term.Contains(d.SerialNumber) + ), LimitCount); + } + + public static List SearchDeviceModel(DiscoDataContext dbContext, int DeviceModelId, int? LimitCount = null) + { + return Search_SelectDeviceSearchResultItem(dbContext.Devices.Where(d => d.DeviceModelId == DeviceModelId), LimitCount); + } + public static List SearchDeviceProfile(DiscoDataContext dbContext, int DeviceProfileId, int? LimitCount = null) + { + return Search_SelectDeviceSearchResultItem(dbContext.Devices.Where(d => d.DeviceProfileId == DeviceProfileId), LimitCount); + } + public static List SearchDeviceBatch(DiscoDataContext dbContext, int DeviceBatchId, int? LimitCount = null) + { + return Search_SelectDeviceSearchResultItem(dbContext.Devices.Where(d => d.DeviceBatchId == DeviceBatchId), LimitCount); + } + + } +} diff --git a/Disco.BI/BI/DisposableImageCollection.cs b/Disco.BI/BI/DisposableImageCollection.cs new file mode 100644 index 00000000..8283e740 --- /dev/null +++ b/Disco.BI/BI/DisposableImageCollection.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Drawing; + +namespace Disco.BI +{ + public class DisposableImageCollection : List, IDisposable + { + public void Dispose() + { + foreach (Image i in this) + { + if (i != null) + i.Dispose(); + } + } + + } +} diff --git a/Disco.BI/BI/DocumentTemplateBI/DocumentTemplateQRCodeLocationCache.cs b/Disco.BI/BI/DocumentTemplateBI/DocumentTemplateQRCodeLocationCache.cs new file mode 100644 index 00000000..d48cb80f --- /dev/null +++ b/Disco.BI/BI/DocumentTemplateBI/DocumentTemplateQRCodeLocationCache.cs @@ -0,0 +1,72 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Collections.Concurrent; +using Disco.Models.Repository; +using Disco.Data.Repository; +using Disco.BI.Extensions; +using System.Web; +using System.Drawing; +using iTextSharp.text.pdf; + +namespace Disco.BI.DocumentTemplateBI +{ + class DocumentTemplateQRCodeLocationCache + { + private static ConcurrentDictionary> _Cache = new ConcurrentDictionary>(); + + public static List GetLocations(DocumentTemplate dt, DiscoDataContext dbContext) + { + // Check Cache + List locations; + if (_Cache.TryGetValue(dt.Id, out locations)) + { + return locations; + } + // Generate Cache + return GenerateLocations(dt, dbContext); + } + + public static bool InvalidateLocations(DocumentTemplate dt) + { + List locations; + return _Cache.TryRemove(dt.Id, out locations); + } + + private static bool SetValue(string DocumentTemplateId, List Locations) + { + if (_Cache.ContainsKey(DocumentTemplateId)) + { + List oldLocations; + if (_Cache.TryGetValue(DocumentTemplateId, out oldLocations)) + { + return _Cache.TryUpdate(DocumentTemplateId, Locations, oldLocations); + } + } + return _Cache.TryAdd(DocumentTemplateId, Locations); + } + + internal static List GenerateLocations(DocumentTemplate dt, DiscoDataContext dbContext) + { + string templateFilename = dt.RepositoryFilename(dbContext); + PdfReader pdfReader = new PdfReader(templateFilename); + List locations = new List(); + + if (pdfReader.AcroFields.Fields.ContainsKey("DiscoAttachmentId")) + { + foreach (var pdfFieldPosition in pdfReader.AcroFields.GetFieldPositions("DiscoAttachmentId")) + { + var pdfPageSize = pdfReader.GetPageSize(pdfFieldPosition.page); + locations.Add(new RectangleF((float)System.Math.Min(1.0, System.Math.Max(0.0, (double)(pdfFieldPosition.position.Left / pdfPageSize.Width) - 0.1)), (float)System.Math.Min(1.0, System.Math.Max(0.0, (double)((pdfPageSize.Height - pdfFieldPosition.position.Top) / pdfPageSize.Height) - 0.1)), (float)System.Math.Min(1.0, System.Math.Max(0.0, (double)(pdfFieldPosition.position.Width / pdfPageSize.Width) + 0.2)), (float)System.Math.Min(1.0, System.Math.Max(0.0, (double)(pdfFieldPosition.position.Height / pdfPageSize.Height) + 0.2)))); + } + } + pdfReader.Close(); + + // Update Cache + SetValue(dt.Id, locations); + return locations; + } + + } +} diff --git a/Disco.BI/BI/DocumentTemplateBI/DocumentUniqueIdentifier.cs b/Disco.BI/BI/DocumentTemplateBI/DocumentUniqueIdentifier.cs new file mode 100644 index 00000000..08eaca39 --- /dev/null +++ b/Disco.BI/BI/DocumentTemplateBI/DocumentUniqueIdentifier.cs @@ -0,0 +1,203 @@ +using Disco.Data.Repository; +using Disco.Models.Repository; +using System; +namespace Disco.BI.DocumentTemplateBI +{ + public class DocumentUniqueIdentifier + { + private bool? _loadedComponentsOk; + private DocumentTemplate _documentTemplate; + private object _data; + private string _dataDescription; + public string TemplateTypeId { get; private set; } + public string DataId { get; private set; } + public string DocumentUniqueId + { + get + { + return string.Format("{0}|{1}", this.TemplateTypeId, this.DataId); + } + } + public string CreatorId { get; private set; } + public System.DateTime TimeStamp { get; private set; } + public int Page { get; private set; } + public string Tag { get; private set; } + public DocumentTemplate DocumentTemplate + { + get + { + bool flag = this._loadedComponentsOk.HasValue && this._loadedComponentsOk.Value; + if (flag) + { + return this._documentTemplate; + } + throw new System.Exception("Document Unique Identifier Components not loaded or invalid"); + } + } + public object Data + { + get + { + bool flag = this._loadedComponentsOk.HasValue && this._loadedComponentsOk.Value; + if (flag) + { + return this._data; + } + throw new System.Exception("Document Unique Identifier Components not loaded or invalid"); + } + } + public string DataDescription + { + get + { + bool flag = this._loadedComponentsOk.HasValue && this._loadedComponentsOk.Value; + if (flag) + { + return this._dataDescription; + } + throw new System.Exception("Document Unique Identifier Components not loaded or invalid"); + } + } + public string DataScope { get; private set; } + public static bool IsDocumentUniqueIdentifier(string UniqueIdentifier) + { + return UniqueIdentifier.StartsWith("Disco|", System.StringComparison.InvariantCultureIgnoreCase); + } + public DocumentUniqueIdentifier(string TemplateTypeId, string DataId, string CreatorId, DateTime TimeStamp, int? Page = null, string Tag = null) + { + this.Tag = Tag; + this.TemplateTypeId = TemplateTypeId; + this.DataId = DataId; + this.CreatorId = CreatorId; + this.TimeStamp = TimeStamp; + this.Page = Page ?? 0; + } + public DocumentUniqueIdentifier(string UniqueIdentifier, string Tag) + { + if (!DocumentUniqueIdentifier.IsDocumentUniqueIdentifier(UniqueIdentifier)) + { + throw new System.ArgumentException("Invalid Document Unique Identifier", "UniqueIdentifier"); + } + this.Tag = Tag; + string[] s = UniqueIdentifier.Split(new char[] { '|' }); + string left = s[1].ToUpper(); + if (left == "AT" || left == "1") + { + if (s.Length >= 3) + { + this.TemplateTypeId = s[2]; + } + if (s.Length >= 4) + { + this.DataId = s[3]; + } + if (s.Length >= 5) + { + this.CreatorId = s[4]; + } + if (s.Length >= 6) + { + System.DateTime timeStamp; + if (System.DateTime.TryParse(s[5], out timeStamp)) + { + this.TimeStamp = timeStamp; + } + } + if (s.Length >= 7) + { + int page = 0; + if (int.TryParse(s[6], out page)) + { + this.Page = page; + } + } + return; + } + throw new System.ArgumentException(string.Format("Invalid Document Unique Identifier Version ({0})", s[1]), "UniqueIdentifier"); + } + public bool LoadComponents(DiscoDataContext Context) + { + bool LoadComponents; + if (!this._loadedComponentsOk.HasValue) + { + string scopeType; + if (this.TemplateTypeId.StartsWith("--")) + { + string templateTypeId = this.TemplateTypeId; + switch (this.TemplateTypeId) + { + case "--DEVICE": + scopeType = DocumentTemplate.DocumentTemplateScopes.Device; + break; + case "--JOB": + scopeType = DocumentTemplate.DocumentTemplateScopes.Job; + break; + case "--USER": + scopeType = DocumentTemplate.DocumentTemplateScopes.User; + break; + default: + scopeType = null; + break; + } + } + else + { + this._documentTemplate = Context.DocumentTemplates.Find(this.TemplateTypeId); + if (this._documentTemplate != null) + { + scopeType = this._documentTemplate.Scope; + } + else + { + scopeType = null; + } + } + if (scopeType != null) + { + this.DataScope = scopeType; + switch (scopeType) + { + case DocumentTemplate.DocumentTemplateScopes.Device: + Device d = Context.Devices.Find(this.DataId); + if (d != null) + { + this._data = d; + this._dataDescription = d.SerialNumber; + this._loadedComponentsOk = true; + LoadComponents = true; + return LoadComponents; + } + break; + case DocumentTemplate.DocumentTemplateScopes.Job: + Job i = Context.Jobs.Find(int.Parse(this.DataId)); + if (i != null) + { + this._data = i; + this._dataDescription = i.Id.ToString(); + this._loadedComponentsOk = true; + LoadComponents = true; + return LoadComponents; + } + break; + case DocumentTemplate.DocumentTemplateScopes.User: + User u = Context.Users.Find(this.DataId); + if (u != null) + { + this._data = u; + this._dataDescription = u.DisplayName; + this._loadedComponentsOk = true; + LoadComponents = true; + return LoadComponents; + } + break; + default: + break; + } + } + this._loadedComponentsOk = false; + } + LoadComponents = this._loadedComponentsOk.Value; + return LoadComponents; + } + } +} diff --git a/Disco.BI/BI/DocumentTemplateBI/Importer/DocumentDropBoxMonitor.cs b/Disco.BI/BI/DocumentTemplateBI/Importer/DocumentDropBoxMonitor.cs new file mode 100644 index 00000000..635f1871 --- /dev/null +++ b/Disco.BI/BI/DocumentTemplateBI/Importer/DocumentDropBoxMonitor.cs @@ -0,0 +1,85 @@ +using System; +using System.IO; +using System.Web.Caching; +using Disco.Data.Repository; +using Quartz; +using Quartz.Impl; +using Quartz.Impl.Triggers; + +namespace Disco.BI.DocumentTemplateBI.Importer +{ + public class DocumentDropBoxMonitor : System.IDisposable + { + private IScheduler _scheduler; + private FileSystemWatcher _fsw; + private Cache _httpCache; + + public const string WatcherFilter = "*.pdf"; + public string DropBoxLocation { get; private set; } + + public DocumentDropBoxMonitor(DiscoDataContext Context, ISchedulerFactory SchedulerFactory, Cache HttpCache) + { + if (Context == null) + throw new System.ArgumentNullException("Context"); + + this._httpCache = HttpCache; + + var location = DataStore.CreateLocation(Context, "DocumentDropBox"); + this.DropBoxLocation = location.EndsWith(@"\") ? location : string.Concat(location, @"\"); + + this._scheduler = SchedulerFactory.GetScheduler(); + this._scheduler.Start(); + } + public void ScheduleCurrentFiles(int Delay) + { + foreach (var filename in System.IO.Directory.GetFiles(this.DropBoxLocation, "*.pdf")) + { + this.ScheduleFile(filename, Delay); + } + } + public void StartWatching() + { + if (this._fsw == null) + { + this._fsw = new FileSystemWatcher(this.DropBoxLocation, "*.pdf"); + this._fsw.Created += new FileSystemEventHandler(this.FSW_Created); + } + this._fsw.EnableRaisingEvents = true; + } + public void StopWatching() + { + if (this._fsw != null) + { + this._fsw.EnableRaisingEvents = false; + } + } + public void ScheduleFile(string Filename, int Delay) + { + System.Guid guid = System.Guid.NewGuid(); + JobDetailImpl jd = new JobDetailImpl(guid.ToString(), typeof(DocumentImporterJob)); + jd.JobDataMap.Add("Filename", Filename); + jd.JobDataMap.Add("RetryCount", 0); + jd.JobDataMap.Add("HttpCache", this._httpCache); + guid = System.Guid.NewGuid(); + + System.DateTimeOffset startTimeUtc = new System.DateTimeOffset(DateTime.Now.AddSeconds((double)Delay)); + SimpleTriggerImpl trig = new SimpleTriggerImpl(guid.ToString(), startTimeUtc); + + this._scheduler.ScheduleJob(jd, trig); + } + private void FSW_Created(object sender, FileSystemEventArgs e) + { + if ((e.ChangeType & WatcherChangeTypes.Deleted) != WatcherChangeTypes.Deleted) + this.ScheduleFile(e.FullPath, 5); + } + + public void Dispose() + { + this.StopWatching(); + if (this._fsw != null) + this._fsw.Dispose(); + if (this._scheduler != null) + this._scheduler.Shutdown(false); + } + } +} diff --git a/Disco.BI/BI/DocumentTemplateBI/Importer/DocumentImporterCleanCacheJob.cs b/Disco.BI/BI/DocumentTemplateBI/Importer/DocumentImporterCleanCacheJob.cs new file mode 100644 index 00000000..2b5dc099 --- /dev/null +++ b/Disco.BI/BI/DocumentTemplateBI/Importer/DocumentImporterCleanCacheJob.cs @@ -0,0 +1,63 @@ +using Disco.Data.Repository; +using Disco.Services.Logging; +using Quartz; +using Quartz.Impl; +using Disco.Services.Tasks; + +namespace Disco.BI.DocumentTemplateBI.Importer +{ + public class DocumentImporterCleanCacheJob : ScheduledTask + { + public override string TaskName { get { return "Document Importer - Clean Cache Task"; } } + + public override bool SingleInstanceTask { get { return true; } } + public override bool CancelInitiallySupported { get { return false; } } + + public override void InitalizeScheduledTask(DiscoDataContext dbContext) + { + // Trigger Daily @ 12:30am + TriggerBuilder triggerBuilder = TriggerBuilder.Create().WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(0, 30)); + + this.ScheduleTask(triggerBuilder); + } + + protected override void ExecuteTask() + { + string dataStoreLocation; + using (DiscoDataContext dbContext = new DiscoDataContext()) + { + dataStoreLocation = DataStore.CreateLocation(dbContext, "Cache\\DocumentDropBox_SessionPages"); + } + + int deleteCount = 0; + int errorCount = 0; + + System.IO.DirectoryInfo dataStoreInfo = new System.IO.DirectoryInfo(dataStoreLocation); + + System.DateTime today = System.DateTime.Today; + + foreach (System.IO.FileInfo file in dataStoreInfo.GetFiles()) + { + try + { + if (file.CreationTime < today) + { + file.Delete(); + deleteCount++; + } + } + catch + { + errorCount++; + } + } + + SystemLog.LogInformation( + string.Format("Cleared DocumentDropBox_SessionPages Cache, Deleted {0} File/s, with {1} Error/s", deleteCount, errorCount), + deleteCount, + errorCount + ); + } + + } +} diff --git a/Disco.BI/BI/DocumentTemplateBI/Importer/DocumentImporterJob.cs b/Disco.BI/BI/DocumentTemplateBI/Importer/DocumentImporterJob.cs new file mode 100644 index 00000000..f06297fc --- /dev/null +++ b/Disco.BI/BI/DocumentTemplateBI/Importer/DocumentImporterJob.cs @@ -0,0 +1,120 @@ +using System; +using System.IO; +using System.Web.Caching; +using Disco.Data.Repository; +using Quartz; +using Quartz.Impl.Triggers; + +namespace Disco.BI.DocumentTemplateBI.Importer +{ + [PersistJobDataAfterExecution] + public class DocumentImporterJob : IJob + { + + void IJob.Execute(IJobExecutionContext context) + { + string sessionId = context.JobDetail.JobDataMap["SessionId"] as string; + if (string.IsNullOrEmpty(sessionId)) + { + sessionId = Guid.NewGuid().ToString(); + context.JobDetail.JobDataMap["SessionId"] = sessionId; + } + + string filename = context.JobDetail.JobDataMap["Filename"] as string; + int retryCount = (int)context.JobDetail.JobDataMap["RetryCount"]; + Cache httpCache = context.JobDetail.JobDataMap["HttpCache"] as Cache; + + var friendlyFilename = filename; + if (!string.IsNullOrEmpty(friendlyFilename)) + friendlyFilename = System.IO.Path.GetFileName(friendlyFilename); + + DocumentImporterLog.LogImportStarting(sessionId, friendlyFilename); + + if (!File.Exists(filename)) + { + DocumentImporterLog.LogImportWarning(sessionId, string.Format("File not found: {0}", filename)); + DocumentImporterLog.LogImportFinished(sessionId); + context.Scheduler.DeleteJob(context.JobDetail.Key); + return; + } + + try + { + using (DiscoDataContext dbContext = new DiscoDataContext()) + { + if (retryCount < 18) + { + context.JobDetail.JobDataMap["RetryCount"] = (++retryCount); + bool processResult = Interop.Pdf.PdfImporter.ProcessPdfAttachment(filename, dbContext, sessionId, httpCache); + + if (processResult) + { + // Import Successful - Delete + if (File.Exists(filename)) + File.Delete(filename); + } + else + { + // Import Failed - Move to Errors Folder + if (File.Exists(filename)) + { + try + { + string folderError = DataStore.CreateLocation(dbContext, "DocumentDropBox_Errors"); + string filenameError = Path.Combine(folderError, Path.GetFileName(filename)); + int filenameErrorCount = 0; + while (File.Exists(filenameError)) + { + filenameError = Path.Combine(folderError, string.Format("{0} ({1}){2}", Path.GetFileNameWithoutExtension(filename), ++filenameErrorCount, Path.GetExtension(filename))); + } + File.Move(filename, filenameError); + } + catch + { + // Ignore Errors + } + } + } + } + else + { + // To Many Errors + DocumentImporterLog.LogImportError(sessionId, string.Format("To many errors occurred trying to import '{1}' (SessionId: {0})", sessionId, friendlyFilename)); + // Move to Errors Folder + if (File.Exists(filename)) + { + try + { + string folderError = DataStore.CreateLocation(dbContext, "DocumentDropBox_Errors"); + string filenameError = Path.Combine(folderError, Path.GetFileName(filename)); + int filenameErrorCount = 0; + while (File.Exists(filenameError)) + { + filenameError = Path.Combine(folderError, string.Format("{0} ({1}){2}", Path.GetFileNameWithoutExtension(filename), ++filenameErrorCount, Path.GetExtension(filename))); + } + File.Move(filename, filenameError); + } + catch + { + // Ignore Errors + } + } + } + } + DocumentImporterLog.LogImportFinished(sessionId); + + // All Done + context.Scheduler.DeleteJob(context.JobDetail.Key); + } + catch (Exception ex) + { + DocumentImporterLog.LogImportWarning(sessionId, string.Format("{0}; Will try again in 10 Seconds", ex.Message)); + // Reschedule Job for 10 seconds + SimpleTriggerImpl trig = new SimpleTriggerImpl(Guid.NewGuid().ToString(), new DateTimeOffset(DateTime.Now.AddSeconds(10))); + context.Scheduler.RescheduleJob(context.Trigger.Key, trig); + } + + } + + } +} diff --git a/Disco.BI/BI/DocumentTemplateBI/Importer/DocumentImporterLog.cs b/Disco.BI/BI/DocumentTemplateBI/Importer/DocumentImporterLog.cs new file mode 100644 index 00000000..cb8f4b1b --- /dev/null +++ b/Disco.BI/BI/DocumentTemplateBI/Importer/DocumentImporterLog.cs @@ -0,0 +1,304 @@ +using Disco.Services.Logging; +using Disco.Services.Logging.Models; +using System; +using System.Collections.Generic; +using System.Diagnostics; +namespace Disco.BI.DocumentTemplateBI.Importer +{ + public class DocumentImporterLog : LogBase + { + public enum EventTypeIds + { + ImportStarting = 10, + ImportProgress, + ImportFinished, + ImportWarning = 15, + ImportError, + ImportPageStarting = 100, + ImportPageImageUpdate = 104, + ImportPageProgress, + ImportPageDetected = 110, + ImportPageUndetected = 115, + ImportPageError = 120, + ImportPageUndetectedStored = 150 + } + + private const int _ModuleId = 40; + + public static DocumentImporterLog Current + { + get + { + return (DocumentImporterLog)LogContext.LogModules[_ModuleId]; + } + } + + public override string ModuleDescription + { + get + { + return "Document Importer"; + } + } + public override int ModuleId + { + get + { + return _ModuleId; + } + } + public override string ModuleName + { + get + { + return "DocumentImporter"; + } + } + private static void Log(DocumentImporterLog.EventTypeIds EventTypeId, params object[] Args) + { + DocumentImporterLog.Current.Log((int)EventTypeId, Args); + } + public static void LogImportStarting(string SessionId, string DocumentName) + { + DocumentImporterLog.Log(DocumentImporterLog.EventTypeIds.ImportStarting, new object[] + { + SessionId, + DocumentName + }); + } + public static void LogImportProgress(string SessionId, int? Progress, string Status) + { + DocumentImporterLog.Log(DocumentImporterLog.EventTypeIds.ImportProgress, new object[] + { + SessionId, + Progress, + Status + }); + } + public static void LogImportFinished(string SessionId) + { + DocumentImporterLog.Log(DocumentImporterLog.EventTypeIds.ImportFinished, new object[] + { + SessionId + }); + } + public static void LogImportWarning(string SessionId, string Message) + { + DocumentImporterLog.Log(DocumentImporterLog.EventTypeIds.ImportWarning, new object[] + { + SessionId, + Message + }); + } + public static void LogImportError(string SessionId, string Message) + { + DocumentImporterLog.Log(DocumentImporterLog.EventTypeIds.ImportError, new object[] + { + SessionId, + Message + }); + } + public static void LogImportPageStarting(string SessionId, int PageNumber) + { + DocumentImporterLog.Log(DocumentImporterLog.EventTypeIds.ImportPageStarting, new object[] + { + SessionId, + PageNumber + }); + } + public static void LogImportPageImageUpdate(string SessionId, int PageNumber) + { + DocumentImporterLog.Log(DocumentImporterLog.EventTypeIds.ImportPageImageUpdate, new object[] + { + SessionId, + PageNumber + }); + } + public static void LogImportPageProgress(string SessionId, int PageNumber, int? Progress, string Status) + { + DocumentImporterLog.Log(DocumentImporterLog.EventTypeIds.ImportPageProgress, new object[] + { + SessionId, + PageNumber, + Progress, + Status + }); + } + public static void LogImportPageDetected(string SessionId, int PageNumber, string DocumentTypeId, string DocumentTypeName, string TargetType, string AssignedId, string AssignedName) + { + DocumentImporterLog.Log(DocumentImporterLog.EventTypeIds.ImportPageDetected, new object[] + { + SessionId, + PageNumber, + DocumentTypeId, + DocumentTypeName, + TargetType, + AssignedId, + AssignedName + }); + } + public static void LogImportPageUndetected(string SessionId, int PageNumber) + { + DocumentImporterLog.Log(DocumentImporterLog.EventTypeIds.ImportPageUndetected, new object[] + { + SessionId, + PageNumber + }); + } + public static void LogImportPageError(string SessionId, int PageNumber, string Message) + { + DocumentImporterLog.Log(DocumentImporterLog.EventTypeIds.ImportPageError, new object[] + { + SessionId, + PageNumber, + Message + }); + } + public static void LogImportPageUndetectedStored(string SessionId, int PageNumber) + { + DocumentImporterLog.Log(DocumentImporterLog.EventTypeIds.ImportPageUndetectedStored, new object[] + { + SessionId, + PageNumber + }); + } + protected override System.Collections.Generic.List LoadEventTypes() + { + return new System.Collections.Generic.List + { + new LogEventType + { + Id = 10, + ModuleId = 40, + Name = "Import Starting", + Format = "Starting import of document: {1} (SessionId: {0})", + Severity = 0, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 11, + ModuleId = 40, + Name = "Import Progress", + Format = "Processing: {1}% Complete; Status: {2}", + Severity = 0, + UseLive = true, + UsePersist = false, + UseDisplay = false + }, + new LogEventType + { + Id = 12, + ModuleId = 40, + Name = "Import Finished", + Format = "Import of document complete (SessionId: {0})", + Severity = 0, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 15, + ModuleId = 40, + Name = "Import Warning", + Format = "Import Warning: {1} (SessionId: {0})", + Severity = 1, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 16, + ModuleId = 40, + Name = "Import Error", + Format = "Import Error: {1} (SessionId: {0})", + Severity = 2, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 100, + ModuleId = 40, + Name = "Import Page Starting", + Format = "Starting import of page: {1} (SessionId: {0})", + Severity = 0, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 104, + ModuleId = 40, + Name = "Import Page Image Update", + Format = null, + Severity = 0, + UseLive = true, + UsePersist = false, + UseDisplay = false + }, + new LogEventType + { + Id = 105, + ModuleId = 40, + Name = "Import Page Progress", + Format = "Processing: Page {1}; {2}% Complete; Status: {3}", + Severity = 0, + UseLive = true, + UsePersist = false, + UseDisplay = false + }, + new LogEventType + { + Id = 110, + ModuleId = 40, + Name = "Import Page Assigned", + Format = "Page {1} of type '{3}' assigned to {4}: '{6}'", + Severity = 0, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 115, + ModuleId = 40, + Name = "Import Page Undetected", + Format = "Page {1} not detected", + Severity = 1, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 120, + ModuleId = 40, + Name = "Import Page Error", + Format = "Page {1}, Import Error: {2}", + Severity = 2, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 150, + ModuleId = 40, + Name = "Import Page Undetected Stored", + Format = null, + Severity = 0, + UseLive = true, + UsePersist = false, + UseDisplay = false + } + }; + } + } +} diff --git a/Disco.BI/BI/DocumentTemplateBI/Utilities.cs b/Disco.BI/BI/DocumentTemplateBI/Utilities.cs new file mode 100644 index 00000000..0d54bc45 --- /dev/null +++ b/Disco.BI/BI/DocumentTemplateBI/Utilities.cs @@ -0,0 +1,49 @@ +using iTextSharp.text; +using iTextSharp.text.pdf; + +namespace Disco.BI.DocumentTemplateBI +{ + public static class Utilities + { + public static System.IO.Stream JoinPdfs(params System.IO.Stream[] Pdfs) + { + if (Pdfs.Length == 0) + throw new System.ArgumentNullException("Pdfs"); + + // Only One PDF - Possible Reference Bug v's Memory/Speed (Returning Param Memory Stream) + if (Pdfs.Length == 1) + return Pdfs[0]; + + // Join Pdfs + System.IO.MemoryStream msBuilder = new System.IO.MemoryStream(); + + Document pdfDoc = new Document(); + PdfCopy pdfCopy = new PdfCopy(pdfDoc, msBuilder); + pdfDoc.Open(); + pdfCopy.CloseStream = false; + + for (int i = 0; i < Pdfs.Length; i++) + { + System.IO.Stream pdf = Pdfs[i]; + PdfReader pdfReader = new PdfReader(pdf); + + for (int indexPage = 1; indexPage <= pdfReader.NumberOfPages; indexPage++) + { + iTextSharp.text.Rectangle pageSize = pdfReader.GetPageSizeWithRotation(indexPage); + PdfImportedPage page = pdfCopy.GetImportedPage(pdfReader, indexPage); + pdfDoc.SetPageSize(pageSize); + pdfDoc.NewPage(); + pdfCopy.AddPage(page); + } + + pdfReader.Close(); + } + + pdfDoc.Close(); + pdfCopy.Close(); + msBuilder.Position = 0; + + return msBuilder; + } + } +} diff --git a/Disco.BI/BI/Expressions/EvaluateExpressionParseException.cs b/Disco.BI/BI/Expressions/EvaluateExpressionParseException.cs new file mode 100644 index 00000000..88d90554 --- /dev/null +++ b/Disco.BI/BI/Expressions/EvaluateExpressionParseException.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Spring.Expressions.Parser.antlr; + +namespace Disco.BI.Expressions +{ + public class EvaluateExpressionParseException + { + public string Expression { get; set; } + public int PositionRow { get; set; } + public int PositionColumn { get; set; } + public string Message { get; set; } + + internal static EvaluateExpressionParseException FromRecognitionException(RecognitionException e, string Expression) + { + return new EvaluateExpressionParseException() + { + Expression = Expression, + Message = e.Message, + PositionRow = e.getLine(), + PositionColumn = e.getColumn() + }; + } + } +} diff --git a/Disco.BI/BI/Expressions/EvaluateExpressionPart.cs b/Disco.BI/BI/Expressions/EvaluateExpressionPart.cs new file mode 100644 index 00000000..f258c286 --- /dev/null +++ b/Disco.BI/BI/Expressions/EvaluateExpressionPart.cs @@ -0,0 +1,84 @@ +using System; +using System.Collections; +using System.Runtime.CompilerServices; +using Spring.Expressions.Parser.antlr; + +namespace Disco.BI.Expressions +{ + public class EvaluateExpressionPart : IExpressionPart + { + private Spring.Expressions.IExpression _Expression; + private RecognitionException _ExpressionParseException; + private EvaluateExpressionParseException _EvaluateParseException; + + public string RawSource { get; set; } + public string Source { get; set; } + public bool ErrorsAllowed { get; set; } + public bool IsDynamic { get { return true; } set { return; } } + + public EvaluateExpressionParseException ParseException + { + get + { + if (_ExpressionParseException == null) + return null; + else + if (_EvaluateParseException == null) + _EvaluateParseException = EvaluateExpressionParseException.FromRecognitionException(_ExpressionParseException, this.Source); + return _EvaluateParseException; + } + } + + public bool ParseError + { + get { return (_ExpressionParseException != null); } + } + public string ParseErrorMessage + { + get + { + if (ParseError) + return ParseException.Message; + else + return null; + } + } + + public EvaluateExpressionPart(string Source) + { + this.RawSource = Source; + + if (Source.StartsWith("{") && Source.EndsWith("}")) + Source = Source.Substring(1, Source.Length - 2); + + if (Source[0] == '~') + { + this.ErrorsAllowed = true; + this.Source = Source.Substring(1); + } + else + { + this.ErrorsAllowed = false; + this.Source = Source; + } + try + { + this._Expression = Spring.Expressions.Expression.Parse(this.Source); + + } + catch (RecognitionException ex) + { + this._ExpressionParseException = ex; + } + } + object IExpressionPart.Evaluate(object ExpressionContext, System.Collections.IDictionary Variables) + { + if (this._ExpressionParseException == null) + { + return this._Expression.GetValue(ExpressionContext, Variables); + } + throw this._ExpressionParseException; + } + + } +} diff --git a/Disco.BI/BI/Expressions/Expression.cs b/Disco.BI/BI/Expressions/Expression.cs new file mode 100644 index 00000000..67960977 --- /dev/null +++ b/Disco.BI/BI/Expressions/Expression.cs @@ -0,0 +1,259 @@ +using Disco.Data.Repository; +using Disco.Models.BI.DocumentTemplates; +using Disco.Models.Repository; +using System; +using System.Collections; +using System.Collections.Generic; +using System.Runtime.CompilerServices; +using System.Text; +using Disco.Models.BI.Expressions; + +namespace Disco.BI.Expressions +{ + public sealed class Expression : System.Collections.Generic.List + { + public string Name { get; private set; } + public string Source { get; private set; } + public bool IsDynamic { get; private set; } + public int Ordinal { get; private set; } + + private Expression(string Name, string Source, int Ordinal) + { + this.Name = Name; + this.Source = Source; + this.Ordinal = Ordinal; + } + + public static void InitializeExpressions() + { + Spring.Core.TypeResolution.TypeRegistry.RegisterType("DataExt", typeof(Extensions.DataExt)); + Spring.Core.TypeResolution.TypeRegistry.RegisterType("UserExt", typeof(Extensions.UserExt)); + Spring.Core.TypeResolution.TypeRegistry.RegisterType("DeviceExt", typeof(Extensions.DeviceExt)); + Spring.Core.TypeResolution.TypeRegistry.RegisterType("ImageExt", typeof(Extensions.ImageExt)); + } + + public T EvaluateFirst(object ExpressionContext, System.Collections.IDictionary Variables) + { + T result = default(T); + if (this.Count > 0) + { + try + { + object expressionResult = this[0].Evaluate(ExpressionContext, Variables); + if (expressionResult != null) + { + if (expressionResult is T) + { + result = (T)expressionResult; + } + else + { + throw new InvalidOperationException("Expression returned an invalid type"); + } + } + } + catch (System.Exception ex) + { + throw new InvalidOperationException("Expression evaluation resulted in an error", ex); + } + } + + return result; + } + + public Tuple Evaluate(object ExpressionContext, System.Collections.IDictionary Variables) + { + System.Text.StringBuilder resultValue = new System.Text.StringBuilder(); + object resultObject = null; + bool resultError = false; + foreach (var expressionPart in this) + { + try + { + object partValue = expressionPart.Evaluate(ExpressionContext, Variables); + if (partValue != null) + { + // Check for Result Objects + if (partValue is IImageExpressionResult) + resultObject = partValue; + else + resultValue.Append(partValue.ToString()); + } + } + catch (System.Exception ex) + { + if (!expressionPart.ErrorsAllowed) + { + resultValue.Append("## ERROR # "); + resultValue.Append(ex.Message); + resultValue.Append(" ##"); + resultError = true; + } + } + } + return new Tuple(resultValue.ToString(), resultError, resultObject); + } + public static Expression TokenizeSingleDynamic(string Name, string ExpressionSource, int Ordinal) + { + Expression e = new Expression(Name, ExpressionSource, Ordinal); + if (ExpressionSource != null && !string.IsNullOrWhiteSpace(ExpressionSource)) + e.Add(new EvaluateExpressionPart(ExpressionSource)); + e.IsDynamic = true; + return e; + } + public static Expression Tokenize(string Name, string ExpressionSource, int Ordinal) + { + Expression e = new Expression(Name, ExpressionSource, Ordinal); + if (!ExpressionSource.Contains("{") || !ExpressionSource.Contains("}")) + { + e.Add(new TextExpressionPart(ExpressionSource)); + } + else + { + System.Text.StringBuilder token = new System.Text.StringBuilder(); + bool tokenEval = false; + int tokenEvalDepth = 0; + foreach (char c in ExpressionSource) + { + switch (c) + { + case '{': + { + if (!tokenEval) + { + if (token.Length > 0) + { + e.Add(new TextExpressionPart(token.ToString())); + token = new System.Text.StringBuilder(); + } + tokenEval = true; + tokenEvalDepth = 0; + } + tokenEvalDepth++; + token.Append(c); + break; + } + case '}': + { + token.Append(c); + if (tokenEval) + { + tokenEvalDepth--; + if (tokenEvalDepth <= 0) + { + if (token.Length != 2 && (token.Length != 3 || token[1] != '@')) + { + e.Add(new EvaluateExpressionPart(token.ToString())); + e.IsDynamic = true; + token = new System.Text.StringBuilder(); + } + tokenEval = false; + } + } + break; + } + default: + { + token.Append(c); + break; + } + } + } + if (token.Length > 0) + { + e.Add(new TextExpressionPart(token.ToString())); + } + } + return e; + } + + public static IDictionary StandardVariables(DocumentTemplate AttachmentType, DiscoDataContext DataContext, User User, System.DateTime TimeStamp, DocumentState DocumentState) + { + return new Hashtable + { + + { + "DataContext", + DataContext + }, + + { + "User", + User + }, + + { + "TimeStamp", + TimeStamp + }, + + { + "AttachmentType", + AttachmentType + }, + + { + "State", + DocumentState + } + }; + } + public static Dictionary StandardVariableTypes() + { + return new Dictionary + { + + { + "#DataContext", + typeof(DiscoDataContext).AssemblyQualifiedName + }, + + { + "#User", + typeof(User).AssemblyQualifiedName + }, + + { + "#TimeStamp", + typeof(System.DateTime).AssemblyQualifiedName + }, + + { + "#AttachmentType", + typeof(DocumentTemplate).AssemblyQualifiedName + }, + + { + "#State", + typeof(DocumentState).AssemblyQualifiedName + } + }; + } + public static Dictionary ExtensionLibraryTypes() + { + return new Dictionary + { + { + "DataExt", + typeof(Extensions.DataExt).AssemblyQualifiedName + }, + + { + "DeviceExt", + typeof(Extensions.DeviceExt).AssemblyQualifiedName + }, + + { + "ImageExt", + typeof(Extensions.ImageExt).AssemblyQualifiedName + }, + + { + "UserExt", + typeof(Extensions.UserExt).AssemblyQualifiedName + } + }; + } + + } +} diff --git a/Disco.BI/BI/Expressions/ExpressionCache.cs b/Disco.BI/BI/Expressions/ExpressionCache.cs new file mode 100644 index 00000000..8f433689 --- /dev/null +++ b/Disco.BI/BI/Expressions/ExpressionCache.cs @@ -0,0 +1,103 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Collections.Concurrent; + +namespace Disco.BI.Expressions +{ + public static class ExpressionCache + { + private static ConcurrentDictionary> _Cache = new ConcurrentDictionary>(); + + public delegate Expression CreateValueDelegate(); + + public static ConcurrentDictionary GetModule(string Module, bool Create = false) + { + ConcurrentDictionary moduleCache; + if (_Cache.TryGetValue(Module, out moduleCache)) + return moduleCache; + else + { + if (Create) + { + moduleCache = new ConcurrentDictionary(); + _Cache.TryAdd(Module, moduleCache); + return moduleCache; + } + else + return null; + } + } + private static Expression GetModuleValue(string Module, string Key, CreateValueDelegate CreateValue) + { + ConcurrentDictionary moduleCache = GetModule(Module, (CreateValue != null)); + if (moduleCache != null) + { + Expression expression; + if (moduleCache.TryGetValue(Key, out expression)) + { + return expression; + } + if (CreateValue != null) + { + expression = CreateValue(); + Expression oldExpression; + if (moduleCache.TryGetValue(Key, out oldExpression)) + moduleCache.TryUpdate(Key, expression, oldExpression); + else + moduleCache.TryAdd(Key, expression); + return expression; + } + } + return null; + } + + public static Expression GetValue(string Module, string Key, CreateValueDelegate CreateValue) + { + return GetModuleValue(Module, Key, CreateValue); + } + + public static Expression GetValue(string Module, string Key) + { + return GetModuleValue(Module, Key, null); + } + + public static bool InvalidModule(string Module) + { + ConcurrentDictionary moduleCache; + return _Cache.TryRemove(Module, out moduleCache); + } + + public static bool InvalidateKey(string Module, string Key) + { + Expression expression; + ConcurrentDictionary moduleCache = GetModule(Module, false); + if (moduleCache != null) + { + bool removeResult = moduleCache.TryRemove(Key, out expression); + if (moduleCache.Count == 0) + InvalidModule(Module); + return removeResult; + } + else + return false; + } + + public static bool SetValue(string Module, string Key, Expression Expression) + { + ConcurrentDictionary moduleCache = GetModule(Module, true); + + if (moduleCache.ContainsKey(Key)) + { + Expression oldExpression; + if (moduleCache.TryGetValue(Key, out oldExpression)) + { + return moduleCache.TryUpdate(Key, Expression, oldExpression); + } + } + return moduleCache.TryAdd(Key, Expression); + } + + } +} diff --git a/Disco.BI/BI/Expressions/ExpressionCachePreloadTask.cs b/Disco.BI/BI/Expressions/ExpressionCachePreloadTask.cs new file mode 100644 index 00000000..c9291837 --- /dev/null +++ b/Disco.BI/BI/Expressions/ExpressionCachePreloadTask.cs @@ -0,0 +1,43 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Services.Tasks; +using Disco.Data.Repository; +using Quartz; +using Disco.BI.Extensions; +using System.Diagnostics; + +namespace Disco.BI.Expressions +{ + public class ExpressionCachePreloadTask : ScheduledTask + { + + public override string TaskName { get { return "Expression Cache - Preload Task"; } } + public override bool SingleInstanceTask { get { return true; } } + public override bool CancelInitiallySupported { get { return false; } } + + public override void InitalizeScheduledTask(DiscoDataContext dbContext) + { + // Run in Background 1 Second after Scheduled (on App Startup) + TriggerBuilder triggerBuilder = TriggerBuilder.Create().StartAt(new DateTimeOffset(DateTime.Now).AddSeconds(5)); + + this.ScheduleTask(triggerBuilder); + } + + protected override void ExecuteTask() + { + // Cache Document Template Filter Expressions + using (DiscoDataContext dbContext = new DiscoDataContext()) + { + foreach (var documentTemplate in dbContext.DocumentTemplates.Where(dt => dt.FilterExpression != null && dt.FilterExpression != string.Empty)) + { + if (!string.IsNullOrWhiteSpace(documentTemplate.FilterExpression)) + documentTemplate.FilterExpressionFromCache(); + } + } + + + } + } +} diff --git a/Disco.BI/BI/Expressions/ExpressionTypeDescriptor.cs b/Disco.BI/BI/Expressions/ExpressionTypeDescriptor.cs new file mode 100644 index 00000000..bec6dc14 --- /dev/null +++ b/Disco.BI/BI/Expressions/ExpressionTypeDescriptor.cs @@ -0,0 +1,58 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Reflection; +using System.Runtime.CompilerServices; + +namespace Disco.BI.Expressions +{ + public class ExpressionTypeDescriptor + { + public string ExpressionType { get; set; } + public string Name { get; set; } + public List Members { get; set; } + + public static ExpressionTypeDescriptor Build(System.Type t, bool StaticDeclaredMembersOnly = true) + { + ExpressionTypeDescriptor i = new ExpressionTypeDescriptor + { + ExpressionType = t.AssemblyQualifiedName, + Name = t.Name + }; + i.Members = new System.Collections.Generic.List(); + + System.Reflection.MemberInfo[] members; + if (StaticDeclaredMembersOnly) + members = t.GetMembers(BindingFlags.Public | BindingFlags.Static | BindingFlags.DeclaredOnly); + else + members = t.GetMembers(BindingFlags.Public | BindingFlags.Instance); + + for (int j = 0; j < members.Length; j++) + { + System.Reflection.MemberInfo member = members[j]; + if (member is System.Reflection.PropertyInfo) + { + System.Reflection.PropertyInfo pi = (System.Reflection.PropertyInfo)member; + if (!pi.IsSpecialName && pi.CanRead) + { + i.Members.Add(ExpressionTypeMemberDescriptor.Build(pi)); + } + } + if (member is System.Reflection.MethodInfo) + { + System.Reflection.MethodInfo mi2 = (System.Reflection.MethodInfo)member; + if (!mi2.IsSpecialName) + { + i.Members.Add(ExpressionTypeMemberDescriptor.Build(mi2)); + } + } + } + i.Members = ( + from mi in i.Members + orderby mi.Name + select mi).ToList(); + return i; + } + } +} diff --git a/Disco.BI/BI/Expressions/ExpressionTypeMemberDescriptor.cs b/Disco.BI/BI/Expressions/ExpressionTypeMemberDescriptor.cs new file mode 100644 index 00000000..433c7312 --- /dev/null +++ b/Disco.BI/BI/Expressions/ExpressionTypeMemberDescriptor.cs @@ -0,0 +1,61 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Reflection; +using System.Runtime.CompilerServices; + +namespace Disco.BI.Expressions +{ + public class ExpressionTypeMemberDescriptor + { + public const string FunctionKind = "function"; + public const string PropertyKind = "property"; + public const string ParameterKind = "parameter"; + + public string Kind {get;set;} + public string Name {get;set;} + public string ReturnType {get;set;} + public string ReturnExpressionType{get;set;} + public List Parameters{get;set;} + + public static ExpressionTypeMemberDescriptor Build(System.Reflection.MethodInfo m) + { + ExpressionTypeMemberDescriptor md = new ExpressionTypeMemberDescriptor + { + Kind = "function", + Name = m.Name, + ReturnType = m.ReturnType.Name, + ReturnExpressionType = m.ReturnType.AssemblyQualifiedName + }; + md.Parameters = ( + from mdp in m.GetParameters() + select ExpressionTypeMemberDescriptor.Build(mdp)).ToList(); + return md; + } + public static ExpressionTypeMemberDescriptor Build(System.Reflection.PropertyInfo p) + { + ExpressionTypeMemberDescriptor md = new ExpressionTypeMemberDescriptor + { + Kind = "property", + Name = p.Name, + ReturnType = p.PropertyType.Name, + ReturnExpressionType = p.PropertyType.AssemblyQualifiedName + }; + md.Parameters = ( + from mdp in p.GetIndexParameters() + select ExpressionTypeMemberDescriptor.Build(mdp)).ToList(); + return md; + } + public static ExpressionTypeMemberDescriptor Build(System.Reflection.ParameterInfo pi) + { + return new ExpressionTypeMemberDescriptor + { + Kind = "parameter", + Name = pi.Name, + ReturnType = pi.ParameterType.Name, + ReturnExpressionType = pi.ParameterType.AssemblyQualifiedName + }; + } + } +} diff --git a/Disco.BI/BI/Expressions/Extensions/DataExt.cs b/Disco.BI/BI/Expressions/Extensions/DataExt.cs new file mode 100644 index 00000000..d7efbd1d --- /dev/null +++ b/Disco.BI/BI/Expressions/Extensions/DataExt.cs @@ -0,0 +1,176 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Data; +using System.Data.SqlClient; +using System.Collections; +using System.Data.Odbc; + +namespace Disco.BI.Expressions.Extensions +{ + public static class DataExt + { + #region SqlClient + + private static SqlConnection BuildSqlConnection(string Server, string Database, string Username, string Password) + { + SqlConnectionStringBuilder dbConnectionStringBuilder = new SqlConnectionStringBuilder(); + dbConnectionStringBuilder.ApplicationName = "Disco"; + dbConnectionStringBuilder.DataSource = Server; + dbConnectionStringBuilder.InitialCatalog = Database; + dbConnectionStringBuilder.MultipleActiveResultSets = true; + dbConnectionStringBuilder.PersistSecurityInfo = true; + if (Username == null || Password == null) + dbConnectionStringBuilder.IntegratedSecurity = true; + else + { + dbConnectionStringBuilder.UserID = Username; + dbConnectionStringBuilder.Password = Password; + } + + return new SqlConnection(dbConnectionStringBuilder.ConnectionString); + } + private static void BuildSqlParameters(SqlCommand dbCommand, Hashtable SqlParameters) + { + if (SqlParameters != null) + { + foreach (var sqlParameterKey in SqlParameters.Keys) + { + string key = sqlParameterKey.ToString(); + if (!key.StartsWith("@")) + key = string.Concat("@", key); + dbCommand.Parameters.AddWithValue(key, SqlParameters[sqlParameterKey]); + } + } + } + + public static DataTable QuerySqlDatabase(string Server, string Database, string Username, string Password, string SqlQuery, Hashtable SqlParameters) + { + using (SqlConnection dbConnection = BuildSqlConnection(Server, Database, Username, Password)) + { + using (SqlCommand dbCommand = new SqlCommand(SqlQuery, dbConnection)) + { + BuildSqlParameters(dbCommand, SqlParameters); + using (SqlDataAdapter dbAdapter = new SqlDataAdapter(dbCommand)) + { + var dbTable = new DataTable(); + dbAdapter.Fill(dbTable); + return dbTable; + } + } + } + } + public static DataTable QuerySqlDatabase(string Server, string Database, string SqlQuery, Hashtable SqlParameters) + { + return QuerySqlDatabase(Server, Database, null, null, SqlQuery, SqlParameters); + } + public static DataTable QuerySqlDatabase(string Server, string Database, string SqlQuery) + { + return QuerySqlDatabase(Server, Database, null, null, SqlQuery, null); + } + + public static object QuerySqlDatabaseScalar(string Server, string Database, string Username, string Password, string SqlQuery, Hashtable SqlParameters) + { + using (SqlConnection dbConnection = BuildSqlConnection(Server, Database, Username, Password)) + { + using (SqlCommand dbCommand = new SqlCommand(SqlQuery, dbConnection)) + { + BuildSqlParameters(dbCommand, SqlParameters); + try + { + dbConnection.Open(); + return dbCommand.ExecuteScalar(); + } + catch (Exception) + { + throw; + } + finally + { + dbConnection.Close(); + } + } + } + } + public static object QuerySqlDatabaseScalar(string Server, string Database, string SqlQuery, Hashtable SqlParameters) + { + return QuerySqlDatabaseScalar(Server, Database, null, null, SqlQuery, SqlParameters); + } + public static object QuerySqlDatabaseScalar(string Server, string Database, string SqlQuery) + { + return QuerySqlDatabaseScalar(Server, Database, null, null, SqlQuery, null); + } + + #endregion + + #region ODBC + + private static OdbcConnection BuildOdbcConnection(string ConnectionString) + { + return new OdbcConnection(ConnectionString); + } + private static void BuildOdbcParameters(OdbcCommand dbCommand, Hashtable OdbcParameters) + { + if (OdbcParameters != null) + { + foreach (var odbcParameterKey in OdbcParameters.Keys) + { + string key = odbcParameterKey.ToString(); + dbCommand.Parameters.AddWithValue(key, OdbcParameters[odbcParameterKey]); + } + } + } + + public static DataTable QueryOdbcDatabase(string ConnectionString, string OdbcQuery, Hashtable OdbcParameters) + { + using (OdbcConnection dbConnection = BuildOdbcConnection(ConnectionString)) + { + using (OdbcCommand dbCommand = new OdbcCommand(OdbcQuery, dbConnection)) + { + BuildOdbcParameters(dbCommand, OdbcParameters); + using (OdbcDataAdapter dbAdapter = new OdbcDataAdapter(dbCommand)) + { + var dbTable = new DataTable(); + dbAdapter.Fill(dbTable); + return dbTable; + } + } + } + } + public static DataTable QueryOdbcDatabase(string ConnectionString, string OdbcQuery) + { + return QueryOdbcDatabase(ConnectionString, OdbcQuery, null); + } + + public static object QueryOdbcDatabaseScalar(string ConnectionString, string OdbcQuery, Hashtable OdbcParameters) + { + using (OdbcConnection dbConnection = BuildOdbcConnection(ConnectionString)) + { + using (OdbcCommand dbCommand = new OdbcCommand(OdbcQuery, dbConnection)) + { + BuildOdbcParameters(dbCommand, OdbcParameters); + try + { + dbConnection.Open(); + return dbCommand.ExecuteScalar(); + } + catch (Exception) + { + throw; + } + finally + { + dbConnection.Close(); + } + } + } + } + public static object QueryOdbcDatabaseScalar(string ConnectionString, string OdbcQuery) + { + return QueryOdbcDatabaseScalar(ConnectionString, OdbcQuery, null); + } + + #endregion + } +} diff --git a/Disco.BI/BI/Expressions/Extensions/DeviceExt.cs b/Disco.BI/BI/Expressions/Extensions/DeviceExt.cs new file mode 100644 index 00000000..9d603aa8 --- /dev/null +++ b/Disco.BI/BI/Expressions/Extensions/DeviceExt.cs @@ -0,0 +1,51 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Models.Repository; +using Disco.BI.Extensions; +using Disco.BI.Interop.ActiveDirectory; + +namespace Disco.BI.Expressions.Extensions +{ + public static class DeviceExt + { + public static object GetActiveDirectoryObjectValue(Device Device, string PropertyName, int Index = 0) + { + var adMachineAccount = Device.ActiveDirectoryAccount(PropertyName); + if (adMachineAccount != null) + return adMachineAccount.GetPropertyValue(PropertyName, Index); + else + return null; + } + + public static string GetActiveDirectoryStringValue(Device Device, string PropertyName, int Index = 0) + { + var objectValue = GetActiveDirectoryObjectValue(Device, PropertyName, Index); + string stringValue = objectValue as string; + if (stringValue == null && objectValue != null) + stringValue = objectValue.ToString(); + return stringValue; + } + + public static int GetActiveDirectoryIntegerValue(Device Device, string PropertyName, int Index = 0) + { + var objectValue = GetActiveDirectoryObjectValue(Device, PropertyName, Index); + if (objectValue == null) + return default(int); + else + { + int intValue; + try + { + intValue = (int)Convert.ChangeType(objectValue, typeof(int)); + } + catch (Exception) + { + throw; + } + return intValue; + } + } + } +} diff --git a/Disco.BI/BI/Expressions/Extensions/ImageExt.cs b/Disco.BI/BI/Expressions/Extensions/ImageExt.cs new file mode 100644 index 00000000..85914ad0 --- /dev/null +++ b/Disco.BI/BI/Expressions/Extensions/ImageExt.cs @@ -0,0 +1,140 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Models.BI.Expressions; +using Disco.BI.Expressions.Extensions.ImageResultImplementations; +using Disco.Models.Repository; +using Disco.BI.Extensions; +using Disco.Data.Repository; +using System.Collections; +using System.IO; +using System.Drawing; + +namespace Disco.BI.Expressions.Extensions +{ + public static class ImageExt + { + public static FileImageExpressionResult ImageFromFile(string AbsoluteFilePath) + { + return new FileImageExpressionResult(AbsoluteFilePath); + } + public static FileImageExpressionResult ImageFromDataStoreFile(string RelativeFilePath) + { + var configCache = new Disco.Data.Configuration.ConfigurationContext(null); + string DataStoreLocation = configCache.DataStoreLocation; + string AbsoluteFilePath = System.IO.Path.Combine(DataStoreLocation, RelativeFilePath); + return new FileImageExpressionResult(AbsoluteFilePath); + } + public static FileImageExpressionResult JobAttachmentFirstImage(Job Job, DiscoDataContext dbContext) + { + var attachment = Job.JobAttachments.FirstOrDefault(ja => ja.MimeType.StartsWith("image/", StringComparison.InvariantCultureIgnoreCase)); + if (attachment != null) + { + var filename = attachment.RepositoryFilename(dbContext); + return new FileImageExpressionResult(filename); + } + else + return null; + } + public static FileImageExpressionResult JobAttachmentLastImage(Job Job, DiscoDataContext dbContext) + { + var attachment = Job.JobAttachments.LastOrDefault(ja => ja.MimeType.StartsWith("image/", StringComparison.InvariantCultureIgnoreCase)); + if (attachment != null) + { + var filename = attachment.RepositoryFilename(dbContext); + return new FileImageExpressionResult(filename); + } + else + return null; + } + public static FileImageExpressionResult JobAttachmentImage(JobAttachment JobAttachment, DiscoDataContext dbContext) + { + if (JobAttachment == null) + throw new ArgumentNullException("JobAttachment"); + if (!JobAttachment.MimeType.StartsWith("image/", StringComparison.InvariantCultureIgnoreCase)) + throw new ArgumentException("Invalid Image MimeType for Attachment"); + + var filename = JobAttachment.RepositoryFilename(dbContext); + return new FileImageExpressionResult(filename); + } + public static FileMontageImageExpressionResult JobAttachmentImageMontage(Job Job, DiscoDataContext dbContext) + { + if (Job == null) + throw new ArgumentNullException("Job"); + if (Job.JobAttachments == null) + throw new ArgumentException("Job.JobAttachments is null", "Job"); + + var attachments = Job.JobAttachments.Where(a => a.MimeType.StartsWith("image/", StringComparison.InvariantCultureIgnoreCase)).ToList(); + + if (attachments.Count > 0) + { + var attachmentFilepaths = attachments.Select(a => a.RepositoryFilename(dbContext)).ToList(); + + return new FileMontageImageExpressionResult(attachmentFilepaths); + } + else + return null; + } + public static FileMontageImageExpressionResult JobAttachmentsImageMontage(ArrayList JobAttachments, DiscoDataContext dbContext) + { + if (JobAttachments == null) + throw new ArgumentNullException("JobAttachments"); + + var attachments = JobAttachments.Cast().Where(a => a.MimeType.StartsWith("image/", StringComparison.InvariantCultureIgnoreCase)).ToList(); + + if (attachments.Count > 0) + { + var attachmentFilepaths = attachments.Select(a => a.RepositoryFilename(dbContext)).ToList(); + + return new FileMontageImageExpressionResult(attachmentFilepaths); + } + else + return null; + } + + public static BitmapImageExpressionResult ImageFromStream(Stream ImageStream) + { + if (ImageStream == null) + throw new ArgumentNullException("ImageStream"); + + return new BitmapImageExpressionResult(Bitmap.FromStream(ImageStream)); + } + public static BitmapImageExpressionResult ImageFromByteArray(byte[] ImageByteArray) + { + if (ImageByteArray == null) + throw new ArgumentNullException("ImageByteArray"); + + return new BitmapImageExpressionResult(Bitmap.FromStream(new MemoryStream(ImageByteArray))); + } + public static BitmapImageExpressionResult DeviceModelImage(DeviceModel DeviceModel) + { + if (DeviceModel == null) + throw new ArgumentNullException("DeviceModel"); + + using (Stream deviceModelImage = DeviceModel.Image()) + { + if (deviceModelImage == null) + return null; + else + return ImageFromStream(deviceModelImage); + } + //if (DeviceModel.Image == null || DeviceModel.Image.Length == 0) + // return null; + + //return ImageFromByteArray(DeviceModel.Image); + } + public static BitmapImageExpressionResult OrganisationLogo() + { + var configCache = new Disco.Data.Configuration.ConfigurationContext(null); + BitmapImageExpressionResult result; + using (var orgLogo = configCache.OrganisationLogo) + { + result = ImageFromStream(orgLogo); + } + result.LosslessFormat = true; + return result; + } + + } +} diff --git a/Disco.BI/BI/Expressions/Extensions/ImageResultImplementations/BaseImageExpressionResult.cs b/Disco.BI/BI/Expressions/Extensions/ImageResultImplementations/BaseImageExpressionResult.cs new file mode 100644 index 00000000..bd703af5 --- /dev/null +++ b/Disco.BI/BI/Expressions/Extensions/ImageResultImplementations/BaseImageExpressionResult.cs @@ -0,0 +1,70 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Models.BI.Expressions; +using System.IO; +using System.Drawing; +using Disco.BI.Extensions; + +namespace Disco.BI.Expressions.Extensions.ImageResultImplementations +{ + public abstract class BaseImageExpressionResult : IImageExpressionResult + { + public byte Quality { get; set; } + public bool LosslessFormat { get; set; } + public bool ShowField { get; set; } + public string BackgroundColour { get; set; } + public bool BackgroundPreferTransparent { get; set; } + + public BaseImageExpressionResult() + { + this.LosslessFormat = false; + this.Quality = 90; + this.ShowField = false; + this.BackgroundPreferTransparent = true; + } + + public abstract Stream GetImage(int Width, int Height); + + protected Stream RenderImage(Image SourceImage, int Width, int Height) + { + if (SourceImage == null) + throw new ArgumentNullException("SourceImage"); + if (Width <= 0) + throw new ArgumentOutOfRangeException("Width", "Width must be > 0"); + if (Height <= 0) + throw new ArgumentOutOfRangeException("Height", "Height must be > 0"); + + Brush backgroundBrush = null; + if (!LosslessFormat || !BackgroundPreferTransparent) + { + if (string.IsNullOrEmpty(this.BackgroundColour)) + backgroundBrush = Brushes.White; + else + backgroundBrush = new SolidBrush(ColorTranslator.FromHtml(this.BackgroundColour)); + } + + using (Image resizedImage = SourceImage.ResizeImage(Width, Height, backgroundBrush)) + { + return OutputImage(resizedImage); + } + } + + protected Stream OutputImage(Image SourceImage) + { + MemoryStream imageStream = new MemoryStream(); + if (LosslessFormat) + { // Lossless Format - PNG + SourceImage.SavePng(imageStream); + } + else + { // Lossy Format - JPG + byte quality = Math.Min((byte)100, Math.Max((byte)1, this.Quality)); + SourceImage.SaveJpg(quality, imageStream); + } + imageStream.Position = 0; + return imageStream; + } + } +} diff --git a/Disco.BI/BI/Expressions/Extensions/ImageResultImplementations/BitmapImageExpressionResult.cs b/Disco.BI/BI/Expressions/Extensions/ImageResultImplementations/BitmapImageExpressionResult.cs new file mode 100644 index 00000000..938e3c41 --- /dev/null +++ b/Disco.BI/BI/Expressions/Extensions/ImageResultImplementations/BitmapImageExpressionResult.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.IO; +using System.Drawing; + +namespace Disco.BI.Expressions.Extensions.ImageResultImplementations +{ + public class BitmapImageExpressionResult : BaseImageExpressionResult + { + public Image Image { get; set; } + + public BitmapImageExpressionResult(Image Image) + { + if (Image == null) + throw new ArgumentNullException("Image"); + + this.Image = Image; + } + + public override Stream GetImage(int Width, int Height) + { + return this.RenderImage(this.Image, Width, Height); + } + } +} diff --git a/Disco.BI/BI/Expressions/Extensions/ImageResultImplementations/FileImageExpressionResult.cs b/Disco.BI/BI/Expressions/Extensions/ImageResultImplementations/FileImageExpressionResult.cs new file mode 100644 index 00000000..9d9be068 --- /dev/null +++ b/Disco.BI/BI/Expressions/Extensions/ImageResultImplementations/FileImageExpressionResult.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.IO; +using System.Drawing; + +namespace Disco.BI.Expressions.Extensions.ImageResultImplementations +{ + public class FileImageExpressionResult : BaseImageExpressionResult + { + public string AbsoluteFilePath { get; set; } + + public FileImageExpressionResult(string AbsoluteFilePath) + { + if (string.IsNullOrWhiteSpace(AbsoluteFilePath)) + throw new ArgumentNullException("AbsoluteFilePath"); + if (!File.Exists(AbsoluteFilePath)) + throw new FileNotFoundException("Image not found", AbsoluteFilePath); + + this.AbsoluteFilePath = AbsoluteFilePath; + } + + public override Stream GetImage(int Width, int Height) + { + using (Image SourceImage = Bitmap.FromFile(this.AbsoluteFilePath)) + { + return this.RenderImage(SourceImage, Width, Height); + } + } + } +} diff --git a/Disco.BI/BI/Expressions/Extensions/ImageResultImplementations/FileMontageImageExpressionResult.cs b/Disco.BI/BI/Expressions/Extensions/ImageResultImplementations/FileMontageImageExpressionResult.cs new file mode 100644 index 00000000..7500b6d3 --- /dev/null +++ b/Disco.BI/BI/Expressions/Extensions/ImageResultImplementations/FileMontageImageExpressionResult.cs @@ -0,0 +1,181 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.IO; +using System.Drawing; +using System.Drawing.Drawing2D; +using Disco.BI.Extensions; + +namespace Disco.BI.Expressions.Extensions.ImageResultImplementations +{ + public class FileMontageImageExpressionResult : BaseImageExpressionResult + { + public List AbsoluteFilePaths { get; set; } + public bool MontageHorizontalLayout { get; set; } + public bool MontageVerticalLayout { get; set; } + public bool MontageTableLayout { get; set; } + public int Padding { get; set; } + + public FileMontageImageExpressionResult(List AbsoluteFilePaths) + { + if (AbsoluteFilePaths == null) + throw new ArgumentNullException("AbsoluteFilePaths"); + if (AbsoluteFilePaths.Count == 0) + throw new ArgumentException("AbsoluteFilePaths is empty", "AbsoluteFilePaths"); + + this.AbsoluteFilePaths = AbsoluteFilePaths; + this.MontageTableLayout = true; + this.Padding = 4; + } + + public override Stream GetImage(int Width, int Height) + { + List Images = new List(); + try + { + // Load Images + foreach (string imageFilePath in this.AbsoluteFilePaths) + Images.Add(Bitmap.FromFile(imageFilePath)); + + // Build Montage + using (Bitmap montageImage = new Bitmap(Width, Height)) + { + using (Graphics montageGraphics = Graphics.FromImage(montageImage)) + { + montageGraphics.CompositingQuality = CompositingQuality.HighQuality; + montageGraphics.InterpolationMode = InterpolationMode.HighQualityBicubic; + montageGraphics.SmoothingMode = SmoothingMode.HighQuality; + + // Draw Background + if (!LosslessFormat || !BackgroundPreferTransparent) + { + Brush backgroundBrush = Brushes.White; + if (!string.IsNullOrEmpty(this.BackgroundColour)) + backgroundBrush = new SolidBrush(ColorTranslator.FromHtml(this.BackgroundColour)); + montageGraphics.FillRectangle(backgroundBrush, montageGraphics.VisibleClipBounds); + } + + if (this.MontageHorizontalLayout) + DoHorizontalLayout(Images, montageGraphics); + else + if (this.MontageVerticalLayout) + DoVirticalLayout(Images, montageGraphics); + else + DoTableLayout(Images, montageGraphics); + } + + return this.OutputImage(montageImage); + } + } + catch (Exception) { throw; } + finally + { + // Dispose of any Images + if (Images != null) + foreach (Image i in Images) + i.Dispose(); + } + } + + private void DoHorizontalLayout(List Images, Graphics MontageGraphics) + { + + float imageScale; + float imagePosition = 0; + int imagesWidthTotal = Images.Sum(i => i.Width); + int imagesHeightMax = Images.Max(i => i.Height); + int imagesPadding = ((Images.Count - 1) * this.Padding); + + imageScale = (float)(MontageGraphics.VisibleClipBounds.Width - imagesPadding) / (float)imagesWidthTotal; + if ((MontageGraphics.VisibleClipBounds.Height / (float)imagesHeightMax) < imageScale) + imageScale = (float)MontageGraphics.VisibleClipBounds.Height / (float)imagesHeightMax; + foreach (Image image in Images) + { + MontageGraphics.DrawImageResized(image, imageScale, imagePosition, 0); + imagePosition += (imageScale * image.Width) + this.Padding; + } + } + private void DoVirticalLayout(List Images, Graphics MontageGraphics) + { + float imageScale; + float imagePosition = 0; + int imagesWidthMax = Images.Max(i => i.Width); + int imagesHeightTotal = Images.Sum(i => i.Height); + int imagesPadding = ((Images.Count - 1) * this.Padding); + + imageScale = (float)(MontageGraphics.VisibleClipBounds.Height - imagesPadding) / (float)imagesHeightTotal; + if ((MontageGraphics.VisibleClipBounds.Width / (float)imagesWidthMax) < imageScale) + imageScale = (float)MontageGraphics.VisibleClipBounds.Width / (float)imagesWidthMax; + foreach (Image image in Images) + { + MontageGraphics.DrawImageResized(image, imageScale, 0, imagePosition); + imagePosition += (imageScale * image.Height) + this.Padding; + } + } + private void DoTableLayout(List Images, Graphics MontageGraphics) + { + var stageSize = MontageGraphics.VisibleClipBounds.Size.ToSize(); + var itemAverageSize = new SizeF(Images.Average(i => (float)i.Size.Width), Images.Average(i => (float)i.Size.Height)); + + var calculatedLayout = CalculateColumnCount(stageSize, itemAverageSize, Images.Count); + + SizeF cellSize = new SizeF((MontageGraphics.VisibleClipBounds.Width - ((calculatedLayout.Item1 - 1) * this.Padding)) / calculatedLayout.Item1, + (MontageGraphics.VisibleClipBounds.Height - ((calculatedLayout.Item2 - 1) * this.Padding)) / calculatedLayout.Item2); + + int imageIndex = 0; + for (int rowIndex = 0; rowIndex < calculatedLayout.Item2; rowIndex++) + { + for (int columnIndex = 0; columnIndex < calculatedLayout.Item1; columnIndex++) + { + if (imageIndex < Images.Count) + { + var image = Images[imageIndex]; + var cellPoint = new PointF((cellSize.Width * columnIndex) + (this.Padding * columnIndex), (cellSize.Height * rowIndex) + (this.Padding * rowIndex)); + MontageGraphics.Clip = new Region(new RectangleF(cellPoint, cellSize)); + MontageGraphics.DrawImageResized(image); + imageIndex++; + } + else + break; + } + } + } + + private Tuple CalculateColumnCount(Size StageSize, SizeF ItemAverageSize, int ItemCount) + { + double? bestUsedSpace = null; + int bestColumnCount = 1; + int bestRowCount = 1; + double bestItemRatio = 1; + + for (int columnCount = 1; columnCount <= ItemCount; columnCount++) + { + int rowCount = (int)Math.Ceiling((double)ItemCount / (double)columnCount); + + int requiredWidthPadding = (columnCount - 1) * this.Padding; + int requiredHeightPadding = (rowCount - 1) * this.Padding; + Size usableStageSize = new Size(StageSize.Width - requiredWidthPadding, StageSize.Height - requiredHeightPadding); + double stageWidthRatio = (float)usableStageSize.Width / (float)usableStageSize.Height; + double stageHeightRatio = (float)usableStageSize.Height / (float)usableStageSize.Width; + + int requiredWidth = (int)Math.Ceiling(ItemAverageSize.Width * columnCount); + int requiredHeight = (int)Math.Ceiling(ItemAverageSize.Height * rowCount); + + int usedSpace = requiredWidth * requiredHeight; + int stageArea = Math.Max((requiredWidth * (int)Math.Ceiling(requiredWidth * stageHeightRatio)), + (requiredHeight * (int)Math.Ceiling(requiredHeight * stageWidthRatio))); + double usedStageSpace = (double)usedSpace / stageArea; + if (bestUsedSpace == null || bestUsedSpace < usedStageSpace) + { + bestUsedSpace = usedStageSpace; + bestColumnCount = columnCount; + bestRowCount = rowCount; + bestItemRatio = Math.Min((double)usableStageSize.Width / (double)requiredWidth, (double)usableStageSize.Height / (double)requiredHeight); + } + } + + return new Tuple(bestColumnCount, bestRowCount, bestItemRatio); + } + } +} diff --git a/Disco.BI/BI/Expressions/Extensions/UserExt.cs b/Disco.BI/BI/Expressions/Extensions/UserExt.cs new file mode 100644 index 00000000..97492b4f --- /dev/null +++ b/Disco.BI/BI/Expressions/Extensions/UserExt.cs @@ -0,0 +1,51 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Models.Repository; +using Disco.BI.Extensions; +using Disco.BI.Interop.ActiveDirectory; + +namespace Disco.BI.Expressions.Extensions +{ + public static class UserExt + { + public static object GetActiveDirectoryObjectValue(User User, string PropertyName, int Index = 0) + { + var adUserAccount = User.ActiveDirectoryAccount(PropertyName); + if (adUserAccount != null) + return adUserAccount.GetPropertyValue(PropertyName, Index); + else + return null; + } + + public static string GetActiveDirectoryStringValue(User User, string PropertyName, int Index = 0) + { + var objectValue = GetActiveDirectoryObjectValue(User, PropertyName, Index); + string stringValue = objectValue as string; + if (stringValue == null && objectValue != null) + stringValue = objectValue.ToString(); + return stringValue; + } + + public static int GetActiveDirectoryIntegerValue(User User, string PropertyName, int Index = 0) + { + var objectValue = GetActiveDirectoryObjectValue(User, PropertyName, Index); + if (objectValue == null) + return default(int); + else + { + int intValue; + try + { + intValue = (int)Convert.ChangeType(objectValue, typeof(int)); + } + catch (Exception) + { + throw; + } + return intValue; + } + } + } +} diff --git a/Disco.BI/BI/Expressions/IExpressionPart.cs b/Disco.BI/BI/Expressions/IExpressionPart.cs new file mode 100644 index 00000000..dbe6304b --- /dev/null +++ b/Disco.BI/BI/Expressions/IExpressionPart.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections; + +namespace Disco.BI.Expressions +{ + public interface IExpressionPart + { + string RawSource { get; set; } + string Source { get; set; } + bool ErrorsAllowed { get; set; } + bool ParseError { get; } + string ParseErrorMessage { get; } + bool IsDynamic { get; set; } + object Evaluate(object ExpressionContext, System.Collections.IDictionary Variables); + } +} diff --git a/Disco.BI/BI/Expressions/TextExpressionPart.cs b/Disco.BI/BI/Expressions/TextExpressionPart.cs new file mode 100644 index 00000000..980e80a1 --- /dev/null +++ b/Disco.BI/BI/Expressions/TextExpressionPart.cs @@ -0,0 +1,74 @@ +using System; +using System.Collections; + +namespace Disco.BI.Expressions +{ + public class TextExpressionPart : IExpressionPart + { + private string _Source; + + bool IExpressionPart.ErrorsAllowed + { + get + { + return false; + } + set + { + return; + } + } + string IExpressionPart.Source + { + get + { + return this._Source; + } + set + { + return; + } + } + string IExpressionPart.RawSource + { + get + { + return this._Source; + } + set + { + return; + } + } + bool IExpressionPart.IsDynamic + { + get + { + return false; + } + set + { + return; + } + } + public bool ParseError + { + get { return false; } + } + + public string ParseErrorMessage + { + get { return null; } + } + + public TextExpressionPart(string Source) + { + this._Source = Source; + } + object IExpressionPart.Evaluate(object ExpressionContext, System.Collections.IDictionary Variables) + { + return this._Source; + } + + } +} diff --git a/Disco.BI/BI/Extensions/AttachmentActionExtensions.cs b/Disco.BI/BI/Extensions/AttachmentActionExtensions.cs new file mode 100644 index 00000000..cb500598 --- /dev/null +++ b/Disco.BI/BI/Extensions/AttachmentActionExtensions.cs @@ -0,0 +1,53 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Models.Repository; +using Disco.Data.Repository; + +namespace Disco.BI.Extensions +{ + public static class AttachmentActionExtensions + { + + #region Delete + public static bool CanDelete(this DeviceAttachment da) + { + return true; // Placeholder - Currently Can Always Delete; + } + public static void OnDelete(this DeviceAttachment da, DiscoDataContext dbContext) + { + if (!da.CanDelete()) + throw new InvalidOperationException("Deletion of Attachment is Denied"); + + da.RepositoryDelete(dbContext); + dbContext.DeviceAttachments.Remove(da); + } + public static bool CanDelete(this JobAttachment ja) + { + return true; // Placeholder - Currently Can Always Delete; + } + public static void OnDelete(this JobAttachment ja, DiscoDataContext dbContext) + { + if (!ja.CanDelete()) + throw new InvalidOperationException("Deletion of Attachment is Denied"); + + ja.RepositoryDelete(dbContext); + dbContext.JobAttachments.Remove(ja); + } + public static bool CanDelete(this UserAttachment ua) + { + return true; // Placeholder - Currently Can Always Delete; + } + public static void OnDelete(this UserAttachment ua, DiscoDataContext dbContext) + { + if (!ua.CanDelete()) + throw new InvalidOperationException("Deletion of Attachment is Denied"); + + ua.RepositoryDelete(dbContext); + dbContext.UserAttachments.Remove(ua); + } + #endregion + + } +} diff --git a/Disco.BI/BI/Extensions/AttachmentExtensions.cs b/Disco.BI/BI/Extensions/AttachmentExtensions.cs new file mode 100644 index 00000000..4c11ee82 --- /dev/null +++ b/Disco.BI/BI/Extensions/AttachmentExtensions.cs @@ -0,0 +1,196 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Models.Repository; +using Disco.Data.Repository; +using System.IO; +using Disco.BI.DocumentTemplateBI; + +namespace Disco.BI.Extensions +{ + public static class AttachmentExtensions + { + + public static bool ImportPdfAttachment(this DocumentUniqueIdentifier UniqueIdentifier, DiscoDataContext dbContext, System.IO.Stream PdfContent, byte[] PdfThumbnail) + { + + UniqueIdentifier.LoadComponents(dbContext); + DocumentTemplate documentTemplate = UniqueIdentifier.DocumentTemplate; + string filename; + string comments; + + if (documentTemplate == null) + { + filename = string.Format("{0}_{1:yyyyMMdd-HHmmss}.pdf", UniqueIdentifier.DataId, UniqueIdentifier.TimeStamp); + comments = string.Format("Uploaded: {0:s}", UniqueIdentifier.TimeStamp); + } + else + { + filename = string.Format("{0}_{1:yyyyMMdd-HHmmss}.pdf", UniqueIdentifier.TemplateTypeId, UniqueIdentifier.TimeStamp); + comments = string.Format("Generated: {0:s}", UniqueIdentifier.TimeStamp); + } + + User creatorUser = UserBI.UserCache.GetUser(UniqueIdentifier.CreatorId, dbContext); + if (creatorUser == null) + { + // No Creator User (or Username invalid) + creatorUser = UserBI.UserCache.CurrentUser; + } + switch (UniqueIdentifier.DataScope) + { + case DocumentTemplate.DocumentTemplateScopes.Device: + Device d = (Device)UniqueIdentifier.Data; + d.CreateAttachment(dbContext, creatorUser, filename, DocumentTemplate.PdfMimeType, comments, PdfContent, documentTemplate, PdfThumbnail); + return true; + case DocumentTemplate.DocumentTemplateScopes.Job: + Job j = (Job)UniqueIdentifier.Data; + j.CreateAttachment(dbContext, creatorUser, filename, DocumentTemplate.PdfMimeType, comments, PdfContent, documentTemplate, PdfThumbnail); + return true; + case DocumentTemplate.DocumentTemplateScopes.User: + User u = (User)UniqueIdentifier.Data; + u.CreateAttachment(dbContext, creatorUser, filename, DocumentTemplate.PdfMimeType, comments, PdfContent, documentTemplate, PdfThumbnail); + return true; + default: + return false; + } + + } + + public static string RepositoryFilename(this DeviceAttachment da, DiscoDataContext dbContext) + { + return Path.Combine(DataStore.CreateLocation(dbContext, "DeviceAttachments", da.Timestamp), string.Format("{0}_{1}_file", da.DeviceSerialNumber, da.Id)); + } + public static string RepositoryFilename(this JobAttachment ja, DiscoDataContext dbContext) + { + return Path.Combine(DataStore.CreateLocation(dbContext, "JobAttachments", ja.Timestamp), string.Format("{0}_{1}_file", ja.JobId, ja.Id)); + } + public static string RepositoryFilename(this UserAttachment ua, DiscoDataContext dbContext) + { + return Path.Combine(DataStore.CreateLocation(dbContext, "UserAttachments", ua.Timestamp), string.Format("{0}_{1}_file", ua.UserId, ua.Id)); + } + + private static string RepositoryThumbnailFilenameInternal(string DirectoryPath, string Filename) + { + return Path.Combine(DirectoryPath, Filename); + } + public static string RepositoryThumbnailFilename(this DeviceAttachment da, DiscoDataContext dbContext) + { + return RepositoryThumbnailFilenameInternal(DataStore.CreateLocation(dbContext, "DeviceAttachments", da.Timestamp), string.Format("{0}_{1}_thumb.jpg", da.DeviceSerialNumber, da.Id)); + } + public static string RepositoryThumbnailFilename(this JobAttachment ja, DiscoDataContext dbContext) + { + return RepositoryThumbnailFilenameInternal(DataStore.CreateLocation(dbContext, "JobAttachments", ja.Timestamp), string.Format("{0}_{1}_thumb.jpg", ja.JobId, ja.Id)); + } + public static string RepositoryThumbnailFilename(this UserAttachment ua, DiscoDataContext dbContext) + { + return RepositoryThumbnailFilenameInternal(DataStore.CreateLocation(dbContext, "UserAttachments", ua.Timestamp), string.Format("{0}_{1}_thumb.jpg", ua.UserId, ua.Id)); + } + + public static void RepositoryDelete(this DeviceAttachment da, DiscoDataContext dbContext) + { + RepositoryDelete(da.RepositoryFilename(dbContext), da.RepositoryThumbnailFilename(dbContext)); + } + public static void RepositoryDelete(this JobAttachment ja, DiscoDataContext dbContext) + { + RepositoryDelete(ja.RepositoryFilename(dbContext), ja.RepositoryThumbnailFilename(dbContext)); + } + public static void RepositoryDelete(this UserAttachment ua, DiscoDataContext dbContext) + { + RepositoryDelete(ua.RepositoryFilename(dbContext), ua.RepositoryThumbnailFilename(dbContext)); + } + private static void RepositoryDelete(params string[] filePaths) + { + foreach (string filePath in filePaths) + { + if (File.Exists(filePath)) + File.Delete(filePath); + } + } + + public static string SaveAttachment(this DeviceAttachment da, DiscoDataContext dbContext, Stream FileContent) + { + string filePath = da.RepositoryFilename(dbContext); + SaveAttachment(filePath, FileContent); + return filePath; + } + public static string SaveAttachment(this JobAttachment ja, DiscoDataContext dbContext, Stream FileContent) + { + string filePath = ja.RepositoryFilename(dbContext); + SaveAttachment(filePath, FileContent); + return filePath; + } + public static string SaveAttachment(this UserAttachment ua, DiscoDataContext dbContext, Stream FileContent) + { + string filePath = ua.RepositoryFilename(dbContext); + SaveAttachment(filePath, FileContent); + return filePath; + } + public static string SaveThumbnailAttachment(this DeviceAttachment da, DiscoDataContext dbContext, byte[] FileContent) + { + string filePath = da.RepositoryThumbnailFilename(dbContext); + File.WriteAllBytes(filePath, FileContent); + return filePath; + } + public static string SaveThumbnailAttachment(this JobAttachment ja, DiscoDataContext dbContext, byte[] FileContent) + { + string filePath = ja.RepositoryThumbnailFilename(dbContext); + File.WriteAllBytes(filePath, FileContent); + return filePath; + } + public static string SaveThumbnailAttachment(this UserAttachment ua, DiscoDataContext dbContext, byte[] FileContent) + { + string filePath = ua.RepositoryThumbnailFilename(dbContext); + File.WriteAllBytes(filePath, FileContent); + return filePath; + } + private static void SaveAttachment(string FilePath, Stream FileContent) + { + using (FileStream sw = new FileStream(FilePath, FileMode.Create, FileAccess.Write, FileShare.None)) + { + FileContent.CopyTo(sw); + sw.Flush(); + sw.Close(); + } + } + + public static string GenerateThumbnail(this DeviceAttachment da, DiscoDataContext dbContext) + { + string filePath = da.RepositoryThumbnailFilename(dbContext); + AttachmentBI.Utilities.GenerateThumbnail(da.RepositoryFilename(dbContext), da.MimeType, filePath); + return filePath; + } + public static string GenerateThumbnail(this JobAttachment ja, DiscoDataContext dbContext) + { + string filePath = ja.RepositoryThumbnailFilename(dbContext); + AttachmentBI.Utilities.GenerateThumbnail(ja.RepositoryFilename(dbContext), ja.MimeType, filePath); + return filePath; + } + public static string GenerateThumbnail(this UserAttachment ua, DiscoDataContext dbContext) + { + string filePath = ua.RepositoryThumbnailFilename(dbContext); + AttachmentBI.Utilities.GenerateThumbnail(ua.RepositoryFilename(dbContext), ua.MimeType, filePath); + return filePath; + } + public static string GenerateThumbnail(this DeviceAttachment da, DiscoDataContext dbContext, Stream SourceFile) + { + string filePath = da.RepositoryThumbnailFilename(dbContext); + AttachmentBI.Utilities.GenerateThumbnail(SourceFile, da.MimeType, filePath); + return filePath; + } + public static string GenerateThumbnail(this JobAttachment ja, DiscoDataContext dbContext, Stream SourceFile) + { + string filePath = ja.RepositoryThumbnailFilename(dbContext); + AttachmentBI.Utilities.GenerateThumbnail(SourceFile, ja.MimeType, filePath); + return filePath; + } + public static string GenerateThumbnail(this UserAttachment ua, DiscoDataContext dbContext, Stream SourceFile) + { + string filePath = ua.RepositoryThumbnailFilename(dbContext); + AttachmentBI.Utilities.GenerateThumbnail(SourceFile, ua.MimeType, filePath); + return filePath; + } + + + } +} diff --git a/Disco.BI/BI/Extensions/ClientServicesExtensions.cs b/Disco.BI/BI/Extensions/ClientServicesExtensions.cs new file mode 100644 index 00000000..8c66fe36 --- /dev/null +++ b/Disco.BI/BI/Extensions/ClientServicesExtensions.cs @@ -0,0 +1,70 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Models.ClientServices; +using System.Web; +using Disco.Data.Repository; +using Disco.Models.Repository; + +namespace Disco.BI.Extensions +{ + public static class ClientServicesExtensions + { + public static EnrolResponse BuildResponse(this Enrol request) + { + if (HttpContext.Current == null) + throw new PlatformNotSupportedException("This function can only be accessed from within ASP.NET"); + + string username = null; + if (HttpContext.Current.Request.IsAuthenticated) + username = HttpContext.Current.User.Identity.Name; + + using (DiscoDataContext dbContext = new DiscoDataContext()) + { + EnrolResponse response = DeviceBI.DeviceEnrol.Enrol(dbContext, username, request); + dbContext.SaveChanges(); + return response; + } + } + + public static WhoAmIResponse BuildResponse(this WhoAmI request) + { + if (HttpContext.Current == null) + throw new PlatformNotSupportedException("This function can only be accessed from within ASP.NET"); + + string username = null; + if (HttpContext.Current.Request.IsAuthenticated) + username = HttpContext.Current.User.Identity.Name; + + if (username == null) + throw new InvalidOperationException("Unauthenticated Http Context"); + + using (DiscoDataContext dbContext = new DiscoDataContext()) + { + User user = UserBI.UserCache.GetUser(username, dbContext, true); + WhoAmIResponse response = new WhoAmIResponse() + { + Username = user.Id, + DisplayName = user.DisplayName, + Type = user.Type + }; + return response; + } + } + + public static MacEnrolResponse BuildResponse(this MacEnrol request) + { + if (HttpContext.Current == null) + throw new PlatformNotSupportedException("This function can only be accessed from within ASP.NET"); + + using (DiscoDataContext dbContext = new DiscoDataContext()) + { + MacEnrolResponse response = DeviceBI.DeviceEnrol.MacEnrol(dbContext, request, false); + dbContext.SaveChanges(); + return response; + } + } + + } +} diff --git a/Disco.BI/BI/Extensions/DeviceActionExtensions.cs b/Disco.BI/BI/Extensions/DeviceActionExtensions.cs new file mode 100644 index 00000000..3db5a5db --- /dev/null +++ b/Disco.BI/BI/Extensions/DeviceActionExtensions.cs @@ -0,0 +1,133 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Models.Repository; +using Disco.Data.Repository; +using Disco.BI.Interop.ActiveDirectory; + +namespace Disco.BI.Extensions +{ + public static class DeviceActionExtensions + { + + public static bool CanCreateJob(this Device d) + { + return !d.DecommissionedDate.HasValue; + } + + #region Decommission + public static bool CanDecommission(this Device d) + { + if (d.DecommissionedDate.HasValue) + return false; // Already Decommissioned + + if (d.AssignedUserId != null) + return false; // User Assigned to Device + + if (d.Jobs.Count(j => !j.ClosedDate.HasValue) > 0) + return false; // Device linked to > 0 Open Jobs + + return true; + } + public static void OnDecommission(this Device d) + { + if (!d.CanDecommission()) + throw new InvalidOperationException("Decommission of Device is Denied"); + + d.DecommissionedDate = DateTime.Now; + + // Disable AD Account + if (d.ComputerName != null) + { + var adAccount = d.ActiveDirectoryAccount(); + if (adAccount != null) + { + adAccount.DisableAccount(); + } + } + } + #endregion + #region Recommission + public static bool CanRecommission(this Device d) + { + return d.DecommissionedDate.HasValue; + } + public static void OnRecommission(this Device d) + { + if (!d.CanRecommission()) + throw new InvalidOperationException("Recommission of Device is Denied"); + + d.DecommissionedDate = null; + + // Enable AD Account + if (d.ComputerName != null) + { + var adAccount = d.ActiveDirectoryAccount(); + if (adAccount != null) + { + adAccount.EnableAccount(); + } + } + } + #endregion + + #region Delete + public static bool CanDelete(this Device d) + { + return d.DecommissionedDate.HasValue; + } + public static void OnDelete(this Device d, DiscoDataContext dbContext) + { + // Delete Jobs + foreach (Job j in dbContext.Jobs.Where(i => i.DeviceSerialNumber == d.SerialNumber)) + { + if (j.UserId == null) + { // No User associated, thus must Delete whole Job + if (j.CanDelete()) + j.OnDelete(dbContext); + else + throw new InvalidOperationException(string.Format("Deletion of Device is Denied (See Job# {0})", j.Id)); + } + else + { + // User associated to Job, thus just remove Devices' association + j.DeviceSerialNumber = null; + + // Write Job Log + JobLog jobLog = new JobLog() + { + JobId = j.Id, + TechUserId = UserBI.UserCache.CurrentUser.Id, + Timestamp = DateTime.Now, + Comments = string.Format("Device Deleted{0}{0}Serial Number: {1}{0}Computer Name: {2}{0}Model: {3}{0}Profile: {4}", + Environment.NewLine, d.SerialNumber, d.ComputerName, d.DeviceModel, d.DeviceProfile) + }; + dbContext.JobLogs.Add(jobLog); + } + } + + // Disable Wireless Certificates + foreach (var wc in dbContext.DeviceCertificates.Where(i => i.DeviceSerialNumber == d.SerialNumber)) + { + wc.DeviceSerialNumber = null; + wc.Enabled = false; + } + // Delete Device Details + foreach (var dd in dbContext.DeviceDetails.Where(i => i.DeviceSerialNumber == d.SerialNumber)) + dbContext.DeviceDetails.Remove(dd); + // Delete Device Attachments + foreach (var da in dbContext.DeviceAttachments.Where(i => i.DeviceSerialNumber == d.SerialNumber)) + { + da.RepositoryDelete(dbContext); + dbContext.DeviceAttachments.Remove(da); + } + // Delete Device User Assignments + foreach (var dua in dbContext.DeviceUserAssignments.Where(i => i.DeviceSerialNumber == d.SerialNumber)) + dbContext.DeviceUserAssignments.Remove(dua); + + dbContext.Devices.Remove(d); + } + #endregion + } +} diff --git a/Disco.BI/BI/Extensions/DeviceBatchExtensions.cs b/Disco.BI/BI/Extensions/DeviceBatchExtensions.cs new file mode 100644 index 00000000..9c71b67d --- /dev/null +++ b/Disco.BI/BI/Extensions/DeviceBatchExtensions.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Models.Repository; +using Disco.Data.Repository; + +namespace Disco.BI.Extensions +{ + public static class DeviceBatchExtensions + { + public static bool CanDelete(this DeviceBatch db, DiscoDataContext dbContext) + { + // Can't Delete if Contains Devices + var deviceCount = dbContext.Devices.Count(d => d.DeviceBatchId == db.Id); + if (deviceCount > 0) + return false; + + return true; + } + + public static void Delete(this DeviceBatch db, DiscoDataContext dbContext) + { + if (!db.CanDelete(dbContext)) + throw new InvalidOperationException("The state of this Device Batch doesn't allow it to be deleted"); + + // Delete Batch + dbContext.DeviceBatches.Remove(db); + } + } +} diff --git a/Disco.BI/BI/Extensions/DeviceCertificateExtensions.cs b/Disco.BI/BI/Extensions/DeviceCertificateExtensions.cs new file mode 100644 index 00000000..0d6cac42 --- /dev/null +++ b/Disco.BI/BI/Extensions/DeviceCertificateExtensions.cs @@ -0,0 +1,44 @@ +using System.Linq; +using Disco.Data.Repository; +using Disco.Models.Repository; +using Disco.Services.Plugins; +using Disco.Services.Plugins.Features.CertificateProvider; +using System; +using System.Collections.Generic; + +namespace Disco.BI.Extensions +{ + public static class DeviceCertificateExtensions + { + + public static Tuple> AllocateCertificate(this Device device, DiscoDataContext dbContext) + { + if (!string.IsNullOrEmpty(device.DeviceProfile.CertificateProviderId)) + { + // REMOVED 2012-07-18 G# - Plugin is responsible for checking + //var deviceCertificates = dbContext.DeviceCertificates.Where(c => + // c.DeviceSerialNumber == device.SerialNumber && + // c.ProviderId == device.DeviceProfile.CertificateProviderId && + // c.Enabled == true).ToList(); + + // Load Plugin + PluginFeatureManifest featureManifest = Plugins.GetPluginFeature(device.DeviceProfile.CertificateProviderId, typeof(CertificateProviderFeature)); + + using (CertificateProviderFeature providerFeature = featureManifest.CreateInstance()) + { + // REMOVED 2012-07-18 G# - Plugin is responsible for checking + // Already Allocated Certificate + //if (deviceCertificates.Count > 0) + // return new Tuple>(deviceCertificates[0], providerPlugin.RemoveExistingCertificateNames()); + //else + + return providerFeature.AllocateCertificate(dbContext, device); + } + } + + // Device Profile does not allow certificate allocation + return null; + } + + } +} diff --git a/Disco.BI/BI/Extensions/DeviceExtensions.cs b/Disco.BI/BI/Extensions/DeviceExtensions.cs new file mode 100644 index 00000000..7b9a11b6 --- /dev/null +++ b/Disco.BI/BI/Extensions/DeviceExtensions.cs @@ -0,0 +1,186 @@ +using System.Linq; +using Disco.BI.Interop.ActiveDirectory; +using Disco.Data.Configuration; +using Disco.Data.Repository; +using Disco.Models.BI.DocumentTemplates; +using Disco.Models.Repository; +using System.Collections.Generic; +using System; +using System.IO; +using Disco.Models.Interop.ActiveDirectory; + +namespace Disco.BI.Extensions +{ + public static class DeviceExtensions + { + + public static string ComputerNameRender(this Device device, DiscoDataContext context) + { + DeviceProfile deviceProfile = device.DeviceProfile; + Expressions.Expression computerNameTemplateExpression = null; + computerNameTemplateExpression = Expressions.ExpressionCache.GetValue(DeviceProfileExtensions.ComputerNameExpressionCacheModule, deviceProfile.Id.ToString(), () => + { + // Removed 2012-06-14 G# - Properties moved to DeviceProfile model & DB Migrated in DBv3. + //return Expressions.Expression.TokenizeSingleDynamic(null, deviceProfile.Configuration(context).ComputerNameTemplate, 0); + return Expressions.Expression.TokenizeSingleDynamic(null, deviceProfile.ComputerNameTemplate, 0); + }); + System.Collections.IDictionary evaluatorVariables = Expressions.Expression.StandardVariables(null, context, UserBI.UserCache.CurrentUser, System.DateTime.Now, null); + string rendered; + try + { + rendered = computerNameTemplateExpression.EvaluateFirst(device, evaluatorVariables); + } + catch (Exception ex) + { + throw new InvalidOperationException(string.Format("An error occurred rendering the computer name: [{0}] {1}", ex.GetType().Name, ex.Message), ex.InnerException); + } + if (rendered == null || rendered.Length > 24) + { + throw new System.InvalidOperationException("The rendered computer name would be invalid or longer than 24 characters"); + } + return rendered.ToString(); + } + public static System.Collections.Generic.List AvailableDocumentTemplates(this Device d, DiscoDataContext Context, User User, System.DateTime TimeStamp) + { + List ats = Context.DocumentTemplates + .Where(at => at.Scope == Disco.Models.Repository.DocumentTemplate.DocumentTemplateScopes.Device).ToList(); + + return ats.Where(at => at.FilterExpressionMatches(d, Context, User, TimeStamp, DocumentState.DefaultState())).ToList(); + } + + public static bool UpdateLastNetworkLogonDate(this Device Device) + { + return ActiveDirectoryUpdateLastNetworkLogonDateJob.UpdateLastNetworkLogonDate(Device); + } + + public static DeviceAttachment CreateAttachment(this Device Device, DiscoDataContext dbContext, User CreatorUser, string Filename, string MimeType, string Comments, Stream Content, DocumentTemplate DocumentTemplate = null, byte[] PdfThumbnail = null) + { + if (string.IsNullOrEmpty(MimeType) || MimeType.Equals("unknown/unknown", StringComparison.InvariantCultureIgnoreCase)) + MimeType = Interop.MimeTypes.ResolveMimeType(Filename); + + DeviceAttachment da = new DeviceAttachment() + { + DeviceSerialNumber = Device.SerialNumber, + TechUserId = CreatorUser.Id, + Filename = Filename, + MimeType = MimeType, + Timestamp = DateTime.Now, + Comments = Comments + }; + + if (DocumentTemplate != null) + da.DocumentTemplateId = DocumentTemplate.Id; + + dbContext.DeviceAttachments.Add(da); + dbContext.SaveChanges(); + + da.SaveAttachment(dbContext, Content); + Content.Position = 0; + if (PdfThumbnail == null) + da.GenerateThumbnail(dbContext, Content); + else + da.SaveThumbnailAttachment(dbContext, PdfThumbnail); + + return da; + } + + public static Device AddOffline(this Device d, DiscoDataContext dbContext) + { + // Just Include: + // - Serial Number + // - Asset Number + // - Profile Id + // - Assigned User Id + // - Batch + + // Batch + DeviceBatch db = default(DeviceBatch); + if (d.DeviceBatchId.HasValue) + db = dbContext.DeviceBatches.Find(d.DeviceBatchId.Value); + + // Default Device Model + DeviceModel dm = default(DeviceModel); + if (db != null && db.DefaultDeviceModelId.HasValue) + dm = dbContext.DeviceModels.Find(db.DefaultDeviceModelId); // From Batch + else + dm = dbContext.DeviceModels.Find(1); // Default + + Device d2 = new Device() + { + SerialNumber = d.SerialNumber.ToUpper(), + AssetNumber = d.AssetNumber, + Location = d.Location, + CreatedDate = DateTime.Now, + DeviceProfileId = d.DeviceProfileId, + DeviceProfile = dbContext.DeviceProfiles.Find(d.DeviceProfileId), + AllowUnauthenticatedEnrol = true, + Active = true, + DeviceModelId = dm.Id, + DeviceModel = dm, + DeviceBatchId = d.DeviceBatchId, + DeviceBatch = db + }; + + dbContext.Devices.Add(d2); + if (!string.IsNullOrEmpty(d.AssignedUserId)) + { + User u = UserBI.UserCache.GetUser(d.AssignedUserId, dbContext); + d2.AssignDevice(dbContext, u); + } + + return d2; + } + + public static DeviceUserAssignment AssignDevice(this Device d, DiscoDataContext dbContext, User u) + { + DeviceUserAssignment newDua = default(DeviceUserAssignment); + + // Mark existing assignments as Unassigned + foreach (var dua in dbContext.DeviceUserAssignments.Where(m => m.DeviceSerialNumber == d.SerialNumber && !m.UnassignedDate.HasValue)) + dua.UnassignedDate = DateTime.Now; + + if (u != null) + { + // Add new Assignment + newDua = new DeviceUserAssignment() + { + DeviceSerialNumber = d.SerialNumber, + AssignedUserId = u.Id, + AssignedDate = DateTime.Now + }; + dbContext.DeviceUserAssignments.Add(newDua); + + d.AssignedUserId = u.Id; + d.AssignedUser = u; + } + else + { + d.AssignedUserId = null; + } + + // Update AD Account + if (!string.IsNullOrEmpty(d.ComputerName) && d.ComputerName.Length <= 24) + { + var adMachineAccount = Interop.ActiveDirectory.ActiveDirectory.GetMachineAccount(d.ComputerName); + if (adMachineAccount != null) + { + if (newDua == null) + adMachineAccount.SetDescription(string.Empty); + else + adMachineAccount.SetDescription(d); + } + } + + return newDua; + } + + public static ActiveDirectoryMachineAccount ActiveDirectoryAccount(this Device Device, params string[] AdditionalProperties) + { + if (!string.IsNullOrEmpty(Device.ComputerName)) + return Interop.ActiveDirectory.ActiveDirectory.GetMachineAccount(Device.ComputerName, AdditionalProperties: AdditionalProperties); + else + return null; + } + + } +} diff --git a/Disco.BI/BI/Extensions/DeviceModelExtensions.cs b/Disco.BI/BI/Extensions/DeviceModelExtensions.cs new file mode 100644 index 00000000..0f6c7729 --- /dev/null +++ b/Disco.BI/BI/Extensions/DeviceModelExtensions.cs @@ -0,0 +1,101 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Models.Repository; +using System.IO; +using System.Drawing; +using Disco.Data.Repository; + +namespace Disco.BI.Extensions +{ + public static class DeviceModelExtensions + { + public static bool ImageImport(this DeviceModel deviceModel, Stream ImageStream) + { + try + { + using (Bitmap inputBitmap = new Bitmap(ImageStream)) + { + using (Image outputBitmap = inputBitmap.ResizeImage(255, 255)) + { + using (MemoryStream ms = new MemoryStream()) + { + outputBitmap.SavePng(ms); + ms.Position = 0; + + var deviceModelImagePath = deviceModel.ImageFilePath(); + + + using (var storeStream = new FileStream(deviceModelImagePath, FileMode.Create, FileAccess.Write, FileShare.None)) + { + ms.CopyTo(storeStream); + } + //deviceModel.Image = ms.ToArray(); + } + } + } + return true; + } + catch (Exception) + { + return false; + } + } + + public static FileStream Image(this DeviceModel deviceModel) + { + var deviceModelImagePath = deviceModel.ImageFilePath(); + + if (File.Exists(deviceModelImagePath)) + return new FileStream(deviceModelImagePath, FileMode.Open, FileAccess.Read, FileShare.Read); + else + return null; + } + + public static string ImageFilePath(this DeviceModel deviceModel) + { + var configCache = new Disco.Data.Configuration.ConfigurationContext(null); + + var deviceModelImagesDataStore = DataStore.CreateLocation(configCache, "DeviceModelImages"); + + return Path.Combine(deviceModelImagesDataStore, string.Format("{0}.png", deviceModel.Id)); + } + + public static string ImageHash(this DeviceModel deviceModel) + { + var deviceModelImagePath = deviceModel.ImageFilePath(); + + if (File.Exists(deviceModelImagePath)) + return File.GetLastWriteTimeUtc(deviceModelImagePath).ToBinary().ToString(); + else + return "-1"; + } + + #region Actions + // Added 2012-11-26 G# - Need ability to delete Device Models + public static bool CanDelete(this DeviceModel dm, DiscoDataContext dbContext) + { + // Can't Delete Default Model (Id: 1) + if (dm.Id == 1) + return false; + + // Can't Delete if Contains Devices + if (dbContext.Devices.Count(d => d.DeviceModelId == dm.Id) > 0) + return false; + + return true; + } + public static void Delete(this DeviceModel dm, DiscoDataContext dbContext) + { + if (!dm.CanDelete(dbContext)) + throw new InvalidOperationException("The state of this Device Model doesn't allow it to be deleted"); + + // Delete Model + dbContext.DeviceModels.Remove(dm); + } + // End Added 2012-11-26 G# + #endregion + + } +} diff --git a/Disco.BI/BI/Extensions/DeviceProfileExtensions.cs b/Disco.BI/BI/Extensions/DeviceProfileExtensions.cs new file mode 100644 index 00000000..e3019bff --- /dev/null +++ b/Disco.BI/BI/Extensions/DeviceProfileExtensions.cs @@ -0,0 +1,54 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Models.Repository; +using Disco.Data.Repository; +using Disco.Data.Configuration.Modules; + +namespace Disco.BI.Extensions +{ + public static class DeviceProfileExtensions + { + public const string ComputerNameExpressionCacheModule = "ComputerNameTemplate"; + + public static void ComputerNameInvalidateCache(this DeviceProfile deviceProfile) + { + Expressions.ExpressionCache.InvalidateKey(ComputerNameExpressionCacheModule, deviceProfile.Id.ToString()); + } + + public static bool CanDelete(this DeviceProfile dp, DiscoDataContext dbContext) + { + // Can't Delete Default Profile (Id: 1) + if (dp.Id == 1) + return false; + + // Can't Delete if Contains Devices + if (dbContext.Devices.Count(d => d.DeviceProfileId == dp.Id) > 0) + return false; + + return true; + } + public static void Delete(this DeviceProfile dp, DiscoDataContext dbContext) + { + if (!dp.CanDelete(dbContext)) + throw new InvalidOperationException("The state of this Device Profile doesn't allow it to be deleted"); + + // Update Defaults + if (dbContext.DiscoConfiguration.DeviceProfiles.DefaultDeviceProfileId == dp.Id) + dbContext.DiscoConfiguration.DeviceProfiles.DefaultDeviceProfileId = 1; + if (dbContext.DiscoConfiguration.DeviceProfiles.DefaultAddDeviceOfflineDeviceProfileId == dp.Id) + dbContext.DiscoConfiguration.DeviceProfiles.DefaultAddDeviceOfflineDeviceProfileId = 1; + + // Delete Profile + dbContext.DeviceProfiles.Remove(dp); + } + + // Removed 2012-06-14 G# - Properties moved to DeviceProfile model & DB Migrated in DBv3. + //public static DeviceProfileConfiguration Configuration(this DeviceProfile dp, DiscoDataContext dbContext) + //{ + // return dbContext.DiscoConfiguration.DeviceProfiles.DeviceProfile(dp); + //} + + } +} diff --git a/Disco.BI/BI/Extensions/DocumentTemplateExtensions.cs b/Disco.BI/BI/Extensions/DocumentTemplateExtensions.cs new file mode 100644 index 00000000..be4c8a52 --- /dev/null +++ b/Disco.BI/BI/Extensions/DocumentTemplateExtensions.cs @@ -0,0 +1,220 @@ +using System; +using System.Collections.Concurrent; +using System.Linq; +using System.Web; +using Disco.Data.Repository; +using Disco.Models.BI.DocumentTemplates; +using Disco.Models.Repository; +using System.Collections; +using System.Collections.Generic; +using iTextSharp.text.pdf; +using Disco.BI.Expressions; +using System.Drawing; +using System.IO; +using Disco.BI.DocumentTemplateBI; + +namespace Disco.BI.Extensions +{ + public static class DocumentTemplateExtensions + { + private const string DocumentTemplateExpressionCacheTemplate = "DocumentTemplate_{0}"; + + public static string RepositoryFilename(this DocumentTemplate dt, DiscoDataContext dbContext) + { + return System.IO.Path.Combine(DataStore.CreateLocation(dbContext, "DocumentTemplates"), string.Format("{0}.pdf", dt.Id)); + } + public static string SavePdfTemplate(this DocumentTemplate dt, DiscoDataContext dbContext, Stream TemplateFile) + { + string filePath = dt.RepositoryFilename(dbContext); + using (FileStream fs = new FileStream(filePath, FileMode.Create, FileAccess.Write)) + { + TemplateFile.CopyTo(fs); + } + Expressions.ExpressionCache.InvalidModule(string.Format(DocumentTemplateExpressionCacheTemplate, dt.Id)); + return filePath; + } + + public static DisposableImageCollection PdfPageImages(this PdfReader pdfReader, int PageNumber) + { + return Interop.Pdf.PdfImporter.GetPageImages(pdfReader, PageNumber); + } + + public static ConcurrentDictionary PdfExpressionsFromCache(this DocumentTemplate dt, DiscoDataContext dbContext) + { + string cacheModuleKey = string.Format(DocumentTemplateExpressionCacheTemplate, dt.Id); + var module = Expressions.ExpressionCache.GetModule(cacheModuleKey); + if (module == null) + { + // Cache + string templateFilename = dt.RepositoryFilename(dbContext); + PdfReader pdfReader = new PdfReader(templateFilename); + int pdfFieldOrdinal = 0; + foreach (string pdfFieldKey in pdfReader.AcroFields.Fields.Keys) + { + var pdfFieldValue = pdfReader.AcroFields.GetField(pdfFieldKey); + Expressions.ExpressionCache.SetValue(cacheModuleKey, pdfFieldKey, Expressions.Expression.Tokenize(pdfFieldKey, pdfFieldValue, pdfFieldOrdinal)); + pdfFieldOrdinal++; + } + pdfReader.Close(); + module = Expressions.ExpressionCache.GetModule(cacheModuleKey, true); + } + return module; + } + + public static List ExtractPdfExpressions(this DocumentTemplate dt, DiscoDataContext dbContext) + { + return dt.PdfExpressionsFromCache(dbContext).Values.OrderBy(e => e.Ordinal).ToList(); + } + public static System.IO.Stream GeneratePdfBulk(this DocumentTemplate dt, DiscoDataContext dbContext, User CreatorUser, System.DateTime Timestamp, params string[] DataObjectsIds) + { + return Interop.Pdf.PdfGenerator.GenerateBulkFromTemplate(dt, dbContext, CreatorUser, Timestamp, DataObjectsIds); + } + public static System.IO.Stream GeneratePdfBulk(this DocumentTemplate dt, DiscoDataContext dbContext, User CreatorUser, System.DateTime Timestamp, params object[] DataObjects) + { + return Interop.Pdf.PdfGenerator.GenerateBulkFromTemplate(dt, dbContext, CreatorUser, Timestamp, DataObjects); + } + public static System.IO.Stream GeneratePdf(this DocumentTemplate dt, DiscoDataContext dbContext, object Data, User CreatorUser, System.DateTime TimeStamp, DocumentState State, bool FlattenFields = false) + { + return Interop.Pdf.PdfGenerator.GenerateFromTemplate(dt, dbContext, Data, CreatorUser, TimeStamp, State, FlattenFields); + } + + public static Expression FilterExpressionFromCache(this DocumentTemplate dt) + { + return ExpressionCache.GetValue("DocumentTemplateFilterExpression", dt.Id, () => { return Expression.TokenizeSingleDynamic(null, dt.FilterExpression, 0); }); + } + public static void FilterExpressionInvalidateCache(this DocumentTemplate dt) + { + ExpressionCache.InvalidateKey("DocumentTemplateFilterExpression", dt.Id); + } + public static bool FilterExpressionMatches(this DocumentTemplate dt, object Data, DiscoDataContext DataContext, User User, System.DateTime TimeStamp, DocumentState State) + { + if (!string.IsNullOrEmpty(dt.FilterExpression)) + { + Expression compiledExpression = dt.FilterExpressionFromCache(); + System.Collections.IDictionary evaluatorVariables = Expression.StandardVariables(dt, DataContext, User, TimeStamp, State); + try + { + object er = compiledExpression.EvaluateFirst(Data, evaluatorVariables); + if (er is bool) + { + return (bool)er; + } + bool erBool; + if (bool.TryParse(er.ToString(), out erBool)) + { + return erBool; + } + } + catch + { + return false; + } + } + return true; + } + public static string GetDataId(this DocumentTemplate dt, object Data) + { + if (Data is string) + { + return (string)Data; + } + else + { + switch (dt.Scope) + { + case Models.Repository.DocumentTemplate.DocumentTemplateScopes.Device: + if (!(Data is Device)) + throw new ArgumentException("This Document Template is configured for Devices only", "Data"); + Device d = (Device)Data; + return d.SerialNumber; + case Models.Repository.DocumentTemplate.DocumentTemplateScopes.Job: + if (!(Data is Job)) + throw new ArgumentException("This Document Template is configured for Jobs only", "Data"); + Job d2 = (Job)Data; + return d2.Id.ToString(); + case Models.Repository.DocumentTemplate.DocumentTemplateScopes.User: + if (!(Data is User)) + throw new ArgumentException("This Document Template is configured for Users only", "Data"); + User d3 = (User)Data; + return d3.Id; + default: + throw new InvalidOperationException("Invalid Document Template Scope"); + } + } + } + public static string UniqueIdentifier(string DocumentTemplateId, string DataId, string CreatorId, System.DateTime Timestamp) + { + return string.Format("Disco|1|{0}|{1}|{2}|{3:s}", + DocumentTemplateId, + DataId, + CreatorId, + Timestamp + ); + } + public static string UniqueIdentifier(this DocumentTemplate dt, object Data, string CreatorId, System.DateTime Timestamp) + { + return string.Format("Disco|1|{0}|{1}|{2}|{3:s}", + dt.Id, + dt.GetDataId(System.Runtime.CompilerServices.RuntimeHelpers.GetObjectValue(Data)), + CreatorId, + Timestamp + ); + } + public static string UniquePageIdentifier(this DocumentTemplate dt, object Data, string CreatorId, System.DateTime Timestamp, int Page) + { + return string.Format("Disco|1|{0}|{1}|{2}|{3:s}|{4}", + dt.Id, + dt.GetDataId(System.Runtime.CompilerServices.RuntimeHelpers.GetObjectValue(Data)), + CreatorId, + Timestamp, + Page + ); + } + public static List QRCodeLocations(this DocumentTemplate dt, DiscoDataContext dbContext) + { + return DocumentTemplateBI.DocumentTemplateQRCodeLocationCache.GetLocations(dt, dbContext); + } + public static void Delete(this DocumentTemplate dt, DiscoDataContext Context) + { + // Find & Rename all references + foreach (DeviceAttachment a in Context.DeviceAttachments.Where(a => a.DocumentTemplateId == dt.Id)) + { + a.Comments = string.Format("{0} - {1}", dt.Description, a.Comments); + if (a.Comments.Length > 500) + a.Comments = a.Comments.Substring(0, 500); + a.DocumentTemplateId = null; + a.DocumentTemplate = null; + } + foreach (JobAttachment a in Context.JobAttachments.Where(a => a.DocumentTemplateId == dt.Id)) + { + a.Comments = string.Format("{0} - {1}", dt.Description, a.Comments); + if (a.Comments.Length > 500) + a.Comments = a.Comments.Substring(0, 500); + a.DocumentTemplateId = null; + a.DocumentTemplate = null; + } + foreach (UserAttachment a in Context.UserAttachments.Where(a => a.DocumentTemplateId == dt.Id)) + { + a.Comments = string.Format("{0} - {1}", dt.Description, a.Comments); + if (a.Comments.Length > 500) + a.Comments = a.Comments.Substring(0, 500); + a.DocumentTemplateId = null; + a.DocumentTemplate = null; + } + + // Delete SubTypes + dt.JobSubTypes.Clear(); + + // Delete Template + string templateRepositoryFilename = dt.RepositoryFilename(Context); + if (System.IO.File.Exists(templateRepositoryFilename)) + System.IO.File.Delete(templateRepositoryFilename); + + // Remove from Cache + dt.FilterExpressionInvalidateCache(); + + // Delete Document Template from Repository + Context.DocumentTemplates.Remove(dt); + } + } +} diff --git a/Disco.BI/BI/Extensions/JobActionExtensions.cs b/Disco.BI/BI/Extensions/JobActionExtensions.cs new file mode 100644 index 00000000..937d351b --- /dev/null +++ b/Disco.BI/BI/Extensions/JobActionExtensions.cs @@ -0,0 +1,415 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Disco.Data.Repository; +using Disco.Models.BI.Config; +using Disco.Models.Repository; +using Disco.Services.Plugins; +using Disco.Services.Plugins.Features.WarrantyProvider; + +namespace Disco.BI.Extensions +{ + public static class JobActionExtensions + { + + #region Device Held + public static bool CanDeviceHeld(this Job j) + { + return (!j.ClosedDate.HasValue) && (j.DeviceSerialNumber != null) && + (!j.DeviceHeld.HasValue || j.DeviceReturnedDate.HasValue); + } + public static void OnDeviceHeld(this Job j, User Technician) + { + if (!j.CanDeviceHeld()) + throw new InvalidOperationException("Holding Device was Denied"); + + j.DeviceHeld = DateTime.Now; + j.DeviceHeldTechUserId = Technician.Id; + j.DeviceReadyForReturn = null; + j.DeviceReadyForReturnTechUserId = null; + j.DeviceReturnedDate = null; + j.DeviceReturnedTechUserId = null; + } + #endregion + + #region Device Ready for Return + public static bool CanDeviceReadyForReturn(this Job j) + { + return (!j.ClosedDate.HasValue) && j.DeviceHeld.HasValue && + !j.DeviceReadyForReturn.HasValue && !j.DeviceReturnedDate.HasValue; + } + public static void OnDeviceReadyForReturn(this Job j, User Technician) + { + if (!j.CanDeviceReadyForReturn()) + throw new InvalidOperationException("Device Ready for Return was Denied"); + + j.DeviceReadyForReturn = DateTime.Now; + j.DeviceReadyForReturnTechUserId = Technician.Id; + } + #endregion + + #region Device Returned + public static bool CanDeviceReturned(this Job j) + { + return (!j.ClosedDate.HasValue) && j.DeviceHeld.HasValue && + !j.DeviceReturnedDate.HasValue; + } + public static void OnDeviceReturned(this Job j, User Technician) + { + if (!j.CanDeviceReturned()) + throw new InvalidOperationException("Device Return was Denied"); + + j.DeviceReturnedDate = DateTime.Now; + j.DeviceReturnedTechUserId = Technician.Id; + } + #endregion + + #region Waiting For User Action + public static bool CanWaitingForUserAction(this Job j) + { + return !j.ClosedDate.HasValue && (j.UserId != null) && !j.WaitingForUserAction.HasValue; + } + public static void OnWaitingForUserAction(this Job j, DiscoDataContext dbContext, User Technician, string Reason) + { + if (!j.CanWaitingForUserAction()) + throw new InvalidOperationException("Waiting for User Action was Denied"); + + j.WaitingForUserAction = DateTime.Now; + + // Write Log + JobLog jobLog = new JobLog() + { + JobId = j.Id, + TechUserId = Technician.Id, + Timestamp = DateTime.Now, + Comments = string.Format("Waiting on User Action{0}Reason: {1}", Environment.NewLine, Reason) + }; + dbContext.JobLogs.Add(jobLog); + } + #endregion + + #region Not Waiting For User Action + public static bool CanNotWaitingForUserAction(this Job j) + { + return j.WaitingForUserAction.HasValue; + } + public static void OnNotWaitingForUserAction(this Job j, DiscoDataContext dbContext, User Technician, string Resolution) + { + if (!j.CanNotWaitingForUserAction()) + throw new InvalidOperationException("Not Waiting for User Action was Denied"); + + j.WaitingForUserAction = null; + + // Write Log + JobLog jobLog = new JobLog() + { + JobId = j.Id, + TechUserId = Technician.Id, + Timestamp = DateTime.Now, + Comments = string.Format("User Action Resolved{0}Resolution: {1}", Environment.NewLine, Resolution) + }; + dbContext.JobLogs.Add(jobLog); + } + #endregion + + #region Log Warranty + public static bool CanLogWarranty(this Job j) + { + return !j.ClosedDate.HasValue && + (j.DeviceSerialNumber != null) && + j.JobTypeId == JobType.JobTypeIds.HWar && + string.IsNullOrEmpty(j.JobMetaWarranty.ExternalReference); + } + public static void OnLogWarranty(this Job j, DiscoDataContext dbContext, string FaultDescription, PluginFeatureManifest WarrantyProviderDefinition, OrganisationAddress Address, User TechUser, Dictionary WarrantyProviderProperties) + { + if (!j.CanLogWarranty()) + throw new InvalidOperationException("Log Warranty was Denied"); + + if (string.IsNullOrWhiteSpace(FaultDescription)) + FaultDescription = j.GenerateFaultDescriptionFooter(dbContext, WarrantyProviderDefinition); + else + FaultDescription = string.Concat(FaultDescription, Environment.NewLine, Environment.NewLine, j.GenerateFaultDescriptionFooter(dbContext, WarrantyProviderDefinition)); + + using (WarrantyProviderFeature WarrantyProvider = WarrantyProviderDefinition.CreateInstance()) + { + string providerRef = WarrantyProvider.SubmitJob(dbContext, j, Address, TechUser, FaultDescription, WarrantyProviderProperties); + + j.JobMetaWarranty.ExternalLoggedDate = DateTime.Now; + j.JobMetaWarranty.ExternalName = WarrantyProvider.WarrantyProviderId; + + if (providerRef.Length > 100) + j.JobMetaWarranty.ExternalReference = providerRef.Substring(0, 100); + else + j.JobMetaWarranty.ExternalReference = providerRef; + + // Write Log + JobLog jobLog = new JobLog() + { + JobId = j.Id, + TechUserId = TechUser.Id, + Timestamp = DateTime.Now, + Comments = string.Format("Warranty Claim Submitted{0}{0}Provider: {1}{0}Repair Address: {2}{0}Provider Reference: {3}{0}{0}{4}", Environment.NewLine, WarrantyProvider.Manifest.Name, Address.Name, providerRef, FaultDescription) + }; + dbContext.JobLogs.Add(jobLog); + } + } + #endregion + + #region Convert HWar to HNWar + public static bool CanConvertHWarToHNWar(this Job j) + { + return !j.ClosedDate.HasValue && (j.DeviceSerialNumber != null) && + j.JobTypeId == JobType.JobTypeIds.HWar && string.IsNullOrEmpty(j.JobMetaWarranty.ExternalReference); + } + public static void OnConvertHWarToHNWar(this Job j, DiscoDataContext dbContext) + { + if (!j.CanConvertHWarToHNWar()) + throw new InvalidOperationException("Convert HWar to HNWar was Denied"); + + var techUser = UserBI.UserCache.CurrentUser; + + // Remove JobMetaWarranty + if (j.JobMetaWarranty != null) + dbContext.JobMetaWarranties.Remove(j.JobMetaWarranty); + + // Add JobMetaNonWarranty + var metaHNWar = new JobMetaNonWarranty() { Job = j }; + dbContext.JobMetaNonWarranties.Add(metaHNWar); + + // Swap Job Sub Types + List jobSubTypes = j.JobSubTypes.Select(jst => jst.Id).ToList(); + j.JobSubTypes.Clear(); + foreach (var jst in dbContext.JobSubTypes.Where(i => i.JobTypeId == JobType.JobTypeIds.HNWar && jobSubTypes.Contains(i.Id))) + j.JobSubTypes.Add(jst); + + // Add Components + var components = dbContext.DeviceComponents.Include("JobSubTypes").Where(c => !c.DeviceModelId.HasValue || c.DeviceModelId == j.Device.DeviceModelId); + var jobComponents = new List(); + foreach (var component in components) + { + if (!component.DeviceModelId.HasValue) + { + jobComponents.Add(component); + } + else + { + foreach (var st in component.JobSubTypes) + { + foreach (var jst in j.JobSubTypes) + { + if (st.JobTypeId == jst.JobTypeId && st.Id == jst.Id) + { + jobComponents.Add(component); + break; + } + } + if (jobComponents.Contains(component)) + break; + } + } + } + foreach (var component in jobComponents) + { + dbContext.JobComponents.Add(new JobComponent() + { + Job = j, + TechUserId = techUser.Id, + Cost = component.Cost, + Description = component.Description + }); + } + + // Write Log + JobLog jobLog = new JobLog() + { + JobId = j.Id, + TechUserId = techUser.Id, + Timestamp = DateTime.Now, + Comments = string.Format("Job Type Converted{0}From: {1}{0}To: {2}", Environment.NewLine, dbContext.JobTypes.Find(JobType.JobTypeIds.HWar), dbContext.JobTypes.Find(JobType.JobTypeIds.HNWar)) + }; + dbContext.JobLogs.Add(jobLog); + + j.JobTypeId = JobType.JobTypeIds.HNWar; + } + #endregion + + #region Warranty Completed + public static bool CanWarrantyCompleted(this Job j) + { + return (j.JobTypeId == JobType.JobTypeIds.HWar) && + j.JobMetaWarranty.ExternalLoggedDate.HasValue && + !j.JobMetaWarranty.ExternalCompletedDate.HasValue; + } + public static void OnWarrantyCompleted(this Job j) + { + if (!j.CanWarrantyCompleted()) + throw new InvalidOperationException("Warranty Completed was Denied"); + + j.JobMetaWarranty.ExternalCompletedDate = DateTime.Now; + } + #endregion + + #region Insurance Claim Form Sent + public static bool CanInsuranceClaimFormSent(this Job j) + { + return (j.JobTypeId == JobType.JobTypeIds.HNWar) && + j.JobMetaNonWarranty.IsInsuranceClaim && + !j.JobMetaInsurance.ClaimFormSentDate.HasValue; + } + public static void OnInsuranceClaimFormSent(this Job j) + { + if (!j.CanInsuranceClaimFormSent()) + throw new InvalidOperationException("Insurance Claim Form Sent was Denied"); + + var techUser = UserBI.UserCache.CurrentUser; + + j.JobMetaInsurance.ClaimFormSentDate = DateTime.Now; + j.JobMetaInsurance.ClaimFormSentUserId = techUser.Id; + } + #endregion + + #region Log Repair + public static bool CanLogRepair(this Job j) + { + return (j.JobTypeId == JobType.JobTypeIds.HNWar) && + (j.DeviceSerialNumber != null) && + !j.JobMetaNonWarranty.RepairerLoggedDate.HasValue && + !j.JobMetaNonWarranty.RepairerCompletedDate.HasValue; + } + public static void OnLogRepair(this Job j, string RepairerName, string RepairerReference) + { + if (!j.CanLogRepair()) + throw new InvalidOperationException("Log Repair was Denied"); + + if (j.JobMetaNonWarranty.RepairerName != RepairerName) + j.JobMetaNonWarranty.RepairerName = RepairerName; + if (j.JobMetaNonWarranty.RepairerReference != RepairerReference) + j.JobMetaNonWarranty.RepairerReference = RepairerReference; + j.JobMetaNonWarranty.RepairerLoggedDate = DateTime.Now; + } + #endregion + + #region Repair Complete + public static bool CanRepairComplete(this Job j) + { + return (j.JobTypeId == JobType.JobTypeIds.HNWar) && + j.JobMetaNonWarranty.RepairerLoggedDate.HasValue && + !j.JobMetaNonWarranty.RepairerCompletedDate.HasValue; + } + public static void OnRepairComplete(this Job j) + { + if (!j.CanRepairComplete()) + throw new InvalidOperationException("Repair Complete was Denied"); + + j.JobMetaNonWarranty.RepairerCompletedDate = DateTime.Now; + } + #endregion + + #region Close + public static bool CanClose(this Job j) + { + if (j.ClosedDate.HasValue) + return false; // Job already Closed + + if (j.DeviceHeld.HasValue && !j.DeviceReturnedDate.HasValue) + return false; // Device not returned to User + + if (j.WaitingForUserAction.HasValue) + return false; // Job waiting on User Action + + switch (j.JobTypeId) + { + case JobType.JobTypeIds.HWar: + if (!string.IsNullOrEmpty(j.JobMetaWarranty.ExternalReference) && !j.JobMetaWarranty.ExternalCompletedDate.HasValue) + return false; // Job Logged (Warranty) but not completed + break; + case JobType.JobTypeIds.HNWar: + if (j.JobMetaNonWarranty.RepairerLoggedDate.HasValue && !j.JobMetaNonWarranty.RepairerCompletedDate.HasValue) + return false; // Job Logged (Repair) but not completed + if (j.JobMetaNonWarranty.AccountingChargeRequiredDate.HasValue && (!j.JobMetaNonWarranty.AccountingChargePaidDate.HasValue || !j.JobMetaNonWarranty.AccountingChargeAddedDate.HasValue)) + return false; // Accounting Charge Required, but not added or paid + + // Removed Rule: 2012-05-31 - A Job can be closed if the decision has been made for the user not to pay... + //if (j.JobMetaNonWarranty.AccountingChargeAddedDate.HasValue && !j.JobMetaNonWarranty.AccountingChargePaidDate.HasValue) + // return false; // Accounting Charge Added, but not paid + + if (j.JobMetaNonWarranty.IsInsuranceClaim && !j.JobMetaInsurance.ClaimFormSentDate.HasValue) + return false; // Is Insurance Claim, but claim form not sent + break; + } + + return true; + } + public static void OnClose(this Job j, User Technician) + { + if (!j.CanClose()) + throw new InvalidOperationException("Close was Denied"); + + j.ClosedDate = DateTime.Now; + j.ClosedTechUserId = Technician.Id; + } + #endregion + + #region Reopen + public static bool CanReopen(this Job j) + { + return j.ClosedDate.HasValue; + } + public static void OnReopen(this Job j) + { + if (!j.CanReopen()) + throw new InvalidOperationException("Reopen was Denied"); + + j.ClosedDate = null; + j.ClosedTechUserId = null; + } + #endregion + + #region Delete + public static bool CanDelete(this Job j) + { + return j.ClosedDate.HasValue; + } + public static void OnDelete(this Job j, DiscoDataContext dbContext) + { + // Job Sub Types + j.JobSubTypes.Clear(); + + // Job Attachments + foreach (var ja in j.JobAttachments.ToArray()) + ja.OnDelete(dbContext); + j.JobAttachments.Clear(); + + // Job Components + foreach (var jc in j.JobComponents.ToArray()) + dbContext.JobComponents.Remove(jc); + j.JobComponents.Clear(); + + // Job Logs + foreach (var jl in j.JobLogs.ToArray()) + dbContext.JobLogs.Remove(jl); + j.JobLogs.Clear(); + + // Job Meta + if (j.JobMetaInsurance != null) + { + dbContext.JobMetaInsurances.Remove(j.JobMetaInsurance); + j.JobMetaInsurance = null; + } + if (j.JobMetaNonWarranty != null) + { + dbContext.JobMetaNonWarranties.Remove(j.JobMetaNonWarranty); + j.JobMetaNonWarranty = null; + } + if (j.JobMetaWarranty != null) + { + dbContext.JobMetaWarranties.Remove(j.JobMetaWarranty); + j.JobMetaWarranty = null; + } + + // Job + dbContext.Jobs.Remove(j); + } + #endregion + } +} diff --git a/Disco.BI/BI/Extensions/JobExtensions.cs b/Disco.BI/BI/Extensions/JobExtensions.cs new file mode 100644 index 00000000..5101ddc1 --- /dev/null +++ b/Disco.BI/BI/Extensions/JobExtensions.cs @@ -0,0 +1,303 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Models.Repository; +using Disco.Data.Repository; +using System.IO; +using Disco.Models.BI.DocumentTemplates; +using Disco.Services.Plugins; +using Disco.Models.BI.Job; + +namespace Disco.BI.Extensions +{ + public static class JobExtensions + { + + public static void BroadcastUpdate(this Job j) + { + if (j.UserId != null) + Interop.SignalRHandlers.UserHeldDevices.UserJobUpdated(j.UserId); + } + + public static JobAttachment CreateAttachment(this Job Job, DiscoDataContext dbContext, User CreatorUser, string Filename, string MimeType, string Comments, Stream Content, DocumentTemplate DocumentTemplate = null, byte[] PdfThumbnail = null) + { + if (string.IsNullOrEmpty(MimeType) || MimeType.Equals("unknown/unknown", StringComparison.InvariantCultureIgnoreCase)) + MimeType = Interop.MimeTypes.ResolveMimeType(Filename); + + JobAttachment ja = new JobAttachment() + { + JobId = Job.Id, + TechUserId = CreatorUser.Id, + Filename = Filename, + MimeType = MimeType, + Timestamp = DateTime.Now, + Comments = Comments + }; + + if (DocumentTemplate != null) + ja.DocumentTemplateId = DocumentTemplate.Id; + + dbContext.JobAttachments.Add(ja); + dbContext.SaveChanges(); + + ja.SaveAttachment(dbContext, Content); + Content.Position = 0; + if (PdfThumbnail == null) + ja.GenerateThumbnail(dbContext, Content); + else + ja.SaveThumbnailAttachment(dbContext, PdfThumbnail); + + return ja; + } + + public static Tuple Status(this Job j) + { + var statusId = j.CalculateStatusId(); + return new Tuple(statusId, JobBI.Utilities.JobStatusDescription(statusId, j)); + } + + public static JobTableModel.JobTableItemModelIncludeStatus ToJobTableItemModelIncludeStatus(this Job j) + { + var i = new JobTableModel.JobTableItemModelIncludeStatus() + { + Id = j.Id, + OpenedDate = j.OpenedDate, + ClosedDate = j.ClosedDate, + TypeId = j.JobTypeId, + TypeDescription = j.JobType.Description, + Location = j.DeviceHeldLocation, + + WaitingForUserAction = j.WaitingForUserAction, + DeviceReadyForReturn = j.DeviceReadyForReturn, + DeviceHeld = j.DeviceHeld, + DeviceReturnedDate = j.DeviceReturnedDate + }; + + if (j.Device != null) + { + i.DeviceSerialNumber = j.DeviceSerialNumber; + i.DeviceModelDescription = j.Device.DeviceModel.Description; + i.DeviceAddressId = j.Device.DeviceProfile.DefaultOrganisationAddress; + + if (j.JobMetaWarranty != null) + { + i.JobMetaWarranty_ExternalReference = j.JobMetaWarranty.ExternalReference; + i.JobMetaWarranty_ExternalCompletedDate = j.JobMetaWarranty.ExternalCompletedDate; + i.JobMetaWarranty_ExternalName = j.JobMetaWarranty.ExternalName; + } + if (j.JobMetaNonWarranty != null) + { + i.JobMetaNonWarranty_RepairerLoggedDate = j.JobMetaNonWarranty.RepairerLoggedDate; + i.JobMetaNonWarranty_RepairerCompletedDate = j.JobMetaNonWarranty.RepairerCompletedDate; + i.JobMetaNonWarranty_AccountingChargeAddedDate = j.JobMetaNonWarranty.AccountingChargeAddedDate; + i.JobMetaNonWarranty_AccountingChargePaidDate = j.JobMetaNonWarranty.AccountingChargePaidDate; + i.JobMetaNonWarranty_AccountingChargeRequiredDate = j.JobMetaNonWarranty.AccountingChargeRequiredDate; + i.JobMetaNonWarranty_IsInsuranceClaim = j.JobMetaNonWarranty.IsInsuranceClaim; + i.JobMetaNonWarranty_RepairerName = j.JobMetaNonWarranty.RepairerName; + if (j.JobMetaInsurance != null) + { + i.JobMetaInsurance_ClaimFormSentDate = j.JobMetaInsurance.ClaimFormSentDate; + } + } + + } + if (j.User != null) + { + i.UserId = j.UserId; + i.UserDisplayName = j.User.DisplayName; + } + if (j.OpenedTechUser != null) + { + i.OpenedTechUserId = j.OpenedTechUserId; + i.OpenedTechUserDisplayName = j.OpenedTechUser.DisplayName; + } + + return i; + } + + public static string CalculateStatusId(this Job j) + { + return j.ToJobTableItemModelIncludeStatus().CalculateStatusId(); + } + + public static string CalculateStatusId(this JobTableModel.JobTableItemModelIncludeStatus j) + { + if (j.ClosedDate.HasValue) + return Job.JobStatusIds.Closed; + + if (j.TypeId == JobType.JobTypeIds.HWar) + { + if (!string.IsNullOrEmpty(j.JobMetaWarranty_ExternalReference) && !j.JobMetaWarranty_ExternalCompletedDate.HasValue) + return Job.JobStatusIds.AwaitingWarrantyRepair; // Job Logged - but not marked as completed + } + + if (j.TypeId == JobType.JobTypeIds.HNWar) + { + if (j.JobMetaNonWarranty_RepairerLoggedDate.HasValue && !j.JobMetaNonWarranty_RepairerCompletedDate.HasValue) + return Job.JobStatusIds.AwaitingRepairs; // Repairs logged - but not complete + if (j.JobMetaNonWarranty_AccountingChargeAddedDate.HasValue && !j.JobMetaNonWarranty_AccountingChargePaidDate.HasValue) + return Job.JobStatusIds.AwaitingAccountingPayment; // Accounting Charge Added, but not paid + if (j.JobMetaNonWarranty_AccountingChargeRequiredDate.HasValue && (!j.JobMetaNonWarranty_AccountingChargePaidDate.HasValue || !j.JobMetaNonWarranty_AccountingChargeAddedDate.HasValue)) + return Job.JobStatusIds.AwaitingAccountingCharge; // Accounting Charge Required, but not added or paid + if (j.JobMetaNonWarranty_RepairerLoggedDate.HasValue && j.JobMetaNonWarranty_IsInsuranceClaim.Value && !j.JobMetaInsurance_ClaimFormSentDate.HasValue) + return Job.JobStatusIds.AwaitingInsuranceProcessing; // Is insurance claim, but no Claim Form Sent + } + + if (j.WaitingForUserAction.HasValue) + return Job.JobStatusIds.AwaitingUserAction; // Awaiting for User + + if (j.DeviceReadyForReturn.HasValue && !j.DeviceReturnedDate.HasValue) + return Job.JobStatusIds.AwaitingDeviceReturn; // Device not returned to User + + return Job.JobStatusIds.Open; + } + + public static List AvailableDocumentTemplates(this Job j, DiscoDataContext dbContext, User User, DateTime TimeStamp) + { + var dts = dbContext.DocumentTemplates.Include("JobSubTypes") + .Where(dt => dt.Scope == DocumentTemplate.DocumentTemplateScopes.Job) + .ToList(); + + foreach (var dt in dts.ToArray()) + { + if (dt.JobSubTypes.Count != 0) + { // Filter Applied + bool match = false; + foreach (var st in j.JobSubTypes) + { + if (dt.JobSubTypes.Contains(st)) + { + match = true; + break; + } + } + if (!match) + dts.Remove(dt); + } + } + + // Evaluate Filters + dts = dts.Where(dt => dt.FilterExpressionMatches(j, dbContext, User, TimeStamp, DocumentState.DefaultState())).ToList(); + + return dts; + } + + public static DateTime ValidateDateAfterOpened(this Job j, DateTime d) + { + if (d < j.OpenedDate) + { + if (d > j.OpenedDate.AddMinutes(-1)) + return j.OpenedDate; + else + throw new ArgumentException("The Date must be >= the Open Date.", "d"); + } + return d; + } + + public static string GenerateFaultDescription(this Job j, DiscoDataContext dbContext) + { + StringBuilder sb = new StringBuilder(); + + sb.AppendLine("Faulty Components:"); + foreach (var jst in j.JobSubTypes) + sb.Append("- ").AppendLine(jst.Description).AppendLine(" - "); + + return sb.ToString(); + } + + public static string GenerateFaultDescriptionFooter(this Job j, DiscoDataContext dbContext, PluginFeatureManifest WarrantyProviderDefinition) + { + var versionDisco = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version; + return string.Format("Automation by Disco v{0}.{1:0000}.{2:0000} (Provider: {3} v{4})", + versionDisco.Major, versionDisco.Minor, versionDisco.Build, WarrantyProviderDefinition.Id, WarrantyProviderDefinition.PluginManifest.Version.ToString(3)); + } + + public static void UpdateSubTypes(this Job j, DiscoDataContext dbContext, List SubTypes, bool AddComponents, User TechUser) + { + if (SubTypes == null || SubTypes.Count == 0) + throw new ArgumentException("The Job must contain at least one Sub Type"); + + List addedSubTypes = new List(); + List removedSubTypes = new List(); + + // Removed Sub Types + foreach (var t in j.JobSubTypes.ToArray()) + if (!SubTypes.Contains(t)) + { + removedSubTypes.Add(t); + j.JobSubTypes.Remove(t); + } + // Added Sub Types + foreach (var t in SubTypes) + if (!j.JobSubTypes.Contains(t)) + { + addedSubTypes.Add(t); + j.JobSubTypes.Add(t); + } + + // Write Log + if (addedSubTypes.Count > 0 || removedSubTypes.Count > 0) + { + StringBuilder logBuilder = new StringBuilder(); + logBuilder.AppendLine("Updated Job Sub Types"); + if (removedSubTypes.Count > 0) + { + logBuilder.AppendLine("Removed:"); + foreach (var t in removedSubTypes) + logBuilder.Append("- ").AppendLine(t.ToString()); + } + if (addedSubTypes.Count > 0) + { + logBuilder.AppendLine("Added:"); + foreach (var t in addedSubTypes) + logBuilder.Append("- ").AppendLine(t.ToString()); + } + dbContext.JobLogs.Add(new JobLog() + { + JobId = j.Id, + TechUserId = TechUser.Id, + Timestamp = DateTime.Now, + Comments = logBuilder.ToString() + }); + } + + // Add Components + if (AddComponents && addedSubTypes.Count > 0 && j.DeviceSerialNumber != null) + { + var components = dbContext.DeviceComponents.Include("JobSubTypes").Where(c => !c.DeviceModelId.HasValue || c.DeviceModelId == j.Device.DeviceModelId); + var addedComponents = new List(); + foreach (var c in components) + { + foreach (var st in c.JobSubTypes) + { + foreach (var jst in addedSubTypes) + { + if (st.JobTypeId == jst.JobTypeId && st.Id == jst.Id) + { + addedComponents.Add(c); + break; + } + } + if (addedComponents.Contains(c)) + break; + } + } + foreach (var c in addedComponents) + { + if (!j.JobComponents.Any(jc => jc.Description.Equals(c.Description, StringComparison.InvariantCultureIgnoreCase))) + { // Job Component with matching Description doesn't exist. + dbContext.JobComponents.Add(new JobComponent() + { + Job = j, + TechUserId = TechUser.Id, + Cost = c.Cost, + Description = c.Description + }); + } + } + } + } + + } +} diff --git a/Disco.BI/BI/Extensions/JobFlagExtensions.cs b/Disco.BI/BI/Extensions/JobFlagExtensions.cs new file mode 100644 index 00000000..ad47df74 --- /dev/null +++ b/Disco.BI/BI/Extensions/JobFlagExtensions.cs @@ -0,0 +1,80 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Models.Repository; +using System.ComponentModel.DataAnnotations; + +namespace Disco.BI.Extensions +{ + public static class JobFlagExtensions + { + + private static Dictionary> allFlags; + private static void CacheAllFlags() + { + if (allFlags == null) + { + var fType = typeof(Job.UserManagementFlags); + var fMembers = fType.GetFields(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static); + + var flags = new Dictionary>(); + foreach (var f in fMembers) + { + DisplayAttribute display = (DisplayAttribute)(f.GetCustomAttributes(typeof(DisplayAttribute), false)[0]); + string gn = display.GroupName; + Dictionary g; + if (!flags.TryGetValue(gn, out g)) + { + g = new Dictionary(); + flags.Add(gn, g); + } + g[(long)f.GetRawConstantValue()] = display.Name; + } + allFlags = flags; + } + } + + public static Dictionary>> ValidFlagsGrouped(this Job j) + { + Dictionary>> validFlags = new Dictionary>>(); + + CacheAllFlags(); + + var currentFlags = j.Flags ?? 0; + + foreach (var jt in j.JobSubTypes) + { + Dictionary g; + if (allFlags.TryGetValue(jt.Id, out g)) + { + validFlags[jt.Id] = g.Select(f => new Tuple(f.Key, f.Value, ((currentFlags & f.Key) == f.Key))).ToList(); + } + else + { + validFlags[jt.Id] = null; + } + } + return validFlags; + } + public static Dictionary> ValidFlags(this Job j) + { + Dictionary> validFlags = new Dictionary>(); + + CacheAllFlags(); + + var currentFlags = j.Flags ?? 0; + + foreach (var jt in j.JobSubTypes) + { + Dictionary g; + if (allFlags.TryGetValue(jt.Id, out g)) + { + foreach (var f in g) + validFlags[f.Key] = new Tuple(string.Format("{0}: {1}", jt.Description, f.Value), ((currentFlags & f.Key) == f.Key)); + } + } + return validFlags; + } + } +} diff --git a/Disco.BI/BI/Extensions/JobTableExtensions.cs b/Disco.BI/BI/Extensions/JobTableExtensions.cs new file mode 100644 index 00000000..0fdccdd2 --- /dev/null +++ b/Disco.BI/BI/Extensions/JobTableExtensions.cs @@ -0,0 +1,94 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Models.BI.Job; +using Disco.Models.Repository; +using Disco.Data.Repository; + +namespace Disco.BI.Extensions +{ + public static class JobTableExtensions + { + + public static void Fill(this JobTableModel model, DiscoDataContext dbContext, IQueryable Jobs) + { + if (model.ShowStatus) + { + + var jobItems = Jobs.Select(j => new JobTableModel.JobTableItemModelIncludeStatus() + { + Id = j.Id, + DeviceAddressId = j.Device.DeviceProfile.DefaultOrganisationAddress, + OpenedDate = j.OpenedDate, + ClosedDate = j.ClosedDate, + TypeId = j.JobTypeId, + TypeDescription = j.JobType.Description, + DeviceSerialNumber = j.Device.SerialNumber, + DeviceModelDescription = j.Device.DeviceModel.Description, + UserId = j.UserId, + UserDisplayName = j.User.DisplayName, + OpenedTechUserId = j.OpenedTechUserId, + OpenedTechUserDisplayName = j.OpenedTechUser.DisplayName, + Location = j.DeviceHeldLocation, + + JobMetaWarranty_ExternalReference = j.JobMetaWarranty.ExternalReference, + JobMetaWarranty_ExternalCompletedDate = j.JobMetaWarranty.ExternalCompletedDate, + JobMetaNonWarranty_RepairerLoggedDate = j.JobMetaNonWarranty.RepairerLoggedDate, + JobMetaNonWarranty_RepairerCompletedDate = j.JobMetaNonWarranty.RepairerCompletedDate, + JobMetaNonWarranty_AccountingChargeAddedDate = j.JobMetaNonWarranty.AccountingChargeAddedDate, + JobMetaNonWarranty_AccountingChargePaidDate = j.JobMetaNonWarranty.AccountingChargePaidDate, + JobMetaNonWarranty_AccountingChargeRequiredDate = j.JobMetaNonWarranty.AccountingChargeRequiredDate, + JobMetaNonWarranty_IsInsuranceClaim = j.JobMetaNonWarranty.IsInsuranceClaim, + JobMetaInsurance_ClaimFormSentDate = j.JobMetaInsurance.ClaimFormSentDate, + + WaitingForUserAction = j.WaitingForUserAction, + DeviceReadyForReturn = j.DeviceReadyForReturn, + DeviceHeld = j.DeviceHeld, + DeviceReturnedDate = j.DeviceReturnedDate, + JobMetaWarranty_ExternalName = j.JobMetaWarranty.ExternalName, + JobMetaNonWarranty_RepairerName = j.JobMetaNonWarranty.RepairerName + }); + + model.Items = new List(); + foreach (var j in jobItems) + { + j.StatusId = j.CalculateStatusId(); + j.StatusDescription = JobBI.Utilities.JobStatusDescription(j.StatusId, j); + + model.Items.Add(j); + } + } + else + { + model.Items = Jobs.Select(j => new JobTableModel.JobTableItemModel() + { + Id = j.Id, + DeviceAddressId = j.Device.DeviceProfile.DefaultOrganisationAddress, + OpenedDate = j.OpenedDate, + ClosedDate = j.ClosedDate, + TypeId = j.JobTypeId, + TypeDescription = j.JobType.Description, + DeviceSerialNumber = j.Device.SerialNumber, + DeviceModelDescription = j.Device.DeviceModel.Description, + UserId = j.UserId, + UserDisplayName = j.User.DisplayName, + OpenedTechUserId = j.OpenedTechUserId, + OpenedTechUserDisplayName = j.OpenedTechUser.DisplayName, + Location = j.DeviceHeldLocation + }).ToList(); + } + + if (!model.ShowDeviceAddress.HasValue) + model.ShowDeviceAddress = dbContext.DiscoConfiguration.MultiSiteMode; + + if (model.ShowDeviceAddress.Value) + { + foreach (var j in model.Items) + if (j.DeviceAddressId.HasValue) + j.DeviceAddress = dbContext.DiscoConfiguration.OrganisationAddresses.GetAddress(j.DeviceAddressId.Value).Name; + } + } + + } +} diff --git a/Disco.BI/BI/Extensions/UserExtensions.cs b/Disco.BI/BI/Extensions/UserExtensions.cs new file mode 100644 index 00000000..5e2e5254 --- /dev/null +++ b/Disco.BI/BI/Extensions/UserExtensions.cs @@ -0,0 +1,65 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Models.Repository; +using Disco.Data.Repository; +using System.IO; +using Disco.Models.BI.DocumentTemplates; +using Disco.Models.Interop.ActiveDirectory; + +namespace Disco.BI.Extensions +{ + public static class UserExtensions + { + public static UserAttachment CreateAttachment(this User User, DiscoDataContext dbContext, User CreatorUser, string Filename, string MimeType, string Comments, Stream Content, DocumentTemplate DocumentTemplate = null, byte[] PdfThumbnail = null) + { + if (string.IsNullOrEmpty(MimeType) || MimeType.Equals("unknown/unknown", StringComparison.InvariantCultureIgnoreCase)) + MimeType = Interop.MimeTypes.ResolveMimeType(Filename); + + UserAttachment ua = new UserAttachment() + { + UserId = User.Id, + TechUserId = CreatorUser.Id, + Filename = Filename, + MimeType = MimeType, + Timestamp = DateTime.Now, + Comments = Comments + }; + + if (DocumentTemplate != null) + ua.DocumentTemplateId = DocumentTemplate.Id; + + dbContext.UserAttachments.Add(ua); + dbContext.SaveChanges(); + + ua.SaveAttachment(dbContext, Content); + Content.Position = 0; + if (PdfThumbnail == null) + ua.GenerateThumbnail(dbContext, Content); + else + ua.SaveThumbnailAttachment(dbContext, PdfThumbnail); + + return ua; + } + + public static List AvailableDocumentTemplates(this User u, DiscoDataContext dbContext, User User, DateTime TimeStamp) + { + var dts = dbContext.DocumentTemplates.Include("JobSubTypes") + .Where(dt => dt.Scope == DocumentTemplate.DocumentTemplateScopes.User) + .ToArray() + .Where(dt => dt.FilterExpressionMatches(u, dbContext, User, TimeStamp, DocumentState.DefaultState())).ToList(); + + return dts; + } + + public static List CurrentDeviceUserAssignments(this User u) + { + return u.DeviceUserAssignments.Where(dua => !dua.UnassignedDate.HasValue).ToList(); + } + public static ActiveDirectoryUserAccount ActiveDirectoryAccount(this User User, params string[] AdditionalProperties) + { + return Interop.ActiveDirectory.ActiveDirectory.GetUserAccount(User.Id, AdditionalProperties); + } + } +} diff --git a/Disco.BI/BI/Extensions/UtilityExtensions.cs b/Disco.BI/BI/Extensions/UtilityExtensions.cs new file mode 100644 index 00000000..9a901b77 --- /dev/null +++ b/Disco.BI/BI/Extensions/UtilityExtensions.cs @@ -0,0 +1,313 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.IO; +using System.Drawing.Imaging; + +namespace Disco.BI.Extensions +{ + public static class UtilityExtensions + { + + public static string StreamToString(this System.IO.Stream stream) + { + if (stream.Position != 0 && stream.CanSeek) + { + stream.Position = 0; + } + using (System.IO.StreamReader sr = new System.IO.StreamReader(stream)) + { + return sr.ReadToEnd(); + } + } + + #region Date/Time Extensions + public static string ToFuzzy(this DateTime d) + { + var n = DateTime.Now; + + // Today + if (d.Date == n.Date) + { + if (d < n) + { + // Earlier + if (d > n.AddMinutes(-1)) + return "A moment ago"; + + if (d > n.AddMinutes(-10)) + return "A few minutes ago"; + } + else + { + // Later + if (d < n.AddMinutes(1)) + return "In a moment"; + + if (d < n.AddMinutes(10)) + return "In a few minutes"; + } + + return string.Format("Today at {0:h:mm tt}", d); + } + + if (d.Date < n.Date) + { + // PAST + var dif = n.Subtract(d); + + // Yesterday + if (d.Date == n.Date.AddDays(-1)) + return string.Format("Yesterday at {0:h:mm tt}", d); + // Last Week + if (dif.TotalDays <= 7) + return string.Format("Last {0:dddd} at {0:h:mm tt}", d); + // Within 8 Weeks + if (d > n.Date.AddMonths(-2)) + return string.Format("{0} Weeks ago, {1:ddd, d MMM}", (int)(dif.TotalDays / 7), d); + // Same Year + if (d.Year == n.Year) + return string.Format("{0} Months ago, {1:ddd, d MMM}", (int)(dif.TotalDays / 30), d); + } + else + { + // Future + var dif = d.Subtract(n); + + // Tomorrow + if (d.Date == n.Date.AddDays(1)) + return string.Format("Tomorrow at {0:h:mm tt}", d); + // Next Week + if (dif.TotalDays <= 7) + return string.Format("Next {0:dddd} at {0:h:mm tt}", d); + // < 2 Month + if (d < n.Date.AddMonths(2)) + return string.Format("In {0} Weeks, {1:ddd, d MMM}", (int)(dif.TotalDays / 7), d); + // Same Year + if (d.Year == n.Year) + return string.Format("In {0} Months, {1:ddd, d MMM}", (int)(dif.TotalDays / 30), d); + } + + return d.ToString("ddd, d MMM yyyy"); + } + public static string ToFuzzy(this DateTime? d, string NullValue = "N/A") + { + if (d.HasValue) + return ToFuzzy(d.Value); + else + return NullValue; + } + public static string ToFullDateTime(this DateTime d) + { + return d.ToString("ddd, d MMM yyyy @ h:mm:sstt"); + } + public static string ToFullDateTime(this DateTime? d, string NullValue = "N/A") + { + if (d.HasValue) + return ToFullDateTime(d.Value); + else + return NullValue; + } + public static long ToSortableDateTime(this DateTime? d) + { + if (d.HasValue) + return d.Value.ToBinary(); + else + return -1; + } + public static long ToSortableDateTime(this DateTime d) + { + return d.ToBinary(); + } + #endregion + + #region Image Extensions + public static Bitmap ResizeImage(this Image Source, int Width, int Height, Brush BackgroundColor = null) + { + Bitmap destination = new Bitmap(Width, Height); + destination.SetResolution(72, 72); + using (Graphics destinationGraphics = Graphics.FromImage(destination)) + { + destinationGraphics.CompositingQuality = CompositingQuality.HighQuality; + destinationGraphics.InterpolationMode = InterpolationMode.HighQualityBicubic; + destinationGraphics.SmoothingMode = SmoothingMode.HighQuality; + + if (BackgroundColor != null) + destinationGraphics.FillRectangle(BackgroundColor, destinationGraphics.VisibleClipBounds); + + float ratio = Math.Min((float)(destination.Width) / (float)(Source.Width), (float)(destination.Height) / (float)(Source.Height)); + + destinationGraphics.DrawImageResized(Source, ratio); + } + + return destination; + } + public static void DrawImageResized(this Graphics graphics, Image SourceImage, float? Scale = null, float LocationX = -1, float LocationY = -1) + { + RectangleF clipBounds = graphics.VisibleClipBounds; + if (Scale == null) // Calculate Scale + Scale = Math.Min(clipBounds.Width / SourceImage.Width, clipBounds.Height / SourceImage.Height); + float newWidth = SourceImage.Width * Scale.Value; + float newHeight = SourceImage.Height * Scale.Value; + float newLeft = LocationX; + float newTop = LocationY; + + if (newLeft < 0 || newTop < 0) + { + if (newWidth < clipBounds.Width) + newLeft = (clipBounds.Width - newWidth) / 2; + else + newLeft = 0; + if (newHeight < clipBounds.Height) + newTop = (clipBounds.Height - newHeight) / 2; + else + newTop = 0; + } + newLeft += clipBounds.Left; + newTop += clipBounds.Top; + + graphics.DrawImage(SourceImage, new RectangleF(newLeft, newTop, newWidth, newHeight), new RectangleF(0, 0, SourceImage.Width, SourceImage.Height), GraphicsUnit.Pixel); + } + public static void EmbedIconOverlay(this Image Source, Image Icon) + { + int top = Math.Max(0, Source.Height - Icon.Height); + int left = Math.Max(0, Source.Width - Icon.Width); + + using (Graphics sourceGraphics = Graphics.FromImage(Source)) + { + sourceGraphics.DrawImage(Icon, left, top); + } + } + public static void SavePng(this Image Source, string Filename) + { + using (FileStream outStream = new FileStream(Filename, FileMode.Create, FileAccess.Write, FileShare.None)) + { + SavePng(Source, outStream); + outStream.Flush(); + outStream.Close(); + } + } + public static void SavePng(this Image Source, Stream OutStream) + { + Source.Save(OutStream, ImageFormat.Png); + } + public static Stream SavePng(this Image Source) + { + MemoryStream outStream = new MemoryStream(); + Source.SavePng(outStream); + outStream.Position = 0; + return outStream; + } + public static Stream SaveJpg(this Image Source, int Quality) + { + MemoryStream outStream = new MemoryStream(); + Source.SaveJpg(Quality, outStream); + outStream.Position = 0; + return outStream; + } + public static void SaveJpg(this Image Source, int Quality, string Filename) + { + using (FileStream outStream = new FileStream(Filename, FileMode.Create, FileAccess.Write, FileShare.None)) + { + SaveJpg(Source, Quality, outStream); + outStream.Flush(); + outStream.Close(); + } + } + public static void SaveJpg(this Image Source, int Quality, Stream OutStream) + { + ImageCodecInfo jpgCodec = ImageCodecInfo.GetImageEncoders().Where(c => c.MimeType.Equals("image/jpeg", StringComparison.InvariantCultureIgnoreCase)).FirstOrDefault(); + if (jpgCodec != null) + { + if (Quality < 0 || Quality > 100) + throw new ArgumentOutOfRangeException("Quality", "Quality must be a positive integer <= 100"); + using (EncoderParameters ep = new EncoderParameters(1)) + { + ep.Param[0] = new EncoderParameter(Encoder.Quality, Quality); + Source.Save(OutStream, jpgCodec, ep); + } + } + else + { + // Fallback + Source.Save(OutStream, ImageFormat.Jpeg); + } + } + public static ImageMontage BuildImageMontage(this IEnumerable Images, int MaxHeight = -1, int MaxWidth = -1, bool EnforceDimensions = false) + { + if (EnforceDimensions && (MaxHeight < 0 || MaxWidth < 0)) + throw new ArgumentOutOfRangeException("EnforceDimensions", "Dimensions can only be enforced when a MaxHeight and MaxWidth is supplied"); + + Dictionary imageLocations = new Dictionary(); + double imageScale = 1.0; + int totalHeight = Images.Max(i => i.Height); + int totalWidth = Images.Sum(i => i.Width); + if (MaxHeight > 0 && totalHeight > MaxHeight) + { + imageScale = (double)MaxHeight / (double)totalHeight; + } + if (MaxWidth > 0 && totalWidth > MaxWidth) + { + imageScale = System.Math.Min(imageScale, (double)MaxWidth / (double)totalWidth); + } + int scaledHeight = EnforceDimensions ? MaxHeight : (int)System.Math.Round((double)totalHeight * imageScale); + int scaledWidth = EnforceDimensions ? MaxWidth : (int)System.Math.Round((double)totalWidth * imageScale); + System.Drawing.Bitmap imageResult = new System.Drawing.Bitmap(scaledWidth, scaledHeight); + imageResult.SetResolution(72f, 72f); + + using (Graphics g = Graphics.FromImage(imageResult)) + { + g.FillRectangle(Brushes.White, new Rectangle(Point.Empty, imageResult.Size)); + + int imageResultNextOffset = 0; + foreach (Image i in Images) + { + Rectangle imagePosition = new Rectangle(imageResultNextOffset, 0, (int)System.Math.Round((double)i.Width * imageScale), (int)System.Math.Round((double)i.Height * imageScale)); + System.Drawing.Rectangle imageSize = new System.Drawing.Rectangle(0, 0, i.Width, i.Height); + g.DrawImage(i, imagePosition, imageSize, System.Drawing.GraphicsUnit.Pixel); + imageLocations[i] = imageResultNextOffset; + imageResultNextOffset += imagePosition.Width; + } + } + + return new ImageMontage() { Montage = imageResult, MontageScale = imageScale, MontageSourceImageOffsets = imageLocations }; + } + public class ImageMontage : IDisposable + { + + public Image Montage { get; set; } + public double MontageScale { get; set; } + public Dictionary MontageSourceImageOffsets { get; set; } + + public void Dispose() + { + if (Montage != null) + { + Montage.Dispose(); + Montage = null; + } + if (MontageSourceImageOffsets != null) + { + MontageSourceImageOffsets.Clear(); + MontageSourceImageOffsets = null; + } + } + } + + public static Color InterpolateColours(this Color Start, Color End, double Progress) + { + if (Progress > 1 || Progress < 0) + throw new ArgumentOutOfRangeException("Progress", "Progress must be >= 0 && <= 1"); + + return Color.FromArgb( + (byte)(Start.A * (1 - Progress) + (End.A * Progress)), + (byte)(Start.R * (1 - Progress) + (End.R * Progress)), + (byte)(Start.G * (1 - Progress) + (End.G * Progress)), + (byte)(Start.B * (1 - Progress) + (End.B * Progress)) + ); + } + #endregion + } +} diff --git a/Disco.BI/BI/Extensions/WirelessCertificateExtensions.cs b/Disco.BI/BI/Extensions/WirelessCertificateExtensions.cs new file mode 100644 index 00000000..d6cb268b --- /dev/null +++ b/Disco.BI/BI/Extensions/WirelessCertificateExtensions.cs @@ -0,0 +1,18 @@ +using Disco.Models.Repository; +using System; +using System.Security.Cryptography.X509Certificates; +namespace Disco.BI.Extensions +{ + public static class WirelessCertificateExtensions + { + public static System.DateTime? CertificateExpirationDate(this DeviceCertificate wc) + { + if (wc.Content == null || wc.Content.Length == 0) + { + return null; + } + X509Certificate2 c = new X509Certificate2(wc.Content, "password"); + return c.NotAfter; + } + } +} diff --git a/Disco.BI/BI/Interop/ActiveDirectory/ActiveDirectory.cs b/Disco.BI/BI/Interop/ActiveDirectory/ActiveDirectory.cs new file mode 100644 index 00000000..15eb38db --- /dev/null +++ b/Disco.BI/BI/Interop/ActiveDirectory/ActiveDirectory.cs @@ -0,0 +1,397 @@ +using Disco.Models.Interop.ActiveDirectory; +using Disco.BI.DeviceBI; +using System; +using System.Collections; +using System.Collections.Generic; +using System.Diagnostics; +using System.DirectoryServices; +using System.Linq; +using System.IO; + +namespace Disco.BI.Interop.ActiveDirectory +{ + public static class ActiveDirectory + { + public static ActiveDirectoryMachineAccount GetMachineAccount(string ComputerName, System.Guid? UUIDNetbootGUID = null, System.Guid? MacAddressNetbootGUID = null, params string[] AdditionalProperties) + { + if (string.IsNullOrWhiteSpace(ComputerName)) + throw new System.ArgumentException("Invalid Computer Name - Empty", "ComputerName"); + if (ComputerName.Contains("\\")) + ComputerName = ComputerName.Substring(checked(ComputerName.IndexOf("\\") + 1)); + if (ComputerName.Length > 24) + throw new System.ArgumentException("Invalid Computer Name - Length > 24", "ComputerName"); + string sAMAccountName = ComputerName; + if (!sAMAccountName.EndsWith("$")) + sAMAccountName = string.Format("{0}$", sAMAccountName); + + using (DirectoryEntry dRootEntry = ActiveDirectoryHelpers.DefaultLdapRoot) + { + var loadProperties = new List { "name", "distinguishedName", "sAMAccountName", "objectSid", "dNSHostName", "netbootGUID", "isCriticalSystemObject" }; + loadProperties.AddRange(AdditionalProperties); + using (DirectorySearcher dSearcher = new DirectorySearcher(dRootEntry, string.Format("(&(objectClass=computer)(sAMAccountName={0}))", ActiveDirectoryHelpers.EscapeLdapQuery(sAMAccountName)), loadProperties.ToArray(), SearchScope.Subtree)) + { + SearchResult dResult = dSearcher.FindOne(); + if (dResult != null) + { + return ActiveDirectory.DirectorySearchResultToMachineAccount(dResult, AdditionalProperties); + } + } + + if (UUIDNetbootGUID.HasValue) + { + using (DirectorySearcher dSearcher = new DirectorySearcher(dRootEntry, string.Format("(&(objectClass=computer)(netbootGUID={0}))", ActiveDirectoryHelpers.FormatGuidForLdapQuery(UUIDNetbootGUID.Value)), loadProperties.ToArray(), SearchScope.Subtree)) + { + SearchResult dResult = dSearcher.FindOne(); + if (dResult != null) + { + return ActiveDirectory.DirectorySearchResultToMachineAccount(dResult, AdditionalProperties); + } + } + } + if (MacAddressNetbootGUID.HasValue) + { + using (DirectorySearcher dSearcher = new DirectorySearcher(dRootEntry, string.Format("(&(objectClass=computer)(netbootGUID={0}))", ActiveDirectoryHelpers.FormatGuidForLdapQuery(MacAddressNetbootGUID.Value)), loadProperties.ToArray(), SearchScope.Subtree)) + { + SearchResult dResult = dSearcher.FindOne(); + if (dResult != null) + { + return ActiveDirectory.DirectorySearchResultToMachineAccount(dResult, AdditionalProperties); + } + } + } + + } + + return null; + } + private static ActiveDirectoryMachineAccount DirectorySearchResultToMachineAccount(SearchResult result, params string[] AdditionalProperties) + { + string name = result.Properties["name"][0].ToString(); + string sAMAccountName = result.Properties["sAMAccountName"][0].ToString(); + string distinguishedName = result.Properties["distinguishedName"][0].ToString(); + string objectSid = ActiveDirectoryHelpers.ConvertBytesToSIDString((byte[])result.Properties["objectSid"][0]); + + var dNSNameProperty = result.Properties["dNSHostName"]; + string dNSName = null; + if (dNSNameProperty.Count > 0) + dNSName = dNSNameProperty[0].ToString(); + else + dNSName = string.Format("{0}.{1}", sAMAccountName.TrimEnd('$'), ActiveDirectoryHelpers.DefaultDomainQualifiedName); + + bool isCriticalSystemObject = (bool)result.Properties["isCriticalSystemObject"][0]; + + System.Guid netbootGUIDResult = default(System.Guid); + ResultPropertyValueCollection netbootGUIDProp = result.Properties["netbootGUID"]; + if (netbootGUIDProp.Count > 0) + { + netbootGUIDResult = new System.Guid((byte[])netbootGUIDProp[0]); + } + + // Additional Properties + Dictionary additionalProperties = new Dictionary(); + foreach (string propertyName in AdditionalProperties) + { + var property = result.Properties[propertyName]; + var propertyValues = new List(); + for (int index = 0; index < property.Count; index++) + propertyValues.Add(property[index]); + additionalProperties.Add(propertyName, propertyValues.ToArray()); + } + + return new ActiveDirectoryMachineAccount + { + Name = name, + DistinguishedName = distinguishedName, + sAMAccountName = sAMAccountName, + ObjectSid = objectSid, + NetbootGUID = netbootGUIDResult, + Path = result.Path, + Domain = ActiveDirectoryHelpers.DefaultDomainNetBiosName, + DnsName = dNSName, + IsCriticalSystemObject = isCriticalSystemObject, + LoadedProperties = additionalProperties + }; + } + private static ActiveDirectoryUserAccount SearchResultToActiveDirectoryUserAccount(SearchResult result, params string[] AdditionalProperties) + { + string name = result.Properties["name"][0].ToString(); + string username = result.Properties["sAMAccountName"][0].ToString(); + string distinguishedName = result.Properties["distinguishedName"][0].ToString(); + string objectSid = ActiveDirectoryHelpers.ConvertBytesToSIDString((byte[])result.Properties["objectSid"][0]); + + ResultPropertyValueCollection displayNameProp = result.Properties["displayName"]; + string displayName = username; + if (displayNameProp.Count > 0) + displayName = displayNameProp[0].ToString(); + string surname = null; + ResultPropertyValueCollection surnameProp = result.Properties["sn"]; + if (surnameProp.Count > 0) + surname = surnameProp[0].ToString(); + string givenName = null; + ResultPropertyValueCollection givenNameProp = result.Properties["givenName"]; + if (givenNameProp.Count > 0) + givenName = givenNameProp[0].ToString(); + string email = null; + ResultPropertyValueCollection emailProp = result.Properties["mail"]; + if (emailProp.Count > 0) + email = emailProp[0].ToString(); + string phone = null; + ResultPropertyValueCollection phoneProp = result.Properties["telephoneNumber"]; + if (phoneProp.Count > 0) + phone = phoneProp[0].ToString(); + + IEnumerable groupCNs = result.Properties["memberOf"].Cast(); + List groups = ActiveDirectoryCachedGroups.GetGroups(groupCNs).Select(g => g.ToLower()).ToList(); + + //foreach (string groupCN in result.Properties["memberOf"]) + //{ + // Removed 2012-11-30 G# - Moved to Recursive Cache + //var groupCNlower = groupCN.ToLower(); + //if (groupCNlower.StartsWith("cn=")) + // groups.Add(groupCNlower.Substring(3, groupCNlower.IndexOf(",") - 3)); + // End Removed 2012-11-30 G# + //} + + string type = null; + if (groups.Contains("domain admins") || groups.Contains("disco admins")) + { + type = "Admin"; + } + else + { + if (groups.Contains("staff")) + { + type = "Staff"; + } + else + { + if (groups.Contains("students")) + { + type = "Student"; + } + } + } + + // Additional Properties + Dictionary additionalProperties = new Dictionary(); + foreach (string propertyName in AdditionalProperties) + { + var property = result.Properties[propertyName]; + var propertyValues = new List(); + for (int index = 0; index < property.Count; index++) + propertyValues.Add(property[index]); + additionalProperties.Add(propertyName, propertyValues.ToArray()); + } + + return new ActiveDirectoryUserAccount + { + Domain = ActiveDirectoryHelpers.DefaultDomainNetBiosName, + Name = name, + Surname = surname, + GivenName = givenName, + Email = email, + Phone = phone, + DistinguishedName = distinguishedName, + sAMAccountName = username, + DisplayName = displayName, + ObjectSid = objectSid, + Type = type, + Path = result.Path, + LoadedProperties = additionalProperties + }; + } + public static ActiveDirectoryUserAccount GetUserAccount(string Username, params string[] AdditionalProperties) + { + if (string.IsNullOrWhiteSpace(Username)) + throw new System.ArgumentException("Invalid User Account", "Username"); + string sAMAccountName = Username; + if (sAMAccountName.Contains("\\")) + sAMAccountName = sAMAccountName.Substring(checked(sAMAccountName.IndexOf("\\") + 1)); + + using (DirectoryEntry dRootEntry = ActiveDirectoryHelpers.DefaultLdapRoot) + { + var loadProperties = new List { + "name", + "distinguishedName", + "sAMAccountName", + "objectSid", + "displayName", + "sn", + "givenName", + "memberOf", + "mail", + "telephoneNumber" + }; + loadProperties.AddRange(AdditionalProperties); + using (DirectorySearcher dSearcher = new DirectorySearcher(dRootEntry, string.Format("(&(objectClass=user)(sAMAccountName={0}))", ActiveDirectoryHelpers.EscapeLdapQuery(sAMAccountName)), loadProperties.ToArray(), SearchScope.Subtree)) + { + SearchResult dResult = dSearcher.FindOne(); + if (dResult != null) + return ActiveDirectory.SearchResultToActiveDirectoryUserAccount(dResult, AdditionalProperties); + else + return null; + } + } + } + public static string OfflineDomainJoinProvision(ref ActiveDirectoryMachineAccount ExistingAccount, string ComputerName, string OrganisationalUnit = null, string EnrolSessionId = null) + { + if (ExistingAccount != null && ExistingAccount.IsCriticalSystemObject) + throw new InvalidOperationException(string.Format("This account {0} is a Critical System Active Directory Object and Disco refuses to modify it", ExistingAccount.DistinguishedName)); + + string DJoinResult = null; + if (string.IsNullOrWhiteSpace(ComputerName) || ComputerName.Length > 24) + throw new System.ArgumentException("Invalid Computer Name; > 0 and <= 24", "ComputerName"); + + // Added 2012-10-25 G# + // Ensure Specified OU Exists + if (!string.IsNullOrEmpty(OrganisationalUnit)) + { + var ouPath = string.Format("{0}{1},{2}", ActiveDirectoryHelpers.DefaultLdapPath, OrganisationalUnit, ActiveDirectoryHelpers.DefaultDomainQualifiedName); + try + { + using (DirectoryEntry ou = new DirectoryEntry(ouPath)) + { + if (ou == null) + { + throw new Exception("OU's Directory Entry couldn't be found"); + } + } + } + catch (Exception ex) + { + throw new ArgumentException(string.Format("An error occurred while trying to locate the specified OU: {0}", ouPath), "OrganisationalUnit", ex); + } + } + // End Added 2012-10-25 G# + + // Delete Existing + if (ExistingAccount != null) + ExistingAccount.DeleteAccount(); + + string tempFileName = System.IO.Path.GetTempFileName(); + string argumentOU = (!string.IsNullOrWhiteSpace(OrganisationalUnit)) ? string.Format(" /MACHINEOU \"{0},{1}\"", OrganisationalUnit, ActiveDirectoryHelpers.DefaultDomainQualifiedName) : string.Empty; + string arguments = string.Format("/PROVISION /DOMAIN \"{0}\" /DCNAME \"{1}\" /MACHINE \"{2}\"{3} /REUSE /SAVEFILE \"{4}\"", + ActiveDirectoryHelpers.DefaultDomainName, + ActiveDirectoryHelpers.DefaultDomainPDCName, + ComputerName, + argumentOU, + tempFileName + ); + ProcessStartInfo commandStarter = new ProcessStartInfo("DJOIN.EXE", arguments) + { + CreateNoWindow = true, + ErrorDialog = false, + LoadUserProfile = false, + RedirectStandardOutput = true, + RedirectStandardError = true, + UseShellExecute = false + }; + if (EnrolSessionId != null) + { + EnrolmentLog.LogSessionDiagnosticInformation(EnrolSessionId, string.Format("{0} {1}{2}", "DJOIN.EXE", arguments, System.Environment.NewLine)); + } + + string stdOutput; + string stdError; + using (Process commandProc = Process.Start(commandStarter)) + { + commandProc.WaitForExit(20000); + stdOutput = commandProc.StandardOutput.ReadToEnd(); + stdError = commandProc.StandardError.ReadToEnd(); + } + if (EnrolSessionId != null) + { + if (!string.IsNullOrWhiteSpace(stdOutput)) + EnrolmentLog.LogSessionDiagnosticInformation(EnrolSessionId, stdOutput + System.Environment.NewLine); + if (!string.IsNullOrWhiteSpace(stdError)) + EnrolmentLog.LogSessionDiagnosticInformation(EnrolSessionId, stdError + System.Environment.NewLine); + } + + if (System.IO.File.Exists(tempFileName)) + { + DJoinResult = System.Convert.ToBase64String(System.IO.File.ReadAllBytes(tempFileName)); + System.IO.File.Delete(tempFileName); + } + if (string.IsNullOrWhiteSpace(DJoinResult)) + throw new System.InvalidOperationException(string.Format("Domain Join Unsuccessful{0}Error: {1}{0}Output: {2}", System.Environment.NewLine, stdError, stdOutput)); + ExistingAccount = ActiveDirectory.GetMachineAccount(ComputerName); + return DJoinResult; + } + + public static List SearchUsers(string term) + { + List users = new List(); + string defaultQualifiedDomainName = ActiveDirectoryHelpers.DefaultDomainQualifiedName; + string defaultNetBiosDomainName = ActiveDirectoryHelpers.DefaultDomainNetBiosName; + term = ActiveDirectoryHelpers.EscapeLdapQuery(term); + using (DirectoryEntry entry = new DirectoryEntry(string.Format("LDAP://{0}", defaultQualifiedDomainName))) + { + using (DirectorySearcher searcher = new DirectorySearcher(entry, string.Format("(&(objectClass=User)(objectCategory=Person)(|(sAMAccountName=*{0}*)(displayName=*{0}*)))", term), new string[] + { + "name", + "distinguishedName", + "sAMAccountName", + "objectSid", + "displayName", + "sn", + "givenName", + "memberOf", + "mail", + "telephoneNumber" + }, SearchScope.Subtree)) + { + searcher.SizeLimit = 30; + SearchResultCollection results = searcher.FindAll(); + foreach (SearchResult result in results) + { + users.Add(ActiveDirectory.SearchResultToActiveDirectoryUserAccount(result)); + } + } + } + return users; + } + public static List GetOrganisationalUnitStructure() + { + ActiveDirectoryOrganisationalUnit DomainOUs = new ActiveDirectoryOrganisationalUnit + { + Children = new System.Collections.Generic.List() + }; + string defaultQualifiedDomainName = ActiveDirectoryHelpers.DefaultDomainQualifiedName; + + using (DirectoryEntry entry = new DirectoryEntry(string.Format("LDAP://{0}", defaultQualifiedDomainName))) + { + ActiveDirectory.GetOrganisationalUnitStructure_Recursive(ref DomainOUs, entry); + } + return DomainOUs.Children; + } + private static void GetOrganisationalUnitStructure_Recursive(ref ActiveDirectoryOrganisationalUnit ParentOU, DirectoryEntry Container) + { + using (DirectorySearcher searcher = new DirectorySearcher(Container, "(objectCategory=organizationalUnit)", new string[] + { + "name", + "distinguishedName" + }, SearchScope.OneLevel)) + { + using (SearchResultCollection results = searcher.FindAll()) + { + foreach (SearchResult result in results) + { + string i = result.Properties["name"][0].ToString(); + string dn = result.Properties["distinguishedName"][0].ToString(); + ActiveDirectoryOrganisationalUnit ChildOU = new ActiveDirectoryOrganisationalUnit + { + Name = i, + Path = dn.Substring(0, dn.IndexOf(",DC=")), + Children = new List() + }; + ActiveDirectory.GetOrganisationalUnitStructure_Recursive(ref ChildOU, result.GetDirectoryEntry()); + if (ChildOU.Children.Count == 0) + ChildOU.Children = null; + ParentOU.Children.Add(ChildOU); + } + } + } + + } + } +} diff --git a/Disco.BI/BI/Interop/ActiveDirectory/ActiveDirectoryCachedGroups.cs b/Disco.BI/BI/Interop/ActiveDirectory/ActiveDirectoryCachedGroups.cs new file mode 100644 index 00000000..9fa8bc46 --- /dev/null +++ b/Disco.BI/BI/Interop/ActiveDirectory/ActiveDirectoryCachedGroups.cs @@ -0,0 +1,186 @@ +using System; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.DirectoryServices; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Disco.Data.Repository; +using Disco.Services.Tasks; +using Quartz; + +namespace Disco.BI.Interop.ActiveDirectory +{ + public class ActiveDirectoryCachedGroups : ScheduledTask + { + private static ConcurrentDictionary> _Cache = new ConcurrentDictionary>(); + private const long CacheTimeoutTicks = 6000000000; // 10 Minutes + + public static IEnumerable GetGroups(IEnumerable GroupCNs) + { + List groups = new List(); + + foreach (var groupCN in GroupCNs) + foreach (var group in GetGroupsRecursive(groupCN, new Stack())) + if (!groups.Contains(group)) + { + groups.Add(group); + yield return group.FriendlyName; + } + } + public static IEnumerable GetGroups(string GroupCN) + { + foreach (var group in GetGroupsRecursive(GroupCN, new Stack())) + yield return group.FriendlyName; + } + private static IEnumerable GetGroupsRecursive(string GroupCN, Stack RecursiveTree) + { + var group = GetGroup(GroupCN); + + if (group != null && !RecursiveTree.Contains(group)) + { + yield return group; + + if (group.MemberOf != null) + { + RecursiveTree.Push(group); + + foreach (var memberOfGroupCN in group.MemberOf) + foreach (var memberOfGroup in GetGroupsRecursive(memberOfGroupCN, RecursiveTree)) + yield return memberOfGroup; + + RecursiveTree.Pop(); + } + } + } + + private static ADCachedGroup GetGroup(string GroupCN) + { + // Check Cache + Tuple groupRecord = TryCache(GroupCN); + + if (groupRecord == null) + { + // Load from AD + var group = ADCachedGroup.LoadFromAD(GroupCN); + SetValue(GroupCN, group); + + return group; + } + else + { + // Return from Cache + return groupRecord.Item1; + } + } + + private static Tuple TryCache(string GroupCN) + { + string groupCN = GroupCN.ToLower(); + Tuple groupRecord; + if (_Cache.TryGetValue(groupCN, out groupRecord)) + { + if (groupRecord.Item2 > DateTime.Now) + return groupRecord; + else + _Cache.TryRemove(groupCN, out groupRecord); + } + return null; + } + private static bool SetValue(string GroupCN, ADCachedGroup GroupRecord) + { + string key = GroupCN.ToLower(); + Tuple groupRecord = new Tuple(GroupRecord, DateTime.Now.AddTicks(CacheTimeoutTicks)); + if (_Cache.ContainsKey(key)) + { + Tuple oldGroupRecord; + if (_Cache.TryGetValue(key, out oldGroupRecord)) + { + return _Cache.TryUpdate(key, groupRecord, oldGroupRecord); + } + } + return _Cache.TryAdd(key, groupRecord); + } + + private class ADCachedGroup + { + public string CN { get; private set; } + public string FriendlyName { get; private set; } + + public List MemberOf { get; private set; } + + public static ADCachedGroup LoadFromAD(string CN) + { + ADCachedGroup group = null; + + using (DirectoryEntry groupDE = new DirectoryEntry(string.Concat(ActiveDirectoryHelpers.DefaultLdapPath, CN))) + { + if (groupDE != null) + { + group = new ADCachedGroup() + { + CN = CN + }; + + group.FriendlyName = (string)groupDE.Properties["sAMAccountName"].Value; + + var groupMemberOf = groupDE.Properties["memberOf"]; + if (groupMemberOf != null && groupMemberOf.Count > 0) + { + group.MemberOf = groupMemberOf.Cast().ToList(); + } + } + } + + return group; + } + + private ADCachedGroup() + { + // Private Constructor + } + } + + private static void CleanStaleCache() + { + var groupKeys = _Cache.Keys.ToArray(); + foreach (string groupKey in groupKeys) + { + Tuple groupRecord; + if (_Cache.TryGetValue(groupKey, out groupRecord)) + { + if (groupRecord.Item2 <= DateTime.Now) + _Cache.TryRemove(groupKey, out groupRecord); + } + } + } + + public override string TaskName { get { return "AD Group Cache - Clean Stale Cache"; } } + + public override bool SingleInstanceTask { get { return true; } } + public override bool CancelInitiallySupported { get { return false; } } + public override bool LogExceptionsOnly { get { return true; } } + + public override void InitalizeScheduledTask(DiscoDataContext dbContext) + { + // Run @ every 15mins + + // Next 15min interval + DateTime now = DateTime.Now; + int mins = (15 - (now.Minute % 15)); + if (mins < 10) + mins += 15; + DateTimeOffset startAt = new DateTimeOffset(now).AddMinutes(mins).AddSeconds(now.Second * -1).AddMilliseconds(now.Millisecond * -1); + + TriggerBuilder triggerBuilder = TriggerBuilder.Create().StartAt(startAt). + WithSchedule(SimpleScheduleBuilder.RepeatMinutelyForever(15)); + + this.ScheduleTask(triggerBuilder); + } + + protected override void ExecuteTask() + { + CleanStaleCache(); + } + } +} diff --git a/Disco.BI/BI/Interop/ActiveDirectory/ActiveDirectoryHelpers.cs b/Disco.BI/BI/Interop/ActiveDirectory/ActiveDirectoryHelpers.cs new file mode 100644 index 00000000..293f47a4 --- /dev/null +++ b/Disco.BI/BI/Interop/ActiveDirectory/ActiveDirectoryHelpers.cs @@ -0,0 +1,169 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.DirectoryServices; +using System.DirectoryServices.ActiveDirectory; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading; + +namespace Disco.BI.Interop.ActiveDirectory +{ + internal static class ActiveDirectoryHelpers + { + #region Static Cached Properties + private static string _DefaultDomainName; + private static string _DefaultDomainPDCName; + private static System.Collections.Generic.List _DefaultDomainDCNames; + private static string _DefaultDomainNetBiosName; + private static string _DefaultDomainQualifiedName; + private static string _DefaultLdapPath; + private static bool _DetermineDomainProperties_Loaded = false; + private static object _DetermineDomainProperties_Lock = new object(); + internal static string DefaultDomainName + { + get + { + ActiveDirectoryHelpers.DetermineDomainProperties(); + return ActiveDirectoryHelpers._DefaultDomainName; + } + } + internal static string DefaultDomainPDCName + { + get + { + ActiveDirectoryHelpers.DetermineDomainProperties(); + return ActiveDirectoryHelpers._DefaultDomainPDCName; + } + } + internal static System.Collections.Generic.List DefaultDomainDCNames + { + get + { + ActiveDirectoryHelpers.DetermineDomainProperties(); + return ActiveDirectoryHelpers._DefaultDomainDCNames; + } + } + internal static string DefaultDomainNetBiosName + { + get + { + ActiveDirectoryHelpers.DetermineDomainProperties(); + return ActiveDirectoryHelpers._DefaultDomainNetBiosName; + } + } + internal static string DefaultDomainQualifiedName + { + get + { + ActiveDirectoryHelpers.DetermineDomainProperties(); + return ActiveDirectoryHelpers._DefaultDomainQualifiedName; + } + } + internal static string DefaultLdapPath + { + get + { + ActiveDirectoryHelpers.DetermineDomainProperties(); + return ActiveDirectoryHelpers._DefaultLdapPath; + } + } + internal static string DefaultDCLdapPath(string DC) + { + return string.Format("LDAP://{0}/", DC); + } + internal static DirectoryEntry DefaultLdapRoot + { + get + { + return new DirectoryEntry(string.Concat(ActiveDirectoryHelpers.DefaultLdapPath, ActiveDirectoryHelpers.DefaultDomainQualifiedName)); + } + } + internal static DirectoryEntry DefaultDCLdapRoot(string DC) + { + return new DirectoryEntry(string.Concat(ActiveDirectoryHelpers.DefaultDCLdapPath(DC), ActiveDirectoryHelpers.DefaultDomainQualifiedName)); + } + + private static void DetermineDomainProperties() + { + if (!ActiveDirectoryHelpers._DetermineDomainProperties_Loaded) + { + lock (ActiveDirectoryHelpers._DetermineDomainProperties_Lock) + { + + if (!ActiveDirectoryHelpers._DetermineDomainProperties_Loaded) + { + using (Domain domain = Domain.GetDomain(new DirectoryContext(DirectoryContextType.Domain))) + { + ActiveDirectoryHelpers._DefaultDomainName = domain.Name; + ActiveDirectoryHelpers._DefaultDomainPDCName = domain.PdcRoleOwner.Name; + ActiveDirectoryHelpers._DefaultDomainDCNames = new System.Collections.Generic.List(domain.DomainControllers.Count); + foreach (DomainController dc in domain.DomainControllers) + { + ActiveDirectoryHelpers._DefaultDomainDCNames.Add(dc.Name); + } + } + ActiveDirectoryHelpers._DefaultDomainQualifiedName = string.Format("DC={0}", ActiveDirectoryHelpers._DefaultDomainName.Replace(".", ",DC=")); + ActiveDirectoryHelpers._DefaultLdapPath = string.Format("LDAP://{0}/", ActiveDirectoryHelpers._DefaultDomainPDCName); + using (DirectoryEntry entry = new DirectoryEntry(string.Format("{0}CN=Partitions,CN=Configuration,{1}", ActiveDirectoryHelpers._DefaultLdapPath, ActiveDirectoryHelpers._DefaultDomainQualifiedName))) + { + using (DirectorySearcher searcher = new DirectorySearcher(entry, "(&(objectClass=crossRef)(nETBIOSName=*))", new string[] { "nETBIOSName" })) + { + SearchResult result = searcher.FindOne(); + if (result != null) + { + ActiveDirectoryHelpers._DefaultDomainNetBiosName = result.Properties["nETBIOSName"][0].ToString(); + } + else + { + ActiveDirectoryHelpers._DefaultDomainNetBiosName = ActiveDirectoryHelpers._DefaultDomainQualifiedName; + } + } + } + } + ActiveDirectoryHelpers._DetermineDomainProperties_Loaded = true; + } + } + } + #endregion + + [System.Runtime.InteropServices.DllImport("advapi32.dll", CharSet = CharSet.Auto, SetLastError = true)] + private static extern bool ConvertSidToStringSid(byte[] pSID, ref System.Text.StringBuilder ptrSid); + internal static string ConvertBytesToSIDString(byte[] SID) + { + System.Text.StringBuilder sidString = new System.Text.StringBuilder(); + bool flag = ActiveDirectoryHelpers.ConvertSidToStringSid(SID, ref sidString); + string ConvertBytesToSIDString; + if (flag) + { + ConvertBytesToSIDString = sidString.ToString(); + } + else + { + ConvertBytesToSIDString = null; + } + return ConvertBytesToSIDString; + } + + internal static string EscapeLdapQuery(string query) + { + return query.Replace("*", "\\2a").Replace("(", "\\28").Replace(")", "\\29").Replace("\\", "\\5c").Replace("NUL", "\\00").Replace("/", "\\2f"); + } + internal static string FormatGuidForLdapQuery(System.Guid g) + { + checked + { + System.Text.StringBuilder sb = new System.Text.StringBuilder(); + byte[] array = g.ToByteArray(); + for (int i = 0; i < array.Length; i++) + { + byte b = array[i]; + sb.Append("\\"); + sb.Append(b.ToString("X2")); + } + return sb.ToString(); + } + } + } +} diff --git a/Disco.BI/BI/Interop/ActiveDirectory/ActiveDirectoryMachineAccountExtensions.cs b/Disco.BI/BI/Interop/ActiveDirectory/ActiveDirectoryMachineAccountExtensions.cs new file mode 100644 index 00000000..73e75938 --- /dev/null +++ b/Disco.BI/BI/Interop/ActiveDirectory/ActiveDirectoryMachineAccountExtensions.cs @@ -0,0 +1,296 @@ +using Disco.Models.Interop.ActiveDirectory; +using Disco.Models.Repository; +using System; +using System.Collections; +using System.Collections.Generic; +using System.DirectoryServices; +using System.Text; +using System.Net.NetworkInformation; +using System.Management; + +namespace Disco.BI.Interop.ActiveDirectory +{ + public static class ActiveDirectoryMachineAccountExtensions + { + public static void DeleteAccount(this ActiveDirectoryMachineAccount account) + { + if (account.IsCriticalSystemObject) + throw new InvalidOperationException(string.Format("This account {0} is a Critical System Active Directory Object and Disco refuses to modify it", account.DistinguishedName)); + + using (DirectoryEntry machineDE = new DirectoryEntry(account.Path)) + { + DeleteAccountRecursive(machineDE); + + using (var machineDEParent = machineDE.Parent) + { + machineDEParent.Children.Remove(machineDE); + } + } + } + private static void DeleteAccountRecursive(DirectoryEntry parent) + { + List children = new List(); + foreach (DirectoryEntry child in parent.Children) + children.Add(child); + + foreach (var child in children) + { + DeleteAccountRecursive(child); + parent.Children.Remove(child); + child.Dispose(); + } + } + private static void SetNetbootGUID(this ActiveDirectoryMachineAccount account, System.Guid updatedNetbootGUID) + { + if (account.IsCriticalSystemObject) + throw new InvalidOperationException(string.Format("This account {0} is a Critical System Active Directory Object and Disco refuses to modify it", account.DistinguishedName)); + + using (DirectoryEntry machineDE = new DirectoryEntry(account.Path)) + { + PropertyValueCollection netbootGUIDProp = machineDE.Properties["netbootGUID"]; + bool flag = netbootGUIDProp.Count > 0; + if (flag) + { + netbootGUIDProp.Clear(); + } + netbootGUIDProp.Add(updatedNetbootGUID.ToByteArray()); + machineDE.CommitChanges(); + } + } + public static void SetDescription(this ActiveDirectoryMachineAccount account, string Description) + { + using (DirectoryEntry machineDE = new DirectoryEntry(account.Path)) + { + PropertyValueCollection descriptionProp = machineDE.Properties["description"]; + bool flag = descriptionProp.Count > 0; + if (flag) + { + descriptionProp.Clear(); + } + flag = !string.IsNullOrEmpty(Description); + if (flag) + { + descriptionProp.Add(Description); + } + machineDE.CommitChanges(); + } + } + public static void SetDescription(this ActiveDirectoryMachineAccount account, Device Device) + { + System.Text.StringBuilder descriptionBuilder = new System.Text.StringBuilder(); + bool flag = Device.AssignedUserId != null; + if (flag) + { + descriptionBuilder.Append(Device.AssignedUser.Id); + descriptionBuilder.Append(" ("); + descriptionBuilder.Append(Device.AssignedUser.DisplayName); + descriptionBuilder.Append("); "); + } + flag = Device.DeviceModelId.HasValue; + if (flag) + { + descriptionBuilder.Append(Device.DeviceModel.Description); + descriptionBuilder.Append("; "); + } + descriptionBuilder.Append(Device.DeviceProfile.Description); + descriptionBuilder.Append("; "); + string description = descriptionBuilder.ToString().Trim(); + flag = (description.Length > 1024); + if (flag) + { + description = description.Substring(0, 1024); + } + account.SetDescription(description); + } + + public static void DisableAccount(this ActiveDirectoryMachineAccount account) + { + if (account.IsCriticalSystemObject) + throw new InvalidOperationException(string.Format("This account {0} is a Critical System Active Directory Object and Disco refuses to modify it", account.DistinguishedName)); + + using (DirectoryEntry machineDE = new DirectoryEntry(account.Path)) + { + int accountControl = (int)machineDE.Properties["userAccountControl"][0]; + int updatedAccountControl = (accountControl | 2); + if (accountControl != updatedAccountControl) + { + machineDE.Properties["userAccountControl"][0] = updatedAccountControl; + machineDE.CommitChanges(); + } + } + } + public static void EnableAccount(this ActiveDirectoryMachineAccount account) + { + if (account.IsCriticalSystemObject) + throw new InvalidOperationException(string.Format("This account {0} is a Critical System Active Directory Object and Disco refuses to modify it", account.DistinguishedName)); + + using (DirectoryEntry machineDE = new DirectoryEntry(account.Path)) + { + int accountControl = (int)machineDE.Properties["userAccountControl"][0]; + if ((accountControl & 2) == 2) + { + int updatedAccountControl = (accountControl ^ 2); + machineDE.Properties["userAccountControl"][0] = updatedAccountControl; + machineDE.CommitChanges(); + } + } + } + + public static bool UpdateNetbootGUID(this ActiveDirectoryMachineAccount account, string UUID, string MACAddress) + { + if (account.IsCriticalSystemObject) + throw new InvalidOperationException(string.Format("This account {0} is a Critical System Active Directory Object and Disco refuses to modify it", account.DistinguishedName)); + + System.Guid netbootGUID = System.Guid.Empty; + bool flag = !string.IsNullOrWhiteSpace(UUID); + if (flag) + { + netbootGUID = ActiveDirectoryMachineAccountExtensions.NetbootGUIDFromUUID(UUID); + } + else + { + flag = !string.IsNullOrWhiteSpace(MACAddress); + if (flag) + { + netbootGUID = ActiveDirectoryMachineAccountExtensions.NetbootGUIDFromMACAddress(MACAddress); + } + } + flag = (netbootGUID != System.Guid.Empty && netbootGUID != account.NetbootGUID); + bool UpdateNetbootGUID; + if (flag) + { + account.SetNetbootGUID(netbootGUID); + UpdateNetbootGUID = true; + } + else + { + UpdateNetbootGUID = false; + } + return UpdateNetbootGUID; + } + internal static System.Guid NetbootGUIDFromMACAddress(string MACAddress) + { + string strippedMACAddress = MACAddress.Trim().Replace(":", string.Empty).Replace("-", string.Empty); + bool flag = strippedMACAddress.Length == 12; + System.Guid NetbootGUIDFromMACAddress; + if (flag) + { + System.Guid guid = new System.Guid(string.Format("00000000-0000-0000-0000-{0}", strippedMACAddress)); + NetbootGUIDFromMACAddress = guid; + } + else + { + NetbootGUIDFromMACAddress = System.Guid.Empty; + } + return NetbootGUIDFromMACAddress; + } + internal static System.Guid NetbootGUIDFromUUID(string UUID) + { + System.Guid result = new System.Guid(UUID); + return result; + } + + public static object GetPropertyValue(this ActiveDirectoryMachineAccount account, string PropertyName, int Index = 0) + { + switch (PropertyName.ToLower()) + { + case "name": + return account.Name; + case "samaccountname": + return account.sAMAccountName; + case "distinguishedname": + return account.DistinguishedName; + case "objectsid": + return account.ObjectSid; + case "netbootguid": + return account.NetbootGUID; + default: + object[] adProperty; + if (account.LoadedProperties.TryGetValue(PropertyName, out adProperty) && Index <= adProperty.Length) + return adProperty[Index]; + else + return null; + } + } + + public static IPStatus PingComputer(this ActiveDirectoryMachineAccount account, int Timeout = 2000) + { + using (var p = new Ping()) + { + PingReply reply = p.Send(account.DnsName, Timeout); + return reply.Status; + } + } + + // Didn't Work - WMI Limitation? + // G# - 2012-06-18 + //public static void OnlineRenameComputer(this ActiveDirectoryMachineAccount account, string NewComputerName) + //{ + // if (account.IsCriticalSystemObject) + // throw new InvalidOperationException(string.Format("This account {0} is a Critical System Active Directory Object and Disco refuses to modify it", account.DistinguishedName)); + + // try + // { + // IPStatus pingResult = account.PingComputer(); + // if (pingResult != IPStatus.Success) + // throw new Exception(string.Format("Ping Error Result: {0}", pingResult.ToString())); + // } + // catch (Exception ex) + // { + // throw new Exception(string.Format("Error trying to Ping the Device: {0}; {1}", account.DnsName, ex.Message), ex); + // } + + // ConnectionOptions wmiConnectionOptions = new ConnectionOptions() + // { + // Authentication = AuthenticationLevel.PacketPrivacy, + // Impersonation = ImpersonationLevel.Impersonate, + // EnablePrivileges = true, + // Timeout = new TimeSpan(0, 0, 6) + // }; + // ManagementPath wmiPath = new ManagementPath() + // { + // Server = account.DnsName, + // NamespacePath = @"root\cimv2", + // ClassName = "Win32_ComputerSystem" + // }; + + // ManagementScope wmiScope = new ManagementScope(wmiPath, wmiConnectionOptions); + + // ObjectGetOptions wmiGetOptions = new ObjectGetOptions() { Timeout = new TimeSpan(0, 1, 0) }; + + // using (ManagementClass wmiClass = new ManagementClass(wmiScope, wmiPath, wmiGetOptions)) + // { + // foreach (ManagementObject wmiWin32ComputerSystem in wmiClass.GetInstances()) + // { + // UInt32 result = (UInt32)wmiWin32ComputerSystem.InvokeMethod("Rename", new object[] { NewComputerName }); + // if (result != 0) + // throw new Exception(string.Format("Error Renaming Computer; WMI Remote Method 'Rename' returned: {0}", result)); + // } + // } + //} + + public static void MoveOrganisationUnit(this ActiveDirectoryMachineAccount account, string NewOrganisationUnit) + { + if (account.IsCriticalSystemObject) + throw new InvalidOperationException(string.Format("This account {0} is a Critical System Active Directory Object and Disco refuses to modify it", account.DistinguishedName)); + + if (!account.ParentDistinguishedName.Equals(NewOrganisationUnit, StringComparison.InvariantCultureIgnoreCase)) + { + string ouPath; + if (string.IsNullOrWhiteSpace(NewOrganisationUnit)) + ouPath = string.Format("{0}CN=Computers,{1}", ActiveDirectoryHelpers.DefaultLdapPath, ActiveDirectoryHelpers.DefaultDomainQualifiedName); + else + ouPath = string.Format("{0}{1},{2}", ActiveDirectoryHelpers.DefaultLdapPath, NewOrganisationUnit, ActiveDirectoryHelpers.DefaultDomainQualifiedName); + + using (DirectoryEntry ou = new DirectoryEntry(ouPath)) + { + using (DirectoryEntry i = new DirectoryEntry(account.Path) { UsePropertyCache = false }) + { + i.MoveTo(ou); + } + } + } + } + + } +} diff --git a/Disco.BI/BI/Interop/ActiveDirectory/ActiveDirectoryOrganisationalUnit.cs b/Disco.BI/BI/Interop/ActiveDirectory/ActiveDirectoryOrganisationalUnit.cs new file mode 100644 index 00000000..289d4d8a --- /dev/null +++ b/Disco.BI/BI/Interop/ActiveDirectory/ActiveDirectoryOrganisationalUnit.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Disco.BI.Interop.ActiveDirectory +{ + public class ActiveDirectoryOrganisationalUnit + { + public string Name { get; set; } + public string Path { get; set; } + public List Children { get; set; } + } +} diff --git a/Disco.BI/BI/Interop/ActiveDirectory/ActiveDirectoryUpdateLastNetworkLogonDateJob.cs b/Disco.BI/BI/Interop/ActiveDirectory/ActiveDirectoryUpdateLastNetworkLogonDateJob.cs new file mode 100644 index 00000000..c1eddb4d --- /dev/null +++ b/Disco.BI/BI/Interop/ActiveDirectory/ActiveDirectoryUpdateLastNetworkLogonDateJob.cs @@ -0,0 +1,293 @@ +using Disco.Data.Repository; +using Disco.Services.Logging; +using Disco.Models.Repository; +using Quartz; +using System; +using System.Collections; +using System.Collections.Generic; +using System.Diagnostics; +using System.DirectoryServices; +using System.Linq; +using System.Linq.Expressions; +using System.Net.NetworkInformation; +using System.Reflection; +using Disco.Services.Tasks; +namespace Disco.BI.Interop.ActiveDirectory +{ + public class ActiveDirectoryUpdateLastNetworkLogonDateJob : ScheduledTask + { + + public override string TaskName { get { return "Active Directory - Update Last Network Logon Dates Task"; } } + public override bool SingleInstanceTask { get { return true; } } + public override bool CancelInitiallySupported { get { return false; } } + + public override void InitalizeScheduledTask(DiscoDataContext dbContext) + { + // ActiveDirectoryUpdateLastNetworkLogonDateJob @ 11:30pm + TriggerBuilder triggerBuilder = TriggerBuilder.Create(). + WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(23, 30)); + + this.ScheduleTask(triggerBuilder); + } + + protected override void ExecuteTask() + { + int changeCount; + + this.Status.UpdateStatus(1, "Starting", "Connecting to the Database and initializing the environment"); + using (DiscoDataContext dbContext = new DiscoDataContext()) + { + UpdateLastNetworkLogonDates(dbContext, this.Status); + this.Status.UpdateStatus(95, "Updating Database", "Writing last network logon dates to the Database"); + changeCount = dbContext.SaveChanges(); + this.Status.UpdateStatus(100, "Finished", string.Format("{0} Device last network logon dates updated", changeCount)); + } + + SystemLog.LogInformation(new string[] + { + "Updated LastNetworkLogon Device Property for Device/s", + changeCount.ToString() + }); + } + + //public void InitalizeScheduledTask(DiscoDataContext dbContext, IScheduler Scheduler) + //{ + // // UpdateLastNetworkLogonDates @ 11:30pm + // IJobDetail jobDetail = new JobDetailImpl("UpdateLastNetworkLogonDates", typeof(ActiveDirectoryUpdateLastNetworkLogonDateJob)); + // ITrigger trigger = TriggerBuilder.Create(). + // WithIdentity("UpdateLastNetworkLogonDatesTrigger"). + // StartNow(). + // WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(23, 30)). + // Build(); + // Scheduler.ScheduleJob(jobDetail, trigger); + //} + + //void IJob.Execute(IJobExecutionContext context) + //{ + // DiscoDataContext dbContext = new DiscoDataContext(); + // try + // { + // ActiveDirectoryUpdateLastNetworkLogonDateJob.UpdateLastNetworkLogonDates(dbContext); + // int changeCount = dbContext.SaveChanges(); + // SystemLog.LogInformation(new string[] + // { + // "Updated LastNetworkLogon Device Property for Device/s", + // changeCount.ToString() + // }); + // } + // catch (System.Exception ex) + // { + // SystemLog.LogException("ActiveDirectoryUpdateLastNetworkLogonDateJob", ex); + // } + // finally + // { + // bool flag = dbContext != null; + // if (flag) + // { + // ((System.IDisposable)dbContext).Dispose(); + // } + // } + //} + public static bool UpdateLastNetworkLogonDate(Device Device) + { + System.DateTime? computerLastLogonDate = Device.LastNetworkLogonDate; + if (!string.IsNullOrEmpty(Device.ComputerName)) + { + foreach (var dcName in ActiveDirectoryHelpers.DefaultDomainDCNames) + { + try + { + Ping p = new Ping(); + PingReply pr; + try + { + pr = p.Send(dcName, 500); + } + finally + { + if (p != null) + { + ((System.IDisposable)p).Dispose(); + } + } + if (pr.Status == IPStatus.Success) + { + using (DirectoryEntry dRootEntry = ActiveDirectoryHelpers.DefaultDCLdapRoot(dcName)) + { + DirectorySearcher dSearcher = new DirectorySearcher(dRootEntry, string.Format("(&(objectClass=computer)(sAMAccountName={0}$))", ActiveDirectoryHelpers.EscapeLdapQuery(Device.ComputerName)), new string[] + { + "lastLogon" + }, SearchScope.Subtree); + SearchResult dResult = dSearcher.FindOne(); + if (dResult != null) + { + ResultPropertyValueCollection dProp = dResult.Properties["lastLogon"]; + if (dProp != null && dProp.Count > 0) + { + long lastLogonInt = (long)dProp[0]; + if (lastLogonInt > 0L) + { + System.DateTime computerNameDate = System.DateTime.FromFileTime(lastLogonInt); + if (computerLastLogonDate.HasValue) + { + if (System.DateTime.Compare(computerLastLogonDate.Value, computerNameDate) < 0) + { + computerLastLogonDate = computerNameDate; + } + } + else + { + computerLastLogonDate = computerNameDate; + } + } + } + } + + } + } + else + { + SystemLog.LogError(new string[] + { + string.Format("Unable to ping Domain Controller: '{0}' (ref: Disco.BI.Interop.ActiveDirectory.ActiveDirectoryUpdateLastNetworkLogonDateJob.UpdateDeviceLastNetworkLogonDate)", dcName) + }); + } + } + catch (System.Exception ex) + { + SystemLog.LogException("UpdateDeviceLastNetworkLogonDate", ex); + } + } + } + bool UpdateLastNetworkLogonDate; + if (computerLastLogonDate.HasValue) + { + if (!Device.LastNetworkLogonDate.HasValue) + { + Device.LastNetworkLogonDate = computerLastLogonDate; + UpdateLastNetworkLogonDate = true; + return UpdateLastNetworkLogonDate; + } + if (System.DateTime.Compare(computerLastLogonDate.Value, Device.LastNetworkLogonDate.Value) > 0) + { + Device.LastNetworkLogonDate = computerLastLogonDate; + UpdateLastNetworkLogonDate = true; + return UpdateLastNetworkLogonDate; + } + } + UpdateLastNetworkLogonDate = false; + return UpdateLastNetworkLogonDate; + } + public static void UpdateLastNetworkLogonDates(DiscoDataContext context, ScheduledTaskStatus status = null) + { + System.Collections.Generic.Dictionary computerLastLogonDates = new System.Collections.Generic.Dictionary(); + + int progressDCCountTotal = ActiveDirectoryHelpers.DefaultDomainDCNames.Count; + int progressDCCount = 0; + double progressDCProgress = 0; + if (progressDCCountTotal > 0) + progressDCProgress = 90 / progressDCCountTotal; + + foreach (var dcName in ActiveDirectoryHelpers.DefaultDomainDCNames) + { + try + { + PingReply pr; + using (Ping p = new Ping()) + { + pr = p.Send(dcName, 2000); + } + if (pr.Status == IPStatus.Success) + { + using (DirectoryEntry dRootEntry = ActiveDirectoryHelpers.DefaultDCLdapRoot(dcName)) + { + double progressDCStart = 5 + (progressDCCount * progressDCProgress); + if (status != null) + { + status.UpdateStatus(progressDCStart, string.Format("Querying Domain Controller: {0}", dcName), "Searching..."); + } + + using (DirectorySearcher dSearcher = new DirectorySearcher(dRootEntry, "(objectClass=computer)", new string[] { "sAMAccountName", "lastLogon" }, SearchScope.Subtree)) + { + using (SearchResultCollection dResults = dSearcher.FindAll()) + { + + int progressItemCount = 0; + double progressItemProgress = dResults.Count == 0 ? 0 : (progressDCProgress / dResults.Count); + + foreach (SearchResult dResult in dResults) + { + ResultPropertyValueCollection dProp = dResult.Properties["sAMAccountName"]; + if (dProp != null && dProp.Count > 0) + { + string computerName = ((string)dProp[0]).TrimEnd(new char[] { '$' }).ToUpper(); + + if (status != null) + if (progressItemCount % 150 == 0) // Only Update Status every 150 devices + status.UpdateStatus(progressDCStart + (progressItemProgress * progressItemCount), string.Format("Analysing Device: {0}", computerName)); + + dProp = dResult.Properties["lastLogon"]; + if (dProp != null && dProp.Count > 0) + { + long lastLogonInt = (long)dProp[0]; + if (lastLogonInt > 0L) + { + System.DateTime computerNameDate = System.DateTime.FromFileTime(lastLogonInt); + System.DateTime existingDate; + if (computerLastLogonDates.TryGetValue(computerName, out existingDate)) + { + if (System.DateTime.Compare(existingDate, computerNameDate) < 0) + { + computerLastLogonDates[computerName] = computerNameDate; + } + } + else + { + computerLastLogonDates[computerName] = computerNameDate; + } + } + } + } + progressItemCount++; + } + } + } + } + } + else + { + SystemLog.LogError(new string[] + { + string.Format("Unable to ping Domain Controller: '{0}' (ref: Disco.BI.Interop.ActiveDirectory.ActiveDirectoryUpdateLastNetworkLogonDateJob.UpdateLastNetworkLogonDates)", dcName) + }); + } + } + catch (System.Exception ex) + { + SystemLog.LogException("UpdateLastNetworkLogonDates", ex); + } + progressDCCount++; + } + + + foreach (Device d in context.Devices.Where(device => device.ComputerName != null)) + { + DateTime computerLastLogonDate; + if (computerLastLogonDates.TryGetValue(d.ComputerName.ToUpper(), out computerLastLogonDate)) + { + if (d.LastNetworkLogonDate.HasValue) + { + if (System.DateTime.Compare(d.LastNetworkLogonDate.Value, computerLastLogonDate) < 0) + { + d.LastNetworkLogonDate = computerLastLogonDate; + } + } + else + { + d.LastNetworkLogonDate = computerLastLogonDate; + } + } + } + } + } +} diff --git a/Disco.BI/BI/Interop/ActiveDirectory/ActiveDirectoryUserAccountExtensions.cs b/Disco.BI/BI/Interop/ActiveDirectory/ActiveDirectoryUserAccountExtensions.cs new file mode 100644 index 00000000..630bb462 --- /dev/null +++ b/Disco.BI/BI/Interop/ActiveDirectory/ActiveDirectoryUserAccountExtensions.cs @@ -0,0 +1,42 @@ +using Disco.Models.Interop.ActiveDirectory; +using System; +using Disco.Models.Repository; +namespace Disco.BI.Interop.ActiveDirectory +{ + internal static class ActiveDirectoryUserAccountExtensions + { + public static bool HasRole(this ActiveDirectoryUserAccount account, string Role) + { + return account.Groups != null && account.Groups.Contains(Role.ToLower()); + } + + public static object GetPropertyValue(this ActiveDirectoryUserAccount account, string PropertyName, int Index = 0) + { + switch (PropertyName.ToLower()) + { + case "name": + return account.Name; + case "samaccountname": + return account.sAMAccountName; + case "distinguishedname": + return account.DistinguishedName; + case "objectsid": + return account.ObjectSid; + case "sn": + return account.Surname; + case "givenname": + return account.GivenName; + case "mail": + return account.Email; + case "telephonenumber": + return account.Phone; + default: + object[] adProperty; + if (account.LoadedProperties.TryGetValue(PropertyName, out adProperty) && Index <= adProperty.Length) + return adProperty[Index]; + else + return null; + } + } + } +} diff --git a/Disco.BI/BI/Interop/Community/UpdateCheck.cs b/Disco.BI/BI/Interop/Community/UpdateCheck.cs new file mode 100644 index 00000000..ce76b880 --- /dev/null +++ b/Disco.BI/BI/Interop/Community/UpdateCheck.cs @@ -0,0 +1,185 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Net; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using System.Xml.Serialization; +using Disco.Data.Repository; +using Disco.Models.BI.Interop.Community; +using Disco.Services.Tasks; +using Newtonsoft.Json; + +namespace Disco.BI.Interop.Community +{ + public static class UpdateCheck + { + private static string UpdateUrl(DiscoDataContext db) + { + // Special case for DiscoCommunity Hosting Network + try + { + var ip = (from addr in Dns.GetHostEntry(Dns.GetHostName()).AddressList + where addr.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork + && addr.ToString().StartsWith("10.131.200.") + select addr).FirstOrDefault(); + if (ip != null) + { + return "http://hades3:9393/base/DiscoUpdate/V1"; + } + } + catch (Exception) + {} // Ignore Errors + + return "http://discoict.com.au/base/DiscoUpdate/V1"; + } + + public static string CurrentDiscoVersion() + { + var AssemblyVersion = typeof(UpdateCheck).Assembly.GetName().Version; + return string.Format("{0}.{1}.{2:0000}.{3:0000}", AssemblyVersion.Major, AssemblyVersion.Minor, AssemblyVersion.Build, AssemblyVersion.Revision); + } + + public static UpdateResponse Check(DiscoDataContext db, bool UseProxy, ScheduledTaskStatus status = null) + { + if (status != null) + status.UpdateStatus(10, "Building Update Request"); + + var request = BuildRequest(db); + //var requestJson = JsonConvert.SerializeObject(request); + + if (status != null) + status.UpdateStatus(40, "Sending Request"); + + var DiscoBIVersion = CurrentDiscoVersion(); + + HttpWebRequest webRequest = (HttpWebRequest)HttpWebRequest.Create(UpdateUrl(db)); + webRequest.ContentType = "application/json"; + webRequest.Method = WebRequestMethods.Http.Post; + webRequest.UserAgent = string.Format("Disco/{0} (Update)", DiscoBIVersion); + + using (var wrStream = webRequest.GetRequestStream()) + { + XmlSerializer xml = new XmlSerializer(typeof(UpdateRequestV1)); + xml.Serialize(wrStream, request); + } + if (status != null) + status.UpdateStatus(50, "Waiting for Response"); + using (HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse()) + { + if (webResponse.StatusCode == HttpStatusCode.OK) + { + if (status != null) + status.UpdateStatus(90, "Reading Response"); + UpdateResponse result; + using (var wResStream = webResponse.GetResponseStream()) + { + XmlSerializer xml = new XmlSerializer(typeof(UpdateResponse)); + result = (UpdateResponse)xml.Deserialize(wResStream); + } + //var result = JsonConvert.DeserializeObject(responseContent); + db.DiscoConfiguration.UpdateLastCheck = result; + db.SaveChanges(); + + status.SetFinishedMessage(string.Format("The update server reported Version {0} is the latest.", result.Version)); + + return result; + } + else + { + if (status != null) + status.SetTaskException(new WebException(string.Format("Server responded with: [{0}] {1}", webResponse.StatusCode, webResponse.StatusDescription))); + return null; + } + } + } + + private static UpdateRequestV1 BuildRequest(DiscoDataContext db) + { + var m = new UpdateRequestV1(); + + m.DeploymentId = db.DiscoConfiguration.DeploymentId; + + m.CurrentDiscoVersion = CurrentDiscoVersion(); + + m.OrganisationName = db.DiscoConfiguration.OrganisationName; + m.BroadbandDoeWanId = GetBroadbandDoeWanId(); + m.BetaDeployment = db.DiscoConfiguration.UpdateBetaDeployment; + + m.Stat_JobCounts = db.Jobs.GroupBy(j => j.JobTypeId).Select(g => new Disco.Models.BI.Interop.Community.UpdateRequestV1.Stat { Key = g.Key, Count = g.Count() }).ToList(); + m.Stat_OpenJobCounts = db.Jobs.Where(j => j.ClosedDate == null).GroupBy(j => j.JobTypeId).Select(g => new Disco.Models.BI.Interop.Community.UpdateRequestV1.Stat { Key = g.Key, Count = g.Count() }).ToList(); + var activeThreshold = DateTime.Now.AddDays(-60); + m.Stat_ActiveDeviceModelCounts = db.DeviceModels.Select(dm => new Disco.Models.BI.Interop.Community.UpdateRequestV1.Stat { Key = dm.Manufacturer + ";" + dm.Model, Count = dm.Devices.Count(d => d.DecommissionedDate == null && (d.LastNetworkLogonDate == null || d.LastNetworkLogonDate > activeThreshold)) }).ToList(); + m.Stat_UserCounts = db.Users.GroupBy(u => u.Type).Select(g => new Disco.Models.BI.Interop.Community.UpdateRequestV1.Stat { Key = g.Key, Count = g.Count() }).ToList(); + + return m; + } + + #region DoE Query + public static string GetBroadbandDoeWanId() + { + // DnsQuery for broadband.doe.wan + IPHostEntry doeWanDnsEntry; + try + { + doeWanDnsEntry = Dns.GetHostEntry("broadband.doe.wan"); + } + catch (Exception) + { return null; } // Fail on error + + // Try using IPSearch feature + XDocument doeWanIPSearchResult = TryDownloadDoeIPSearch(false); + if (doeWanIPSearchResult == null) + doeWanIPSearchResult = TryDownloadDoeIPSearch(true); + + if (doeWanIPSearchResult == null) + return null; + + try + { + return doeWanIPSearchResult.Element("resultset").Element("site").Element("number").Value.ToLower(); + } + catch (Exception) + { return null; } // Fail on error + } + private static XDocument TryDownloadDoeIPSearch(bool useProxy) + { + try + { + var DiscoBIVersion = CurrentDiscoVersion(); + + HttpWebRequest wReq = (HttpWebRequest)HttpWebRequest.Create("http://broadband.doe.wan/ipsearch/showresult.php"); + if (!useProxy) + wReq.Proxy = new WebProxy(); // Empty Proxy Config + wReq.Method = WebRequestMethods.Http.Post; + wReq.ContentType = "application/x-www-form-urlencoded"; + wReq.UserAgent = string.Format("Disco/{0}", DiscoBIVersion); + using (var wrStream = wReq.GetRequestStream()) + { + using (var wrStreamWriter = new StreamWriter(wrStream)) + { + wrStreamWriter.Write("mode=whoami"); + } + } + using (HttpWebResponse wRes = (HttpWebResponse)wReq.GetResponse()) + { + if (wRes.StatusCode == HttpStatusCode.OK) + { + using (var wResStream = wRes.GetResponseStream()) + { + return XDocument.Load(wResStream); + } + } + else + return null; + } + } + catch (Exception) + { return null; } // Fail on error + } + #endregion + + } +} diff --git a/Disco.BI/BI/Interop/Community/UpdateCheckTask.cs b/Disco.BI/BI/Interop/Community/UpdateCheckTask.cs new file mode 100644 index 00000000..9cfbca9c --- /dev/null +++ b/Disco.BI/BI/Interop/Community/UpdateCheckTask.cs @@ -0,0 +1,86 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Disco.Data.Repository; +using Disco.Services.Logging; +using Disco.Services.Tasks; +using Quartz; + +namespace Disco.BI.Interop.Community +{ + public class UpdateCheckTask : ScheduledTask + { + public override string TaskName { get { return "Disco Community - Check for Update"; } } + public override bool SingleInstanceTask { get { return true; } } + public override bool CancelInitiallySupported { get { return false; } } + + public static ScheduledTaskStatus ScheduleNow() + { + + var runningTasks = ScheduledTasks.GetTaskStatuses(typeof(UpdateCheckTask)).Where(ts => ts.IsRunning).ToList(); + if (runningTasks.Count > 0) + return runningTasks.First(); + else + { + var t = new UpdateCheckTask(); + return t.ScheduleTask(); + } + } + public static ScheduledTaskStatus RunningStatus + { + get + { + return ScheduledTasks.GetTaskStatuses(typeof(UpdateCheckTask)).Where(ts => ts.IsRunning).FirstOrDefault(); + } + } + public static DateTime? NextScheduled + { + get + { + var runningTasks = ScheduledTasks.GetTaskStatuses(typeof(UpdateCheckTask)).ToList(); + DateTime timestamp = DateTime.MaxValue; + foreach (var t in runningTasks) + { + if (t.NextScheduledTimestamp != null && t.NextScheduledTimestamp.Value < timestamp) + timestamp = t.NextScheduledTimestamp.Value; + } + if (timestamp == DateTime.MaxValue) + return null; + else + return timestamp; + } + } + + public override void InitalizeScheduledTask(Data.Repository.DiscoDataContext dbContext) + { + // ActiveDirectoryUpdateLastNetworkLogonDateJob @ 11:30pm + var rnd = new Random(); + + var rndHour = rnd.Next(12, 23); + var rndMinute = rnd.Next(0, 59); + + TriggerBuilder triggerBuilder = TriggerBuilder.Create(). + WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(rndHour, rndMinute)); + + this.ScheduleTask(triggerBuilder); + } + + protected override void ExecuteTask() + { + using (DiscoDataContext db = new DiscoDataContext()) + { + try + { + UpdateCheck.Check(db, true, this.Status); + } + catch (Exception) + { + // Could be proxy error - try again without proxy: + UpdateCheck.Check(db, false, this.Status); + } + } + } + } +} diff --git a/Disco.BI/BI/Interop/MimeTypes.cs b/Disco.BI/BI/Interop/MimeTypes.cs new file mode 100644 index 00000000..38580f2d --- /dev/null +++ b/Disco.BI/BI/Interop/MimeTypes.cs @@ -0,0 +1,85 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Microsoft.Win32; + +namespace Disco.BI.Interop +{ + public static class MimeTypes + { + public static string ResolveMimeType(string Filename) + { + string fileExtension; + if (Filename.Contains(".")) + fileExtension = Filename.Substring(Filename.LastIndexOf(".") + 1).ToLower(); + else + fileExtension = Filename.ToLower(); + + // Try Known Mime Types + switch (fileExtension) + { + case "pdf": + return "application/pdf"; + case "doc": + return "application/msword"; + case "docx": + return "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; + case "docm": + return "application/vnd.ms-word.document.macroEnabled.12"; + case "xml": + return "text/xml"; + case "xls": + return "application/vnd.ms-excel"; + case "xlsx": + return "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; + case "xlsm": + return "application/vnd.ms-excel.sheet.macroEnabled.12"; + case "csv": + return "application/vnd.ms-excel"; + case "jpg": + return "image/jpeg"; + case "gif": + return "image/gif"; + case "png": + return "image/png"; + case "bmp": + return "image/bmp"; + case "avi": + return "video/avi"; + case "mpeg": + case "mpg": + return "video/mpeg"; + case "mp3": + return "audio/mpeg"; + case "mp4": + return "video/mp4"; + case "wmv": + return "video/x-ms-wmv"; + case "mov": + return "video/quicktime"; + } + + // Check System Registry + try + { + RegistryKey regExtensionKey = Registry.ClassesRoot.OpenSubKey("." + fileExtension); + if (regExtensionKey != null) + { + string regExtensionContentType = regExtensionKey.GetValue("Content Type") as string; + if (regExtensionContentType != null) + { + return regExtensionContentType; + } + } + } + catch + { + // Ignore Errors + } + + // Return Default + return "unknown/unknown"; + } + } +} diff --git a/Disco.BI/BI/Interop/Pdf/PdfGenerator.cs b/Disco.BI/BI/Interop/Pdf/PdfGenerator.cs new file mode 100644 index 00000000..eaebd62b --- /dev/null +++ b/Disco.BI/BI/Interop/Pdf/PdfGenerator.cs @@ -0,0 +1,251 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Models.Repository; +using Disco.Data.Repository; +using Disco.Models.BI.DocumentTemplates; +using System.IO; +using iTextSharp.text.pdf; +using System.Collections.Concurrent; +using Disco.BI.Expressions; +using System.Collections; +using Disco.BI.Extensions; +using Disco.Models.BI.Expressions; + +namespace Disco.BI.Interop.Pdf +{ + public static class PdfGenerator + { + + public static System.IO.Stream GenerateBulkFromTemplate(DocumentTemplate dt, DiscoDataContext dbContext, User CreatorUser, System.DateTime Timestamp, params object[] DataObjects) + { + if (DataObjects.Length > 0) + { + List generatedPdfs = new List(DataObjects.Length); + using (Models.BI.DocumentTemplates.DocumentState state = Models.BI.DocumentTemplates.DocumentState.DefaultState()) + { + foreach (object d in DataObjects) + { + generatedPdfs.Add(dt.GeneratePdf(dbContext, d, CreatorUser, Timestamp, state, true)); + state.SequenceNumber++; + state.FlushScopeCache(); + } + } + if (generatedPdfs.Count == 1) + { + return generatedPdfs[0]; + } + else + { + Stream bulkPdf = DocumentTemplateBI.Utilities.JoinPdfs(generatedPdfs.ToArray()); + foreach (Stream singlePdf in generatedPdfs) + singlePdf.Dispose(); + return bulkPdf; + } + } + return null; + } + + public static System.IO.Stream GenerateBulkFromTemplate(DocumentTemplate dt, DiscoDataContext dbContext, User CreatorUser, System.DateTime Timestamp, params string[] DataObjectsIds) + { + object[] DataObjects; + + switch (dt.Scope) + { + case DocumentTemplate.DocumentTemplateScopes.Device: + DataObjects = dbContext.Devices.Where(d => DataObjectsIds.Contains(d.SerialNumber)).ToArray(); + break; + case DocumentTemplate.DocumentTemplateScopes.Job: + int[] intDataObjectsIds = DataObjectsIds.Select(i => int.Parse(i)).ToArray(); + DataObjects = dbContext.Jobs.Where(j => intDataObjectsIds.Contains(j.Id)).ToArray(); + break; + case DocumentTemplate.DocumentTemplateScopes.User: + DataObjects = new object[DataObjectsIds.Length]; + for (int idIndex = 0; idIndex < DataObjectsIds.Length; idIndex++) + { + DataObjects[idIndex] = UserBI.UserCache.GetUser(DataObjectsIds[idIndex], dbContext, true); + if (DataObjects[idIndex] == null) + throw new Exception(string.Format("Unknown Username specified: {0}", DataObjectsIds[idIndex])); + } + break; + default: + throw new InvalidOperationException("Invalid DocumentType Scope"); + } + + return GenerateBulkFromTemplate(dt, dbContext, CreatorUser, Timestamp, DataObjects); + } + + public static System.IO.Stream GenerateFromTemplate(DocumentTemplate dt, DiscoDataContext dbContext, object Data, User CreatorUser, System.DateTime TimeStamp, DocumentState State, bool FlattenFields = false) + { + // Validate Data + switch (dt.Scope) + { + case DocumentTemplate.DocumentTemplateScopes.Device: + if (!(Data is Device)) + throw new ArgumentException("This AttachmentType is configured for Devices only", "Data"); + break; + case DocumentTemplate.DocumentTemplateScopes.Job: + if (!(Data is Job)) + throw new ArgumentException("This AttachmentType is configured for Jobs only", "Data"); + break; + case DocumentTemplate.DocumentTemplateScopes.User: + if (!(Data is User)) + throw new ArgumentException("This AttachmentType is configured for Users only", "Data"); + break; + default: + throw new InvalidOperationException("Invalid AttachmentType Scope"); + } + + dbContext.Configuration.LazyLoadingEnabled = true; + + // Override FlattenFields if Document Template instructs. + if (dt.FlattenForm) + FlattenFields = true; + + ConcurrentDictionary expressionCache = dt.PdfExpressionsFromCache(dbContext); + + string templateFilename = dt.RepositoryFilename(dbContext); + PdfReader pdfReader = new PdfReader(templateFilename); + + MemoryStream pdfGeneratedStream = new MemoryStream(); + PdfStamper pdfStamper = new PdfStamper(pdfReader, pdfGeneratedStream); + + pdfStamper.FormFlattening = FlattenFields; + pdfStamper.Writer.CloseStream = false; + + IDictionary expressionVariables = Expression.StandardVariables(dt, dbContext, CreatorUser, TimeStamp, State); + + foreach (string pdfFieldKey in pdfStamper.AcroFields.Fields.Keys) + { + if (pdfFieldKey.Equals("DiscoAttachmentId", StringComparison.InvariantCultureIgnoreCase)) + { + AcroFields.Item fields = pdfStamper.AcroFields.Fields[pdfFieldKey]; + string fieldValue = dt.UniqueIdentifier(Data, CreatorUser.Id, TimeStamp); + if (FlattenFields) + pdfStamper.AcroFields.SetField(pdfFieldKey, String.Empty); + else + pdfStamper.AcroFields.SetField(pdfFieldKey, fieldValue); + + IList pdfFieldPositions = pdfStamper.AcroFields.GetFieldPositions(pdfFieldKey); + for (int pdfFieldOrdinal = 0; pdfFieldOrdinal < fields.Size; pdfFieldOrdinal++) + { + AcroFields.FieldPosition pdfFieldPosition = pdfFieldPositions[pdfFieldOrdinal]; + string pdfBarcodeContent = dt.UniquePageIdentifier(Data, CreatorUser.Id, TimeStamp, pdfFieldPosition.page); + BarcodeQRCode pdfBarcode = new BarcodeQRCode(pdfBarcodeContent, (int)pdfFieldPosition.position.Width, (int)pdfFieldPosition.position.Height, null); + iTextSharp.text.Image pdfBarcodeImage = pdfBarcode.GetImage(); + pdfBarcodeImage.SetAbsolutePosition(pdfFieldPosition.position.Left, pdfFieldPosition.position.Bottom); + pdfStamper.GetOverContent(pdfFieldPosition.page).AddImage(pdfBarcodeImage); + } + // Hide Fields + PdfDictionary field = fields.GetValue(0); + if ((PdfName)field.Get(PdfName.TYPE) == PdfName.ANNOT) + { + field.Put(PdfName.F, new PdfNumber(6)); + } + else + { + PdfArray fieldKids = (PdfArray)field.Get(PdfName.KIDS); + foreach (PdfIndirectReference fieldKidRef in fieldKids) + { + ((PdfDictionary)pdfReader.GetPdfObject(fieldKidRef.Number)).Put(PdfName.F, new PdfNumber(6)); + } + } + } + else + { + Expression fieldExpression = null; + if (expressionCache.TryGetValue(pdfFieldKey, out fieldExpression)) + { + if (fieldExpression.IsDynamic) + { + Tuple fieldExpressionResult = fieldExpression.Evaluate(Data, expressionVariables); + + if (fieldExpressionResult.Item3 != null) + { + IImageExpressionResult imageResult = (fieldExpressionResult.Item3 as IImageExpressionResult); + if (imageResult != null) + { + // Output Image + AcroFields.Item fields = pdfStamper.AcroFields.Fields[pdfFieldKey]; + IList pdfFieldPositions = pdfStamper.AcroFields.GetFieldPositions(pdfFieldKey); + for (int pdfFieldOrdinal = 0; pdfFieldOrdinal < fields.Size; pdfFieldOrdinal++) + { + AcroFields.FieldPosition pdfFieldPosition = pdfFieldPositions[pdfFieldOrdinal]; + iTextSharp.text.Image pdfImage = iTextSharp.text.Image.GetInstance(imageResult.GetImage((int)pdfFieldPosition.position.Width, (int)pdfFieldPosition.position.Height)); + pdfImage.SetAbsolutePosition(pdfFieldPosition.position.Left, pdfFieldPosition.position.Bottom); + pdfStamper.GetOverContent(pdfFieldPosition.page).AddImage(pdfImage); + } + if (!fieldExpressionResult.Item2 && !imageResult.ShowField) + { + // Hide Fields + PdfDictionary field = fields.GetValue(0); + if ((PdfName)field.Get(PdfName.TYPE) == PdfName.ANNOT) + { + field.Put(PdfName.F, new PdfNumber(6)); + } + else + { + PdfArray fieldKids = (PdfArray)field.Get(PdfName.KIDS); + foreach (PdfIndirectReference fieldKidRef in fieldKids) + { + ((PdfDictionary)pdfReader.GetPdfObject(fieldKidRef.Number)).Put(PdfName.F, new PdfNumber(6)); + } + } + } + } + } + + pdfStamper.AcroFields.SetField(pdfFieldKey, fieldExpressionResult.Item1); + + if (fieldExpressionResult.Item2) // Expression Error + { + AcroFields.Item fields = pdfStamper.AcroFields.Fields[pdfFieldKey]; + for (int pdfFieldOrdinal = 0; pdfFieldOrdinal < fields.Size; pdfFieldOrdinal++) + { + PdfDictionary field = fields.GetValue(pdfFieldOrdinal); + PdfDictionary fieldMK; + if (field.Contains(PdfName.MK)) + fieldMK = field.GetAsDict(PdfName.MK); + else + { + fieldMK = new PdfDictionary(PdfName.MK); + field.Put(PdfName.MK, fieldMK); + } + fieldMK.Put(PdfName.BC, new PdfArray(new float[] { 1, 0, 0 })); + } + } + } + } + else + { + throw new InvalidOperationException("Pdf template field expressions are out of sync with the expression cache"); + } + } + State.FlushFieldCache(); + } + + pdfStamper.Close(); + pdfReader.Close(); + + if (dt.Scope == DocumentTemplate.DocumentTemplateScopes.Job) + { + // Write Job Log + + Job j = (Job)Data; + JobLog jl = new JobLog() + { + JobId = j.Id, + TechUserId = CreatorUser.Id, + Timestamp = DateTime.Now + }; + jl.Comments = string.Format("Document Generated{0}{1} [{2}]", Environment.NewLine, dt.Description, dt.Id); + dbContext.JobLogs.Add(jl); + } + + pdfGeneratedStream.Position = 0; + return pdfGeneratedStream; + } + + } +} diff --git a/Disco.BI/BI/Interop/Pdf/PdfImporter.cs b/Disco.BI/BI/Interop/Pdf/PdfImporter.cs new file mode 100644 index 00000000..48a00a2f --- /dev/null +++ b/Disco.BI/BI/Interop/Pdf/PdfImporter.cs @@ -0,0 +1,471 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using iTextSharp.text.pdf; +using System.IO; +using System.Drawing; +using Disco.BI.DocumentTemplateBI.Importer; +using Disco.BI.DocumentTemplateBI; +using System.Drawing.Drawing2D; +using com.google.zxing; +using com.google.zxing.multi.qrcode; +using Disco.Data.Repository; +using System.Web.Caching; +using Disco.BI.Extensions; +using Disco.Models.Repository; +using System.Collections; +using com.google.zxing.common; +using BitMiracle.LibTiff.Classic; + +namespace Disco.BI.Interop.Pdf +{ + public static class PdfImporter + { + + private class DetectImageResult : IDisposable + { + public Result Result { get; set; } + public Point ResultOffset { get; set; } + public double ResultScale { get; set; } + + public void Dispose() + { + // Do Nothing; yet... + } + } + + private class DetectPageResult : IDisposable + { + public int PageNumber { get; set; } + public DocumentUniqueIdentifier DetectedIdentifier { get; set; } + public Disco.BI.Extensions.UtilityExtensions.ImageMontage ThumbnailImage { get; set; } + public MemoryStream AttachmentThumbnailImage { get; set; } + public Disco.BI.Extensions.UtilityExtensions.ImageMontage UndetectedPageImage { get; set; } + + public void DrawThumbnailImageResult(DetectImageResult Result, Image DetectedImage) + { + if (Result.Result.ResultPoints.Length == 4) + { // Draw Square on Thumbnail + using (Graphics thumbnailGraphics = Graphics.FromImage(ThumbnailImage.Montage)) + { + var thumbnailOffset = ThumbnailImage.MontageSourceImageOffsets[DetectedImage]; + + var linePoints = Result.Result.ResultPoints.Select(p => new Point((int)(thumbnailOffset + ((Result.ResultOffset.X + p.X) * Result.ResultScale * ThumbnailImage.MontageScale)), (int)((p.Y + Result.ResultOffset.Y) * Result.ResultScale * ThumbnailImage.MontageScale))).ToArray(); + using (GraphicsPath graphicsPath = new GraphicsPath()) + { + for (int linePointIndex = 0; linePointIndex < (linePoints.Length - 1); linePointIndex++) + graphicsPath.AddLine(linePoints[linePointIndex], linePoints[linePointIndex + 1]); + graphicsPath.AddLine(linePoints[linePoints.Length - 1], linePoints[0]); + using (SolidBrush graphicsBrush = new SolidBrush(Color.FromArgb(128, 255, 0, 0))) + thumbnailGraphics.FillPath(graphicsBrush, graphicsPath); + using (Pen graphicsPen = new Pen(Color.FromArgb(200, 255, 0, 0), 2)) + thumbnailGraphics.DrawPath(graphicsPen, graphicsPath); + } + } + } + } + + public void Dispose() + { + if (ThumbnailImage != null) + { + ThumbnailImage.Dispose(); + ThumbnailImage = null; + } + if (AttachmentThumbnailImage != null) + { + AttachmentThumbnailImage.Dispose(); + AttachmentThumbnailImage = null; + } + if (UndetectedPageImage != null) + { + UndetectedPageImage.Dispose(); + UndetectedPageImage = null; + } + } + } + + private static DetectImageResult DetectImage(DiscoDataContext dbContext, Bitmap pageImageOriginal, string SessionId, IEnumerable detectDocumentTemplates) + { + Bitmap pageImage = pageImageOriginal; + double pageImageModifiedScale = 1; + + try + { + // Resize if Resolution > 80; Set to 72 Dpi + if (pageImage.HorizontalResolution > 80 || pageImage.VerticalResolution > 80) + { + pageImageModifiedScale = pageImage.HorizontalResolution / 72; + int newWidth = (int)((72 / pageImage.HorizontalResolution) * pageImage.Width); + int newHeight = (int)((72 / pageImage.VerticalResolution) * pageImage.Height); + pageImage = pageImage.ResizeImage(newWidth, newHeight); + } + + Result zxingResult = default(Result); + Point zxingResultOffset = Point.Empty; + QRCodeMultiReader zxingMfr = new QRCodeMultiReader(); + Hashtable zxingMfrHints = new Hashtable(); + zxingMfrHints.Add(DecodeHintType.TRY_HARDER, true); + // Look in 'Known' locations + foreach (DocumentTemplate dt in detectDocumentTemplates) + { + var locationBag = dt.QRCodeLocations(dbContext); + foreach (var location in locationBag) + { + System.Drawing.Rectangle region = new Rectangle( + (int)(pageImage.Width * location.Left), + (int)(pageImage.Width * location.Top), + (int)(pageImage.Width * location.Width), + (int)(pageImage.Height * location.Height)); + RGBLuminanceSource zxingSource; + using (Bitmap pageImageRegion = new Bitmap(region.Width, region.Height)) + { + using (Graphics pageImageRegionGraphics = Graphics.FromImage(pageImageRegion)) + { + pageImageRegionGraphics.DrawImage(pageImage, 0, 0, region, GraphicsUnit.Pixel); + } + zxingSource = new RGBLuminanceSource(pageImageRegion, region.Width, region.Height); + } + var zxingHB = new HybridBinarizer(zxingSource); + var zxingBB = new BinaryBitmap(zxingHB); + try + { + zxingResult = zxingMfr.decode(zxingBB, zxingMfrHints); + zxingResultOffset = region.Location; + break; + } + catch (ReaderException) + { + // Ignore Location Errors + } + } + if (zxingResult != null) + break; + } + if (zxingResult == null) + { + // Not found with 'known' locations + // Try whole image + var zxingSource = new RGBLuminanceSource(pageImage, pageImage.Width, pageImage.Height); + var zxingHB = new HybridBinarizer(zxingSource); + var zxingBB = new BinaryBitmap(zxingHB); + try + { + zxingResult = zxingMfr.decode(zxingBB, zxingMfrHints); + } + catch (ReaderException) + { + // Ignore Errors + } + } + + if (zxingResult != null) + return new DetectImageResult() { Result = zxingResult, ResultOffset = zxingResultOffset, ResultScale = pageImageModifiedScale }; + else + return null; + } + catch (Exception ex) + { + throw ex; + } + finally + { + if (pageImageOriginal != pageImage) + pageImage.Dispose(); + } + } + + private static DetectPageResult DetectPage(DiscoDataContext dbContext, PdfReader pdfReader, int PageNumber, string SessionId, string DataStoreSessionCacheLocation, IEnumerable detectDocumentTemplates) + { + DetectPageResult result = new DetectPageResult() { PageNumber = PageNumber }; + + DocumentImporterLog.LogImportPageProgress(SessionId, PageNumber, 10, "Loading Page Images"); + + using (DisposableImageCollection pageImages = pdfReader.PdfPageImages(PageNumber)) + { + if (pageImages.Count > 0) + { + result.ThumbnailImage = pageImages.BuildImageMontage(256, 256); + var pageThumbnailFilename = Path.Combine(DataStoreSessionCacheLocation, string.Format("{0}-{1}", SessionId, PageNumber)); + + result.ThumbnailImage.Montage.SavePng(pageThumbnailFilename); + DocumentImporterLog.LogImportPageImageUpdate(SessionId, PageNumber); + + double pageProgressInterval = 90 / pageImages.Count; + + foreach (var pageImageOriginal in pageImages) + { + DocumentImporterLog.LogImportPageProgress(SessionId, PageNumber, (int)(10 + (pageProgressInterval * pageImages.IndexOf(pageImageOriginal))), String.Format("Processing Page Image {0} of {1}", pageImages.IndexOf(pageImageOriginal) + 1, pageImages.Count)); + + using (var zxingResult = DetectImage(dbContext, pageImageOriginal, SessionId, detectDocumentTemplates)) + { + if (zxingResult != null) + { + if (DocumentUniqueIdentifier.IsDocumentUniqueIdentifier(zxingResult.Result.Text)) + { + result.DrawThumbnailImageResult(zxingResult, pageImageOriginal); + result.ThumbnailImage.Montage.SavePng(pageThumbnailFilename); + DocumentImporterLog.LogImportPageImageUpdate(SessionId, PageNumber); + + result.AttachmentThumbnailImage = new MemoryStream(); + using (var attachmentThumbImage = pageImages.BuildImageMontage(48, 48, true)) + { + using (Image mimeTypeIcon = Disco.Properties.Resources.MimeType_pdf16) + attachmentThumbImage.Montage.EmbedIconOverlay(mimeTypeIcon); + attachmentThumbImage.Montage.SaveJpg(95, result.AttachmentThumbnailImage); + } + + result.DetectedIdentifier = new DocumentUniqueIdentifier(zxingResult.Result.Text, PageNumber.ToString()); + + return result; + } + } + } + } + + // Page Unassigned + result.UndetectedPageImage = pageImages.BuildImageMontage(700, 700); + } + + return result; + } + } + + public static bool ProcessPdfAttachment(string Filename, DiscoDataContext dbContext, string SessionId, Cache HttpCache) + { + var dataStoreUnassignedLocation = DataStore.CreateLocation(dbContext, "DocumentDropBox_Unassigned"); + + DocumentImporterLog.LogImportProgress(SessionId, 0, "Reading File"); + + using (FileStream fs = new FileStream(Filename, FileMode.Open, FileAccess.ReadWrite, FileShare.None)) + { + var pdfReader = new PdfReader(fs); + + var pdfPagesAssigned = new Dictionary>(); + + var dataStoreSessionPagesCacheLocation = DataStore.CreateLocation(dbContext, "Cache\\DocumentDropBox_SessionPages"); + var detectDocumentTemplates = dbContext.DocumentTemplates.ToArray(); + + double progressInterval = 70 / pdfReader.NumberOfPages; + + for (int PageNumber = 1; PageNumber <= pdfReader.NumberOfPages; PageNumber++) + { + DocumentImporterLog.LogImportProgress(SessionId, (int)(PageNumber * progressInterval), string.Format("Processing Page {0} of {1}", PageNumber, pdfReader.NumberOfPages)); + DocumentImporterLog.LogImportPageStarting(SessionId, PageNumber); + + using (var pageResult = DetectPage(dbContext, pdfReader, PageNumber, SessionId, dataStoreSessionPagesCacheLocation, detectDocumentTemplates)) + { + if (pageResult.DetectedIdentifier != null) + { + var docId = pageResult.DetectedIdentifier; + pdfPagesAssigned.Add(PageNumber, new Tuple(docId, pageResult.AttachmentThumbnailImage.ToArray())); + + docId.LoadComponents(dbContext); + DocumentImporterLog.LogImportPageDetected(SessionId, PageNumber, docId.DocumentUniqueId, docId.DocumentTemplate.Description, docId.DocumentTemplate.Scope, docId.DataId, docId.DataDescription); + } + else + { + // Undetected Page - Write Preview-Images while still in Memory + DocumentImporterLog.LogImportPageUndetected(SessionId, PageNumber); + + // Thumbnail: + string unassignedImageThumbnailFilename = Path.Combine(dataStoreUnassignedLocation, string.Format("{0}_{1}_thumbnail.png", SessionId, PageNumber)); + pageResult.ThumbnailImage.Montage.SavePng(unassignedImageThumbnailFilename); + // Large Preview + string unassignedImageFilename = Path.Combine(dataStoreUnassignedLocation, string.Format("{0}_{1}.jpg", SessionId, PageNumber)); + pageResult.UndetectedPageImage.Montage.SaveJpg(90, unassignedImageFilename); + } + } + + } + + // Write out Assigned Documents + var assignedDocuments = pdfPagesAssigned.GroupBy(u => u.Value.Item1.DocumentUniqueId).ToList(); + if (assignedDocuments.Count > 0) + { + progressInterval = 20 / assignedDocuments.Count; + + foreach (var documentPortion in assignedDocuments) + { + DocumentImporterLog.LogImportProgress(SessionId, (int)(70 + (assignedDocuments.IndexOf(documentPortion) * progressInterval)), string.Format("Importing Documents {0} of {1}", assignedDocuments.IndexOf(documentPortion) + 1, assignedDocuments.Count)); + + var documentPortionInfo = documentPortion.First().Value; + var documentPortionIdentifier = documentPortionInfo.Item1; + var documentPortionThumbnail = documentPortionInfo.Item2; + + if (!documentPortionIdentifier.LoadComponents(dbContext)) + { + // Unknown Document Unique Id + foreach (var dp in documentPortion) + { + var tag = int.Parse(dp.Value.Item1.Tag); + if (pdfPagesAssigned.ContainsKey(tag)) + pdfPagesAssigned.Remove(tag); + } + } + else + { + using (MemoryStream msBuilder = new MemoryStream()) + { + var pdfDoc = new iTextSharp.text.Document(); + var pdfCopy = new PdfCopy(pdfDoc, msBuilder); + + pdfDoc.Open(); + pdfCopy.CloseStream = false; + + foreach (var dp in documentPortion.OrderBy(dg => dg.Value.Item1.Page)) + { + var pageSize = pdfReader.GetPageSizeWithRotation(dp.Key); + var page = pdfCopy.GetImportedPage(pdfReader, dp.Key); + + pdfDoc.SetPageSize(pageSize); + pdfDoc.NewPage(); + + pdfCopy.AddPage(page); + } + + pdfDoc.Close(); + pdfCopy.Close(); + + msBuilder.Position = 0; + + var attachmentSuccess = documentPortionIdentifier.ImportPdfAttachment(dbContext, msBuilder, documentPortionThumbnail); + + if (!attachmentSuccess) + { // Unable to add Attachment + foreach (var dp in documentPortion) + { + var tag = int.Parse(dp.Value.Item1.Tag); + if (pdfPagesAssigned.ContainsKey(tag)) + pdfPagesAssigned.Remove(tag); + } + } + } + } + + + } + } + + // Write out Unassigned Pages + List pdfPagesUnassigned = new List(); + for (int PageNumber = 1; PageNumber <= pdfReader.NumberOfPages; PageNumber++) + if (!pdfPagesAssigned.ContainsKey(PageNumber)) + pdfPagesUnassigned.Add(PageNumber); + if (pdfPagesUnassigned.Count > 0) + { + progressInterval = 10 / pdfPagesUnassigned.Count; + //dataStoreUnassignedLocation + foreach (var PageNumber in pdfPagesUnassigned) + { + DocumentImporterLog.LogImportProgress(SessionId, (int)(90 + (pdfPagesUnassigned.IndexOf(PageNumber) * progressInterval)), string.Format("Processing Undetected Documents {0} of {1}", pdfPagesUnassigned.IndexOf(PageNumber) + 1, pdfPagesUnassigned.Count)); + + using (MemoryStream msBuilder = new MemoryStream()) + { + var pdfDoc = new iTextSharp.text.Document(); + var pdfCopy = new PdfCopy(pdfDoc, msBuilder); + + pdfDoc.Open(); + pdfCopy.CloseStream = false; + + var pageSize = pdfReader.GetPageSizeWithRotation(PageNumber); + var page = pdfCopy.GetImportedPage(pdfReader, PageNumber); + pdfDoc.SetPageSize(pageSize); + pdfDoc.NewPage(); + + pdfCopy.AddPage(page); + pdfDoc.Close(); + pdfCopy.Close(); + + File.WriteAllBytes(Path.Combine(dataStoreUnassignedLocation, string.Format("{0}_{1}.pdf", SessionId, PageNumber)), msBuilder.ToArray()); + + DocumentImporterLog.LogImportPageUndetectedStored(SessionId, PageNumber); + } + } + } + + } + + DocumentImporterLog.LogImportProgress(SessionId, 100, "Finished Importing Document"); + + return true; + } + public static bool ProcessPdfAttachment(string Filename, DiscoDataContext dbContext, string DocumentTemplateId, string DataId, string UserId, DateTime Timestamp) + { + using (FileStream fs = new FileStream(Filename, FileMode.Open, FileAccess.ReadWrite, FileShare.None)) + { + DocumentUniqueIdentifier identifier = new DocumentUniqueIdentifier(DocumentTemplateId, DataId, UserId, Timestamp); + identifier.LoadComponents(dbContext); + return identifier.ImportPdfAttachment(dbContext, fs, null); + } + } + + public static DisposableImageCollection GetPageImages(PdfReader pdfReader, int PageNumber) + { + var pageImages = new DisposableImageCollection(); + + var pdfPage = pdfReader.GetPageN(PageNumber); + PdfDictionary pdfPageResouces = (PdfDictionary)((PdfDictionary)pdfPage.GetDirectObject(PdfName.RESOURCES)).GetDirectObject(PdfName.XOBJECT); + + foreach (var pdfResKey in pdfPageResouces.Keys) + { + var pdfRes = pdfPageResouces.GetDirectObject(pdfResKey); + if (pdfRes.IsStream()) + { + var pdfResStream = (PdfStream)pdfRes; + var pdfResSubType = pdfResStream.Get(PdfName.SUBTYPE); + if (pdfResSubType != null && pdfResSubType == PdfName.IMAGE) + { + if (pdfResStream.Get(PdfName.FILTER) == PdfName.CCITTFAXDECODE) + { // TIFF + // Try Using GDI+ for TIFF... + var width = ((PdfNumber)(pdfResStream.Get(PdfName.WIDTH))).IntValue; + var height = ((PdfNumber)(pdfResStream.Get(PdfName.HEIGHT))).IntValue; + var bpc = ((PdfNumber)(pdfResStream.Get(PdfName.BITSPERCOMPONENT))).IntValue; + + var compressionMethod = Compression.CCITTFAX3; + + var decodeParams = pdfResStream.GetAsDict(PdfName.DECODEPARMS); + if (decodeParams != null && decodeParams.Contains(PdfName.K) && decodeParams.GetAsNumber(PdfName.K).IntValue < 0) + compressionMethod = Compression.CCITTFAX4; + + using (MemoryStream tiffStream = PdfToTiffStream(PdfReader.GetStreamBytesRaw((PRStream)pdfResStream), width, height, bpc, compressionMethod)) + { + pageImages.Add((Bitmap)Bitmap.FromStream(tiffStream)); + } + continue; + } + if (pdfResStream.Get(PdfName.FILTER) == PdfName.DCTDECODE) + { // JPG + using (MemoryStream jpgStream = new MemoryStream(PdfReader.GetStreamBytesRaw((PRStream)pdfResStream))) + { + pageImages.Add((Bitmap)Bitmap.FromStream(jpgStream, true, true)); + } + continue; + } + } + } + } + + return pageImages; + } + + private static MemoryStream PdfToTiffStream(byte[] PdfStream, int Width, int Height, int BitsPerComponent, Compression CompressionMethod) + { + var ms = new MemoryStream(); + + Tiff tif = Tiff.ClientOpen("in-memory", "w", ms, new TiffStream()); + tif.SetField(TiffTag.IMAGEWIDTH, Width); + tif.SetField(TiffTag.IMAGELENGTH, Height); + tif.SetField(TiffTag.COMPRESSION, CompressionMethod); + tif.SetField(TiffTag.BITSPERSAMPLE, BitsPerComponent); + tif.SetField(TiffTag.SAMPLESPERPIXEL, 1); + tif.WriteRawStrip(0, PdfStream, PdfStream.Length); + tif.Flush(); + + return ms; + } + + } +} diff --git a/Disco.BI/BI/Interop/PluginServices/IDiscoScheduledTask.cs b/Disco.BI/BI/Interop/PluginServices/IDiscoScheduledTask.cs new file mode 100644 index 00000000..5c817728 --- /dev/null +++ b/Disco.BI/BI/Interop/PluginServices/IDiscoScheduledTask.cs @@ -0,0 +1,14 @@ +//using System; +//using System.Collections.Generic; +//using System.Linq; +//using System.Text; +//using Disco.Data.Repository; +//using Quartz; + +//namespace Disco.BI.Interop.PluginServices +//{ +// interface IDiscoScheduledTask +// { +// void InitalizeScheduledTask(DiscoDataContext dbContext, IScheduler Scheduler); +// } +//} diff --git a/Disco.BI/BI/Interop/PluginServices/Utilities.cs b/Disco.BI/BI/Interop/PluginServices/Utilities.cs new file mode 100644 index 00000000..73568295 --- /dev/null +++ b/Disco.BI/BI/Interop/PluginServices/Utilities.cs @@ -0,0 +1,45 @@ +//using System; +//using System.Collections.Generic; +//using System.Linq; +//using System.Text; +//using Disco.Data.Repository; +//using Quartz; + +//namespace Disco.BI.Interop.PluginServices +//{ +// public static class Utilities +// { + +// public static void InitalizeScheduledTasks(DiscoDataContext dbContext, ISchedulerFactory SchedulerFactory) +// { + +// var scheduler = SchedulerFactory.GetScheduler(); + +// // Discover IDiscoScheduledTasks (Only from Disco Assemblies) +// var appDomain = AppDomain.CurrentDomain; + +// var scheduledTaskTypes = (from a in appDomain.GetAssemblies() +// where !a.GlobalAssemblyCache && !a.IsDynamic && a.FullName.StartsWith("Disco.", StringComparison.InvariantCultureIgnoreCase) +// from type in a.GetTypes() +// where typeof(IDiscoScheduledTask).IsAssignableFrom(type) && !type.IsAbstract +// select type); +// foreach (Type scheduledTaskType in scheduledTaskTypes) +// { +// IDiscoScheduledTask instance = (IDiscoScheduledTask)Activator.CreateInstance(scheduledTaskType); +// try +// { +// instance.InitalizeScheduledTask(dbContext, scheduler); +// } +// catch (Exception ex) +// { +// if (instance == null) +// Logging.SystemLog.LogException("Initializing Scheduled Task; Disco.BI.Interop.Plugins.Utilities.InitalizeScheduledTasks()", ex); +// else +// Logging.SystemLog.LogException(string.Format("Initializing Scheduled Task: '{0}'; Disco.BI.Interop.Plugins.Utilities.InitalizeScheduledTasks()", instance.GetType().Name), ex); +// } +// } + +// } + +// } +//} diff --git a/Disco.BI/BI/Interop/SignalRHandlers/UserHeldDevices.cs b/Disco.BI/BI/Interop/SignalRHandlers/UserHeldDevices.cs new file mode 100644 index 00000000..c14ccb24 --- /dev/null +++ b/Disco.BI/BI/Interop/SignalRHandlers/UserHeldDevices.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using SignalR; +using SignalR.Hosting.AspNet; +using SignalR.Infrastructure; + +namespace Disco.BI.Interop.SignalRHandlers +{ + public class UserHeldDevices : PersistentConnection + { + + internal static void UserJobUpdated(string JobUserId) + { + var connectionManager = GlobalHost.ConnectionManager; + var connectionContext = connectionManager.GetConnectionContext(); + if (connectionContext != null) + connectionContext.Connection.Broadcast(JobUserId); + } + + } +} diff --git a/Disco.BI/BI/JobBI/Searching.cs b/Disco.BI/BI/JobBI/Searching.cs new file mode 100644 index 00000000..072951b4 --- /dev/null +++ b/Disco.BI/BI/JobBI/Searching.cs @@ -0,0 +1,93 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Models.BI.Job; +using Disco.Data.Repository; +using Disco.Models.Repository; +using Disco.BI.Extensions; + +namespace Disco.BI.JobBI +{ + public static class Searching + { + public static JobTableModel Search(DiscoDataContext dbContext, string Term, int? LimitCount = null, bool IncludeJobStatus = true, bool SearchDetails = false) + { + int termInt = default(int); + + IQueryable query = default(IQueryable); + + if (int.TryParse(Term, out termInt)) + { + // Term is a Number (int) + if (SearchDetails) + { + query = BuildJobTableModel(dbContext).Where(j => + j.Id == termInt || + j.DeviceHeldLocation.Contains(Term) || + j.Device.SerialNumber.Contains(Term) || + j.Device.AssetNumber.Contains(Term) || + j.User.Id == Term || + j.User.Surname.Contains(Term) || + j.User.GivenName.Contains(Term) || + j.User.DisplayName.Contains(Term) || + j.JobLogs.Any(jl => jl.Comments.Contains(Term)) || + j.JobAttachments.Any(ja => ja.Comments.Contains(Term))); + } + else + { + query = BuildJobTableModel(dbContext).Where(j => + j.Id == termInt || + j.DeviceHeldLocation.Contains(Term) || + j.Device.SerialNumber.Contains(Term) || + j.Device.AssetNumber.Contains(Term) || + j.User.Id == Term || + j.User.Surname.Contains(Term) || + j.User.GivenName.Contains(Term) || + j.User.DisplayName.Contains(Term)); + } + } + else + { + if (SearchDetails) + { + query = BuildJobTableModel(dbContext).Where(j => + j.DeviceHeldLocation.Contains(Term) || + j.Device.SerialNumber.Contains(Term) || + j.Device.AssetNumber.Contains(Term) || + j.User.Id == Term || + j.User.Surname.Contains(Term) || + j.User.GivenName.Contains(Term) || + j.User.DisplayName.Contains(Term) || + j.JobLogs.Any(jl => jl.Comments.Contains(Term)) || + j.JobAttachments.Any(ja => ja.Comments.Contains(Term))); + } + else + { + query = BuildJobTableModel(dbContext).Where(j => + j.DeviceHeldLocation.Contains(Term) || + j.Device.SerialNumber.Contains(Term) || + j.Device.AssetNumber.Contains(Term) || + j.User.Id == Term || + j.User.Surname.Contains(Term) || + j.User.GivenName.Contains(Term) || + j.User.DisplayName.Contains(Term)); + } + } + + if (LimitCount.HasValue) + query = query.Take(LimitCount.Value); + + JobTableModel model = new JobTableModel() { ShowStatus = IncludeJobStatus }; + model.Fill(dbContext, query); + + return model; + } + + public static IQueryable BuildJobTableModel(DiscoDataContext dbContext) + { + return dbContext.Jobs.Include("JobType").Include("Device").Include("User").Include("OpenedTechUser"); + } + + } +} diff --git a/Disco.BI/BI/JobBI/Statistics/DailyOpenedClosed.cs b/Disco.BI/BI/JobBI/Statistics/DailyOpenedClosed.cs new file mode 100644 index 00000000..41766bc2 --- /dev/null +++ b/Disco.BI/BI/JobBI/Statistics/DailyOpenedClosed.cs @@ -0,0 +1,142 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Quartz; +using Disco.Models.BI.Job.Statistics; +using Disco.Data.Repository; +using Quartz.Impl; +using Disco.Services.Tasks; + +namespace Disco.BI.JobBI.Statistics +{ + public class DailyOpenedClosed : ScheduledTask + { + + private static List _data; + private static object _dataLock = new object(); + + + public override string TaskName { get { return "Job Statistics - Daily Opened/Closed Task"; } } + public override bool SingleInstanceTask { get { return true; } } + public override bool CancelInitiallySupported { get { return false; } } + + public override void InitalizeScheduledTask(DiscoDataContext dbContext) + { + // Trigger Daily @ 12:29am + TriggerBuilder triggerBuilder = TriggerBuilder.Create().WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(0, 29)); + + this.ScheduleTask(triggerBuilder); + } + protected override void ExecuteTask() + { + using (var dbContext = new DiscoDataContext()) + { + UpdateDataHistory(dbContext, true); + } + } + + //public void InitalizeScheduledTask(DiscoDataContext dbContext, IScheduler Scheduler) + //{ + // // Run @ 12:29am + // IJobDetail jobDetail = new JobDetailImpl("JobStatisticsDailyOpenedClosed", typeof(DailyOpenedClosed)); + // ITrigger trigger = TriggerBuilder.Create(). + // WithIdentity("JobStatisticsDailyOpenedClosedTrigger"). + // StartNow(). + // WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(0, 29)). + // Build(); + // Scheduler.ScheduleJob(jobDetail, trigger); + //} + + //public void Execute(IJobExecutionContext context) + //{ + // try + // { + // using (var dbContext = new DiscoDataContext()) + // { + // UpdateDataHistory(dbContext, true); + // } + // } + // catch (Exception ex) + // { + // Logging.SystemLog.LogException("Disco.BI.JobBI.Statistics.DailyOpenedClosed", ex); + // } + //} + + private static void UpdateDataHistory(DiscoDataContext dbContext, bool Refresh = false) + { + DateTime historyEnd = DateTime.Now.AddDays(-1).Date; + + if (Refresh || _data == null || _data.Count == 0 || _data.Last().Timestamp < historyEnd) + { + lock (_dataLock) + { + if (Refresh || _data == null || _data.Count == 0 || _data.Last().Timestamp < historyEnd) + { + DateTime historyStart = DateTime.Now.AddDays(-28).Date; + + // Initialize Memory Store + List resultData; + if (Refresh || _data == null) + resultData = new List(); + else + resultData = _data; + + // Remove Old Data + while (resultData.Count > 0 && resultData[0].Timestamp < historyStart) + resultData.RemoveAt(0); + + // Calculate Update Scope + DateTime processDate = historyStart; + if (resultData.Count > 0) + processDate = resultData.Last().Timestamp.AddDays(-1); + + // Cache Data + while (processDate <= historyEnd) + { + resultData.Add(Data(dbContext, processDate)); + processDate = processDate.AddDays(1); + } + + _data = resultData; + } + } + } + } + + private static DailyOpenedClosedItem Data(DiscoDataContext dbContext, DateTime ProcessDate) + { + DateTime processDateStart = ProcessDate; + DateTime processDateEnd = ProcessDate.AddDays(1); + + int totalJobs = dbContext.Jobs.Where(j => j.OpenedDate < processDateEnd && (!j.ClosedDate.HasValue || j.ClosedDate > processDateEnd)).Count(); + int openedJobs = dbContext.Jobs.Where(j => j.OpenedDate > processDateStart && j.OpenedDate < processDateEnd).Count(); + int closedJobs = dbContext.Jobs.Where(j => j.ClosedDate > processDateStart && j.ClosedDate < processDateEnd).Count(); + + return new DailyOpenedClosedItem() + { + Timestamp = ProcessDate, + TotalJobs = totalJobs, + OpenedJobs = openedJobs, + ClosedJobs = closedJobs + }; + } + + public static List Data(DiscoDataContext dbContext, bool FilterUnimportantWeekends = false) + { + List resultData; + + UpdateDataHistory(dbContext); + + if (FilterUnimportantWeekends) + resultData = _data.Where(i => (i.Timestamp.DayOfWeek != DayOfWeek.Saturday && i.Timestamp.DayOfWeek != DayOfWeek.Sunday) || + (i.OpenedJobs > 0 || i.ClosedJobs > 0)).ToList(); + else + resultData = _data.ToList(); + + resultData.Add(Data(dbContext, DateTime.Today)); + + return resultData; + } + } +} diff --git a/Disco.BI/BI/JobBI/Utilities.cs b/Disco.BI/BI/JobBI/Utilities.cs new file mode 100644 index 00000000..a7fb228a --- /dev/null +++ b/Disco.BI/BI/JobBI/Utilities.cs @@ -0,0 +1,171 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Models.Repository; +using Disco.Data.Repository; +using Disco.Models.BI.Job; + +namespace Disco.BI.JobBI +{ + public static class Utilities + { + public static Job Create(DiscoDataContext dbContext, Device device, User user, JobType type, List subTypes, User initialTech) + { + Job j = new Job() + { + JobType = type, + OpenedTechUserId = initialTech.Id, + OpenedTechUser = initialTech, + OpenedDate = DateTime.Now + }; + + // Device + if (device != null) + { + j.Device = device; + j.DeviceSerialNumber = device.SerialNumber; + } + + // User + if (user != null) + { + j.User = user; + j.UserId = user.Id; + } + + // Sub Types + List jobSubTypes = subTypes.ToList(); + j.JobSubTypes = jobSubTypes; + + dbContext.Jobs.Add(j); + + switch (type.Id) + { + case JobType.JobTypeIds.HWar: + dbContext.JobMetaWarranties.Add(new JobMetaWarranty() { Job = j }); + break; + case JobType.JobTypeIds.HNWar: + dbContext.JobMetaNonWarranties.Add(new JobMetaNonWarranty() { Job = j }); + if (device != null) + { + // Add Job Components + var components = dbContext.DeviceComponents.Include("JobSubTypes").Where(c => !c.DeviceModelId.HasValue || c.DeviceModelId == j.Device.DeviceModelId); + var addedComponents = new List(); + foreach (var c in components) + { + if (c.JobSubTypes.Count == 0) + { // No Filter + addedComponents.Add(c); + } + else + { + foreach (var st in c.JobSubTypes) + { + foreach (var jst in jobSubTypes) + { + if (st.JobTypeId == jst.JobTypeId && st.Id == jst.Id) + { + addedComponents.Add(c); + break; + } + } + if (addedComponents.Contains(c)) + break; + } + } + } + foreach (var c in addedComponents) + dbContext.JobComponents.Add(new JobComponent() + { + Job = j, + TechUserId = initialTech.Id, + Cost = c.Cost, + Description = c.Description + }); + } + break; + } + + return j; + } + + public static string JobStatusDescription(string StatusId, Job j = null) + { + switch (StatusId) + { + case Job.JobStatusIds.Open: + return "Open"; + case Job.JobStatusIds.Closed: + return "Closed"; + case Job.JobStatusIds.AwaitingWarrantyRepair: + if (j == null) + return "Awaiting Warranty Repair"; + else + if (j.DeviceHeld.HasValue) + return string.Format("Awaiting Warranty Repair ({0})", j.JobMetaWarranty.ExternalName); + else + return string.Format("Awaiting Warranty Repair - Not Held ({0})", j.JobMetaWarranty.ExternalName); + case Job.JobStatusIds.AwaitingRepairs: + if (j == null) + return "Awaiting Repairs"; + else + if (j.DeviceHeld.HasValue) + return string.Format("Awaiting Repairs ({0})", j.JobMetaNonWarranty.RepairerName); + else + return string.Format("Awaiting Repairs - Not Held ({0})", j.JobMetaNonWarranty.RepairerName); + case Job.JobStatusIds.AwaitingDeviceReturn: + return "Awaiting Device Return"; + case Job.JobStatusIds.AwaitingUserAction: + return "Awaiting User Action"; + case Job.JobStatusIds.AwaitingAccountingPayment: + return "Awaiting Accounting Payment"; + case Job.JobStatusIds.AwaitingAccountingCharge: + return "Awaiting Accounting Charge"; + case Job.JobStatusIds.AwaitingInsuranceProcessing: + return "Awaiting Insurance Processing"; + default: + return "Unknown"; + } + } + public static string JobStatusDescription(string StatusId, JobTableModel.JobTableItemModelIncludeStatus j = null) + { + switch (StatusId) + { + case Job.JobStatusIds.Open: + return "Open"; + case Job.JobStatusIds.Closed: + return "Closed"; + case Job.JobStatusIds.AwaitingWarrantyRepair: + if (j == null) + return "Awaiting Warranty Repair"; + else + if (j.DeviceHeld.HasValue) + return string.Format("Awaiting Warranty Repair ({0})", j.JobMetaWarranty_ExternalName); + else + return string.Format("Awaiting Warranty Repair - Not Held ({0})", j.JobMetaWarranty_ExternalName); + case Job.JobStatusIds.AwaitingRepairs: + if (j == null) + return "Awaiting Repairs"; + else + if (j.DeviceHeld.HasValue) + return string.Format("Awaiting Repairs ({0})", j.JobMetaNonWarranty_RepairerName); + else + return string.Format("Awaiting Repairs - Not Held ({0})", j.JobMetaNonWarranty_RepairerName); + case Job.JobStatusIds.AwaitingDeviceReturn: + return "Awaiting Device Return"; + case Job.JobStatusIds.AwaitingUserAction: + return "Awaiting User Action"; + case Job.JobStatusIds.AwaitingAccountingPayment: + return "Awaiting Accounting Payment"; + case Job.JobStatusIds.AwaitingAccountingCharge: + return "Awaiting Accounting Charge"; + case Job.JobStatusIds.AwaitingInsuranceProcessing: + return "Awaiting Insurance Processing"; + default: + return "Unknown"; + } + } + + } +} diff --git a/Disco.BI/BI/UserBI/Searching.cs b/Disco.BI/BI/UserBI/Searching.cs new file mode 100644 index 00000000..9ced0649 --- /dev/null +++ b/Disco.BI/BI/UserBI/Searching.cs @@ -0,0 +1,61 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Models.BI.Search; +using Disco.Models.Repository; +using Disco.Data.Repository; + +namespace Disco.BI.UserBI +{ + public static class Searching + { + + public static List SearchUpstream(string Term) + { + return Interop.ActiveDirectory.ActiveDirectory.SearchUsers(Term).Select(adU => adU.ToRepositoryUser()).ToList(); + } + + private static List Search_SelectUserSearchResultItems(IQueryable Query, int? LimitCount = null) + { + if (LimitCount.HasValue) + Query = Query.Take(LimitCount.Value); + + return Query.Select(u => new UserSearchResultItem() + { + Id = u.Id, + Surname = u.Surname, + GivenName = u.GivenName, + DisplayName = u.DisplayName, + AssignedDevicesCount = u.DeviceUserAssignments.Where(dua => !dua.UnassignedDate.HasValue).Count(), + JobCount = u.Jobs.Count() + }).ToList(); + } + + public static List Search(DiscoDataContext dbContext, string Term, int? LimitCount = null) + { + if (string.IsNullOrWhiteSpace(Term) || Term.Length < 2) + throw new ArgumentException("Search Term must contain at least two characters", "Term"); + + // Search Active Directory & Import Relevant Users + var adImportedUsers = Interop.ActiveDirectory.ActiveDirectory.SearchUsers(Term).Select(adU => adU.ToRepositoryUser()); + foreach (var adU in adImportedUsers) + { + var existingUser = dbContext.Users.Find(adU.Id); + if (existingUser != null) + existingUser.UpdateSelf(adU); + else + dbContext.Users.Add(adU); + dbContext.SaveChanges(); + UserCache.InvalidateValue(adU.Id); + } + + return Search_SelectUserSearchResultItems(dbContext.Users.Where(u => + u.Id.Contains(Term) || + u.Surname.Contains(Term) || + u.GivenName.Contains(Term) || + u.DisplayName.Contains(Term) + ), LimitCount); + } + } +} diff --git a/Disco.BI/BI/UserBI/UserCache.cs b/Disco.BI/BI/UserBI/UserCache.cs new file mode 100644 index 00000000..fe145b43 --- /dev/null +++ b/Disco.BI/BI/UserBI/UserCache.cs @@ -0,0 +1,193 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Collections.Concurrent; +using Disco.Models.Repository; +using Disco.Data.Repository; +using System.Web; +using Quartz; +using Quartz.Impl; +using Disco.Services.Tasks; + +namespace Disco.BI.UserBI +{ + public class UserCache : ScheduledTask + { + private static ConcurrentDictionary> _Cache = new ConcurrentDictionary>(); + private const long CacheTimeoutTicks = 6000000000; // 10 Minutes + private const string CacheHttpRequestKey = "Disco_CurrentUser"; + + public static User CurrentUser + { + get + { + string username = null; + User user; + + // Check for ASP.NET + if (HttpContext.Current != null) + { + if (HttpContext.Current.Request.IsAuthenticated) + { + user = (User)HttpContext.Current.Items[CacheHttpRequestKey]; + if (user != null) + return user; + + username = HttpContext.Current.User.Identity.Name; + } + else + { + return null; + //throw new PlatformNotSupportedException("ASP.NET Authentication is not correctly configured"); + } + } + + // User default User + if (username == null) + { + username = System.Security.Principal.WindowsIdentity.GetCurrent().Name; + } + + user = GetUser(username); + + if (HttpContext.Current != null && HttpContext.Current.Request.IsAuthenticated) + { + // Cache in current request + HttpContext.Current.Items[CacheHttpRequestKey] = user; + } + + return user; + } + } + + public static User GetUser(string Username) + { + // Check Cache + User u = TryUserCache(Username); + + if (u == null) + { + // Load from Repository + using (DiscoDataContext dbContext = new DiscoDataContext()) + { + u = GetUser(Username, dbContext, true); + } + } + return u; + } + + public static User GetUser(string Username, DiscoDataContext dbContext, bool ForceRefresh = false) + { + User u = null; + + // Check Cache + if (!ForceRefresh) + u = TryUserCache(Username); + + if (u == null) + { + string username = Username.ToLower(); + u = UserBI.Utilities.LoadUser(dbContext, username); + SetValue(username, u); + } + return u; + } + + private static User TryUserCache(string Username) + { + string username = Username.ToLower(); + Tuple userRecord; + if (_Cache.TryGetValue(username, out userRecord)) + { + if (userRecord.Item2 > DateTime.Now) + return userRecord.Item1; + else + _Cache.TryRemove(username, out userRecord); + } + return null; + } + + public static bool InvalidateValue(string Key) + { + Tuple userRecord; + return _Cache.TryRemove(Key.ToLower(), out userRecord); + } + + private static bool SetValue(string Key, User User) + { + string key = Key.ToLower(); + Tuple userRecord = new Tuple(User, DateTime.Now.AddTicks(CacheTimeoutTicks)); + if (_Cache.ContainsKey(key)) + { + Tuple oldUser; + if (_Cache.TryGetValue(key, out oldUser)) + { + return _Cache.TryUpdate(key, userRecord, oldUser); + } + } + return _Cache.TryAdd(key, userRecord); + } + + private static void CleanStaleCache() + { + var usernames = _Cache.Keys.ToArray(); + foreach (string username in usernames) + { + Tuple userRecord; + if (_Cache.TryGetValue(username, out userRecord)) + { + if (userRecord.Item2 <= DateTime.Now) + _Cache.TryRemove(username, out userRecord); + } + } + } + + //public void InitalizeScheduledTask(DiscoDataContext dbContext, IScheduler Scheduler) + //{ + // // Run @ every 15mins + + // // Next 15min interval + // DateTime now = DateTime.Now; + // int mins = (15 - (now.Minute % 15)); + // if (mins < 10) + // mins += 15; + // DateTimeOffset startAt = new DateTimeOffset(now).AddMinutes(mins).AddSeconds(now.Second * -1).AddMilliseconds(now.Millisecond * -1); + + // IJobDetail jobDetail = new JobDetailImpl("UserCache_CleanStaleCache", typeof(UserCache)); + // ITrigger trigger = TriggerBuilder.Create(). + // WithIdentity("UserCache_CleanStaleCacheTrigger").StartAt(startAt). + // WithSchedule(SimpleScheduleBuilder.RepeatMinutelyForever(15)). + // Build(); + // Scheduler.ScheduleJob(jobDetail, trigger); + //} + + public override string TaskName { get { return "User Cache - Clean Stale Cache"; } } + + public override bool SingleInstanceTask { get { return true; } } + public override bool CancelInitiallySupported { get { return false; } } + public override bool LogExceptionsOnly { get { return true; } } + + public override void InitalizeScheduledTask(DiscoDataContext dbContext) + { + // Run @ every 15mins + + // Next 15min interval + DateTime now = DateTime.Now; + int mins = (15 - (now.Minute % 15)); + if (mins < 10) + mins += 15; + DateTimeOffset startAt = new DateTimeOffset(now).AddMinutes(mins).AddSeconds(now.Second * -1).AddMilliseconds(now.Millisecond * -1); + + TriggerBuilder triggerBuilder = TriggerBuilder.Create().StartAt(startAt). + WithSchedule(SimpleScheduleBuilder.RepeatMinutelyForever(15)); + + this.ScheduleTask(triggerBuilder); + } + + protected override void ExecuteTask() + { + CleanStaleCache(); + } + } +} diff --git a/Disco.BI/BI/UserBI/Utilities.cs b/Disco.BI/BI/UserBI/Utilities.cs new file mode 100644 index 00000000..7839071f --- /dev/null +++ b/Disco.BI/BI/UserBI/Utilities.cs @@ -0,0 +1,76 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Models.Repository; +using Disco.Data.Repository; +using Disco.Models.BI.Search; +using System.Runtime.InteropServices; +using System.DirectoryServices.ActiveDirectory; +using Disco.Services.Logging; + +namespace Disco.BI.UserBI +{ + public static class Utilities + { + + public static User LoadUser(DiscoDataContext dbContext, string Username) + { + // Machine Account ? + if (Username.EndsWith("$")) + { + return Interop.ActiveDirectory.ActiveDirectory.GetMachineAccount(Username).ToRepositoryUser(); + } + + // User Account + User user = null; + try + { + var ADUser = Interop.ActiveDirectory.ActiveDirectory.GetUserAccount(Username); + if (ADUser == null) + throw new ArgumentException(string.Format("Invalid Username: '{0}'", Username), "Username"); + user = ADUser.ToRepositoryUser(); + } + catch (COMException ex) + { + // If "Server is not operational" then Try Cache + if (ex.ErrorCode != -2147016646) + { + throw ex; + } + SystemLog.LogException("Primary Domain Controller Down? Disco.BI.UserBI.Utilities.LoadUser", ex); + } + catch (ActiveDirectoryOperationException ex) + { + // Try From Cache... + SystemLog.LogException("Primary Domain Controller Down? Disco.BI.UserBI.Utilities.LoadUser", ex); + } + + // Update Repository + User existingUser; + if (user == null) + { + string username = Username.Contains(@"\") ? Username.Substring(Username.IndexOf(@"\") + 1) : Username; + existingUser = dbContext.Users.Find(username); + if (existingUser == null) + throw new ArgumentException(string.Format("Invalid User - Not In Disco DB: '{0}'", Username), "Username"); + else + return existingUser; + } + existingUser = dbContext.Users.Find(user.Id); + if (existingUser == null) + { + dbContext.Users.Add(user); + } + else + { + existingUser.UpdateSelf(user); + user = existingUser; + } + dbContext.SaveChanges(); + + return user; + } + + } +} diff --git a/Disco.BI/BI/Wireless/BaseWirelessProvider.cs b/Disco.BI/BI/Wireless/BaseWirelessProvider.cs new file mode 100644 index 00000000..dc4efa20 --- /dev/null +++ b/Disco.BI/BI/Wireless/BaseWirelessProvider.cs @@ -0,0 +1,83 @@ +using Disco.BI.Wireless.eduSTAR; +using Disco.Data.Configuration; +using Disco.Data.Repository; +using Disco.BI.Extensions; +using Disco.Models.Repository; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Linq.Expressions; +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Threading; +namespace Disco.BI.Wireless +{ + public abstract class BaseWirelessProvider + { + protected DiscoDataContext dbContext; + private static object _CertificateAllocateLock = System.Runtime.CompilerServices.RuntimeHelpers.GetObjectValue(new object()); + public static BaseWirelessProvider GetProvider(DiscoDataContext dbContext) + { + string provider = dbContext.DiscoConfiguration.Wireless.Provider; + if (provider == "eduSTAR") + { + return new eduSTARWirelessProvider(dbContext); + } + throw new System.NotSupportedException(string.Format("Wireless Provider Not Supported: '{0}'", dbContext.DiscoConfiguration.Wireless.Provider)); + } + protected BaseWirelessProvider(DiscoDataContext dbContext) + { + this.dbContext = dbContext; + } + private DeviceCertificate CertificateAllocate(ref Device repoDevice) + { + lock (BaseWirelessProvider._CertificateAllocateLock) + { + this.FillCertificateAutoBuffer(); + int timeout = 60; + int freeCertCount = this.dbContext.DeviceCertificates.Where(c => c.DeviceSerialNumber == null && c.Enabled).Count(); + while (!(freeCertCount > 0 | timeout <= 0)) + { + System.Threading.Thread.Sleep(500); + freeCertCount = this.dbContext.DeviceCertificates.Where(c => c.DeviceSerialNumber == null && c.Enabled).Count(); + timeout--; + } + DeviceCertificate cert = this.dbContext.DeviceCertificates.Where(c => c.DeviceSerialNumber == null && c.Enabled).FirstOrDefault(); + if (cert == null) + { + WirelessCertificatesLog.LogAllocationFailed(repoDevice.SerialNumber); + throw new System.InvalidOperationException("Unable to Allocate a Wireless Certificate"); + } + WirelessCertificatesLog.LogAllocated(cert.Name, repoDevice.SerialNumber); + cert.DeviceSerialNumber = repoDevice.SerialNumber; + cert.AllocatedDate = System.DateTime.Now; + this.dbContext.SaveChanges(); + return cert; + } + } + public DeviceCertificate Enrol(Device repoDevice) + { + DeviceCertificate allocatedCert = this.dbContext.DeviceCertificates.Where(c => c.DeviceSerialNumber == repoDevice.SerialNumber && c.Enabled).FirstOrDefault(); + if (allocatedCert != null) + { + return allocatedCert; + } + + // Removed 2012-06-14 G# - Properties moved to DeviceProfile model & DB Migrated in DBv3. + //if (repoDevice.DeviceProfile.Configuration(this.dbContext).AllocateWirelessCertificate) + if (repoDevice.DeviceProfile.AllocateCertificate) + { + allocatedCert = this.CertificateAllocate(ref repoDevice); + return allocatedCert; + } + else + { + return null; + } + } + protected abstract void FillCertificateAutoBuffer(); + public abstract void FillCertificateBuffer(int Amount); + public abstract System.Collections.Generic.List RemoveExistingCertificateNames(); + } +} diff --git a/Disco.BI/BI/Wireless/WirelessCertificatesLog.cs b/Disco.BI/BI/Wireless/WirelessCertificatesLog.cs new file mode 100644 index 00000000..78ab679e --- /dev/null +++ b/Disco.BI/BI/Wireless/WirelessCertificatesLog.cs @@ -0,0 +1,304 @@ +using Disco.Logging; +using Disco.Logging.Models; +using System; +using System.Collections.Generic; +using System.Diagnostics; +namespace Disco.BI.Wireless +{ + public class WirelessCertificatesLog : LogBase + { + public enum EventTypeIds + { + RetrievalStarting = 10, + RetrievalProgress, + RetrievalFinished, + RetrievalWarning = 15, + RetrievalError, + RetrievalCertificateStarting = 20, + RetrievalCertificateFinished = 22, + RetrievalCertificateWarning = 25, + RetrievalCertificateError, + Allocated = 40, + AllocationFailed = 50 + } + private const int _ModuleId = 60; + private static bool _IsCertificateRetrievalProcessing; + private static string _CertificateRetrievalStatus; + private static int _CertificateRetrievalProgress; + public static WirelessCertificatesLog Current + { + get + { + return (WirelessCertificatesLog)LogContext.LogModules[60]; + } + } + public static bool IsCertificateRetrievalProcessing + { + get + { + return WirelessCertificatesLog._IsCertificateRetrievalProcessing; + } + } + public override string ModuleDescription + { + get + { + return "Wireless Certificates"; + } + } + public override int ModuleId + { + get + { + return 60; + } + } + public override string ModuleName + { + get + { + return "WirelessCertificates"; + } + } + [System.Diagnostics.DebuggerNonUserCode] + public WirelessCertificatesLog() + { + } + private static void Log(WirelessCertificatesLog.EventTypeIds EventTypeId, params object[] Args) + { + WirelessCertificatesLog.Current.Log((int)EventTypeId, Args); + } + public static void LogRetrievalStarting(int CertificateCount, int CertificateIdFrom, int CertificateIdTo) + { + WirelessCertificatesLog.Log(WirelessCertificatesLog.EventTypeIds.RetrievalStarting, new object[] + { + CertificateCount, + CertificateIdFrom, + CertificateIdTo + }); + } + public static void LogRetrievalFinished() + { + WirelessCertificatesLog.Log(WirelessCertificatesLog.EventTypeIds.RetrievalFinished, new object[0]); + } + public static void LogRetrievalWarning(string Message) + { + WirelessCertificatesLog.Log(WirelessCertificatesLog.EventTypeIds.RetrievalWarning, new object[] + { + Message + }); + } + public static void LogRetrievalError(string Message) + { + WirelessCertificatesLog.Log(WirelessCertificatesLog.EventTypeIds.RetrievalError, new object[] + { + Message + }); + } + public static void LogRetrievalCertificateStarting(string CertificateId) + { + WirelessCertificatesLog.Log(WirelessCertificatesLog.EventTypeIds.RetrievalCertificateStarting, new object[] + { + CertificateId + }); + } + public static void LogRetrievalCertificateFinished(string CertificateId) + { + WirelessCertificatesLog.Log(WirelessCertificatesLog.EventTypeIds.RetrievalCertificateFinished, new object[] + { + CertificateId + }); + } + public static void LogRetrievalCertificateWarning(string CertificateId, string Message) + { + WirelessCertificatesLog.Log(WirelessCertificatesLog.EventTypeIds.RetrievalCertificateWarning, new object[] + { + CertificateId, + Message + }); + } + public static void LogRetrievalCertificateError(string CertificateId, string Message) + { + WirelessCertificatesLog.Log(WirelessCertificatesLog.EventTypeIds.RetrievalCertificateError, new object[] + { + CertificateId, + Message + }); + } + public static void LogAllocated(string CertificateId, string DeviceSerialNumber) + { + WirelessCertificatesLog.Log(WirelessCertificatesLog.EventTypeIds.Allocated, new object[] + { + CertificateId, + DeviceSerialNumber + }); + } + public static void LogAllocationFailed(string DeviceSerialNumber) + { + WirelessCertificatesLog.Log(WirelessCertificatesLog.EventTypeIds.AllocationFailed, new object[] + { + DeviceSerialNumber + }); + } + public static void LogCertificateRetrievalProgress(bool? IsProcessing, int? Progress, string Status) + { + bool flag = IsProcessing.HasValue; + if (flag) + { + WirelessCertificatesLog._IsCertificateRetrievalProcessing = IsProcessing.Value; + } + flag = WirelessCertificatesLog._IsCertificateRetrievalProcessing; + if (flag) + { + bool flag2 = Status != null; + if (flag2) + { + WirelessCertificatesLog._CertificateRetrievalStatus = Status; + } + flag2 = Progress.HasValue; + if (flag2) + { + WirelessCertificatesLog._CertificateRetrievalProgress = Progress.Value; + } + } + else + { + WirelessCertificatesLog._CertificateRetrievalStatus = null; + WirelessCertificatesLog._CertificateRetrievalProgress = 0; + } + WirelessCertificatesLog.Log(WirelessCertificatesLog.EventTypeIds.RetrievalProgress, new object[] + { + WirelessCertificatesLog._IsCertificateRetrievalProcessing, + WirelessCertificatesLog._CertificateRetrievalProgress, + WirelessCertificatesLog._CertificateRetrievalStatus + }); + } + protected override System.Collections.Generic.List LoadEventTypes() + { + return new System.Collections.Generic.List + { + new LogEventType + { + Id = 10, + ModuleId = 60, + Name = "Retrieval Starting", + Format = "Starting retrieval of {0} certificate/s ({1} to {2})", + Severity = 0, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 11, + ModuleId = 60, + Name = "Retrieval Progress", + Format = "Processing: {0}; {1}% Complete; Status: {2}", + Severity = 0, + UseLive = true, + UsePersist = false, + UseDisplay = false + }, + new LogEventType + { + Id = 12, + ModuleId = 60, + Name = "Retrieval Finished", + Format = "Retrieval of Certificates Complete", + Severity = 0, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 15, + ModuleId = 60, + Name = "Retrieval Warning", + Format = "Retrieval Warning: {0}", + Severity = 1, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 16, + ModuleId = 60, + Name = "Retrieval Error", + Format = "Retrieval Error: {0}", + Severity = 2, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 20, + ModuleId = 60, + Name = "Retrieval Certificate Starting", + Format = "Retrieving Certificate: {0}", + Severity = 0, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 22, + ModuleId = 60, + Name = "Retrieval Certificate Finished", + Format = "Certificate Retrieved: {0}", + Severity = 0, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 25, + ModuleId = 60, + Name = "Retrieval Certificate Warning", + Format = "{0} Certificate Warning: {1}", + Severity = 1, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 26, + ModuleId = 60, + Name = "Retrieval Certificate Error", + Format = "{0} Certificate Error: {1}", + Severity = 2, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 40, + ModuleId = 60, + Name = "Allocated", + Format = "Certificate {0} allocated to {1}", + Severity = 0, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 50, + ModuleId = 60, + Name = "Allocation Failed", + Format = "No certificates available for Device: {0}", + Severity = 2, + UseLive = true, + UsePersist = true, + UseDisplay = true + } + }; + } + } +} diff --git a/Disco.BI/BI/Wireless/eduSTAR/eduSTARWirelessProvider.cs b/Disco.BI/BI/Wireless/eduSTAR/eduSTARWirelessProvider.cs new file mode 100644 index 00000000..fa30817f --- /dev/null +++ b/Disco.BI/BI/Wireless/eduSTAR/eduSTARWirelessProvider.cs @@ -0,0 +1,283 @@ +using Disco.BI.Wireless.eduSTAR.eduSTARWirelessCertService; +using Disco.Data.Repository; +using Disco.Models.Repository; +using Ionic.Zip; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Linq.Expressions; +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Security.Cryptography.X509Certificates; +using System.ServiceModel; +using System.ServiceModel.Channels; +using System.Threading; + +namespace Disco.BI.Wireless.eduSTAR +{ + public class eduSTARWirelessProvider : BaseWirelessProvider + { + private class BulkLoadCertificatesContract + { + public int Start { get; set; } + public int Count { get; set; } + } + private static object _BulkLoadThreadLock = new object(); + private static System.Threading.Thread _BulkLoadThread; + public eduSTARWirelessProvider(DiscoDataContext dbContext) + : base(dbContext) + { + } + protected override void FillCertificateAutoBuffer() + { + int freeCertCount = this.dbContext.DeviceCertificates.Where(c => c.DeviceSerialNumber == null && c.Enabled).Count(); + if (freeCertCount <= this.dbContext.DiscoConfiguration.Wireless.CertificateAutoBufferLow) + { + this.BulkLoadCertificates(0); + } + } + public override void FillCertificateBuffer(int Amount) + { + this.BulkLoadCertificates(Amount); + } + public override System.Collections.Generic.List RemoveExistingCertificateNames() + { + return new System.Collections.Generic.List + { + "(eduPaSS)", + "(CN=Computers, ?DC=services, ?DC=education, ?DC=vic, ?DC=gov, ?DC=au)" + }; + } + private void BulkLoadCertificates(int Amount = 0) + { + if (eduSTARWirelessProvider._BulkLoadThread == null) + { + lock (eduSTARWirelessProvider._BulkLoadThreadLock) + { + if (eduSTARWirelessProvider._BulkLoadThread == null) + { + int start = 0; + if (this.dbContext.DeviceCertificates.Count() > 0) + { + start = this.dbContext.DeviceCertificates.Max(c => c.ProviderIndex) + 1; + } + int buffer = this.dbContext.DeviceCertificates.Count(c => c.DeviceSerialNumber == null && c.Enabled); + int count = this.dbContext.DiscoConfiguration.Wireless.CertificateAutoBufferMax - buffer; + if (Amount > 0) + { + count = Amount; + } + if (count > 0) + { + eduSTARWirelessProvider.BulkLoadCertificatesContract contract = new eduSTARWirelessProvider.BulkLoadCertificatesContract + { + Start = start, + Count = count + }; + System.Threading.ParameterizedThreadStart threadStart = delegate(object a0) + { + this.BulkLoadCertificatesStart((eduSTARWirelessProvider.BulkLoadCertificatesContract)a0); + } + ; + eduSTARWirelessProvider._BulkLoadThread = new System.Threading.Thread(threadStart); + eduSTARWirelessProvider._BulkLoadThread.Start(contract); + } + } + } + } + } + private void BulkLoadCertificatesStart(eduSTARWirelessProvider.BulkLoadCertificatesContract contract) + { + try + { + WirelessCertificatesLog.LogRetrievalStarting(contract.Count, contract.Start, contract.Start + contract.Count - 1); + WirelessCertificatesLog.LogCertificateRetrievalProgress(true, 0, string.Format("Starting Bulk Retrieval (Loading {0} Certificate/s)", contract.Count)); + DiscoDataContext dbLocalContext = new DiscoDataContext(); + try + { + WirelessCertServiceSoapClient proxy = this.GetProxy(); + try + { + int num = contract.Start + contract.Count - 1; + int index = contract.Start; + while (true) + { + int num2 = num; + if (index > num2) + { + break; + } + WirelessCertificatesLog.LogCertificateRetrievalProgress(true, (int)System.Math.Round(unchecked(((double)checked(index - contract.Start) + 0.5) / (double)contract.Count * 100.0)), string.Format("Retrieving Certificate {0} of {1}", index - contract.Start + 1, contract.Count)); + DeviceCertificate cert = this.LoadCertificate(index, proxy, dbLocalContext); + dbLocalContext.DeviceCertificates.Add(cert); + dbLocalContext.SaveChanges(); + WirelessCertificatesLog.LogRetrievalCertificateFinished(cert.Name); + index++; + } + } + finally + { + bool flag = proxy != null; + if (flag) + { + ((System.IDisposable)proxy).Dispose(); + } + } + } + finally + { + bool flag = dbLocalContext != null; + if (flag) + { + ((System.IDisposable)dbLocalContext).Dispose(); + } + } + } + catch (System.Exception ex) + { + WirelessCertificatesLog.LogRetrievalError(string.Format("[{0}] {1}", ex.GetType().Name, ex.Message)); + throw ex; + } + finally + { + lock (eduSTARWirelessProvider._BulkLoadThreadLock) + { + eduSTARWirelessProvider._BulkLoadThread = null; + } + WirelessCertificatesLog.LogRetrievalFinished(); + WirelessCertificatesLog.LogCertificateRetrievalProgress(false, null, null); + } + } + private DeviceCertificate LoadCertificate(int Index, DiscoDataContext dbContext) + { + DeviceCertificate LoadCertificate; + try + { + WirelessCertServiceSoapClient proxy = this.GetProxy(); + try + { + LoadCertificate = this.LoadCertificate(Index, proxy, dbContext); + } + finally + { + bool flag = proxy != null; + if (flag) + { + ((System.IDisposable)proxy).Dispose(); + } + } + } + catch (System.Exception ex) + { + WirelessCertificatesLog.LogRetrievalCertificateError(Index.ToString(), string.Format("[{0}] {1}", ex.GetType().Name, ex.Message)); + throw ex; + } + return LoadCertificate; + } + private DeviceCertificate LoadCertificate(int Index, WirelessCertServiceSoapClient Proxy, DiscoDataContext dbContext) + { + bool flag = string.IsNullOrWhiteSpace(dbContext.DiscoConfiguration.Wireless.eduSTAR_ServiceAccountSchoolId); + if (flag) + { + throw new System.ArgumentException("Wireless Certificates: Invalid ServiceAccount SchoolId"); + } + flag = string.IsNullOrWhiteSpace(dbContext.DiscoConfiguration.Wireless.eduSTAR_ServiceAccountUsername); + if (flag) + { + throw new System.ArgumentException("Wireless Certificates: Invalid ServiceAccount Username"); + } + flag = string.IsNullOrWhiteSpace(dbContext.DiscoConfiguration.Wireless.eduSTAR_ServiceAccountPassword); + if (flag) + { + throw new System.ArgumentException("Wireless Certificates: Invalid ServiceAccount Password"); + } + DeviceCertificate cert = new DeviceCertificate + { + ProviderIndex = Index, + Name = string.Format("{0}-{1}", dbContext.DiscoConfiguration.Wireless.eduSTAR_ServiceAccountSchoolId, Index.ToString("00000")), + Enabled = true + }; + WirelessCertificatesLog.LogRetrievalCertificateStarting(cert.Name); + string response; + try + { + response = Proxy.GetWirelessCert(dbContext.DiscoConfiguration.Wireless.eduSTAR_ServiceAccountSchoolId, cert.Name, "password", dbContext.DiscoConfiguration.Wireless.eduSTAR_ServiceAccountUsername, dbContext.DiscoConfiguration.Wireless.eduSTAR_ServiceAccountPassword); + } + catch (System.Exception ex) + { + WirelessCertificatesLog.LogRetrievalCertificateError(cert.Name, ex.Message); + throw ex; + } + try + { + byte[] responseBytes = System.Convert.FromBase64String(response); + System.IO.MemoryStream responseByteStream = new System.IO.MemoryStream(responseBytes); + try + { + ZipFile responseZip = ZipFile.Read(responseByteStream); + ZipEntry certFile = responseZip.FirstOrDefault((ZipEntry ze) => ze.FileName.EndsWith(".pfx", System.StringComparison.InvariantCultureIgnoreCase)); + System.IO.MemoryStream certByteStream = new System.IO.MemoryStream(); + try + { + certFile.Extract(certByteStream); + cert.Content = certByteStream.ToArray(); + } + finally + { + flag = (certByteStream != null); + if (flag) + { + ((System.IDisposable)certByteStream).Dispose(); + } + } + } + finally + { + flag = (responseByteStream != null); + if (flag) + { + ((System.IDisposable)responseByteStream).Dispose(); + } + } + } + catch (System.Exception ex2) + { + if (response.Contains("Computer with this name already exists")) + { + WirelessCertificatesLog.LogRetrievalCertificateWarning(cert.Name, "Already exists on eduSTAR server, disabling and skipping."); + cert.ExpirationDate = System.DateTime.Now; + cert.Enabled = false; + cert.Content = null; + return cert; + } + throw new System.InvalidOperationException(string.Format("Unable to Uncompress (Server returned: {0})", response), ex2); + } + try + { + X509Certificate2 x509Cert = new X509Certificate2(cert.Content, "password"); + cert.ExpirationDate = x509Cert.NotAfter; + } + catch (System.Exception ex3) + { + throw new System.InvalidOperationException("Invalid Certificate returned by Server", ex3); + } + return cert; + } + private WirelessCertServiceSoapClient GetProxy() + { + BasicHttpBinding binding = new BasicHttpBinding(); + + // Don't Use Proxy + binding.UseDefaultWebProxy = false; + binding.ProxyAddress = null; + + binding.Security.Mode = BasicHttpSecurityMode.Transport; + binding.MaxReceivedMessageSize = 524288L; + binding.ReaderQuotas.MaxStringContentLength = 524288; + EndpointAddress endpointAddress = new EndpointAddress(new Uri("https://www.eduweb.vic.gov.au/edustar/WirelessCertWS/wirelesscertws.asmx"), new AddressHeader[0]); + return new WirelessCertServiceSoapClient(binding, endpointAddress); + } + } +} diff --git a/Disco.BI/Disco.BI.csproj b/Disco.BI/Disco.BI.csproj new file mode 100644 index 00000000..9d5753ed --- /dev/null +++ b/Disco.BI/Disco.BI.csproj @@ -0,0 +1,233 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {095E6F94-3C34-47AE-BB83-46203535E0F6} + Library + Properties + Disco + Disco.BI + v4.5 + 512 + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + false + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + false + + + + ..\..\Resources\Libraries\LibTiff.NET\BitMiracle.LibTiff.NET.dll + + + ..\packages\EntityFramework.5.0.0\lib\net45\EntityFramework.dll + + + ..\..\Resources\Libraries\DotNetZip\Ionic.Zip.Reduced.dll + + + ..\..\Resources\Libraries\iTextSharp\itextsharp.dll + + + True + ..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll + + + False + ..\packages\Newtonsoft.Json.4.5.11\lib\net40\Newtonsoft.Json.dll + + + False + ..\..\Resources\Libraries\Quartz\Quartz.dll + + + False + ..\packages\SignalR.Server.0.5.3\lib\net40\SignalR.dll + + + False + ..\packages\SignalR.Hosting.AspNet.0.5.3\lib\net45\SignalR.Hosting.AspNet.dll + + + ..\packages\SignalR.Hosting.Common.0.5.3\lib\net40\SignalR.Hosting.Common.dll + + + ..\..\Resources\Libraries\Spring.NET\Spring.Core.dll + + + + + + + + + + + + + + + + + + ..\..\Resources\Libraries\SharpSSH\Tamir.SharpSSH.dll + + + ..\..\Resources\Libraries\ZXing\zxing.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + True + True + Resources.resx + + + + + {85A6BD19-2C64-4746-8F2C-A68A86E8C2D7} + Disco.Data + + + {FBC05512-FCCA-4B16-9E76-8C413C5DE6C9} + Disco.Models + + + {B80A737F-BD6A-4986-9182-DD7B932BD950} + Disco.Services + + + + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Disco.BI/Properties/AssemblyInfo.cs b/Disco.BI/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..038f7cae --- /dev/null +++ b/Disco.BI/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using 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. +[assembly: AssemblyTitle("Disco - Business Intelligence")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Disco")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// 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. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("01887659-9fd6-4464-8493-cf0506ee2569")] + +// 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.*")] +[assembly: AssemblyVersion("1.2.0131.2002")] +[assembly: AssemblyFileVersion("1.2.0131.2002")] diff --git a/Disco.BI/Properties/Resources.Designer.cs b/Disco.BI/Properties/Resources.Designer.cs new file mode 100644 index 00000000..0f01f133 --- /dev/null +++ b/Disco.BI/Properties/Resources.Designer.cs @@ -0,0 +1,113 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.17929 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Disco.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // 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. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Disco.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap MimeType_doc48 { + get { + object obj = ResourceManager.GetObject("MimeType_doc48", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap MimeType_img16 { + get { + object obj = ResourceManager.GetObject("MimeType_img16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap MimeType_pdf16 { + get { + object obj = ResourceManager.GetObject("MimeType_pdf16", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap MimeType_pdf48 { + get { + object obj = ResourceManager.GetObject("MimeType_pdf48", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap MimeType_unknown48 { + get { + object obj = ResourceManager.GetObject("MimeType_unknown48", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/Disco.BI/Properties/Resources.resx b/Disco.BI/Properties/Resources.resx new file mode 100644 index 00000000..7d09641a --- /dev/null +++ b/Disco.BI/Properties/Resources.resx @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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\MimeType-doc48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\MimeType-img16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\MimeType-pdf16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\MimeType-pdf48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\MimeType-unknown48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Disco.BI/Resources/EmptyLogo.png b/Disco.BI/Resources/EmptyLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..766f006f20babcefb4f484653ba726edea2d9e0b GIT binary patch literal 30171 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%0DDmkGBA%yR*oZ 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 literal 0 HcmV?d00001 diff --git a/Disco.BI/Resources/MimeType-doc48.png b/Disco.BI/Resources/MimeType-doc48.png new file mode 100644 index 0000000000000000000000000000000000000000..cf7caee90be7bb5d26974b74220cb9974a726af1 GIT binary patch literal 5814 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 AasU7T literal 0 HcmV?d00001 diff --git a/Disco.BI/Resources/MimeType-img16.png b/Disco.BI/Resources/MimeType-img16.png new file mode 100644 index 0000000000000000000000000000000000000000..60d7f35beff80883bfaf2bb4b36fde42154ddf31 GIT binary patch literal 3206 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 literal 0 HcmV?d00001 diff --git a/Disco.BI/Resources/MimeType-pdf16.png b/Disco.BI/Resources/MimeType-pdf16.png new file mode 100644 index 0000000000000000000000000000000000000000..9d115de1836685828efe484bed32a3668ff11572 GIT binary patch literal 3306 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 literal 0 HcmV?d00001 diff --git a/Disco.BI/Resources/MimeType-pdf48.png b/Disco.BI/Resources/MimeType-pdf48.png new file mode 100644 index 0000000000000000000000000000000000000000..34f1b26c0e613d89df51f77f12e5f587b1177b38 GIT binary patch literal 5178 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 literal 0 HcmV?d00001 diff --git a/Disco.BI/Resources/MimeType-unknown48.png b/Disco.BI/Resources/MimeType-unknown48.png new file mode 100644 index 0000000000000000000000000000000000000000..ccbf7b3a747bd73237c8ee0ee9b591f2dbc488c1 GIT binary patch literal 4317 zcmV<35F+o1P)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}000H}NklH_`co^a_evCbHPZ#(xgC7JZ zc<6--NWLDQ@1E~`=bU?CM1=qIV50($<2` zYXAVpaZoOo;W*Ca0Z^$_l&PtyYl+14WUW@mpxnS1!(|&B0GiF_2VK`KBH%oUt-XHi z6V#(Z5Xu1* zLMD^R7K_D-5aN73pm1gn0Nb{UmSuh5oPQj3D6Al$UKMI7k!6~ub=m{{mEf$`FLwG3 z@Nai{dwcsGV?m?(%VpOKp~z@I3K5Z9US8hlx2tWpb>A#I50N30C{WC$Qrj8V^#BHt zL=WFi%2+!2rcPrJjH-(sMEzwH0E)$;UaeLkgaAQ;IvA)`O0>M-3*K?dXg3B}Z$D5h z7B$;0mxBwbn*{sODr5=;09clFkjZ9pN@Sup>WMnW_IeWZi{>hL@gN#8jny^sBa=`k90bnDH?{&xdFIQ8Hxf~T3Iu`-JcvRp=4j}-P-$c1&5jUCj|#OL82zsFBa-RmObgQjkLa zT?mUpLl3reT~|*dJ+Ys4f~XV32zE#puR+1j>kA;0*-6*yPPg{()pGtUOnw)PvzQyE zLMw zK}si~U9v>hT2#{ybd?JpP@;YX$)!{w09adHedBjmM}$)6h%23fMFP#UAF7-cswe-HgMMQ zBj+5R>meGQ_^22-oz*4DzUs?b#P&Q_vOWkJj>8K^p~e_-O2%>dxSW`tj(V*I zhWV<}cs!2h&;LZdUPHh3|Fm@hAC|N24)z z%3q9#4n5C18VaCRs~zgPrY4igIihAqfjDD`MPvA4ZVp$kUh7n>0g7Vq{Q~D4ilRVK zB4C`gcNL|QO-DyorCzU>-@bio8iw(Y>w15E${pG9#>U3hj}IQ)tF?Cdgqs41L;_P& zQ$43GT|)uJ1%%*;C=qbMAtj;NY{0f{(44@9cqY)Cy&|AvQ&CS$_5}oY)iR%?` z!NC|q!*O7mX2Y_qa>*{0-lgB=mY0{eQ>j$eG>e*Pnp&k&(EwNgDgf%#k+d;fvs#v= zNs{&H>3Ha_n=rT8mg+QtE;P9sZ=Us+ogizIHu3g1`&Bj!spU>x9*EL(NuL5X(?j8NC0GRJuk}m20<@`4Ql^rkuN7&FN00000 LNkvXXu0mjfdEy)_ literal 0 HcmV?d00001 diff --git a/Disco.BI/app.config b/Disco.BI/app.config new file mode 100644 index 00000000..8fd131a9 --- /dev/null +++ b/Disco.BI/app.config @@ -0,0 +1,21 @@ + + + + +
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Disco.BI/packages.config b/Disco.BI/packages.config new file mode 100644 index 00000000..943dade1 --- /dev/null +++ b/Disco.BI/packages.config @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/Disco.Client/App.config b/Disco.Client/App.config new file mode 100644 index 00000000..84bc4207 --- /dev/null +++ b/Disco.Client/App.config @@ -0,0 +1,6 @@ + + + + + + diff --git a/Disco.Client/Disco.Client.csproj b/Disco.Client/Disco.Client.csproj new file mode 100644 index 00000000..c4c1cb70 --- /dev/null +++ b/Disco.Client/Disco.Client.csproj @@ -0,0 +1,138 @@ + + + + + Debug + AnyCPU + {D6B85A86-0FAA-4B04-BC9E-D01A08C03387} + Exe + Properties + Disco.Client + Disco.Client + v4.0 + 512 + Client + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + Disco.Client.Program + + + OnOutputUpdated + + + Icon.ico + + + + Properties\app.manifest + + + + False + ..\packages\Newtonsoft.Json.4.5.11\lib\net40\Newtonsoft.Json.dll + + + + + + + + + + + + + + Models\ClientServices\Enrol.cs + + + Models\ClientServices\EnrolResponse.cs + + + Models\ClientServices\MacEnrol.cs + + + Models\ClientServices\MacEnrolResponse.cs + + + Models\ClientServices\MacSecureEnrolResponse.cs + + + Models\ClientServices\ServiceBase.cs + + + Models\ClientServices\WhoAmI.cs + + + Models\ClientServices\WhoAmIResponse.cs + + + + + + + + + + + + + + + + + + + + + PreserveNewest + + + + + PreserveNewest + + + + + + + + + + + + + + + DEL "$(ProjectDir)Package Creation\PreparationClient.zip" +"$(ProjectDir)Package Creation\7z.exe" a -tzip "$(ProjectDir)Package Creation\PreparationClient.zip" "$(TargetDir)*.*" -x!*.tmp -x!*.vshost.* -x!Newtonsoft.Json.xml -x!*.pdb +COPY "$(ProjectDir)Package Creation\PreparationClient.zip" "$(ProjectDir)..\Disco.Web\ClientBin" + + + \ No newline at end of file diff --git a/Disco.Client/ErrorReporting.cs b/Disco.Client/ErrorReporting.cs new file mode 100644 index 00000000..bb75bc37 --- /dev/null +++ b/Disco.Client/ErrorReporting.cs @@ -0,0 +1,192 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Net; +using System.Reflection; +using System.Text; +using Disco.Client.Extensions; +using Newtonsoft.Json; + +namespace Disco.Client +{ + public static class ErrorReporting + { + private const string ServicePathTemplate = "http://DISCO:9292/Services/Client/ClientError"; + public static string DeviceIdentifier { get; set; } + public static string EnrolmentSessionId { get; set; } + + public static void ReportError(Exception Ex, bool ReportToServer) + { + bool isClientServiceException = Ex is ClientServiceException; + + ErrorReport report = new ErrorReport() + { + DeviceIdentifier = DeviceIdentifier, + SessionId = EnrolmentSessionId, + JsonException = Ex.IntenseExceptionSerialization() + }; + + try + { + LogToFile(report); + } + catch (Exception) { } + + try + { + LogToEventLog(report); + } + catch (Exception) { } + + // Don't log server errors back to the server + if (!isClientServiceException && ReportToServer) + { + try + { + LogToServer(report); + } + catch (Exception) { } + } + + try + { + Presentation.WriteFatalError(Ex); + } + catch (Exception) { } + } + + #region Log Actions + + private static void LogToFile(ErrorReport report) + { + var logPath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "ErrorLog.csv"); + + using (var streamWriter = File.AppendText(logPath)) + { + streamWriter.Write(DateTime.Now.ToString("s")); + streamWriter.Write(","); + streamWriter.Write(report.DeviceIdentifier); + streamWriter.Write(",\""); + streamWriter.Write(report.JsonException); + streamWriter.Write("\""); + streamWriter.Flush(); + } + } + private static void LogToEventLog(ErrorReport report) + { + string eventSource = "Disco Client"; + + if (!EventLog.SourceExists(eventSource)) + EventLog.CreateEventSource(eventSource, "Application"); + + EventLog.WriteEntry(eventSource, report.JsonException, EventLogEntryType.Error, 400); + } + private static void LogToServer(ErrorReport report) + { + string reportJson = JsonConvert.SerializeObject(report); + string reportResponse; + + HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(ServicePathTemplate); + request.UserAgent = string.Format("Disco-Client/{0}", Assembly.GetExecutingAssembly().GetName().Version.ToString(3)); + request.ContentType = "application/json"; + request.Method = WebRequestMethods.Http.Post; + request.UseDefaultCredentials = true; + request.Timeout = 300000; // 5 Minutes + + using (StreamWriter requestWriter = new StreamWriter(request.GetRequestStream())) + { + requestWriter.Write(reportJson); + } + + using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) + { + using (StreamReader responseReader = new StreamReader(response.GetResponseStream())) + { + reportResponse = responseReader.ReadToEnd(); + } + } + + System.Diagnostics.Debug.WriteLine("Error Report Logged to Server; Response: {0}", reportResponse); + } + + #endregion + + public class ErrorReport + { + public string SessionId { get; set; } + public string DeviceIdentifier { get; set; } + public string JsonException { get; set; } + } + + public static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) + { + try + { + var ex = e.ExceptionObject as Exception; + if (ex != null) + { + ReportError(ex, true); + } + } + catch (Exception) + { + // Igore failure to Log Errors + } + } + + #region Exception Serialization + private static string IntenseExceptionSerialization(this Exception Ex) + { + try + { + return JsonConvert.SerializeObject(Ex); + } + catch (Exception) + { + try + { + var encapsulatedEx = Ex.ToEncapsulatedException(); + return JsonConvert.SerializeObject(encapsulatedEx); + } + catch (Exception) + { + try + { + var encapsulatedEx = Ex.ToEncapsulatedException(0); + return JsonConvert.SerializeObject(encapsulatedEx); + } + catch (Exception) + { + return JsonConvert.SerializeObject(Ex.Message); + } + } + } + } + + private static EncapsulatedException ToEncapsulatedException(this Exception ex, int InnerRecursionDepth = 4) + { + EncapsulatedException inner = null; + if (InnerRecursionDepth > 0 && ex.InnerException != null) + inner = ex.InnerException.ToEncapsulatedException(--InnerRecursionDepth); + + return new EncapsulatedException() + { + EncapsulatedType = ex.GetType().Name, + Message = ex.Message, + StackTrace = ex.StackTrace, + InnerException = inner + }; + } + public class EncapsulatedException + { + public string Message { get; set; } + public string EncapsulatedType { get; set; } + public string StackTrace { get; set; } + public EncapsulatedException InnerException { get; set; } + } + #endregion + + } +} diff --git a/Disco.Client/Extensions/ClientServiceException.cs b/Disco.Client/Extensions/ClientServiceException.cs new file mode 100644 index 00000000..ab7dc4c6 --- /dev/null +++ b/Disco.Client/Extensions/ClientServiceException.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Disco.Client.Extensions +{ + public class ClientServiceException : Exception + { + public string ServiceFeature { get; private set; } + + public ClientServiceException(string ServiceFeature, string ServerMessage) : base(ServerMessage) + { + this.ServiceFeature = ServiceFeature; + } + } +} diff --git a/Disco.Client/Extensions/ClientServicesExtensions.cs b/Disco.Client/Extensions/ClientServicesExtensions.cs new file mode 100644 index 00000000..a919e7c2 --- /dev/null +++ b/Disco.Client/Extensions/ClientServicesExtensions.cs @@ -0,0 +1,56 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Net; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using Disco.Models.ClientServices; +using Newtonsoft.Json; + +namespace Disco.Client.Extensions +{ + public static class ClientServicesExtensions + { + public const string ServicePathAuthenticatedTemplate = "http://DISCO:9292/Services/Client/Authenticated/{0}"; + public const string ServicePathUnauthenticatedTemplate = "http://DISCO:9292/Services/Client/Unauthenticated/{0}"; + + public static ResponseType Post(this ServiceBase Service, bool Authenticated) + { + string jsonResponse; + string serviceUrl; + if (Authenticated) + serviceUrl = string.Format(ServicePathAuthenticatedTemplate, Service.Feature); + else + serviceUrl = string.Format(ServicePathUnauthenticatedTemplate, Service.Feature); + + HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(serviceUrl); + request.UserAgent = string.Format("Disco-Client/{0}", Assembly.GetExecutingAssembly().GetName().Version.ToString(3)); + request.ContentType = "application/json"; + request.Method = WebRequestMethods.Http.Post; + request.UseDefaultCredentials = true; + request.Timeout = 300000; // 5 Minutes + string jsonRequest = JsonConvert.SerializeObject(Service); + + using (StreamWriter requestWriter = new StreamWriter(request.GetRequestStream())) + { + requestWriter.Write(jsonRequest); + } + + using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) + { + using (StreamReader responseReader = new StreamReader(response.GetResponseStream())) + { + jsonResponse = responseReader.ReadToEnd(); + } + } + + if (string.IsNullOrEmpty(jsonResponse)) + return default(ResponseType); + else + return JsonConvert.DeserializeObject(jsonResponse); + } + + } +} diff --git a/Disco.Client/Extensions/EnrolExtensions.cs b/Disco.Client/Extensions/EnrolExtensions.cs new file mode 100644 index 00000000..0ebfc369 --- /dev/null +++ b/Disco.Client/Extensions/EnrolExtensions.cs @@ -0,0 +1,188 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Models.ClientServices; +using System.Security.Cryptography.X509Certificates; +using System.IO; +using System.Diagnostics; +using Microsoft.Win32; +using System.Text.RegularExpressions; + +namespace Disco.Client.Extensions +{ + public static class EnrolExtensions + { + + public static void Build(this Enrol enrol) + { + enrol.DeviceUUID = Interop.SystemAudit.DeviceUUID; + enrol.DeviceSerialNumber = Interop.SystemAudit.DeviceSerialNumber; + + enrol.DeviceComputerName = Interop.LocalAuthentication.ComputerName; + + enrol.DeviceManufacturer = Interop.SystemAudit.DeviceManufacturer; + enrol.DeviceModel = Interop.SystemAudit.DeviceModel; + enrol.DeviceModelType = Interop.SystemAudit.DeviceType; + + enrol.DeviceIsPartOfDomain = Interop.SystemAudit.DeviceIsPartOfDomain; + + // LAN + enrol.DeviceLanMacAddress = Interop.Network.PrimaryLanMacAddress; + + // WAN + enrol.DeviceWlanMacAddress = Interop.Network.PrimaryWlanMacAddress; + + // Certificates + enrol.DeviceCertificates = Interop.Certificates.GetCertificateSubjects(StoreName.My, StoreLocation.LocalMachine); + } + + public static void Process(this EnrolResponse enrolResponse) + { + if (enrolResponse == null) + throw new ClientServiceException("Enrolment", "Server denied enrolment (Empty Response)"); + + ErrorReporting.EnrolmentSessionId = enrolResponse.SessionId; + + if (!string.IsNullOrEmpty(enrolResponse.ErrorMessage)) + throw new ClientServiceException("Enrolment", enrolResponse.ErrorMessage); + + // Offline Domain Join + bool requireReboot = enrolResponse.ApplyOfflineDomainJoin(); + + // Certificates + enrolResponse.ApplyDeviceCertificates(); + + // Device Owner + enrolResponse.ApplyDeviceAssignedUser(); + + + Presentation.UpdateStatus("Enrolling Device", "Device Enrolment Successfully Completed", false, 0, 1500); + + Program.RebootRequired = requireReboot; + Program.AllowUninstall = enrolResponse.AllowBootstrapperUninstall; + } + + /// + /// Processes a Client Service Enrol Response for Offline Domain Join Actions + /// + /// + /// Boolean indicating whether a reboot is required. + private static bool ApplyOfflineDomainJoin(this EnrolResponse enrolResponse) + { + if (!string.IsNullOrWhiteSpace(enrolResponse.OfflineDomainJoin)) + { + Presentation.UpdateStatus("Enrolling Device", string.Format("Performing Offline Domain Join:{0}Renaming Computer: {1} -> {2}", Environment.NewLine, Interop.LocalAuthentication.ComputerName, enrolResponse.DeviceComputerName), true, -1, 1500); + + string odjFile = Path.GetTempFileName(); + File.WriteAllBytes(odjFile, Convert.FromBase64String(enrolResponse.OfflineDomainJoin)); + + string odjWindowsPath = Environment.GetEnvironmentVariable("SystemRoot"); + string odjProcessArguments = string.Format("/REQUESTODJ /LOADFILE \"{0}\" /WINDOWSPATH \"{1}\" /LOCALOS", odjFile, odjWindowsPath); + + ProcessStartInfo odjProcessStartInfo = new ProcessStartInfo("DJOIN.EXE", odjProcessArguments) + { + CreateNoWindow = true, + ErrorDialog = false, + LoadUserProfile = true, + RedirectStandardOutput = true, + UseShellExecute = false + }; + string odjResult; + using (Process odjProcess = System.Diagnostics.Process.Start(odjProcessStartInfo)) + { + odjResult = odjProcess.StandardOutput.ReadToEnd(); + odjProcess.WaitForExit(20000); // 20 Seconds + } + Presentation.UpdateStatus("Enrolling Device", string.Format("Offline Domain Join Result:{0}{1}", Environment.NewLine, odjResult), true, -1, 3000); + + if (File.Exists(odjFile)) + File.Delete(odjFile); + + // Flush Logged-On History + if (!string.IsNullOrEmpty(enrolResponse.DeviceDomainName)) + { + using (RegistryKey regWinlogon = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", true)){ + regWinlogon.SetValue("DefaultDomainName", enrolResponse.DeviceDomainName, RegistryValueKind.String); + regWinlogon.SetValue("DefaultUserName", String.Empty, RegistryValueKind.String); + } + using (RegistryKey regLogonUI = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI", true)) + { + regLogonUI.DeleteValue("LastLoggedOnUser", false); + } + } + + return true; // Reboot required + } + else + { + // No Domain Join + return false; // Reboot not required + } + } + + /// + /// Processes a Client Service Enrol Response for Device Assigned User Actions + /// + /// + private static void ApplyDeviceAssignedUser(this EnrolResponse enrolResponse) + { + // Only run task if Assigned User was specified + if (!string.IsNullOrWhiteSpace(enrolResponse.DeviceAssignedUserSID)) + { + Presentation.UpdateStatus("Enrolling Device", string.Format(@"Configuring permissions for the device owner:{0}{1} ({2}\{3})", Environment.NewLine, enrolResponse.DeviceAssignedUserName, enrolResponse.DeviceAssignedUserDomain, enrolResponse.DeviceAssignedUserUsername), true, -1, 3000); + + Interop.LocalAuthentication.AddLocalGroupMembership("Administrators", enrolResponse.DeviceAssignedUserSID, enrolResponse.DeviceAssignedUserUsername, enrolResponse.DeviceAssignedUserDomain); + + // Make Windows think this user was the last to logon + using (RegistryKey regWinlogon = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", true)) + { + regWinlogon.SetValue("DefaultDomainName", enrolResponse.DeviceAssignedUserDomain, RegistryValueKind.String); + regWinlogon.SetValue("DefaultUserName", enrolResponse.DeviceAssignedUserUsername, RegistryValueKind.String); + } + using (RegistryKey regLogonUI = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI", true)) + { + regLogonUI.SetValue("LastLoggedOnUser", string.Format(@"{0}\{1}", enrolResponse.DeviceAssignedUserDomain, enrolResponse.DeviceAssignedUserUsername), RegistryValueKind.String); + } + } + } + + /// + /// Processes a Client Service Enrol Response for Device Certificate Actions + /// + /// + private static void ApplyDeviceCertificates(this EnrolResponse enrolResponse) + { + // Only run if a Certificate was supplied + if (!string.IsNullOrEmpty(enrolResponse.DeviceCertificate)) + { + Presentation.UpdateStatus("Enrolling Device", "Configuring Wireless Certificates", true, -1, 1000); + + var certPersonalBytes = Convert.FromBase64String(enrolResponse.DeviceCertificate); + var certPersonal = new X509Certificate2(certPersonalBytes, "password", X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet); + if (certPersonal == null) + throw new ClientServiceException("Enrolment > Device Certificate", "Unable to Import Device Certificate Provided, possibly check password."); + + // Certificate Removal + if (enrolResponse.DeviceCertificateRemoveExisting != null && enrolResponse.DeviceCertificateRemoveExisting.Count > 0) + { + List regExMatchesSubject = new List(); + foreach (var subjectRegEx in enrolResponse.DeviceCertificateRemoveExisting) + regExMatchesSubject.Add(new Regex(subjectRegEx, RegexOptions.IgnoreCase)); + + // Remove from 'My' Store + Interop.Certificates.RemoveCertificates(StoreName.My, StoreLocation.LocalMachine, regExMatchesSubject, certPersonal); + // Remove from 'Root' Store + Interop.Certificates.RemoveCertificates(StoreName.Root, StoreLocation.LocalMachine, regExMatchesSubject, certPersonal); + // Remove from 'CertificateAuthority' Store + Interop.Certificates.RemoveCertificates(StoreName.CertificateAuthority, StoreLocation.LocalMachine, regExMatchesSubject, certPersonal); + } + + // Add Certificate + Presentation.UpdateStatus("Enrolling Device", string.Format("Configuring Wireless Certificates{0}Installing Certificate: {1}", Environment.NewLine, Interop.Certificates.GetCertificateFriendlyName(certPersonal)), true, -1); + Interop.Certificates.AddCertificate(StoreName.My, StoreLocation.LocalMachine, certPersonal); + } + } + + } +} diff --git a/Disco.Client/Extensions/WhoAmIExtensions.cs b/Disco.Client/Extensions/WhoAmIExtensions.cs new file mode 100644 index 00000000..6030a5dc --- /dev/null +++ b/Disco.Client/Extensions/WhoAmIExtensions.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Disco.Models.ClientServices; + +namespace Disco.Client.Extensions +{ + public static class WhoAmIExtensions + { + + public static void Process(this WhoAmIResponse whoAmIResponse) + { + Program.IsAuthenticated = true; + whoAmIResponse.PresentResponse(); + } + + private static void PresentResponse(this WhoAmIResponse whoAmIResponse) + { + StringBuilder message = new StringBuilder(); + message.AppendLine("Authenticated Connection:"); + message.Append("Username: ").AppendLine(whoAmIResponse.Username); + message.Append("Name: ").Append(whoAmIResponse.DisplayName); + message.Append(" (").Append(whoAmIResponse.Type).AppendLine(")"); + Presentation.UpdateStatus("Connection Established to Preparation Server", message.ToString(), false, 0, 1500); + } + public static void UnauthenticatedResponse() + { + Program.IsAuthenticated = false; + Presentation.UpdateStatus("Connection Established to Preparation Server", "Unauthenticated connection to the server...", false, 0, 1500); + } + + + } +} diff --git a/Disco.Client/Icon.ico b/Disco.Client/Icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..ffd2b06ecc27d078e6f14ec1fb7ab6d064231655 GIT binary patch literal 69477 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 literal 0 HcmV?d00001 diff --git a/Disco.Client/Interop/Certificates.cs b/Disco.Client/Interop/Certificates.cs new file mode 100644 index 00000000..f122f21d --- /dev/null +++ b/Disco.Client/Interop/Certificates.cs @@ -0,0 +1,103 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Security.Cryptography.X509Certificates; +using System.Text; +using System.Text.RegularExpressions; + +namespace Disco.Client.Interop +{ + public static class Certificates + { + + public static string GetCertificateFriendlyName(X509Certificate2 Certificate) + { + string subject = Certificate.Subject; + return subject.Substring(subject.IndexOf("=") + 1, subject.IndexOf(",") - subject.IndexOf("=") - 1); + } + + public static List GetCertificateSubjects(StoreName StoreName, StoreLocation StoreLocation) + { + X509Store certStore = new X509Store(StoreName, StoreLocation); + certStore.Open(OpenFlags.ReadOnly); + var certSubjects = certStore.Certificates.Cast().Select(c => c.Subject).ToList(); + certStore.Close(); + return certSubjects; + } + + public static bool AddCertificate(StoreName StoreName, StoreLocation StoreLocation, X509Certificate2 Certificate) + { + X509Store certStore = new X509Store(StoreName, StoreLocation); + bool certAlreadyAdded = false; + + certStore.Open(OpenFlags.ReadWrite); + + try + { + foreach (X509Certificate2 cert in certStore.Certificates) + { + if (cert.SerialNumber.Equals(Certificate.SerialNumber)) + { + certAlreadyAdded = true; + break; + } + } + + if (!certAlreadyAdded) + { + Presentation.UpdateStatus("Enrolling Device", string.Format("Configuring Wireless Certificates{0}Adding Certificate: '{1}' from {2}@{3}", Environment.NewLine, GetCertificateFriendlyName(Certificate), StoreName.ToString(), StoreLocation.ToString()), true, -1, 3000); + certStore.Add(Certificate); + } + } + catch (Exception) { throw; } + finally + { + certStore.Close(); + } + + return !certAlreadyAdded; + } + + public static List RemoveCertificates(StoreName StoreName, StoreLocation StoreLocation, List RegExMatchesSubject, X509Certificate2 CertificateException) + { + X509Store certStore = new X509Store(StoreName, StoreLocation); + List results = new List(); + List certStoreRemove = new List(); + + certStore.Open(OpenFlags.ReadWrite); + + try + { + foreach (X509Certificate2 cert in certStore.Certificates) + { + if (!cert.SerialNumber.Equals(CertificateException.SerialNumber)) + { + foreach (var subjectRegEx in RegExMatchesSubject) + { + if (subjectRegEx.IsMatch(cert.Subject)) + { + certStoreRemove.Add(cert); + break; + } + } + } + } + + foreach (var cert in certStoreRemove) + { + results.Add(cert.Subject); + + Presentation.UpdateStatus("Enrolling Device", string.Format("Configuring Wireless Certificates{0}Removing Certificate: '{1}' from {2}@{3}", Environment.NewLine, GetCertificateFriendlyName(cert), StoreName.ToString(), StoreLocation.ToString()), true, -1, 1500); + certStore.Remove(cert); + } + } + catch (Exception) { throw; } + finally + { + certStore.Close(); + } + + return results; + } + } +} diff --git a/Disco.Client/Interop/LocalAuthentication.cs b/Disco.Client/Interop/LocalAuthentication.cs new file mode 100644 index 00000000..4243cdee --- /dev/null +++ b/Disco.Client/Interop/LocalAuthentication.cs @@ -0,0 +1,59 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.DirectoryServices; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Disco.Client.Interop +{ + public static class LocalAuthentication + { + + public static bool AddLocalGroupMembership(string GroupName, string UserSID, string Username, string UserDomain) + { + + using (DirectoryEntry group = new DirectoryEntry(string.Format("WinNT://./{0},group", GroupName))) + { + // Check to see if the User is already a member + foreach (object memberRef in (IEnumerable)group.Invoke("Members")) + { + using (DirectoryEntry member = new DirectoryEntry(memberRef)) + { + var memberPath = member.Path; + if (memberPath.Equals(string.Format("WinNT://{0}/{1}", UserDomain, Username), StringComparison.InvariantCultureIgnoreCase) || + memberPath.Equals(string.Format("WinNT://{0}", UserSID), StringComparison.InvariantCultureIgnoreCase)) + return false; + } + } + group.Invoke("Add", string.Format("WinNT://{0}", UserSID)); + } + return true; + } + + public static string CurrentUserDomain + { + get + { + return Environment.UserDomainName; + } + } + public static string CurrentUserName + { + get + { + return Environment.UserName; + } + } + + public static string ComputerName + { + get + { + return Environment.MachineName; + } + } + + } +} diff --git a/Disco.Client/Interop/Network.cs b/Disco.Client/Interop/Network.cs new file mode 100644 index 00000000..f01bcde1 --- /dev/null +++ b/Disco.Client/Interop/Network.cs @@ -0,0 +1,327 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Management; +using System.Runtime.InteropServices; +using System.Text; + +namespace Disco.Client.Interop +{ + public static class Network + { + private static List NetworkAdapters { get; set; } + private static NetworkAdapterInfo PrimaryLanNetworkAdapter { get; set; } + private static NetworkAdapterInfo PrimaryWlanNetworkAdapter { get; set; } + + static Network() + { + // Get All Adapters + RetrieveLanAdapters(); + + if (NetworkAdapters.Count > 0) + { + // Only Retrieve Wlan Adapters if at least one adapter was found by WMI + RetrieveWlanAdapters(); + + // Determine Primary Adapters + + // Lan + PrimaryLanNetworkAdapter = NetworkAdapters.Where(n => !n.IsWLanAdapter && n.NetConnectionId.StartsWith("Local Area Connection", StringComparison.InvariantCultureIgnoreCase)).OrderByDescending(n => n.Speed).FirstOrDefault(); + // Might be too restrictive - remove name restriction just in case. + if (PrimaryLanNetworkAdapter == null) + PrimaryLanNetworkAdapter = NetworkAdapters.Where(n => !n.IsWLanAdapter).OrderByDescending(n => n.Speed).FirstOrDefault(); + + // Wan + PrimaryWlanNetworkAdapter = NetworkAdapters.Where(n => n.IsWLanAdapter).OrderByDescending(n => n.Speed).FirstOrDefault(); + } + } + + private static void RetrieveLanAdapters() + { + // Get NetworkAdapter Information + try + { + using (ManagementObjectSearcher mSearcher = new ManagementObjectSearcher("SELECT Index, GUID, MACAddress, Name, NetConnectionID, Speed FROM Win32_NetworkAdapter WHERE PhysicalAdapter=true AND MACAddress IS NOT NULL AND Name IS NOT NULL AND NetConnectionID IS NOT NULL AND Speed IS NOT NULL")) + { + using (ManagementObjectCollection mResults = mSearcher.Get()) + { + NetworkAdapters = new List(); + foreach (var mResult in mResults.Cast()) + { + NetworkAdapterInfo nic = new NetworkAdapterInfo() + { + Index = (UInt32)mResult.GetPropertyValue("Index"), + Guid = Guid.Parse((string)mResult.GetPropertyValue("GUID")), + MacAddress = mResult.GetPropertyValue("MACAddress").ToString(), + Name = mResult.GetPropertyValue("Name").ToString(), + NetConnectionId = mResult.GetPropertyValue("NetConnectionID").ToString(), + Speed = Convert.ToUInt64(mResult.GetPropertyValue("Speed")), + IsWLanAdapter = false + }; + NetworkAdapters.Add(nic); + } + } + } + } + catch (Exception ex) + { + throw new Exception("Disco Client was unable to retrieve NetworkAdapter information from WMI", ex); + } + } + + private static void RetrieveWlanAdapters() + { + WLAN_INTERFACE_INFO_LIST wlanApiInterfaceList; + + IntPtr wlanApiHandle = IntPtr.Zero; + uint wlanApiServiceVersion = 0; + + if (WlanOpenHandle(WLAN_API_VERSION_2_0, IntPtr.Zero, out wlanApiServiceVersion, ref wlanApiHandle) == ERROR_SUCCESS) + { + IntPtr wlanApiInterfaceListPointer = IntPtr.Zero; + + if (WlanEnumInterfaces(wlanApiHandle, IntPtr.Zero, ref wlanApiInterfaceListPointer) == ERROR_SUCCESS) + { + wlanApiInterfaceList = new WLAN_INTERFACE_INFO_LIST(wlanApiInterfaceListPointer); + WlanFreeMemory(wlanApiInterfaceListPointer); + } + else + { + // Error - No Wlan Adapters Reported + WlanCloseHandle(wlanApiHandle, IntPtr.Zero); + return; + } + + WlanCloseHandle(wlanApiHandle, IntPtr.Zero); + } + else + { + // Error - No Wlan Adapters Reported + return; + } + + if (wlanApiInterfaceList.InterfaceInfo != null) + { + foreach (var wlanApiAdapter in wlanApiInterfaceList.InterfaceInfo) + { + var wlanApiAdapterInfo = wlanApiAdapter; + var wmiAdapterInfo = NetworkAdapters.FirstOrDefault(n => n.Guid == wlanApiAdapterInfo.InterfaceGuid); + if (wmiAdapterInfo != null) + { + wmiAdapterInfo.IsWLanAdapter = true; + wmiAdapterInfo.WlanState = wlanApiAdapterInfo.isState; + } + } + } + } + + public static string PrimaryLanMacAddress + { + get + { + // Return null if no Primary LAN Network Adapter found on this Device + + return (PrimaryLanNetworkAdapter == null) ? null : PrimaryLanNetworkAdapter.MacAddress; + } + } + public static string PrimaryWlanMacAddress + { + get + { + // Return null if no Primary WLAN Network Adapter found on this Device + + return (PrimaryWlanNetworkAdapter == null) ? null : PrimaryWlanNetworkAdapter.MacAddress; + } + } + + private class NetworkAdapterInfo + { + public UInt32 Index { get; set; } + public Guid Guid { get; set; } + public string Name { get; set; } + public string NetConnectionId { get; set; } + public string MacAddress { get; set; } + public UInt64 Speed { get; set; } + + public bool IsWLanAdapter { get; set; } + public WLAN_INTERFACE_STATE WlanState { get; set; } + + public string WlanStateDescription + { + get + { + switch (WlanState) + { + case WLAN_INTERFACE_STATE.wlan_interface_state_not_ready: + return "Not Ready"; + case WLAN_INTERFACE_STATE.wlan_interface_state_connected: + return "Connected"; + case WLAN_INTERFACE_STATE.wlan_interface_state_ad_hoc_network_formed: + return "Ad Hoc Network Formed"; + case WLAN_INTERFACE_STATE.wlan_interface_state_disconnecting: + return "Disconnecting"; + case WLAN_INTERFACE_STATE.wlan_interface_state_disconnected: + return "Disconnected"; + case WLAN_INTERFACE_STATE.wlan_interface_state_associating: + return "Associating"; + case WLAN_INTERFACE_STATE.wlan_interface_state_discovering: + return "Discovering"; + case WLAN_INTERFACE_STATE.wlan_interface_state_authenticating: + return "Authenticating"; + default: + return "Unknown"; + } + } + } + } + + #region Wlan Win32 Interop + + private const uint WLAN_API_VERSION_2_0 = 2; // Windows Vista WiFi API Version + private const int ERROR_SUCCESS = 0; + + /// + /// Opens a connection to the server + /// + [DllImport("Wlanapi.dll")] + private static extern int WlanOpenHandle( + uint dwClientVersion, + IntPtr pReserved, //not in MSDN but required + [Out] out uint pdwNegotiatedVersion, + ref IntPtr ClientHandle); + + /// + /// Closes a connection to the server + /// + [DllImport("Wlanapi", EntryPoint = "WlanCloseHandle")] + private static extern uint WlanCloseHandle( + [In] IntPtr hClientHandle, + IntPtr pReserved); + + /// + /// Enumerates all wireless interfaces in the laptop + /// + [DllImport("Wlanapi", EntryPoint = "WlanEnumInterfaces")] + private static extern uint WlanEnumInterfaces( + [In] IntPtr hClientHandle, + IntPtr pReserved, + ref IntPtr ppInterfaceList); + + /// + /// Frees memory returned by native WiFi functions + /// + [DllImport("Wlanapi", EntryPoint = "WlanFreeMemory")] + private static extern void WlanFreeMemory([In] IntPtr pMemory); + + /// + /// Defines the state of the interface. e.g. connected, disconnected. + /// + private enum WLAN_INTERFACE_STATE + { + /// + /// wlan_interface_state_not_ready -> 0 + /// + wlan_interface_state_not_ready = 0, + /// + /// wlan_interface_state_connected -> 1 + /// + wlan_interface_state_connected = 1, + /// + /// wlan_interface_state_ad_hoc_network_formed -> 2 + /// + wlan_interface_state_ad_hoc_network_formed = 2, + /// + /// wlan_interface_state_disconnecting -> 3 + /// + wlan_interface_state_disconnecting = 3, + /// + /// wlan_interface_state_disconnected -> 4 + /// + wlan_interface_state_disconnected = 4, + /// + /// wlan_interface_state_associating -> 5 + /// + wlan_interface_state_associating = 5, + /// + /// wlan_interface_state_discovering -> 6 + /// + wlan_interface_state_discovering = 6, + /// + /// wlan_interface_state_authenticating -> 7 + /// + wlan_interface_state_authenticating = 7, + } + + + /// + /// Stores interface info + /// + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] + private struct WLAN_INTERFACE_INFO + { + /// GUID->_GUID + public Guid InterfaceGuid; + + /// WCHAR[256] + [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)] + public string strInterfaceDescription; + + /// WLAN_INTERFACE_STATE->_WLAN_INTERFACE_STATE + public WLAN_INTERFACE_STATE isState; + } + + /// + /// Contains an array of NIC information + /// + [StructLayout(LayoutKind.Sequential)] + private struct WLAN_INTERFACE_INFO_LIST + { + /// + /// Length of array + /// + public Int32 dwNumberOfItems; + /// + /// This member is not used by the wireless service. Applications can use this member when processing individual interfaces. + /// + public Int32 dwIndex; + /// + /// Array of WLAN interfaces. + /// + public WLAN_INTERFACE_INFO[] InterfaceInfo; + + /// + /// Constructor for WLAN_INTERFACE_INFO_LIST. + /// Constructor is needed because the InterfaceInfo member varies based on how many adapters are in the system. + /// + /// the unmanaged pointer containing the list. + public WLAN_INTERFACE_INFO_LIST(IntPtr pList) + { + // The first 4 bytes are the number of WLAN_INTERFACE_INFO structures. + dwNumberOfItems = Marshal.ReadInt32(pList, 0); + + // The next 4 bytes are the index of the current item in the unmanaged API. + dwIndex = Marshal.ReadInt32(pList, 4); + + // Construct the array of WLAN_INTERFACE_INFO structures. + InterfaceInfo = new WLAN_INTERFACE_INFO[dwNumberOfItems]; + + for (int i = 0; i <= dwNumberOfItems - 1; i++) + { + // The offset of the array of structures is 8 bytes past the beginning. + // Then, take the index and multiply it by the number of bytes in the + // structure. + // The length of the WLAN_INTERFACE_INFO structure is 532 bytes - this + // was determined by doing a Marshall.SizeOf(WLAN_INTERFACE_INFO) + IntPtr pItemList = new IntPtr(pList.ToInt64() + (i * 532) + 8); + + // Construct the WLAN_INTERFACE_INFO structure, marshal the unmanaged + // structure into it, then copy it to the array of structures. + InterfaceInfo[i] = (WLAN_INTERFACE_INFO)Marshal.PtrToStructure(pItemList, typeof(WLAN_INTERFACE_INFO)); + } + } + } + + #endregion + + } +} diff --git a/Disco.Client/Interop/SystemAudit.cs b/Disco.Client/Interop/SystemAudit.cs new file mode 100644 index 00000000..0a426b7e --- /dev/null +++ b/Disco.Client/Interop/SystemAudit.cs @@ -0,0 +1,180 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Management; +using System.Text; +using System.Threading.Tasks; + +namespace Disco.Client.Interop +{ + public static class SystemAudit + { + + public static string DeviceSerialNumber { get; private set; } + public static string DeviceSMBIOSVersion { get; private set; } + public static string DeviceManufacturer { get; private set; } + public static string DeviceModel { get; private set; } + public static string DeviceType { get; private set; } + public static string DeviceUUID { get; private set; } + public static bool DeviceIsPartOfDomain { get; private set; } + + static SystemAudit() + { + // Get BIOS Information + try + { + using (ManagementObjectSearcher mSearcher = new ManagementObjectSearcher("SELECT SerialNumber, SMBIOSBIOSVersion FROM Win32_BIOS WHERE PrimaryBios=true")) + { + using (ManagementObjectCollection mResults = mSearcher.Get()) + { + using (var mItem = mResults.Cast().FirstOrDefault()) + { + if (mItem != null) + { + DeviceSerialNumber = mItem.GetPropertyValue("SerialNumber").ToString().Trim(); + ErrorReporting.DeviceIdentifier = DeviceSerialNumber; + DeviceSMBIOSVersion = mItem.GetPropertyValue("SMBIOSBIOSVersion").ToString().Trim(); + } + else + { + throw new Exception("No Win32_BIOS WHERE PrimaryBios=true was found"); + } + } + } + } + } + catch (Exception ex) + { + throw new Exception("Disco Client was unable to retrieve BIOS information from WMI", ex); + } + + // Get System Information + try + { + using (ManagementObjectSearcher mSearcher = new ManagementObjectSearcher("SELECT Manufacturer, Model, PartOfDomain, PCSystemType FROM Win32_ComputerSystem")) + { + using (ManagementObjectCollection mResults = mSearcher.Get()) + { + using (var mItem = mResults.Cast().FirstOrDefault()) + { + if (mItem != null) + { + DeviceManufacturer = mItem.GetPropertyValue("Manufacturer").ToString().Trim(); + DeviceModel = mItem.GetPropertyValue("Model").ToString().Trim(); + DeviceIsPartOfDomain = bool.Parse(mItem.GetPropertyValue("PartOfDomain").ToString()); + DeviceType = PCSystemTypeToString((UInt16)mItem.GetPropertyValue("PCSystemType")); + } + else + { + throw new Exception("No Win32_ComputerSystem was found"); + } + } + } + } + } + catch (Exception ex) + { + throw new Exception("Disco Client was unable to retrieve ComputerSystem information from WMI", ex); + } + + // Get System Product Information + string ComputerSystemProductSerialNumber; + try + { + using (ManagementObjectSearcher mSearcher = new ManagementObjectSearcher("SELECT IdentifyingNumber, UUID FROM Win32_ComputerSystemProduct")) + { + using (ManagementObjectCollection mResults = mSearcher.Get()) + { + using (var mItem = mResults.Cast().FirstOrDefault()) + { + if (mItem != null) + { + ComputerSystemProductSerialNumber = mItem.GetPropertyValue("IdentifyingNumber").ToString().Trim(); + DeviceUUID = mItem.GetPropertyValue("UUID").ToString().Trim(); + } + else + { + throw new Exception("No Win32_ComputerSystemProduct was found"); + } + } + } + } + } + catch (Exception ex) + { + throw new Exception("Disco Client was unable to retrieve ComputerSystemProduct information from WMI", ex); + } + + // Added 2012-11-22 G# - Lenovo IdeaPad Serial SHIM + // http://www.discoict.com.au/forum/feature-requests/2012/11/serial-number-detection-on-ideapads.aspx + if (string.IsNullOrWhiteSpace(DeviceSerialNumber) || + (DeviceManufacturer.Equals("LENOVO", StringComparison.InvariantCultureIgnoreCase) && + (DeviceModel.Equals("S10-3", StringComparison.InvariantCultureIgnoreCase) // S10-3 + || DeviceModel.Equals("2957", StringComparison.InvariantCultureIgnoreCase)))) // S10-2 + { + try + { + using (ManagementObjectSearcher mSearcher = new ManagementObjectSearcher("SELECT SerialNumber FROM Win32_BaseBoard")) + { + using (ManagementObjectCollection mResults = mSearcher.Get()) + { + using (var mItem = mResults.Cast().FirstOrDefault()) + { + if (mItem != null) + { + DeviceSerialNumber = mItem.GetPropertyValue("SerialNumber").ToString().Trim(); + } + else + { + throw new Exception("No Win32_BaseBoard was found"); + } + } + } + } + } + catch (Exception ex) + { + throw new Exception("Disco Client was unable to retrieve BaseBoard information from WMI", ex); + } + if (string.IsNullOrWhiteSpace(DeviceSerialNumber)) + DeviceSerialNumber = ComputerSystemProductSerialNumber; + } + // End Added 2012-11-22 G# + + ErrorReporting.DeviceIdentifier = DeviceSerialNumber; + + // Validate Device 'State' + if (string.IsNullOrWhiteSpace(DeviceSerialNumber)) + throw new Exception("This device has no serial number stored in BIOS or BaseBoard"); + if (DeviceSerialNumber.Length > 60) + throw new Exception(string.Format("The serial number reported by this device is over 60 characters long:{0}{1}", Environment.NewLine, DeviceSerialNumber)); + } + + private static string PCSystemTypeToString(UInt16 PCSystemType) + { + switch (PCSystemType) + { + case 0: + return "Unknown"; + case 1: + return "Desktop"; + case 2: + return "Mobile"; + case 3: + return "Workstation"; + case 4: + return "EnterpriseServer"; + case 5: + return "SmallOfficeAndHomeOfficeServer"; + case 6: + return "AppliancePC"; + case 7: + return "PerformanceServer"; + case 8: + return "Maximum"; + default: + return "Unknown"; + } + } + } +} diff --git a/Disco.Client/Package Creation/7z.dll b/Disco.Client/Package Creation/7z.dll new file mode 100644 index 0000000000000000000000000000000000000000..2bdaed6a8b5156cdc5039f5d28b4a059f3a45fca GIT binary patch literal 914432 zcmd?Sdwf*Yxi`KiGf6hdCNqHn2Z<6i+SnilgOWIi2{4nOWS9^#LxcpZnx=C+7Q^fW zEg1$kquE(b>uGI|o@!4odP=KpZEH1NstM5~h=+S62(_qG*Em#zQV5VT@Ap}ICIrNu z_j7*le?LExy=UFmv!33xo&a{_ur02%{ z_w+8);{Tq$toa*j^VhU|^Xo0Q{cHa1x7~gBH-q_KyEDHBAGC<_uRps+JePjs_Gaqq%Vy?v zNz!6dhIF*{uZvS<4oNxFvympcBi!P_M1YfI4>&3zf3^8^fxLik&b|7RM-B-{gyzsu!ZjR_n)Hl7mb=#P=CjXsvX4~{M;BIiF?B?9jifEAs)}rFVzwrI z@`fWucTHNp=*q{o1hUxCTiHNB^6~6MBGK5(dIA!A)5}%->SYTHEIt-2P$I`Se~sikb;0~P>@EmESEa_b8#d+gEKJw>P4KBGl1pLtGe`9^E;XIZ<#7C)fq zR*YoX0~YHeJ)J#RJz6!Nb}FA8RV^jm@hR-hJ)f|}1+sQBU$wBlxEwGo-*c$y^1j9` z7Grq}*)B|;&6oAMkw~{Xi@9X&h(mWB(p?92*C2B#fehWnb=ToO*QcgF*C(c?e%FzF zsXnR>#-1&kWi1~wlsT4Pt2F&k55=Vz*oRV#XxO|Md(HN`#wO(=OgFzv(^%pkl< zRh9q`ckGED?==OF1*WmL>x*_Y=~Z^5eT;hA`zC$y!-^h!*b@6KslnAtkLqL20d*-R;bFsU`<_p=j{xaulO=296$0JLmo2Pr zge_H~$_ncX>)*6T^WH2vAsVy3aErZ$4e&n#iALLemVQ(pi~q8TEwD3ZNxO`mtS@v| znTOauwEyw(Ehg1c<%u5+WU$ZcqwRyAKZWvG>7s!q-F0M9AgxKi#f}v=53ntJIHm@; zVfppNn!>gf4fHK^Og4pYyGW|nmuZ%w0qhEZpLu0K-OlRS2-+Kn{es56>}5-I@yizH z7QK2%Rj@Gn!k3lUk1@iMol#FhuR8|RHAXa^xsEN`!#A6P$B_nT0LAz4B6S!&vw@!X z()8+M`m*tdqjkJ!7hC)?kUCoZDMn*5Vf1|q(?2nxlD=^KLFO7_w(uQ*pk6l^tviI` z)q@_w5Nv~yKt_|U9$`1jn3OIXqkWTu{Yuw%C$W)`Yd?Ptf(%tH|jbQFnMc{wH{eiEO@1M#?(#*e z5Av6QrPCWmYNK@rqt%=*vO{Q75B7oT@vRdisXn3d9lGF~81G#)-rs)jOUA1Z z$SyeEtaHcv*u=BroiaM!e1ceVyw?AV@%|;(81FtjFFal!`>fN{Il01p!Fw{4S?E%GBx&=bT{_;nwY7HU0YExe}0p*uVq}D(iEX${M=$SwRJ$PkJl@hZCFt+_yA#Q zyUdQ39MBs^^h@qD26xh)|Z%V}at zMU$>nmOI^+^+Sp4xsFox%x%%{2K(4kga4l+hP69Hr8|EgtIqzPO&XiY$A%4 zBqCc|=hg6KR)Sf5B%z*Du9wQiA4YR-+1b0EHj2k){mnoPrtRl%AwzpzArLrGzg`b1 zSYLp#0W(Y7BXhTqF)D1VMq!KOBCt%V%Lc5!SzMr4e*>_Z-!yNj0Tnq!l;?GY7%c$% zAu$N#vhCh-FMk=WB-}DFS0StT*-3C;g;mN?`z+_qkfo@H4MmQJtWnD>Zw=eQJ5m0s zHms+RT7Y|rvXCQm33KO(dX_Gh%Vgd^l1N|+(jPxT^isQX1f&TZ z;V6F*%|*J`U&K6l%(4+2Q|nf|{0SKlbIFhfR5@T~+qEktt;vFaG9U|i9XLvIL-<}r z3Qi_OW#gEQFBP4t>B)UUQ}P=FoDrJB+{M5Qg(+S94fMIGTcyFxSpU)agDcss-8;hs z*+O-&iee^}dKEPX1M~9CRdynSWiV@}BFB$_Hb)^N?MPhj<-MrH>JBp*G~dMSr!g>f zFw$*(q&JMF`0D`lrUUh=Gg|#)uAwRBLSH|wA`ap8`FR004_d#9RS!j7KlXAfxM+UE z2$g;mrDLsVFQFdh>(NgAv!?h()GFoPhg{0IoieWN273Tnr})DbMGBwH4^9Z592XoP zJ~=)phfih&%_ZGLZhMUd4Vd+LddQ-OWS$OfF@QJway{hGLwUM8zu#>u1(nf5g?ea) z9xB$|v-{lz#l%CY79b_g!`JwSxftBEhb zYcymNC8%+cZ07eMnP!E3F`dA7J^v0?uznSBywrqxyDZP4!|sP@C6|MustQqUEFsHb znY2s_YM!@Dlx6Pe#N6iw$8Xviv|=0E(Qo`nQ6?LNp0q6yIbeM#2hyzb(qI|MJln#n z6;Sx1ff`5_SYa>!ARTK~EoSHCoACq7%Rd3Y>h((@;O@ctv4)|(1&V1DL3kL{0ej;U zR%t2AXfG6)WHEIPbhu>xdt<>T5+ZNo*HD8%EN7)<{h;Qw#kV zOrc_-X!jgcWLB0Do-1DyT!Fvyf~s@Sy6Hw#idH|)-I!R^^*DRm%Xaj;Mo2#6jiP(& zrc5g1dfbaiN2_dn4s0n2bu+tEs~$;kE2fuFALp4g&H8vaH8WFr_~bl21LVZCJhmUr zK|?-kE(P;AeejZ~PMG!djRz;vZw){1Vaj<9rh3UU)m*wmv<4^1e`B z_+$mW-5SE~DyFxx5HRfO(cML~S#Ux>Gi$elUVp|;hVv!ucAFGkpg=cd5`Ky$Z=Y_g ztlUv8^ZzgqILAPY$poB?xWI{ETM7ZbBA|ON0tli+D{~`Ordm)ap1?lBX2_t0iytxQ z78SV+MZOALYrkSl8amfAf>!FcdW1g#q(P;3Kx@*H(!53La?tLZuVcH95)XA~lzzMc zERK2O zc}kfAg9zSsLfiu0l0aO^cBCxjx@AX7;?;b_K zThLDP9imY}KTJ{LbC4Ewb)!wR{gziWZ02pE;kQN`wupwiMZ?3`B%)zRAVbX@E9CWo zXx%1&ty-?_ju!!})kEMBy#16|f%JrHDE=`v8H74DJG=p`HpN-bqu2oQastkuA0*(A zWr7eVMcrl^&5dP35VoQ&4)kAZA@p|=s3tO*;K!rKNFcz*02>lRzY#+RNP^cUu7~-E z?WpC?p**Y}8SOOgOV}+IbB}KDH{Nq{EcQH0y5U&fB8yd9Utkk5b5dX~ofgbo5T5Il z)RVOklz&e(Yn{0r zw(^QiyVc{Mqe-D!NLWV$CjMj50rOZomlenzb~yo=8~^8o3uF=^#B=l*#b+{KF7Heye4E}Lq#W?CsnI+NX>>gQ_D-S zYvX>s`mkQj_39%5GYJxZ0D{pvKtnvtH{(Z1H>AG_EF1L6JkY6>bttxSXW#lynCmcF z2^SOt6AycJsC*nGp2*Zgpl0;|JcOLFum^Jz8ik*&vp`8rs2TWekKYJD(2KLD{hE^9 zkwj=(R7rDsEbSKofmRmS%x|)(V3Ic|6V>$j&VB3ObM6a{6N<(zA-S!99M}~m2sB1$ zkF%p-==~YQqy;{0|2&Z(Ji^L`@Omz1{t?x?lIj6&`vVUC3xf7geNrZf91l(-UhPNa zEX+>pS3oQLVjG`=mbMD&*l}vy2Yy&G!31tQM$@IG`5kre#wKH6fl|H*?bovbEJ#VW za{v@ID1&(MBiOps4z@Cn=Nj##C=Z%3=<?R8!;}%D@!t5E$;a0&*M))vRvR>=6B&ucg&y6H{Z}anPY_(N}0S=P*3z*=j zGB!ZvlgNlXmQqv@FYJ8z}I~?3ix!qo(uR7sNSzcJuxLAhVlOb zkLavasCtK6iB{UYQICzkM8N4UhQvHI zbA(*np_B>)`V8{gUr@%-RKo?OXBAbVVfV^}f9yojJrbz`3uJNL9(ir!_t=3zg-8(YDk6kWqK)h+iMAS&qwYK`i$kW|T4 z0W>fWmQO!QTL`KdZ%9pYlmihuDStp)t^Z?NvWP$T9*zW*$1ChQ9Reb4-6;0S5=T_{>r_pyoCIX!z z4vNl~5}El8I0R-*%T7Pf;3sGb^i%$Qk#m@rVFp0Qu{dOG3sg%?ItcwX(p|6GJ6+k$ z(s#0K9j@%CE8EMzjlLRsq4rr4lLk?!zPD>OjbXMJgT2;=edsSaz&<0|cSvtIqBr30 zVZ8yg>=U3YRE&lZ=jmXjvz@OW=SLa-A*F-zUSH`?sE541S}_7L$~k+_Rqulyi^LW5 z#HtT9>3J2fM+;5qke8pqbWodr4f6(rC1N?2QevU2XqeG3fyz;fQTkG&Jcz;R4fsm~ z<(XtPa@jD-4hKdBOGKkTI#+VG9~Q$s$UnsLMXQg95!XbkmC70n`(SF=WOpoUIKt{| ztE}JearSm((G+YcgNIF}DJ;S$SoOhi5VR9@{wU$vV)v#xyc!vqr#=Md@O^{ z8(77T0!;i$nl5SXXZa`gLx!;(h}Y>b2od{iV!2Jat-QRVqA9XlJ$eogrIv|WAN7}P zg>$JS(U~!~c>Ps#%QjqLeYIQT#R2ItHWOE|0|V-pwK(V87UfinzW=dB4DTI(NjE!Lvb)ntqBa!SvJJBJ)uY-c#qrBX z3`dGPnKCDC3!l7gJ*4xd4HtK^Mc3~(aB{z&b2a6J|8)?!_SQh}=HIkUa=Mf!ojX2%% zdYL%YJ8>*mrG;I}Zu0t38cc916@mF47DrhA7D)U)FpCICq4oRS2B-}I5muvi#jyWF z@V0L1M!jfF8bpRpOJ?QV@Y*R_`>+(uY_dMzO@nZaka0EkFpACXw%-2(JOif28y+YJ zrEAG>YiH8ee`bCDM>pXoY83T4+m+yD5HmaTrd5Vdhg&9xPj|1)wLX7fV?2zyJ%=)~ zdp+v@S0%|LIs4YiqPNH5j}-OYNFM98r6S>CHq>-Q!rb#o*2YhyLP@$>Dv;ndoYkbK zk#kV%v1nT?=*k*d0Mt&Jomky5;M=N3Jxj1w!MkBYhO$5)${;&d$<}bb1i%u-16_=3w0e+~7fZ>7#8&8Fi zpf|{CZ3YUMJM5X2G4iW#JS7cEQp-|24@uJ6n_rX;!nm-@s{I0)WiBkzkMUxC!7Lhb z_Mj2#{ZS;{Nad~C{dnEDMJl{WN|y=}iJtefvUlP)01Utcvg@&4dp>l&-7-$=NiWw< zPHXvusl$-4CPbBT_Rg;N_Qca3rS~1Qv1;_i?(0sSMNt-9BCmMm7UP-Tk z(HPmKwqWM`@LU_D|8Rj#By*^LQVe!ysrhjzUN2TDij6wxiN^opzA>^>6{as_rzx>f*=Z{p z8O!&2yIQE;J;{0jh5sG2_yRKJW8j@BneyLZGa1{6!8~i=JtpoCQ4yl$7i7v}kg*ex zC?QwUhAvlFUNPv9HBrKUfi7$L>+RC%y*1&Ni_BYysSjDD5y>n61%=b0eXOTv6| zo)e}2&yT*0(u44js6jk}k+zfvOegjQCj-=_Cf#0<(wDG|6&FyL;#fDTFd426%lr$l zl2OHpwkE3(yRgWmARa*>F7h;+GH-oNz^!m&gAm zq;oS=LtxO-n#80IAsmAJ^a7tsc5`eeGH|BBYnPbxP%0C@;3{}69moco*oF*0e+J58 z;(C8#(!(gjw!<2?9mbMKqILYngayUgQpOONlm#v*T~yo8PQf+C_HPgz^6R3JfaHgh z_mNaP51<{^Pm3<(prgVy2O-rC1h*45@n_IA8;&Hf*U0nivG5)sUSEcZs=+{xnS?>f zEYF${a)R8;Q2zMf#oYnvOm|1da_b}Hlf-PhA=i2=9T~bwudwJ9GT%pvSf9w`FQ8JQ z)x!S_EwFyHd`cYS|M+0EDEwz*{4a+o10ot6PH-LKO7Sy~m+aFRN$Ex&fNDhH5Cc}O1s+3nCM5n0_;@L^ z)<*NLE$S`D#++h)(+h-2ddsjiSBSky_Jv1jXPgOsL38;#c`(mvE_vuSsks~wIfwZM zV89nOm#$~1!C!r`!NXXLF%1>~Rgw+9DRK_;nHOyE90Gx*0jaR{OXO??lGSK;KyCp- zz;k-qSd023&H^aVEHd>~mV8I)rNRzYBJ5y0_|wqo;Gf8e`o3TXTV+Y%FD(rk7CK}G zXp{$30#YNK(AF_dXgTGC-uxcgJjV%*2!bzhLX(;hBgGGWpbHUJ1jFzZM2Q^<)lN^F zL9-K+9>wM=*{TgEpvUMLojr{WTkJGrpxJODH~|!Qli2EH>TK-QauT$4u(@ohf6eG9 zOuLOou>xCcQYT!b&0(Y-ADoJPq#a6AOkOH2+=oC4^bb!n-%G^}6HU}L5|F$?s1vLt zF)J}CNV~q;hR73GEOSAIwqpNcMn5U|UAC>vrL>x1!x^0j{{vcUK#A0_=t)B>$BUhR z25k#N6T?D+5-?Fd-$6r=VW}&{n9)T!jZ@}-GLmVD>z!!(8(v!%VUO?0@Km+MPBD z{+J}6d=kxLW~Ll0N)DDW$5bs}RjmXw;(KA1O?%b^dx1f#Xf#b|g1?eBhD3~}ig>Y< z-+wgqtC;nu0ZPm#bbf6P%W$$x5=UGpg6-3!HKj>S{TZ^9m~>36J7NdasbwxXIQb`q z0DN=D!*CF~V1F;{fWq*Y2;75Q2r$3=NS2uM)MaICh z!Xqe5A|ti>>1eBe4cI6%Nzf6Mb&x0m+T?Y>T|^yB3fO!=EgN6;&2i`+Ozw3B@jS)? z@gh;EUB;BNBtTWfUZMpO1eY6mSKOE*Wri<=0TZdkR7G0yu5KdvFWpT%1d`QfY*zr* zF3tnQD2j<_K%>46@*hP{Eka^_Bcz^`5xBSOAXWdCsP2Hg0rSTJc8cs)FbCm(n68HS z@W+XS^E3<}tqwTpT(X)C22Y(>Nf+pom#7@(9<>0$eiQ&k`n(s}!k)bfQd~#F2pM&@ z9U-1or%+8721Fxzfznoy4sq5~pA5G}&>6N&05NBXCVZD>(&su@+~@l9I`+=zPX`b) z@b0YvskZ59{^1^CX9vl$7lha;wu51RfgVQ{F=k9{ZB}CT{d_4(#K*Cn0L%9=1|TDe z3<`WC84LE%lLU-70k0h^hoHE^9a(%nIa_N$^Sx6gmyPJ`0GRczZfjhJKk$ z?f>0a)}RDS#uPpYQCNU>FMkbV1o#gL@Q*_y0{naVVwhDR@gk@Kro!)`JedmTkgX+Y zDjd54UHLSd+wb}UJSLq3k5Ce^hJYa?O{ee*@Gykek^>M0&XWL6km^}!>C7=_eo+W8 zog)Mw^biXRHrq_w)-|-XcWF&e%!b{*5(y_j*G>!y)0Ge0#}BXN8FtbOqex=Xa^ypq zpR#cSOyS+8sohs-9dePA25-~17h83VW;?iB8%me95?s8`0j6?Fim{> zRVh60PtIL!*)0~BfYP6xxLbgu|7x<3|hO4 zq<;Wm@HWl*;OF8^xybq;5mE&FIIR!hK9>w!BJU_?3V|f2Np2zV#F%5R4z7t1_@b??t|B80Z z!#$s*na>LFsCIG?5i3l?$XVAEz}qC)5B0>Cy5A7 z0r;k|{eeYZAO-!v>oUAz!GE%Ryn^uA^0ni2C9)jWmGYlaN^jR(f&bqi{4W=DF|T@3IV##hO~b zkG5pO3zNPzau^kwwDyCOtdal3D>PM<(Os`2219oZ@C;fJQ7vHdqeoGP$N<%m)$wqM zQg?eHy~nef${G$@BaDXNdW-Gz1}q?MKgCb@4mLzxJ1Hq0N#8M&?uxqhQWE)t2t81$ zKI-}tC1oP%kdfqO)khFag7_;6Wq_f+VT7*%F(=y(!btc(Kv^p5o$W)``^}&UFz%k? zZRmZ~4;F?n-JxXN*{DnP-atKQF7chQ%aGFLB{-k{I>FiID>?2*81-TN`;eKU?S~OW z15vGUuh~+55v>!Qu<*6l%)7%K;-a5H47;iu`b8cMb9)$^7{M{`aVWR zJYfuR>birv-SmIoZK3Fv?1FugDSk2anXTp^@d!{9vT=v$ynbC5>^CuszX8f?gxL~j z(rzSl6X64=TCaMUFp!lH;`?j}cf1T*0K5t}z%;7$TCj1P=~TSsAn@;W@XoSTa_eeV zsj%6PQWZqZ@*%K7)F@owTqU<0j?X8kco3WfjoO1V2o};A+;$xS42Wzq#S28fjdJa& zT!+X-;H7RF6Y*jb+6DD4jKPua)@iSb(dIy&b=J#ZnGK4wUJ1^wgg@9h-11>$cW^#y zkrAzWytRzotS}Sg1E<%9l68vHYY$#j2}`&0Ov{Jyixc;dHp9uG3*KC9^Ku6`>}dBS z@ORxuOSbDy*fnd6U26o(U{glm5^25fMKPRNtWkD0Kq_aAinBpcCx+Yeq@b*YERt%E zr<0|20wPe*bD3+XWoLXr!e@!6B_@YM4g_Qc5yD`r<&kW&6rZAn?50{ER<)f6DFM{T z!2@_hh}`$P5z-Yo1_Wg2f46lLQCD^=P9P!k0a&;tW5&SSI$6zQUc0kSQSHWH!t3%S zby7Sdyl%Rr-sUDKeBQD<_Ft%_t;;j1H)`t~CUp*Lu(QnC=FQ8pY(9U&>%h8BxG}9< z3J0@q%r#lU*2v3L0|6%Agr>(bn|UoF`LdwK;{DN7t++?DSti;nIj>DS+RQQ9%oJ^^ z|3d9e`||csL#+(A=S#tx;33pXrQn>vI==ONAhqtwD>?4$!=4R}gRFGxH~?V?(4(#B z{R%zF9 zf~wM?yB(|&ai@8mmH8d+{Laeh9q#E#6E^E1Ta30^mincyR7yBmWI=Oab^x&Na+e)) zGh_=KeA*p1N9!Os$(KVA7AaeiQVqwvWoeCX^f<~=sjBH&Y&T7d4`Bo9>K>Cf*0VYV6YS^BpRMB){ zueK8a$wWi}QyvROnd|3YogqTF+;UKcUN)WryG=Mr(69OIIOK*JT1*PgSQNZsQ7})7 znS;4nEIpXfm5zxco>u&&N%wXU2t;Hs=9_}HBBA4c>2ZvpzufXZ9tP0=$#muOr;E56 znyyzQ;c1RY1_gFfdzJr!RhO@2gv!b5hgsPxYh0wV4ri zycozyHXX$6-Hu{VywMOAM#pJ{?p0+t8Ubo&%#^TQ3l&IeIU2=c7WMcaGXYQC_GtTv zKhbK-_2n@e&IT;SlAsx|ml4?RBHdBDX%zz65%XrMKtepD&z*0A$!sftt0BI)Uy3b~ zY&dOUan{Je%+9p={4lBJG?NG7Q{mdh8kWh5|rAAYRg4 zqE|V{xDV{Z=3qyi!)w#nuojX5Rh(Q1UV=diuk{WDkn=2z6SdtqRS8QX9Z*cIjm&e9 zM~Es6hZe0z;Th>>3HflNmF(7QYbbZyh9V; zG?d4-`xDn~f>Dr???Mr9sXw!uAkNche~!_@!1)$3i9z(a3r+lKstcxs{1ltpC5nka z+5!p;uY;gg${z=7)!n7wd?t5sZsTm6e03>e;m(!8p@oC60J#3w2(HZSaQ3ft77Zh` zpv6qFoY)$m#pZz;{)d&o3DG)iRepX0dcYRBs$DTbpQN)6rJ8Rxm?nj9!A|uiYz)LT zVD=~=*xi8YA_4<_(e(C1#mDqkqf4!tCrT*%tGl&;0W0am3ru3zh^iZiiX?4of^V%y z|2S#k;^9ysLjM0KI44{Mt$DQGP`>yFqD}QOf*1XsgWrO3pEqfXF^R?1lVrsW-hy$1C%jq`I4Ar9JGVti(p73Zr#;EaNmM;GLD;+B;YH1a%q;W z-z`5P9!gj|Y-_~BzFIsSUh&8)7mxg6@hHd_k3t(Bbhbr3qK9T9%tH^A>Y>$o=ng&9 ztcUK>Lu>R<@I|`*0J}P~KSL7LEJt9nMz06OLm3bcTbFp)H;aekQSr#@5Rd$I;!)5n z9)-*C;ISfELUf6{m?Fi7Qjuaqq~Y;tn4}Qw&Z=-k2cebY$VlZhwh!$j1!?|Rs#Nfu+U7!%lKBIvB+?>fHW2k%;w`n!jylTx#uqZ> zcpWlD&Bb5HRN|$z&9bO@%@;Cl@u{`V1ES`H(M(6OPy31eQ@39JCZgu_EP)!YZH7D# zs{#KIm}pGwD+v8BbFYqiR;v@3J6PlQGFxH-m`a2U5UeliafnkWuXUgks`~VKRqu#; z?l`~dmSoku*pKk`T641Mn$fBSqSxlAr}_M<4<@VT$D3a3N{+U4v|hfbcURPN7py*G zMyuA+NDJcEzP2vemu0k0iKw$C>REGMooQ63ki;h6~+K(cn{RC!9D9Q1J%1p;qg}&V3u7ZAT(%oK& zSGs$d==WmgUg>l%vp)E9lx~4gx!mdYTD8YST?HCMnpD)!_L+UfDZkpUry0%bRKz8l zhXGWGJjG(KO80qR+bxe zFZaS%zm#am)!?dsSvwvrb=n;`PEoM{N10E?Dh26|TM84*x@Mz zqBvLu2)r zd#(@>p2klgn|t=!i*ca~E z%rirWO~nPN{@-!>opv3Wfnf$PQRZysz6*dZGyqMi&s^2Y+_N#DJMkX74~vIV&H=0T zO?ss|$pt{w*-rP|mUyC-TA@bB!eWc}LjuLvih5wcX62O&*7jJk@X z-Bn<*#6E?s)p$Dtv$^qRBG)8x<=C!dt{gj*%#~vwB;Sz5>f~E~?2=?| zer(2Q+BM0yf>;8vYt%|XEN3(=H~Cf=doP(=7#kvUJ<1ivKF1p<2?e;TP%6nQ=OIII zk;eg?#G&-5?mTC2TSiNUa|c#+2To^gZM_^yBI)%Mt0*u?LAZ&@=g@q4a9^nw(&1s= z!`{c9PSbO@Vljm{JBsjvA%yJA1IZuVOx)pgJJfWiClC6p+o9uR|8_nH*iOWnhFWJ^3UUk- z0_g)9u{tOlHdvw4^sJKICJ%JtJd+0|3XGT}XsFl1i+2y`P~sj3ks=Z+fx#M=g4b6C z^Q%B`Op-YquZGsbYVxBMHgg?rMJSjE@xvCMPJ&xC`mt%SWu z=CV<&5|%mde_B9VI+I7v^(j|*9KbrlH&&5nEF#Pua3Y*tL^y*G9YuAD_1x_($vKGa8G-%Pj=8$yU1_jSWodal;uBYiY zWBGtQuq(@5;A;!2N&O=G-#dtpuO12%>rVd1ZP4=i>w`9Zokd>ZsRvp}DZdSs|seDddMB*_4mbax?v1xIf{*uivNcAz;7aaf!X?7{`S66_9ol1m9r zBu0i?UQ$vWCX>T5{P>UDg?h;s%7zA>+M5{NmcO2vJ6^F;@?DZ=meu7pQyRy)3_cc zdx-ohVr#rOu!uT~sm^)6J-bBVag-x$Ww3e?$pe295%3ro$bhreu;bFhbagTQj?ai?xVOTrb94V1vpOhU>Va2>cdj8p0Q>nO+~&ZAC+S(%~}H;zCP!6^rHf+5`81-Ie5T9X4{%tHmy4O*6YuTj8^ z0!d*yWu+=futwN_9gzdL$Eu47G3|g<89C6_-IAfTACua;NbC^@MGV&V8HqEbX+d1VushxP zUNqM8QCeblCjTqMNc_^Eu87q^Ib*JqX$DmcK}~-&W^wxqnC1s#r%7BSb+ZD@dFWsp ze+7lnL&t)AT$xeQjratZ^5G$XCB9k?xiDa-JFjg@3mh-QV5n;$58~8rVs;nbifE8H zteCLz`S~L1)2(1T7IYDDGP#DA=ekC4w~f61Wxx%^^aUW`V8Z%>JaKDKa?Ti(c4Q&# z;wJ6RQ&bn52^ZV#UlmnPbq<8z!_l=Y>+@R?8q-5pGxp4ZKX{2JVDaGcFPv?u8Yf+_ z)DjQMh$0731c#mLll)CNsj`f%fCH#B}v$EUcSd%$8arySt!RNiDNM68E>x zEJg2u^E$yF#)xuew9BMb}tr12&)T;9CI+oO4z8lA@#Cc^GGd zDLfAdf7sdEehUo2Z0^QrbvI6p_3i=9Lv%?c4(M3SDktCNF2o^(+dsvnNZL&%H5YN4 z6Db7aAdc)|f4JoY&RIZMK=Z%W?i`d@Chjju&J(>@NCO*$M#_n%za?ZdC}75b%_${J zYv&L$C_q+%xKzypX8ujQ!){SvT=3J)Cq0KHb{!Jtj4{evtPfi#Rp#jLFHi=y)}PWg ztLETVnP_$B(pINQy|tYy3n*6bcyC&;0CZ|ZKr=B1VB{G9BHhxM z>F3hxfH{KI>kO|Qr9;#b7M@UN!< z)PiLbzb49RglC^slSB}?p|pY{(Y9)*;B!^R4kh_cF}al7YFtZ)pCtO)3A}JOkn{__ zNOI>yY%PD0Plk{`6&HQw;vy0fe(gfR^075CtFoDeUZt?yiMSii>x22jE)Iiy!M8O} zxVCITlDoyhLAbVT{F=$awUu$cXDf$aha9lBlwZrvXMUU}{8}}@eRyB=3I%LV93jc; zs3?Hb&B1E&uv70rd=<{gTZ;Oo?lJdI+~Yg}@U+To5hC@p-Qr@kYvOhdgggI@nGi0d`HXNiHll^fy*s0L~V59rNOtg1ZWK#&R4} zn6war1Zi=NRl%862u$|KfCKkKtHwbCehAl{u}YaOQMC0NN1#N_0N4yxJsX$axa}tX zGROsBbp_xMt+qo0J_`%X0Qa`pP1$ky@$-qG3Z^3zN<^?h%R6x!ltkd_#J2@>p*&)6 z6?U8)UbGB|l@zAoYI49pD8gC*B8qW~PsA1nfyJ)PuER#_GQqG-+qDedpwEm{^<&yM z6*dq8hjR$w^AQYQ#HK+x{|hB=%@=x zB}IVMO5&Mo$|0ExZW(o#dv%202#GG*XaS4cM%v2WU&Hh1aqzeBL|4xK&{U|Iev&=@ z?N?^W4+o%wKZrMqROaZA?n(=lk_t0h56$I;AErURKP$cidSfEsa}g-sxP;gJjJ;{W7rHtK?-O8vVx_#zPSt}FF1k8QD3RnSG*KKrLZ{&HE-Q(uOG3b}}63?%ip;r~?Re62ovrK*E z#ipcD8F$=(LY?c{xC7#1%C+$zLFI{ghO&h#La<#0B+hcrR{5WJ2Lv9V4&-$bjs!1~ zVT2}r7Hy>4+EyF}C!6YT?jlDHGbd~~-(+9a;kF4)L68>0R8XRPv1Mtu!X^N`g4vq3 zGF>wRuK*qSFjWsj!i4fWCS@qsbu1hzmV&rwkxCN0>xPy_>xKo@26|r$s(@P_A)n?} zkCViFe~UD#Z78 zJx)t>YOX+BI`5$H^)G`mAE*bX8V{`OmyVJBU>F0(Aq+@MnTQ2MEU2uv$pHm?3@0@7 zQeKHl&ffZDmBSaT0-MM&)B>_MI`l>x_?zCCcmDQ+(vdLGYAR%}Ng$p588ia^Gtg-W zLFgxmU4~!d{Ib+Fe@B#k=cUoIq)$T-iX_<4)`bYy0zKh>PZN-y@zh zljP&z(*YE)2pE&E3ejDexC_ZFR8EB+3kxV9GEFZ9HztduAj4Q!tw)Z<(K7K}x|)sj zA{?*1fglDE$c^|yu&f-GQC5%K*)CHjq0ybkE zMi*pCDcS0C?ni!hS+z}AG?x&f7$-nG{(zj}AH*Iy$srPzD>cs)3gAa6HN47E{^sjV)QwAC{Z8Ck%p9DCl! zas1t_6G^ksloz<3(od&CMwapMj4^6Ry}a;xs6N1!_8k^CLd`crf`Dv|TmhUF6yU6L<;%Sjg3*r4!0fZNE@rgHa-f^%c2f3Lm+G$Z)D8 z@g?l>cZf#>uO2&~95J9;ABJOYkc--3epGXC)K`7mpyP(zPaO&=i4GWmslhC=jpzM? zwwpSSqCuk}9G3(_$wt~&k^QeDVpBHZ5hisGk+``2FGw^m+xOC`AntYf_%wZ#V}&8* z(Nzpvkw5|s=^=%oDRD#*%bpKIL%TePdM%?YcnS`W2;i6h{wvYr18(zTHyd2Gf zj`BBVV-q3a#JkObY~apK@2=l})_ zdqg_Tl8lZGBQ06N%olrsD3;ML4v66%w}$tjq>xdsXj|~^MZu+ug04lu8y5wyT@;+Y zNNq~2$=ABaL$Rgf;TRBX92Ii#)~0?FP@uN6ynqgT@_+QeKzu{l@)_6)@xQThiVp!@ z>kVG%jZb}*)*#xx^Qosg%awrbsi!(zf5zFc_%9R1RCfaELPMn2nJ{AENe8|*Y$5U! z&+h7I`_f5+jgrVLC$1xe;KR_IiBXUTU#zbV?H9WQ=6~6Q$ULO~tbht;0|q}W#2ezL zAyk1#Y&`M^(xQ>OFqD4rmwsc`zx9i?;hYVX*5{*} zjat8;TJOo(Zw6$vLEm){zwrKa>RtB~)`wpiPa}|21r6HP55==tPy89yABz)|t4^>J zxHtLeUiZP^c28vkuc&k7&z{DbtoL^HXYw0&Ji3MkCahm(vw$ zbldeNJhk=_3GpVbBRA4fJuu_8dvJ)#HC*O8qJEuKKgnF1AuRT^tf0HiZZ3q34C9)1 zq)LZ-)^#kZJ{g!GzNA9earbA5tJ%sh+9_j3@;6wquv_!oPIai|Bb<{X|AuSWh_wag znt@y(q{dMQASwK2;dx$beU&uZjVTB2^;K3WOR zwcr}yXkRft8q{BiTf%44&(|F(2O)M)*8mZdLo-422>d`f3a`rmAt8e?iH|r`1ejy` z7vmRL2>zr?W$#x~N5@4VhZRH6tbfHv_2AwI%uqA9#SsOODq&$qc?8b%@ zxJ-$>f`Im@CDMflzIy{uG=a?ECOy%kk*4oN{3`w_2HKm{yy7=j?#GT ze-Mm=S5jgz68U^1VN&G4dR!4sH?y1gr%yxXiBDtirV`$z1b6&LC^W8?x_yHjb3|bG z^8dyN41dL5ehJ>il6}1XOO_05Wtc$n_6!2a+1o|MEe+@1EwBU*QE-`(zcb19tQnCWFmSupy0mDMEPtROltad+%VoaWLj_>uZRPYk`^kxeSnJT?T1pfDo`%^+J%|_3dI72{BblugP5SLhFBmDF&3gr z!*&`ujsxJRNukOX94&@iin^A>T7`eQBMpoQ?nT$2(`B=2j}!lOb+hW%^~!v`vQS@A zpf4f)Z~74$4k9fhUqzAWIEmr1qmguoMFQNeoxyZ8g5V!IGd{>H9jq4S@tsknTVSpO zUwUHWNE>m$Ru0A4wKs?_sSys6lQNl^mk#IO;R@B-kf&!RNkH zm<$~BA*QPuc^^J7%0~pDRc=zS?Xar4oE=U z`TrJ(J7XUZwQzCFCdI+-h_H0%g_NIxuaM+G z#_`EWT@D$TQh%39rMow9rp0?=KaRDG9xzF%Gsf8oa{nZ)xv zUg)AP4w9(d^}hBc^90{(q2AuT0=)%h@H;`F&pl(E&K1Idv)9guGn$}a&w-p6ms;YS zFq|lGob;FHSD|o!x$PNb_Dk#NZ@HxzkCZRvoT(efL>$zop<#DDNQ0@N!9e(j)J(G{ zIcmfAKy6w@T=|zAvY@*Gq!))F^~8RTBW+-y_z>XpRBeIy5a0ykLx3PYU-%GURWihR z9C#ar@>*icM&DduPtZuTcI8rP^5j}!u5N&sXnp=t+NWQIc-Y3g6GtT1Tk zxK;9E3ri#rO2lR7-9H9%JYF^pB1tQ-aH!Lg;l81_!*wJ$6UXdGHktnfSizi@4+19K z@_LB>;->&N-3G;a$2bKM{#^}&&mpfqhuh$EjPE^X*5cDU-^JK4@lKDaGoxe4j80El z$C9f%J?4%jGdpor<&tYUJ?R}wiaR~XodqMEz64GqMPGsw2R3~P+4;adnwaNe?dyfO zih0Sk$1AUqgIRMgYsp}qOZ6p%*5?NS5p{j)sRXmjY?4 zqOL5siM;&hSbbFfChjrH0(H#@-hN{t+HcLJgTA5_a@Kxu8I}m25eQkl^tFi=qtXp* za`b^_l#bquZ8`u~xg7lg4S8ww2dn8pK`xko`hqwN0ThHmjo}NnFuEXm z!ZnP0%)U(k_aYhu2*~~D6wIKSJwU1WJSNPxFv8<=m^F0A{&l!goY{Fw)jIMBAf2XxrwGGG|R4MX*XOyopys^_JPt;3}dJG1j-r|nnrgl9mnW^T{jP&x=#mcJjNq<5c<`zZA&kQM-~&i)$;6fW zPPwfeUBcLDl7P>4C%m!f-^-VYZq=38s^&rM^p!2X=mMPE#n)R~zZ#x9Z*?%!IkYz2 z9seA02UFOds4}nUZT<~0Ahj53K9ukyEpMCDgIe7o97i(uj~!RZ@z}orVvzDK!gXhH zd>vsh>^|4(7VfuVIfUul#{@5>aJkKIU`alb@tM<_;yqO4p%)!j=fhb6KT zkAJEt_v2dga~ey(Kx2;>jXnI&8tZzUknp#cCP^|3kE1%8VP7=#W{q2dbsEnI&abKp z7HK>if#f_LCo(~P>JCK_n}{ILa^qKL2YqOr)A^+MwMG)_D5oUaOwe{k9o8|I>cmqm zR8avk10~Igf1!90!<<-*S0UW&V_(Yjv5j#GANL)@LOlzcfupHw6VE_DrrZ7|Ad!^hv&SZ}?iQgUhr^g{N=qK0 zmah>l&mb*XM4Hmq4(gyK*S!e#*qOo;a%WM=C{8DUvQyr#Z25Z zAkWPb4ipQh!nNUhXPMPBy2Z`*5?17iskGLxTfkK+G-4Z!KXl6jK5#-;Tm}m%V3pSd z(rRnr#}ikrg-I#Oti^w+6uK-`f0bAd7LDv}udczn_Fu%4@VJW}`ZU~l9Q~2ttdKDt zxC4p&4q>9SMy{qNMJNFRHKAcH4ZyTr1G(KA!6%-;5;pUxcnY!7wHc@m^9`IbHw$uP zjnJwZTWl#@utHrkSfDlXFfF*tYTd-}LWYrVuS3UPJ|1)mRS@TbSeJzQx=htx#Q27ra76INWm-HN;QC zz(U^&Jc=i7;lK>+wNsi{aP+)8eW_YvNpa3^(m zJ)ceELU==0F}1#iS|@Q@l|esY@S*h(=X_~nkY+_TdxC>qy^PS{+Yiwq*S;n!uV3v) zH~>J<)%7qC7HzN$s!s-6IKH9n?4A1Jv@yKKctGC>4EmWzt65 z^<5fnkArY~HBp=6IM)ZA)0QB*ua4;IbEEbpwF|dqgZdcMDrsW6B?EkCtFzj+_L`)D zsV8Y*>VUY(eke$kMPtkJS$Up$&%`q(*K@gQS4I3SDAInYbaYk|z36I}u0E-&n<3-q z>cN0RkeC+$cW2)iOVb)zUt`nPDEgWUSep7ol>6RuEKO#<7HtTP?-l2EG>Yr^`MyB_ zW{^D1&UazcLMqM(lBLNE69vv#Y=g}PiRrvzzpynGCx>yqtw|WGA_=|y6}_FzO{t)& z=n^tFWh9;ztJ?lYvN-L;CfX@1PTMWCp}O?7`T7C~dQa*L;HcP)u*d~7_%rAbrx%Yq z-wi^5B08H6=__@@SQui=V-xnGMB3N{`b4^EY{DRs!7&NFv7e)VU42|vpV8H4@ohXD zAyCP(l{sqJdW$SuJCl~J|HIt-2R2!r`~OK3+CT$oZPlusR;h}DiWapsMT?NM3N7JR zOVxtgv}2vy7$ksOTZ(D5$wSng58H4@H@D-?c6K})n~2q+w!mmnCKXU|u&ugoyR&p! zMX@N7@9Vmsq)idrcFy^Hzu!OFJkR~yzkgoWb-%Cc>J`aWB}DFSq=6#S3dxwx2ML$I zPQY*=mryNmclp0!N_FtBI#OZXf)UY%DM}h8Thc8^jiFnR8lYQ{8qgE%N3hxQ4ff~D zq*@~7%QHoFT_O?FVEBAd&sJ?mXjr>2W0O|8k-U zsipnjXu{6u1(a>fEC}AY$rAEBZp_SYC~foO261HAwZqX$-}hgG~o4fy}fD6Vk$=F44Iih;8D+Gx}ZXCHZ2IRG(-g8Oz$-9Vjrch&nqTfgTq*#V8CX zfI3JzmWuI%-NCpuU~fo^Z3ezELr({n1qOO#@6%f!LPWC9pxo6dVxJSsOzZ?BmH1y- zN8M4;&;8V5ACG%_t)9n>%1s77f9pDprmYQ@?8=|m0uQ6d#g4r>dJ&XGLPmMgJ{b{W zb7@6e)6_XX$Mk`o6;|cq*`(7BC>zh3PW$$YsoFZ1BqtULlRWD7j<+S&#MUhyCK z)db~gsm*y(8?zIT7Mm1n(joNs4WU@`M|+756G%~`C{|N~eEVi3$anshd9q$|{`G{E zc_OWlK~z^KDvtQ#PmL!I;14BTB$2M6Ol3<|Kj}BNF0nF1_wNbrWK(AWP#)c0VBsRp zQtz+VzNMVjT7O2h`U`KO0B6Qh3+Rzy$5StkeCyaO6|w7zXaJt+sP*G}6BE4L3Gd@n zf8!lfs1!eJ4b|YP55@TMLVz&_cYfYU;qoc%-YMbo%i6t{h08B*_g)?@zoOlHMYw!w zJH~s;uWa{TS#OkIRUh)=rUyeV#YTB4)=yG9nChCM9P3G>FO5%XQO+8EPASUi=#d5$ zjTdShk1_SQt>W*`$mXZuxh8N1M|W|>RR4tda`@eT;9Tkzku(S%02|ehB<32=<9VjN zMV-kVMfjdWlKHF7Ph_4YKGsf_`5K)${B*y%Jtgx^1dq;~+i4}4->oxG+~~l!XqULd zU=u*}ktLHBz;|Yd(uA2dr}ppGcg0{E&r{1u99OZY7Rnf%8#0`~$XdHw{luT7{!_`asRk|nu*bnUoK#n2L6 z=9JFpork;6-ca5Cgq)$8=%G4H43*R|S{m5`EssZ3p^7rF84s>l?%}f#xO$wLA=o~A z?0B-GXONzx0Vg&qwT+N51n9J+%v&~fIlJ_fP-2m1B`)kURQTL<4258`qVACU4;<~* z6efx;A;jkH_LpKL3KahojQ>c#irtAU|HWnkDj_TvRF+w*?$lbf2rZ9VPNokuFF^e= zoT*1<+BL~Ih-HENQ{)l-0n9V*vcKLA^N0zJ2}u(gYh;fef(mOo;69$hu?YjNIX1g` z85$(CIxDm~mny+ECHQ47TJVp32^s2rE=zNgkUJ{!0&795YiY6(A^osr4(2(Ay@ZcU zS4Sn9r+23(2g7BMqxtBSDQ%xiak00jBbx2vPF-Dmu?DotxIH;?`a)dvv4t6CVE=AScSgS>WuMsSe>xwJ zip?{EWi%vW6!X93&Kyfa!Q>fPODC5U9ek+kZ5t-wnhu~0jD|2yiaotK^8~UOno$s1 zv_CYjaOaGv)@U8nQODFDo?@4P0G%ak`oWCEn#PUCtt@I+n`nArMh(vWcp#x}@CB(# zh+N6c;S&fQ{}Qlh$khXH%Bt?0*N|Q%EG<7aCRCSi9CjZD@-=Fo z;7*kVpQiQ^a~ZaxEb93n*|1RE+hr4FJ@%;oa??z`)3^^yYy>wHZvvb=S@qqX$8s3v zx_=jGf+v^v&H8;y$OEt@kM|w=9U0kf(VScK80Rkb+arti&-alZd%%85#(2VkO#O36 zunTbK`rIG_ZbWwY7pf;V$UV$v0>-Ex>*vRKwyS^T*{oQiRxJH|8k*8cpXfDCo`0hd zwKOHq1u1!!^DN5a`Et+7sA(l~^BkM@&zBXu4pBVgUf@2gneMcIyrSJF%&$C4#{rpN zAyf#p+*D{CvBfxxNu$E7Jnqc^jMcHdPeZfPb-&!EGHp=d!RitZ@V_`PcxAb)B>bfx zQ~SOmpu#>^>)Sf!p?bqoKYg(!a1-eI2Dv;r)a`*~BKtpb5VN5eugx=h=z6Pq@=j5O z?&X42u!R4)PBI#(b+vs%=Y-zXr08`#)=!_Mv)eJ8oh(?jVRUwB>K@$FA?8nHciV7w zk_STkkavm+{q}S;*ri@-B{>+5XR@|vsH;sGUlp3P1OGG|JULROJn|^6%c=EyBc8|2 zL^MW#AnJ_KrQ4OdLrQ-oZqYY`g=pjyIiguVqk5O5==toD2 zeuNC9XjiKoG7-;)M8fZpFoK$P&wS%GBxy3gRn8Zr=ncl8)cFn)x)0X|mNB%r9h1FJ z`3MuQA0DTjtA${9mfMqC>so&qN5)C)WQnt~b4kI;RvUXm-m;Q!`{XSx`SxqQ?Ml$w zYi0M?8G8cWC|FgB9rR)hGEbAcT{Z1npmM!s+%UW)Q*VM5wymK;eM=_+NBJqtbH{{d zNpZ+xGJ06e2n=H8Ik!d|T(;;R=ODBZYON^giH#qxkS*5k^sR&v^>O{<*rj+kB47>p11W&?kVwUmE z7Df?`M2(8s^uV|*a2m(@nYcg*9r#WhciN319cPz#O~y>Z>sWy>4KazIdE+HqM_YT@qIdI7_2_*42l=bT~kcFLJirarGe){%P-+q6eK&=;Znw zZG2TgA8`*0mog-3AEETs&K2U|Y}lVMJ_V#lb@XHE4-CKQv;v=MVM}R&-$7~=tab^z zmjv^O1{HXzmIC}AAH`xvWa()kZv}Kk$UBEIL{%Fnn&nwvv8Z#XuH2+{azg^so#tx0 zj;HhQlc5V|*8iZ8wQ}9=z}VvQoPhlaaS(R!x}Lz8;xFV-@IhDWGPX#W6?;(5$ZbF^ z_=S(n48Lk-nCEJX!dU@#+Os(1ofXmVr)i08v?@?|d-#qoN$C~nyQ2TRY$BGB7?3sFjpcqFHj}P&yBHSx)w6>2 zWft^nu?>c4mWs30O+>)zbFlNzQ7+U{`Wdv%=Z=~EoIxB0j{AvqL}^Hml%IC%0#wRa zWNG#yQd>p2Vf5Wl)m2fs8NEXw7$hHdQ(eP2f0)vB3^#CYa4Ec2-k6W8e9CwIzO z=4v}js)GHXJ-%-5EPCFe{)M{8ok?6K1BODtl&nnz4d|d;3A!s0^tukplc3r}&`uo$ z1l^~+iJ&JW$i$}IBJa`(IQB^iAyZE1fdQ^(616flXR>y3HnJQ=yZY@B*rXK@f9W9w;rc|iOL7F zt0(EM{yYkydIVf;Z_riArIOd+1u*rYIfS!FL)Us;ZO;+qd@oK9ruh~ad+1)iSk!}w zLLZe3bjL4Hjft@JI!wBJfm)`+{EZR(Aj$h;^Zl*}5(Rm$FyC*Bc%`QosABVdjw}ay zL5fu3;hGJl*zEd-OqF8>Ts++Io?|5an5q*E!{7O2MYI7OU?TrkCwpd&x{vDVp4lv1 z_%VOYbOIbJeHcJ%%oHiGmAMlF&=4zlp8;>M3-n zaZR;)oGum12oSUA&R9U0Vaa|>nYLsvyKC#-dZWwlVs#en3ac*V$m}72JCMlD@wOhn ztt@s_@2JpL;6t6&hyo+avAGDgWtXvYVz=?~#C@6DP@3$v8ar`eAtA8=3|=m%QOAC! zp}b^ZCWiqx!kYyy7=hd9_tR=35y?QkJVe(D_jb0?CIO>album7#X{g*lDrk||xxhZ(64>WLGg#`Z z&g2t)unohG`@JAcf)pCY- z#5UP&#dUAPrgG2PKYxLimkqf;aztDB>kLa7=kYklQ zIOO!76&$+S)h1Z(_zEQBo$A3hWFzIJ?7@y-O7EQWzS%oP2SskIMG}I| zVXToU%XKuWUr_H^B9Cfa#aRTH2MB;*b1skxVMlS-)ctA~Ao=_}F|-CKXE5iZ8L`*p zO1j#F;|wc$6|aN|`X4HKy|*GkqK_zgEq+qgBKP@6+=salm+nCfmXu~_w+h04*wi*6 zqU!YvvXE+^VrECztlOd$y@oZ#K8d`s%hgEwcM;{*fwwpHylxbd!_@N<^T^y5OyRX6L$3?2D!XpS$b<|u0LP&gCi>-nx6}$L zH65!JzWnG<*cjz*U;^rs2}Lp?W0)>dxP#p#?|--O7tI3kq~Xak0fYI`iBcl76H(BJ;Y?n1RV9HzPRD(VRC1o}AGoi1gJc%6H?&b-KFZ~7vSh%iPV zmryz~|RijizCI5C@!vnAaNZ&5XP{8jjMNT8;zF+wUQK)9Bk_AoHHcW>v?oXqH zeG`F6BwKS~cu8q^ zUwfSkB7X-xEZi34v?aWc0NL)si}++5P`e3iJ7^3A9H=5|YRj_9qxW<=V$Gi+XzT^ zZMjKoV@PP+lDVxbioFbRp?RUaZx7FKkTU(kV-&GH*mpx$Uz%ifE#V{{8|<@@kRx6! zWJq?{2ER#6X-IZ9%eptn#73rKghP^IBfm@8FJwn^3HyV&5Ir=wn{6nIEb3qkUWfJ& zGr+F4i|N~lrz28T>Qfi+EJL-KY8-(h^W-}jG&`h|t-fQy0-3lO3mUi~66`F) zMlSaP{)}Z0KZSD3`4}e)EiTXvnrc*+;c7)aqVT1MudVUR9wZ80i_{n3VssSTSqZSF z!l#zjqKMj1)*x1c^FP+AiX%o+8nO_7EL+2xFpm1v7pSJ@{l)mybkFqPO!DVUpY)sQ z9)HGFol)_1jeb}uWR&v$L9#(K(#?Gy&JTH8+927=OSZ{=*Z>saHGR#Xy0 zU#%^u=vWSk<t;aHO-7S?pJ$8x#E zniBS2CLhJ7%N6=T@|qGV&kbUa1-}V-*kgGtsvDiKRoF2_cHM;%Hh@OJ08qt2Y$>(h|&P&%l1%``kdZ9gNI!V4iNU z>DRy-4$c+lqJ8+mFz+#;WL4{(41W{qDaRVe*2p#SN&>i(H|hp#;4rXJeUcKt$*MS6 ziI;E@DrT6~OH2(J%7cxWaU2<-5@xwAwiyjU>eNzbx2mTsb4opu1|) z>ZvVFnHJ`+|2)?gzvH;At7va{`LVF?W7n3lc-Nbb%va^#wwT?Rw&57k|P^&MTD7#%Ef|DNsL7k~($UPC@Dj=Zo>hLbc-Q z45X}u+K4M=bHpv1$QfQ5_6=2XHmi6z@*XqG57)O zekJtshNi6ky1yYfWcQZ`hYHyLhc5DeCOCAdtL>++j68WSP@Z^W1TKr^HIgKMINh(31v)V@FKq35~1?vO8rAWWzB&y6oHi`^Jh zm-(+nBk=5?as*2GR!YDtjr$=C6yNz31CKSh5-{w{TcPz4>RE_1bglm5~1E+w8%^v#N; zMNQzUgEK^p;r7T#afp_v8dtHCLMJKb7EY>YYFiAHe4T#++G9PH`gbWtI5b^|} zuhY~!pQjJ#Herr!>R0gLfaTR52~8;1ZRdH|mP{8lNvgYL^Q=4S$c|HVRKg(fO;Z85 zY4-r~t2jKxRxzicUXZA^Em;<6UKY3%DAg4dCLDOS=DqzMXv5D91lf8M(am1Xu(Cnew8=C1*M&D;e8;Y65{haKs}`_Oui?GRwr7FZfLILkm5;BG zkS`A-H|nP$sga*6KMw5*CRMH&z^TCO{~E))%&1w?@(NlB91Zy{4TK=7?Be!|GyMe+;2cxt2+Z zIijC&ku!=vO`S>F5w zky6GcPs;;y4N;A%G&NyH!4gIGISQ62o0m0Z3VHfuSK>;wb*YHoq+1=)h4ScegcrSK zEHAWO%NTDzthY?O_A-*YO^KGN&s74w{Rw?8yQ?*qJfdG?HqWk@iVXi8O1sDb13*nce<5|C8n>W)Mfo?r0C$ zo0Y7jlCTOZ?ZG>DFd+NETJ7c|kLU)@wMQ`Pw@5T(G7>U-24FvZIYH$3z4Mn1VUx!f z&wgGQ0QVmPU)6ZhRLvx!%K)c#zW`hQyCaqm-v7lK40q!8Xsc8u&~McBRpYF~CThrP9=Kst$3Uyzh5D8s4oBqdDT-SE zjml^YuQjnA9eU~>Fu*6JSQWCdl2dH^1io=m_AoKjD-K-@rgvjgufyxZe zxD-uAyZ`#s;rn~*>x3Haj4c^St*uCPn#j#)htRHiXGk_Dp|WL7QDc+b#P*m3CG3uA zI^z1@oPv%(mZ#(txaW|Z0$7xFYQkA4=o&;2;U&f4eImyz6%xzVT+m)8H2kY?n@iHP z$$dRT%htX}^%D${AK9qM`My6f?O2^9{`~jni~Cs3@UDbo!`e}XjSk|rzO-h z01kd-IkY)V67~Xu!+)-8%fjL`TldL{2b*Cpc6$a^jCXqrSL4YFE_@*NwCEh%4k~o8 zR%8j{i@_wIpeLLdkAlh(8*HIEsjF5!X47fFSZiabc};NVu?AeKQSG$Q%BgA|M-Io} z!~)MT)?8vvo=gSY2?j_MnETbY<&>h0d5q$3JNCWAC_>ydjM)6ze^3+i%$X^K=Anlp z^y_oOp=S^(yN-nZBpHe(zW|*aDb|cf%zt6c!XCfLj?^ZAIcAJSTk*5!qXJ0bx~&^% zaP&(*h$Az6r#oHVR2^@_62ig7!xF-d<1(=>`7PwhvQ|b&{g?jscW`d!K2M_eUN>o) zVSOaV5teS2_ zcc^(;sChX9)1BT)0y5piPpbOQr$~j*klH6WxusIcxrs_rqfz;R2@|=q+V&2Gde@9B zXG6PrPd#kC%Vchh#K3vE`dN)6D=-gT!3602TLZUYIL|59Ejdw|Y(c&gUHBN^W;m+B z%hxm%6vdZJzVe~2w``Ml8ef}q&TF=vIj;emU%CXy{B~2E>f-PfktUu4Ul)9}BeK#V z&P-Bud!{#VbPch%*E1F2oi7WfI~p9>UVHrN4iPG0i$(W@mJ6AFGQh39sAe~txHWAT zNsH$eGUJ#vH7y08>=9dt3bBwvVuq{`yoBc%Jy%N4`P6=X}Kz6@TGpULurQAK1f&Et(TTS~_jthgSjOXK^I z^1MjpR$qhj7B!un3qJ3nNO?Y*t-c1wEou|k6{&f;RYreWMIs!Io%P!P^X6QW@P z-vloQk#BT0=S=PmJJVWswLAO{Z<(9GMtmJ;BlPp;>0T-{a~6GtBsR`^A~sGWZ@RMz zfyWsyR}0K;Bcr4-cSRVjJXEkG;3#Wp9CN6^KZN_T$eb~U)W6DO1!y&@xBHTr3tXTI@Y7jj{%J_tay3Rut+0o9y=F4L4#e^;H#G4 z8^^10`8FS~A*QXSlUp&~FH;!fO#J+vD}$5i1MV<0h7FNOV3irD4EfW_(@F>HSm}aWz-@a=GEzJ#sY(F6I}~ zUQd6+7-TY!sr#u5i139>1TwR!gJsOE0RAcAOV5-IQ-#UCxb95Z9RWLY@>6pG)O=S1 zYC32I+@zjZblr8jPY%&1hZ23#m*|sR|GCnvQgWk4obA*xx#0qxiG3#7oU^4l(f#yC zNBgU%prn%8hbKw{WgLGxL*zNK9dvAz>5#imQ(GhIp~(I~ZDHXFQ`Uit*kceP#g|Ws zFQ25gd=4=aev?6l6uP?_$I?apY8`>xzReKTcyMw?v)b%30O`k zu$)yZ1(0(Aw+?|X8aL;GyZM~pZu$gVmB8KHAhnwlU%{*cd6T6a@}7X#V4*7oUUTtz zsqmV|;m8GE(@C5pyk;}c!|PPFpVOe+t|GInxI zi>VwFUvtsPY~S1pzy`xNS+;%Pa&m@d#9o2TOq#qAK?Okk9cusFe^NxT8@f0#(UKyH z2gyT=D0;MFqKGKo`zHN&fJ<6!;>N_-)QQHBrZb04+}PBTf6*d}%0x9Vu9G67&@v9= z11=K-BBmH^-$tWs9$husobuN-bKfcElxI!~%`6Dbo)W@BF-}7$2PlpBtKIJ}bq~tw zBui0X!s4;A$kG?igX36?Ae+oczh*`fW;WOdqT;m)5lzvqVPni)+8A@?Cyg-+MyD5R zbSJ^+2#c?cF$;hpg+CU9Cc0kKBVlIwAFtYWkt2Zjt;z+hlU+G%f4MJde|ce2(9k;~ zXwcS-|MzOq8=X!eBI5Ah$z*G==+4v(W}m5`>c4J;Vx*DM+SC9M7>p9&^qaI~w3)qL zB)YVTx|!$iAH@IyFESof@EvP7Uad zE~Rt<-{@{``9guVz}d&W94fK^b=VZduFcYXT|<4`_4?<2qHv72pD@a%Y4{W8UrAkm z3VRGsZ!(LXJ}NZ~&*@|LH%&!XWuak+t!N02lS6a*640C(sg2TANe%eB{jf83YfAjO z9u3bq6#Y8qzaHa%a#`u!@q*u-Vt0hcKPJ25_jbco3H7!VX)WYt5)Z%Wk=8KXgO8xT-lt~N$zEmd&5-KeRE^OM=aOB=V^eeTtsQV+}#(MF+nP4KPcJ@QoDFoi2GvDXNpSavGD(@)NV^xJAc(>&)ulAF->g@qjG*Fq$AKb zmKoA}0QBW~CpVp8;%hqYlDaj%Am=9+T8ct2ODq+kRZ@|8JhN<-OA1?(I+z_Tl61!C zr2mnUv@(%&f5nMOVLFc**M`%Da`&k}60fbZF{=gt(wWuq({she(O|4^^0meugof&0 z7799n9x&O}qM~>>9hSpQYE(l6KTK*MHe5m+=hTc3XCcu7uOnv6n(Q`a+Km?{ccV%_ zQ)ed*x;r*V3)b$^L>VldT*CK@pdrA2g`Tg9dpKbWbm%el?HhR+CuG=qc^WHE_wdBh zf`|pp!LtZ&`h{0FFU(IEKO;TtxDLk}{_(&h#G8{eH5Qwk9<$->X9Vvw4%W!X78Pw9 zx2(ato$`Iyns zLeC^W_W>NiW7PJJPHFP`9%-_$CGV&WR2p8qA*Z(JAQnp=ODZDcsIiXQ*UHTVXia3V zgSQ>LX+30b7H{}tse2Xrx_C)$gI)IJZco3gd5jX6n#coMPU9KmYRghfV{EVy4)p0C zgKeYxgj0hF+HVL+k)}>V)PkzAoMS3oKXco3Onn5KYf`$8skb%DE4quRfVGYbx@gsw zZc##Lr6_3_Q0pF)53*{sY9uf5uR?YdiB#&>BM{%92 z);|-S;uT71v2@PPo z3Kdbb)`}P@JttXuMZ~kiOh?;gOjY&?RT!h*#IuE%8r5xoeO99FrUo)qut$eT*N_G( zE7AD3=jg`YVKzQpWk?MYI>@^58^}aAeiqupy783WBBlQyNt)6D8R`yQ`lDv)w;mpnas-`H6B(d_@qo??~Hn;+V*U2Wv>*<@0hVYv9!b$|9V)>@QUJ~M2Wa*JFcij8v94pQJGMaG zgEXqGvuOrmbu#h?&QTA#3D@X{6-ge<;YBp6=2Q2DQ$Zbx3|pE8{*>=ysI)6?ZAs{!#x zyH6EfDm-m_Y*xoHl#652JElF&&ov!W2$)@7gi*+dS{>#fM;Zq=+CxLS4PcHGO(jui$!w3}ZnmN)s5TdU5L zFO{)z4d>RXOnEL}GG7F=>cL5}2V&%i2IiFb4qbv#~PWFE4pM(3Zhiw*h5VmflVB9O|PQZ zc!msxzlf)cTy0`k6RBR&LBt4EqB0H21#7Ei1rLb>rWvunE&#Q+U%icRBNk{t^!&K` zIa@}z=kW@NMpNA=O}$p2b0K4!yV=ZznDJ>HN&v3qvA;rD5a3h0cokHU+|t_Bov{3} z58QnNgKFkAMtyL(9G{Qt`4Zz<3ySuu+vg<#M*Gz!YNMHkn&>H*2FUvL(h*;2U zpOHVNJpYMjV-SCg{V9QePI>+d&#o=cKFr2Ude@dm9^oky&4bK$GJDB*Bd;WXNWQ<} z==uvvnwcLF@Le7L$oEbR7yWH=`F=`xQD^2yMF%sxGhdYbx3ZtqkLp;FA4n_{s2cfU z%JaYJ&(DfS$>e8ozL>yGJuAK?lh0zTT0a-XGhff_b}#DVQiUzh9q4zp-NOU@c^_VW zEGwMrKC*Pi*Sdmt@n*c3+2d;coQ}BLbziMS80%it;|f;kueKL*cDg-$xxxHW+2guz zntajL#^F`Om#_HeaJ3akaAj{~rqw+oH}W-SqeJ+LAHjDS*R%I5FkVxWFzF#t-)D<1 zu)B@)qFu!ff5wcKQmZ9!RB)*w?A}B=nF4D5RAwPFvO4j;m17DrA15$NqTeUIp`$(X zAiJ}Ah~1s*g#PE-d1LL=s72Sv7QEj~>(fhRs$MF3Yc&Sd#ihcE*EVi4+6F0(HLQ$j zo787Ww``4>3#rnSQ)i@reb5?0Y|2YJMX&0B`lDMGpVHgzYdqJs9pr4kl|Ue(%a-e0 z$aSOYzM5Q@4d-fCTL=&lYckg{YLF(GxkgfQT{oQT7&F)4om_X6ZVWZ;2(F!CaowNG znTMJM{ku%sZcJ;BMAi^hEtC@4J)K_%Y@=db#Jm`x=>}Cco^$oI4l!N(nNZa_6@=aYPrY>E+sh=Y?hzDBLkLCACNvliWD8htAiV76%!XljN7an5J9FA%T zB{jcQ(&1i68Ie35)iz=*!07?50|a{;+I`*VWO@({+^t52VCnLc>_yvR$64*SpexT3VW@x{|LU{rXR5P zfhlZP>jEN9r&()VtpWpcZSkVi(L4dE`>yaRNBAqwaP`=5)p&}My{T8wp59DixRN34 ziF+{bKQ^-~^R-&l_>6-*n$HL=`Uy2&g?-KNS8~JE+2N|wL!QS-ds;G`&MAkuXC^~N z=X8~s6Nr$ivqOtEVR4H(b%s~vhwFjUeI)l&eZo$3ZCQ0OIb^;@uJS8K$E!t0GGEBt8LHe` z8wosY91D3m5C13jyrPxzt<4%*wPHHy5<+0;#{E5Dx`w z3M~F?k^FV$8F`tD?S6a9otc*M;7+^yXyYG57g?Y*;+OGy_e;&!88-sx?Z*#gXpKnl zbn^3z3fu&M#R(a=^&E@L>N!Awts*aHalY+nc3r>My`rFTr>S?A*tuV1cgA9pAZMW^ zhH1?a`f_F11f zHZ%B<-7h>n(HdV5ew5aD1~|y?|dU|TvxmO+VbE>w&bVd;mVIYRa)m8 z_T(pfV>YRrVbAf-zVvaPxFj(1bgf@aw`)s2!q2oE#r#go(OcGLxSs0@su{ST`K$zd zJrPh&00w(nj+U4Kopu5yW4HYJ#XMZW!wrjZV%2hVI=bo=+dFO-a_BExgcL0dilPZT z(mM^-+7PSUJH_4Qy8mGs8-nLSjjnQV*+w=WqqJR61AYi%O|Z!=$R2go#rk@FHev(8 zs{47x^AlT()yOs+YRyDBAh~RDZP>1lt4SOW!dske=8Ra%@E$sGAnnbU4d-HrkfLBdPfQ77x%@B>L9LamMS*(r?lKYZG?l7O&LY2&ew{Ivb7BdqAk6Y2j+Uh%FwsQm$4J?Nqp0 zJNXH!3Fxt?bR3>*g8o1VV|kT*LOUE#N6)8z7^|2&g)GOb*O_$aM!@T7$!bzf;$a3P zdYPs^mJ>lee>#Lnr5v$o>iansECplkM4yv3^}$=@h$mki;#2?nwh#&WM$qohOyoUP zGq?xTEb@hEl8nZvZBmtFK34SvuTdNn$l^j_yS$+343teGxh=+RuNK%|G#0*En7wGA zEcPePTqKxVm1`ymL_TcB8*#%rBb(d8aOR`%gcQ;V~0!XdYh)8$W#B!R3RodsW<2v9t2I2p?(hm z77uLVIbAJAh*BHdg9l(O+tzLwQCCwJu}wr)Pg&4_30opM)P<+X5#M&uwZ4VXGty_; zwuc=pM=uH3kxpl}?sBzZ2He83W|4jtr*U(qKvzAsz^7iFtW|3I$z`lsArz9vf^h{CYG=0IoG&KPMk?B`en3olAlW$O*2y;Niu}7IlNb;GMLMBh)$%JMALOv& z;7Yu3i-Tvi^<24q59Da)&N0{xElrPlse#1V%ATk;nsG9gZRRa@xrB>bZ`G0ve_X=P zkno>K{AFhN_+^jrCWT)khdw$H8vf5FS;kwuKPCNh&w8FERBVD;YeXHC? zWj-L)X-4{Fuj3(`H!G(act@{c#T+nD6^!5X&YveBbD7a?9x_{JmXhu1H`3i+`wAD8 z5ow5M1YgZ}u4eMeFi7W`48yn9eooUssIuqC_7;Cl@Q-VYI%m4OUH6SA-U^5Nb=Q41 zo{E5Fo1V=_a$J(g@sD~9g&k$>0B$P>k;H`3)xVJl)$0|#Q4!3ViB6L~NhA^-a-*_` znq-w7*qmw#TN6AID1#bboS3hQYuOW8lxm47+<< z;1A^Aa_1q7I@G}E4Nv!rkDC?3U(2i@yZWK*_8^ z=gO(JA@HLDCCr`N<=&2Ib#K<>ZXV7t(j&RWwl3R?2nxdE+8t##&JKJKn}WjVWOs8` zfLlST$*0`n_FPBYD-J`-vE7C3_LtPHRBm?Qz$PowX^ky3=Ghm7fh)G>XT@g-BKlVM z3`by$x{8RLpwzRa*>2&`od60^S)^^(h!2qh+9lf7tOKnu`VMDr>f!86hMr(@9>bue zviRPATo#{Dy-=APz?jc9@NsyIB?LYqms!MG60u6`3TQ3E!nIXL!N;s*ev2^fg9se<207QsBCQ$EdERw3EKWnuZrG-}hs#=K(VCTN6viuOXv5pzaCQ=V~mVPqP|=m!F-@_&$<9eB8` zC?5Nx6_tI@!`Wi$xU($w(|CXfTH9gbKtfFqhMG2*MTVYT&R!RK*3bWLEiMrM6VF-7 zL_Q&+f@-}BmIZjKi9adPRMpR*93g}*W%BO8fc=Q$`!x>XUe-86Yfj>h3C6M3Qnm?ZW*d-bP@*$vR|@QClF+R2-W?BoHI;i zHH{zxrfnLxAFJ|Zqn@NP6Sbs2?4dQoN^Wx1;{G7?>)Jp`ns2J{kOW&3V@08%oEf8r6PKM-wA zxqQwXR;$~Ly{IO%%(*QzDm&q+L_HDTX|TKL^Je`Yv!mi5^+5^LeBx!K=py*f#!28C0XM$?MT$We zjrqYo$R;ZDA*H*`QBDo`e`SYlJF02%3qYZ6;1O5r|B>~eqYlqkJ){3Gw-pO~ zvLe-<8|Auu^k%MpQYc&O&gi4MZVsb5&sdTVDOrYhI0Nc$lg*cvvltH_z!ceiI14q2 z_y4c4I~=7IapMu$H;oMRLxXodZV7%qkH36N%jXL$p_y5s*}34;jcNoDS)sOt64SG} z!Mf9P(Asi)o~7mXvn(NehJH)FgnYTiHLO+5CoXoi{*WdB&~z?u@_~_fot6 z*2MgY&Bvsqq&p!INn+RP{C3Bm6do1#FtI)(+kGbD0hB4{+WnkQ`{A?jK>57kYPs{E zC6mB&2@EzpZtNO$j9fw5-eTQb9dKPolh zE7Vx@p?Cj(y~?9sJxW#dc4gH4gjwx1_pay-h-kSSP*2<-Hrn)RR6pj~Xp=oN?&-90 zw6@8%neEwNcs5!+3F4_J9{u`|q}7{~TB*|uJ~cyqK|kw*N8PHQ^_ipQ>Sul2sG0iN zT$k7K{E2m$g`<|z!tb^w-A+A{BZc@c(nJr8yph6_q&TP{TilL9rqlIKx()E!48)q|1>&u3>!c0$a3 z3SPA%a|bDwB+41qO2mJipah%6BG+iwZF@eW%WSYO4mIbam553r$}fl ze}%4u`!UjOaAThiW#l@Nn~qS0T}*IPjQIBJq(0jhEUGrXhC-Bh3b+t~WUf)`G$uvt z*FQ9Q+si`+)`6n_td-(L#}-**#Vt=if~TcR>IAe&S^*3lG*&xEeUb515K8Bg&RAHO zOWM^c|9Ku;|jMFbS-WYouWxSCt>DZS1*hw?M#O;8%#{ZUzm#^4?LBCsb)HsE{RlFL$e*XZkuH3SSaKAx9<&4 z?Cx|KK$+gEjyzBIB;YEUjQm zEV^>1PvP#KDc?LLct>HLC4?>{z74oDwD}9mz)Bg%m=7;%#{Q}#DW>OWs3G!Ml(tqS!FZtBp=tGeb&O1l<9|K|=Zds^OoczAB2cqQ+$D6jd#x>N)2)Gu@Z5}s zvF%l9;kl0XDqC%Feo0{3jNs9%#`j%Yl<`VrZk7@gdGd5xJsqfxB+6SZZ|Q2Mj0NC4 zu^snsJQts9yyBl2nOmTK!<*oAtDO>il6qFZXN9VBgWXeO=SSw|tB@H*z88d+IMv;W zC`*V^XuN{R@e72=XD)&A)Xj;PbV|-wrHMCy%-(a=<%u^|E?y4`5^ql4E>H-=vE#*K zp=#qXu~D?8*h9p0#&+J%#$F+=lC_OQ*Or^iTX4BQ#{QvI<}`7T%6ZfD)%P{wuh_%Y z)^OFB8ZL~}I^-Ek5cV)i1WIK{8d}M47TLHai)(7uC zx7eSF)KxzgaCc~xyF)yWxVGF@m@A3^S!~f_mqF;y7RJ|tTyq~i;=ftlM36iS7+Tx- zO!PNFS*ntcf|jn%l_&)Y**EWbq3V2jpQJ9+?**ai!q^-YXRVSrSdRsH$xywe1MugY zs{^vs?{q+3us&Z0JED;;3RlAGynB{(n@a9x?+GhO!-AunZGM`lk_ z^FKDlo&^LM-l3y?T2WB~TpPbD5ArRw=$H&e=+=?g7bXs%THQ!YqNOy0?Cp5FEhw;T4h#r&KS z4=Jg;El6|Z+VImdvzwV&J}tA39kO+uzEQTWT#+>K2MUyqHeR-knH%xv!z>me`d<2$x-Q-F81WTBLefE}k);O5mheRFV|mmPoRt>{4Gt z)-9@M5(^=~{ZOB>@yM@W^cNy$(G>C%r=5aAb_(%=klXc?w@?Q4Lmn<*P;2I?TfRdV z4;jBDq(DCXm4|crv}m5XfloGkw0QG#ehan~&_T{`ml*r%Zr$E-KzjB0Z%eN(JZZ0r z&X-Y{B{UzVp@LCtojmCOaxiN5-+q&SQ84QCyMxgz|K-7Gra$MVz!%X3LkCP6cCB;+ z_i%mlp6;Oi@#Xdg+b!zP2nu5} zaQ=d#gSfmHK(NUq!uOpBgZ0If+}4p{@lsYNPE;!$4R+(zZqFe6u|+*gC@OeDTLxOL zUmN&xOS9Dz_(Dr_+MK{=Tbga&fC-2m^hK)eBszu(T2-nO1zrR@jqc4L+WZ5Y`?F!z z*peqRSHxQbu7NOdF5-C%$34oGV#MonJD`BLL#eQ%S9nCAF3?2D%Bo-G44=xWIEjuS zX{Fi#wIfIRNihTOvh{#$Ou_|Txh?@0xZ?CvcAn;}5FDk5hBREjscbgsdQE6u{%eZ< zGDQamN^yI8M6LwHuVsp9xWt{nusXFkE&9jQsq;jgI{%dF)NQB9g>LPLh<>>vv>c^o zXK49JMD(JC^htH<8RStbT-}H|^^Xvt{6p&0u0>iHemvW(#y_V{?NIYdMype6`~Rlb zg3;>KLCO)SmH*n&I-jOg;$$kk!vf{)(f@?Q6GiM1OK>MspGI+7TpLv78%uD})(1FY zDrj!8jOa$$VKN_NbHjA~zaWRu%k@))FsX8cPbduA>ky(?dO4v!MR2k} zN=ceMXt777Fx^m;;!tcuC@$bTw5|O6M>EYY@wJ$&#+}}+JmmP7*DR}mRe`d zjAgit7%O20vU6bn(zGpw_wLRS92Z1vp&me@bw;`uuk9 z1>qOcdfKZd)*EvtAp5B2!rj%nUcS!FYB_3cuS$2_)5L4bQM>Ct@m^MMlxNp-R^irBLW z+^677sB#VxhY4KUqvDnx8`siYP~d8vK&){2>2QGU-f24Msq%N>O(^+2;oEla4ZnleS1C01jHBZ^E0}M`g{k#X#&2F4w>jA6~s&d+T+%Jc! za#!3o`Q>n>W8Yt&{{V#$q=oA~d>@ngD+{Im{u_96aeHSyd)MNYH;%P*W$o*0uPUgR z*bN^WOP4r-b0RmUxdq&qx0*StSym7YtL?))KpipzqpQJ+-P{7#mWuPc{+j0cxi4?= zjr;mu{%d4bT6~`}4d^2pdq<{UP1rjzQtj+iwnF?Q4PX~b&5#}#A{@}{&RNq3E-&X( zb*>Lc)12u8>HEtGT~WLpA{W!8e|fbgAPtt!_;TkLSc zmS$P}=U}EQ-h6u4ekJ}Z$Clo*c8tBC-G1c^_nyXBq+Fn8V_Qn676fb+cYm<7Ou!i( z?Xq|<_X&YAN(RzsH-*d0phbv2)R)Eyk=d_m_+{apxRNwwg(fu`=VBT`?LaaU(;~9J z3RCBCNWEEcx)f|Hj>P<~#5@nw-aKbRCO*Q|xfDbew0qDJSv06><=xBx9?FiSb1~fh zP3Ifei;vHuz3OMw9!@S^lVxhP)BEs4-}?z&7O5(0N2%(28+i_W?{WUC`lD26)k1au zSQ-*qvT(_*T2!`EO7SjEIYa6f11}K?o@^_@=G!bBAf2&W#EiB7#s%UIl=}l6Vh+j~qf9HMHm$cjuzIg$K}%%`$$-jv2pcvH^=6 zOKb<1&k-FJ)aa?_ZM0bCBUooa8ya)@wl3o7ly7BxYq(9UZJU_42M{63?R+n#0V@Ng zF_b%uEVQY;hem-p%;3(F^LUrW0 zU;X@u92knf0c}>Si7Wbk5OS_Ip>m4NiB#8*wQ5W`&~=h)9=R6R9rib3j?dkk@47FO zfM7h$b&r<^cXOUAD4GM|stY3J$E8*_Z>~>GP1NbPoHB-Y;WK34VmLb@_72&oog^@h zHdr%13}KzWm}bZCl}XHA9=TU$gEcFAu|0-wu)|jEnirZSj>LpLJ-D76A-;@nKSn&G zYOy+tc1lIRDn;F^L*b@M9bvoUy6vvk+XycGlX$fna6RyUc+r+~!gDj*E8lH-nCwKeb*?g_qe0|t$G>{RK6R&r?fyxTNha=n>A*vVKnFKuFq zr=)U#1Bi!spHXj+urrks9{K$CSiCFS=#|{@t&X=d?&oKF=5O3^Erd?LPD} z)r>QSfw@-Yfe66wpK!aKV??L@-CBPJV%G5}PsvXSKW*KV61|Imx_M7anYKtoE-^!o znEwSB5qhMN|7sKd5ZQ%1Ej2zp_usx(@2(gvXuSHWUC1SG8`Bbgx#dl3=bIU6zwM2t zy~vrB*+^+!U;zUzsj1EzkDyMNz=JJKEn@=qot~CIh3BI9@GcWJtG)6&#@zgN&$j_y zZ~~tV>|)h89&&LSJGSy+=zvm3sB(RH?)dgf1F`_2Z{-GK?ir!V2U%I6%0~mIN7|(7 zk*Z}rbrmhz>Ak}m`;xBsGGCWCc(vcBE6#Sd&hv4Z)Jm1a=Ow#MgShR8R zJ`70}#Vc&RIY&R}{ov(^y%UdGzbz9j`#IS*lLeOfR3%VxA+A{=vQk($^`SiTf>TD~ z8V-)ypr^key6qUtelT{eQB`3y9dI9ICO1to@S0@rI8t^&mj6s7DKqBbOK16{8Z`*> z51+q>y{jB084Q}s_7a7Y=Cp}r3o`O833*LIk_fyJF5ijp9$S%ZM=&9Ij`2dh0g1Gi zd!%(A#^e4m^`WdX)SjyXf2j`^ShVRAeTE{~tx<7Kw1)SLJ-1GN2`8$Pe;>}Zwr7<^ za&5s6GgrJDEU46Je8o;jOVeIxT`^zX(zFjk z_cWf?Ju79+pa0nzfzPaK>R7R2#%BY-LbjG5ulC-4cIWZV*3Nd%;eai)S|y3#4=FS3EhsH;wTUh1WtJA& zi@wd?IaFJ+93b(%|4FRLKr;_?SPIxmkwYC=HO7!14&3u8XHh>hH`2H@ zDM;N#_f;5V>vJ-L%?%R}ZqNq-=Uv#+bl4KfZTDZ)c5oF8bHDMTQ5@{FuLBnk<#=6i zoBgK1-(uG=$)eKVf=ga?A@V0IFpHf`?S;t|N+TWslCIc!wvXbKN=$Meur}XrtsD5j zGeAa`z?o8z@sf6zxf!ZdY9&Btnpff(aNWbTQambxa(tRgbGj7tq&Kg@TE;H_vWhfj z#m%Zq+vpo>aSeOE+BBOUs_U1=8vE3A`b#qYDfvj-*k1toaCipJYTLVN4x-QPA{PaV zeO4KDpBp$FyH@<|@bL<cEeJ-OH@%~=dmKo{p z-c>wdqSy7*O?KDMx7oV3cTCvHGPAD}J`^p5oP9xMJ!hW^P`yaiG@mMZ8(x$v;Kh?b z{0T#d3k>8}pB0PNNBoOSOMtP;@Z2kyg!}ri9)ile5pPAGoOMs>U_4uK<{#z!H3j6Y>BjAYUx0C~ZF9s3@y3N{ouB`~Fh2 z%l2W;OQwD!r~0>1qglFyYc_79tS^v=dwpE`smCc>KX3f(70rFrN$yK3zA!-ncEsOw?%pNMg`ZY z;|yT~!RKWK3oJ1(>ZiZwW2>#ql7Xq)hS;Y}8k$Q(g9EpZzN)~wM%}9v2LWRZ4o!32 z_X^c;weH}5P&r+#a-qY6zdERL{Wn(lFBDa?wrgbmdmP1!OI@v(@*H1YCgwJ7hs27W zE#DS7jC*7^4c~l~usb(jX}hs7`ZfWif*ZclD9h3i%Z3R>owbps@78yFHh3-k|Mm>| zzi}bV+;{(A!#7V`p>9BxuCAMFE zmh2N|L2ja_2oe(LyM$`F-Ip&r<EVXRXNi@PRE-+W*SYY2s|L591O;b!e#4W_5T zT2u4IBahx|g{VKK)-}Re4q^i+=R?-iASrT=Qd?gr0GoMCeL!0hHi7Pt8S?HoWQI%` zJwtk!Auo_9F-eShw;9v!!EPaD&RqA&LE>tCg#W?6idSj=)!ytcz1h|FE@4N!7i78G z6i?xsirDU}3r))Lh)|C2eDLxIy%XP=*jo*ZqDRe=L49^OkqmEqRiS(tCtvZyl!&K0K^UT)TwOYi%?&PIdP|B3*na9_ML>dU zTy^Q&Qbj~A9Y2$L4BRcVpn@B|Q@hJvoOGA%1MkZH(-G60?+zSkUs&ahpSR9ih6%Lv@?fdmkK!Buu%GS}fkAZ~%cH zDNsuglbEP1=11=F#XvVFquAON=}6MP?hvT?z*zZvg*E9@|9ecZ48^dmw{cdx@ z_YnSu3h_h~65m7kA)2C&N=@W!o&FDc7&*jJ3ks``O>JqVBO2iCK9~3P^|n=D?mj9& zf||&h5T#?M{#aOK9F#1L_=>ow4{`W_M$SDDzfCXt`d_j#byT7~Nv8-=xy?AM23xf= z07+MGt$l5vvja&Jt2Op};S$oSWZDmi0h8bVHPIRURRtUMS5aQ<8I~`!as4zY+#cRs zNwV{mjb-zChds>RzVNOra&;tG-ws&cicRx})igUxpBol<9&m(#LBG57S=pz1v%38! z!^^CicC=t(3WSH~BiZ8aF)(;FIx%xmW?NtnZLq_!qv!6J19=U;A6>I2I)Qu$;$zec zR|M+%LMUzSrS^ll)h-nRCg1C3pa-UZh92?$8G6L~Wwgcar4xDZQT1}Xa{O5}0_#pZ z?@r`R|C;*qDs=t*rW9zw=a^CSrbpLaexc~x?US=+7h3-L-6CN1CFI~E2 z>k^|=eaGG&{mPhjQMfsp$F$MBYjyK%wH}LK2BJi9C~w|K(yp}4A=RmuKV`L7FH@Vj zA|jEGyFlEul8Yp=BVVfqr8^p}Sh}Yc(E6l)aFE@RzBcPtyx0X{9=rKQTLn2+o+;2+ zjq}EO%*-|X5M$#Kk2dzml@`~n=w&|I(xf&y%~e-tZ$%qO4&XeROXR(xU)lQJI z27YR-NfG&PkFoLB8H4_X*xHr9)7bb02pXX+@0WTbXBZnlM4xSAV`i7i;>lhm>>6d2PuZHyHdtDPG`%I7$pfODfZ)D;?Lv5e2SdxVA=prcwOpS;gbH^jLP+wrr42k7PJQXIBDzoyU+s&)#II zCWb-`vdYb3@Ts3O!_VWo*%oN_lHV41`d-;4YCKg#ZU_1R5)#>w+MA1DYX_0Mx^&#e zx|%%&MnfTcQeDj(GtqJA)ZQ|qVUkYma~cholR6sMf5K?EgcPs>zcMx#zp3q+NeG0M zz+x45=!Dn}G#rCC;JLTSeW&O4yFG~mcA{Y~51AG1KbMWqM%HGYSOiwz0JdXUnYPK7 z*epAYhNv9#;f<>Xt*O~S*Yc}1u-|=}g7MOu5fV~y!<;fvOv>{Wawolve>(CyIWzRL z8yME0=+dqMKm!n|aA$QX{G){Y+(GOPyPOtXj;{9t{Z{9T0!0C&z*elwR=9v`L0E+t z9}*0F0aZs?QmOEhu9}_xn$8u^R*gXU4VgM*LG-_Y*+_i$tnr{|ZLDxRB3v`PCF;H= zvLnME?lji5kl*AZvaPGJbh`w*b~Xhy@Y)F>q1Jw%+bHV?18=s>(^ND_EWy#O&0zGR zvv5m+QfrBZhW?SV%rJn9*XpsKmp&vqIepSAk+zJcuV*xsc`k%3^7;n`EO2AMm;{vN*65}N>9S?Tqnt?}}0^1t{>ze{bW8k4^U_DaruC{>KcR~4o(-|$w zR7>%0#H>B=gm#N}hQ`Qvh6_i45IZM}Z``IFcd*tBJ8j;OaMH_`>G)*ET_MDF!ELYH7_>Ij9zpQr@9IrsSX z*%<6MOhzLO4HVCnQ+s!$We8!|$-@Q(tMjTMvx92LS2+c+pSTgO)`Q!65&K$xW1+jP zz=MDl0XSxEUDW6=%3fVZXWH{*r|=pNeTmK?Dvl4eKWB{1fh`Bg%qB!-u5FANQ_o}F z>$Vw&k^ciN(kFcAhm)0QTV>%;q&`GN zCNk*EFmaj?O>i$X1N&r5qhjB}4OnJ`pGzny{TGPn;_NV=tzb z$g+C;r!iI%^xNOOb-Kq$_BYbjBH9``lp~TVmcK6{a{IG@GqQVtGfvX9J|V@JvxF2C z9_w}{Z3L@D#1qG+#yk3nCy;HtTa_!0_Z1y#(MLiev;(K5K`2BQ(0VzavRf!fMN4BSS0%vIyeRXLm$izb+h#;QX+BEkTpLA)w14JbQK zkE<6O;Q-hOfzBjD-`T^^ABdu6x+UjKZXRjO+o8*CZabyFQK=3M(~tFNjUfj`736US z_75xWNSci*Z8n+`6S7$ci9VpCA8E7E1EDLD<@PHkaAvuI1F=VWS*#Y>916S^A-?ko z7Kgva9_6~$?yK;C;_#mmzrZ3kEpci4aq}smOa5F1JL0*0w*hmv@UXAwi2V!e37#J?~m>Kr*!8Lq? zP+i4Zj*gkNd>>TRUUeCxU{2C4D4uqn7N8mtQze9$*%qit%YBhMjyNKB;QDgUA#?UA z751iRHFR@YJMAo%cH-2sABp%tx<6G3Jpv`u%Snm41Sy%0;whe>KCN;=caqbVKUR2} zw*1WP90hHThvjd+yN*kb^5h)+*E*>)Y0EiA8q)&u?HRV5nc9|9N=@2wUPcHv`5>s1 z_U>b+e!wRickfCO#Y#Ws&t{~upcG@rCjv2ey;QS6s)3`Z%2dDp;LL7oc4rTr>0x&s zILsvIr>*%Pu{&4!Qne_3z0`XqyYoG|*2nH-(uQ7kXQ6JV?LawG`taxyyAPVNl;P2= zUMeFZ?PhTPYwsDXo}Lxfr%=~Jn~JdQbT$>Gi05CC3(r3b=U(8N_^KryRu{I7EHHNF z0-2Cn25Nh6+T6zFtP8C~5U%S}^)4+Hf^~2dY)^tg@>A5pPjOwkrsl{cR(McT;OG=j zV_Hb`C$aVNd~tVE;Fush6`zt;6#waIH(rS}C3JDLbTGw;5DG=qoyH6LXRG~l?$H9L zCp2Q2gZUOM6M!=DBjdU2x#5!=4ktIVxsh()xRe_yp`mu6qDA82A>5YPeY9hA%drky zX<-ESlJ^MPB4oZvs$+vo+gxAE^R1l-$e-z6;lmLe(y-WQZ#g*=yEKJs_uOu?; ztbBEeU1k6s4quicFUSp?3gM6KzrwR(A4O?*G&h<>yG&U{kYqZ(tl}`^ zFb`jZf`~lqaPii|+gAOMe0!k#TN(DfcXYgdZz%8ezQnHZioMVv^pcefZc1Z2h$~G}903dr*B9fr3q(9#lUko6Trobja0Gc)c!s+(2#H zP8j%IXmUkFsNp?Dx2fShA0|;03X={6BPu;~t=7aglS^Bg@<&d|TTws)sGg>$HldIu!${DmkHcnME2x%Xp46!B^~yNV>#y0DxoHUQrs{1 z%cQsS=Z8vcUp{&7QOUoNdPGI^ScyB;4U7=ah_dVuU*rWkA z5)!hcSni&i@NIrX`n0l=6GChL@*xm9v1T5yVf(QK&y#n9Z57LTnrvq~0MIn`I> zTUIX?N_;f5IhoR~%kLNe;OS;rk&xzg>s~*zb%X8Fbz}8+10F7RU#!^w|>f zH&ZlE<1a}Xg)gi*&#Qobh`l+yE=(vYwAG-T4>-;frmw_u4C%(q@W_IBjG z^nJ^gyWXH+Gnh~Jm9ty=9&%TufDcueb!<;wpgDY*{YAzTda4+sur1+XJuP_#LM3(; z+jW(zvM29R@(7C!-JW6lV4(x5!RRxqOm9b;b@Mc|$cJRw=t=vRCeaRd#jgah4ja3z~c#i_=M?>1IEY1ID*#c}4^c2MjU`)5~q=O$&MS*$LNY>L>D$dJ$<0HR#}dvKwumUFFg> zq_9~~gNTUV0~q>SSC7jVxhqyJL3NY^R%G6KhTkgZa9A|MF17tlwvf5F>EN-U#v}aUspq(p zswTa!pHe^IiM)#E7lhn(#ZR&&9#jv@J2YI5=r}~<8RM0vdy{7O<|4*x+|s;??V(+L z!?itDXLoRaMtB4_4}>Q6-P|8vO4k0+#rCKvlN$J5YHShgpNx3y171#AOWn;)w%*X) zXN+jNZbQ1=hMsS>{esX1ef4ZtSM##X%V2q5yj_2|J$yCk*9h)Kb}WX42WT>UC|ddi z`g!$_)EvJ(uc9lIt_zCK&a0dkPJh|Sw2KFvj1X`PHwpguut&({X4OT^-MOob?@8lKo&Y76JkUC3b0W2(&1u&Dz&$Oo! z{8`e?(u3?VCUdR=`{o03(8i-N5pCz6It?aTvE1hZ=Vzx*LyI!Ra zd0Ay7k!H2(8%|UO$%78#880?$I+UYJo#0vI z#WDvI(!^pY1wM;RYX4M5`{^Blrx98|dl4Zx-N?lMU9J9%k;K9xG?lyRJwm)tAkRBl zK*?PRr2-$k|L^2D^ghrQ+rq+K<^gnFeGLX(i&+lpBR7>J_jy_RI>NXAq%@_U{gBlL z(#tW91M<_xY^A|Lm9}0?oaKxS+Rsyuc4Czl-t_mikmGk0tzb6TW*CYYW>13i)brN# zziT9@=Ra8j7@;%l$5<=R6M;`$DU0{hdNZ&|eN}`lUCgKavpaX^pR3fUzaO$8IqQ~7 zGLVTJ6N{o8|4EIL>Fz&J7oMvu{3K=VrgSm$n9AZ1coe0|IhK+Lj~q549##$ca}d8I z%^jZHn#zqsOmA)+kXeqo1MGK|Z`t!rgE`8*>fl^f;C9%C(1qkS&a-oO_2h=d?#^lt z9(y|)bYqh6D%O!OnDj(^08^V&*eoi**b#Y7A|Iqh4{YlBjT|m}gBfR2#C=8%BY&Cd zXue;zgW@?NN3va!ktH>yL;5$SH5ED$#xxbCG!~>Z6}lP=TsYGLGlcR&SadMg3cS%m zW@FZC>~m1GIL?-1tgbx#hCl76JP{^3A(9fb({ha#EtHGOYyyCrP3c?GiniIbVp$z? zL(SNeTp=)D{&qO8(Ak2><~DihTk?`{IJjI2hFGupNoKi>zQ>_2-Y#rXV6@mrltgW1 z&oV0)Mr#+Fm!RxxtXypt+-nwu%!1`+!QE!TvSrKQH&|~e7_C(5ub87R9;c_>Lar>n6vUhBX#EMJOQuta4XWAfO8(W?q>6_-mUkJ|W*Oq8eXDju_|sJE*K z>5Fd(m*nh$DfK32P?_3DzxDhH57skjPD^yKxv;fY_* zU5~yy@2tDtcs6&l;4;e8mwNBo^D-LLmNLO}&dbWaiJ58TXNvq}CbRUGOyZP>hk&k^ zZaJ%*946X8)V8(xt$fQJvt%0fxX>@s<9@^*lumn4_Sl2c!bK*WaE_n95k-hBRKlao zCe2v)nb1&}+91+2<{gTaGBs+Kd^0UVwU-X@(S3bO2Y%SsYacY9k6ETZdcAk)G#`^z z<|JE*nuuirTqIUYdFFj?^FEK-z|3a_48)MM&R!0!%@@5&QNJqb?J$fuXpii_$OU>2 zje>;(wGJXGxZ|cX`q+Gx6xAd}*^6hWv{)2M{T9z|1Psw4j~pX%g!GB?ZP|DbxlZiY zqqLEcKyA*|LX)<%9NNQ*$FT$tlS=KUd=XiEPh_}O*+h&NokNSpY}@yHvuvW6ATi*P z8$ByZiIrIk-|H`QugE~6Ig;`~)){1B*O70g$J6RwNhI)8ORGXj`Njh4o$>9FmhOEY z462-HY;IaO+=~wpv7H4^?bS#(0u%SjpDwz+velM6gW;2~Q{QHfw^I_YQBt1R-sD|R z?B3oyITqxuH?}Ex*BiU7H?Ja@^2NTLyz7fi>CL+-nR3V8N~S!q*OMu4thM)UHlh-{ zEg@3u_D~6EVr4!Dh&Jc7h6dGkhz}%>!#KpbYdW3at(AF2upw)PcVvz8EY9S_k8ft? z@^o4r>fT4?5p1vXZt4S$SO!<}5;`AGY4EN(tg8rdI2BjRx_p%_H1c z{cI9g+B!oMa|4INgK`6(8TI1x%8S-(K|KAS)T=HGs%gm=$Jozb7#cFEg*RwG%tw~A z&we&F7_Ie|t76(B`sdDn;(_3qBmbC0Y4UzL!3#tr-TwHi}(-<{|r-?!xHH8 zc(g1BYH~I=td6FF;Sx$jQ0S(lghwIBi#AB5jIWx@RjN(MT4=Sa9lw=;?NY}{GMik} zKu)k;Yb+R{QYe8)?Be}f{{r`ZA?6Y=W`|tHTH)>MYKJ?+nZ^r3*Jlz6Y^``=kKf8T z*+^JsO@~w-*pCpBb4$I+j1$8AF&DmCj(`ihF2* z|L}@#OHm9;AyUe z6_I1v$B+bk@!`=@A7~A|@j)=j7AKz)IA^c=rv4ZbaU_*(#Pmqex(bLWp{>{}&!MC^ z^h>RzP+ZQdr0Dg6^JDx4BnydGf!`p}CZEhx59}LV3N^@=w$fIg~$8<*^A? zezVX;J=*h3ZLs4LK%8}A@nnadLK_mAEPpO43K_ube3?7M>yCX&O<=$}gEgT7;!zZ1&!f6}~_%&-i%%-54NpIqWbQ=-6PR3wJQTY0% zk`d~+?DFxf$PO>i2mw_VY^?ZLErXC|lh-BEwA1XfY@I+G>S5WUTZ-6wlNJSW6%OhG zir0#l!(Ta%IL?P{&=N>yj>tJ`1k(q?Y=I^+@bGsCIBH$3u_TQ9?tI%-Q^>i#TSJ%i zyH$6e_sX!Z?!F;+gE4=f@5){nRo>yDhL#$G%{C>RYJs_95K3r-RWcF7GIlge z(=?{@d8be@*6a!Bb{qEAUSQoa(Q-C9u4iq9i~{_Z{fAfo0hU2OwIkl${Itx$Apx0# zOmP5X0tcxvsH&(?rhL`HDtO3)Y8;wowoq0;CNj6W)tF<7+?N887?rfFoL3JBfruBjWF$rlf8wnar9m-H_O2Ks=Zq1%(T~y~!30+Zu zqqx6o^`|tOAwUuDkL>9K6RL~I;H7pTnMa+|kEN5@W=j{1b% z0`gO!OK?g@nIf*~5`}I91!0?6>EWQN{v6v{lRN$T*2X|rXc#by(%H-YTQ>As&kEv) z*dQ(MY_a=ROJAjLXPhVlI;ZxwKmDUoDhtv*$HBJZYMAcscFT$|Jf36^;H# zf1M}(^EBua+mRh|+6cF355$hZC(h6~5sw{26F65?KZv>f5G1CIC_XNIdExsANWESC z0;)?M30D!uP%UQ`L<9BQVEr0FN_Ht1ng;9>L6IBDZ#R+>HGZ({FZC+0mCYeOQKV1Y zN{xSzTVaH6;|YGHsZ{$Z(kW^*Ps$MI&G&_|gx^kPe<9Wm?LS){Ey`A<3a<6c2hd9W zf*#PcAf+%6Y7vEFLrrXn$CQLCK;A+#{!ebjC!veQuJ_;^tsK?DoI%u<9uxAiu>wqW zPt}r2iSw}a@nfeO_J*$`K~xC(j7c?0h+}@GNO<9xL->#8l3>fxvTPwXu?ZP9iZnRro)8jg>x6GVx{g z&%dCFi_YLwK@SnutB^<7pV%mRHJjN<&1ZAHRJkEvPf4uvnRpnMp~-wS@QK9q6lNd&Qjdk(o_nno%z|xq z9UgJg8F*w^#bZ(0m{&f>~p>8^SIAFo;GmzCNbOW`&HbS(sx5Hi!!*&X*gt z^Cjc3Ui>fbqgD|W8x8j&HfK|WcdGb=Ss<3ZjJMUzi0?>_`1AJRT|URUB@=301AG=| zS%XmJiEMX!sMc20r1zIAcT!kd{|uou2KeG>olO5Hw3B)Nj6E_f`)3?HLwLPCRw5nV zrIxd%1xrbL#)p{$mZ)Ux9ySO!m^Qc9VN$!qrHAhAU-19M)*AH}ie|#rFbLq4C>=)k zW%)=l_JS&9+n%P!{v<7CCTodsvKPOQ6Ib9~9>Yo<2CT|w2G*6nYU(|w`Ezo%-gaXZ_82tNH3t}ZV~)aNCfbR(c{5gq4$9) zkcrl=PwD1KuOO479JBN}Yd9urHq>F@IqlGBM;MCzKpx$t=Ib(z`tR`*N6GLt%O3VY ze82V5fYmk_JLCmI3TjAmt@Rru!g)VV1r%}*=MfDXjVq54QP+enD+-M+3S||AMiqsI z7lks4LL#U(s(kUmRYp9mYDhe#$~)gG-V`l;#GE=`_lMI#TruEklKsIvKb+MTXs237 zY%_mI^L-q#f9DUKt$&Cs&`%7rr~fn)?alw|tE4S$R-r>9j0kbqh)2ZAEE^xrUGNi%kmB@zASlFFsBia2evV+K!y!EF123=|rCmcLbWRR{`;uJm05);0rf-aKLXID!N07 zy%8;O2iu(5qd4?9zD`sN0-@cWe=X;%C6z&ls!u zZRW!w3)x$b6M%fq2~umO)Jo&d3aum5GHScFG?`**{gi+S>ZOv$gqF8L0SV`|}9foLA|N*1E%2EfWU=wfJW}tI7Wwv^=NoC!g9O zXzj(cn?TcT?>M1lpx*0w1MV8#N_e%2nMkQNRu1^)2InqwIbE)#3Q4_%{#0m4ui$WL z--!Olr8izeE;%{KN0)h^h=Yk?d6x)Fc*e8MPV~(2oU`(+FNxJziB}Augc2Dj1V*7- zC7nJx$(|joR5s^6^%nkHkruC}!XR1BfC;mz-O_QEwQUX}z8rm^P8?Oj< z_5&X0s+tJy98@Cn904%g;<9_uYtk>40K8NM+-Uirs#IYjbrA8;AgP6$@jGRaNR7RE zH<9B=smT_@NoCa4WH>@4G#0d^Im@yrT8?uH?-IeS9wzPFEY=fp&f9fl*>&(tlC$xE zH1aIp5HnTqC2%85A5-XNw)9Re#JpnpH>NE(+Zw9E-KqHYW?&hDSs&qRi0p=K>Fj0g zQh%C6M@~ujSRa(1thON$P5}lO2q&=>@b&!E<|=)yz~Bz>HEp8OmkHR7Z<4|v(1oAjzV2gfiHZByi$b?Y)KH@#BA+4b$*Y_ax<9uvtFdBZXvj;O zqz5>f$GQ2^bIBjS;fL^X8$;>&xeHS_hL2k%7e(i#Zd8~rBMsR|bAsyk@bo(NOz!;L z(B(9rw&QFo*6dTT`9;!^pJ@SW8aa^&4Gv;acu;LbQjzo>Ur%p(dUimhaZLJwzT-gM z;kxlkl~eYbJ)tc2noDXwo%^#ppV3&4zO5>=t~G;C_-19S={u-yo=LdEsaw_HpMBMO z6I!F1JbFO@>Uu(SF{qj z*4!$mSo?}ti^(6ZGBEH*$2<9i5H{hv0M$e4a5S+|(V_mzcvAzmY=#=FXQ6y!Qb&p`1!(JYx9Et#UW|H|pWxFlcwoP^fayn@a{ z@B4iw=RAm6iC29`KO-BpexPn?E_=firh2bPWeOSj{WJ1=WGugzDKzD3nV(vzkRVRF z2vurMg=$5>(%)D-x5rpqbR}XeUXhhoJ4KAeCtI#W^+Y@Xyk?CUh1Z;I6z-Z`&izaY z8s5(+ykD$rpSD5gRgA)GY@_h!VK3w$6eARV_YuM2xxa9T@3^>FvwUIUpl?=RV( z?}mt$J$JvoUT_#EB#tO?&^Vz02&!)#PDPO+#-Y8{ee>_Hj^z(icrZ`!#s7o;$=WU6 zB$Wl#_u%kF1O6TInR8-t9t~`wk8D{%wUSD25bA)Ygsa*D$ctqO2)2&xp6wConb>k8 z8L?SkUbVXQC;ByDwCs$e`x)r#;3P65#0c~pGomdf{`%<6o#DCECo%%D$`3X54Ewrs zm5TWIFATe_0bW4CXaybY$UWtK`R^+aTTtZ9AJv|p@jW72%-dIJ8b$~fA$!?kWRb3# z0+HOY2UeY^r1`3lV}ZgZKX9JH;OYjyPGRe%u&Tvs1c+k;S+lg@`8;^Ffn2_)69Qcz zQ#J6ZSv1`&nrRjV&7yft7;UxX&lgI*Ex)LP$J!hl-D1ntIG4 z*=G9eBDF1z-uM%EuoigFkP2M*G-H&M3fv%rH|uf+Pq-KzgH#Ae5U3>7uJlBRg+%)@Kf^VUaBss`C@iWm`GfFdUFv?ZYnI@Tn|S{Q z>T(+Eo*}uWrpw`QJB)Qt@T1DNAg{QqI(1H8$T7`I4G2PMJ(Kn2d7XDj+Y)|?X9G&w~!AcEW3$rb~JTZezfNi z`T*0KwO^2Dz(B^cW>BPil+o}Z{hqW}l8NUzSOPl3qjz~{`u79`7?{SFu)wB9{r~ICX;!FLj{0{6fOZUfbQeWdo+XSC}KircPc=!{OCF;?EcUT5rgP=-~E+GfA2_`nDtA_`{eK$ay%1ePo*G7Dx# zr+KO%(i#vqVMo>Y1q^q5YClYOWIG3TC^PzBa>wchSB1cqfb*TQ1;Hg=wen}&fKYoY zIy0+VwPV72gM-~4v`k~2STKrZ)Iag_lUC^| zqNawwq*CdlS&D{?-+Z=ub;Oj6$8-kY?Gd$&jL2ONgHn77{Q>UO@h_>LkjL-HU5%jq z@OA3d6FoVPkwZa`sHQXC%T@PEPB-og8^ePmcRd01vjG5RB)4YZ2?E5Mfelr@sE!_A z9#ng9lZ>?aBqv1g$$6O^2EHm-WCosAt{=(=&E|s+ml0ahZ-kPcGe>RwPZ{Bz&Ompf zm@g+bZhUQqBQMY$zMAXh#4znhh)0t02fB>4+cAvMF5xZB*>C%?C$+`VZ4?S9&5dc21GN^422lGxYX7E zDn*HMCq><}fpd*om{J(h?&keFGYfQS9j95Ni3_}|HAo5sQ1?9=VXkp2UT{=ArdzSJU< z1m2ehE@2F$+%+GfolcZh4SuPMgIC7tMY&UR0JZ|h*9)r{*n=vE3NZH}8B|krS`2X2 zzQ^@Is#V{U>p}Gmt_!SIZRyi1cx`QNkw!h4V^3`W`Y>Cttxnnkogy?wB;j^2lMr{P zbk?#}qfj#wF!inZK{?nSA`geL^&nZHh;WL-J&E+_sYcmQh6|jyq07KSmg2B#X zyPvy>D6EEV$BPOUo>N4lRGl}3YJR6Q=>KvERdzx`s7|pea|Jo;|9c@+C+HBW<1{z^ z|A$aL3)2h3oF#qon*Z$(s@)HrXMaKyexd9z?H36TA5^nA2nO=-XZyYp1=2m~mD@}J zo01q@nF7NV%x=r~J_iM277-6+oLMx%3{Gsz&)G;;n`1eD|BU_i>Bp!y$rl$$gT5>c z8ps!eUj|<+#U+{H#~WF`k8Pz2{oLw+)rSTpBGJ>8j5srjjpdn%Y&b>NouIhn@6fc=glW2%3O2ELQ-w1i}~BG?<^rTOh0`$sb-zGoRrLyw$yt` zZP0nENf7{$yn0fNIkse5(aBc!r*-V>yj=)4W2KBx1ZCN)#%Jx6LSdFGJk zNwuYJ;_pO#rNZzz8BPvc~Rqkkb{h}&Dh?J>l7K>!NH?qSwEBx`xB0xg) zQKoJeiiEgX_vcm(nzVO;y6r*_5`{yq9oDOnHyr*M6IK|;I;aVUf7&=>-OoutX^83w zFPTI3i6(M~r{qR4hBI%ejg%-^-y*9wzVcfABf($7&V{*L8tA5NYua8WEhZ#iZkTIY8mZ}auYQl_p)$g%!Kn9hH*(hzN3`Z)VyiY8^{*K9KJqL8#&OhUsTI2G zj;BT^gB4Bq%J5`#z0t`YfB2NKR=5YG((w2-Db}w1VA*UTw>%0iQyBjc>T09m*F2=3 zeuD&t`{pY5_#OU2)`R$`MrgBf-~Sbt+nO;3-kvZudUrpO*F1Q(;=13DdDt z&~6(8ug51y!)9b#rQO!_HDGvWyNa@idSKn`aoz0px38R6ch^qwIm4VEJ|E1gz(E%Q zB~Ps=ts*j>d_l)-Id$%`#in1M|7`yxf?P6Up~ z2-X}y2-t0`-$xf=(_DxOw3t9UEkSO6TCM>JgU%@1Ty1LOFi?~mXM?5eYMhW(HoXH$u~5mp>Fg{sSCMr@3xmw5c`D|#$D?C8Cv#^x#~llZvxOJnn`DPvm* zEof|Blp;Xcvz++1e%P}0!<3BA{9P-qfPU^W9&NQ+;YcoT8s3zC{k9bsT)(X+>%z$I zZeq{&zrHe+Zx}~X;(s0SlUT2`Hm{c>W8ZK&GA3x(wQ|b^r!(p3T(G{yWdN_y`^S}6 zrC6RaLC4mp*3EPQXl$7=UKK$QBk0vXBr|Vi7JePzDhjBT{k0>lzN$g;y%!LxZh5wA zd6u<9rHt@6{N-*wvsrp*)vOh6fBMQ>WIlDseCp!+TItp-_xOO~JBK?*7ayv-tDTj& z2Y3dx>0ypQEg#h1yuI(6BR^gEJ&_}ci(0hEt1_FDd|B6b&O`TTj+{1n*7~B7 zWwNmVR`272km#?EO141;wRV^cDn6EX9RvaAt`EhypL#fTi^6#{F|rFM6|CHG@VP>O zRXufij!;^|(HgIHtPs}Ke`0kUQ@ULkp{yQMCOrE)h#itP2=9O2CIckm9-^EM z$|Wcb9f_9V@V zPq|VsJ42r@3SCeXzM9I%YoFB%f@%YL$oR$NjM6#7g7HKA@PhwHB|-I$t_Ah_epSd< z;wl26$0$<^gud}F=be6&T3+g=@p*$oMr4~ef6WOmvu#BeE48)xuzbQV8S)7yi$|4c z{?T%r!WQTg!Fpz)COs>%dU*b?K=yzLov^(tzHm-NXh3}7`8~q(d(X@BmmrMzpYr^J zDdP;D|LeP%tbYy9-@$|M{B2B$zn$mzs*5%a-$4<0NtWiEdOYSm~j!CN(=8? zQt1J^9e;h(7Sl9L#;}uf23m#{ZV;R)V^H@GISz4O=rjTC3mh~TVHt411ifz&J1}F7XA!**%{r^^V0-DQ(f0{( z={U#az?Wgb+}IQQEn64GF(y4$E)|^;IU35x<1g_bPbA!vkPeexfhb8?z_*wkw0wy< z8hNf$d$hPiQ~QtU-~JhP#Bc9cKt(%(1uJ|Y_G=DrZSwFp&UwA71-^HlT@7KvDcQR2 z9}LUPgclL2*P5E8@yGXC?&qz0JUHF+$q~=Z(KBLBVtJN&mgna{x{C4kVR4?!Xny8= zb#THB-%TAOr4H<|zY8P&mjxCBQNyt}&=L#$%JXwHznJgqhSN5SCKH9VEq|gNQ(`+= z*c)u((j&PL1K~3?`qQNWNy)|4(z2RC{UjGS+Q`x0R-nsNBY8Ml>sz4Z6jEhUe6gF; zG%2TefTUIJ{d4+zTTZcz10(jM{ij7YE(pRs(6PYzM!lc&x7R|ni&V4r(sJwc){g{8 z6Bq-QVq$WxdPw96ZSF*|XF)i&2(!1jW$Fj_!kugVnMg1ONGTTac#o!kx^(g}Pd}-M zbVPcoJhVM2rD(3!)JZRCl0;8IBlTyZ1Wn;+hw#ef^5?a4IjB?7^EJjF`E+eQ zS*k+Oj2DXL!lLk(*mJb%EHkm(r@r?cW*fnm>@2VPhWy456}!poPzG~TG-U-CEoiMz zr@9kqO;S_#Gal8;VcrkUvmCHQeni@Lce=E1o~=+2BKuvej8KsXnT_Ea0+;8pU|a!8 zmLO}mgy9(!4LrZhaR=Hwl`Fl|)+`xT;H5}+C+voVv6&y!;3k5W)$8ah@3-n*7biXp zwn?I&v3+5e-HS0xP=-S+hY!mAGVY_W+ra-H*nx1W-10<<-VcoiK_UPvWCI|M5-vRv zep=K@mxuVWf#gnVq<8CTM&_)zlD~B;zX+gtU?iUKXv$jDeUD(K0K^l|r>R|*E>q3qJ(PhR zYMLaX#T&TmR8JylV{~OL_wBpFmEc@k`>f_lK5wfTU1~5die_6^9y`d7<_#OqJD1L_ zN5XqBvNYRKxiq4e1X`?DWy&3Q%alVo+aGf{wDL?7(q6pbZ}WNCunBNEH*pURJZQX# zw*^KPUcNw(O4nc=vF%PP$MijkChQG~%{~NgUr*t5Vz*KjuL+ni5mIs6&XdB^K%vxD zqaUx8dEO67SX+&1ZI1XfdLcTreW!3dNhsmKzhgD3!$(pdmGz#d;4-QwDNi2&nSKe0 z3bCY|f^(5{vn4B~AH1W)VGqlPbgQpxGz^Cv#4XAMd`#}ev z+2zbQ{_b1U_>HF%C_sttQoMx zG=G6$fbCKv;0zJYWLjzHSA9*6Mz@hjEA*dSaUi}E--A~oKV3*&j$fM*TB7SMbKt2x?Wg zlUU?f)f_P%B#^bkU*j<%>j%8IGWnjMMpU z{OZ<^+!@CanIdo-b28HHGuHhZFF;p_B+p~4dt82P9n*^A2|M2IF|Q>8rwW_a50R!f zuGbxdI2ps#RAETR0X^IJs#fuT<5&Qy)o_HbvC{hbBerG%%$yE7Fk1tFMuRqZ=@VQ{ zvRC2j62*tY>#!?&<7-C{2V&Ouk8HMlg_VP2Q%Q;O5U6NfV@{SQ2lE=L)IvgNjNizH z`g9^4a&w%zx;DAn^nv^%j&gBRz+6>FyeuVH2HHArg)MCI|J_flegvzfGR)`3vM3=+gQy zf>ihH5&GwJI)@Ruo~4L*`45^FmW`+Kw|1twkcZXyQn3N5@ugMY&tK1~aAG-U4&FCD zp(OKNJHP2^>9zsfT| zFQAOIgGd{j|62?Qjm^;uxM(;y(ihrkP~?V@$~aEe$e!Co_4~0DZq{@X)o=5o!{vsK z@VEKV5k2WO$6tQwG%^2v#Hx-Y1{>?1BoX!gBI=ELXigr+sB4?Z;@~Cn39zKV#637f zo@uyd;1$|pT@MOG0Vwg_6Bo?6l!{&laBl2_lwdNzLe!zdihzM;MIeCe(ZX*c` z$GCfZuG#Jp_lPn?+oYCuW0Oj}6@=aZ*VS}Jw&p}yGV^K<8Eah>g7GQTIwvlUcOna) zs{!3GVY&^hPRuJWN7(}GL2dS^z>&PtBP*t?g2(Fe2fC}TjUuk!YL;XZW=JOb4s_)^ z^0S?0mV{6sj6=9<{HM&W(XX1zVLUU<`C0vy6A*HlvUVn(WEYX;dMV1%ZG&-auIjSc1n3=T613a0?8VH@`4b0VA+up(PJd6^*e^uvB(c&vF7 zCtA}dPIjFb7T7*D{iLwg->?|_H19RtUsiLx_ij9kMP(SpSE&eZ#!2#LL&H{Mp5iRHT$3+M9)#+!w~ezr?pV=^!Y0AI+oS(LDg(T z8=_RcSj2wVvqmJM)#5BinxdV||2D&M-71=6w9Xz*~UdpT(*aFTCrY)-pUgnoeAU=A&*y4sY7jRp}h zqyH{&Eo%{4MtK<^Eh{n_w##cTlw>HeuaMZv>$L+L5R~71hMdN9)N4c3k4U0MZZ+0F zLaNEA8k*AHILo;pH~Si+VGUV0`d+a5)1`Tp7ly-2t&*&z=Bym97jeA|#7A?MJFhY) zd|Phi=fkB%&-71@4Y;Ly-#;N=MnC>t^ZZF3rYN9L`{B;V! z-7hi=v#f%dW?^=-oZ)!|`6~zK6--~LmEvj4iWF_rkCRuK^~R(YaaO9__o4rANI(@X zS^Wv>GH{uR*L3rW%jKvlvwY?-E9i!vu!6bf?98U%)W+FaPzw3c6*m(T&s$k7%K4!L z!kQf|x><>3(DP2HUWntQPd_lm{#BmUaLv2bckf^`PH#9`J<{4|wU6IJ$lIk>_TZ)F zsHsztodU}m8M~Zdcq)%G0fwQ1mP&KRu9RA?(x+#?7J1Cs9wK5w%b)-@*{Fiqw9(4X zF{ftfR>-?v{q8V%w<+ks93g*D<5aLA?MC7^%QY2x8Vj(&1q&UWIk?McAUqnCwEL&JjfQT)$E_~TF+xFNyZ7X$ z>5h!9j1!4s$l8Nujk@nG=uEqM9?F2{sK0@NIkGMX$fY91EyUk5UYx7#u+eSE<_IuZ+O9tA;`0?B$~c_SPRp(1X1M*neY)XY(oBh+ zzQ?tD1fq-I5J(+^ZU~`O_pV6w7kgLTgE=)GU@)1{@Ft6gJ>og0Ub@3o--sLvVp7Fc z?~0&g)U>cwMo^rE7AW)u^ZjqExMY>v-@Rg#zb%~Me^tvw=d$tGv7T-r1r6;8#m2Xd ze%0#0OlRwg!K+e{o>sdAW~F2a@cb0=MP10H$VDaWmRD`%J0lOZiZhw=Ni28M8UKM4 zGifg`NFf0!gog^UGFbTyH$sV{!qUylRUdpp3EeVqA2Ip2n>Ah5%+uqd(@&4{7o(C^ z;S5nxZZqnKi59)&Znj_j?(O?Nuu7H*$M%hR2btsJFVkVuwd4V2+n;S_POgpDVAum z{^A3xu2=z4=YMtOWuS+TDe^{+Cqg5{EDRlN@ezN?>Y71TX-9moICD~prCY?-fM~+) z+N#UgziJe%^Z1MRtnyh!nTV};*3En{9dJEtKt~IAOoL zhE*JNQhCMBNLi-C88{-t9q>S1pW+J}>xT+UUbak6Mc1puf3RM)_Ay;#AOh{`hliNY zCG*EKK^BhQ#v0h8*FbSMYXI(`BsUR0g7Y+ni2FVgsh6u3(TtL40b+Gn+QLBt^}s@y zjehDCgpG-CH&7$0{12L}s;gb@Fd7!}c$`&&Fky$`UoR0D+f)3$at++=-WC$uh*Iu9x+EE%aFBUiF?l&3JW4M669# zxm)cfXFOcvrqSD6m7Wm*$5*oRZRblBWQzV}J5go$SOuBMV8cd(Jvo31cJ?kZ4Kn2~ zJ+NXF-zU&fJ)Dge#MYQ|bmG_>$KD#VbGvqizh3rnc+hdtfJRyfMb}iD?Xb`cH+x2bT z+Z1b#TOIj5T`TbHD9Ca479anfh%9mmG6o90V9*OdqYd-Krr=|8$jo5RBa%xB5{XyX z_=c5uFE7Zl+D4URYnd&Eom1!OkdXIeVoz}oKumLzhQheg5jh3ny&R!6i&C%g!r%t%YiG$rU-P9{Z{Iwo<7R>p`%Lbw%O(5r3g6LR z)`hQlSu_Ry-xv*Ji|oAv3+OaK;RF*JwdvpFo1AVrd-zgp6jSsE&Qz zY#=SJsCVL;<5Dsr+f|h~y^k;M-uHX|n=9v7;ZtI}3iv^n>u^I$^-z{{Q|8dd3kyWb z{zoStJAANL&@RCnXzscRT%DLW)|?XM$667%YG}Y$h&%$BFX5r3^}sbq(2{Uw(+%X0<8_QZuVHWdP$Dp`4t|27tvE!c>SM-JdryQUfr4P zFmLvlw=x)5S%y;06!TU98bD^q1U_KlSl~{}{BM^te=^{_2zLill8NlVe|*ISO!_@5 z4F8_6+kZTCqm9myH-6jb-PY={S?nmUuJT~D+Qu^PX5yE-B;0FgY_{6|kTm5FP*0P`!tIb~hK5^elri^b5&Q;!dDf-p! z)jMt%VxfBQROe3UNhgCRiv@e z=52LHv$tCAtx<1^e{0R9)~cNGLfc0tKWGiDyAO8CmB0#k2NpMn!XG32wPxkOr#Y-C zYr@w=PB_C8(44{4l&e#PE?9DUVFF}d=`|;wg@Tsl$Ybwm_#9hDQ{lzhNyjdAf{4?uMhgL_MVw-p0L|U2CUO%rx+FB)n&B2}#0upS`Dcn~L*{0p zh(oCGCDCDH|m<97S3%JlKEHVogTZJ>Doc{zR zt48G@ge#}kvZiTiV+r)O+}K=raZueMn^ZRdabNgLHMPY)(qw$Lw7{H5Q=n7oF`?-R zz_){>Ze6dh7ZWEY&fEY##u(t4sFeM$m7B$PhpuoHFXJxfc=42=D*3Unm3Ld@rMTMX zo5i_uqbR7Z<3^--9RDXIqTzAiAU^e!S%GjG^*Ji=9J3-DJvw@ID_SQV(G;20KIT;+ zJBL!9N;xRxGDkWA za5kUmjl6owx_4Zp&1ub_fYc_k&!K+$0c0X)qnt$kcZ>!>rQ$I?c14emDVR8>Y;wjn zqd|m8;ItrnsJUF|>KZWJy_WYe{Le0i@FM6Z6a9`Z4bS#f4pZ;yw>j8&s?Y=0>|V1N z6c7ff_6F+#NLp`nkPYb%!!(sHPAy9sZJu;ZOZ#lf#ENed5HQ+54jG2kgHD7&e2` zH6l?_v?yc-XPSgx56*)qM0$hhhL6Cx=xB2`vURjMLi}wNVND|64ZEa8Rp-M5&O#>8 zV=MTg>{+wlvz5dG{=+f^^AT#;q3)l>6fBr0V(7lrMf`6ay~(UCQo9#1k*lYhwP4ec zTyO@SfAdZ${79#4h|q{0)HG!xMdmp*!iO`vWu_Zhl|k(cX+lPjvQ?T ze))QI0taMxB#J`CsX5Wvd~!mMc=_;z;s~m#T4@DJ_ff&6IEbB>tW}9YQ&&RQcZdXs zUA`aaE5>wj>C`2~Cc_M+X6sXLl)}W=PXT^Tm?P?Ao zH}yqMOhj~wbz8}W#tW61q|=b9YVIUkdQ$?p8=T5mbC!1nB7_NkWGfBVOPh+l`#Sv{ z>>fts3Vt7LO*a}YC6OoQ6a5L_x#UPOdo`=5;OaP62IOy2s>xTp<{ z`rY)&-(jq63vrF$n(XBb+`d+363f2F ztRhJ!33=qk5Thr0;?HJC$PIM4S#1S+m(_tbZ0m|-j+##$iE6hBN?i+dNJ50t9H5?F zV~)Ei1{)5&BVe5bF?&zY*nA5SfNvC*L?wQmj^TS*qTHv0a8Z7=WSrW~TSB+BakV2I zen3|VIM4F$)yoDQkYBzxSOgbQNaWB&A#*e?2pe|cWcG9x5Y`AmHJxGA1ed_JBC^?y zFbBUgD0Pey7=1SdZTD>g!TjBu|x471RzSkKY4=5<~P7lw4Y-lH~fo<<@k z=!FuKX0`$7>@S3Vi_Dm(gTJfgXbYN^i|J*R%AjvLs5Fso+=LBZYvbq36P|dV_uRgK*=h7)T zp+gTPIyesx^~K*RVTFUMBNgaR1ZH6xCL_i?Y?d5QdK{m6pZU^3Cgzcqh~;8oxG=gw zIG8QDB*Dbg(_}MO6cHE0oQK;VFtHxB>9tIZe&OT8*sq3vu}^(Oif?XzUFPyJaH*DG zOb{%c{s!qSdo4cp@=Q4_O6pxQAB;0vs(GcivIED6a`aAg%C>5aGL4}or=q1J+9``) zaftim7q%vu{KNb1I*bZQeR6gO?{M?I=&t}8Xta6iO;rBkp{=s*FDsY*y5I6vGUHY# zyQ|?-!S9zLToI?l_`TULfS+TBzn^{_oIOjF$5HNgx9pakN<_Gdp0QZQHmK1ReMUt` zC=((TPO1_yu^(*~osH$M;P%Z#8PY0zyUZi*GyVHVEa)rtA6~v%riQiuc;BBR5uwuU z$JO&fJd{q2z=)PDo*sV7e(bf;dynnCe2%E zPhForBeqJ76^EuorlfJH`BlB4XD%upj1nL=IA=Y(CkUJsFFfAEzOB+|^bFZ4&exot%*t%n~E(D<~0jH4_w7r;&vq2)Mj|QPuE8 z6o~wXeWg>~>+fM4;}1wIvZ;+Dka9w3YjhXddg`jbk}8T;8=jKenU9>r6I)l`B%8$D zqSZpnoY`eicuizL1slnlANuQ%d&3u`1SdUfl-t^Le@?o)S=2qvvZ;84hfD11Y#bVH z=&&`y@9d}h#M|gq#F4CtMDC_b>S?-(?>*~s6it7-igSe0?Jy`9{~0Zk4^v?6(aoIV zFj`hfLfH}*)M+*#=fMz^^l)(+csBIJ2}~Mptb5KrVN4 zx$t^L0m&J?QNo)HZUUL3fs9E-iWFdfkniBHry?&q-N~uKySzF^nKZ3~Z?dOt>Sg%?34j7rBd>bU$qOHC3$$nj%_8__LT7e}WCG2C zyQ^N94eae`Z-V+1;LSN-N3$|zt|I@W2{SrlZ~qaK3&QY(+YX}{EMlUda!Ojc!Q z3!Lg;f~d^Kld$FlYgIR)UMC2^Wx??f62A#M>@u5dKV z-K?44(c$jqUOE(xBFGimJ{%q5Zhl0+*n2mN`GNFm9 z!#6Ds-Ex{$_vcGkqB4xd51BJ_W`lFl6Eu$Ze55x1UUslH(|!wzIBBN+5gV*J`aaE; z#5T3f7ykD{X0qOAPHQ6qc+E^%vF!=6&yR(zeK#Y zh$in3ZaFE(lpXy;WPUZ~+9nEs`h|;@hQ5qc4>y6c0+EU=wThm>P@8Hw%X^Pv?rjxW zT>ffn5y0)=No@hO^e*%O#VB3vv2tWfj<2QUm_d%j2xktCFiMQ`_@tiRBzKXwxe=iCrC}cSUm^Ia$_!INKdFBP?gl`~t^7RtPhs$Xpr*p3u zjxX?pKSqNXblT=_7RNi`m_2yE{JCRV@Rn&o_cV9Q1Yjb*JU8m#Da55{6Ev;JwZWe+ z_c9c3(+XHJPT7|wQ=$CJ3(b-V;!nLtoky4T+Do~^R4?U%J!Ux}pC`r+K$~ppV2SWm z48J4#lAbU^!X65DLhro!F5Z?(GsJK#J(T%OPA~f1S>c;J%dUOK!8<~LE6Iv|7*TT< ziY-^d>0^4OERzJ5N>{63JYdg7t{!#kLcM&Xr>Q$7J+>fT&tmn!gNap`ABX>%9lUX7 z@Y?WSFAQEWGgQL;G%9_3>cr6u zC#N3EO`zTydmT#<6tctR_F(-YZmk2N@rh;uB?qjdeL;Xst6T{BI?|orLk?0m|FL=BdK@kZYk9b zwc{PyYR*{j6agc<{ab|H*EUlQ8JQYk@oovI*%);a+2H2s|D>X^$PDC?x3rAYm6Hmz zma%idDD7@63oH)^_@-ab~6_m;eP+lD?TF7l*aZ>g3%6%&XBKSbazna$q|Yyh<@_FpmXmk0VbJA1S}fAx7)v)KG=*o9%GJJ#?72(%snVu4k6urmLzg~#@vWE3mW=6;Bs2DkI;TAmIF?w z&S;^nGPijzx0Qs%0#O|H(a_ zQva8wetrG?+w14J2ehymj!Ozq5kzj`4lV3-nv;smn`Lq)F_Y#Viyb;WA9qR7>OP*@W zg6?yvBeaAT29oB%s1P^tU7|wB_ul09U_Yr#5~iO>mANXEuHHA$rjCUKE8L_Gn& zG2!7dAgssw#oeXz`!X|9MTS~Hxdc@LCM`_h44;bb1jq=3=_0WR0 z@+C(3-A4IRBM|H^xl_iL(2!pWnIC=St0zT}X}+p{FYQion)kazC+~O!g$>c|Bx%t? zRGf@yPEoOF-z-yT?_vr85#(9j8B(R-IBFR+BnEN0HHg76oGtj@Lu5KF_@DT4JT>@V z`!mwu*M4a=h~w1r;T7l`e*k)QT*`;JBc<^Ggl+q5p)d#I$$>cu`u@KQ0eOemxDf*K zmk{}9gn;a02v!Kl_TAFYw|1sXjF9GfVs0BhFfm!Yrgm+|*(T!}6GEz|M$G)QpoYjy&~eMaRUuZfkuoRV(3wH4WA1G$%V{mmSp=#x5I=JjEE?(H zpcLo-GI`0kB0dGBd7ysM9QAhm+0<9P_w+lfdy9iW8|T@P7i1Hz7V`d{0WdTIs|Y`rSfKIrF6|^(;M4j4xOE z`KuRF#wUAKkMBkXmDn|ZDLj3A|0d-gPL!)%sxCbH_+A1DNsjN?ng7D^1>x1`_@^aj z8Q%eVZjFzlK)u0bIN*r)5y{WhAT&#vjA2iwj9o|mlv9JKa5Ef62AWF&Wdk<2S|FJ* z)z*gEkur}J8#SP+^6lu}cQ5BruG?NCLwMj3h9O zz(}G<8%aobSQBCh%%W_nfkvum$Y3xro!BTMc1)hJ^i#%gJ))z5G3>u-U<~qY9+IDd zZ|y1HgiYu&-;p7ClKTw(3IlOq8M>UPXF)iRX5p~qSY(vuTGJv`{wcM}y9TRluazl# zyu;es1cH0DN|dHDBE&1R*MKzE7*mjJmuBz;TXGs4+Xx*|IKe`CiYHR)4X90=qyk@& z(gFg!7N|acM@lC~rcD$EahjG`*Ag~15V=24{oZ$(;L~HjV#VPMf1K7h%Y-j@pQ{SS zQuu9$d3+D@q3u{Z9JF=|YF6zQ-giRokWw)ZsLtmN0l%;FmD0SWYck7Y^S^etj zWL>Kfot;_NW~pn;x#|*jB5>NBA#7T;dZ4bWQ3gJvF3mHN+x0c`!^niursLZb^@W@d zT;Fh^aG~&R=-m!ODdJiep9{j&Xg5R0<%4&7gsV)F(ByP%HyqzKf4}F=7&P|@-nC{8 zHvb*c(-qHW0=j7AR5+9D;fAro$Zr^eYs=Uu>y!E-Y37k*zaM?{*zcK1b!?){f>-^O zCmZ!tztX67YNNSF@yRGWh#J#VV~ijGdU}m9DV@C{iK~kOewdYFe)ZWJEWr>g)L>)9 zE4c8)njVy)MAr%^gTmPgh~vT|&d8$Qb zkqCKaERN*%pz))EW5A@`Gpa(BTYm5$O*+4-r@9>F0On1 zsWbp=fo#$J0$>+BC)_4iVyeZ#jZ#w*hl?Ovp9R|%_vGJ&zs9syGnsnbSTU5v-bZ0x zFI{2|PdReil{B#JS!uvK$EY|0TiyIfxZC~6?FKZRR3QvsxFyJ(Pdt!?878j6E+z@} z<^Eb{Ri%208d?`R&5C~L4uX(gxG8YBshQA3NGmGHLZX0ll^NE;>tn=0JTl#zbeh)RC^Cx&4Gp#rL0)sTh|CxhCL^^e+Bx*_rcwz`PqX69thRbaxBH~|?%570pbE7TY zy-xJkYr>5MCGK^?MPS2(yK@4>T-9a%D^W%wd%3rl;#2R4&3;_++l=Q6=t=!O=w}u1 z)&B9P(Qbo>yOJLQK3q2TZi28apNTu#9`!tz8~h%#;-I~=%m0@&-&$Qf!_d!&zlZBG zpbldD6%X|Y@}llwO=+_rj=F1iK`{$d_idDrviYvc_*Q*}f{{~u2SEYZZd_t4bfCzq z9G^WIZ(W$*y6}qDg;#P-+%6O`k&Mq4qw2Xm+6!Jgk8=usq;$6p?JG-)#HoXhRQPyK zQYba(%y<(FaKuQD@SwJT*qO1uB=F#mF2bnD+~exH3Xy*t7Y&xLqOBkyiah&)jR)JU zZE}k2sUP{%8)&SxJJ9g)^~lZcUUwbKkKm0r2mj6LSlK|ek@Cf{`{@rY;4!XzGJi^@;Nr%KbR{cN;fyVm z0W6&#dt5)~#l9h%4Mywag3%R5%I}O_8d?2uoKps~?RDae zJ)Yn4!h2~b^ht}6@+C?pnUPCM4Bk>aOvf(h`eON$LJ&4Bd=M^Jx|;$sM|@^oTn`e^sHV>T(%e9P4oPk ze@FS(&%YS|){{Mrf4Tg-o`2>1tL9%V|L*5sd%l2c|4;R`ff^jJ9nkSCcs%>;a zu8ca)<5Mt?9qr{(cC#*9kch0oX|fx&(sZ?uk(tNc+t1f{Ej|bSK!rXNtHk5@_TiZQsCN3?I&y>MP9`YO`)5tOqh8 z^xr0qmQ8t3Hsy=pe4Hz6%R8m7$G6Hj=N|^GKsg-F%T@hjJ zY}#vjehFV}A`}qmq0HP%^v=p~o!|=6Ib^(PdR6cZMQ>OVxs(TSdm7#>4S(%veKB$) zrU>4VtS)$w`2+`);hPUWM2isz7ujmeJ$)~&3YzO~B?+4|I})tm#k^#=*NPb;Zz%JM zUr*dHI-)J~G=3f4@y%BPY6Q!(WFE_q1gv!R@RfWo`1`_r4t5^r4kK;pWaa9ro=d zx_*0bjP%(<{r^R29J{-su-M>#dgs_nU4f{dALtayIx~U2a`R^}RSrU=E<4|JwG?tE z`d$iVYv1uxIT>Rv02m3^D{31EhXoY5T=D4qCMtQH^x}oyV4nHe@JVFNOQy3T$eK^u zL&KJo@GgM%p{$i9NzP*L^Q!m3MetFq@PR$*Lg6k{^vIs5W!?0F_pRgSIPlwxBsAK>-zh_YUA6bPn=NDl`6hcHqaqZMU>`iZDuyAJhnjP z937iIm}wr-j{7wp_i0&wc~PqyEpN}uEyvCr&oPd)9qG~7T!(&7PRM{Kv2qK zqsUFg{Cz#zWJbj!I51o%2uS2X`P=2+oL28O(jxw*KxC#zJ$)%#3y+vK)ZClU`p*@f zx+QW!QUq2a87=IKHNX(G($~QzeNkg_%&NIQfbT|%C{Mysphqvs|VzX^AE&ER;=6C4 zXOB4UuQ464D*~zv#(o)=n00SxPZ^>sqAwYj6$|9(4!ilG6_njvryIv`{QoiKV|M^d z$b8*vwAN(>9z`!^{?^t1s%P}xrifXLW{!X}qV8_r-|g15}8Z!xd!2 zsBjTK(6hm_84h-Kc#u}DlXE$(-e>NB;Ir!rO}tJV=RC&c1SZ>~cO84R^Q}vLdqSfz z%f`}%D_e(aBOseKXfP#-dP%Lgk(UEWbw6^nn`6p@N*E7woy>FN^ zopj9J)0Wo!Ldcu-!jw`UW}&TVs}5)?li7fMa8#VJ6x2-+u0pt|AT(C|%D_Q@cL3`l z;DT%5Qdr0CV8L@@LD5;>LJ;*_x?aOZNX8$H_f7)S}GZ-xi%nw7r1a# z+R^AWH^_}(jwrq;=qw9&;w@s;yT0S0@*A6&D0f8kXk?G|7u|&@1^4x$mxmMTjXvdn0)rklp=;kQJD;rK9{NAzM7|*!Z zJV$FBv+nJ=7zv|X+$=W`pChi(W4qy8ta(iTJ`%xosH;#tF-p*f-9&JfF|w41oj6kJ zN7DqW(>8So-zL68Tm1Gr(L=8L6X~@>)u%|rLF;)mMgmZoiQOG(m?no}l4Y23@KfHh z)JI38h9lvIBOdp9*vOog#SLEfLr7dtvFq^2s>Rwz{hC=n{(Vu<-%5A2cm*?zDY;cx zNT4&p^`JGqIgZ@x%0YDuE?BW(_jMZ$2ZN(T*}HFc6>17D+)cMY!^jS=s;a`tj27v7 zB>Df5ET@tw{s7cPAB^4$Oxy&I?ecXp zTXpE_9yY_WgCv*~c#pSG-9>%UijVyE&|zQbNZo(y)@1*vM@SWZ!z1eZkd@v3MlC)9OZQoe4^*5lE`$e)TEp6Cke?bYQUm4=IDWP$DtqOxrIH=})gbZU>i zDdOk>p4`o^Q2=dvqoK!W*xl{#70zO}ze8FuInp~cmPnieah`{>7wVc`k^=0an@mEp` zA$_rwI>MeeT9&Z>@GmSyW%mX-oXn>u@)tvRTN8WbQ@RL8_>qXW$8_}^>tqB?SYb$d zSRZCR?(jH%jqQ}1am{7=gFeAJ&08FX)`T{TjGt@GXZHNVLD~$jaM|1~A24Ycz~(nS zEAwd!jwU4U(-bF|(-qchj``68^c2H9a(HwqSfsY8P!A+U_cLqxB7(Bk}EK#t?hM zO3ese($p}@7R8k1%m0nET35As;=S)i%n6J_ ztrxp2v2DYLS@vA8=eVk%Xj#niP!u{W61g#YQt}3m^ewu!I*nPgR zw7lw>s)(sK&a(TstftJb9a;_df8QIv-r!IioOv4G!J~oi7592UHMF)V+pwIFX~%jm zXD<4EOI_~pfAYWy$INZ*>;|XB7 z-`D%VB%%?#pBB1-$I-myIyP*Glpw2Y>~3zMrrz3|B2e+ zHQgDLD~!^td7?aLk<@0V`$uxGcVvPH;P0YSrMrLh0>Rc`n`%r*Lbu~t8U3k>!?V>p z#H13QWe@eUIS^x{AM4{3w>gR{4!hU=m^ZFR?O6{qpqk`8 z&#N&OBL7(EXq}PST8R*Fq%{=)1)|XVyQ^J)BTi-V11;&ZL?KXGI8s0Q<-5ZEh zrgO8L#I8vdCJI#YHSF)j@j$QnQl)A}??vXjg5-$*4_pr-9Xbm7FSUP~)Z%AlErRnR z6`Kev4r#naWBr@-N!4{NT?^~Q`ua|?8U81+5s8=ujKuze(Xa*QI=-}e9LPlcn`Bd| zn3%JKHfij=ZVVf#so@VCU*Ds!sf(GNS7?9l%@X2HyLzb_%h}+psxm#Z#KDYoY$MnN zieIXb8lXv-Fs7~BkuMB#b@XmJHCN^f?g#Pj0tURM!h5UJcas%9_&(#f@*o(NVRh9}LsXkbq+L3N`AtvuBB> zFenB7Gh(>})SP=55laUH!ll{a)eWMr?WseT79E34M6GB3q7Q?lphs!WDYRpoqq}ZR zytNqi7fxLOZK0D`fOql)WfdOhL)td7N{}%k!o`muIL|iYdE{wswJ3x`yN=L{`&PX470Q(JJifcbCeXAPjuK zYd?-Nx${6B(#>PZ%Nj~^E~i3wi(L3q1s&7_rf7z$b0^MhYYr~q=lG7Ua5GbrMwC=; zPcUGt$24I9X4nkmfG%UP-t??w0v~K8QlJrPPMF6Jf94^;M;XI}PItFFL!RQWT;1-L zAM#i0nXq50)KY9X1+R9utR)>fJt8=j8aYn5gQoE4=wPP0|4L@#r}9bfzjrS=8MiP6 z;v}&KkLoU{1j^u7O)IXk1@B`$!WA3iM#Xy58U8Sfqx8d)`pLL+<2J?4)`Ejk$*mOeDi{s>Me7Dh_Es;Qs!)44Hz8LmH`QHBTh)3ET+2e~%qC z;%3bZQH6pVS%Y0)OOK%@a3Cc6PW+~WTy*=73>BcMIFi6I66&rN0n_+rPz@YPt^Wgg zG^$Zij147fOKFrdVf+NeqT`u3VQf^gGEQ=FsnDMNv zHqIsl<>7!%Ty3f~S2k7GX=oCZd$Zh#TfZfgdp-det1!dG)u4v%Q#3!I=0eP~dM5>cpsZ0LwZj?@nUrEG#^u$(C%brjCG`CB>qKSLp*mk))Oa86>S znc0+Iq>oI|nK;C0#_4gyw`ciCdoSEMm)SWMV{I!7&SwvWULU^;|67;h(yKU)19|S@ z&bK`FxrZ%_{z;R#VsOj!dK&P0By>^qE`SxbaH97rBAj*qq3YPB05pgNpYV8C;Yxfr z($ts8fxc?$*-WvIDM7fM*N zl!J_LQDV~p7eTBqmMs)pmQV(hDR6lP`+vB_{)eD}ppA{xjQIvPzzkEK{3Tv{ZwxO5 zH;caOI-!!VowAp^?0ZJNhnwx#f1q4mIXfWcI@&Y7*tMufF61gEsL~jGRL=uAjd@OE z9)DeUyXv-;lfs809)k9XOLn&O>7Ma#rH&Mv74eMUemnCv;2B>tOxf@WOOaI1_+#dC zWG@PK`QJ_p-XnyUo}$p_QMte^`T|tplaUj^UxNkO0l7p}((#q#&@W!FUu-`1>v0LQ zC>m!2m@{4GH}w?`m&q*44|mK9s6}u$;4b*ef|wV*U0a|Y%drMOGQ1e?%ed_BwiPf` z%h;yn0LC^1L8CD{1_qA!a#v)U2xc7W?VEr}KKJ3x&mFFi_WaKY>-SWL{4zH42wS-2 z6{u{CIPk+SD-6C1KJ*@j0r1o&JR-)=g1!315kK`0N!q$3EbZk|)v#bzMYa2PhIK>OUzi0feyz;!tN`M{) zsIe3yXRom|7uFG1jGix-H9i7-%HpJquUJcGP6>n%(gPHDOxPf42n`*Slz~VH&gcS} zW&eKh+KN~&bOSq?&D9gS&T=QKQjR2Gqp2aARb0ZXw^h7-^wrV3!moc4?zBg%NfE!c zv0p_dlnh9>2w`Af=#`kQvSNg7RmrfeBFH%%4#aFo4=cqS#0qPWnxIFOnxL00C1FQY zg29NZWl)Vi^JdT3SB2@jP|%#D7+{?+DaP&~aH)HZUp`pCS0JyY;sp8gkas!i$YSeq z(?(vWbuD2|mOAALL!PwL=3K0WPMP%GQ6<-+77rlqqw$D0M}=uj@6hJ8Ad-oxh+T9> zOjVVzikXx$=KsYsb;W8@Dp;_UQ#ozHb0)Tj3y5PrZ-l=i`ai-K{pYLJV!+MbbKH=G zK~Qo-7bI_h&_=2wF_cLqn`UlJz)-L_ljiL}9qZ$#{bJB3?4 zXy+&qNzzo_K%vpPkjp6Nrf~{>)NQ+affRR1agY}&-p^u+Jsc86+;BLlBArw3TJ!4x zfx8K9k#gb#JJfF67ZDkgR{_MCp1>@1=R=xz6dfxWNuTM7%sCO6P>&y1*)y60ESZmw z{g8$l4%dw`*J!rt@#RAafh^LCWmnOv^g3nn{5r7nU;-F<^h1F#0p(Bw)AG5IP)qS@ zXy4(+3Wu>GF)d<6E7F2wsF%m2F_EPbNu6becq(LO;a30{1P;g-?pG#Xua>1jAoZF$`y zh>|fQ4^LZ~dR;51pPq21vBHJ7&O(~#wml(~?b`CxZvt_)M|8TNh0hA?B?{)W5(;;N zkeMldzFvxd5|6AEB$FN|Ge*`5o|xL645{0;k$Sr`=F8tw$8;W|ou8_k3Gx}olI4u3 zz}I**@~kZlI%G1w@Kq*5jFYshzYWqHiqYVXHWi^q@oi0{SpBlR{1vIUAk^dAr2Fa* z`c>otk+m{Pqe$&0De}Bb1w2)4-6fNtt-CVS15}xCzj3XMS7Xw$>?%)wHhOdcnQ5KN z35W3$O?;#JaPlN&|B(R1w!K(tT>*9^hIYTx7q|~+VL8}kokX6G^hiYxUwO6K>{)k5Lhq-K`lnz;(;{T=j*5m@#7RoV0 z+CAMu=Ry|4vS87ySoPW`OvMx@q8c%Oi%cvLx8e7@Fpo&Jf-AJOdw$EPKG~2mvjP)( zX78bn#LQkS)ujw%NBfmh?w5&jwO(~ID|i-THaUEgvk@EpFPx1L=*G)z9Cw{%HnLgD zL3A^)9P!$z(C$jgL&a^YulJAbsz&!)#fl~s`Kj@ zC%KkcPg_}jYiWL4*%hs&SG1K~*;BC_0x z^GAS5wn`Y=)$R;Au9Wi#K9;+?Geo?vtHmdC_@k2gO!EZ<6R}~03iQ1&x+C0=3uuw9 z(0gC^@^qXuDP@5yfJu@bWV&+~+u@!Y>XPsL;kM$iLcr_6k=? zg?mk`R3dW=(bP>^seF!UKr=;Ksf@Hfsd9n2zR?{e<`EG?%%;Y8s8HQv)qIMo=nDb- z{t{)TE(giqa1NkJUf*PIowy(00dj#~$VoZA$vH>^^@osyL}ln-G$#>96A@NnOsXCGq?&DW)WKe zHFaTSr8qlsB$d=tLW}Mcc?1NjusXBg%wVunf)aHa6}ZBAQX1@cqpaB_Z5pZuqlw~1 zdmLD92z3i*QF)2@)tLxz#g`VT4pCTa{;^KBm?T>I})N%k&L!)mC8E} zsa(6t8T6!-Q0RoMszb@UoBzakh(PLY-pNb3yZHzDx7}j&hE`9)`X-6-`n+dK5}DqiM7%!#nWDt+*ZEz0kM#B)a$@M@2N`vbq zHH%u~*Qr4xm%+=_q&xrur3QY;8byJrl2 zV{P=Ih!`t0O!F&C)ZVMpZ19eCJyHp%Jx;-HlI&*-r0IltN$;9!N+2Dkg2gBOY}8Bz zcI8kuJG*V`DGncQvwk?oTrO=-BCs`4RF54Uzt=osPVyM{xsDx`V}kS}BBOS?fAntJ zecn&s=P@R^lx!t!+9Os$UMQQ0H*I|H>W@fHs~btkh9;YB*;U8-u82PXmWa*Mj2v|l zA2AH-tZ_Nr+d3pjY-eYU7a_1G_AD*Ua`!-=Yk z-W~IGEpy@FU){+K!m5sJx0O)oZ^m{7)GU%X#UwUBS|1D2uom}0hrR&TI-cD`2>PQ{ z#UW3y5#{E1@B;p(;b6n>DlQCWwO83Po1#M)l(`@$Qqc}Fg{B0OrsqW5*yV0{3*^lR zVT23!ia7M}+F`yCdcj^b3k}kMSC~4k;Dtilu(wk=P_F0?gQ1=iC zOCn%}$v`~%VcbZlkwV*%#jd^Y-&aaSIzDKNxFJhN2`WiA)~3zTbve`@$P}+Hh(tV( zAR-%1UpWq}Uz8c5%1NPf(+83qY7|LUjY(>bz$j`Mof2A7hA=&UUrUu~XgBvFxXsmy|HVB6YNS1=9U`< z3!F~@;^mxH;5TUt5N_?ngML?ONm_XB5gQ#If8bG(p?F5^8|XQ(Q8_UQ;HSM^$j z)!)$dGFa!Tl~i%=ftKZS>KJ7O2xyG5aZwlhEM@V_skt!{F!JWB;a>&@o}H3 z-Fi1b-&~fQF=ufkpXrKa6i3Q&JdJ84C=mK-c<9LyZk_mZIuwJQ>Pb1;?(%T=D9u&J z$xTYnRFn#hqWYi&*ft1j?Oo{;o?kK z?45b)Gvte9ukO^f^^xlsDBrO@&Tg{E{Sz8yOv*($SLHIm*agPwl4;;eR{kZ|r{t%r zRkeo6<;Lh@Ykg4Gd#&NcqRvM=+A^SSTwq0;jz9Q?dQwsdDCjHv)Xdi z1r2yA33eu%g?0v*D&8sxJ?#z0rRroeaP#012Z93P`$-`yeU^ylM*&tJPZ%WTIFQ-ix=t zS|>rOuHyGt|MAgtPl#*!IiA~Le%^!@G<{e`W&FAhG*AKVv`;7#f4^?|5WpKELKxbF z!*wSfmEyBJB4!64*tMgn_%EUJn^vZMKjdjznf`Vtt7)bEzyQtDRJ<6KN2gdtH`kj}L zlP{lOOi#uW$=@fFFLC_>h6K>>N*Lp&orN&DRZwk5OMu6@36m1pF)aZdE~heCO^N+$y1?b)uyN9nSiVW+5cF3)#zysiSITeSA_My z9+QY6f9=(vsH_U8?+x;LHq>_@hWu$F_{3qdScX!&N~Wd|nL4&{hxqpIZiakSz^okAMRL~+DWSnd6w`h^^ z2deOL$x1OqcXJa%Ivx4VNg}^l;6kDVi$&t{Tr&fy46EysumMLn9tbQ1?z=#6Us-*S zUocBSCNiLS1ph^p@02ir#2-45;=~{M`Hv|svDsbpL>p=e_g)vJV2(tX4_~ zL*sk0?88sALctZ#D}Pg=!0>w|c9z%NVfE!yKbSVE(YKh(Ck6wE{M4O3rZ1sWKvFtN zGhnYe;MN>b9T9amhuR~#M0o&V74+V6V)&r}$Y@=`>$UbkdZG}#2Q7+99sKE&;fih+ zsKPINgST>y>7K(r3{;7I2NimQ*PU9S?_-(j0gU>LsrAOtO{6agSr+aepbnFv=m{X^ zmk|tf@9))?!`}Kv;W_peJdZ~NuC7`MTnRB=Sp`su|LSr)TodA4JAEb6xsdYh82V7z zAJ0`8+TR80%f~+9FgQKJxeHOp2|*P~9EW-Q?Fi>{s3L(XK&1|11&LdJF}o}3o|?Sn zw{qJFzJ`6#Sx(pI$js^5&f}b?t5y1JXY+ombno9P-M&R8FuMHgXLE2^SX~(!!PLf= z=Ec(VLH#A+bci$NLu#3GaNF-7`HX}5-dCx7J(aIMEW6w~r&%H#hGbN-`Q@PYvrFC0 z{*6@uX>ttsBQK&e zo2llW5RuMC-ZRuI@6-E%Y_IW!Y*M9DU6YdSNy!$&(7S`L0X2$G5&u>!NdxM#qap-( zk|IOZ;@3%!h?S4p1X_!+4ar$*Bk!V_QJcOf(UfG*R$J={6TG&>dry zAKIZaTt~Cb2daaJezVhj4O<#u$ZesqvEABQeo|Fwu=t5fvnf&`lkHX?Fb|OVGC%zGsNEmw@v2+s7Rr>;PxU$8 zWkITC;kK%;hP1M?%;N~P$;z+uolm|te|B}Nf4%8{0$tPw_mX@DE@(%kjRP#dob{$3 z8v`m|_hW|0>_@7qM5DicmxhdmCB{NL7@Z39glU#Bj!MEj+*5)1Y~|EKf+qDSW#d29 z>%2i;(VShYpIcRp)#gRI?kCkq{oJau^mCI+*Ut|1(K~>oU(u{j;7G0@T|Il++WhY3rvzKD+Wf9Y z9QyI0n;hn4G?~^|LR5%xRU;NoRkQoiHmLBTfc;9a(k#uZdKBGf{Dz>1VWuS_$oT#c z^hq}xX*NWk`r1t73 zMrS<3JK;(wnXSR zYN38^QkDAIp=R(5@AM>HT+AAtmf*P^R({?IKUdBA)EEt%$_)djasoon7YOZRD(bAI zJ5SZ5$=Rx>MGc|6%t#D2cxsm(uCltck91u1s+aV0liH!59qL)0DP4LVeRPWrcv$^} zcNjli%!Zuy=LJK_hX2BzOE$coT+(nI6{R+un`rnp-OyGwTR%6cTlBL-P3D=>us@~Y zV%{w#?=7+tg!xW_>v?b~EN~?l(l`Ov@B9u&^#~?7snnmc$SpyhEek?`x7G&q?vKpv zMeQ;Py%H(3CfWO!T~_b6zI|%%7a|swmE1(SOxr{Hxk;_p&kohhGo|hbaDF^Dh$-5aDv3v{p5l|QLIrJq~XrTV!^U7(+^mU&uR z{ZvQ23D6xxs)YC&SzaFf*710}{rMZtfhR(L^av)B{$)XPCRjQ*+S$t?JTyXbSuS7H zD+fP`7cI;&(f<&_WEyLNg~d$Y$E$F}g&B74ikk4pUkORDgqmmmUECt|sr`GjD;JSn zrKvsKY%)8@eqvXV_qNa-I`1UOyIVaum^WR0cOdU>b?IL|iO;NF`5%!+@wy@oHrDY~ zWSZu0)WZ-7BB}l8uuO_}wUVM_1OIJ`^eUL4+nd}H4}A_oK{Zps_zw93Ra7q8x8{N) z;r_gE$0P&<3?Q6mo6>TiaXpTD4yj6VPYb;ty`QC`2j)KA-{Tme@uKB&>I1GOYizsK zm+8vPYIo~&vNJPe0X5uRV|rJpor7f@s&lYR>_z4gt5~aqWUUE*R2-_8`C0wKF==PF zS~pmDh-#)V_ouX}PR0cPsSe##3#X++T@8*+qdKgf++i7N>2ZzYNLMoxH*cTnp%l29 zuHiY}tE*?OToe5!08guvX|Y3{H`t<6jU4E1hgwg58R8eoJut)$J;c{v8JL!#>i67E z*0glQUer=9_N%(&03C#;K#u*lJbLN;O`TW7)p|BDb2ckWVo!(%P?&+y`s8-NS zO*oyFKNMY0+hS&d_9IpWP-+rU!X=G{#&f2!b_l*Pqe!bbIKtnL5mI!D?8(zf_6%X5 zXz%>OKlrCQ(FK`(OUXITVrcej1pMm1DBzc$kbk;_85BB^-CjL$4REMjl2;l(U}`w7Rv@FN#uiYESCcHr7*m)0=OGs^Rg@`CP? zaY&5`OqM&f2EK)@kiVxn{EshT0mR{d@O&KlAHOvV(*T!>CR0NQ^&rlj0hCNoDB$dh z4QWp=u{EW5@fVkxAukRehI8Qzqdhp!Z_1^wMf&X}vd$a6AcB&}eYutDT>b}SJ*d%I;vR@4ggRSA(Y4W;qS|_7|0jg7 z%{3bHjK=(K^h{)iN^>5ePex;*(Kx|qEb1%MzVl2r^I8tqO`1>QstskX2uc~ z^~2JMzIffqc>C9+rK_YR8mi4xKZH?m>Rf3>&0n%(9!{z#Tocli+eP7@i7k&)0UaSS@fe?{H#t{&_u4s2z#M4uPa08#(1aM@q-^)wC{ z%c<+)*u>$`1mtZW!#eK#bGmF>g0oL30?bF58H1>2rTQXWsU`+^yuumkTZG}H%d9vt zM}39W!*PJv{O4E_r_td%2fn zhJUIi+WS)Z^`}?P1;%2ARc3Hhc_#jH*;TzCB zY7{08UW^;i*_@JNy0usUXDtbhBaMz|sf*LhME8?e0ST=mk7yma^!1!#8Rv;!O@#@q zBbOGt2#b}HW+o+bK;{1O2T(bpdX3OgyMX8qh5@?`c9E49&FN>mu zmda=wDYUS})JIEY@Y$CT%M4LBpiki{YFu>>;j@A4lkRU5DR zmo~LrHzja2-}H>%HEY(aTDWY2o&3v2u=d1FDKE*6`O({qdb6YBo#Wz^cx!Cw+?J!}ae<2Da=>NaX9^A|EwCV|(|`JUbjK>OMobGn`Y%{n z&}U=XInYbc=c%%huV0uzpQ|`H5MjDov|UyMv9^3CLs{)Zz|^ASm{SQMo(XmC;h#6T zKiw@O_#|qFx7T2?%)d88{M|pRHUkk_2s{D(Z0*ftBn+|s?2xwxquAh>=S3mWIxzcV z^GNFt4p014FTlfyEl>X1$}jeL@ZYJsmw%{|gNM(m&7^*j`y}gkQGf4w!ShmT?p4bv zj8~pbXzLYmPN|$SSC@T)>@v z%3GpqYpQG)L%ru7!vG=kjF>N z_k8amF;6|^(lC^hU7;#bndY4KQ-_$;k22;tv>`oI#uI|g4%ovF7{cp-D95G1Vw`_zE??bpOST~75gB-ckyliHs?C4LosgcAYJe`bb|x_D{uK(%VQwF*u+ zRc?(&(BG|&(9~F~P4aMZm^XVzz2rk9atO}og8qN9E)9>TffJFDGv@#ndA|4bc{3mb z|NA}bjy3QC!Ba-GF;ZGaNk0ZQT#)K8v~ z@&b9NVXTj6lRqw1cT`g~;k?SEO#;YQ{0%Edakq;%7lh`be23YqO+Q>m2-9ic5Hv8( z2oxISQ*}7BiAH%5F}7O+<=wVJfDxtk>xZ*LKU`1o5DJ#?5iaOe30qgGe2i4nuqi?7 zmh)AD)>W#DlV5{xkXEkKh9=V}!CBHnxVqR4d@a&nV+=1@pY_#=KPS(U0{!(@17EFR zcaeZghp9Vju)BpRbh3wKIE_xe`nQ9N_O#4w&AgOFD?EMC#>rs-1(I+HaSBPma^N{&R7 zZw48b;P(C#T30~h^yA`73)CWbHwj&VGBt>5f0N`h(E5W??_ynV;rNcqWW_MSsn?v9 z!>Nr4G-@5;kLb;*^UnKvt65>fT>JO=nbk(|m z4yk^s(cK={FzgGxWnk&@bg8F7W=XTi=><;wp2y91e19++PSn>GH#$O>n#0WzzFAoK zs4N)Pu_0nrFru~835!9HM#v1`tM%v|oxnq}dt0S*Uw`%sV_%ht?T8h&l{!DY(9y;j zARl}8y+!=mxhT4v*her4XZDLfNfUDRmA!AAd~r-KZtSQ=JNv~x?6^#>y;2q}kns2# zS(aA?iSiqjlP9>MyQP4;tLby4?v`A6X-unfw~W+p>2usIf`BzO+VkApQi4=$R=1-e zAYi)0vJu#<7Lb4je%ABD#cJVMvT;L7&ad-9p8ugs^dUbwh$L%s?T|=?xSmqK5*GUr zepIR#cxB1Q0&N zaIekR>t5sL%kpfPy5fc+U9wH_A_hE&daQQZ>zXY}s%Wr+`iKLF(5J~O;%%`tI21+n z5ohd-JUQqo1t`7Zt7ncrZ)CRan9PCE6~q6F*oJLZbNG$W?X;^+yT^vZFOh)W0p>G& zrH;C6NS9 zjk!bkntCUlS?!%xwdf1$YEP{-k6QPiQER!>YE_EI{_aT*ZCUzXdpL%7v^x&6Jr2$0 z1ZE5Z)S^ZflC@Hu+9nFl&ifEy18gMC-|6-v?Ziszyeg1&PE`kfJcTn*enR~ZivcCC zN%i)tr1rJc9zL8m;5SJmj1T$$TD0J=v?Zh-v0uH(@ZVx%C{B~`H&NkPc6lQBccgrl>$p5nQO+~Lp5hM7{J38`_=Qn16X!JVn)^CyRo zsXl-Dv4!v-l1L^@*&&f>;2Y!S9CN~IFsrnR{o%QN?9&`JN5AQg%oPIOK3lj7I_CAk zAU1WHs87LI@Mw1`3gbT*eOvDiuT5OP(xcxeQR>yK1R)&%;p)CkNwXq{U_RsU zRX{K)+->9DONJ;*qk9y)k{7y_WVJ8|GgGS*Ybi;NCj8Qam;SAucg2bZKgZe7m`YXj zMZvH{+#p9E1dxtiUz@ z3m{&$0{L6w$l-CC$Y3{(CD9`-95B*isWF1LB){tz!GdtHiPSfessHyF!N-0zh&2Ud z_=PhCYl__G(kx}^zwBNPo^NrT%bCS%1+Q%1flE7q59J*MA6kpqYkQ5<^yUl;|EfhD zTUt2MJ(hnhKv15xJJCUIRXh|{ zbfYVNS=*#ELKCFz;P*xDZL>ffb((wI&2}*Y!0Rst1UpR0P#K)$-Zm+H{NAdz>)K|e zb-v-u?j^y_i+kJ3jO<=$I;=I@?sK%w8bSq`lH<3Fw7d+PpFjoDL!d)b=KC{YCnC?HV*(>s)d z>jVU})WNTOckJ>uvFfhrBz+)LzB?rkCBieDaZIDFav3$43lRNtMotY*ab|c??+@Kf zyuqT1QEk0JcgI`Oz}_0;{BXZJ=4pCE>e{P|o=+pN+H1_u)`U-H1c&iAGnk21Q$ELG zts|Ptqr7$qNC=ol^`ply!f@225r59_|Mbh#c1(RQfE zy}c*VLb!8CafJ(WvEIu&VRa9|`h{49mZ(%X9RdcGZ8<w>s@%`C1z?zlEQH>*l2 zq9+8P>`AUapb&Fei_Jpo^)5|kZ3r0&FvyFY7g=4I=Fpd@KF7W01ZyJ0bgEH7Z$5EW*O1z!oE zVqFqYC9C6RbrM~0sEyS7Pb^Kg^kqI}{?5`|H*H{P+|l!Bt>#82Y}04uY-GkPfZPR z+t~r;v0IY8(hVX9q!hqWJ97NqmR|~>`mjm--$9>9>VX^NZvawm0v6rP4SG?Ag4W-|8#FEc z_1$YOq)EMv=Y~Jbb*~Yl7Y&bUiEjTN-ohGYCr~D_CbhXyA#f}xctW7y!%N+3zMlX? zj~Yr=y(Xi~K6MzT;y(oe=LrOKS)~#UMrK~9Hj^T&d#PSs_gWnkYw1u{*uAchrrq0u zMNZZ@i#2wy6DvVk=if!eVplKqY`xUe!yf{$aov3mmMg3YDYGgcSnZJms~!D~&YE0s zcgs$G*N&X0Ez@f~v7`DhxETP-bFX=lZ&IO4eToWYnJRPTw^toSlThARIH!sxejq<} zse}AT90av_F@eN_x;w01y`euPE6Gtm9xUfnn-f3sq>^^45~I>vTd+t3M;`5zAEPq| zhK8LO1&rTi?;f=WzqXlmnGzC%`#1rw<{r%itO|dH^XEL2(#G$){1$Kd<&!;_F(Mn3 zi15t(jPuRO9&@%=U0#MMZx3M(-d*&ly=Tlh zSKiBfAJy%R{+T!T_I=?OJ_&!6?OrE<;@PJL3@vP06r$21uU3%|c)5;qN8mV=Su|}Dl(5ILKLYEAVAI7&a z3GWCwjNHVn3^TFP8yg$`sHpB1$yUTP={&hQ4;(}CaOsZIr3xv9et}1cDk!$ofXX+f zYEbDq6IA44eece6&!r4(EdQS6pDisdJ>72CkM=u$2Qqqeil%l&O(|aMiY#;um`aP{ z44frcCXG(@#aBLwciT@a$?`-N=GEqrPH2N$b>jPyIAcOBA_h1fC8RyuQ4MQ%;e^PH za-Ev4t|HY~SRR=%UkE*QIsCE62AMg2I+Ry_KCbsEEs``ueFz=XZ9h!a#`7hz(vQ#M zFYeRibEbMte?BBFKYq7-aOw|`>H34{>_pZ!@!@AFe(s!+$2XH?_>AX8gkn6uRsVgC zzmc^a^1cGkg-*k1Jm1T&+5(zF_2(&CfiL$24^`EPw4=K^;pEV1dC(OuYk(P9`vj%b zFBC<+>gq(!Y%1-xO-)Fy1Cb57>9tQv)`zUD>4~h~0mpi1h2d0>26feu4bmNB?QSWv zm@>kIIGcmLvj_!#)iFRRg*%}lY%gJFioa|G)#B~(`1!M z%Nk6JZ)+vZT2k6L_6tTu4rfHWEmUB@Bi>La;<%lOx~uF zfytvplB?BCW~&mHdX{$rFDAU3jgdi}<|?4G)-itX!k_8=M2MvT5T^lJ#3o)Nkc0DH zqugaIEi?l8Mxa1sDdl-MtI@3evjt5)3~7woj^c4nwH>Rp^DKga34kP}3wfNgbbGxF z{@XVt*<8pXg{*^Lf{7^dOs|ns^!Texv3vXThj|2VGB?Ol5s!H8d+O^$MGEL{k+XSx zM^nRl3ozHl(MCxv>bKUK)Z9P0A&&#e> zyCD3ljYV9RIQ23XIn>v&S0uCf4asD+UZpP7EfYo%MUWk#3**RTH|QPrB4$yfWNNGK zSczGYYZb)XD?x8&!COUsgnEe*uqERqKH`S8Jjf4*9z}&`1c&WD5YO6iA$DY!v7?pzwv4mRzl`0BqM5=2XP8%=9py+(RckRgq zg!=FEegDr#GJCJR*1PWSde?j9s~t~6Z$=U+p5}e@Chq~+E>Vr7!ui#ENK*S?42aVl zhMwpZmy*IOhXZyZ)N zsYxH{GU(rewm1E+o5inEfw2FGiQ!o*L+dNf@~qv+gE`EC7Og)t&-CIX2xT8MK(x?X zTtt|<4aCnjS3gSjNXJOic#H>RsC&W2mnq^sFtGM!-j2JClbR`y^t!AG@|~6o&eNS>cak%b6GIoI?*` zsC?S_kCZ^<6MHoOwuRw_8prBxn+seWUmp3CV}1OK$Z{hGRb=zo=Wa)TZoAYjZrVH> z#!>r=K%fDgx&enA+ow&F^}1%K&OpZ+?2#Y1Qp}e+-%X=`Xfv1f2B<81`B;H-hjj0t ztMg!bbmQsbMXyi~o%r>b=DXhIdvj$O{az^!JK9Fk=}DjFyePfKj*ijyw4er*u*N}1RY|GoPvI>PTf`eR zi*EO#ngD7g|;fx zX&8KkJ zoyq84p0)cRP0d-$a*iMq$Tn{dMV%KDf(+~JjJ0`X?vQu6)7%<&M3>op?}y)xY!w0O ztq)5XvsDjM=fMS#yU>w~AUrcFbeZ`Q4LqVJEr>Df_d9`MY01uyhPGuD`=`927Z z0%l+QV6?~{e;tS-kHAXEb89h$J9||@&xR{m=!=QV)mZNV z(!Nky;|=?5acAcb_PNkGkNm*vj9;O7LSra3+_UB%K&4b5QS6ON66^Q?N#>Qw+<+Se zIQ(}~)&<1EZoh1C%>52~nk-vPuVAj<3^q?1wsLs4Ka&Bs#mB%!hTrMAyYp%tsDRTX z(^tlP&>>Wbno%WhW{|&3%LVs|pSLm=B4{+{#q`Zw;_Z+Thb&`bP9DN=N`Z(B zb6c5*<-avKx=y2bueoda#VSBxEg1$8aBmHzcgFBTb^uRCaW_2Ov*|(cflf6N?TH@G zhCoVuq8dv9U?DWn?C1l^*`L6r-ruAC`K}-+$dk+qi@lEb3yd%qU)HQh)9n7t3nfyd z6-siagp%A7o#lSykw?_$+$MEgqkY7JDsGpgI7t$43vx>WWF98G8he)EhXskZOE#am z91*8`Qn(|}-_cM7c@)iGF->%Oi!-#UJrvXPxQN^Bn3X9m_`?~AWzNJDSGot(lG9H&)UE6=y@t4r#^YsZQ?c3=kVP2Bo7c)QB&w* z^~2X>DJUyb(^YH)xu6iM{3TXk)O?;7Jb=hKcS`vh z`}iXZK7M1;E-vpc^%&s;(K>J9rGG?AAPjn5dKbma3bpbx2FLFbB%XMDs;oj+;_)f` zit+%%ewu_1!yr|~$S8xLW0TjBp)DfgkXPT+>i^KFKjdkdMq=Dy)*oss`_T07Lxwss z>h9A~yKs9L=cQfUMhGwQf%u}SJ1f=BO@z0a_EO6|)342lrjB<+mU>YZ*@$+)Mn^WI z@*NmxG$)e$9`xeelXRo3BXk~G5?A{O%>6d)F`t#5M@t+py~|O{#_+x3Y2Gd$R^c;B zvD1k^cvzbGyy<5>s^tyR+~UJD_X0IqH}5e~mnd6LdUWPW8Bz&qY3P%M<8HMZ=Ft#59>QHp(Na;6{#qVwPmnobUn9nw6|B zEe<~9W8bdnWV6sea{KiBhb|ftnd-y!+y!F08Dkx+tAF0ren~gC#KJ5Tvdg0H4`$UN zp9uQ;_+&~&XDniCJwB1g#N!k6-)#N{)iFX+u^gMH3IM$XqLJHWz{o8N!76T*460qp z+-c-CBYl$ZPT@7zco(YQUBZd_31rgN+EJdhQU`D&S^SzamL?uQK(?GC(OFX^5VT*Z z=?`)p)~V51*=j0p=8R?0Sw#gwbpbDV&q@KJNw8QwEn9fD_?&mjp<&Lr9xYPGmPxy= z3FTZ9`pPv?eTvL2#nj_|)E>NXwBaVH(crxJgrVP5BU2n7eOyuvLJp!_`wxefn~_$5 zUVp$hwY~Pt#PWRFqsDE5n$RB#NnReKP33e$ef~fA!8x2A4d0J^Oot1mAFk6Wj~`wC zp@eAM^xz`W7m=QL)?CSKGaVMtP73=_t`_%hv39;&k*cjR)kg(%RCsGmLKP>6T*sD| z(3*+Ioie6uR2#oq!MQuU%G7UWMAANf!-y0~o`~dJ{f@-wG$ONk4i#EEuN>U=4{+OQ z*blR>F7|!A!qd1hRnn3Hdfz8N@0mFr4h?pU24p-gKrKKZ-&Cz{tuMHPI29X}q^(lp z`NUnt>~h!@%Wqm<9U6DV^6KR`g@#|j-{qn7c+r-C-5z&rNwc?&6UkHv*`z$dba$$X z~|yn#crM80>{$`KN~qmB`ak8ZpY2@m1TZ7fXmdtL=lu# zPFBCvDMnz5NEs`qs@sz9xyT%h%6xT8^1VnT50$gkkCN{}s92+NzM7-oqjSD0hd6SC zt9WM+#!)5m&IvqbYWMp{#?Oz=xu7-RP?M8ICW$1YK=Lzk_%zR^b4K|DBd~z(BGEGf zi#%%{Vi;x6bJRcIw1)pOsYWGVdPW^kraI@=5u8N_rC&NfQt zo57$_y1)$1H%b?o!39R?QnO%D`v@qbfxNQE91l}c=@>krip$3w&c^=(qb zqDzPKMwv8M%P$|&0Q9_Za@egydgb%3aeyfR_g(vXfh}O7Krs_SMGs|V4 zXh10A4RubYFX7ySxvRR=>wCZ}!{+gy_J^$vJi_z1GlO)D79sN0ljzlmF@sz9bm`ha z4D#6>|9VAKvkKIGzyM>40=dP_%-KJ0p878u&|ZJbDRjLC%?sB(D3$ygew}sAj%pc+ zupL5{EtAVQTUJSZ)-8H}TQ=J`uSh7Z44KeJ#5IHNgU6J?7J)v04F<)vOZ6fc#7a9cS+{(GJg&!|7+f4h-O2=~p<`ANY+ z!%zDK2WmNwiIq<4L*g>!yT=asp4?t`+sZKO2~FwdOyv7a5OaAKU}wS~Mx>+HVUPIzxuN`g2I z{~6n-Xn@hE-lp$U*+K%Pm>s4^0Sqn$a~JvRgw2D^fZ_9tx7mZ(l0=IJQ2}@ zA#6*E=c(Q22_0^_qty&!`c^D6J5+{D)OfOZo?0y{s3>%CQOI2s@)Qxpl;k+`n-DzU zjDJHK%9ATTK^p66mQ`CbJPxUe_3;R>e-B0^DJ`2PLRKU*WSuc!dTTZbsk|sJ=PZ3L<{(nlC zc$TFO*YkPhT5A|yKPS?<`HZ&NvXsA_Z>2g)Cg0~noZ(t|8CQfo%P%%tu9xqd1V6N8 z5nB5dp@wF@;xy}C;aK>H07jGQdxi1V_jy72S{C3Bzo$iv$YXwH7&y!&nM^ zcpnO9AwX;E@1$#04VO zyW!{wyTNgk*r(IuPZKo)uVhxJ6*t;9xPp1YsBbswHyZUF>hJ@Ws>wjCYBW=rk5z7C z6#~)|V^u?o?}V$IRCKT$Sz&$z46VWbyiYrq!GnSOEsikDHuqyA{JiWcgq)PqP7Eq= z8K*bjDzeer`mMft*w<0EiRpg=@|IhpzugE-AOy4#K)%2wbh5et*CA#vcZ}Z9L^x;y z6XCQ(a7Rw>k}WFHF<|lwj|hXK1N=go6Wl{PrFOzS*O8)&_Yw{qgOU7p5OmaeOCr2i z4F0BS{Oss_C)IJ&WU)?{*fiQsWDm*%;_2X+V^CE@VgR3_1=1+I>Pe$a|DM=kno%Xn z!3a|L3j#Y^Y83xbIR2JM*45HrhlJ3{ihU$Yu+nR;$dD+uw9o$-7_nkBK7cP0E&7fS ztmwzg;`Mg_6QhgUB_^?0rSw=y7SEVUabxzLLDMw`@YbA#!Z?(*df|1LpU^H zPfR?pMQ+%KLe5^Ecs#(!iV-<7{kawN5g2LW?+YJ)`zSifWKgG?^>^&i;_oqX_a1^J*AA5gq5$@1v>7D67$$ycoq8e1??=KDTLk7GQdj*}a0QW*3)zsd z8sr~eHWJn%*9YRx=qV0FgdOt*3w|_Supl%Ms-U32sPk%l3YKTcB^b(xTddr~^wn!( zl{p4~jT)_e;_CM=A=;K^Lq3LRj=)l}shr_WpTW&*B-21{XeEdB1nn(Uk`NR2Xv48! zDHXe#so~Jg5HRrXg z%M{-SwT@`HebUS3*16@%0fwWI=M(aZ%!4y?vPchZTVi>J5ShCY%e`uv;6@}{qF3;8 zO|}|K<4zhV8OLq)Zr@QZ@M5>-M6PH$Xb2`E4vn5h*uuUlbAyoCn3>pDreZ!3KZD1V zl}_~8KNKgQpF42EQ#9cd@g9d((sf?PW@AaFQRs@N8FPrKnQ6dvoRd)sQ&pYbA!F?| za%10Sv9(XQjb*~!T{U0z`Jhv%bzIi_Jyq4nV(C5u7D@F!8SPp6+g4+!?f;{H6%Nct z{n|}Q6RT=&A+d8Yrk2b8tLl5W3T9u9(%)!{p2uwC0U8-hS{7&cdLJxGM3qvh)KGc^go z+zq>=BX%7<@N6hK4NJ!t+p4^6D>B*wqua{I&hu=j9EYWom@0LqzeJWXq@3QLg7MNz zIs4PMr*|11uBUv4BQ6j!+X82311XZm>jy?13#zKDw!l|NJFEZW*~yQ%PHL;lZVQ~l z$FKH(JU96fd3jsagtowWd_2GZ;|0l&`1)(Bn$osnYFpsqw(@V1|}y#8{&B=~FrpWha^f^1jzf4nOBaY8gOGZ-zL z7*wB}PJE%je0Xrrh?T0jtEQ}`ptUepNvvkVS~3MP+pxqjU+rj4tVs84$Z|P8Ebw*L z{xe$WgbhDDnG*jHEr^``AHUp|+qS^&*{~|bv!TGz`L-+l%_Z`8pYOxU>+mRmQX{2C zHsYBt>?nwT2+JU4y?wJbI<~lWO!wa8bWhAoPPeD|V&3?^k&ysPG z+3X(^YbM#Yg|4lU2Z?N;63*b+@svx%+F&uW zXs+%ct3JfVD~R?9A|fWno%zMe8=XrsggoXtx%w)(wD`Ki1(9{_yy9pvQ~XqlyG7zK zhHC7Q*zg4}^`HmM*HpRxVnuWws!C@E)u(TKmZ%WPO)D^PvWW5(XpE^v6Db4tv|P&^ z+s&>q-T1()b+1hIm1JAg{x^N)nK)=^$O?_AFv>IMLZ~)mspcf`Gk7&W~H(Mkxo*7XI6xXR*p4R1Qeu`l>3!SFN*Y%tX z-%9N4T%@4}xJIUc5V1lSmrRH@+c=^j!UEZoy2tO(m!FGeQ~**-#%Se4D~oU?=VP`c z+5%#9usV>g!{Z zOFw+0l~gUg;|i8o?o8yU-z1BQHH7s&T2dWUPtj(G*gUgxnFRc^H7@^#87MHzXPR5n zw}+k0`w47U5{f8$Hhsm;PtLZs>O`9h zjF2K*YP>3g&GaqY-D=^It6eL|yia|k&i z*~us**qN9mGlj4Z6kvXIHjJr#wP(wIg7y`n@Y0 zTn|OFCG=ObA%vpZZuKPHf~m3lT5})%I9eX2kmMHMed0z|}tt zi&?f0#L6twTUtuYxWo#5ALrtW@}GQ*mU+>MkgXSXvl!j*vaDWkk@gx~WxQw(3v0SO z11>yjixP3r3$MVfo|k!g-W}gvGd$<4*OD8#=3%1&DBTUIZv+N!tmhHm0~wuj~q$BqR^vCUHO3BE*EKJioH~V1l*z zwCt2gU6Z!^AQW7+3>WnIABT0S;ca^w4-WgnQo4jel7ic0%syaG2PAg3q#u3d@nx~FGKQK zLhl@cFSMk1KI`jhWp^1X`iY1K-)RlHH%08=8? zCwQy)G4($AxJd`&f0L^RxASPp1T_M_V5Ff)42n|13#xl`!9yw=9Vg-yBjh?QvTC-I z&S*vV_}^K4?wYHFt6mLh89yJ_Xr;KVQk%J#2T2BwLxuTd#bQoTPr+@6i%3Y2jq2rJ zNV?>)#}?5lS{*IhXckRYqiI`g4oUO0ONpE#koSNZtLPl zqyE;|r7Wh1%JDQAjKtS>dpQ*seEoBLRD{lANK%u)i#O&jSOlFOR9#f9U047!vZ@G7 z{}u&tfKTg>sdVxSH*_OSOI7NAY35GdOo^2!gIiRD(u$VV*sp!*ATi`O zsvQDcG_GY}iyt$~rznx%G1!aA=oW|6_57M8Q=?^%b;bw=73vpg zoVHd-Y^&VQ;lNrFjAKBsa*Gu?D7c*h{n%@Om9w!8)L!!q#6$ zTlHo2$M>J&vI<*&y{yl|k+MFuqX0N&1V}nWWCpa&jCv&|7-Mf1HMnEGk3$zl8dxG1 z=G7}?G`-0cwDt#dwB=Sk$c(|AchZ9mLbb&IqB%OGO<`%!aCMi-xBe&#{r4HjA$^KK zp{?$0+*|*5d{jpEq*OQFb1&!X2c^nI^N_0%f05WceLF5kuYU$dzQcOrf z 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�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

WZ|7d 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≠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

J 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 z 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 literal 0 HcmV?d00001 diff --git a/Disco.Client/Package Creation/PreparationClient.zip b/Disco.Client/Package Creation/PreparationClient.zip new file mode 100644 index 0000000000000000000000000000000000000000..e4e3f315214bb35d5631ee3f9b15307e5ba1eb40 GIT binary patch literal 418415 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

En1K{_EOh!EGNl)1d}=i_eLM!9 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%0A8nPdZnpw$KaIv;Dp%Ds8ouRNC^1%^uZj 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 z zPTS>))3rMh=H@yoeyw)`P>^)VXW~#E^}U-CP=zVNU)7n~N7G60ELw>lJu@#8=aE1)eQ>4G)a)4@Q#9NETm#q*>2X z^;)2KAdZ5}NbNlDgHVxIRo8np5H*A@Ee_fnid_2ORH5!CM=A_hA^u7I-lG>|F-;ZI z%|qar6r7G<4WLOF7;oNvlyU;rhA=!8KtLtPq#61*+HkaSZZs<*it~;L|Bxl_AJSZe z=H^Ffa!obG-4cf|T66|c9iu)vo45*@)KsW_ zP>D4t6>(S8StVoN<8fR5&S^f>w~o;lxw4SIbMB-(JB@MXct%H-Hk^ z0=m_k#CZeO)J>AMrUpthaSn{oq%f-{9Irh{k(+w%vrWnqP2-^ZM1@;*^+rw zD=!{$RG&5`vE*t>HZWS5kLlT{0b5wT2GX^~hwp0c6dz)fW$zl1u!S-_PU!}$pEj3M z+Jt8Z9;Zv>Ek@kUY4Lo;E#f+_h);NvWiM%E6RMojYSdYdcsKI+d?Kp}8|ls|Lv287 zlXgB~LxO*grT~eE;itrK`zco#Yc^lK!yu~_>DrAINA$j{l^61!S6)_T>B5C{L+K4& z@Lf8b#_gt;;E(XBe@#z*&klBpO?ztM;`Oi_9rD1BF?{kE%{Ka44)Zm1DAwypAs1)M zoA*^IG5$3k!ye^OitxhtFu;(StaN_Z z`b`?5vUD&eKP5k2h6*>8$uT+1(uR7(V*XodTB4HSoeD5!^D`6TQtVxnwh7> zm`RWtc_)?L6fa#oA;C5>^oV4C4lbRKi%aP!%q&T}IKh_y0P{+Mc>OuI&^z5)UN zFah04no!_3PFj6;|bxDgj^ zgS7mWuOCbYPa99!yLpoZMa22)V&J2xK26-f**;nuj2Ff;W}JeJxPj~d`jrD(abv<;c5;89IoVW1&1<+%Q;-a;bIPF zak!AfDh^#7R&rRuVJU}B4*Qo-xRb*@9PZ<=ox_719^&vYhetSkiNli|zQSP-ho?DI zIXuH*ABSf}4!1bKX^GPY4vid|IJ9v1%H3R-!!r^8PH*(m@VKawK9IoMTHHQHXS8}+5Lz%d zIdpP3i^D<=XK+}+VLpes9NIX{;V_%SEDo(4S~xUuXynj<&~K8Pp2IxbLuV=XoR)C) z)G>3*t}^NVNq&Pme=6>ShVB`_8U2&DB8j`I+Wk>=1esiAr`3a~*a6Uje3W-6G5V;X zcwjj#^jT`16RPDp^^3PbTg1rgy!Sdl-LdHf%=Fs2ze8b`EYDLRjYp}=sC2}=;aY2U)ljOW`JCk#v zI8M%u!^s&Jcd5M&46P%BY@49|-HzV-LG9rofApJu^hpA)SKn)I-vF;wGmx#n zL|dW8(V^m2(2V7=cgt-0lYlA-aY3%|!@zL>KDS1<&K6V2?3nKSdTq z&xQV+f}4YZw0D03#3KdV8w7_2>N^k`IuiG*YcS#_WxfTUmni#{qbZ$^!TXGke)B`y zLBslsOv!{eC1Y!Rq1Q2bX2)P%eb9)zV!g*s;N2 zay{_2;v!{dN~nvmA5LJ8%uB*DlrGds_a_PJ2T2+POsJD!zziyF9g5>8h&B@-o>n|f zcvj9nHh*iWY;xmZPAnrrlhxjbwvxxf<_ah!aJP#V1F$qUN$uWB?CG>Y9+5C_X6K^@(pb`=yFbo{xv-L>GV0*E=PSN&nHnzZ ziQuyZZ!Bnvl=Zl}%FdJkx~uFoSo8%oP$JGj=bu*kR*zK5dRnt$Wj#>_^{Ur9Ns*y& zbvhTt^G9($ZV@ih=!%qCU9q4AZIIHP=whU`$uhr`ES=-GpqoE z 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%0DhwffD6nCYu*7^G&r(nP(L;8`i8ZvUo{= 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

$AXodk=pb1i(5Zpo9Rv}TXsEK>v9}SDM>3|6 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

4oz2X4Tp`f1_L`816Ve;#6*xVe(4 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

lyq`6}k)fED01*VbsKe)Wfbw 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 0) + Presentation.TryDelay(TryDelay); + } + public static void UpdateStatus(string SubHeading, string Message, bool ShowProgress, int Progress) + { + Console.WriteLine("#{0},{1},{2},{3}", SubHeading.EscapeMessage(), Message.EscapeMessage(), ShowProgress.ToString(), Progress.ToString()); + } + public static void TryDelay(int Milliseconds) + { + if (DelayUI) + Thread.Sleep(Milliseconds); + } + + public static void WriteBanner() + { + StringBuilder message = new StringBuilder(); + message.Append("Version: ").AppendLine(Assembly.GetExecutingAssembly().GetName().Version.ToString(3)); + message.Append("Device: ").Append(Interop.SystemAudit.DeviceSerialNumber).Append(" (").Append(Interop.SystemAudit.DeviceManufacturer).Append(" ").Append(Interop.SystemAudit.DeviceModel).AppendLine(")"); + Console.ForegroundColor = ConsoleColor.Yellow; + UpdateStatus("Preparation Client Started", message.ToString(), false, 0); + Console.ForegroundColor = ConsoleColor.White; + TryDelay(3000); + } + public static void WriteFatalError(Exception ex) + { + + Console.ForegroundColor = ConsoleColor.Magenta; + ClientServiceException clientServiceException = ex as ClientServiceException; + if (clientServiceException != null) + { + UpdateStatus(string.Format("An error occurred during {0}", clientServiceException.ServiceFeature), + clientServiceException.Message, false, 0); + } + else + { + StringBuilder message = new StringBuilder(); + message.Append("Type: ").AppendLine(ex.GetType().Name); + message.Append("Message: ").AppendLine(ex.Message); + message.Append("Source: ").AppendLine(ex.Source); + message.Append("Stack: ").AppendLine(ex.StackTrace); + UpdateStatus("An error occurred", message.ToString(), false, 0); + } + Console.ForegroundColor = ConsoleColor.White; + + TryDelay(30000); + } + public static void WriteFooter(bool RebootRequired, bool AllowUninstall, bool ErrorEncountered) + { + Console.ForegroundColor = ConsoleColor.Yellow; + + if (ErrorEncountered) + { + UpdateStatus("Client Finished due to Error", "An error occurred which caused the Preparation Client to stop running.", false, 0); + TryDelay(5000); + } + else + { + UpdateStatus("Client Finished Successfully", "The Preparation Client finished successfully.", false, 0); + TryDelay(1000); + } + + if (RebootRequired) + RegisterBootstrapperPostActions(ShutdownActions.Reboot, AllowUninstall && !ErrorEncountered); + else + RegisterBootstrapperPostActions(ShutdownActions.None, AllowUninstall && !ErrorEncountered); + } + + public static void RegisterBootstrapperPostActions(ShutdownActions ShutdownAction, bool Uninstall) + { + Console.WriteLine("!{0},{1}", Enum.GetName(typeof(ShutdownActions), ShutdownAction), Uninstall ? "UninstallBootstrapper" : "DontUninstallBootstrapper"); + } + public enum ShutdownActions + { + None, + Shutdown, + Reboot + } + + } +} diff --git a/Disco.Client/Program.cs b/Disco.Client/Program.cs new file mode 100644 index 00000000..5a320fb4 --- /dev/null +++ b/Disco.Client/Program.cs @@ -0,0 +1,137 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Text; +using System.Threading.Tasks; +using Disco.Models.ClientServices; +using Disco.Client.Extensions; + +namespace Disco.Client +{ + public static class Program + { + public static bool IsAuthenticated { get; set; } + public static bool RebootRequired { get; set; } + public static bool AllowUninstall { get; set; } + + [STAThread] + public static void Main(string[] args) + { + bool keepProcessing; + + // Initialize Environment Settings + SetupEnvironment(); + + // Report to Bootstrapper + Presentation.WriteBanner(); + + // WhoAmI Phase + keepProcessing = Program.WhoAmI(); + + // Enrol Phase + if (keepProcessing) + keepProcessing = Program.Enrol(); + + // End conversation with Bootstrapper + Presentation.WriteFooter(Program.RebootRequired, Program.AllowUninstall, !keepProcessing); + } + + public static void SetupEnvironment() + { + // Hookup Unhandled Error Handling + AppDomain.CurrentDomain.UnhandledException += ErrorReporting.CurrentDomain_UnhandledException; + + // Ignore Local Proxies + WebRequest.DefaultWebProxy = new WebProxy(); + // Override Http 100 Continue Behavour + ServicePointManager.Expect100Continue = false; + + // Assume success unless otherwise notified + AllowUninstall = true; + + // Detect Disco.Bootstrapper - Create Enable UI Delay if Running + try + { + Presentation.DelayUI = (System.Diagnostics.Process.GetProcessesByName("Disco.ClientBootstrapper").Length > 0); + } + catch (Exception) + { + Presentation.DelayUI = true; // Add Delays on Error + } + } + + public static bool WhoAmI() + { + try + { + + WhoAmIResponse response; + WhoAmI request; + + // Build Request + request = new WhoAmI(); + + // Send Request + Presentation.UpdateStatus("Connecting to Preparation Server", "Determining connection authentication, please wait...", true, -1); + response = request.Post(true); + + // Process Response + response.Process(); + + // Complete + return true; + } + catch (WebException webEx) + { + // Check for 'Unauthenticated' Connection + if ((webEx.Status == WebExceptionStatus.ProtocolError) && ((HttpWebResponse)webEx.Response).StatusCode == HttpStatusCode.Unauthorized) + { + WhoAmIExtensions.UnauthenticatedResponse(); + return true; + } + else + { + // Some other Web Error + ErrorReporting.ReportError(webEx, false); + } + } + catch (Exception ex) + { + ErrorReporting.ReportError(ex, true); + } + return false; + } + + public static bool Enrol() + { + try + { + Enrol request; + EnrolResponse response = null; + + // Build Request + Presentation.UpdateStatus("Enrolling Device", "Building enrolment request and preparing to send data to the server.", true, -1); + request = new Enrol(); + request.Build(); + + // Send Request + Presentation.UpdateStatus("Enrolling Device", "Sending the enrolment request to the server.", true, -1); + response = request.Post(Program.IsAuthenticated); + + // Process Response + Presentation.UpdateStatus("Enrolling Device", "Processing the enrolment response from the server.", true, -1); + response.Process(); + + // Complete + return true; + } + catch (Exception ex) + { + ErrorReporting.ReportError(ex, true); + return false; + } + } + + } +} diff --git a/Disco.Client/Properties/AssemblyInfo.cs b/Disco.Client/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..913f9eb7 --- /dev/null +++ b/Disco.Client/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using 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. +[assembly: AssemblyTitle("Disco - Client")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Disco")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// 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. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("aa39bf57-b0e8-43ba-a29a-f38b3e5b189c")] + +// 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.*")] +[assembly: AssemblyVersion("1.2.0131.2002")] +[assembly: AssemblyFileVersion("1.2.0131.2002")] diff --git a/Disco.Client/Properties/app.manifest b/Disco.Client/Properties/app.manifest new file mode 100644 index 00000000..66b901b5 --- /dev/null +++ b/Disco.Client/Properties/app.manifest @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Disco.Client/PsExec.exe b/Disco.Client/PsExec.exe new file mode 100644 index 0000000000000000000000000000000000000000..ed674807d6049ba54db25e032c9ec662a963f0f0 GIT binary patch literal 381816 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 + + + \ No newline at end of file diff --git a/Disco.ClientBootstrapper/BootstrapperLoop.cs b/Disco.ClientBootstrapper/BootstrapperLoop.cs new file mode 100644 index 00000000..ac9a06d1 --- /dev/null +++ b/Disco.ClientBootstrapper/BootstrapperLoop.cs @@ -0,0 +1,252 @@ +//#define Debug + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading; +using System.Net; +using System.IO; +using System.Diagnostics; + +namespace Disco.ClientBootstrapper +{ + class BootstrapperLoop + { + + public Thread LoopThread; + public delegate void LoopCompleteCallback(); + private LoopCompleteCallback mLoopCompleteCallback; + private IStatus statusUI; + private string tempWorkingDirectory; + private StringBuilder errorMessage; + private Process clientProcess; + + public BootstrapperLoop(IStatus StatusUI, LoopCompleteCallback Callback) + { + this.statusUI = StatusUI; + this.mLoopCompleteCallback = Callback; + this.errorMessage = new StringBuilder(); + } + + public void Start() + { + this.LoopThread = new Thread(new ThreadStart(loopHost)); + this.LoopThread.Start(); + } + + private void loopHost() + { + try + { + loop(); + } + catch (Exception ex) + { + if (ex.GetType() == typeof(ThreadAbortException)) + return; + if (ex.GetType() == typeof(ThreadInterruptedException)) + return; + Program.WriteAppError(ex); + throw; + } + } + + private void loop() + { + +#if Debug + statusUI.UpdateStatus("Waiting for Debugger", "Please wait...", true, -1); + try + { + do + { + System.Threading.Thread.Sleep(10); + } while (!System.Diagnostics.Debugger.IsAttached); + } + catch (Exception ex) + { + statusUI.UpdateStatus("Error", ex.Message, true, -1); + return; + } +#else + statusUI.UpdateStatus("System Preparation (Bootstrapper)", "Starting", "Please wait...", true, -1); +#endif + + tempWorkingDirectory = Path.Combine(Path.GetPathRoot(Environment.SystemDirectory), "Disco\\Temp"); + if (!Directory.Exists(tempWorkingDirectory)) + Directory.CreateDirectory(tempWorkingDirectory); + + // Check for Network Connectivity + statusUI.UpdateStatus(null, "Detecting Network", "Checking network connectivity, Please wait...", true, -1); + if (!Interop.NetworkInterop.PingDisco()) + { + statusUI.UpdateStatus(null, "Detecting Network", "No network connectivity detected, Diagnosing...", true, -1); + statusUI_WriteAdapterInfo(); + + if (!Interop.NetworkInterop.PingDisco()) + { + // Check for Wireless + var hasWireless = (Interop.NetworkInterop.NetworkAdapters.Count(na => na.IsWireless) > 0); + if (hasWireless) + { + // True: Do wireless loop + statusUI.UpdateStatus(null, "Configuring Wireless Network", "Wireless adapter detected, Configuring...", true, -1); + Interop.NetworkInterop.ConfigureWireless(); + statusUI.UpdateStatus(null, "Waiting for Wireless Network", null, true, 0); + for (int i = 0; i < 100; i++) + { + statusUI_WriteAdapterInfo(); + statusUI.UpdateStatus(null, null, null, true, i); + Program.SleepThread(500, false); + if (Interop.NetworkInterop.PingDisco()) + break; + } + if (!Interop.NetworkInterop.PingDisco()) + { + statusUI.UpdateStatus(null, "Wireless Network Failed", "Unable to connect to the wireless network, please connect the network cable...", false); + Program.SleepThread(3000, false); + } + } + + if (!Interop.NetworkInterop.PingDisco()) + { + // Instruct user to connect network cable + statusUI.UpdateStatus(null, "Please connect the network cable", null); + for (int i = 0; i < 100; i++) + { + statusUI_WriteAdapterInfo(); + statusUI.UpdateStatus(null, null, null, true, i); + Program.SleepThread(500, false); + if (Interop.NetworkInterop.PingDisco()) + break; + } + } + } + + if (!Interop.NetworkInterop.PingDisco()) + { + // Client Failed + if (this.mLoopCompleteCallback != null) + { + this.mLoopCompleteCallback.BeginInvoke(null, null); + } + return; + } + } + + // Download Client + statusUI.UpdateStatus(null, "Downloading", "Retrieving Preparation Client, Please wait...", true, -1); + string clientSourceLocation = Path.Combine(tempWorkingDirectory, "PreparationClient.zip"); + using (var webClient = new WebClient()) + { + webClient.DownloadFile("http://disco:9292/Services/Client/PreparationClient", clientSourceLocation); + } + + // Unzip Client + statusUI.UpdateStatus(null, "Extracting", "Retrieving Preparation Client, Please wait...", true, -1); + string clientLocation = Path.Combine(tempWorkingDirectory, "PreparationClient"); + if (!Directory.Exists(clientLocation)) + Directory.CreateDirectory(clientLocation); + using (var clientSource = Ionic.Zip.ZipFile.Read(clientSourceLocation)) + { + clientSource.ExtractAll(clientLocation, Ionic.Zip.ExtractExistingFileAction.OverwriteSilently); + } + + // Launch Client + statusUI.UpdateStatus("System Preparation (Client)", "Running", "Launching Preparation Client, Please wait...", true, -1); + ProcessStartInfo clientProcessStart = new ProcessStartInfo(Path.Combine(clientLocation, "Start.bat")) + { + WorkingDirectory = clientLocation, + CreateNoWindow = true, + RedirectStandardOutput = true, + UseShellExecute = false, + }; + using (clientProcess = Process.Start(clientProcessStart)) + { + // Read StdOutput until End + try + { + clientProcess.OutputDataReceived += new DataReceivedEventHandler(clientProcess_OutputDataReceived); + clientProcess.BeginOutputReadLine(); + clientProcess.WaitForExit(); + } + catch (Exception) { throw; } + finally + { + try { clientProcess.CloseMainWindow(); } + catch (Exception) { } + } + } + clientProcess = null; + + // Cleanup + if (Directory.Exists(tempWorkingDirectory)) + Directory.Delete(tempWorkingDirectory, true); + Interop.CertificateInterop.RemoveTempCerts(); + + // Pause if Error + if (this.errorMessage.Length > 0) + { + Program.SleepThread(10000, true); + } + + // End Of Loop + if (this.mLoopCompleteCallback != null) + { + this.mLoopCompleteCallback.BeginInvoke(null, null); + } + } + + void statusUI_WriteAdapterInfo() + { + + var info = new StringBuilder(); + foreach (var na in Interop.NetworkInterop.NetworkAdapters) + { + if (na.IsWireless) + { + info.AppendLine(string.Format("{0}: {1}", na.NetConnectionID, na.WirelessConnectionStatusMeaning(na.WirelessConnectionStatus))); + } + else + { + info.AppendLine(string.Format("{0}: {1}", na.NetConnectionID, na.ConnectionStatusMeaning(na.ConnectionStatus))); + } + } + statusUI.UpdateStatus(null, null, info.ToString()); + + } + + void clientProcess_OutputDataReceived(object sender, DataReceivedEventArgs e) + { + if (!string.IsNullOrWhiteSpace(e.Data)) + { + System.Diagnostics.Debug.WriteLine(string.Format("OUTPUT: {0}", e.Data)); + var data = e.Data.Substring(1).Split(new char[] { ',' }); + switch (e.Data[0]) + { + case '#': + if (data.Length == 4) + { + statusUI.UpdateStatus(null, data[0].Replace("{comma}", ","), data[1].Replace("{comma}", ",").Replace("{newline}", Environment.NewLine), bool.Parse(data[2]), int.Parse(data[3])); + } + break; + case '!': + Program.PostBootstrapperActions = new List(data); + break; + } + } + } + + //void clientProcess_ErrorDataReceived(object sender, DataReceivedEventArgs e) + //{ + // if (!string.IsNullOrEmpty(e.Data)) + // { + // System.Diagnostics.Debug.WriteLine(string.Format("ERROR: {0}", e.Data)); + // this.errorMessage.AppendLine(e.Data); + // statusUI.UpdateStatus(null, "An Error Occurred", this.errorMessage.ToString(), false); + // } + //} + + } +} diff --git a/Disco.ClientBootstrapper/BootstrapperWorkstationInstall.vbs b/Disco.ClientBootstrapper/BootstrapperWorkstationInstall.vbs new file mode 100644 index 00000000..0b3f6a6b --- /dev/null +++ b/Disco.ClientBootstrapper/BootstrapperWorkstationInstall.vbs @@ -0,0 +1,11 @@ +Option Explicit + +Dim objShell, BootstrapperLocation + +Set objShell = CreateObject("WScript.Shell") + +BootstrapperLocation = Mid(WScript.ScriptFullName, 1, InStrRev(WScript.ScriptFullName, "\")) & "\Disco.ClientBootstrapper.exe" + +Call objShell.Run("""" & BootstrapperLocation & """ /Install", , True) + +WScript.Echo "Disco Client Bootstrapper Installed" \ No newline at end of file diff --git a/Disco.ClientBootstrapper/Disco.ClientBootstrapper.csproj b/Disco.ClientBootstrapper/Disco.ClientBootstrapper.csproj new file mode 100644 index 00000000..cf216eb9 --- /dev/null +++ b/Disco.ClientBootstrapper/Disco.ClientBootstrapper.csproj @@ -0,0 +1,335 @@ + + + + Debug + x86 + 8.0.30703 + 2.0 + {15BD9561-A3C7-4608-9F7E-F1A1CFB60055} + WinExe + Properties + Disco.ClientBootstrapper + Disco.ClientBootstrapper + v4.0 + Client + 512 + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + x86 + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + Properties\app.manifest + + + true + bin\Debug\ + DEBUG;TRACE + full + AnyCPU + prompt + true + true + + + bin\Release\ + TRACE + true + pdbonly + AnyCPU + prompt + true + true + + + Icon.ico + + + OnOutputUpdated + + + + + + + + + + + + + + + + + DotNetZip\BZip2\BitWriter.cs + + + DotNetZip\BZip2\BZip2Compressor.cs + + + DotNetZip\BZip2\BZip2InputStream.cs + + + DotNetZip\BZip2\BZip2OutputStream.cs + + + DotNetZip\BZip2\ParallelBZip2OutputStream.cs + + + DotNetZip\BZip2\Rand.cs + + + DotNetZip\CRC32.cs + + + DotNetZip\Zip\ComHelper.cs + + + DotNetZip\Zip\EncryptionAlgorithm.cs + + + DotNetZip\Zip\Events.cs + + + DotNetZip\Zip\Exceptions.cs + + + DotNetZip\Zip\ExtractExistingFileAction.cs + + + DotNetZip\Zip\FileSelector.cs + + + DotNetZip\Zip\OffsetStream.cs + + + DotNetZip\Zip\Shared.cs + + + DotNetZip\Zip\WinZipAes.cs + + + DotNetZip\Zip\ZipConstants.cs + + + DotNetZip\Zip\ZipCrypto.cs + + + DotNetZip\Zip\ZipDirEntry.cs + + + DotNetZip\Zip\ZipEntry.cs + + + DotNetZip\Zip\ZipEntry.Extract.cs + + + DotNetZip\Zip\ZipEntry.Read.cs + + + DotNetZip\Zip\ZipEntry.Write.cs + + + DotNetZip\Zip\ZipEntrySource.cs + + + DotNetZip\Zip\ZipErrorAction.cs + + + DotNetZip\Zip\ZipFile.AddUpdate.cs + + + DotNetZip\Zip\ZipFile.Check.cs + + + DotNetZip\Zip\ZipFile.cs + + + DotNetZip\Zip\ZipFile.Events.cs + + + DotNetZip\Zip\ZipFile.Extract.cs + + + DotNetZip\Zip\ZipFile.Read.cs + + + DotNetZip\Zip\ZipFile.Save.cs + + + DotNetZip\Zip\ZipFile.SaveSelfExtractor.cs + + + DotNetZip\Zip\ZipFile.Selector.cs + + + DotNetZip\Zip\ZipFile.x-IEnumerable.cs + + + DotNetZip\Zip\ZipInputStream.cs + + + DotNetZip\Zip\ZipOutputStream.cs + + + DotNetZip\Zip\ZipSegmentedStream.cs + + + DotNetZip\Zlib\Deflate.cs + + + DotNetZip\Zlib\DeflateStream.cs + + + DotNetZip\Zlib\GZipStream.cs + + + DotNetZip\Zlib\Inflate.cs + + + DotNetZip\Zlib\InfTree.cs + + + DotNetZip\Zlib\ParallelDeflateOutputStream.cs + + + DotNetZip\Zlib\Tree.cs + + + DotNetZip\Zlib\Zlib.cs + + + DotNetZip\Zlib\ZlibBaseStream.cs + + + DotNetZip\Zlib\ZlibCodec.cs + + + DotNetZip\Zlib\ZlibConstants.cs + + + DotNetZip\Zlib\ZlibStream.cs + + + + + + Form + + + FormStatus.cs + + + + + + + + + + + + + FormStatus.cs + + + ResXFileCodeGenerator + Designer + Resources.Designer.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + False + Microsoft .NET Framework 4 Client Profile %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + Always + + + + + + + + + + + + + + + COPY "$(TargetPath)" "$(ProjectDir)..\Disco.Web\ClientBin" + + + \ No newline at end of file diff --git a/Disco.ClientBootstrapper/EmbedBootstrapper.vbs b/Disco.ClientBootstrapper/EmbedBootstrapper.vbs new file mode 100644 index 00000000..e69de29b diff --git a/Disco.ClientBootstrapper/FormStatus.Designer.cs b/Disco.ClientBootstrapper/FormStatus.Designer.cs new file mode 100644 index 00000000..81e7df29 --- /dev/null +++ b/Disco.ClientBootstrapper/FormStatus.Designer.cs @@ -0,0 +1,125 @@ +namespace Disco.ClientBootstrapper +{ + partial class FormStatus + { + ///

+ /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.labelHeading = new System.Windows.Forms.Label(); + this.progressBar = new System.Windows.Forms.ProgressBar(); + this.labelSubHeading = new System.Windows.Forms.Label(); + this.labelMessage = new System.Windows.Forms.Label(); + this.labelVersion = new System.Windows.Forms.Label(); + this.SuspendLayout(); + // + // labelHeading + // + this.labelHeading.BackColor = System.Drawing.Color.Transparent; + this.labelHeading.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelHeading.Location = new System.Drawing.Point(15, 15); + this.labelHeading.Name = "labelHeading"; + this.labelHeading.Size = new System.Drawing.Size(270, 20); + this.labelHeading.TabIndex = 0; + this.labelHeading.Text = "System Preparation"; + // + // progressBar + // + this.progressBar.BackColor = System.Drawing.Color.White; + this.progressBar.Location = new System.Drawing.Point(15, 100); + this.progressBar.Margin = new System.Windows.Forms.Padding(2); + this.progressBar.MarqueeAnimationSpeed = 50; + this.progressBar.Name = "progressBar"; + this.progressBar.Size = new System.Drawing.Size(381, 15); + this.progressBar.Style = System.Windows.Forms.ProgressBarStyle.Marquee; + this.progressBar.TabIndex = 1; + this.progressBar.Visible = false; + // + // labelSubHeading + // + this.labelSubHeading.BackColor = System.Drawing.Color.White; + this.labelSubHeading.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelSubHeading.Location = new System.Drawing.Point(15, 35); + this.labelSubHeading.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.labelSubHeading.Name = "labelSubHeading"; + this.labelSubHeading.Size = new System.Drawing.Size(381, 20); + this.labelSubHeading.TabIndex = 2; + // + // labelMessage + // + this.labelMessage.BackColor = System.Drawing.Color.White; + this.labelMessage.Location = new System.Drawing.Point(15, 55); + this.labelMessage.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.labelMessage.Name = "labelMessage"; + this.labelMessage.Size = new System.Drawing.Size(381, 60); + this.labelMessage.TabIndex = 3; + // + // labelVersion + // + this.labelVersion.BackColor = System.Drawing.Color.White; + this.labelVersion.Font = new System.Drawing.Font("Microsoft Sans Serif", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelVersion.ForeColor = System.Drawing.Color.Gray; + this.labelVersion.Location = new System.Drawing.Point(229, 15); + this.labelVersion.Name = "labelVersion"; + this.labelVersion.Size = new System.Drawing.Size(167, 20); + this.labelVersion.TabIndex = 0; + this.labelVersion.Text = "Disco Bootstrapper v"; + this.labelVersion.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // FormStatus + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackgroundImage = global::Disco.ClientBootstrapper.Properties.Resources.Background_BW; + this.ClientSize = new System.Drawing.Size(411, 130); + this.Controls.Add(this.labelHeading); + this.Controls.Add(this.labelSubHeading); + this.Controls.Add(this.progressBar); + this.Controls.Add(this.labelVersion); + this.Controls.Add(this.labelMessage); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "FormStatus"; + this.ShowIcon = false; + this.ShowInTaskbar = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Disco - Client Bootstrapper"; + this.TopMost = true; + this.TransparencyKey = System.Drawing.Color.Magenta; + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Label labelHeading; + private System.Windows.Forms.ProgressBar progressBar; + private System.Windows.Forms.Label labelSubHeading; + private System.Windows.Forms.Label labelMessage; + private System.Windows.Forms.Label labelVersion; + } +} + diff --git a/Disco.ClientBootstrapper/FormStatus.cs b/Disco.ClientBootstrapper/FormStatus.cs new file mode 100644 index 00000000..77831965 --- /dev/null +++ b/Disco.ClientBootstrapper/FormStatus.cs @@ -0,0 +1,82 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace Disco.ClientBootstrapper +{ + public partial class FormStatus : Form, IStatus + { + + private delegate void dUpdateStatus(string Heading, string SubHeading, string Message, Nullable ShowProgress, Nullable Progress); + private dUpdateStatus mUpdateStatus; + + public FormStatus() + { + InitializeComponent(); + + var version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version; + this.labelVersion.Text = string.Format("v{0}", version.ToString(3)); + + this.FormClosed += new FormClosedEventHandler(FormStatus_FormClosed); + + mUpdateStatus = new dUpdateStatus(UpdateStatusDo); + Cursor.Hide(); + } + + void FormStatus_FormClosed(object sender, FormClosedEventArgs e) + { + Cursor.Show(); + Program.ExitApplication(); + } + + public void UpdateStatus(string Heading, string SubHeading, string Message, Nullable ShowProgress = null, Nullable Progress = null) + { + try + { + this.Invoke(mUpdateStatus, Heading, SubHeading, Message, ShowProgress, Progress); + } + catch (Exception) { } + } + private void UpdateStatusDo(string Heading, string SubHeading, string Message, Nullable ShowProgress, Nullable Progress) + { + if (Heading != null) + if (this.labelHeading.Text != Heading) + this.labelHeading.Text = Heading; + if (SubHeading != null) + if (this.labelSubHeading.Text != SubHeading) + this.labelSubHeading.Text = SubHeading; + if (Message != null) + if (this.labelMessage.Text != Message) + this.labelMessage.Text = Message; + + if (ShowProgress.HasValue) + { + if (ShowProgress.Value) + { + this.progressBar.Visible = true; + if (Progress.HasValue) + { + if (Progress.Value > 0) + { + this.progressBar.Value = Math.Min(Progress.Value, 100); + this.progressBar.Style = ProgressBarStyle.Continuous; + } + else + { + this.progressBar.Style = ProgressBarStyle.Marquee; + } + } + } + else + { + this.progressBar.Visible = false; + } + } + } + } +} diff --git a/Disco.ClientBootstrapper/FormStatus.resx b/Disco.ClientBootstrapper/FormStatus.resx new file mode 100644 index 00000000..29dcb1b3 --- /dev/null +++ b/Disco.ClientBootstrapper/FormStatus.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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/Disco.ClientBootstrapper/IStatus.cs b/Disco.ClientBootstrapper/IStatus.cs new file mode 100644 index 00000000..dff2a4a8 --- /dev/null +++ b/Disco.ClientBootstrapper/IStatus.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Disco.ClientBootstrapper +{ + interface IStatus + { + void UpdateStatus(string Heading, string SubHeading, string Message, Nullable ShowProgress = null, Nullable Progress = null); + } +} diff --git a/Disco.ClientBootstrapper/Icon.ico b/Disco.ClientBootstrapper/Icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..ffd2b06ecc27d078e6f14ec1fb7ab6d064231655 GIT binary patch literal 69477 zcmXtf1ymGo)c)))xpX%yB1kvVt#pTUw;-*6zy__fpmZoDN-0RkB1o5@bSxqz-Lb^S z@BjV3IcLtyojG&oIp=-ed+&SSdjS9h-~#_0AOHr84gkQDyL(~b|CK*-0s!YA0Kj1X zUnU2D;e7z0r~h9$jt~HzgFpcJ-ShvxcgF#MYbXeKWuT`{0%e5WsUp$Tcx3e7+y71i zyt|9F|3}w5m4N0WWs~6C?Y59yXVVbLn>H%}n+17!F=7Z4`tgEQV43;QpBjb98jn2`dtLb>VF2hs|<_YlTU?GIXX+C8wdd-zO?OBs?-Jzwq0} z=6OTFl4AZ*?$Nw)!>7=gO^d+%(J}?o=Vz;Ob7vMwX4JSzKSgBJ6!ZSF?Gj0;^={C! zC_u^9I^{-XGh=1du$n&dOjN+bjgG@J)EL*z0fM!rBl+iY(Q3_Po0A~==i{mTm1hL< zI<(#MWox)xAe|UiE)Z-?bovOXgn%GBaAqow4Y;AOsU;v~Yp()r1GuV?1<|0rZ0(IX z(C^N!^uMgy&(Dc`;(Aiii-Xo@unA3Spg_lPf_PJQ-(7mb2+i7gw6U6f016bl)T0(y zqMCRZ0xGtYa<&vEcrQ#9Je^K=j)&Ck#rck!xYJFgH6=fjv%T5~Mh_M;umb-SJWjLM zW@E@Isz4m<0!%-N*@EkcYrx2}19<`Nu&<==w4{;N7Cm@z2NnQ;R#8jH=eB2`T4E4> z3&^|Rs+4Nce%HY)m$srMjiPgI4m%xPZwsdNAFxmXips^|=Tk1YRY0E){(uf5jK!Sd z=ixz$cnAk9P2q5Wv15&@Rub$MSrJ$4gYCNV{cXZig#6Ed)JiXakWC z)_QLM^>C<+GNFj*oUKnl8 zLJ{_ zKSbfCOp(`HM#|^UMwt^B!~MZ?^xz>5YgNDIoc{iyfmk@-{Uf-w7^16z3*PkrG`6ov zAPz~v(|`ew8RJfy=x?ZW$5tB> z%yV*kR;2{QK%DDU3Vj%V@hyqNY=esDKMn%a%lJ&03W!4@y?k5+%)Up+BdmZQM2j=D zop1K+vZXi*W^bnCaa54;MIxnaQl^jcQqSo!@5iy?E)e2s9jWJP6P*v9ot4;d{>#Px z7hNB%a0Z}anU270h}-KQr4WRwy3l_-5ccRn&_(%>kw5MDsx~z8zS&iYKtT+_7bq?- z7G9}2Wa~*;6f04={B6xGK;f4Px)GeTmH`In1##{lLAvLWE-z^bye>U;(C%>CcP006 z-UwdnH>=TW3>FquM(C*}Ed8GB3{=_eG$G#B##Z@LA%kw~2qW$Wf}qHAhDSRr=$%E#gEnOoQT%H8t~~MBX`fCn zeB{L3=H|+3{z8dbrt&38D;ACNN%N?p;+8}965gM$(FGMin550@X9lQUBR zv8jOyH!U!9+gR;#%PU5a^I+#|>=TWSUJi$UQ&!zWiH45B9*1Hp+I5O?bum-zibPSo zr5Ud6L|08AfDYVVH%ycADh&yviiOPFt~)tvGSH`gM+S)bo-ughrsd5>u0dZi^q2BoQLJlx9b7m25Fjo5HN4_IsXdBul`xVOJdN z21H?=|J0vf+LRnzNQ%Au7>+gQ#m=;@FL}`blPtphie9Jq*9nS!GzK)YcA}C*fXC^P zKOV&NNj=y^4f&p$*z1OGhm`Hau4Qu-pu(upCrF*|~idR=-Q?G@;s-Vd# zghmtCB(UG)tpFX-EBt8!YxC_V$Jv#!sLYy?mP*mL0^sd2VhYb4NM zn1!%mByOJa^lyM&o!FJqpH9XS7%C0-?xY2(Z#8|1{sZyoKko&A!k9uVHY~_}K0K*B zdGOTvUviX^0Q41VOZQsd(J*}Sn4fsMm&|jPk^H7z`Jm`4&nUYh!zpB-y~FvCw{leF z{lFgnrD_D1Y|TC8K3vF*d&!PzC5c(nk%V?vH5_U%{CUUbz*97$~asq$r9?w zVXtT!W$akI*OQbzIiH+8S)I&Gg#6Ynf{py@F=|;59Z7WFM5vfw3+K5%9LhyUX0MD^ z0ct1!`x;ovPteV<68i&+{y61m2?I*-AIZq5)}b$Wckx0sV(Hra-SMB*wf9b7dy1EG zU<_G)RKHnXLbcc4pY5EWxz$9Z&W*7;(kzb{hpruL?(T$TvFox{n}zH2p5~<5bzX7M zZWGHWoE9P7G=IJU>G_AlrTbqjC`Dd1|SMWr`8&Ig(xa%sQt@)H|HJFaVu zN+E_NIUIFhn{0yY9vx1g4JeCASc9OZFhx^^%M7i_=$N6j3ML~LM3J&{HHq364l!XI zi)Ma7@$q3e1Wdsfw;=$2rE>qB)ynih;G%Oz9&vsb>I%&rUeCVd0Qvr@g_D}!s$fua zsL*yU$II`~6s3Y342SMb$>pWd;DoL${1)h0Vmm4*cfMI)U9I9o4@&d9*PvQk$sovF zllw)GtUkIFz+t@PM3XL#u1_?sh0D6Juoh36H|5`DMAk1?nkUgjph5~v(9O9*nC~r{ z-j5X-E`U^MCm9Hylb%kYJEzZ0YI;%RUrT@S`;GkJsqS zYthyQ#UZkE3OL}W~g-HV!t=HQ&3D)L-(47 zMzMW97<4omwwAH=StZI;1=)~+!3b;HBchNatdClea+(R`AHf9Dk21Npcr_SFzLZd4 zRy%^uQs-)YrE!%Wm-Oj#wPCHp?Ag0=7FGrFss?Anbv(oC@uY?`w1c#V*dC$fB_U!h z$ap(QMN|Ad*rLDpy~10fffuEWM`R+wvmYFO9RjWT=3kG^60<1083+G}g# z5cX9CMi7|nSF$Hk$Q8}ZgZaaGc1ayecKuoo7pn-2X}vL$bPgbBcTUCuH%Mlv*ei57 zKf$~slmCs)lMKHtD{9mj*Kft$Z$A=Fz|Pmi1Sm8>*D@VO_i&h&d!SpMU^oEWEx}ena^U# zUl(%L01)kaWiTdu-Qk{)@1V)JqN*MTZ09Z}xw(DhEQZyQsjk3$c7!X|c(f1gkA^_T zm^p*&x1}uUf{zPP)`y~{Bi0nJL&ieEemzE0f&PR3=+@Hu$ ziP3w!d{3otfF(r*=?TRnL_OzdJecaRYQ4e8qkHx5Xmihm6HvGe^qQtwdDrGQvxHx< z=0i|mS9)>^f*b0(9ZS1+Fs*%-sO0qhZt-qrA`=IlyoZ0fQ^Pnmyks{7PMI4|%$Ukr zh2WrtJB9lm)Bim(dnTp_fsQJj^0|&l6ZgEZk=f5XCsW zLwj&EdYY1qhFmlxCv0~*(WBwx>IF$8p?JcGg$9XBCw39Vh84#(H=V+@$fswXx-8?L zXUOfypDHSl_scccceK$-U04@Nt34Q|q$KAp>y(uw32r)x2br91rESfuyKx;x`S3I7 zd#}8a%Wnyze@h>lO6|}THue%Z&&HN+>rs`1((94D7d|`yE{O)ej*C*R^eCuQFw=dW zvUOArR#FpIQLryw*CSCD!mk&!haj!m_r3PwD8Pe{75%`Nf`aJJ4M7K}&EkR!)lt1q zoi{hm+AY6erR$}+snuy=_nsZbJ|7=TCD_EBja{#jYYlV8%`?b8uOzhp-H%qusWT5s zGT=?is19F-{hBql6F>UAZl%U}p8)yPmG37UiHZ~-f%Ujzs-Ie+!Es1knumi&{?oPG z8>p6)iM7KA4&bfG{{`@H2Fp2 z>L6WcHR7NlX`Y~Sr6h8LpA~+272WvKjf`#XcUKhC5sAE2cUNiK_Ndv>&R%o1c8GM+ z=uBv$h^$6e_VD77YW!jgi3l(^9S}%UbLnjV!;-Oa@!l-s#%K>j9LZHzK|D(HqZ8XW zwZa9~d^6-TbXn0+^YN*jnFc_+kzSROyN4_Y`B*8qv}O}*IINTZogq(Rsos2jWXKCQ zDN0=7{;(VR9j=$VTcgW_+TOv?*RV$uKRrO)rY~(C=dTQA;8f2|{^)&iGBBQNw;jhy zkcfom?8>8l<2_$`xLJH2=InX6CBRhbG_h2-Jc(p>tK3=8npH^H21vJ*Y(OiX+(xi? z`(lrg@^9nok_2rxt^zY*eH zEIh0UC3=i=m|hoNi86`FVu62?zNwK)&4!0CPJ#@Oo&>=rSnUOs>=G2% zT1Nt@CeK7GcBUOClh@M{Epc92>;gsXk>=K${{xuo_Z`mk3I)#Hk&%PN*%+zw99fao!K3%8 znEi`}AY4uymfw;7r%<^G5F{BtL`JIrogC)*P5w8DNDS#FM^+*|xQbA$lcq_?`( z$)Mh^A`Wd<>wy52c&}Kg%I|sE3l@DbpuXnm3U!3-3;!h8KiTUL4&F8HFk;6UlHdCB zGMylT!wMjF4I=}*5%3y#gDcz{hdsP$tRd}LO^2I!2Q8jLAMeJh^Nn$sLS3nwIiKh4 zr*W&aQK3vP2fXQ~tjy5&Bo*?J!br9F4-me|Y2PRL#+!V-0~X{pcyAr_>S^ao+2ViP z1iUx3u^i$LN(&o0J-)8J#H^_0+tAGu+oAKLF zA)<%dulOVN@kXF-F(c0{$Wm!p*by>4#H(>}mi+-C@RD40E5=kwS9I&W- zM3{b$k~APgB`##P@~*PaL0KXP0obKs-oUIS8dmLQ zz3V>~sKZEE?}Rnt4UCI2RjryWS2{J#cL-rFoZCkYbgpm6v6CiQA>0TJF?e7-GwkIO3Dhzxu!{c4kpL@_^1wve8l(MzofQ>wra`V%p)y{1OyMgM*S<5t^ zqRhAzcQKxlr?tHf<5h@{6ns&-TQ#+Rf1+wvZ>-P*#`N5LRR=p~~(8 zn5l4<6Y#<-#354eK^=T^o~3(j6j5tJ1Pl+=wz%&HcwhOIy&*Rj^T@IP1dZwAOp{4? zVk#ya7bEi1F~Yw5iL&Mj+1P1GA9BS~cx-c$mVcEIoYy>ToC#UGXndk%n<5++_^6QE z%bmPtxwBi^1;G4F667S??=h_=fHxiDL3(z;nx-*+nq(!!a zSe5sj%h_-M28V@R$~$i(X^s<5_ZAeUy!w!4u{&ylBsvRfpPVY$3=wW{-v9#KS?KA3UMwD4L0-kPn?Xup{pM7@KMIcXWP=JFrPfFKO2JF>-%=X2oTuX#n?o8O*7-F#xIzg zfwT+#`&vB8_B23YY$;WJyrqg^DVF5=@zu{QIkIlwM8nrp+Kdn1KFRl(up|3b=XthQ zk9suq`KUE0dVjM-7B=elJic>86mv&YPSPtePBKqN|$4B4^T9;(prpyzd-yk-Apo8Zw@)M@oa z_pui)&LyteJt!vfRIF5?VFT<%p>_MsQg_fY?&u@&7D&UW{j6o#K`q&!zw49kUQGC*JoI zCggsj%%F}z@#Z)V_}fk#8x>u)u$4Y{NW4ebTi|VJ&qSvJr95LKpj=$LL`BbS=5d=(5FNG z=*5_S`Sv{P<>-@M5B-v_%crcbp}%G?&u#dewWfmU%g67ty@~s~hD-cZS|QUxv^pB3yAAd14UKWH7 zDn-?f+Qnww?kymsQaNv5+l7rP81$*RLM{0)1ms}#*SMIs3VXpl-IKUiUAy#+P6H8e z)1gtz{Oj-+AmV*|2L^(prHuf^8Um#ONli&sIp0s1OkkNXoS z8Ian_Lig+At({UT{M;G~37)M`J`Ns7o;9rgGKxz6wQt%+G9m7q5&8gRl$a@@`$# zvwq3k^T7M%UhF~qUK1tfMCxIJFHRFURv$2-y9@?e!_Ss3MzV0qc3(Zyc}RWb_y%E+ zv?bQJ9#4<>yA>(pc68A(URgeo`RBlE7@Yr31iLNp9C!W_@Q#jkl6<#jgfCcxQk;$Ftjb!_*f zAu++&r&Fu|G~YrPmqTrVQ7QVN6-L*E|E{?6OzeYjg<7G$Hkm_MVfMx6*D20;7}#f6 zoc&9Z0co1Xf!aM8s4vkGY*ctLr`J3imgN3BP{mq~7Bngw4#u)xp~?l$Pi--{4}eM= zD+Lp5hGHvCbt@dYp-rQ3uL9Y{0pNMu2FW=&ek!|h;Kh5m!;o-(wDpG`!BJzWNXb@D zPK*cRhlDuQv z4e009Xr@Jc93bHqxmLDcgp@eUhL1HR-tOJM))*e8eVd#9i#amd%X^8PNZ4BtyrHFE zklo%_@8o@$k<}-T`|@ZX5O1#KUUL&Rtbn4?=f??t<@A@ z;!m75U@*v03-7wIhqw4$D;m5mb@`19BVnAh$oL!3ifn2ZMa@SvXZA#vk+R zh$rNur2e}IHo(GEHOa+@SG$UCnk;7BCu8#>OmtT$c{pLSl$;4|O5}9oQ`ZVlmRQ)) zd>FjyzxRoFjQ{-&Ngf0G2os`Ux$w}EPYp$67dBv8$e%tjc_?BdG_oQp&I$eyHWp!RBq?9N6dPKqKtV6lcuS$ z2B;=d;FD*Hz?c-0bml^a5feGdFkvVD35Q=0Rte&wBB5P#W4pKytd(ubjAurnV+P$x zznAxF1PIg(x;KTq!3V&CQ}g7e8}Oxv+V)|E6(=t3$X6c;n9;|a-1aY}fG1l=e?R+s ziGtC7DE6sVTyH}y(_CUx6>?;6h3=zaq)|U zkz#9E>}i4|QQSZKjb`K=$sb>G?A{=?*S1$Ga)g4rs3>b3glPyw8R>A}zLIlTokSvmo^dZO9F5v;lzq{n<69bFM`gE#)+nv~J`5El*s)TDEZGDm6j?og`!(K`|F!@#NGX zUJRW>!%x=-yBCa{e0f*S*~q}9Q_jWt6<9;wlu`L7FY_1(w!YeYZR9>q`ZqZ?{So2r zS4LM!T3p2+7yq`C$@LSB9-H|5l)_Z$UF{ONfd0V1dM_y}b8^7hEBlAURFCn?KM*K& zO>y=>r{51w_PPaK%P3sMkga5odc~NAp&jrbWRtbsG2*N%b)Fm#iC?~5*czn7I(WLJoU$JK2{4BwnvSA)MmM{T zKm)>TVrPy+WYhdAuPDw@Cnws*&6}HxAGi#dzI;cM?cDazUwbDRxAmMe+OMk~cSw_p zTYkiC&oX&&zi!f_0%>&y7W)EjzuiMb)-iqH2l!d=_%OaL06Mw-q_l~c&(-K@J9+Tx z(~dWL)g4V0l9ZE3ob&S>F$m;~Pl*l&)x|BR9WIUhWDT(XHB!|S%N#_6*dI0Fg(IK7 zCl5l-Ec|jlp1ajq`xmfiFgegJye38aFGRSOE=%9Q*5~vmJfM6fC9=oN#_G2ldE}Y= z*@uG7tb?pgPN!OXhnQ-|8~(>UswsQDi9Jy-1$&!MH`RNdvGvucjW#ZVpU9&WR(ezU z?s9M0XYUt3gfj^UF!$)JSm-@ksrV%?VuANKX!o9V(9a(lGOX_AT9W5AWA6h%pNi+0 zMl-j6^gkEl@g4NGbhd1j{-Al2(Jp8F_boz*kcjW1a@IM4&fPw+DNM3~D=rW}Wp+Om zgs;5mR7(FiR~>GKLfqVYXI~os8h-xVAHpRGtXmVv1;@(g%RW0tHlG_+E0-Hy*DSs9 zjrSvsYD^CnIa+#r@_C-rHSETQGQX+KEyOxV5LM$!ar;qoXrxf!EWj(lDCBg5cl^Sr-;{$9}WV zw>(28b1HvT2!aVA=EH(-yqZ&0P;~9t;uQ8-1y&9seLo5=_vpmv)`zVF5Vf}Fs7)^o6s{zEwa-$OE)c5PFe=%&b2rjfL{KF`#(c8XT8u$(tbTgMku z^uOoF*8c>ubEB71Pv^9~A!+F{rd1ne_p9l@{lw_IHr*%*9vy-L;LmxJEPeCHCy)Bk|9|!>HrC2z~%j|y0i>~Ty z%x{bike`lTHrWIA7jQ{wCyU+*nh@-)MQ)Na{@!a#2jiNd5l=Qh3)7BRDxi8)fZNxm5+IeFtwezzDwRde7c4>%x z9SRLDhFI57((esjvC8eOm}edciyHQTNgZ4<%YLBdoh?}g-*p994$sPn3zum!Zn5eI z6)0s+5hEq)*)bzrcQu{`{1N6_gLi%_q$Dy;^Y{l&g-m@pVStO%tt+uMm)o#B8Z7)n z#gZz=X@ku=mHPo`xu>K}8Y3$S%CNJ1 zq*D5CVejJC;juchZ!B|@V!$yry3MhI=2ulOMnc`^YCH=IYq6j8@ zsRECl$mROz=i6g`+Sy5;^$nf(UUeM$CjoJrGcgo3p0zZ^M-$GPHJn{bnsk{rB4dk* zFUsP}>8091bt7#AW(s?n=(F~Oj*b9)8EFg9*$|lSw@lfe9l9&gMQmR37M}vYH~NqW zn7Tr28FQruR%Z`tFg`J~>m>D}BC{nkk4M{h>s4kc!~%ccF91MO*#baD+iwN~VJg41 zvl-BW+kNme*WYG=xYyHKCQ;k7d{nQ_{}j(*0tWnMt1sk|>7S3%+HaA)3ds*7)YW3t z;72#Si+nW5;3YOBl$pDijNi0wr8xI^kuE3t9o6H+2S+G4$(P*Vj=qz88rN-GsM0tO2yOr-`Vm- z0oow}k6DWdIdprPzm;}h`9Tqb1?nqa2D~HTK+Gq=T9FZb{AT|7_H8WaJK-fB|)qHkpJFD>PheBAgh0a-S)RV@C zDw#YBE2K7bb`Q>i|0*Q6g+Li<0gYzvbWsvjqsI}jePs0>p7-Tp&_Uf>bPmEB;*H(4 z*>G0k+s%Eww6H&TKCuU9F8WLwPcBs_h@KP5RATI?O9S0XJpMri+CHy3#2!IAY@S?* zJRWH@b+ns$oI;BuH!HP2gKJP6QX6&E9bGRxhYPG>qlor_<2-eb*O7HO=w9Cdkk-|k z_&O)_5O9AuB0c!`0bZwun6WAopJtmP5lpHFExoX__eoS;wSfWyGu^h+;~BN{!O$B$*MhF$J$Uo` z1;q}UiVF6Z?GU9xHV;f^AQM#Xr3GmHvh2$`taTQepW-FBgPln@?_&8buT=7AsglKO@MdA3BTWZsQ#WN(pEkWf%s58ZpaRKt= zJZHyvHawDM3CY^b52o;)#YHoW!c1%{+y zfiEc?K*04~5y~~0@9*+jDQqhVdSo~QW0O(Qdm_0MP2-99&X4rp?TD2NHx?>W_}A8I zC)PquxQ1_U8A7Ig$fK*+t5jg_^Bp-W!wvlo2DepHaJ7XnN->iLY9kU~s8~2M@Tu@K zJF@_jD)vy7=09?^44&JLHJs!F%%{yXVB@)0AblxgN$yHt{d0DaL!mOI3{9yMSBs)*4IXQ+ho2&?ZGOI6Xy@0kx7_L67g1XfUJu zQGVI&bJe2t4&*%&#b%n!8B^K;ex#-QrlmIKpSFW4wtqRc<2zs0 zD>RUtNB%xbdn?|ul?cE~E|vL(SY(JW*|oMY#i3924Qrz+HiS+c-oQJyde5G<^m%0c zbq^G?TO4VOO@^8{Gdo+lTk|sv83A4H?LJe4{6D1 z5jO|%fxPav(d3YxbJ!s)L0?@wdLrd*l{Ef`gvmQrZ0ofkGutH$7hn7n5#2gYL~6CIb-Z zp}#+_eVRhg6uFqNF#a^CkD#TWTl=!>`5G5Xq9c3|pJMui`9nY%&u59v#)^|JOAGRD z8L>)f?{z8yW)MvK85So+Z|PYAWi6W-1wy~sd2$KCv|r?7=wfXezgv=Wyr=uHkVDu- z@$swo2~{7q>@vU9if*3#BI;I8<=Vf0^Cu#9-5V$W)Y0*(<<{8BM%f}$Y<9F({D)1z z$OqZjCSvnG!e4745PD+%g-`TuZOqdwkmReWDZg1R;U1>0Bn>dLXOkb(jB4&XdtO9Cx*N~9Yn>W z=d!^Zozu2sLgeXXD~IhgILs9G#K<`_KfgQfvyB+~B)n-FX(MiWG;;=`0of8OVMk9~ z5mm}=F)|d-ZUi|O`RfL`zVY-6TxK;2$z`5Z2ZUokWkuVptsh!>9Lgq)sv9!yY0@~U zLslcvVT_B0TcahMJ z3Q zbI3mn|JVWweSxHpSBk}1CZa15Q`KbWVpn^Miz1@!KVXznN@Ey0{6fU{U7Ul$6uH)U zP76u-cD?=3H-qVBZHt8C^Gv2i$XCP7!CK+1p)sAuvaC3z^%Rl(L+HR?sd58VuZgEL zhizYCAa!!W<`XT>1~*^(g#teNkA=FRM)&Hu-Cryz@rbKgqCIbOpM;&hw0Z!GZV646 z@%YpicQCUpX=x|c7BP7loe0)|0_X?t(`o+Vg(28{9r*BQU8}$Us&A>eOjmWqf+TcHrf~KK3pv_{5bT>24pOubZ$TMnKQU%c4i5wQ`^gx%b_k9RN07kSDO< z|FYtK$+D%dr3{!m!0`RJ;M!X-{m;W0*2L&fpA2@NI&qN`3ZxCnfqEcPCfwDD5{)?H z!LBQ(tchM*<$al(!^ADh7NOeyp`4^nYoE${v>W4iV<|m#{eQfUKsGE|&-{vY37cvg zj5Z|?R^m8DNy1-O6d~GKFCv$43vG-VSXC9vRKx;=$^rtTJ4PdrC`GlakXb+0J!=Mn z^w`Hj4|H^bP;ee(1NsN(9RCZ zyCJ>xFaP)5UMtQ^Hscqhh2=-zO+hd->h~!T$Ru7By(C)DWo4w%MNNCNT;w~w z-~^^tTnZpjcp2UjoBnh_xI}M0DP`*34dMvTXI}N+_qFcFa!$g<{Q@6 z8Bh$r*Rv3`qO$5Rv0D}IbyA&ffnZw;VO+sM_w^vY7@o>i*y~tdmY%)8~l2? zx+^eD+b)Kmy|DN@)SCFhZ2)EDDbx>j&61oKO|gjfx}p27=!7tAriH?4gRi7o?)o1H zeQ`j0W)imrve*QxEiwZ>=Y0ELLhfS$5Azil5jtF?55B_ecN7yMQikpwDSkC17TQ=^ z6n1x|K%~WWT^wugFY_gDHd5&1KF)lBnpt>jX(y_nw5R_Xc2fyWnYl|+VDRlalY|g; zLYoOZ`*E)>PR+6FmPNHqqX%%cE2@%8@@s*E2TJNKe;;p#ZaCk^5$`)U0@RxTdtm<= z(?i%OSA1jqLfhAiy{Cx&M#0O`*@8I%vQOYZ5kSnYETx`!avi|j$NgfUVRDiE#`^sl zE&-UWO^5w(K%#;N!cVf-A?A5oi)tTmI$_M z{aWrv7t78ALIgq0Y(ec&@!<>EEB-YwHwb!&)=>6F!yL_!2#8CN($gGEAJ&f&hQ%!Y zOw5Hp@sTQTZLpMz+$fOLY{9VCCe~k9sei~-NlSRO+wy5l=gv@wY~(5aLn=RVJoFav z`Gzo$zSh%hU)NJf?2YL(a&X%etg>xJjhu3~@cr6`AL3|X0uDolw^o>2uek}p|CmYw zTXw+qOPoA1TT{Z3)mavu^yf@Q&uo0*ibObB|2`XxoUJ?Yh`^}_hS*->0HR#Khq+Pi zTRL=GYPH4(Np4=~(2f9&51>IlK<@VGU!G{qZYtmF=QBj;;}f?!Hes5GctQ|YZ=|5+ zpSq7D^7fvc$f$f4gL3ele`@_nh@(IfS6o9uSjCIOoMuE8JQ|q@1B6%Wxzv@?Klle2 zkuI$Aq^L(6h(hP`PILxN(-h#eY5HW-j<9Z|kiiS@tl_2|;Bq#5(7VNzRG|tsRKW?0 zMp6sXj3P(G=!v+YXwS;AXgQv-#dzy3tP!7fnH2a4%VtOoKgpaV|lV?qwR zU$9#2c7@v%Us~813ZlVcidH~~q1u&pRw>P24?;0oBLou7fh(N`Y;iA~y8sCQ_wH@| zdfw5t3kaN{4_F5+<9rR2KP0Z@(Ubz-uC@!Bn%^q&WoG09kTQ9f{Dsk{I$7_$g$MCGsU?#5 z6RYpK;6%0QUF3gPKdQbfoNqJ{7PX?EAGcn8xEagzR_mw$yGi1&KYwa_H4&n>c<$%= z^0Za{8U4V5o9;gYZkM#By0Q%jP7&6nk z$^23#g>=dAUKS2GSbN}hYXv=}$pkVWIqg8gI?A>pLFYcyod#-K6dl$+5i9l=8lEaE zomK8f1^iPbD6CdTlJVhWvL{=q2LQR@>>lc+@>X84xpxJB$4rluC@h}MKbxaEEBAg5=k07~IBgXxQ;8Jre`rBa4JPYWq7 zeHU>1ID#QOU5p^>k`bwtiM_Ns3gc0J6!H+)`~`k#qnxFu!bUPB%!LVB}b`q66f25*7I;6=-lrBx8Wy#0}fqQVCj>^ zFi&NBu77=js>CE}@AzZqEvaeFr26iYGU^Vjn?W-R)T-wMDl1Zqwt8$lI5 zwp6cwA5)UA_eJBTd_6JPNKU8EmSGs<8IpSkct(M(pj z*2j#Piw?D!SU}`930n@@NcQH4@z9-qVx~zP#gbRkwK{O`Tc#CakkFv1XlzK(@vpi2 zd2lBbC0;K^UH0V%q4Q090<=)2QM!AyeDasr_ESVh&L>Kzto8LPA%n^Dp>yUP>CIo7 zuTLb^P;&~A0y*CQoZwAD*fVYRB+B%vSQ{uU*pZ1${2_xC=GyGHJHO^~=Soo;>Ptq( zGI)4On7`(;rR&W@ed+=w`+85vxYwazUP|+GAH7o z6VmGx<$q2{IR{Y!4d4;0QhT^2aa7wuAt5X!&yIZ*f_AzmP=kw)jFFPZkJ$WTwLE=p z@EuL^r#UvqgM3I!>A7vk7!WFvUz2xfg+b{D4VTWZVRA3ne$1rdQsP)2u?BgaF&PsS zDMt5zr)9=w{0~D+aInO`)p|aj!t_&zb|oz3f|A~|HHG8T5PKO>q<38f!3mSYwqvx0 z$;=UpxxJm_({gS*qi6S{sm*HqrLt~Y%*lyxmx`Joo(eSNpcjm-j|}~Ps*u)K2nyKD zi~jVt0Jc)sGqbWJ9#h17ASO17z841_ft{JY;GNA<&(71SsEBriwi^ut_KZ;jPaL9G zo({R7gNu@~^`)14Xp|N49IE0+Uw!5KC3OVGe3b;R%a4k>hm!doDT0H-^8FV>{tUpz zh8Dk+qaD{|`jzF5F(cV)0K zs98G~J_IQNKPcQ28nFzh!rR)pmQQMZ2$~Yy5{97DoyVSmzst{y)^#y?l6!O2hySjN zS1Ew#S%SCkD#~vF_wqB)`-L46uy)KVrJT7Y)1eN9B6qFZ1APrjZl`Q$( zSF5o>)Io9l6OFZOIXo+%s*q>32;yG3M9_NtOuQUtqCON=jlk)DR`4xiEb#c}nta(- zj6~t*qvMhgGJ|-&l0GfWJNs~pI3ACi+I&qG4^}LjhH0x!BL|RYQYblDjmgCzroC%2)o`K(`lW9*!0%$ zG<>VL2iD*8!FLmEZU!f1Te5kDh`2OSi@|ac9!x#!@4S^H8_GK?`9U&bwD{&+mV!j~ z5D48)T|!O3pX7vVZAYrt@shxfHerFS9t~HPoh$JZ5k-T^anT2J6;n%a|ians(D@hclzaPz9^hpnY1rlfALfgs$$U+mbD zouFY~H8oDA>Hlg03g^^XJkvt0cXr>H&~p9{0JK0$zdv5DUtI%QH+&U1ev+8~T`$B` z(htVTb4Y8&wXTO*00Be@*j?vaVNs>v#zOjRUC`FBP%fMp1dxT91Ns>k8vxwYm$Y>d zX}JWzr6_U&Gyv0wf0&u&`svKfHBSF!ZST{ucv4Ww{G~ME3ctT9+!%TNp(YvPGlND5 zluiaT0)@y2(j0&zMC3X10+@Kg>u4T7X8hhf@L&G|eElP6@7!jut+3}$0R#mQaN$nf zBP|SAW;W%?xkd8xT+eP3mn{IcB)A=To>9-f6VC?Loli|ZIy1!Zof&HlF!OVLgWi{Y z=BkujzHdMm;OI#{iuPX2Wo3VSF#yg)Ta;y5Y4*4N@Mh{!*qa0X_6>&lOUKY5UB(Qm zG71f<4{Nm?r9=rLkFWq= zZ!gE%2@PN>Ci7pqpiJxrupsIwFc7$&w<*5&CE+X_JX(e*K)xO-M{i~?dbv|@R$+4U zau@vLY$<8V2Vxmdzg*K60ZVQ(E%T5|OpCIwFTZ6pfd5NkjG>bQ<24@*sv|W5XMAi7 zc*$ES{j}Dkoo06d|M|Dr_q9)&5`}34*@WhMh_w;t%_in-B0wzf)F$^dZXIxSRFfmf2$VE}0)1EE) z)m6+dkLCK^KtCg%cFkWC^8>)2T!tTQ+1_^zZnS{iE1)97uoxVYc8Qe`7avtIH9$&f zr4IQmI0z}b0lCtzNdHb1Wd-KbI}o%cCUC>XNnG*vEla$#{icI2017pUg5v+Oq>{*=QyG5&x2HKxA$Nw_4h(?j(D;tIyV(|rwP&wNQHEms3{Va@gl(fZX%K^#8p&u1pcS15tf|rQclNaPT97L#^*Cn+%H*?H zQR)0j0LbD=6l%*Nw{gI<9C-j6k!O7=kicN=FNw9kTOcIk`KZ5OE-vgEv~CPi8~sR9GLmjc+dgj+ZuS`HBKR1^hzIr=KB zTqni^{_{-0tm$i7`!@nIv!oTk+c9P!AGFjYu{Ph>E%A%;OW=XdLS`%kn&T^o z=}$NVIR12+Ok#3_?d8|r1Kj;pis3)}U1RpTMMvhI7kMU3CTR)ULdtbjo>D--#$BzF$XnJt|{@ULIuYDh-AK&&FnAYK1;FL`C3Pu?TMVN1)jhR^WO?T@8YD|IL zaDWg1H1j|GrF31NdOIHZ>SwDrtRSw};OlVxd{!7${&`Wsw0zxCu`mv>vPNTb%Yeym z&HfM>sIXy5ZY!=kL`^RFCJ%s?LjX*oQ0Qp?pBbsD<(EO~^?yeGOLP7S?H_rT=^H^= z07UxR_}v=yHWPgmy2G!|U#}_Kz9}ed>u_la1p0jAqb(}RdBQm~LB^9e0%ttkGJci- z58eTM_ltzAZ@&+ng>GetY!Fp3KHz|;>0?UnrnA-v@B+FLA_23WCYEeuOlCo&w+c3?BK) zXXv(ok|bqczRC&+G{EC(ZrLTO)P+ied2D?!nTpWD3KJF(Cp2grZCw~_ExBE(T;kdQ zLR;g>qo)?&`b##*7_r+VVNj?{PWWN8JuI*m2?mcmps5+Z?o*7p7Wld~wrGM0lw;oj znY+4KMv%p5<{4_LoT$VZgN*>xJ@&YD)I$2CC(*>4lN$(VW18I!Jn(Jcp05FS-wf=1 z6f;RbTsuhf4`O_#K9>owlb6W&u;;;4_JwtGpJpACd?{Qjkm;nJPhJbW`YcBc#ciI*rq93#9x!=OVb)L_Si^d8r%+g#vtk{n3*OTqv>uXLpsF zB)B>Ml6;^v!3S?D6MH<^kRSW|jX*H}$ha+qWdUHO?<(v-uQhG>EA9Y!jv(!#m1iaM z&}*##Rz88|*gN@2GcQw??89wqsFx;-J`eVtpF(m7=16CbF&q|i=`C+Xzj19 z$6Q%pntlGAy|NG~Ws_p@fq7A6#$;UVX2$S7tPs!KslL*|3}*7 zX9T_xkQGpibewr)f&@UlY4hgYzIY;(Wg2hhDUd{f$`L3TQ zW7oqpVaC0ih+*dT0%=U{1N!~_#TdV`AAxbKdxm4A@i(P`x z`~h&oCgA6P8~GRhtlwPLhpUZ@>6(KanB9#oPig3w&{g+PB?zjR;rJK50eFor>;3+} zVf$bF3IMAZQValYmmma~jE|3U;*YF5kfr0Y>T}&FuzdkIX@t^urxI&T%93%uq{3M~ z=)MC!Kfj-U``{!ld()QwEgwG}d<&pZ=p`BXU5>fKRAv6lWzzfyY@Pu7{45YqZ&B`h zbIi_e!vcW&;Q4{BVb5(&JEygB9eY#G@yv)qQgn-=Ft=g0ONe1QKlxL3-vVYzR;NDqaO@q?irz!#-d{3#nYye;Ixwu17 zFUioLMU%+0Efu>wZaUZ?;0kxa5bM8hohO-|mx*ly&qe`IYmx>UT?LG;q~7uM5i&`m zrqz5rvumom*{}fM?zycA()z1U0ggY7n19VW5+Ka@afeEBxBZYb{@q_i@#6l1g?9w#RrB60Tzf= zLcnbA+sKp=0_e9SjK!djF%kgH5SU!E0+Y}BU%y=tw*n8{0sP=Ufd{^g-t=x0 z<^<>^cH#`JMh(pXr842teGXv!MS;Kp%S%`Q&@TvvDgQwea{vTv-u_wOl3xaX>AeX4 z{x=9uSg9?dECFVA3^gv;Rq%xQEQNsy!#SFI;_}}Fe(^o@o_0SBT=#5D=`w`HgaDt1 z$rS>HSkB14D+KrnN_QaefD@a*bj4OaAJjqVSp2m2|iNLLU$ui*l0M`XzQbqqd z*=R&|AW9T9pn>miK#~9Jz=!=fXxS$Q8RW|@MywIJG?ul0oHRRWit)~6QR_U2<^y6Txpf^utvp@P4nfzPsLc5#v)tCDk7=rE= zAGK5!pq>46E0$B+zf48a2A{!E{}fx?2%el_s_rt*NKNI^L(|VW?0QzwO76PX3zpz$-3j#{w{aU(; zZ*oLs}S`sVNG6UMl8@8BAL&!fuDcoDyUC~*(QWuSvA0K`Rlo@L@be;710tER_; zSZ-3c`erTSqw4%nm9*$}`~Z|1^;TzP6=Q z3j)^4aNU3de47VE2Uh_2{zgC-N$|s#t1B2nQn1L)bFmMVxz@>)A6cOz0NSJ<)9s}> zzOB2~V00BR{`eZg2|V8l3hrsAG*CFRi%kCSeF?blR^-z=(8(*Z#GGqe$O#K*MLxQz zDosx6-oLr$s^`!Lj)(<|G5h106^M!FEco=>Df8~BFQSkj&!X!#Ap!a$3*41BOG;_o z1~bqWL0$mkFS`bK)w^kfT@M5Ax&-YW0h1CWT&fTlMDkc{wYjbU0Mr8V`A=#Bt>aIk za_QB2@|DgEjhn~r10J{?-WCp3WOiIbH0wemz7N9{e-B5m6}nA!F){(D-?cIEYtbxD00 ziW&zPgo!M55}e0N%OU^_cmm7dZki=ir3M5_CBFRe0IPw5kU~*B5W~8zf@@M)tmoMd zxN9bD?|GRWD7AiX9@z09)yLnviIQUGr_9VROQFC6MGTrJ0uwqVIqf1?Xq(Yl)i-aD zD>RS}CgZ!u^L(}!Fac{%Wig#HF>Q!m}KA(RGvp*ge!1FaQI!3=2X32&6`bVh8!OPzP{L^(P|Wg+yDoG7!%ZOLk?=eQ5+I_JNj!8fs1x3e0v`z1OTpxY*?zT-hX z;l@1_@{7x5T&7~s>o-Svy$_wA(9&S!31{d`ywLX7R~?k52m^+j`exk#hTk7%AG9s| z`@XO7kx}~JZNp4Ye#=LJ=lvSx zw$5evaTkl0cXRmr@sh`iW*M0uSS}Yp{FdgGSub1!xsTjNp&V!DmsS*jS16cSY~qgX zT-%u;w;-w$6COWF2bh~8-)+TO8rXAtX%Np(1G~3SvdON8Nz!xZP*Z6xKnpzXX=-tH*)_nw z|0ON+bjh&`{BhD%qy?YXrO<4a0voReUiwxtYttC`z^j1!Z?lbHeQjwK`zHi|eqb;y z`a^w@MSM7?5NJAl9 z5PdA=S>;&wZ3XO7L*|c%4!!{Jd=u)5JR8CTtT2#ekTTgqlAQ1X0ZJWV4U@8F)l+xV z0RwuGE7sB=+qId1JxSc(t~&>`cM;=v+hyxQ69Y9aNF%Sg^s;0fg69)B8ETBe6HPq_ znfOa#`hyh)^gPmZD^Juux=%o;(##*$?6rUACg9>Lf%BgS-1&dWb>e0tr9K0?$AIi2 z%*_9sR|A**Hf@)sz+e9|0j*(;8l5PcJD_mjLO`bPRtbT+cs**59KS=Xr($wzUA1WIF!7|Z~dj>g;{O}~_=z*5PCU_ug<+}EJjvE{_Irfn<6 z`4&I;3MB?zd?htK3EgI++(bkRW^PX&cc@j`^M6gdU@`Cyzd?8lr!0Fu0$&}l5CH6W z;W&P-s)c~(5z@bUyhW+sEnRT8>tSHmX6#!?uqURlZqFG8#vKIux)fIt--jvi5z7q~ zqR7Zmng=DUJA{@80{}@`76iVtu8Or%ouSKQtOcOdhb}FECY%181k{}a&Ugm!;JK+FlUq}s5vIM5&7_j{ZxacY!AtC)UR{$6Og5Bm5 zZvi%cPq$FhR#5~Xjp2*A7WPL7Fmc|6WHu90)8DIVK=XuC2_LF8DfM~pR?N(GurDFT z=gvHZ!?cU_2CORcT?!_^ZSYJ-E3YCNuncsN6M+IV&^UcJ@~cgvsyHX-0RS*P0&*c8 zV+GU6rb|Lzw_`-gRu3WAg{O*!nBXd%F}-kKS36B7aOy)v@QFJ@pW zZyJ-|&p?`)-N&;bOQ1S`U;f`8rmq4ChiQ(ePCh>~e`m&Co7DKN31ZSliv(@dB*uTr zbAk0Q1Rl7JtO!1T(uJw8jB7xY0Ovg)cAgDc}OZ{unXo7wC^vwCDixVa?Ci$q7|8onXaVEcV^ zyeb=+b;wlwv!Y9 zsE5Er1bC}Yvb`O4K7^z_jk%Qk{8;3BuzAl3T8n9LnIu-Vd@1C^7QD&Na?`MqU>q-lWvE3fBBDP26zqMq>W325h0gs$|Db%cOtV(LTVQN{!SGOJrFbfK6w_w(r;m`U}l)yg)Al@^4{ z_|oS$%PNFVWvz%e_?m&TOUW2O&DUcqjE2X~A158`S^(_^(7buf{O0Rtt7HgdtwYv}U~>~Y=ayuUPv`MGnj=MmF$MrB=A zT@KQnI>X+3?eC9wy=%RDoqejRp}U%R z-{-04oZ4rfefF^4>Gw{AQr5hXL zgi;#9ZOf&1K9upIf za3`CFF!8?wvo82`$oX&-f~`n@4dOk6<=pFXU6ZCx(T4_5dItN5_BIBv4LUgyNfSop z6bV3mIFLzdRk@4A0kopl(_2pYd+OD9#lPYH>%QUp0|FL}?wm6(ix9p7s?xKxZlQ`i zb0QH0NjTmb0OBz$ok6y+sMH4uTM zxbd+ac{uF@7eE6^>YICxCcsP<9^f!Rpb?lorl(B;lW+QG@}ocYX54b$3`WE{?_0nc zAnkTwjCMd=8kjO}i_O|f;sU5P@{q$phA}^zqe@52A8YR-6N|qca^x8Z8|LG$gy|*2 z$NM+hp=EcGlcwh1p&O_x&6^%ixd*L#unJ_rZ^I`PR28ewuzd;^xkHdqrsZ7neQ z)(-=-yU;!FFLBFm(h6*%$%LXp11T&_(T6e4oRo|y zw7Fd_`!5MDhDn_D&X#?uT*HC;kp|Ic;yLP*1K(R3_GB)}?w{>+lEqL{{@L)d4hnh5741 zo5Do^TBGm{M=LjB1x#P(V$@M;zsF_XYrU~vWuy}Y97S?92MK9C`Z zsukdGbB#G)huFx>!{zn`0@@!7g_a@aA58+U(24kGzjeqVA2aQPJOBeUN0F+XzL)<% zc_XUY-_*SS-J>Rflm8L8@p63q%NL`m9Z;e}gn$J~!#&h)N$=S@&gQO9(Te*Z$$&9~JrssVm^XDQd$@gbtMo$CNu|Se|od>M| z03ZNKL_t(809yrqxQGh>Gh+|yOOUw1q&f-buXWfKpAWkL+La3{k%Ff*;GTVHEzHPx zz!a%Tk~l^9M(*q2`c3`YJBF^wLU0 zk)m{&fB;Gr@&f?MChgl0d0?_7P{cyURy(rPvDc&0{Bdlbn`v4LAg8j=QPAnw6m9RpfZzah?obJ1!NfW18Q8qQ;8`m&CqV%@q zfA!JP-o^m7Q#meW;Wc#MXE!x8km=>CqWRtc6^+O`;q5DB{$bsBwL5yAh2##UiQy%4Eyei5w#zo>0J$1- zJL~ras@95BSA0EnAxciCMw42w$KREd_ks|S$C7m!K-D^s+e%H}XLqALLFZML1Tc1H zQFa%q%{}<*4jAP8fXqHND&WuYMV8+RFsTm#@|UL*~=Z_dS1|MSxS zCSkxN-A+k2WJadCkCqPYyz78KAUvGoCP6*nzw*!c(oH)61V(32F!tdaiXJj!422Ha zRIJve@3mBkrDT4s_7d~U?M3Dy04@v{??0^Xw`6={20xd~U*x3um$M!?I>P2SXD7<8 zKAg`WBNl5m1+>4&f_ciHcjiJmuyy$sc^0z&cqU;XL~xzJNt@K#EospAoS#ns8H9%jbXh);AnW+21%-}zxe~erT^lY9|#Wt2oF@ob$N_Z z5q*}G)UZ*y2*6-GxK3)-A}1^hsj1D+Isx6T|1nuVE=Rms%v5QF>7OP2st6wY}r!Ztt@ zMk%r$*K7jDHv~b`ou}*KNP*TQjQNt>t5go0Bft?N{wP)e1K3o}w#w}j*2YSs2C>N2 zpm_g88k7#tz@$biZauBp2$x*9&uCx77`8#1RK-Zo7)IlWBxVEC-b3&jO>L6Iaa2S@e{~B#dlu|nUE>~-^b;5W6R}Pl8 z(l?@V`-jB;nOOTTRq+>F5V100*TdtL(f5Z5h?b$SA3%z+r9&2Auqyr0t{QTBdxiF{ z1polrZ09hMNfRH|XljuUfbhB|1x|R~+ko4z!51(4#*&BTn{UO#EuFTP$S)TRmC^t5 zyG(WM#wFW%v)_lPmeKqxAvUj5*T{rNnFGWaD=GennSbW~>Uq^sU5)~0NBR+JSztb{ zWjOkIA$oED9n@i|-wDk=x^wipFazJJz270m@44O!ygxT{ky(J;LM>?!^DoR$=(00A z=pM+>p?hVEEv_gPc4AGF93iWp*Z)w38Mn@vl}2E(o0|QN?`gveDQ1Fd{igI61ZE4VG3|VAK>P= z1C<1L+lUSC{sFf@Xf6iV`kg8UuvBIr6A$bF+?+m#_U~z|xU>{Um3KQJ^wJXZ_ZFNW=+OU4Q%ZNweU|q^Yc{Sa0IK0c zt%EOD+TaQ}g%T$TK~+Del17`p;Mc!+h+azJ7aOTwu` z{g-2Ypc(?>64=FA`k$Mc)(RH4EoOd3`|Gj_m->^(^dr5>FiLIX;lK+{afM4A;CmO5 z+230vK(0GSOx>Av|IgF=&MdIwcDl~>hXyO4x9G0Xt$xM==5|tP@xn~-^Zhl{q&-*a zB!aaxENM#)n3YsXJj2TA(KP7b#vTU16Gnq241~BpgW^6R%NQyhH|ch~_bdO+T!7Or z*p4Kf!353dGil=En>>7BV-q;~4^Kz;q7Pz+7z7ia%t}UQ*HLBkvh)d8s1Yg&OEO)S z|9>>hFBh;}$ayblwPB18L>Ycr=;1ev!I!;AQ{A5h!GT8sFMl_gp!3tfSN;XK|8^2o zojJ$+j^P((fX;5WZI1qbcsqS>!xs1fEXFvC$2D=C+eM8;Soi@oshGOPk&c8w-Tg!r z3*b+Nt)n^sa3z(4!#*FjeIyClen0@lnJyzQ8l)ChaR{4(rU$Na_wi-5ynvWJ08 z*_F%>kjcCpv&Y$f@t@p}>8M`^e((RG1vs}8xcGxKHL1H0Ivp>}I6>en0k#Tyi$H%N zSOF#>OCs-w2CTC?iTS&84sF}`8&FLmw~r&24u&&q(A_D!jg(pN$06FDQ08NX$KwG9Bz z_#IsNi4Os&R%-1HDiD}>B`(|0#GqlZ`Iza3F~9!-QP$}{SJiFY6OY4iGQoz2o^oZJ z8#OkN!B;uY72M3yIng{4{lquWA3$T${__lC^ya8Y-pNAxveMyvIX#zq3fy@EwF5is zSQ@XsFcW43^cEZl$}Pcq;(Xk_lR^MVNGRfMR_rhFfYJ^K_);i><*06-J@NbHt}-2X zU6Zo@B(XKz)HII}jW%6dQH1wOZ(aGXKRVhs7JxQeeR!)e0%Npy1GfCmspwqtATHhp1^lcHRtv(z7-8~^{jKMu_Qiys1?`ODBX$TO}3?RpDA`!CLlW~!FZ`;K!3 zwr?Y=W$Iuzd%=B|=O%FY5eQX>!zi`{hNVj@UEOU7#S#k&877VaKp^Cf45K)7D0@k4 zXoRFUCdL99+JVg+rSYNR6!@!4whsTry+ixP0%(nHL*Y8$xJBK{J2>Ki^}y^-+%Q8H z0gqOWL7b(`EROB^|2ZOnL6l$ih=U52fkoBSAJ&M3PHKo#z^4B&=J(qK^Vcn08C^)* zBp`Z=p&KtiTCy`ccx>pZ@bH^gC{jxcyy7o`XS{;`zhx`%rGJ3$YgoFezI}HNX&W$E zc;86ii=4Q<8Vif-F9x3UZ2J4jx5BUx*7$MJkPQ2I#J_+qq|!;Xa7sp0*b2a4its?G zt^|nPHmNLFIY?hVt^$l{sr9<4NoBqYK>%>Od`dCM^T;FgpV`* zmMY(^WBy8hzd(N{4+xe()+3GD>o_YQ3x03K1&A7Q@IaL1=;VI{j(9q~|Mn+=Yd#kk z4jE92!XWF;pId?fs5DgN;VSGZuoZCVv2-on`A`eMj2u@&4kJFNN*f<3C?ereQ>3(1 z!w*@YGtB>w|If;LVE{O$c02nHKYS@-T^j}JXUScedkaqRj|2NS1CVLowHryATajnS zagTY^8UvKVt{!0lEmye1jXmmUDL`)6ci4nutD=N>@Gd7n)(&uDQfw8}YS97zpP7A$ z65gelpKI~~^0nJ*D4llQ!K6iJA0h$3v-RR(CzapPK`7Zg2!UZ1%iYZ3HeqsGTpFB;waoi+lMhJ>ZvDGI@A4%nnZ!Jhb(JiDeS-l2 zKxw~B13Fxy%aP9pZo0w)A1&h$&^kU_fi_=i7zC5_^#_JFh<*J2B5N?@sxPBShavs! zlP{(DnHcbEjZq=Y*i@*x;hu`JOe)SUcvl; z&&}7O#F(3JloptqrU^gO_fxo!F#sOV-kl3+zqf3qZBKnsm>R^$zbp;r&dHVg=K$A% zHfS|{2r8e`F$}^puhahQ9>j%WJVmHZyKAf*tZryZ`jNvvfMEJpwZE&MP&z#CRq+3T zeJKD=zhEnL652~|IvmB$9n`s1hmfFrye9e^Y8gb^WlAsLQi7Lo%%pF~5_1m- zYk8f}0FCi=v`cUn4Bzuw$3Lr^~fTmsF{n zh?cNB4nJdQ?fDs#b)i4Euhigmpx<&S#7t8SLjE;^8>>Z9Ttg$ce%jDI4&mNQmbn9a zjrN@Y005I-g7I~}Ld+QL(}B4T+UUUWl@qIp+sYd(n|p9~6?rkTNd!ML&I)9ZCrwPoVn}Ych^mnSD(3@d)9_YgS0ZE#yqr>`}a#MfzOL+%W=S4 zK1R$xy9@ZlJIP09tuyKvpCb^~(r?dCyV(7FU~I3+3lYyRD1^m~&qCoEXI(t^(jPc*n$N#ii|B?I*+Aobt>4FNaYETcI`%=o}?=9k-&l(a4oD(aL9z3r2Rvjj{KD5bc{*qoNbN7=MKD%LGz!re;FwQpb8YPG$&v@8I1dD&|0h1{d31<>!Kar-E01mSOCrT zB`_&zm${ulqm72k3E)JCwh8qCb)t9#@(M{SU}LL_ zZ7CP^N_DUR!t8|+67Y=?*EZg4!@EAyANm7(nf9#!IPK#zPv!8O4`lyH`rF761e|2t0Ni0H`v*2ezD>Ffti@d5-fd1E2U}t+Nm& z0#d9^NEVTO`jZBHry*WkzxG<-xv!(|-SK_k@_(yVA7-v`DB}&>b!boP3V1eGjMcVz18khK^!k<>5 z-FHL732!lfp*v5nYYzaP|ED(tI2_jQrQF!1XFC1!A(za}w=k7?Z>H)W{Qj9Z976nO|u6?s^^zJcc+)RTG5tjHX0 zw22A2^KQEi43IQ}udfrpr zK92DZE$9*7jYEh2wg9j-(SprF`x^z{eOO{%zFeLwKu0Ekr~VcVTwRp*HfW`3oK`FY`UMi`s?X)^#rTMxSI|KUj80p{yYP|^BLg!OGpFH zPm`sw6!X^+n`6>CsJkB=jbLj>n(sgU8ofUI)dCNREPuI@UGY*(@Ku6N2q;y5QfkQir4oXeWT&85>JNZHB2?s~0o)wZ4;L+~ z0$`Xhh<$$m7+K>IdXi8T2L#tZ>%i#EQDAf}u>KHY?1PV?L?Lb_%F%<-Nw=uh(PBE} zDa8Dj{xdON=Gt_#yTKv9VSh`JjBvzw1Ha1jX1=DKcLR6dMD4|7v(!g3`fAAi_Ju!e ze8}f1tbsc1U$>4{qJpKdbjZly+Et2_+-Ry{CZ=ePVsn(P`zbG=B&lmIB#<09Zv{WO zS83n70059SFNL+Q@(bUkJ~oQJj|i}Yo~vmN68ChANjCT79s<&pkme4dcQ+I?aJHP)Cqh(dJZ>q(RE zxD~knr>^5}Nw1p@1)laY>e)Z@An>LC1uX6kCN=X+opc@OyB95sy0P7HagL11OH-cB zdku;P9DEEVA^qZpK@N*koF&OQ174Lo?e8iJE2e&I36_HvU+vEc6k#}}>LUkfGYqlp z&W9G)F=<2hXl#lYf79Uv4y`+ce8qJK1Dl@+KR&v*08Fe0p7Z;}{P*1seDz;RzyLub z`^rQ!__tK&AYggxKw1R+oBS#*f$x2etdVEEy88Xt3Sf|wNu~`;Y(Z?}@Lpl7pdS!? ze`yT>^+KX@8sfcNmhr?W063@(tZ{=r)-|d5hf=O)pzA6srw#&M{Wri9pACHTZ9`uB_{ii-TfoKumP@AxHOrCYT+l`u=fNXzU&?Me*8`g=hdU zZYb;T*hv5;K|jke*N2}>)G~mYSP#7DG~ke9fa|^hJopQ;f{OweX|k30<)zPL-_Ys^ z0HQOHH2wr5lcAGrk)f6MQI>9WSV=c5D?tq%hnVGcWNHvu`B_YH(hzG9xi7m46;&WL z5XZFPQ0W3rn+bivemdZC=6Se>!~lM z1RH>S{r}op)xNQ{vRvX!T|`5wzCB6T9Y){(0tv0-Uk3c}E79-kU}Z@&UkWA`u%f7l z8C+`rIIJ6Me@VmEjR%Fr=bXjI8LeFl9MA?jIne6|p=cB^(QW`QJdI5LAAJ?L>U_d$ z(q?D~+a3o@vK{aK+_}r$x_v>bCjd_U$PM`DDOX|5#^+_GwGk7ozp``Lu3SOF}!WxK8tE6>{VKQqJ~ zuw`KQmcy#Lmeyydpy@s>U7cOICI!@s-U2-Bw}D%}4V?cMbnYDXP1_Wa8JQ%I*QBcs z{xPkl1pol&0(d?~CPT$oa|9~y`&@ub(@o^rew-UnH+(V9{~u@{w+F5RgE?_(a8bhN z1yle*zp%A4U2A6jO>B_moz9$h@!yuq=3^8;aW(ziWhZrjsZwP}iX&pIzNw&L`mWm&8^9 zYk!y1APaYDR%3cSH1+c46 zLp~M@GOOYd-u!=ExP^%`uVfTJ77qc{7EOM#jHZ3rV&G&WAmk|+045cccnn~1MqX=- z9x^jOC+Yay?-DyssZZ;8oeyEi%P zg}2N1z~Fw20gb0&pV`cipk3+eIyf1ilwJiX^+Vf!2zojlQPAlpJYJM8&;v8Cxot5tF za`+-3i+WRDwiNTjA>yBn+<-zzdr8t=sJq=p!zJLP;Q`CiTyE*4btsqBCN%yuDXfXm0dsk~8bCVs&Ws1weE33}E4Otl2bK z85Wr~(HJ+_*qz5hFGs3?GK23L#8f8$WQeb+gE`L>V*u<@ECmkAuB|F{W11vG0`S8! zxfK>V^k6yu-klHOIvEo4=)a5mYxmx8*B`ggbC(tP%vS-2Kb;uj$Cm-Oe=l?g(k2w| zFq6hD!F+q9N1;Ka3IAw8K&1mSvtYUPYT$&|hVvc9%@Xhfybu}Y`%9`5dz_NnGW6ZP z^XC@}V*IkK3JZ2UIrN-a;KhfH0)O;D;Lu+s3+z8XjLvmm_Dw#C=}iy-T+n3=0Gx8x3_g0wnMfLc>u*rr^vxuTEceMl4Gk0xV7ebPcIF-$ zHw@|7fD<%b_*l9OY&GzdVz}>dQxbj;kT$4{1Y;&moA9HpS*ru^ZL%2zY>hd_%|dZc z)^jK2Zgr#W5Je;6-_c``9fDr)Cg6ah=y$iC%Nb)pw@=e!xFt7}OpTQ#wQL2{B|r?L z7{uFy^4kIPUxxXtr39E0UJE?!rNECatN(3zo)Iu8=RCx|zfAj075oHViR;Yel_j?xuKwy4O%}yQmlL#RIkOj~h%6@s@(dr8T z07%s5?t)M zFjA^4veE_|q0^}xKV>1|50V1f<>=?VP~5|x$+XvgCs+^_29%wI4RF8~YSlflk<8_< zpGB>;C1Z4EU1C*}K8sENn3h9HmlFt*2~`xgU#?yvp7rD1Y!}uXq5_ z;iu7diEg5vgN4ETbeQU#G`Hf8~2?9|3U6Su^<9o6p49)Zh9RSdF&Vo{eG- z)`eUOga^Hw)8>_k4uBrEAIn_xb8)#aKYV6znb~D@5FD9%O*QcbgXdWZn8MQkg{#bK zjnnxr%+O+If4*>Ly>%8u;s$G!&H~6~@{4;MN1Z^vWs(9v{XTG&ixR~hhL`~vNGv0t znR69b`^#>r{QpXbee=pT!O$`c7;9?@NbYGrm%M@U6`G?~c>u)#03ZNKL_t(Ef%$Xq z!_4hBU=7bhQ2=;dm?Zf9zDGk6N`JXgYI}n7LiW4%2lkf$0Dz=<21*;O09$x005(Un z*Fouo01{FJK(%a`-2hG;0s>%I*Ef(!&L1#9MUuzF)<*$agB%&~c>xL`(Pw_z<@YC5 zCg(C@&JQpy^^wDL+-fTYaN?=Jalb{|zV|ucrf-VyVoGN%8QJE}70?b~isM_6C%h+2 z&#!gNFXQs^*Z_w>c)xOAU+5$-39c3_GQt6#^BQske*87~S_?S~z{ukPJR~J`0-9QD zHT*HlJjd>gthuiH$)$1vI67cJKmVL{fO^Gys65ve#P}C~5ZC=^8@7y6xv#v91I*8} z9U1~4HVG+)wCS{eV=LZq?$%|W!79-H69C={SW8v_hj|**YhKv`E%bwFCZK)Bi@0up znVq#du(U^qAK6Gm5}V0ZQ(T!#gSo~)#{E}H(qtc&6R=X|2g12?go8(l0WOqzKV9n+ z-S7}8C}j(Az+Hczguv(|lupoKLD88-zuUoL?p($)2=%3A0q|$30-pAiqk)r7r8H%0 zfuH{Xxb6$M`uZEt(7=IhU~^mh`=k`YwQz4g4(m!`z#wq$FdJ%*|G3cp!2T2f09gUR z=@^-q^aCcCAwZ1RD*FQuF+(unBn}|s_AAK&S}H?uCEqb4RR9L-hz0qE25`_bo)5hE?UZ8yP?h2(|A1?^Py6+?xdj{|%Q1XpL{~vRZNmR4 zhj9%h199V3lU#zge`@Q}H+=PI{|bOp&YHnFZ+|yNCqG4Fqg;8b@c9}=4#4_+0B^yv zyC~xM`2&0Td(% zn9qEi-aW#8Cxj}y3*rP2&TXaS5&R{ReSms@pU;g2P^IUeD2?U_$o6eCH(<+gltjar zffRNubow1Kr59&>YBe)`JO-Xk`Z_vd3~0UVUF3SOhQ8r4VC%WK?yhOSp9V4iVIwXS zEZrf_>0nb|o6wz^nV-A;78#}ewkLohfA=zXe^qJ!3IG5&^&{uv-%mRoV^habZ+Vx^ zX011o8~qLnYds!-oS3{Wd=n3WkU0W--1&D1`H3!hhGKCpgbrmDpfta|E8svu<*E{n1RYyp$^hhC0!0c;68`G_sR zZ=6i`9H3*}csXXj@K5;pd^Mk6DPTjB3Vl=(hiMa`=|vYO-=i@N*RkMIfhRTqTAzV; zerEgfH-GhL{|f*B(B|Dp(r?ockzUAf(tsC#FoX{CUNDuFy8y+^ zSOi9ri=IKj?wrdnFytpm?acgGSMevAov)!z+w(s1a~TSZnP2Ik^_giTbFdrm;GMvM zM^VoMK7Q7r99%vw&qUy3_u*WI91U&BNZ^E>G9&?&C2+*AzZiJl>w%41Xyf86@V(Dr z$Jfro!~FmRO4{6_zgDwRbw^S$#n-oHAgF&SYjV(IoJ*@4N*ev@Q#SLVUhB zL*{1E3{63Rs_QUtZcA7M(#(%@`uV*0)yMip7?c^ElV4Z}aEo)3QibE8PoeYf>;`go zy!IGfV{g$Nrvu+`MWhRxvX2z>oOw+5R0C-L_S*=}Xa9cYLE!8E2lxMQD;^Y`&y}M1 zO6EZ1wM_#38jVIs%F+lfO~vOI%%3#i)3^aT@Ad>C|4P3br+s{8i50S6=~mTaJc#%cCQ0z*_Vd=PIGdp~s9-_?N$j z(s~zXfX}`cxaSskvPobxUT89LCTY->c;>g&5d1X#=L!u0A^!WWEi18kpTPzX>%Q3o~KF zyGgd<9p|3A{Ec6Idi)3g0tDZWk%|A$M+4+SbEc*OFoNo$?iQ%jq(}z#mhTWIWhRdI zi7keS6oAs`FU}1Jo5BJ{FA;JZnFRjyL%;z?(qg>m|D`NG--$<@IST&Ks56 zm;dMQloS?&nWBZ7^{Rl{FdB&UN8la{q@_xRWlJzN{Zog2b15|Y%zi$CGpiS-X*Bw- z9qJTMgs(m*2Scr8a0I6CpE{XC6r5C0&qan-YnhauP9HY02#V z{>8wzKZzZWEO@iNSCcs?D?~>VhxWHdgRm`Zz$qAikeZ*Z0oMHN66}63T)$H9$J;-( zUkiSgqQ{K@P+at!_uho0`6D#ilW0#=A2^e>UI=Koh=BVj76P*Og=cD^^?3k@Y)7sU zaD!9>rqMvZ-}jkik_uq3{FuSNm;X5}& z$EFAn<-Uh(O~`W`ouu~So1aL>C@n=2t~wvM=0ZHuv*QCeWw#6Mvn^tz|6lkg&KS3C-0g+ z`_#X~=;Xip{AoZeI_phZ1)zmKjETk{y#8?BTO_jiXqHDl-d)( z8$V1Y{|_z!E<0mTi!sC2ZRhK)69NEj<4Hgz0xlq35Nk=RGHBKB4EO(+tMH43umlB7 z;ut;+{yJN3dCv(To?X}sJ~GG386yBFxo6w~c7;o+<{XQnpw?*z90{yFDE$7tw^07X zPre287SQ2-sHm0$$9V!w;|Xxks3yxJCJtLN^K-b5i+))1GxOVm+^^9|y6%4OO>0xA zM>3R3smG-d*zW>BGJoGfy%RqMK1?XB@&Zp-YhD8C`UP$5P>NghD z43IISFq$rzpREHKA}lS?+5|uG7$7TV`!*7)yC0-zib*Q>IaNTRU4DqWH7Q(Wr@Jhp z2=LpyZj#P{Efyy4n&>L?bI4CJKM(liCNQm00J!?Z4}AKA>l;vS*aDop9bh4_^ut_z z+OGmYDWxRyKhTAm&!HA`=$BuW&wur)+ux22TRtoMzgHHc2cZ<8G)&$@E6YRtUj2z!60&Ui zx5jqk)~nxYOQ@Z6Dpm>sr4$}dR=^(ErhAu|`2m2LziWy4H@0AAGnn5x+eDX64BZK`tz zjiK*%=BO#g!pvYu&)|fcA?8Aa6k52Iim5pbu28 z122_%7mvgm7_GI;I*BU}B`IA^=z*ns)E=kBDzgNEu&*@5`8V<`Od_g8V?^%1kLz^f@Pe%)RAq+&0fz0hl6(Rj=r>2Pc>+ZWW^%>BU%+J;UGe27cv%Bc~?Fpc_c>Qz#@sht! zHIh+-q+7tOYru31a%D-y%xYQzrR~RZEivD?2)I~)JPU`Bw8W;k9*Ml?Ju4E z)>h5v{XUi)5@ zmU`=33%JhQp;NEBqzt6?bE+ydSr5jU%)Skj3k$XkfJPhr&ceXZ9MAkmK7(@kZ@UJ? z=il!?t1y4uv#%1$ljy#!*F^F6Vp{Hd@iFRz4X4kpJ%BJ3*0OBo#{)WuL7Hn2n8~EMj=vm<75aUcb?oPtJ&RSIbelu)qU0_B<% zcAnODIo(IubxQBt?I9Ylzg>Y<6#%jJ-@XWCODGE{HvM;JFij1UDkLE0=fB2DUw-Jy zD-XHlnK<~E7kB{558E`TwBI(VtC82i8YnGVuGJJ55g84r_PDR^1FFeGW^4`cn{Na* zYym#=USQWfRUsjL(K_a=^HqoKTfJHCx@vs;<*1JNl@5NZPD1yk?mU5db;lnTEnqFl zOq8|>Tx?Ge#&FcHQS0onsldR~I|#+kI`E^il4i)_>n_m5q@r*!{a$Fnp1Ej4o`pIA ze$ON<05i5G2%*YnDgc}^a>3WZzCR=VKt1#Ce#rOtE3f$Xe|pQ0u-%s2uo1RxV3k7I zEl3b_G|I&SrB*1ND}W2`M#)J+%RkV4N2?|PB=A>f`p@*CyMP%@VBC47ouVoPQiaBe zXMO9et#8c|Y&q_E-msFydE}X!#MAEtYk+IIoggR*3)3F;%+Eam{Fxr{44UqG+jl9O z4+sn`yVQCMpr#%^Hvc6!=C?27O9SD1{yW0zklX5#f!gC09~m|W9=VVFeohr$ZZ04b zGf2`PCTooo^B?jQnqIVF3w&R{xn0y^>*4Km{AQc>XW=X<&w^FJcuv*}%${?fh&&Vm zRZ^7;VoIK~=sPjHWB@sKja@XEgcO5)ypO~Lln%_lW+QOrIcL7`DtzAniBZ%y7J%(p zSX;u57$jqgT!GCkl(QKuhXx-nfZ(cH0IdB1pleC{AJ~ST$)HCQn1viBE0Ji0!~jXE zkQP-dATdCC`i0;5?3wR8_z4(ae+aPC#eD=54NS^OXwmbK4rdCQl&a+h*l%<)^yL5I z-vhhusrt46ycr;Uamo0=AoIsQvm{v^C%4s+uTdXjStu1W79W$xhsi{s#aYtEV^cJ* zu1}TBL8pQXO=jIu%zMwTmul)|yezU21 z`0>DRzKJTzZoN7jD-P+!jJy=%GV|9827^KDKn-g4m5{7QmyDl9pq`|~8CSMCL7<>? z9h3$jYWkaP0`ZPH5jgzmgyaLns5@>2?z^4Bp+z1NYj_xH*&h6DkN9(9j}Ey8>kh6m zKZhanESUdX0m*arln#9*`F=3T5@hM?bN&FoUyAvSp?h`b4c|TK6F>ZS0~kX}%A%y{ z_O^u8ie7DrVl;v6Sroa2-rRzIsEbl7vVb2CR=}!E2bM`cuR9ca`y%vg20hh)neHQL z8zc&7EEY%sG_^t#)CsfYUj3gT*e?apc=80s&wkGv{wI>g6uJum#Oilwk+AQ`U3l4y z?#JJc1%O1_<@W&iTJ)Il zdy6YG?MEgEEbHv1?=YIri7(AjYFB>LuhT?Z*4PjJ47l&7H12!)z94K^>-s?%BE?sP zX)8VSiXvQhQBaf6yKW58fUFl9urAC50pLq_qvy-%z0z`H>wwdc`T55FKEJXB#mwKH z0Pec!+LJzY!#M!5f+pDYL4Q5*+U5TXpr2dx*QCf63gq)S@(}|&k-}~nfxX~vN?3m+ zLpe+U{L)MZ=A<9?{qqv4Z=tncLDkU}gyMPZx5eTA`s88mMahiUq(S!Gf>=b_vXzo`6G6e#<-F z3X`-jKV7u|GSOtTaFd64!6psh8NWk|?AnXMKHTsEsDgdrqLvp7e%}aT7#1p&TE7A! zMy>~&sdbDW18YlR2p;)%VBYw85&&y9QJ%xp!GY;JbHM$#1GisGfL>=d++(kGMI7E2 z`=lZIpmazw;#zu+NJy)O@ApAR(KEQ?+91^U`cfA?VAr55NodqvzXbeZ#^-y%Cco0; zt}sr)nxB||$6G&g@tHrJ!+ZhchT77y6_6ol|M;&DpjQC>QG=YVfUyL{`UdRRAAoIW zl#Bz^SpmN^763rtA8Y^Ik`x_Hpy8xxQIbS;R)7(IUg|o@tK1(xc_;42zn}f_li%`= zH)DKV3v;`wOk+|Y)1=v43n@I|c;Ly;C13yk+u`%nd9n{rz){h-Ey<8|NPf)VF~z=q z{GIr`iC`NfaLB664kwy)yV$WWn5z zuN?>lOcH}(hL>7DHu*~n?0%U3A72Md-?!tmkAC^A+vm|SVcjWV1!&OvlrraArQjb`5v4-7FmCUg2KL zPu_|9ijSRr&g)Nm$Ej#fw4j~&>0`fcaZRiNj{j|HMEQ+>bFHOD=`+qLC|u^50l5fq z+w5gQycz)@`;*lPi8z$VW~o?9q( z&!#uW-+`cMmufJg5vumM;}6IE6K)ui0Vb@0VdMW*GMGB@PfDlUrHwY`W1&3SEtFpnI@ki_62; z#6-L90Ur1{)!OfVkQiNS!b$pzRTH0k|JgX4X{+bJ=UiIXnT7p+ZZ7J?egxJ zTS65jlr#V7MwT#8(DLTNX?qMZzJFf;rJ+)O+&PcVDIfm)r#|s#fAB`EKXfw|XNc(! zJr;QI=fDrYLQ`@U^+THSa|( z20%=f4KGrX|4VE@YHff#X_L^g_#SB;y6cWi5c4yT%g@7#Bp{PwAdw?>onprKIDo?- zk|u>i`yKl2u_@rcw*Kg(^KbsVJ7Venh7qq#UaxZfYUc*%u>?9Vi3g+`us><_F#z`e z=}!Ytg5g!&t2Fr|Dp?ov{{>KPUqJVi4}bo=Pn`C$Kg4gGd>Gmjr1htF1jdJJLdm`L z*!PsaEf>DT6>V{I5?~OxV~Q;VAeg)re?JM$CV@dvi`!wbb_d}5A+*M5(Q@s6Ym}O5 z9B`ByN1f7j%YnubLP1dSv~hMj;xQ(xu|u&`io4+!S1pA9H{S=R7ewmLdVGv`JpiP6^{ zNXa>)li~Ne^Q7tTyPZ(&`DtM8VQLe`x%M)xR%J!D?wT`_`mQIZCk!y}V~N{_6e z+I^1IZ`k6P$O)I;A~Ec)d&#_Cm?7q$eTdS3IdUL{mj@DcFsZF|LcrDUKXSigIKa<7 zl=inABgR&hB$+7W}#`n6kWU-BJAVePgn~@;!`4dqTMrwSS{l`N+x^r}&IAt2> zp8JtAKk@19*ipBpgqvAPmov6ZQ&n+Qy>-jhZtj#{UIL5*@OSq|TJU~J1@2iW=zs;d zx_c_DRZIFsp21Cc5D@PzD1uNL_h*6f#aH9{_dfK&hhBWj|9A~_yIH9mWZzVRZypF_ zl$q=4YqVW#0dRWiuwtQ@@nr%{W2CxZ8_v96djO&LYc>T<&!#;my!3md-DmC(Ousne zUT0}rcR}>iLty$!QH^Y!O?1q-2#2p57L^|U{N6`D5}?%#%$YQ*VZ%Dt zsw}EnJ+AwZ_gGpSUa**e+pycR=-Qca!qd$C4}9=b7hiD2Lzw0>mJBcc5dZJ?i51j< zG6P6h@agr01@J(3|7d?;KL~(>+fXxZy^keO^TcER#(9f?gh5QpJ&+R7gVPE&E1~|^ zZMf^Ye?H@r?|btf{T?=K*$AbBZ)t@9D01h7XbJ%WVR3q`$G=<#Q(ckv z)MuO_Z4z_w968zPh4O`TfN(6M*~YNs^!( z1D*qS-IDNN5OHBfFe__y!8$SdaatOcszxbzS=h?^#Z1jYPHva?o3{b*x&21C6#PtV zE-DUP--4U3+;++rZ~of$1uTknVMIagt3`EfFG;Hz30PGDz!88) zLngZUSfQE5R)7J@Z#{&W9cNy6;m2Nc+(~%)E1rUdnGpNUbv3k=_u7)ErS9A>n(-i=}6Jc;pj^c^n1vKG)~xChD!C_ff_2o7M2DuZ%=L1|GbjY_7V zBsHWaqK@%_a9>0zbMciAUH;;$ajiR>%Gz;998fOO{1^Mk*9z5v*ZE`MgS}0wDgd;i zn_LtNrJJAY5!g ze_4+Z`}yer=*>O|bX<{)faU}p6hXkdi z!9vL+{b5cY^nEZ5NO~2cn55JMNf$rSy^UwOw=g-@Y`!HxVS_F4; zC9Z(91Ry@6Q`t|Z{Yq)SU;vU9a_W@g{w)D7CgNwS znzZTodP;WTtTZM$4Jq%t2A$KS^=Ix6t+`p#+q{Z3NK;w@mC}vj>xg^!4HE(^5c?g9 zJ~Y~cg+~nL$w-O(4FEnXQj*+{!-)XhH_6;mut}Ffx&mymaVaqas$}xtblMkh{Kn7b zu^6qVJ<eukH|M47h36eoUz}jAh2R)Mr*>5e-5c%rXI&{#?LywuA7r&<{RvweISh)5fW`4GSfI%x_%_cfO#uzvX!0rxE z%?FUjWb#vuMO}n!K&q2!l2s*lBJ%$k>F4Gl)`k&gMc%vRvmg5E>DzEySyp{~*7jJL z_8$-iLcx?-i857#`x~HyLTO8si9#7=RqQv~uNJ^OX@39}K`?Mr5lLGUBKSbfjg}Ds zcMMffa<2kV<`y=gHKP)R@|9nozV`LEz3&&l_qsoMF*Y5s9-Y}B0JPKU%m@so#mPYo z?)g;Rq{4q_jsS-}6*%};sQg&&uLJ}17D?mx7fIvKPg59demYFWVRs^C{JJt@zuyvW zXYBj?2#2M+sYK3w(g=)~_sJdL@@pXEOjHVlN^!i%%J9r91*s4iy@kP!zOj43j9+9x z&ow#K358o*qrmOg{`9S%{mx}~E?^OXfvs3${HrTs_-MP8O2~oEWkaJZ%K>Y_Q&Xd? znQpP_v}yuia|`88F`+t9-anU8IR4`sY(cL&dJqFv0IGj%EqGy2mQb#JlY$c@O$~d& z-FWDtfBN(V|M6QJpM#gY^I1Mo#zzN4U;H8ues3}ow3aR4tIdj>%=-h6q>Q}LNotz0 z`$78KxCNNlL<^J?ieeOh(S`72DJ&3}fPc%Rf!Tn1Ay5aT4b#j%s}JtD?!hIEYM75P zhmi@F*Wasdk4Z-sMp2N4E~4}BW_=PS9P{-Ivj(_D7!Vqc*rIpar~m0|e{mCT&uv&! z5KJ%rUlGGcpACGEHGSXG=dRYjGzu0LB{a%ieUxibKs&*(xm6VqzcjS~F^wfC=W~*N zyZR_wCfrD+U|C}Fdtpvlq1Bn`*$UtX!KS`7r12{c(0x}Y8n&RM44WvQ)uj{qP5kjU z9=h&%KYrhBZ+YEoUWmhvJrIktLF>muBz>!ExA3$f-+1E|V)|yAD$91gmPBkuTm zI{RKH2!Q!VLZS|5=oLA-q=Or6Jd?F=qSTq0rZA7K@|ubfcC+az(rm+pMnpEC=ux$uVfUh#`-Zl6QPIH#&8i4pU1 z(99pg)XTa8ksA=!n(GnRx3FzP+Y?PfAW7RpWg80)U|CeRYx^Zt2uozSf#?y*hE1q(g*;c68c;L#7C!Z z!>v#F>6zRA{JC46ir+Z-SJ518cm_$Ez@djxJ$-2@7XP#FQ+N)*KrVa*;m@hqChJrI zI7afhj1{QY_EOVVIu$$6%-0==&vYalBr$j=@eUb*kRThMf1H-f$wDnxMYu3S=fk}f z23n~_J^SIFl%ygHZVr=dd8V|hqZk1eXJ)$>eek+>+<;s10PT#G=EmYHZ-ggGB#DPg@T>WVMi0U_E`w*$97-<_H9cro&~_|z+bW%dS@Sc zK8G1gXolME3~8d#Fx2d`0oVRZDKz?)+JqU={>#0}CL*#wn{wMZO5i_p+m%w#M!^73 zEe)*{bfTaWO??TCf=)GUGm1($0hklkVa=;vd-AjKoYx$ViFLHFciu&lYh`Af^k-vD z2@HnADt@|Pe4xtwGQlO*_)^o$xdZa}K0Y5s11hP!?wn;)O_?1iEdXgL#I6H3{OrsH z_ekCsD{=yc(Z<6=cB4|EDJb7l&Z_KpdbswYZU6h4dw#rq0iDdk<|S-V!e*9~Nw=W( z+$B&JB?_ZpbMnzy*~FMrA>RAXg>WbepfJ_f%ut)KK3p?UTcY1K?*9_~yhPS5kgZ9P z@9LviXqhN~?Dp5WspfqH%0RR%2KLeU9+|t00AHnX{7e0HM5C96`x9 zg$sK*EnZhI5Erb+2t6bCOtIFNroPnrG4sphnY!pe9fIytmYpTybNXeZLkchv3e|Ae z?9PjYM%E+2&>jb}1{K~&@USiqAg1wkhylRWrhO^^%CaowM4-(rlwC`)(6)i?6a>mGo0!U@p#G$j-(2_gG+j%xUZ;<1FS_yE zYwx)6&UtitmP~C0()>!nCO}a*Hy}}@{gr}MgqN+j)%@##s(| z8D;{s42l#epis=`G$15*c>vP?m$cfm0am3eFi`IXtZTp|3h6?DBvD8Wbp>v83UURU z`QHGLW+hTLFHrumX|GXr1?2zSywN!DPlI?{H8q+0hOhwL)MObb1;d}UG<4!zf~JNt zuE$%;(C1H|#KhBI^opn9S5JB(Y(WbhaDKHjbs0pf8?HHw@qw!52SU=2Y&*sRKqkz@ z%pbc7afTrG(&u6*wglK6$ooM6Fs{K?0Kb>lCYz`Lp(i0v`l&0M=Hql1fXz>&$O-%Z zG{LEl?_Ye=h1cGC<2{S$WEN%Ldeh$ate?bFlqGD>63~~IZXezj%>J?{XL{z2F&zf zTLv~!u!{u>t-R@5|e!h`l5!?e`Auhr@8Ufuk3;-sY_EiYs zL9Q?_tEQj^0B6F%0JwP;yYKkYrB@&H^-HgR-U-h-2G4xe(P)k|Xo^iVqAc4*c0<_&Bn>SdQqH|MN7TBz0}Z z`eD8w5Sor!3#>nceE+d2`fPf~E?jfr%^$sS`u3tkkqKnqXxIeapJ(9MGqh5$V6(p@ z=1<)FoU8)oD2V~oF@GG2_PEqPH(XwG7G!y0GgSC=vy|P@rg#HZA}ZJ&PPA3=0FmcLe6wLNY#_Yv6p(Y`;me#X#2LLh^3!qFL)5oRBER@~;<-db#K`xTU7)L(^&K%$`76>t#%fq+@)yQT~otkV1kP%-~m+w*3t6p&L7ck57p+V0*M5)?=@kZ6>Vws+0mXqy%; zf+m4b8kgR@eG#+weC^`vjlTGY#~reMGmd}R;W+HrgORoye#F(V`g>pyIFv}bB%22z zU@ZWrp{)gMF9-q-q2;j!kcsc2%KULCu<||Yeh1;$e1rVHWwl~ZCQ_wMVE&PL+;Q#Q z4_$NVEw{~KHX}wa*?iaGwR9=mwxJ1KPZdf_7Gh}t+jES~-&G1_0u;GG{=o@AtJK=$qocCvwj3*lP&@nQZ0t7HKH!>s^Y zLh+E$@dRdfhP0{466h3U0T?$DOer+-l17AQG?tmcK%N)KuNuLP*Yxua>~s8^gjl~4 zK%YuAjByqL1AlA<7&T}KG&R9%EkjsELwm5$zgG&nrJ*!^M;&_1@rUA&V>aTTqYuXD zfYDgGyPt_8&bWh%BuVEZq+$)A~G^dVtwoHw`xE=#wlSW>2}0QDz@0XeIUt|tNaI4 z6|i76K|Oy=;ES9~KIwp^7gCi0-TSXM-VSfRaXS#+c=hu?^J#qHS3irJU%ZLWymkWs z@{r(O*P*vwpT4zKbLU$>eMfEhVZ3d-eV55+I%#hOM8jr!USRp`VRMZ4Zr{bN@BIMZ z|L&dJkB&clGM3u>n2^?5Cm-cnl&(4L+b2Q_+I1JoIVn<(_mkxV27TWI#DSy=&{qUP zx|ppTI4AnHc>X!?4+j2C!sb%I5Pr5& z0{-A<0SyJ>ohQIgUcmUl26QEW4jA-!1g!zOz`$_?K!76wcoJ}l90b%ev}m?B=uJ^3 zks+ipA&~$U5I~27oFQfahyrdNlk@|dQ;_iw1UZM85Fg)p z`$reN8~Ds?H}J}}SFt*ffW94(Xx4i9o{b~&v|ajxbU{D4 zXicbKW=h1o{5YVReDlfSAwIbK0QcUyi(B8j^Z18vy}wEFTWex2DTq@bq)`FQl6=jH zIVc#{oL?8$gm|RMI~_NYNJ6>zL<@V?jL}p>5GqY%9zJ0tA(3Qt10hZN_vgTGvHt)C z|C+E#3Bx8~xD+r95yMf$a4|^s|J4f^?>rF_u+0DKw`92RF5ds+wil)VE-=#Tw}9XI z9MVUGbU7ei3ZSEi@nVq2CtV7_;Q(5(r~#c#7(t3DFvw^@BY`|qkcI(C*GNf;K|%nm zg#D33>Ra3o0JP%V9mqj|3>GDVHH&u#Y7(%RpXL2hkn{5hL{kEKz6?x~*Ae7KmO^A8 z;`YD2i~sx2yC5d44+z(8Uct>T-oTYtui(?4zm9`TS8(wsF6SSzO}H&RmfS4QXf$)K zuV`cd2qkF=)cy89e)JGOet3vS_aETS|J=p9|NQ`m505Y$C8U_rFc^?i)c9Lt_ZTR* zML?uKDe(1r<}N*3Vj>=Pw`Mgg zp8=_wVC#xx${lHTE`d1ek7#FzuUs9-zNiH0#C-4ey9jH-{ab{vCas#IJZ7Jn@XEET zSRbtAy=Qt5(pYXlo0#OuhleUpw zqStAoU_Z73oFrgAjuJMFKn#qu83ouWNukdu3BF{dy)ilOkE{}M_CFM$M}m|BZ&C>@ zd~widIfat!i=#{WLF!KiZ5u{;h~dBregGSm-hhD#nO%S868&d{UY~DNP6*i6xtjo{6*XUpC_Wjx~gIjNOy|nFL8_~ZnPnEq8 z0{G7TN(Fe&3lswASquF3hxHeCh57CV9_I()6aJ@;Cqy2}I7@$8v3mqXbP5LWov)AlHLSxK@E1D9J(h8|H0Q4kZDY ziUP2(4K82c-XoG%3dnNe{J+tinaSH5(DS(CqTAL$*9s&3t zdeyA$q6gQOf&+diM37Tlkej4Z1Gde@duI|L73OdsCW$URV|CnlGaPMQJ(0XI<@dr$az!Sg{ z;JrFn0)KnYo*M82FE|7^Aqi}g__4FBpmAR)($V&F*)R%8Fd--9g7eyTBWjU*277Yb zo)paM6U3{L-l&Ws$V&)dVSoe+tVKM9EJ!Jat*?ShbwVrs0c6<^_^G^UlJ$=<<)`wF z8v!;Tw=e@(9VD5xh>|{%J0T+J_Y>d?5s3Vctd3Q$9dUGd065@gz_Zp?SR0pcAO%ev z29)q1KoW(`br*%u@%*+}!cVtHC5Be|x4>Rn?3|WJmcr3f1%BXk_BF@9soA7PrN!sNZ~+)fEy(jz^kOC!z%r$Tni%w3kfu|@bSE# z{=JFkb68+)tjWUWI!A8yQNn{v06|AxppM5|z}vR>;!9v}<$eqNMev_Sd*KA&Q~)qf z0V?fI!H3GS5w=ZZgAY%j8Y&|$*FN#{3Ah)44K6D1uYT#|iKA*e)< zl|lx9O9UqUy^;$Fd~&e8uBichQWDO9<3ccPyl<*u9Q1zB?K#QcBY^hU9Pqb-|Fn63 z;1m!5u$2T1XnsGTjIQ^d-+Olh|LC?2+$|Z{YuN4Eb|vfWxEohs=Q2~};iVu*(`=A+ zCI%JtH5qu|TZX^%0-!qPlYh{654ooR`M94{bMjd2{6|egfC!QOU>iiFPr2u$VE`1| z$eI6fQ*L$&LJZQys3Z{!gu1z!000V3NklJU?(ozz>`v0swXBxn8KcORdkqVE0Od!K)vXZ1Vh8}@$JxYxJWI@;mN`ftNc$B&&IFm~0h z_kY;fJvyfNimu+*n++*-w)}vZ_uJh#*3$nERefEVQ=i&a**~?p$*)Jl4t=^gcS$)c zKV`ajd!5+QVS~BSH}{eb4toE~YLjH8*=s{u%1wtsPDvU6xYWI1c+zr5b>1~)?c z1+TqoldxU+REV6s=75d=w!mobY6q|E?P#0qT71xZ=lgqhJ@B|qm|fQr=DClGMs7WO z|EBr;Zx!Z0s(vba=tp(8Rk8gd@k;XD0}0d0o0{15cK9g!`~GS}IPZ5cJkw!@-hz3iGl2w2#D zUBtZarzW0#@W`YlxL4SI{lLm~y&8PjY17^Oc^CI=yZqPV-6P9n4oy#7ePhb#8V;W) zMCYq{Ird8by$RuUHtkKh@W^>;WcuZh?~48&-+DrwldElJn9t_9ccu%%f6%AJ-1g?b zSajx+sN>!0CAHs_UDNdAKW01ZIO0}JRi3!Dr77@m+HLzknq2z0MY)?cJH{VaX!G?4 zQAK5V!@yYkm{AiG)-|vkxH|Jj{cm^2xFnWa>>oG6KfGJJA(sxWyZVRnHbs3px1!{v z)%m#1!~szy%@5-eXO6DErT+aVeNU`7k@)aIMx0mMA{Sz>{5<7TIrn+tq%l!0jc?eh zF$MD;eXF;hZ9>+8NSAVZwr^TL^N64MM9{`6vwrS)e&S=h;)fE?*f$9Bj<@MrwZN~T zw$)}ik8AI3|FFonpCwFHA1>avRefW(soBTXmiVMrt9yKBQ2A~HvI-YpU-O$A&Ic!y zF^%l}-l>8~4eR!HebUt?bX7*$H(|%uW(}M_(4}!$lKoj_Qok%-KYVAtJt>`R8=SG3 z>Xvayx!=i`?NhdM^SBx|`D)ubT-qAF-+uii^{_{aa?Y8lapp1K+MQ`suWQ2aeBoZ7 zByNv9dH&$>snU3q`Fx&y{x^>Kx$p5XzgMv4WX}!V^OSDasrz~N&l7CiX00i6ul_sN zmxtx4l61MZSJ8L8`xbBttryYd_VMCz?oEr?2JRm`bC0X?we?X0OF#5Z_$B$)q43!6 zTAtb8sZ!sL5p5j~77uUx{I2VM z{%$w^$+@~$%+=PHnzn!4#mnte$KNXP`?Rct$uY9(SjFE>31QhmacMixHOP#r@1x?* zj*2_268vqe1wL%;Hupi(lp{r=(h5DS(6WO0Y|^eT)mZO<8m4904NWT_w|-}uU)NhD z9}YX-a^5)C*hhyen`eBnZcX>#Vqr<0u7^}hO7ysV<;wfzmfjmMeQ)%6kIN6zW7Fcr z^U~QS_s*OxYg(DowSFLesI+g3L*LzFDnv$2E_632Ytw?8u~N1|%^UU;{XU;pyz9b| z4|LFAI0=v=6O>|9$P0hB+b5p=I_I>mDQ1PP&X*UnffX zn-lMLDi(RQevzoEHoguafjeUsu2}cr-VYah6itshS95Pt=Wo=Sl+V}Bu^;!#dtaDW zmi*)N&O42gqd%*lw&%H9Xa2y5PwrK%Gj_6zeAK=~`DBxq{gaUV)Az2JsZQT*nUg%W z_4!?%c^?jX5OmTzZqNYlN#Xs}NCeP*iZbpJU|J15+xQM^`O><+Nkva+kN6D$RC1 zbk=)Uc6^lwVe8Xe?fSLcljd+qRb7$2%6ZlPTM;e~N+z2w+MHVLloB{ph%q z`{_r@@9thXvcm4sXXkI6IOyzlB}X!+hF{qe*d;waE2UGuerK;%x#|0M+V-qp<8L}( zMA%i%HP1tPj^|w6**Y@$priSG;bNhKpR8y$b;jzFo|cJ@}K)hl+co!TKPT zcsV(vpZV(S0>d&^^@%E4zEw=4M~C9Qy{_a*nhq`XFA{k*@t0aoPcnkfE{(E}^=f`| zcGaL-)uU6A)>bmDkFmtZ)xJ~8RG^XC>X~}rMnsKzWZZJ z|Aem+6L)5u+rFlT`Cj@JujOTuYV5AH&Fq_}R^7WD9AdA91Sa~ZM_Cm{ zoiPO+lP{U}-2He;h1r|0r3}xUarZ}`AHJVuI(RC4OLpMmTk?Th;m?=N$s4&#Q}f2f2V@5y>Snp?HTFuSbWDU-;M=h2OkMf{<(SNlaEq@+~bSI6-wVC0~32EW`42r zwo08EmRh!YX3nxG&o-*blD6Yg(tp3_eDAx{UX~-ZQ_@0HciE0xdM+h=h1cUNo=NL| zNVmOLJpEnq8+$Z3=Si2_as3t*j~qH^<>-E6gV!}Hck0&Sq+1zNor7Z2htKd*kAjaM z7=FOh)NEr;f|qab*Y3xr5Aqukl-e*PFd}B~k?E=P8_%gD-#g!RIgpY!Y4Dza$M4=+ zkd>M?)^)aP+VS}*=9mE!)VZv^Q^L~{()J%%bOp2Lz3Q72l$PAw=gGI5H}5#=-nVi3 zj`V$LVZU7&U|Hq)weK>FWLIX!gYjnPDT_Amw*2vZbkUCaHiR!KJ|pAT>}gdSJo(P$ zZi{fA_x)B?3ypE#xW#{WSlGZA%kAyU*V&KgJ~OL*i&}X{wDI;)*Bnk_e>kr3*Mm>Y zsdV0D#*D(r-3Og3wtd*S4^;a81F>srT}#<=Hz+tPtWS`y3X6~T*e~{ulbZc>_pt;1 znIWaxx9QS)SIfYe)$rL36bLe@^7!wo|3pN+DNV0tr)JeJtQNK`t3K-bw%Q!%p;Xrk zCe<&^TzHh&)R-=|?H5X(A?qd2j9p?scfUBy{9GJ@Hi^C8a>>(Zme`dZFSaV+v5o5S zvq^P0VOrbMO)YC%QN7o=mnyj!@ZT33= ze*xex3j9vMUl#bw1Aj%}cb$Jgsz&dXs=!|v_$vax3-G@M{3U_E2=M1u%{SSr`g3em zwNd8(CVo}ArAd|TU<3RPs&;5$;4cOI6@kAd@HYZ}uUa$22lzVzzi-4I@mp|Edd%4; zJ%GO(@OJ_J4#3|U_?rQLec*pvHUHQJ_)7wRLFMdgk9o}hY5A*CUN#svFYqI645$G7 zZouDMwcghe_0Pqik{Kxn#ka2_7N=VpFnFRZp4Evc3{1btH0`QM587w1JK*nI; z?+5(dl;=7h;BNx_HGsb?<|%^t>^bMleB@>qxt+%tCQu%bBgU-={0&s4em=nOuRLPj zQLR54t-72IQGM@D%R5{mDo&AEE$7R-16Ikr30q}8Y-s+p9Wo#KnAdTUyyq4n(Z$C~ zq#BqWru?oa`McB=SqUyKIXUlgUhK6wuq7O0-TehBQl zA^Q`fH_Bz${LQ6D<=*mGxle*0q(K)q0#?gK=-?=L_!N9E!Si#V$0+3%9;#dijaTKm zjKn+vAU{wGP*wF-D@RqbscmVSH^;9ER6# zH4OF{f_cb8AgBk(3seE~=2!N`Os|sjtInws?v#BQkSC}YXecNc6bgz^HA9vF_qoW= zBojU=uyIYWd4azQWH0OgDYE@LD<8xTJ!t+AQ}sRMm*<9kEa~v)Q@}q5I-df28IL(e zfChqmLG^&YxGGZJ=2ci1Q ztU4j`kEl?Zu6+!63A@M*!?Ac(K}JI|2^j@5I8Nbo0`Hw)s@F~}(x7=~eP z+AVFUEad+$;P=P_o}KYr8|Wes`kP!XM6Ob%#Em#2WhRK=oK&7_r7F`zs)vcdKQ(6B z6z!ZmQTBX}_hOCHpNX5Yz`7u<-?z%3&q}MV&?<2nvKs{+XuBSmzoaT$_08?4NDcaL zQ9NG{&-cdKbb<33SP|zX{|FKIpA;D*f;CCt55n`rM;_{gTR&6o)D8KeZ@_Q0{U9c3 zf52KHh`IWH>XQ1Rje&=+poccldo@+2Z9$dS$^0r?dDS^(W6yQV9(VrBigDjUZeex2gapeZd-kZe35V4Ay%Do zT=;?@4vXq_eGO!o4}91aMf&+Ftgkv}u~-xdYwJkbDdmhcRyg;V1LG6@J@Jk;rqU;XRg`~%mJRLG>piP|sg}F?I6qCDUxhWdbE^IE za#MeX+7RuAcxltbK>kPu55!7e06Wm;_V7KHTRA2!}c0M z?^)VjI)5X|_nZ|!<=^L)mOJtt?GubSBx0gGlkbV_IctrV^j#8pAyFr^DIOVns9WNs zEc9HIJ!J*?Q2w+<+7kFqhmNb|W-BkBM@-lZ{}%8GNg*{|h9yJK8}A3|Gy z|E`F2y(IK{2YJ0Hp92Cv_!B?vhw_K*(^id`$?=JY>nhhRuE*qsF_+iKhv5s1uk>HW zV#<~=jCRO)p#6-xHt@IFt@T1afj?>Y87cU8Jiwp&AwRV8-x_@(lmmI7{3##UDRo2L zb6jE|7TPy`z`)A5#T<^lNt+>l%97`qbC7r1KJjb6r4HyFWk9*~ zPPY0ksUei=lEE|w65D7`xAeY72xSK=eP;`sGb{s#I=e# z7BpQgihLuU>9v<~hs?EK;HdKm@IblIcDb%nmb7Jq7*h@TGiNyWt4L0c$gTTU|0a*x zZeXig{uoc|mob92N}r?s5{LUDeZ*Yp@UKR>;fL+|YMD1)Zhel=125y9ktb5V+CLbx zF(+-GL_TQC%#+9qiM~xf_$+fC+79z;=A~Nhv>A@WcnrN#r}{H>Py1o~(D;{#YVa=Y z;R*ECG&lUvwXe3nr~KmmP>;vh&bdik_le1{CHf+9b8gC$d{Acw(MIUYe2<}j({A{_ z!q}?iZP?Az{D->WGuj8}y9WMx(W1Iv&4S*V<%S>EI^iBs4d1suN85*d7#H_l5S?$) z2Iz-cPMnjmin^yPpV|U>F^INCtXzMM>wK2$FV{95ZULoqJxn>N50&$X0m6M1lp!2I+L#y$G=Q=1}ALl?9Y z+MmInzK`|-%!AfG)g@ya2>$t*))jq#aj5k^>w3ubfVM?Bkp~iFPur(% z$Orv`*!f;dKVcrX|DsiAyw8YR1}&}Qg=AmXO1nfox-@co3bl6w-2pKh?VXYm*K z^=H1%(e|JZ%0Q3Dd8l*79?Fk$tQ#fR!PS5LS3>z}mV2%r!b50{p5;Nl+ZJ2&ed#3Hg|1NUp50OhZtoq>I1!c^9 zl=qSsjzJ<%v@MQBpT-)c^AGJKjGu1@Q%eQ>VxljTH?9L*Pq-G)?wiiBj=}MmZ_oyrw_d#Vln3e^ z7_eUfsr`Na&wKC=RRlJZq&&@=UJ;AW1-Jb*IgyC8`&CPrfB`vBi58Rw0> zl=t&K%9uQ0Z(Y9w^WBE;!hH5jlGXlrPRCTgD?i=Cw#S>|=Y1GASk;&y*qgWd0Am~Q zGoCZAVP3|#NF0Yn=M9vZPT)-(3gZeB&SZC>Yd ze1?3Gf7%xD>otJ!jk#Ncxm-VQ!w*~yJpaxSal=pRfcYQf!PrBeHSjaH=Q>53$=*qQ6p4$Z*+y4Syh`Q>L|zXMeD(blyPI$-Rh z57MrQo$n^x*QYMX4?mN*$4TO6<{Gpu-ec^eQxCK~`jU>Jj1i34)kj;Po9-{;_`iII zO!}j4@lfZp;DPaubMxJh`w5gWF*0_tE)jF=MdCfY#(S7QGltSXD0}Uv%tsijYlhqh z5AE-q-lzUAcwhA_{GcBA_(89W?^v|lI6rZ4kC}ObfuD5@?wynPnLJS!yodHf`={?} z?A*6vo?J8JYvhhKj`S>~?w;QJAIHD7H8xV4uFi*iHVQJzra#c<82=gf>7TR>+7Pia zmXi3H=cpsz!#GQu(Rm!>T7!4ffjtE4js2d^`P7k~1^;XKclRi%K0zrSYeRMDV=Z+4 zh`9>=n(HrPDq}d;FJdL}Gh-*OG4^WQd`E1u;sM534D7C(Asf>F0{@oQX7x!c>wMs& z1m+)(9PuD>)dc7yN9Wkg$(W<+_l8t!-reCuHge*4+`A9Y3Mxo;6Km!ihIgu(o?<-Ibc99-iHUZyd=&>_+2a! z)}vM4?9(a_@&>)GPYaj-?Z4T3#Wa1VAZY!U|J;|FRNJGrs`uTzPGhA|%ehi?%qA&0 z_X{bFxL(Tt11a%#s5siblT|?Zes8auZ?XB0AS%<&MpYSJP`NKFi}`D+UbmZ-94qZw z%@aT5fxYJKm%ib3a#$>Um)`N6$X4X% z%tIC(vSh&~Zq%N5^RRM@nTuYS8LC|8@ye;iU{$I`H|50srxy61?Y-u&WHVdbR~7g9 z>A6xKcSbX{H}bI_ z$YqXQ!Jc=L$j6v>2-g3;%n8;Y4~P-z1>*O?YsE5VqeTY9q~B9zheu-m5gYYGLKSgnPeI9agV>2jkb7Ar|OX%1#ieGzstWQ;=(fiF87m;JNWt+Yd%+Yyhw$KyvJf0xEhhs zb-6eE>Gk^8*cKGPdz(cKNVlk7$=F-R-bkNEm@h{vOtJ`NQ5o~sLcZmW`Sm_SB=SZ? zU*^DPe}!Fqh1@gZ3Es;tOVLr;QhSEQ;=lCC?Z07NU+%I*4yu0lEvoAesQF@F(*HN? z<2@7;_GfB?=ibQoICtCkk@sP5fJe%@0Wh>c-VOWI`YAH>4`9j>=TSG2Yh_W7(ruZ% z`#KC$wpnVH7?TCu-(p|x9QHUcf3M%gjJeB>x9B;#Erq`w6G6Z zY_#cY5eMwWsJ{2{{Lk2*yd>pD-W1oVBK3iB!C`U84MVH>vQ2e5XF;sPUL*2v-|w*( zdrRxS4D{I$xjFei4j-WXw}*|i=DgtBbB@S}^>_z{&Yi|uATRJi*>wUhZ4RJrc2TNN z%a-oTEz@(Gzd{If)?%mi{`UU>{+}TGM^a!U-h(keZNDe@?tpn4!{!kGrPE?725f^0 zVxg3SpOgr~JO5zFfVR`+JjTO5t@k$My4NhQlb>HT|EP^pSKr?nSh+9P;h(^N4f~3j zk{9x%-5D4fKn{q(+7Gb)Y8>2`8?`~iIRtx%BglUa_LZOm+K|s->@{uHI2=c0%F;uU z_hk&;^CUod@4@{)qDF?fyW!of5At)^p2Ar9hg;{T|B*-9BK@lq-qo)pi#*P<`d^i) zs9{51#I5?=fehoZcMyj??=5%-U#4|}^{Tzvz!_Y1qg4A{_R>-?0z`%;ag`8?Fa zUivE%ER$8k#gNk`=qXuNpAh-}n#j;~7|%adN{r5w(!n`m1HC#7wMYTTBR{Ya3;agg zW)Ikg$4uA|`G(!9Zt+rh_+xP#_zT9}fO-+;#~ih0V(;dqzd~bWjH*8$^{w@IEtN5l?TT*f~^Jb;XFPW4U|kEjfB4S9e)b^shr9;*d!HZT5FpDA5b16*&6_jTHfKjKDjysP>CB*ll`5!k2H3;hG* zriux*nubvp>9*7&leR%VyZ+Y9qh}Gwn(X9t8a7dX^EIen?G_%WF>5VEbJs?i!~2u z8jbiDjG8)jc1es6T$42p*jL++#OI}HU;Ns5MUJWu8TcS(fp_GaSof^{&iLCD@x2RT z9%BvnAN;Uq!u5x1QcX~^Igkg|2=3uA7vUbush^oUWLq4&9!h+1vcG<7Fz(_|Ree0< zg?QETrjB`fZF|oeYqcOl^PM&*Ppp^NS&f1>|Mq$JhskKTz)UQSQZ19>ZXl{jq08`A}AR z9qf$wUw4)`2cB8@*O_uZh)6>?G%KQk9& zUOEO?D2wXIi@0{H`g0{uvzT0ME_VdDQe)yt#_jw=GxfL&q07iU$hC3gz8~W)N$0-@ ztb1&f0qwyyFvFreKBUdBeeE27cd_1_sjAgpu@C%1@28L2pmT7&ANj#i5fX7lKtDs* zA`U~}=Dvt`jTS#q)yDMtyW!vHdZmGdRPC^(%KNh?MFMX~4Xk|~7mKC$O61(2b_>PA zT1$cch*e(OQ&r7L;i_P@-1Gc5nlzW2Dg`!CZc)+7W8G)Ub9_dfOt> zWSu9|3xyc`qy$9ZuiK{pNM#WCG-F>m4{Fhc&<|A_b?)-0T~>jg*1(>1P59*7*hjC9 zI!0y0g9^}18PrpYqlcj&`hOfyd$v&~8-Vz8%;!Jj-O*OPJvKk~lS`t;=!zO+9qg?( zMy~IP@x8In?TtCSu(#XlEPSH^}r|^rsKN7`0XYa^}B`pRbGwV^_rf?M%GqJz~9yF`oTp ztW&dg!TF4O0BZuQ4;b}K?6p5c9cdEADD(2z#&=brS7qojmGvAx%UTHQXq6!_~)jcT0 zgxs6;f9R#w^K(E)dGOp4-M7MeBI|PKQK9^SN7v+8Lo#}6h@bTv>P7d(v39^d6xM8e zC$r}IKK6m^j5)w-am0bk`u&N$8SLu;E(^>{=G}JA1%o;3p%=MbRD(vTC500+QuqTJ(6B~PAdMBsA z7RnmqGluE@MD%tL5BsfY-|WTV7(7Q_NUUv9=d>|BK6^NfelhBf_0Bf?AK~8e#`wTl z8M4XIwMxj3^5IzYBi4U)j|}_eK-33$;yKERa@4&ulqvaU|3&N1?t^D%V|>V}6!ddl z&rLm1Mo)Xhs6)mB+75k!{-wvHOn{yBMcr%1o*?G`tZR2Vl>omeX^fAarF`(EPjwFq zb;RBY*3~)2I~FZ_<|XWBrLA&KZOh~dd@ye4{x0?~q3;TIw=wR=7yE7@)2@gOcwgV5 zYg5!M`(mhD67BP=pRKk--5B;yy;EMaEBZC-o{(Ed1G{lV?~)m{unW2m0P^88^ex&t zeU`C|y(z3Av%iVHOkd-XHCgs*GCo0eXThh*829<(hjHk&A`hqq5*KrE#uwU)QKO~K zdCutPd7;+dX1@jJy`LZR<r7OR>m008}n*=apWXz&n zGA5AtS?jXb^-Saf+p+#u&TX8(JC7P+CDb>AVcYAmuEv6n;`2J38-sBx{@wF0Tvvkn zRs?EUE~s0P3acb#uPIL1sNBf7hxhZ@Y~`ga7)QPo#XPJCsQkZ>hrNIa;(yccM&6ZhxZ{5(SAr>a}A~M(Z?BExi&#hGm#(VF~-2} zkqg7O61i@09ik62e)3t`5dDolK|f~x0DdwNuRWeU-*ojT^iWxJKP6%p?VG(q=q1y> z&e+a4qWy(^a_miQ`2NUe&)18-qsL{OM{FYwK2IN}ztJBk1HI-TUUNNyZ)7}szR|)o z`V0Bxn!>&t@<3jRpX(N5kQyyG z(87TPy`}1P0eo?NCw|V&SjxJNo)>cAHJu~)qX))&%l&81*A5NEI%&~8Nys&*FUAVqJ zLe^~|(?`V3bp<`fT4%(;7|U2lUFbE+bKOkD!-CI0&(Gj(Al?~%r44ayWdAq&p0o_u zL)_)`6X1-*`cVAkXN~Ww>aY@!Z5Zyog!TL$Y~=yg%^SeR8dwb+ZH#;WGe^|aT~IH# cS1Jir*0`q>iMQS7DGuLxjrZ_gK0}uOA0G78-v9sr literal 0 HcmV?d00001 diff --git a/Disco.ClientBootstrapper/InstallBootstrapper.vbs b/Disco.ClientBootstrapper/InstallBootstrapper.vbs new file mode 100644 index 00000000..1f120736 --- /dev/null +++ b/Disco.ClientBootstrapper/InstallBootstrapper.vbs @@ -0,0 +1,62 @@ +Option Explicit + +Dim objFSO, objReg, objShell, objFile +Dim SourceFolder, DestinationFolder, GroupPolicyScriptLocation +Const HKLM = &H80000002 + +DestinationFolder = "C:\Disco" + +Set objFSO = CreateObject("Scripting.FileSystemObject") +Set objReg = GetObject("winmgmts:root\default:StdRegProv") +Set objShell = CreateObject("WScript.Shell") + +If objFSO.FolderExists(DestinationFolder) Then + Call objFSO.DeleteFolder(DestinationFolder) +End If +Call objFSO.CreateFolder(DestinationFolder) +SourceFolder = Mid(WScript.ScriptFullName, 1, InStrRev(WScript.ScriptFullName, "\")) +Call objFSO.CopyFile(SourceFolder & "*.*", DestinationFolder, True) + +GroupPolicyScriptLocation = objShell.ExpandEnvironmentStrings("%WinDir%\System32\GroupPolicy\Machine\Scripts\scripts.ini") +If objFSO.FileExists(GroupPolicyScriptLocation) Then + Call objFSO.DeleteFile(GroupPolicyScriptLocation) +End If +Set objFile = objFSO.CreateTextFile(GroupPolicyScriptLocation, True, True) +Call objFile.WriteLine() +Call objFile.WriteLine("[Startup]") +Call objFile.WriteLine("0CmdLine=C:\Disco\Disco.ClientBootstrapper.exe") +Call objFile.WriteLine("0Parameters=/Uninstall") +Call objFile.Close() +Set objFile = Nothing + +Set objFSO = Nothing + +Call objReg.SetDWORDValue(HKLM, "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "HideStartupScripts", 0) +Call objReg.SetDWORDValue (HKLM, "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "RunStartupScriptSync", 1) + +Call objReg.CreateKey(HKLM, "SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Shutdown") +Call objReg.CreateKey(HKLM, "SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Startup\0\0") +Call objReg.SetStringValue(HKLM, "SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Startup\0", "GPO-ID", "LocalGPO") +Call objReg.SetStringValue(HKLM, "SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Startup\0", "SOM-ID", "Local") +Call objReg.SetStringValue(HKLM, "SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Startup\0", "FileSysPath", "C:\WINDOWS\System32\GroupPolicy\Machine") +Call objReg.SetStringValue(HKLM, "SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Startup\0", "DisplayName", "Local Group Policy") +Call objReg.SetStringValue(HKLM, "SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Startup\0", "GPOName", "Local Group Policy") +Call objReg.SetDWORDValue(HKLM, "SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Startup\0", "PSScriptOrder", 1) +Call objReg.SetStringValue(HKLM, "SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Startup\0\0", "Script", DestinationFolder & "\Disco.ClientBootstrapper.exe") +Call objReg.SetStringValue(HKLM, "SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Startup\0\0", "Parameters", "/Uninstall") +Call objReg.SetDWORDValue(HKLM, "SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Startup\0\0", "IsPowershell", 0) +Call objReg.SetBinaryValue(HKLM, "SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Startup\0\0", "ExecTime", array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)) + +Call objReg.CreateKey(HKLM, "SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Shutdown") +Call objReg.CreateKey(HKLM, "SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Startup\0\0") +Call objReg.SetStringValue(HKLM, "SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Startup\0", "GPO-ID", "LocalGPO") +Call objReg.SetStringValue(HKLM, "SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Startup\0", "SOM-ID", "Local") +Call objReg.SetStringValue(HKLM, "SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Startup\0", "FileSysPath", "C:\Windows\System32\GroupPolicy\Machine") +Call objReg.SetStringValue(HKLM, "SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Startup\0", "DisplayName", "Local Group Policy") +Call objReg.SetStringValue(HKLM, "SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Startup\0", "GPOName", "Local Group Policy") +Call objReg.SetDWORDValue(HKLM, "SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Startup\0", "PSScriptOrder", 1) +Call objReg.SetStringValue(HKLM, "SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Startup\0\0", "Script", DestinationFolder & "\Disco.ClientBootstrapper.exe") +Call objReg.SetStringValue(HKLM, "SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Startup\0\0", "Parameters", "/Uninstall") +Call objReg.SetBinaryValue(HKLM, "SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Startup\0\0", "ExecTime", array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)) + +Set objReg = Nothing \ No newline at end of file diff --git a/Disco.ClientBootstrapper/InstallLoop.cs b/Disco.ClientBootstrapper/InstallLoop.cs new file mode 100644 index 00000000..fcddfbdf --- /dev/null +++ b/Disco.ClientBootstrapper/InstallLoop.cs @@ -0,0 +1,55 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading; + +namespace Disco.ClientBootstrapper +{ + class InstallLoop + { + + public Thread LoopThread; + public delegate void CompleteCallback(); + private CompleteCallback mCompleteCallback; + private string InstallLocation; + private string WimImageId; + + public InstallLoop(string InstallLocation, string WimImageId = null) + { + this.InstallLocation = InstallLocation; + this.WimImageId = WimImageId; + } + + public void Start(CompleteCallback Callback) + { + this.mCompleteCallback = Callback; + this.LoopThread = new Thread(new ThreadStart(loopHost)); + this.LoopThread.Start(); + } + private void loopHost() + { + try + { + + //Program.Status.UpdateStatus(null, null, "Testing UI"); + //Program.SleepThread(5000, false); + Interop.InstallInterop.Install(this.InstallLocation, this.WimImageId); + if (this.mCompleteCallback != null) + { + this.mCompleteCallback.BeginInvoke(null, null); + } + } + catch (Exception ex) + { + if (ex.GetType() == typeof(ThreadAbortException)) + return; + if (ex.GetType() == typeof(ThreadInterruptedException)) + return; + Program.WriteAppError(ex); + throw; + } + } + + } +} diff --git a/Disco.ClientBootstrapper/Interop/CertificateInterop.cs b/Disco.ClientBootstrapper/Interop/CertificateInterop.cs new file mode 100644 index 00000000..86711850 --- /dev/null +++ b/Disco.ClientBootstrapper/Interop/CertificateInterop.cs @@ -0,0 +1,180 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Security.Cryptography.X509Certificates; +using System.Text.RegularExpressions; +using System.IO; + +namespace Disco.ClientBootstrapper.Interop +{ + public static class CertificateInterop + { + private static List _tempCerts; + public static void RemoveTempCerts() + { + if (_tempCerts != null && _tempCerts.Count > 0) + { + Remove(StoreName.My, StoreLocation.LocalMachine, _tempCerts); + Remove(StoreName.CertificateAuthority, StoreLocation.LocalMachine, _tempCerts); + Remove(StoreName.Root, StoreLocation.LocalMachine, _tempCerts); + } + } + public static void AddTempCerts() + { + if (_tempCerts == null) + _tempCerts = new List(); + + var inlineCertificateLocation = Program.InlinePath.Value; + + // Root Certificates + try + { + var CertFiles = Directory.EnumerateFiles(inlineCertificateLocation, "WLAN_Cert_Root_*.*").ToList(); + if (CertFiles.Count > 0) + { + foreach (var certFile in CertFiles) + { + var cert = new X509Certificate2(File.ReadAllBytes(certFile), "password"); + var result = Add(StoreName.Root, StoreLocation.LocalMachine, cert); + if (result) + { + if (Path.GetFileNameWithoutExtension(certFile).ToLower().Contains("temp")) + _tempCerts.Add(cert.SerialNumber); + Program.Status.UpdateStatus(null, null, string.Format("Added Root Certificate: {0}", cert.ShortSubjectName())); + Program.SleepThread(500, false); + } + } + } + } + catch (Exception) + { + throw; + } + + // Intermediate Certificates + try + { + var CertFiles = Directory.EnumerateFiles(inlineCertificateLocation, "WLAN_Cert_Intermediate_*.*").ToList(); + if (CertFiles.Count > 0) + { + foreach (var certFile in CertFiles) + { + var cert = new X509Certificate2(File.ReadAllBytes(certFile), "password"); + var result = Add(StoreName.CertificateAuthority, StoreLocation.LocalMachine, cert); + if (result) + { + if (Path.GetFileNameWithoutExtension(certFile).ToLower().Contains("temp")) + _tempCerts.Add(cert.SerialNumber); + Program.Status.UpdateStatus(null, null, string.Format("Added Intermediate Certificate: {0}", cert.ShortSubjectName())); + Program.SleepThread(500, false); + } + } + } + } + catch (Exception) + { + throw; + } + + // Host/Personal Certificates + try + { + var CertFiles = Directory.EnumerateFiles(inlineCertificateLocation, "WLAN_Cert_Personal_*.*").ToList(); + if (CertFiles.Count > 0) + { + foreach (var certFile in CertFiles) + { + var cert = new X509Certificate2(File.ReadAllBytes(certFile), "password", X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet); + var result = Add(StoreName.My, StoreLocation.LocalMachine, cert); + if (result) + { + if (Path.GetFileNameWithoutExtension(certFile).ToLower().Contains("temp")) + _tempCerts.Add(cert.SerialNumber); + Program.Status.UpdateStatus(null, null, string.Format("Added Host Certificate: {0}", cert.ShortSubjectName())); + Program.SleepThread(500, false); + } + } + } + } + catch (Exception) + { + throw; + } + } + + public static string ShortSubjectName(this X509Certificate2 Certificate) + { + string s = Certificate.Subject; + return s.Substring(s.IndexOf("=") + 1, s.IndexOf(",") - s.IndexOf("=") - 1); + } + + public static bool Add(StoreName StoreName, StoreLocation StoreLocation, X509Certificate2 Certificate) + { + var certStore = new X509Store(StoreName, StoreLocation); + bool certAlreadyExists = false; + certStore.Open(OpenFlags.ReadWrite); + foreach (var cert in certStore.Certificates) + { + if (cert.SerialNumber.Equals(Certificate.SerialNumber)) + { + certAlreadyExists = true; + break; + } + } + if (!certAlreadyExists) + { + certStore.Add(Certificate); + } + certStore.Close(); + return !certAlreadyExists; + } + + public static bool Remove(StoreName StoreName, StoreLocation StoreLocation, List RegexMatches, string SerialException) + { + var certStore = new X509Store(StoreName, StoreLocation); + var removeCerts = new List(); + certStore.Open(OpenFlags.ReadWrite); + foreach (var cert in certStore.Certificates) + { + if (!cert.SerialNumber.Equals(SerialException)) + { + foreach (var subjectRegex in RegexMatches) + { + if (subjectRegex.IsMatch(cert.Subject)) + { + removeCerts.Add(cert); + break; + } + } + } + } + foreach (var cert in removeCerts) + { + certStore.Remove(cert); + } + certStore.Close(); + return (removeCerts.Count > 0); + } + public static bool Remove(StoreName StoreName, StoreLocation StoreLocation, List CertificateSerials) + { + var certStore = new X509Store(StoreName, StoreLocation); + var removeCerts = new List(); + certStore.Open(OpenFlags.ReadWrite); + foreach (var cert in certStore.Certificates) + { + if (CertificateSerials.Contains(cert.SerialNumber)) + { + removeCerts.Add(cert); + } + } + foreach (var cert in removeCerts) + { + certStore.Remove(cert); + } + certStore.Close(); + return (removeCerts.Count > 0); + } + + } +} diff --git a/Disco.ClientBootstrapper/Interop/InstallInterop.cs b/Disco.ClientBootstrapper/Interop/InstallInterop.cs new file mode 100644 index 00000000..a615465f --- /dev/null +++ b/Disco.ClientBootstrapper/Interop/InstallInterop.cs @@ -0,0 +1,525 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using System.Diagnostics; +using System.Runtime.InteropServices; +using Microsoft.Win32; +using System.IO; +using System.Threading; + +namespace Disco.ClientBootstrapper.Interop +{ + public static class InstallInterop + { + [DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Unicode)] + static extern bool MoveFileEx(string lpExistingFileName, string lpNewFileName, MoveFileFlags dwFlags); + [Flags] + enum MoveFileFlags + { + MOVEFILE_REPLACE_EXISTING = 0x00000001, + MOVEFILE_COPY_ALLOWED = 0x00000002, + MOVEFILE_DELAY_UNTIL_REBOOT = 0x00000004, + MOVEFILE_WRITE_THROUGH = 0x00000008, + MOVEFILE_CREATE_HARDLINK = 0x00000010, + MOVEFILE_FAIL_IF_NOT_TRACKABLE = 0x00000020 + } + + private static void Install(string RootFilesystemLocation, RegistryKey RootRegistryLocation, string FilesystemInstallLocation, string VirtualRootFilesystemLocation) + { + var SourceLocation = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); + var InstallLocation = Path.Combine(RootFilesystemLocation, FilesystemInstallLocation); + var BootstrapperCmdLinePath = Path.Combine(VirtualRootFilesystemLocation, FilesystemInstallLocation, "Disco.ClientBootstrapper.exe"); + + var GroupPolicyScriptsIniLocation = Path.Combine(RootFilesystemLocation, "Windows\\System32\\GroupPolicy\\Machine\\Scripts\\scripts.ini"); + var GroupPolicyScriptsIniBackupLocation = Path.Combine(RootFilesystemLocation, "Windows\\System32\\GroupPolicy\\Machine\\Scripts\\disco_scripts.ini"); + + // Create file system Location + #region "Create File System Location" + Program.Status.UpdateStatus(null, null, "Creating Installation Location"); + Program.SleepThread(500, false); + if (Directory.Exists(InstallLocation)) + { + // Try and Delete Directory + try + { + Directory.Delete(InstallLocation, true); + } + catch (Exception ex) + { + throw new IOException(string.Format("Unable to delete folder: ", InstallLocation), ex); + } + } + if (!Directory.Exists(InstallLocation)) + { + var installDir = Directory.CreateDirectory(InstallLocation); + installDir.Attributes = installDir.Attributes | FileAttributes.Hidden; + } + #endregion + + // Copy files to file system location + #region "Copy to File System" + Program.Status.UpdateStatus(null, null, "Copying Files"); + Program.SleepThread(500, false); + + // Copy Bootstrapper + // ie: Executing Assembly + File.Copy(System.Reflection.Assembly.GetExecutingAssembly().Location, Path.Combine(InstallLocation, "Disco.ClientBootstrapper.exe")); + + foreach (var file in Directory.EnumerateFiles(SourceLocation)) + { + var fileName = Path.GetFileName(file); + + // Only Copy Certain Files + + // Copy Wireless Certificates + if (fileName.StartsWith("WLAN_Cert_Root_", StringComparison.InvariantCultureIgnoreCase) || + fileName.StartsWith("WLAN_Cert_Intermediate_", StringComparison.InvariantCultureIgnoreCase) || + fileName.StartsWith("WLAN_Cert_Personal_", StringComparison.InvariantCultureIgnoreCase)) + File.Copy(file, Path.Combine(InstallLocation, fileName)); + + // Copy Wireless Profiles + if (fileName.StartsWith("WLAN_Profile_", StringComparison.InvariantCultureIgnoreCase) && + fileName.EndsWith(".xml", StringComparison.InvariantCultureIgnoreCase)) + File.Copy(file, Path.Combine(InstallLocation, fileName)); + + } + #endregion + + // Backup & Create Group Policy Scripts.ini + #region "Group Policy Scripts.ini" + Program.Status.UpdateStatus(null, null, "Creating Group Policy Script Entry"); + Program.SleepThread(500, false); + // Backup + if (!File.Exists(GroupPolicyScriptsIniBackupLocation)) + { + if (File.Exists(GroupPolicyScriptsIniLocation)) + { + File.Move(GroupPolicyScriptsIniLocation, GroupPolicyScriptsIniBackupLocation); + } + } + + // Create + if (File.Exists(GroupPolicyScriptsIniLocation)) + File.Delete(GroupPolicyScriptsIniLocation); + if (!Directory.Exists(Path.GetDirectoryName(GroupPolicyScriptsIniLocation))) + Directory.CreateDirectory(Path.GetDirectoryName(GroupPolicyScriptsIniLocation)); + using (var scriptsIniStream = File.Open(GroupPolicyScriptsIniLocation, FileMode.Create, FileAccess.Write)) + { + using (var scriptsIniStreamWriter = new StreamWriter(scriptsIniStream, Encoding.Unicode)) + { + scriptsIniStreamWriter.Write(string.Format("[Startup]{0}0CmdLine={1}{0}0Parameters=/AllowUninstall", Environment.NewLine, BootstrapperCmdLinePath)); + scriptsIniStreamWriter.Flush(); + } + } + #endregion + + // Backup & Create Group Policy Registry + #region "Group Policy Registry" + Program.Status.UpdateStatus(null, null, "Creating Group Policy Registry Entries"); + Program.SleepThread(500, false); + // Backup Scripts + using (var regGroupPolicy = RootRegistryLocation.OpenSubKey("Microsoft\\Windows\\CurrentVersion\\Group Policy", true)) + { + if (regGroupPolicy != null && regGroupPolicy.GetSubKeyNames().Contains("Scripts") && !regGroupPolicy.GetSubKeyNames().Contains("Disco_Scripts")) + { + RegistryUtilities.RenameSubKey(regGroupPolicy, "Scripts", "Disco_Scripts"); + } + } + + // Create Scripts + RootRegistryLocation.CreateSubKey("Microsoft\\Windows\\CurrentVersion\\Group Policy\\Scripts\\Shutdown").Dispose(); + using (var regScriptsStartup = RootRegistryLocation.CreateSubKey("Microsoft\\Windows\\CurrentVersion\\Group Policy\\Scripts\\Startup\\0")) + { + regScriptsStartup.SetValue("GPO-ID", "LocalGPO", RegistryValueKind.String); + regScriptsStartup.SetValue("SOM-ID", "Local", RegistryValueKind.String); + regScriptsStartup.SetValue("FileSysPath", Path.Combine(Environment.SystemDirectory, "GroupPolicy\\Machine"), RegistryValueKind.String); + regScriptsStartup.SetValue("DisplayName", "Local Group Policy", RegistryValueKind.String); + regScriptsStartup.SetValue("GPOName", "Local Group Policy", RegistryValueKind.String); + regScriptsStartup.SetValue("PSScriptOrder", 1, RegistryValueKind.DWord); + using (var regScriptsStartup0 = regScriptsStartup.CreateSubKey("0")) + { + regScriptsStartup0.SetValue("Script", BootstrapperCmdLinePath, RegistryValueKind.String); + regScriptsStartup0.SetValue("Parameters", "/AllowUninstall", RegistryValueKind.String); + regScriptsStartup0.SetValue("IsPowershell", 0, RegistryValueKind.DWord); + regScriptsStartup0.SetValue("ExecTime", new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, RegistryValueKind.Binary); + } + } + RootRegistryLocation.CreateSubKey("Microsoft\\Windows\\CurrentVersion\\Group Policy\\State\\Machine\\Scripts\\Shutdown").Dispose(); + + // Backup Scripts State + using (var regGroupPolicy = RootRegistryLocation.OpenSubKey("Microsoft\\Windows\\CurrentVersion\\Group Policy\\State\\Machine", true)) + { + if (regGroupPolicy != null && regGroupPolicy.GetSubKeyNames().Contains("Scripts") && !regGroupPolicy.GetSubKeyNames().Contains("Disco_Scripts")) + { + RegistryUtilities.RenameSubKey(regGroupPolicy, "Scripts", "Disco_Scripts"); + } + } + + // Create Scripts State + using (var regStateScriptsStartup = RootRegistryLocation.CreateSubKey("Microsoft\\Windows\\CurrentVersion\\Group Policy\\State\\Machine\\Scripts\\Startup\\0")) + { + regStateScriptsStartup.SetValue("GPO-ID", "LocalGPO", RegistryValueKind.String); + regStateScriptsStartup.SetValue("SOM-ID", "Local", RegistryValueKind.String); + regStateScriptsStartup.SetValue("FileSysPath", Path.Combine(Environment.SystemDirectory, "GroupPolicy\\Machine"), RegistryValueKind.String); + regStateScriptsStartup.SetValue("DisplayName", "Local Group Policy", RegistryValueKind.String); + regStateScriptsStartup.SetValue("GPOName", "Local Group Policy", RegistryValueKind.String); + regStateScriptsStartup.SetValue("PSScriptOrder", 1, RegistryValueKind.DWord); + using (var regStateScriptsStartup0 = regStateScriptsStartup.CreateSubKey("0")) + { + regStateScriptsStartup0.SetValue("Script", BootstrapperCmdLinePath, RegistryValueKind.String); + regStateScriptsStartup0.SetValue("Parameters", "/AllowUninstall", RegistryValueKind.String); + regStateScriptsStartup0.SetValue("ExecTime", new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, RegistryValueKind.Binary); + } + } + #endregion + + // Set Registry Startup Environment Policies + #region "Registry Startup Policies" + Program.Status.UpdateStatus(null, null, "Creating Startup Policy Registry Entries"); + Program.SleepThread(500, false); + using (var regWinlogon = RootRegistryLocation.OpenSubKey("Microsoft\\Windows NT\\CurrentVersion\\Winlogon", true)) + { + regWinlogon.SetValue("HideStartupScripts", 0, RegistryValueKind.DWord); + regWinlogon.SetValue("RunStartupScriptSync", 1, RegistryValueKind.DWord); + } + #endregion + } + + public static void Install(string InstallLocation, string WimImageId = null) + { + Program.Status.UpdateStatus("Installing Bootstrapper", "Starting", "Please wait...", false); + + if (string.IsNullOrWhiteSpace(InstallLocation)) + InstallLocation = Path.Combine(Path.GetPathRoot(Environment.SystemDirectory), "Disco"); + + if (InstallLocation.EndsWith(".wim", StringComparison.InvariantCultureIgnoreCase)) + { + // Offline File System (WIM) + Program.Status.UpdateStatus("Installing Bootstrapper (Offline)", "Installing", string.Format("Install Location: {0}", InstallLocation)); + Program.SleepThread(1000, false); + + // Mount WIM + int wimImageIndex = 0; + using (var wim = new Interop.WIMInterop.WindowsImageContainer(InstallLocation, WIMInterop.WindowsImageContainer.CreateFileMode.OpenExisting, WIMInterop.WindowsImageContainer.CreateFileAccess.Write)) + { + if (WimImageId == null) + WimImageId = "1"; + if (!int.TryParse(WimImageId, out wimImageIndex)) + { + Program.Status.UpdateStatus(null, "Analysing WIM", string.Format("Looking for Image Name: {0}", WimImageId)); + Program.SleepThread(500, false); + for (int i = 0; i < wim.ImageCount; i++) + { + var wimImageInfo = new System.Xml.XmlDocument(); + using (var wimImage = wim[i]) + wimImageInfo.LoadXml(wimImage.ImageInformation); + var wimImageInfoName = wimImageInfo.SelectSingleNode("//IMAGE/NAME"); + if (wimImageInfoName != null && wimImageInfoName.InnerText.Equals(WimImageId, StringComparison.InvariantCultureIgnoreCase)) + { + wimImageIndex = i + 1; + Program.Status.UpdateStatus(null, "Analysing WIM", string.Format("Found Image Id '{0}' at Index {1}", WimImageId, wimImageIndex)); + Program.SleepThread(500, false); + break; + } + } + } + } + if (wimImageIndex == 0) + { + Program.Status.UpdateStatus(null, "Error", string.Format("Unable to load WIM Image Id: {0}", WimImageId)); + Program.SleepThread(5000, false); + return; + } + + // Get Temp Path + var wimMountPath = Path.Combine(Path.GetTempPath(), "DiscoClientBootstrapperWimMount"); + if (Directory.Exists(wimMountPath)) + Directory.Delete(wimMountPath, true); + Directory.CreateDirectory(wimMountPath); + + var wimTempMountPath = Path.Combine(Path.GetTempPath(), "DiscoClientBootstrapperWimTempMount"); + if (Directory.Exists(wimTempMountPath)) + Directory.Delete(wimTempMountPath, true); + Directory.CreateDirectory(wimTempMountPath); + + bool wimCommitChanges = true; + Interop.WIMInterop.WindowsImageContainer.NativeMethods.MessageCallback m_MessageCallback = null; + try + { + // Mount WIM + Program.Status.UpdateStatus(null, "Mounting WIM", string.Format("Mounting WIM Image to '{0}'", wimMountPath)); + Program.SleepThread(500, false); + m_MessageCallback = new Interop.WIMInterop.WindowsImageContainer.NativeMethods.MessageCallback(WimImageEventMessagePump); + Interop.WIMInterop.WindowsImageContainer.NativeMethods.RegisterCallback(m_MessageCallback); + + Interop.WIMInterop.WindowsImageContainer.NativeMethods.MountImage(wimMountPath, InstallLocation, wimImageIndex, wimTempMountPath); + + // Load Local Machine Registry + var wimHivePath = Path.Combine(wimMountPath, "Windows\\System32\\config\\SOFTWARE"); + Program.Status.UpdateStatus(null, "Mounting Offline Registry Hive", string.Format("Mounting Offline Registry Hive at '{0}'", wimHivePath)); + Program.SleepThread(500, false); + using (var wimReg = new Interop.RegistryInterop(RegistryInterop.RegistryHives.HKEY_LOCAL_MACHINE, "DiscoClientBootstrapperWimHive", wimHivePath)) + { + using (RegistryKey rootRegistryLocation = Registry.LocalMachine.OpenSubKey("DiscoClientBootstrapperWimHive", true)) + { + string rootFileSystemLocation = wimMountPath; + string fileSystemInstallLocation = "Disco"; + string virtualRootFileSystemLocation = "C:\\"; + + Install(rootFileSystemLocation, rootRegistryLocation, fileSystemInstallLocation, virtualRootFileSystemLocation); + } + + // Unload Local Machine Registry + Program.Status.UpdateStatus(null, "Unmounting Offline Registry Hive", string.Format("Unmounting Offline Registry Hive at '{0}'", wimHivePath)); + Program.SleepThread(500, false); + wimReg.Unload(); + } + } + catch (Exception) + { + wimCommitChanges = false; + throw; + } + finally + { + // Unmount WIM + Program.Status.UpdateStatus(null, "Unmounting WIM", string.Format("Unmounting WIM Image at '{0}'", wimMountPath)); + Program.SleepThread(500, false); + Interop.WIMInterop.WindowsImageContainer.NativeMethods.DismountImage(wimMountPath, InstallLocation, wimImageIndex, wimCommitChanges); + + if (m_MessageCallback != null) + { + Interop.WIMInterop.WindowsImageContainer.NativeMethods.UnregisterMessageCallback(m_MessageCallback); + m_MessageCallback = null; + } + + if (Directory.Exists(wimMountPath)) + Directory.Delete(wimMountPath, true); + if (Directory.Exists(wimTempMountPath)) + Directory.Delete(wimTempMountPath, true); + } + } + else + { + // Online File System + Program.Status.UpdateStatus("Installing Bootstrapper (Online)", "Installing", string.Format("Install Location: {0}", InstallLocation), true, -1); + Program.SleepThread(1000, false); + string rootFileSystemLocation = Path.GetPathRoot(InstallLocation); + RegistryKey rootRegistryLocation = Registry.LocalMachine.OpenSubKey("SOFTWARE", true); + string fileSystemInstallLocation = InstallLocation.Substring(rootFileSystemLocation.Length); + + Install(rootFileSystemLocation, rootRegistryLocation, fileSystemInstallLocation, rootFileSystemLocation); + Program.Status.UpdateStatus(null, "Online File System Installation Complete", string.Empty, true, -1); + Program.SleepThread(1000, false); + } + Program.Status.UpdateStatus(null, "Complete", "Finished Installing Bootstrapper"); + Program.SleepThread(1500, false); + } + + private static uint WimImageEventMessagePump( + uint MessageId, + IntPtr wParam, + IntPtr lParam, + IntPtr UserData + ) + { + uint status = (uint)Interop.WIMInterop.WindowsImageContainer.NativeMethods.WIMMessage.WIM_MSG_SUCCESS; + Interop.WIMInterop.DefaultImageEventArgs eventArgs = new Interop.WIMInterop.DefaultImageEventArgs(wParam, lParam, UserData); + + //System.Diagnostics.Debug.WriteLine(MessageId); + + switch ((Interop.WIMInterop.WindowsImageContainer.ImageEventMessage)MessageId) + { + + case Interop.WIMInterop.WindowsImageContainer.ImageEventMessage.Progress: + case Interop.WIMInterop.WindowsImageContainer.ImageEventMessage.MountCleanupProgress: + var timeRemainingMil = eventArgs.LeftParameter.ToInt32(); + string timeRemainingMessage; + if (timeRemainingMil > 0) + timeRemainingMessage = TimeSpan.FromMilliseconds(timeRemainingMil).ToString(@"hh\:mm\:ss"); + else + timeRemainingMessage = "Calculating, please wait..."; + + var progress = eventArgs.WideParameter.ToInt32(); + Program.Status.UpdateStatus(null, null, string.Format("Time remaining: {0}", timeRemainingMessage), true, progress); + + break; + default: + break; + } + + return status; + } + + public static void Uninstall() + { + // Application Directory + var appDirectory = Program.InlinePath.Value; + if (Program.AllowUninstall && !appDirectory.StartsWith("\\\\")) + { + Program.Status.UpdateStatus("System Preparation (Bootstrapper)", "Uninstalling Bootstrapper...", string.Empty, false, 0); + Program.SleepThread(1000, true); + //var uninstallScriptLocation = System.IO.Path.Combine(appDirectory, "UninstallBootstrapper.vbs"); + //if (System.IO.File.Exists(uninstallScriptLocation)) + //{ + // var bootstrapperPID = System.Diagnostics.Process.GetCurrentProcess().Id; + // var cscriptPath = System.IO.Path.Combine(Environment.SystemDirectory, "cscript.exe"); + // var cscriptArgs = string.Format("\"{0}\" /WaitForProcessID:{1}", uninstallScriptLocation, bootstrapperPID); + + // var startProc = new ProcessStartInfo(cscriptPath, cscriptArgs); + // startProc.WorkingDirectory = Environment.SystemDirectory; + // startProc.WindowStyle = ProcessWindowStyle.Hidden; + + // Process.Start(startProc); + //} + + // Remove Registry Entries + using (var regWinlogon = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon", true)) + { + regWinlogon.DeleteValue("HideStartupScripts", false); + regWinlogon.DeleteValue("RunStartupScriptSync", false); + } + Registry.LocalMachine.DeleteSubKeyTree("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Group Policy\\Scripts\\Shutdown", false); + Registry.LocalMachine.DeleteSubKeyTree("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Group Policy\\Scripts\\Startup", false); + Registry.LocalMachine.DeleteSubKeyTree("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Group Policy\\State\\Machine\\Scripts\\Shutdown", false); + Registry.LocalMachine.DeleteSubKeyTree("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Group Policy\\State\\Machine\\Scripts\\Startup", false); + + // Restore Registry Backups + using (var regGroupPolicy = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Group Policy", true)) + { + if (regGroupPolicy != null && regGroupPolicy.GetSubKeyNames().Contains("Disco_Scripts")) + { + regGroupPolicy.DeleteSubKeyTree("Scripts"); + RegistryUtilities.RenameSubKey(regGroupPolicy, "Disco_Scripts", "Scripts"); + } + } + using (var regGroupPolicy = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Group Policy\\State\\Machine", true)) + { + if (regGroupPolicy != null && regGroupPolicy.GetSubKeyNames().Contains("Disco_Scripts")) + { + regGroupPolicy.DeleteSubKeyTree("Scripts"); + RegistryUtilities.RenameSubKey(regGroupPolicy, "Disco_Scripts", "Scripts"); + } + } + + // Delete Group Policy Script File + var groupPolicyScriptsPath = Path.Combine(Environment.SystemDirectory, "GroupPolicy\\Machine\\Scripts\\scripts.ini"); + if (File.Exists(groupPolicyScriptsPath)) + File.Delete(groupPolicyScriptsPath); + var groupPolicyScriptsBackupPath = Path.Combine(Environment.SystemDirectory, "GroupPolicy\\Machine\\Scripts\\disco_scripts.ini"); + if (File.Exists(groupPolicyScriptsBackupPath)) + File.Move(groupPolicyScriptsBackupPath, groupPolicyScriptsPath); + + // Queue Folder for Deletion at next startup + ForceDeleteFolder(new DirectoryInfo(appDirectory)); + } + } + + private static void ForceDeleteFolder(DirectoryInfo d) + { + foreach (var sd in d.GetDirectories()) + ForceDeleteFolder(sd); + foreach (var f in d.GetFiles()) + { + try + { + File.Delete(f.FullName); + } + catch (Exception) + { + MoveFileEx(f.FullName, null, MoveFileFlags.MOVEFILE_DELAY_UNTIL_REBOOT); + } + } + + try + { + Directory.Delete(d.FullName); + } + catch (Exception) + { + MoveFileEx(d.FullName, null, MoveFileFlags.MOVEFILE_DELAY_UNTIL_REBOOT); + } + } + } + + public static class RegistryUtilities + { + /// + /// Renames a subkey of the passed in registry key since + /// the Framework totally forgot to include such a handy feature. + /// + /// The RegistryKey that contains the subkey + /// you want to rename (must be writeable) + /// The name of the subkey that you want to rename + /// + /// The new name of the RegistryKey + /// True if succeeds + public static bool RenameSubKey(RegistryKey parentKey, + string subKeyName, string newSubKeyName) + { + CopyKey(parentKey, subKeyName, newSubKeyName); + parentKey.DeleteSubKeyTree(subKeyName); + return true; + } + + /// + /// Copy a registry key. The parentKey must be writeable. + /// + /// + /// + /// + /// + public static bool CopyKey(RegistryKey parentKey, + string keyNameToCopy, string newKeyName) + { + //Create new key + using (RegistryKey destinationKey = parentKey.CreateSubKey(newKeyName)) + { + //Open the sourceKey we are copying from + using (RegistryKey sourceKey = parentKey.OpenSubKey(keyNameToCopy)) + { + RecurseCopyKey(sourceKey, destinationKey); + } + } + + return true; + } + + private static void RecurseCopyKey(RegistryKey sourceKey, RegistryKey destinationKey) + { + //copy all the values + foreach (string valueName in sourceKey.GetValueNames()) + { + object objValue = sourceKey.GetValue(valueName); + RegistryValueKind valKind = sourceKey.GetValueKind(valueName); + + if (valueName == "ExecTime") + { + destinationKey.SetValue(valueName, objValue, RegistryValueKind.Binary); + } + else + { + destinationKey.SetValue(valueName, objValue, valKind); + } + } + + //For Each subKey + //Create a new subKey in destinationKey + //Call myself + foreach (string sourceSubKeyName in sourceKey.GetSubKeyNames()) + { + using (RegistryKey sourceSubKey = sourceKey.OpenSubKey(sourceSubKeyName)) + { + using (RegistryKey destSubKey = destinationKey.CreateSubKey(sourceSubKeyName)) + { + RecurseCopyKey(sourceSubKey, destSubKey); + } + } + } + } + } + + +} diff --git a/Disco.ClientBootstrapper/Interop/NetworkAdapter.cs b/Disco.ClientBootstrapper/Interop/NetworkAdapter.cs new file mode 100644 index 00000000..f9d24fae --- /dev/null +++ b/Disco.ClientBootstrapper/Interop/NetworkAdapter.cs @@ -0,0 +1,164 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Management; +using System.Runtime.InteropServices; + +namespace Disco.ClientBootstrapper.Interop +{ + + class NetworkAdapter + { + + public uint Index { get; set; } + public string WmiPath { get; set; } + public Guid Guid { get; set; } + public string Name { get; set; } + public string NetConnectionID { get; set; } + public string MACAddress { get; set; } + public UInt64 Speed { get; set; } + public UInt16 LastConnectionStatus { get; set; } + public bool IsWireless { get; set; } + public string WirelessInterfaceDescription { get; set; } + public int LastWirelessConnectionStatus { get; set; } + + public NetworkAdapter(ManagementObject wmiObject) + { + UpdateFromWmi(wmiObject); + } + + private void UpdateFromWmi(ManagementObject wmiObject) + { + this.WmiPath = (string)wmiObject.GetPropertyValue("__PATH"); + this.Index = (UInt32)wmiObject.GetPropertyValue("Index"); + this.Guid = Guid.Parse((string)wmiObject.GetPropertyValue("GUID")); + this.MACAddress = (string)wmiObject.GetPropertyValue("MACAddress"); + this.Name = (string)wmiObject.GetPropertyValue("Name"); + this.NetConnectionID = (string)wmiObject.GetPropertyValue("NetConnectionID"); + this.Speed = (UInt64)wmiObject.GetPropertyValue("Speed"); + var connectionStatus = ConnectionStatus; + this.IsWireless = true; + try + { + var wirelessConnectionStatus = WirelessConnectionStatus; + } + catch (Exception) { + this.IsWireless = false; + }; + } + + public int WirelessConnectionStatus + { + get { + if (this.IsWireless) + { + IntPtr handle = IntPtr.Zero; + uint negotiatedVersion; + try + { + if (NetworkInterop.WlanOpenHandle(1, IntPtr.Zero, out negotiatedVersion, ref handle) != 0) + throw new NotSupportedException("This network adapter does not support Wireless"); + + IntPtr ptr = new IntPtr(); + + uint dataSize; + + var interfaceGuid = this.Guid; + + if (NetworkInterop.WlanQueryInterface(handle, ref interfaceGuid, NetworkInterop.WLAN_INTF_OPCODE.wlan_intf_opcode_interface_state, IntPtr.Zero, out dataSize, ref ptr, IntPtr.Zero) != 0) + throw new NotSupportedException("This network adapter does not support Wireless"); + + this.LastWirelessConnectionStatus = Marshal.ReadInt32(ptr); + + + NetworkInterop.WlanFreeMemory(ptr); + + return this.LastWirelessConnectionStatus; + } + finally + { + if (handle != IntPtr.Zero) + NetworkInterop.WlanCloseHandle(handle, IntPtr.Zero); + } + + } + else + { + throw new NotSupportedException("This network adapter does not support Wireless"); + } + } + } + public string WirelessConnectionStatusMeaning(int status) + { + switch ((NetworkInterop.WLAN_INTERFACE_STATE)status) + { + case NetworkInterop.WLAN_INTERFACE_STATE.wlan_interface_state_ad_hoc_network_formed: + return "Ad Hoc Network Formed"; + case NetworkInterop.WLAN_INTERFACE_STATE.wlan_interface_state_associating: + return "Associating"; + case NetworkInterop.WLAN_INTERFACE_STATE.wlan_interface_state_authenticating: + return "Authenticating"; + case NetworkInterop.WLAN_INTERFACE_STATE.wlan_interface_state_connected: + return "Connected"; + case NetworkInterop.WLAN_INTERFACE_STATE.wlan_interface_state_disconnected: + return "Disconnected"; + case NetworkInterop.WLAN_INTERFACE_STATE.wlan_interface_state_disconnecting: + return "Disconnecting"; + case NetworkInterop.WLAN_INTERFACE_STATE.wlan_interface_state_discovering: + return "Discovering"; + case NetworkInterop.WLAN_INTERFACE_STATE.wlan_interface_state_not_ready: + return "Not Ready"; + default: + return "Unknown"; + } + } + + public UInt16 ConnectionStatus + { + get + { + using (var wmiObject = new ManagementObject(this.WmiPath)) + { + this.LastConnectionStatus = (UInt16)wmiObject.GetPropertyValue("NetConnectionStatus"); + } + return this.LastConnectionStatus; + } + } + public string ConnectionStatusMeaning(UInt16 status) + { + switch (status) + { + case (UInt16)0: + return "Disconnected"; + case (UInt16)1: + return "Connecting"; + case (UInt16)2: + return "Connected"; + case (UInt16)3: + return "Disconnecting"; + case (UInt16)4: + return "Hardware not present"; + case (UInt16)5: + return "Hardware disabled"; + case (UInt16)6: + return "Hardware malfunction"; + case (UInt16)7: + return "Media disconnected"; + case (UInt16)8: + return "Authenticating"; + case (UInt16)9: + return "Authentication succeeded"; + case (UInt16)10: + return "Authentication failed"; + case (UInt16)11: + return "Invalid address"; + case (UInt16)12: + return "Credentials required"; + default: + return "Unknown"; + } + } + + } +} diff --git a/Disco.ClientBootstrapper/Interop/NetworkInterop.cs b/Disco.ClientBootstrapper/Interop/NetworkInterop.cs new file mode 100644 index 00000000..7980490e --- /dev/null +++ b/Disco.ClientBootstrapper/Interop/NetworkInterop.cs @@ -0,0 +1,289 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Net.NetworkInformation; +using System.Management; +using System.Runtime.InteropServices; +using System.Xml; + +namespace Disco.ClientBootstrapper.Interop +{ + static class NetworkInterop + { + + #region PInvoke + + [DllImport("Wlanapi", EntryPoint = "WlanOpenHandle")] + public static extern uint WlanOpenHandle(uint dwClientVersion, IntPtr pReserved, [Out] out uint pdwNegotiatedVersion, ref IntPtr ClientHandle); + [DllImport("Wlanapi", EntryPoint = "WlanCloseHandle")] + public static extern uint WlanCloseHandle([In] IntPtr hClientHandle, IntPtr pReserved); + [DllImport("Wlanapi", EntryPoint = "WlanFreeMemory")] + public static extern void WlanFreeMemory([In] IntPtr pMemory); + + [DllImport("Wlanapi.dll", SetLastError = true)] + public static extern uint WlanGetProfileList(IntPtr hClientHandle, ref Guid pInterfaceGuid, IntPtr pReserved, ref IntPtr ppProfileList); + [DllImport("Wlanapi.dll", SetLastError = true, CharSet = CharSet.Unicode)] + public static extern uint WlanSetProfile(IntPtr hClientHandle, [In] ref Guid pInterfaceGuid, uint dwFlags, string strProfileXml, string strAllUserProfileSecurity, bool bOverwrite, IntPtr pReserved, out uint pdwReasonCode); + + + [DllImport("Wlanapi", EntryPoint = "WlanQueryInterface")] + public static extern uint WlanQueryInterface([In] IntPtr hClientHandle, + [In] ref Guid pInterfaceGuid, + WLAN_INTF_OPCODE OpCode, + IntPtr pReserved, + [Out] out uint pdwDataSize, + ref IntPtr ppData, + IntPtr pWlanOpcodeValueType); + + public enum WLAN_INTF_OPCODE + { + /// wlan_intf_opcode_autoconf_start -> 0x000000000 + wlan_intf_opcode_autoconf_start = 0, + wlan_intf_opcode_autoconf_enabled, + wlan_intf_opcode_background_scan_enabled, + wlan_intf_opcode_media_streaming_mode, + wlan_intf_opcode_radio_state, + wlan_intf_opcode_bss_type, + wlan_intf_opcode_interface_state, + wlan_intf_opcode_current_connection, + wlan_intf_opcode_channel_number, + wlan_intf_opcode_supported_infrastructure_auth_cipher_pairs, + wlan_intf_opcode_supported_adhoc_auth_cipher_pairs, + wlan_intf_opcode_supported_country_or_region_string_list, + wlan_intf_opcode_current_operation_mode, + wlan_intf_opcode_supported_safe_mode, + wlan_intf_opcode_certified_safe_mode, + /// wlan_intf_opcode_autoconf_end -> 0x0fffffff + wlan_intf_opcode_autoconf_end = 268435455, + /// wlan_intf_opcode_msm_start -> 0x10000100 + wlan_intf_opcode_msm_start = 268435712, + wlan_intf_opcode_statistics, + wlan_intf_opcode_rssi, + /// wlan_intf_opcode_msm_end -> 0x1fffffff + wlan_intf_opcode_msm_end = 536870911, + /// wlan_intf_opcode_security_start -> 0x20010000 + wlan_intf_opcode_security_start = 536936448, + /// wlan_intf_opcode_security_end -> 0x2fffffff + wlan_intf_opcode_security_end = 805306367, + /// wlan_intf_opcode_ihv_start -> 0x30000000 + wlan_intf_opcode_ihv_start = 805306368, + /// wlan_intf_opcode_ihv_end -> 0x3fffffff + wlan_intf_opcode_ihv_end = 1073741823, + } + + /// + /// Defines the state of the interface. e.g. connected, disconnected. + /// + public enum WLAN_INTERFACE_STATE + { + /// + /// wlan_interface_state_not_ready -> 0 + /// + wlan_interface_state_not_ready = 0, + /// + /// wlan_interface_state_connected -> 1 + /// + wlan_interface_state_connected = 1, + /// + /// wlan_interface_state_ad_hoc_network_formed -> 2 + /// + wlan_interface_state_ad_hoc_network_formed = 2, + /// + /// wlan_interface_state_disconnecting -> 3 + /// + wlan_interface_state_disconnecting = 3, + /// + /// wlan_interface_state_disconnected -> 4 + /// + wlan_interface_state_disconnected = 4, + /// + /// wlan_interface_state_associating -> 5 + /// + wlan_interface_state_associating = 5, + /// + /// wlan_interface_state_discovering -> 6 + /// + wlan_interface_state_discovering = 6, + /// + /// wlan_interface_state_authenticating -> 7 + /// + wlan_interface_state_authenticating = 7, + } + + public struct WLAN_PROFILE_INFO_LIST + { + public uint dwNumberOfItems; + public uint dwIndex; + public WLAN_PROFILE_INFO[] ProfileInfo; + + public WLAN_PROFILE_INFO_LIST(IntPtr ppProfileList) + { + dwNumberOfItems = (uint)Marshal.ReadInt32(ppProfileList); + dwIndex = (uint)Marshal.ReadInt32(ppProfileList, 4); + ProfileInfo = new WLAN_PROFILE_INFO[dwNumberOfItems]; + IntPtr ppProfileListTemp = new IntPtr(ppProfileList.ToInt32() + 8); + + for (int i = 0; i < dwNumberOfItems; i++) + { + ppProfileList = new IntPtr(ppProfileListTemp.ToInt32() + i * Marshal.SizeOf(typeof(WLAN_PROFILE_INFO))); + ProfileInfo[i] = (WLAN_PROFILE_INFO)Marshal.PtrToStructure(ppProfileList, typeof(WLAN_PROFILE_INFO)); + } + } + } + + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] + public struct WLAN_PROFILE_INFO + { + [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)] + public string strProfileName; + public uint dwFlags; + } + + #endregion + + private static List _networkAdapters; + public static List NetworkAdapters + { + get + { + if (_networkAdapters == null) + { + using (var mSearcher = new ManagementObjectSearcher("SELECT __PATH, Index, GUID, MACAddress, Name, NetConnectionID, Speed FROM Win32_NetworkAdapter WHERE PhysicalAdapter=true AND MACAddress IS NOT NULL AND Name IS NOT NULL AND NetConnectionID IS NOT NULL AND Speed IS NOT NULL")) + { + + var mResults = mSearcher.Get(); + _networkAdapters = new List(mResults.Count); + + foreach (ManagementObject mResult in mResults) + { + _networkAdapters.Add(new NetworkAdapter(mResult)); + } + } + } + return _networkAdapters; + } + } + + public static bool PingDisco() + { + using (Ping p = new Ping()) + { + try + { + PingReply pr = p.Send("disco", 2000); + if (pr.Status == IPStatus.Success) + return true; + else + return false; + } + catch (Exception) + { + return false; + } + } + } + + public static void ConfigureWireless() + { + // Add Certificates + Program.Status.UpdateStatus(null, null, "Configuring Wireless Certificates"); + CertificateInterop.AddTempCerts(); + + // Add Wireless Profiles + Program.Status.UpdateStatus(null, null, "Configuring Wireless Profiles"); + var wirelessInlineProfiles = GetInlineWirelessProfiles(); + if (wirelessInlineProfiles.Count > 0) + { + + IntPtr wlanHandle = IntPtr.Zero; + uint negotiatedVersion; + + try + { + if (WlanOpenHandle(1, IntPtr.Zero, out negotiatedVersion, ref wlanHandle) != 0) + throw new NotSupportedException("This device does not support Wireless"); + + // Add Profile to Each Wireless Adapter + var wirelessAdapters = NetworkAdapters.Where(na => na.IsWireless).ToList(); + foreach (var na in wirelessAdapters) + { + foreach (var inlineWirelessProfile in wirelessInlineProfiles) + { + if (inlineWirelessProfile.AddProfile(wlanHandle, na.Guid)) + { + Program.Status.UpdateStatus(null, null, string.Format("Added Wireless Profile: {0}", inlineWirelessProfile.ProfileName)); + Program.SleepThread(500, false); + } + else + { + Program.Status.UpdateStatus(null, null, string.Format("Unable to add Wireless Profile: {0}", inlineWirelessProfile.ProfileName)); + Program.SleepThread(5000, false); + } + } + } + } + finally + { + if (wlanHandle != IntPtr.Zero) + NetworkInterop.WlanCloseHandle(wlanHandle, IntPtr.Zero); + } + } + + } + private class WirelessProfile + { + public string Filename { get; set; } + public string ProfileXml { get; set; } + public string ProfileName { get; set; } + + public bool AddProfile(IntPtr WlanHandle, Guid interfaceGuid) + { + var pInterfaceGuid = interfaceGuid; + var pProfileXml = this.ProfileXml; + uint pFlag = 0; + uint failReason; + return (WlanSetProfile(WlanHandle, ref pInterfaceGuid, pFlag, pProfileXml, null, true, IntPtr.Zero, out failReason) == 0); + } + } + + private static List GetInlineWirelessProfiles() + { + var inlineProfileFiles = System.IO.Directory.EnumerateFiles(Program.InlinePath.Value, "WLAN_Profile_*.xml").ToList(); + var inlineProfiles = new List(inlineProfileFiles.Count); + foreach (var filename in inlineProfileFiles) + { + var profile = new WirelessProfile() + { + Filename = filename, + ProfileXml = System.IO.File.ReadAllText(filename) + }; + var profileXml = new XmlDocument(); + profileXml.LoadXml(profile.ProfileXml); + var profileXmlNS = new XmlNamespaceManager(profileXml.NameTable); + profileXmlNS.AddNamespace("p", "http://www.microsoft.com/networking/WLAN/profile/v1"); + var profileXmlNameNode = profileXml.SelectSingleNode("/p:WLANProfile/p:name", profileXmlNS); + if (profileXmlNameNode != null) + { + profile.ProfileName = profileXmlNameNode.InnerText; + inlineProfiles.Add(profile); + } + } + return inlineProfiles; + } + + private static WLAN_PROFILE_INFO_LIST GetWirelessProfiles(IntPtr WlanHandle, Guid interfaceGuid) + { + Guid pInterfaceGuid = interfaceGuid; + + IntPtr ppProfileList = new IntPtr(); + WlanGetProfileList(WlanHandle, ref pInterfaceGuid, new IntPtr(), ref ppProfileList); + WLAN_PROFILE_INFO_LIST wlanProfileInfoList = new WLAN_PROFILE_INFO_LIST(ppProfileList); + + NetworkInterop.WlanFreeMemory(ppProfileList); + + return wlanProfileInfoList; + } + + } +} diff --git a/Disco.ClientBootstrapper/Interop/RegistryInterop.cs b/Disco.ClientBootstrapper/Interop/RegistryInterop.cs new file mode 100644 index 00000000..07f0aaa9 --- /dev/null +++ b/Disco.ClientBootstrapper/Interop/RegistryInterop.cs @@ -0,0 +1,108 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Runtime.InteropServices; + +namespace Disco.ClientBootstrapper.Interop +{ + class RegistryInterop : IDisposable + { + + [StructLayout(LayoutKind.Sequential)] + private struct LUID + { + public int LowPart; + public int HighPart; + } + [StructLayout(LayoutKind.Sequential)] + private struct TOKEN_PRIVILEGES + { + public LUID Luid; + public int Attributes; + public int PrivilegeCount; + } + + [DllImport("advapi32.dll", CharSet = CharSet.Auto)] + private static extern int OpenProcessToken(int ProcessHandle, int DesiredAccess, ref int tokenhandle); + + [DllImport("kernel32.dll", CharSet = CharSet.Auto)] + private static extern int GetCurrentProcess(); + + [DllImport("advapi32.dll", CharSet = CharSet.Auto)] + private static extern int LookupPrivilegeValue(string lpsystemname, string lpname, [MarshalAs(UnmanagedType.Struct)] ref LUID lpLuid); + + [DllImport("advapi32.dll", CharSet = CharSet.Auto)] + private static extern int AdjustTokenPrivileges(int tokenhandle, int disableprivs, [MarshalAs(UnmanagedType.Struct)]ref TOKEN_PRIVILEGES Newstate, int bufferlength, int PreivousState, int Returnlength); + + [DllImport("advapi32.dll", CharSet = CharSet.Auto, SetLastError = true)] + private static extern int RegLoadKey(uint hKey, string lpSubKey, string lpFile); + + [DllImport("advapi32.dll", CharSet = CharSet.Auto, SetLastError = true)] + private static extern int RegUnLoadKey(uint hKey, string lpSubKey); + + private const int TOKEN_ADJUST_PRIVILEGES = 0x00000020; + private const int TOKEN_QUERY = 0x00000008; + private const int SE_PRIVILEGE_ENABLED = 0x00000002; + private const string SE_RESTORE_NAME = "SeRestorePrivilege"; + private const string SE_BACKUP_NAME = "SeBackupPrivilege"; + private const uint HKEY_USERS = 0x80000003; + + private RegistryHives Hive { get; set; } + private string SubKey { get; set; } + private bool IsUnloaded { get; set; } + + public enum RegistryHives : uint + { + HKEY_USERS = 0x80000003, + HKEY_LOCAL_MACHINE = 0x80000002 + } + + public RegistryInterop(RegistryHives hive, string subKey, string filePath) + { + int token = 0; + int retval = 0; + + TOKEN_PRIVILEGES TP = new TOKEN_PRIVILEGES(); + TOKEN_PRIVILEGES TP2 = new TOKEN_PRIVILEGES(); + LUID RestoreLuid = new LUID(); + LUID BackupLuid = new LUID(); + + retval = OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, ref token); + retval = LookupPrivilegeValue(null, SE_RESTORE_NAME, ref RestoreLuid); + retval = LookupPrivilegeValue(null, SE_BACKUP_NAME, ref BackupLuid); + TP.PrivilegeCount = 1; + TP.Attributes = SE_PRIVILEGE_ENABLED; + TP.Luid = RestoreLuid; + TP2.PrivilegeCount = 1; + TP2.Attributes = SE_PRIVILEGE_ENABLED; + TP2.Luid = BackupLuid; + + retval = AdjustTokenPrivileges(token, 0, ref TP, 1024, 0, 0); + retval = AdjustTokenPrivileges(token, 0, ref TP2, 1024, 0, 0); + + uint regHive = (uint)hive; + + this.Hive = hive; + this.SubKey = subKey; + RegLoadKey(regHive, subKey, filePath); + this.IsUnloaded = false; + } + + public void Unload() + { + if (!IsUnloaded) + { + uint regHive = (uint)this.Hive; + string subKey = this.SubKey; + RegUnLoadKey(regHive, subKey); + this.IsUnloaded = true; + } + } + + public void Dispose() + { + Unload(); + } + } +} diff --git a/Disco.ClientBootstrapper/Interop/ShutdownInterop.cs b/Disco.ClientBootstrapper/Interop/ShutdownInterop.cs new file mode 100644 index 00000000..67a8ffe3 --- /dev/null +++ b/Disco.ClientBootstrapper/Interop/ShutdownInterop.cs @@ -0,0 +1,103 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Management; +using System.Runtime.InteropServices; + +namespace Disco.ClientBootstrapper.Interop +{ + public static class ShutdownInterop + { + public static void Shutdown() + { + // 8 = Power Off + Shutdown(EWX_POWEROFF); + } + public static void Reboot() + { + // 2 = Reboot + Shutdown(EWX_REBOOT); + } + + private static void Shutdown(int flag) + { + // Removed 2012-11-23 G# - Migrate to Win32 PInvoke Shutdown for better Privilege Handling + //ManagementBaseObject mboShutdown = null; + //ManagementClass mcWin32 = new ManagementClass("Win32_OperatingSystem"); + //mcWin32.Get(); + + //// You can't shutdown without security privileges + //mcWin32.Scope.Options.EnablePrivileges = true; + //ManagementBaseObject mboShutdownParams = + // mcWin32.GetMethodParameters("Win32Shutdown"); + + //// Flag 1 means we want to shut down the system. Use "2" to reboot. + //mboShutdownParams["Flags"] = flag; + //mboShutdownParams["Reserved"] = "0"; + //foreach (ManagementObject manObj in mcWin32.GetInstances()) + //{ + // mboShutdown = manObj.InvokeMethod("Win32Shutdown", + // mboShutdownParams, null); + //} + // End Removed 2012-11-23 G# + + // Added 2012-11-23 G# - Migrate to Win32 PInvoke Shutdown + bool result; + TokPriv1Luid tp; + + IntPtr hproc = GetCurrentProcess(); + IntPtr htok = IntPtr.Zero; + + result = OpenProcessToken(hproc, TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, ref htok); + + tp.Count = 1; + tp.Luid = 0; + tp.Attr = SE_PRIVILEGE_ENABLED; + + result = LookupPrivilegeValue(null, SE_SHUTDOWN_NAME, ref tp.Luid); + result = AdjustTokenPrivileges(htok, false, ref tp, 0, IntPtr.Zero, IntPtr.Zero); + result = ExitWindowsEx(flag, 0); + // End Added 2012-11-23 G# + } + + #region Win32 PInvoke Interop + + [StructLayout(LayoutKind.Sequential, Pack = 1)] + private struct TokPriv1Luid + { + public int Count; + public long Luid; + public int Attr; + } + + [DllImport("kernel32.dll", ExactSpelling = true)] + private static extern IntPtr GetCurrentProcess(); + + [DllImport("advapi32.dll", ExactSpelling = true, SetLastError = true)] + private static extern bool OpenProcessToken(IntPtr h, int acc, ref IntPtr phtok); + + [DllImport("advapi32.dll", SetLastError = true)] + private static extern bool LookupPrivilegeValue(string host, string name, ref long pluid); + + [DllImport("advapi32.dll", ExactSpelling = true, SetLastError = true)] + private static extern bool AdjustTokenPrivileges(IntPtr htok, bool disall, ref TokPriv1Luid newst, int len, IntPtr prev, IntPtr relen); + + [DllImport("user32.dll", ExactSpelling = true, SetLastError = true)] + private static extern bool ExitWindowsEx(int flg, int rea); + + private const int SE_PRIVILEGE_ENABLED = 0x00000002; + private const int TOKEN_QUERY = 0x00000008; + private const int TOKEN_ADJUST_PRIVILEGES = 0x00000020; + private const string SE_SHUTDOWN_NAME = "SeShutdownPrivilege"; + private const int EWX_LOGOFF = 0x00000000; + private const int EWX_SHUTDOWN = 0x00000001; + private const int EWX_REBOOT = 0x00000002; + private const int EWX_FORCE = 0x00000004; + private const int EWX_POWEROFF = 0x00000008; + private const int EWX_FORCEIFHUNG = 0x00000010; + + #endregion + + } +} diff --git a/Disco.ClientBootstrapper/Interop/WIMInterop.cs b/Disco.ClientBootstrapper/Interop/WIMInterop.cs new file mode 100644 index 00000000..00eefdda --- /dev/null +++ b/Disco.ClientBootstrapper/Interop/WIMInterop.cs @@ -0,0 +1,1585 @@ +using System; +using System.Collections; +using System.Globalization; +using System.IO; +using System.Runtime.InteropServices; +using System.Text; +using System.Xml; + +namespace Disco.ClientBootstrapper.Interop.WIMInterop +{ + /// + ///Pulic interface to a WindowsImage object. + /// + public + interface IImage : IDisposable + { + /// + ///Gets image information from within a .wim file. + /// + string ImageInformation + { + get; + } + + /// + ///Sets image information about an image within a .wim file. + /// + ///The string being passed in should be in the form of a unicode XML file. + ///Calling this function replaces any customized image data. To preserve existing XML information, call ImageInformation + ///and append/edit desired data. + /// + void SetImageInformation( + string imageInformation + ); + + /// + ///Mounts an image in a .wim file to the specified directory. + /// + void Mount( + string pathToMountTo + ); + + /// + ///Retrieves the path to which an image has been mounted. + /// + string MountedPath + { + get; + } + + /// + ///Unmounts a mounted image in a .wim file from the specified directory. + /// + ///Indicates whether changes (if any) to the .wim file should be committed + ///before unmounting the .wim file. This flag will have no effect if the .wim file was mounted not to allow edits. + /// + void DismountImage( + bool commitChanges + ); + + /// + ///Applies an image to a drive root or to a directory path from a .wim file. + /// + void Apply( + string pathToApplyTo + ); + } + + /// + ///Class representing a .wim file. + /// + public + sealed + class + WindowsImageContainer : IDisposable + { + /// + ///Specifies the type of access to the .wim file. + /// + public + enum + CreateFileAccess + { + /// + ///Specifies read-only access to the .wim file. + /// + Read, + + /// + ///Specifies write access to the .wim file. + ///Includes WIM_GENERIC_READ access to enable apply and append operations with existing images. + /// + Write + } + + /// + ///Specifies which action to take on files that exist and + ///which action to take when files do not exist. + /// + public + enum + CreateFileMode + { + /// + ///RESERVED, DO NOT USE! + /// + None = 0, + + /// + ///Creates a new .wim file. The function fails if the specified file already exists. + /// + CreateNew = 1, + + /// + ///Creates a new .wim file. If the file exists, the function overwrites the file. + /// + CreateAlways = 2, + + /// + ///Opens the .wim file. The function fails if the file does not exist. + /// + OpenExisting = 3, + + /// + ///Opens the .wim file if it exists. If the file does not exist and the caller requests WIM_GENERIC_WRITE access, the + ///function creates the file. + /// + OpenAlways = 4 + } + + /// + ///Public constructor to create a WIM object + /// + ///Path of WIM to create or to open. + ///Specifies Open, Create, Create/Open disposition of the .wim file. + ///Specifies access level of Read Only or Write. + //[CLSCompliant(false)] + public WindowsImageContainer(string imageFilePath, CreateFileMode mode, CreateFileAccess access) + { + CreateFileAccessPrivate fileAccess = GetMappedFileAccess(access); + if (fileAccess == CreateFileAccessPrivate.Read && (!File.Exists(imageFilePath) || (CreateFileMode.OpenExisting != mode))) + { + throw new System.UnauthorizedAccessException(string.Format(CultureInfo.CurrentCulture, + "Read access can be specified only with OpenExisting mode or OpenAlways mode when the .wim file does not exist.")); + } + + // + //Imaging DLLs must be in the same directory. + // + try + { + m_ImageContainerHandle = NativeMethods.CreateFile(imageFilePath, (uint)fileAccess, (uint)mode); + m_WindowsImageFilePath = imageFilePath; + } + catch (System.DllNotFoundException ex) + { + throw new System.DllNotFoundException(string.Format(CultureInfo.CurrentCulture, + "Unable to load WIM libraries. Make sure the correct DLLs are present (Wimgapi.dll and Xmlrw.dll)."), ex.InnerException); + } + + if (!m_ImageContainerHandle.Equals(IntPtr.Zero)) + { + // + //Set the temporary path so that we can write to an image. This + //cannot be %TEMP% as it does not exist on Windows PE + // + string tempDirectory = System.Environment.GetEnvironmentVariable("systemdrive"); + NativeMethods.SetTemporaryPath(m_ImageContainerHandle, tempDirectory); + + } + else + { + // + //Throw an exception + // + throw new System.InvalidOperationException(string.Format(CultureInfo.CurrentCulture, + "Unable to open the .wim file {0}.", imageFilePath)); + } + + // + //Finally, we must hook into the events. + // + m_MessageCallback = new NativeMethods.MessageCallback(ImageEventMessagePump); + NativeMethods.RegisterCallback(m_MessageCallback); + } + + /// Destructor to close open handles. + ~WindowsImageContainer() + { + DisposeInner(); + } + + /// + ///Dispose all unmanaged resources + /// + public + void + Dispose() + { + DisposeInner(); + GC.SuppressFinalize(this); + } + + private + void + DisposeInner() + { + if (m_ImageContainerHandle != IntPtr.Zero) + { + NativeMethods.CloseHandle(m_ImageContainerHandle); + m_ImageContainerHandle = IntPtr.Zero; + } + + if (m_MessageCallback != null) + { + NativeMethods.UnregisterMessageCallback(m_MessageCallback); + m_MessageCallback = null; + } + GC.KeepAlive(this); + } + + /// + ///Used to enumerate the WindowsImage array + /// + public + IEnumerator + GetEnumerator( + ) + { + return m_Images.GetEnumerator(); + } + + /// + ///[] overload, used to enumerate the WindowsImage array + /// + public + IImage + this[int imageIndex] + { + get + { + // + //Delay load images + // + if (m_Images == null || m_Images[imageIndex] == null) + { + + ArrayList tempImages = new ArrayList(); + tempImages.Add(new WindowsImage(m_ImageContainerHandle, m_WindowsImageFilePath, imageIndex + 1)); + m_Images = (WindowsImage[])tempImages.ToArray(typeof(WindowsImage)); + } + GC.KeepAlive(this); + return m_Images[imageIndex]; + } + } + + /// + ///Retrieve the number of images in the .wim file. + /// + public int ImageCount + { + get + { + // + //Verify if there is an image count; if not, get it. + // + if (m_ImageCount == 0) + { + m_ImageCount = NativeMethods.GetImageCount(m_ImageContainerHandle); + } + + GC.KeepAlive(this); + return m_ImageCount; + } + } + + /// + ///Capture an image from the root of a drive or from an individual directory. + /// + public void CaptureImage(string pathToCapture) + { + // + //Capture the image. + // + IntPtr windowsImageHandle = NativeMethods.CaptureImage(m_ImageContainerHandle, pathToCapture); + NativeMethods.CloseHandle(windowsImageHandle); + GC.KeepAlive(this); + } + + /// + ///Default event handler + /// + //[CLSCompliant(false)] + public delegate void DefaultImageEventHandler(object sender, DefaultImageEventArgs e); + //public delegate void DefaultImageEventHandler(IntPtr wParam, IntPtr lParam, IntPtr UserData); + /// + ///ProcessFileEvent handler + /// + //[CLSCompliant(false)] + public delegate void ProcessFileEventHandler(object sender, ProcessFileEventArgs e); + //public delegate void ProcessFileEventHandler(ProcessFile fileToProcess); + + + /// + ///Indicate an update in the progress of an image application. + /// + //[CLSCompliant(false)] + public event DefaultImageEventHandler ProgressEvent; + /// + ///Enable the caller to prevent a file or a directory from being captured or applied. + /// + //[CLSCompliant(false)] + public event ProcessFileEventHandler ProcessFileEvent; + /// + ///Enable the caller to prevent a file resource from being compressed during a capture. + /// + //[CLSCompliant(false)] + public event DefaultImageEventHandler CompressEvent; + /// + ///Alert the caller that an error has occurred while capturing or applying an image. + /// + //[CLSCompliant(false)] + public event DefaultImageEventHandler ErrorEvent; + /// + ///Enable the caller to align a file resource on a particular alignment boundary. + /// + //[CLSCompliant(false)] + public event DefaultImageEventHandler AlignmentEvent; + /// + ///Enable the caller to align a file resource on a particular alignment boundary. + /// + //[CLSCompliant(false)] + public event DefaultImageEventHandler SplitEvent; + /// + ///Indicate that volume information is being gathered during an image capture. + /// + //[CLSCompliant(false)] + public event DefaultImageEventHandler ScanningEvent; + /// + ///Indicate the number of files that will be captured or applied. + /// + //[CLSCompliant(false)] + public event DefaultImageEventHandler SetRangeEvent; + /// + ///Indicate the number of files that have been captured or applied. + /// + //[CLSCompliant(false)] + public event DefaultImageEventHandler SetPosEvent; + /// + ///Indicate that a file has been either captured or applied. + /// + //[CLSCompliant(false)] + public event DefaultImageEventHandler StepItEvent; + + + /// + ///Event callback to the Wimgapi events + /// + private + uint + ImageEventMessagePump( + uint MessageId, + IntPtr wParam, + IntPtr lParam, + IntPtr UserData + ) + { + uint status = (uint)NativeMethods.WIMMessage.WIM_MSG_SUCCESS; + DefaultImageEventArgs eventArgs = new DefaultImageEventArgs(wParam, lParam, UserData); + + switch ((ImageEventMessage)MessageId) + { + + case ImageEventMessage.Progress: + ProgressEvent(this, eventArgs); + break; + + case ImageEventMessage.Process: + string fileToImage = Marshal.PtrToStringUni(wParam); + ProcessFileEventArgs fileToProcess = new ProcessFileEventArgs(fileToImage, lParam); + ProcessFileEvent(this, fileToProcess); + if (fileToProcess.Abort == true) + { + status = (uint)ImageEventMessage.Abort; + } + break; + + case ImageEventMessage.Compress: + CompressEvent(this, eventArgs); + break; + + case ImageEventMessage.Error: + ErrorEvent(this, eventArgs); + break; + + case ImageEventMessage.Alignment: + AlignmentEvent(this, eventArgs); + break; + + case ImageEventMessage.Split: + SplitEvent(this, eventArgs); + break; + + case ImageEventMessage.Scanning: + ScanningEvent(this, eventArgs); + break; + + case ImageEventMessage.SetRange: + SetRangeEvent(this, eventArgs); + break; + + case ImageEventMessage.SetPos: + SetPosEvent(this, eventArgs); + break; + + case ImageEventMessage.StepIt: + StepItEvent(this, eventArgs); + break; + + default: + break; + } + + return status; + } + + /// + ///Image inside of a .wim file + /// + private + class + WindowsImage : IImage + { + /// + ///Public constructor to create an image object from inside a .wim file + /// + public WindowsImage(IntPtr imageContainerHandle, string imageContainerFilePath, int imageIndex) + { + m_ParentWindowsImageHandle = imageContainerHandle; + m_ParentWindowsImageFilePath = imageContainerFilePath; + m_Index = imageIndex; + + // + //Load the image and stash away the handle. + // + m_ImageHandle = NativeMethods.LoadImage(imageContainerHandle, imageIndex); + } + + /// Destructor to close open handles. + ~WindowsImage() + { + DisposeInner(); + } + + /// + ///Dispose all unmanaged resources. + /// + public + void + Dispose() + { + DisposeInner(); + GC.SuppressFinalize(this); + } + + private + void + DisposeInner() + { + // + //Do not leave any open handles or mounted images. + // + if (m_ImageHandle != IntPtr.Zero) + { + NativeMethods.CloseHandle(m_ImageHandle); + m_ImageHandle = IntPtr.Zero; + } + + if (m_Mounted == true) + { + // + //Never commit changes when destroying this object. + // + this.DismountImage(false); + } + GC.KeepAlive(this); + } + + /// + ///Gets an image information header. + /// + /// + public string ImageInformation + { + get + { + // + //Always get the image header (even if we have it already), removing the unicode file marker. + // + string str = NativeMethods.GetImageInformation(m_ImageHandle).Remove(0, 1); + GC.KeepAlive(this); + + return str; + } + } + + // /// + // ///Returns an XmlTextReader for a given node name. + // /// + // private XmlTextReader ImageInformationHelper(string raw) { + + // XmlTextReader xmlTextReader = null; + + // if (raw != null) { + // XmlDocument xmlDocument = new XmlDocument(); + // try { + // xmlDocument.LoadXml(raw); + + // // + // //Look at all nodes. + // // + // foreach(XmlNode node in xmlDocument.ChildNodes) { + + // // + // //Now, find the specified node + // // + // foreach(XmlNode childNode in node) { + // if + //(String.Equals(childNode.Name, node.ToString(), StringComparison.InvariantCultureIgnoreCase)) { + + // StringWriter stringWriter = new StringWriter(CultureInfo.InvariantCulture); + // XmlTextWriter xmlTextWriter = new XmlTextWriter(stringWriter); + + // xmlTextWriter.WriteStartElement(childNode.Name); + // // + // //We are in the specified node. Now, get all the attributes + // // + // foreach(XmlAttribute attribute in childNode.Attributes) { + // xmlTextWriter.WriteAttributeString(attribute.Name, attribute.InnerXml); + // } + // xmlTextWriter.WriteEndElement(); + + // xmlTextReader = new XmlTextReader(null, new StringReader(stringWriter.ToString())); + // } + // } + // } + // } + // catch (System.Xml.XmlException) { + // throw new System.Xml.XmlException(string.Format(CultureInfo.CurrentCulture, + // "Unable to read XML header information from {0}", + // this.m_ParentWindowsImageFilePath)); + // } + // } + // return xmlTextReader; + // } + + /// + ///Retrieves the path to which an image has been mounted. + /// + public string MountedPath + { + get + { + return (m_MountedPath != null) ? m_MountedPath : null; + } + } + + /// + ///Sets the image information header + /// + /// + public void SetImageInformation(string imageInformation) + { + // + //Format the incoming XML so that we can set the header. The XML must have: + //1. Leading 0xFEFF + //2. Be in + // + string formattedXml = String.Format(CultureInfo.InvariantCulture, + "{0}{1}{2}{3}", + UNICODE_FILE_MARKER, + "", + imageInformation, + ""); + + NativeMethods.SetImageInformation(m_ImageHandle, formattedXml); + GC.KeepAlive(this); + } + + /// + ///Mounts an image to a directory. + /// + /// + public void Mount(string pathToMountTo) + { + // + //Mount the image + // + m_MountedPath = pathToMountTo; + NativeMethods.MountImage(pathToMountTo, m_ParentWindowsImageFilePath, m_Index, System.IO.Path.GetTempPath()); + m_Mounted = true; + } + + /// + ///Unmounts an image from a directory. + /// + /// + public void DismountImage(bool commitChanges) + { + if (m_Mounted == true) + { + NativeMethods.DismountImage(m_MountedPath, m_ParentWindowsImageFilePath, m_Index, commitChanges); + } + } + + /// + ///Applies an image to a drive root or to a directory path. + /// + /// + public void Apply(string pathToApplyTo) + { + NativeMethods.ApplyImage(m_ImageHandle, pathToApplyTo); + GC.KeepAlive(this); + } + + private IntPtr m_ParentWindowsImageHandle = IntPtr.Zero; //.wim file handle + private string m_ParentWindowsImageFilePath; //path to .wim file + + private IntPtr m_ImageHandle = IntPtr.Zero; //image handle + private int m_Index; //index of image + + private string m_MountedPath; //where the image has been mounted + private bool m_Mounted; //true if image has been mounted + + // + //DO NOT CHANGE! This controls the format of the image header + //and it must be present. + // + private const string UNICODE_FILE_MARKER = "\uFEFF"; + } + + /// + ///Interop to Wimgapi.dll + /// + public + class + NativeMethods + { + /// + ///Private null constructor + /// + private + NativeMethods() { } + + [DllImport("Wimgapi.dll", ExactSpelling = true, + EntryPoint = "WIMCreateFile", + CallingConvention = CallingConvention.StdCall, + SetLastError = true)] + private static extern + IntPtr + WimCreateFile( + [MarshalAs(UnmanagedType.LPWStr)] string WimPath, + uint DesiredAccess, + uint CreationDisposition, + uint FlagsAndAttributes, + uint CompressionType, + out IntPtr CreationResult + ); + + /// + ///Creates a new .wim file or opens an existing .wim file. + /// + ///Path to the .wim file to open or to create. + ///Specifies the file access to grant the file. + ///Specifies the mode in which the file should be opened or created. + ///If the function succeeds, the return value is an open handle to the specified image file. + ///If the function fails, the return value is NULL. + public + static + IntPtr + CreateFile(string imageFile, uint access, uint mode) + { + IntPtr creationResult = IntPtr.Zero; + IntPtr windowsImageHandle = IntPtr.Zero; + int rc = -1; + + windowsImageHandle = NativeMethods.WimCreateFile(imageFile, access, mode, 0, 0, out creationResult); + rc = Marshal.GetLastWin32Error(); + if (windowsImageHandle == IntPtr.Zero) + { + // + //Everything failed; throw an exception + // + throw new System.InvalidOperationException(string.Format(CultureInfo.CurrentCulture, + "Unable to open/create .wim file {0}. Error = {1}", + imageFile, rc)); + } + + return windowsImageHandle; + } + + [DllImport("Wimgapi.dll", + ExactSpelling = true, + EntryPoint = "WIMCloseHandle", + CallingConvention = CallingConvention.StdCall, + SetLastError = true)] + private static extern + bool + WimCloseHandle( + IntPtr Handle + ); + + /// + ///Closes an open .wim file or an image handle. + /// + ///Handle to an open imaging-based object. + ///If the function succeeds, the return value is nonzero. + ///If the function fails, the return value is zero. + public + static + void + CloseHandle(IntPtr handle) + { + bool status = NativeMethods.WimCloseHandle(handle); + int rc = Marshal.GetLastWin32Error(); + if (status == false) + { + // + //Throw an exception + // + throw new System.InvalidOperationException(string.Format(CultureInfo.CurrentCulture, + "Unable to close image handle. Error = {0}", rc)); + } + } + + [DllImport("Wimgapi.dll", + ExactSpelling = true, + EntryPoint = "WIMSetTemporaryPath", + CallingConvention = CallingConvention.StdCall, + SetLastError = true)] + private static extern + bool + WimSetTemporaryPath( + IntPtr Handle, + [MarshalAs(UnmanagedType.LPWStr)] string TemporaryPath + ); + + /// + ///Sets the location where temporary imaging files are to be stored. + /// + ///Handle to a WIM file returned by CreateFile + ///String value of path to set as a temporary location. + ///If the function succeeds, the return value is nonzero. + ///If the function fails, the return value is NULL. + public + static + void + SetTemporaryPath(IntPtr handle, string temporaryPath) + { + bool status = NativeMethods.WimSetTemporaryPath(handle, temporaryPath); + int rc = Marshal.GetLastWin32Error(); + if (status == false) + { + // + //Throw an exception + // + throw new System.InvalidOperationException(string.Format(CultureInfo.CurrentCulture, "Unable to set temporary path. Error = {0}", rc)); + } + } + + [DllImport("Wimgapi.dll", + ExactSpelling = true, + EntryPoint = "WIMLoadImage", + CallingConvention = CallingConvention.StdCall, + SetLastError = true)] + private static extern + IntPtr + WimLoadImage( + IntPtr Handle, + uint ImageIndex + ); + + /// + ///Loads a volume image or from within a .wim file. + /// + ///Wim handle. + ///Index of the image to load. + ///If the function succeeds, the return value is a handle to an object representing the volume image. + ///If the function fails, the return value is NULL. + public + static + IntPtr + LoadImage(IntPtr handle, int imageIndex) + { + //Load the image data based on the .wim handle + // + IntPtr hWim = NativeMethods.WimLoadImage(handle, (uint)imageIndex); + int rc = Marshal.GetLastWin32Error(); + if (hWim == IntPtr.Zero) + { + // + //Throw an exception + // + throw new System.InvalidOperationException(string.Format(CultureInfo.CurrentCulture, "Unable to load image. Error = {0}", rc)); + } + + return hWim; + + } + + [DllImport("Wimgapi.dll", + ExactSpelling = true, + EntryPoint = "WIMCaptureImage", + CallingConvention = CallingConvention.StdCall, + SetLastError = true)] + private static extern + IntPtr + WimCaptureImage( + IntPtr Handle, + [MarshalAs(UnmanagedType.LPWStr)] string Path, + uint CaptureFlags + ); + + /// + ///Captures an image from a drive root or from a directory path and stores it in an image file. + /// + ///Handle to a .wim file returned by CreateFile. + ///Drive root or directory path from where the image data will be captured. + ///Handle to an object representing the volume image. If the function fails, the return value is NULL. + public + static + IntPtr + CaptureImage(IntPtr handle, string path) + { + IntPtr hImage = NativeMethods.WimCaptureImage(handle, path, 0); + int rc = Marshal.GetLastWin32Error(); + if (hImage == IntPtr.Zero) + { + // + //Throw an exception + // + throw new System.InvalidOperationException(string.Format(CultureInfo.CurrentCulture, + "Failed to capture image from {0}. Error = {1}", path, rc)); + } + return hImage; + } + + /// + ///Gets the number of volume images stored in a .wim file. + /// + ///Handle to a .wim file returned by CreateFile. + ///The number of images within the .wim file. + [DllImport("Wimgapi.dll", + ExactSpelling = true, + EntryPoint = "WIMGetImageCount", + CallingConvention = CallingConvention.StdCall, + SetLastError = true)] + private static extern + int + WimGetImageCount( + IntPtr Handle + ); + + /// + ///Returns the number of volume images stored in a .wim file. + /// + ///Handle to a .wim file returned by WIMCreateFile. + ///The return value is the number of images within the .wim file. + ///If this value is zero, then the .wim file is invalid or does not contain any images that can be applied. + /// + public + static + int + GetImageCount(IntPtr windowsImageHandle) + { + int count = NativeMethods.WimGetImageCount(windowsImageHandle); + int rc = Marshal.GetLastWin32Error(); + if (count == -1) + { + // + //Throw an exception + // + throw new System.InvalidOperationException(string.Format(CultureInfo.CurrentCulture, "Unable to get image count. Error = {0}", rc)); + } + + return count; + } + + //[DllImport("Wimgapi.dll", + // ExactSpelling = true, + // EntryPoint = "WIMMountImageHandle", + // CallingConvention = CallingConvention.StdCall, + // SetLastError = true)] + //private static extern + //bool + //WIMMountImageHandle( + // IntPtr hImage, + // [MarshalAs(UnmanagedType.LPWStr)] string pszMountPath, + // uint dwMountFlags + // ); + ///// + /////Mounts an image in a .wim file to the specified directory. + ///// + /////Returns TRUE and sets the LastError to ERROR_SUCCESS. + /////Returns FALSE in case of a failure and the LastError is set to the appropriate Win32 error value. + ///// + //public + //static + //void + //MountImageHandle(string mountPath, ) + //{ + // bool status = false; + // int rc; + + // try + // { + // status = NativeMethods.WimMountImage(mountPath, + // windowsImageFileName, + // (uint)imageIndex, + // System.Environment.GetEnvironmentVariable("temp")); + // rc = Marshal.GetLastWin32Error(); + // } + // catch (System.StackOverflowException) + // { + // // + // //Throw an exception + // // + // throw new System.InvalidOperationException(string.Format(CultureInfo.CurrentCulture, + // "Unable to mount image {0} to {1}.", windowsImageFileName, mountPath)); + // } + // if (status == false) + // { + // // + // //Throw an exception + // // + // throw new System.InvalidOperationException(string.Format(CultureInfo.CurrentCulture, + // "Unable to mount image {0} to {1}. Error = {2}", + // windowsImageFileName, mountPath, rc)); + // } + //} + + + [DllImport("Wimgapi.dll", + ExactSpelling = true, + EntryPoint = "WIMMountImage", + CallingConvention = CallingConvention.StdCall, + SetLastError = true)] + private static extern + bool + WimMountImage( + [MarshalAs(UnmanagedType.LPWStr)] string MountPath, + [MarshalAs(UnmanagedType.LPWStr)] string WimFileName, + uint ImageIndex, + [MarshalAs(UnmanagedType.LPWStr)] string TemporaryPath + + ); + + /// + ///Mounts an image in a .wim file to the specified directory. + /// + ///Returns TRUE and sets the LastError to ERROR_SUCCESS. + ///Returns FALSE in case of a failure and the LastError is set to the appropriate Win32 error value. + /// + public + static + void + MountImage(string mountPath, string windowsImageFileName, int imageIndex, string temporaryPath) + { + bool status = false; + int rc; + + try + { + status = NativeMethods.WimMountImage(mountPath, + windowsImageFileName, + (uint)imageIndex, + temporaryPath); + rc = Marshal.GetLastWin32Error(); + } + catch (System.StackOverflowException) + { + // + //Throw an exception + // + throw new System.InvalidOperationException(string.Format(CultureInfo.CurrentCulture, + "Unable to mount image {0} to {1}.", windowsImageFileName, mountPath)); + } + if (status == false) + { + // + //Throw an exception + // + throw new System.InvalidOperationException(string.Format(CultureInfo.CurrentCulture, + "Unable to mount image {0} to {1}. Error = {2}", + windowsImageFileName, mountPath, rc)); + } + } + + [DllImport("Wimgapi.dll", + ExactSpelling = true, + EntryPoint = "WIMApplyImage", + CallingConvention = CallingConvention.StdCall, + SetLastError = true)] + private static extern + bool + WimApplyImage( + IntPtr Handle, + [MarshalAs(UnmanagedType.LPWStr)] string Path, + uint Flags + ); + + /// + ///Applies an image to a drive root or to a directory path from a .wim file. + /// + ///If the function succeeds, the return value is nonzero. + ///If the function fails, the return value is zero + public + static + void + ApplyImage(IntPtr imageHandle, string applicationPath) + { + // + //Call WimApplyImage always with the Index flag for performance reasons. + // + bool status = NativeMethods.WimApplyImage(imageHandle, applicationPath, NativeMethods.WIM_FLAG_INDEX); + int rc = Marshal.GetLastWin32Error(); + if (status == false) + { + // + //Throw an exception + // + throw new System.InvalidOperationException(string.Format(CultureInfo.CurrentCulture, + "Unable to apply image to {0}. Error = {1}", applicationPath, rc)); + } + } + + [DllImport("Wimgapi.dll", + ExactSpelling = true, + EntryPoint = "WIMGetImageInformation", + CallingConvention = CallingConvention.StdCall, + SetLastError = true)] + private static extern + bool + WimGetImageInformation( + IntPtr Handle, + out IntPtr ImageInfo, + out IntPtr SizeOfImageInfo + ); + + /// + ///Returns information about an image within the .wim file. + /// + ///Handle returned by CreateImage, LoadImage + ///If the function succeeds, the return value is nonzero. + ///If the function fails, the return value is zero. + /// + public + static + string + GetImageInformation(IntPtr handle) + { + IntPtr info = IntPtr.Zero, sizeOfInfo = IntPtr.Zero; + bool status; + + status = NativeMethods.WimGetImageInformation(handle, out info, out sizeOfInfo); + int rc = Marshal.GetLastWin32Error(); + + if (status == false) + { + // + //Throw an exception + // + throw new System.InvalidOperationException(string.Format(CultureInfo.CurrentCulture, + "Unable to get image information. Error = {0}", rc)); + } + string s = Marshal.PtrToStringUni(info); + + //If the function succeeds, return the pointer to the string. Otherwise, return NULL. + // + return s; + } + + [DllImport("Wimgapi.dll", + ExactSpelling = true, + EntryPoint = "WIMSetImageInformation", + CallingConvention = CallingConvention.StdCall, + SetLastError = true)] + private static extern + bool + WimSetImageInformation( + IntPtr Handle, + IntPtr ImageInfo, + uint SizeOfImageInfo + ); + + /// + ///Stores information about an image within the .wim file. + /// + ///Handle returned by CreateImage, LoadImage + ///String containing the unicode XML data to set. + ///If the function succeeds, the return value is nonzero. + ///If the function fails, the return value is zero. + public + static + void + SetImageInformation(IntPtr handle, string imageInfo) + { + //Create a byte array for the stream, allocate some unmanaged memory, and then copy the bytes to the unmanaged memory. + // + byte[] byteBuffer = Encoding.Unicode.GetBytes(imageInfo); + int byteBufferSize = byteBuffer.Length; + IntPtr xmlBuffer = Marshal.AllocHGlobal(byteBufferSize); + Marshal.Copy(byteBuffer, 0, xmlBuffer, byteBufferSize); + + bool status = NativeMethods.WimSetImageInformation(handle, xmlBuffer, (uint)byteBufferSize); + int rc = Marshal.GetLastWin32Error(); + if (status == false) + { + // + //Throw an exception + // + throw new System.InvalidOperationException(string.Format(CultureInfo.CurrentCulture, + "Unable to set image information. Error = {0}", rc)); + } + } + + [DllImport("Wimgapi.dll", + ExactSpelling = true, + EntryPoint = "WIMUnmountImage", + CallingConvention = CallingConvention.StdCall, + SetLastError = true)] + private static extern + bool + WimUnmountImage( + [MarshalAs(UnmanagedType.LPWStr)] string MountPath, + [MarshalAs(UnmanagedType.LPWStr)] string WimFileName, + uint ImageIndex, + bool CommitChanges + ); + + /// + ///Unmounts a mounted image in a .wim file from the specified directory. + /// + ///Returns TRUE and sets the LastError to ERROR_SUCCESS. Returns FALSE in case of a failure and the LastError is set + ///to the appropriate Win32 error value. + public + static + void + DismountImage(string mountPath, string wimdowsImageFileName, int imageIndex, bool commitChanges) + { + bool status = false; + int rc; + + try + { + status = NativeMethods.WimUnmountImage(mountPath, wimdowsImageFileName, (uint)imageIndex, commitChanges); + rc = Marshal.GetLastWin32Error(); + } + catch (System.StackOverflowException ex) + { + // + //Throw an exception + // + throw new System.StackOverflowException(string.Format(CultureInfo.CurrentCulture, + "Unable to unmount image {0} from {1}.", wimdowsImageFileName, mountPath), + ex.InnerException); + } + if (status == false) + { + // + //Throw an exception + // + throw new System.InvalidOperationException(string.Format(CultureInfo.CurrentCulture, + "Unable to unmount image {0} from {1}. Error = {2}", + wimdowsImageFileName, mountPath, rc)); + } + } + + /// + ///User-defined function used with the RegisterMessageCallback or UnregisterMessageCallback function. + /// + ///Specifies the message being sent. + ///Specifies additional message information. The contents of this parameter depend on the value of the + ///MessageId parameter. + ///Specifies additional message information. The contents of this parameter depend on the value of the + ///MessageId parameter. + ///Specifies the user-defined value passed to RegisterCallback. + /// + ///To indicate success and to enable other subscribers to process the message return WIM_MSG_SUCCESS. + ///To prevent other subscribers from receiving the message, return WIM_MSG_DONE. + ///To cancel an image apply or capture, return WIM_MSG_ABORT_IMAGE when handling the WIM_MSG_PROCESS message. + /// + public + delegate + uint + MessageCallback( + uint MessageId, + IntPtr wParam, + IntPtr lParam, + IntPtr UserData + ); + + [DllImport("Wimgapi.dll", + ExactSpelling = true, + EntryPoint = "WIMRegisterMessageCallback", + CallingConvention = CallingConvention.StdCall, + SetLastError = true)] + private static extern + uint + WimRegisterMessageCallback( + IntPtr hWim, + MessageCallback MessageProc, + IntPtr ImageInfo + ); + + /// + ///Registers a function to be called with imaging-specific data. + /// + public + static + void + RegisterCallback(MessageCallback callback) + { + uint callbackZeroBasedIndex = NativeMethods.WimRegisterMessageCallback(IntPtr.Zero, callback, IntPtr.Zero); + int rc = Marshal.GetLastWin32Error(); + if (rc != 0) + { + // + //Throw an exception + // + throw new System.InvalidOperationException(string.Format(CultureInfo.CurrentCulture, "Unable to register message callback.")); + } + } + + [DllImport("Wimgapi.dll", + ExactSpelling = true, + EntryPoint = "WIMUnregisterMessageCallback", + CallingConvention = CallingConvention.StdCall, + SetLastError = true)] + private static extern + bool + WimUnregisterMessageCallback( + IntPtr hWim, + MessageCallback MessageProc + ); + + /// + ///Unregisters a function from being called with imaging-specific data. + /// + ///Callback to be unregistered. + public + static + void + UnregisterMessageCallback(MessageCallback registeredCallback) + { + bool status = NativeMethods.WimUnregisterMessageCallback(IntPtr.Zero, registeredCallback); + int rc = Marshal.GetLastWin32Error(); + if (status != true) + { + // + // Throw an exception + // + throw new System.InvalidOperationException(string.Format(CultureInfo.CurrentCulture, "Unable to unregister message callback.")); + } + } + + private const uint WM_APP = 0x8000; + + /// + ///Imaging Messages + /// + public enum WIMMessage : uint + { + WIM_MSG = WM_APP + 0x1476, + WIM_MSG_TEXT, + /// + ///Indicates an update in the progress of an image application. + /// + WIM_MSG_PROGRESS, + /// + ///Enables the caller to prevent a file or a directory from being captured or applied. + /// + WIM_MSG_PROCESS, + /// + ///Indicates that volume information is being gathered during an image capture. + /// + WIM_MSG_SCANNING, + /// + ///Indicates the number of files that will be captured or applied. + /// + WIM_MSG_SETRANGE, + /// + ///Indicates the number of files that have been captured or applied. + /// + WIM_MSG_SETPOS, + /// + ///Indicates that a file has been either captured or applied. + /// + WIM_MSG_STEPIT, + /// + ///Enables the caller to prevent a file resource from being compressed during a capture. + /// + WIM_MSG_COMPRESS, + /// + ///Alerts the caller that an error has occurred while capturing or applying an image. + /// + WIM_MSG_ERROR, + /// + ///Enables the caller to align a file resource on a particular alignment boundary. + /// + WIM_MSG_ALIGNMENT, + WIM_MSG_RETRY, + /// + ///Enables the caller to align a file resource on a particular alignment boundary. + /// + WIM_MSG_SPLIT, + WIM_MSG_FILEINFO, + WIM_MSG_INFO, + WIM_MSG_WARNING, + WIM_MSG_CHK_PROCESS, + WIM_MSG_WARNING_OBJECTID, + WIM_MSG_STALE_MOUNT_DIR, + WIM_MSG_STALE_MOUNT_FILE, + WIM_MSG_MOUNT_CLEANUP_PROGRESS, + WIM_MSG_SUCCESS = 0x00000000, + WIM_MSG_ABORT_IMAGE = 0xFFFFFFFF + }; + + /// + ///Capture will do byte-by-byte verification of single instance files. + /// + public const uint WIM_FLAG_VERIFY = 0x00000002; + /// + ///Specifies that the image is to be sequentially read for caching/performance purposes. + /// + public const uint WIM_FLAG_INDEX = 0x00000004; + + } + + /// + ///Maps CreateFileAccess to CreateFileAccessPrivate + /// + /// + private + CreateFileAccessPrivate + GetMappedFileAccess(CreateFileAccess access) + { + // + //Map the file access specified from an int to uint. + // + CreateFileAccessPrivate fileAccess; + switch (access) + { + case CreateFileAccess.Read: + fileAccess = CreateFileAccessPrivate.Read; + break; + case CreateFileAccess.Write: + fileAccess = CreateFileAccessPrivate.Write; + break; + default: + throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, "No file access level specified.")); + } + return fileAccess; + } + + //[CLSCompliant(false)] + [FlagsAttribute] + private + enum + CreateFileAccessPrivate : uint + { + /// + ///Mapping from CreateFileAccess.Read + /// + Read = 0x80000000, + /// + ///Mapping from CreateFileAccess.Write + /// + Write = 0x40000000 + } + + /// + ///Image event messages. + /// + //[CLSCompliant(false)] + public + enum + ImageEventMessage : uint + { + /// + ///Enables the caller to prevent a file or a directory from being captured or applied. + /// + Progress = NativeMethods.WIMMessage.WIM_MSG_PROGRESS, + /// + ///Notification sent to enable the caller to prevent a file or a directory from being captured or applied. + ///To prevent a file or a directory from being captured or applied, call WindowsImageContainer.SkipFile(). + /// + Process = NativeMethods.WIMMessage.WIM_MSG_PROCESS, + /// + ///Enables the caller to prevent a file resource from being compressed during a capture. + /// + Compress = NativeMethods.WIMMessage.WIM_MSG_COMPRESS, + /// + ///Alerts the caller that an error has occurred while capturing or applying an image. + /// + Error = NativeMethods.WIMMessage.WIM_MSG_ERROR, + /// + ///Enables the caller to align a file resource on a particular alignment boundary. + /// + Alignment = NativeMethods.WIMMessage.WIM_MSG_ALIGNMENT, + /// + ///Enables the caller to align a file resource on a particular alignment boundary. + /// + Split = NativeMethods.WIMMessage.WIM_MSG_SPLIT, + /// + ///Indicates that volume information is being gathered during an image capture. + /// + Scanning = NativeMethods.WIMMessage.WIM_MSG_SCANNING, + /// + ///Indicates the number of files that will be captured or applied. + /// + SetRange = NativeMethods.WIMMessage.WIM_MSG_SETRANGE, + /// + ///Indicates the number of files that have been captured or applied. + /// + SetPos = NativeMethods.WIMMessage.WIM_MSG_SETPOS, + /// + ///Indicates that a file has been either captured or applied. + /// + StepIt = NativeMethods.WIMMessage.WIM_MSG_STEPIT, + /// + ///Success. + /// + Success = NativeMethods.WIMMessage.WIM_MSG_SUCCESS, + /// + ///Abort. + /// + Abort = NativeMethods.WIMMessage.WIM_MSG_ABORT_IMAGE, + + MountCleanupProgress = NativeMethods.WIMMessage.WIM_MSG_MOUNT_CLEANUP_PROGRESS + } + + // + //WindowsImageContainer Member Data + // + private IntPtr m_ImageContainerHandle; //Handle to the .wim file + private string m_WindowsImageFilePath; //Path to the .wim file + + private WindowsImage[] m_Images; //Array of image objects inside a .wim file + private int m_ImageCount; //Number of images inside a .wim file + + // + //DO NOT CHANGE! + // + private static NativeMethods.MessageCallback m_MessageCallback; + } + + /// + ///Describes the file that is being processed for the ProcessFileEvent. + /// + public + class + DefaultImageEventArgs : EventArgs + { + /// + ///Default constructor. + /// + public + DefaultImageEventArgs(IntPtr wideParameter, IntPtr leftParameter, IntPtr userData) + { + m_wParam = wideParameter; + m_lParam = leftParameter; + m_UserData = userData; + + + } + /// + ///wParam + /// + public IntPtr WideParameter + { + get + { + return m_wParam; + } + } + /// + ///lParam + /// + public IntPtr LeftParameter + { + get + { + return m_lParam; + } + } + /// + ///UserData + /// + public IntPtr UserData + { + get + { + return m_UserData; + } + } + + private IntPtr m_wParam; + private IntPtr m_lParam; + private IntPtr m_UserData; + } + + /// + ///Describes the file that is being processed for the ProcessFileEvent. + /// + public + class + ProcessFileEventArgs : EventArgs + { + /// + ///Default constructor. + /// + ///Fully qualified path and file name. For example: c:\file.sys. + ///Default is false - skip file and continue. + ///Set to true to abort the entire image capture. + public + ProcessFileEventArgs(string file, IntPtr skipFileFlag) + { + m_FilePath = file; + m_SkipFileFlag = skipFileFlag; + } + + /// + ///Skip file from being imaged. + /// + public + void + SkipFile() + { + byte[] byteBuffer = { + 0 + }; + int byteBufferSize = byteBuffer.Length; + Marshal.Copy(byteBuffer, 0, m_SkipFileFlag, byteBufferSize); + } + + /// + ///Fully qualified path and file name. + /// + public string FilePath + { + get + { + string stringToReturn = ""; + if (m_FilePath != null) + { + stringToReturn = m_FilePath; + } + return stringToReturn; + } + } + + /// + ///Flag to indicate if the entire image capture should be aborted. + ///Default is false - skip file and continue. Setting to true will + ///abort the entire image capture. + /// + public bool Abort + { + set + { + m_Abort = value; + } + + get + { + return m_Abort; + } + } + private string m_FilePath; + private bool m_Abort; + private IntPtr m_SkipFileFlag; + + } +} diff --git a/Disco.ClientBootstrapper/NullStatus.cs b/Disco.ClientBootstrapper/NullStatus.cs new file mode 100644 index 00000000..998f48fc --- /dev/null +++ b/Disco.ClientBootstrapper/NullStatus.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Disco.ClientBootstrapper +{ + class NullStatus : IStatus + { + public void UpdateStatus(string Heading, string SubHeading, string Message, bool? ShowProgress = null, int? Progress = null) + { + // Do Nothing + } + } +} diff --git a/Disco.ClientBootstrapper/Program.cs b/Disco.ClientBootstrapper/Program.cs new file mode 100644 index 00000000..847c1a2c --- /dev/null +++ b/Disco.ClientBootstrapper/Program.cs @@ -0,0 +1,191 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Forms; +using System.Threading; + +namespace Disco.ClientBootstrapper +{ + static class Program + { + public static IStatus Status { get; set; } + public static BootstrapperLoop BootstrapperLoop { get; set; } + public static InstallLoop InstallLoop { get; set; } + + public static List PostBootstrapperActions { get; set; } + public static bool AllowUninstall { get; set; } + public static bool ApplicationExiting { get; set; } + public static Lazy InlinePath = new Lazy(() => + { + return System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); + }); + + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main(string[] args) + { + Application.ThreadException += new ThreadExceptionEventHandler(Application_ThreadException); + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + + if (args.Length > 0) + { + switch (args[0].ToLower()) + { + case "/install": + var statusForm = new FormStatus(); + Status = statusForm; + statusForm.Show(); + string installLocation = null; + string wimImage = null; + if (args.Length > 1) + installLocation = args[1]; + if (args.Length > 2) + wimImage = args[2]; + InstallLoop = new InstallLoop(installLocation, wimImage); + InstallLoop.Start(new InstallLoop.CompleteCallback(InstallComplete)); + Application.Run(); + return; + case "/uninstall": + AllowUninstall = true; + Status = new NullStatus(); + Interop.InstallInterop.Uninstall(); + return; + case "/allowuninstall": + AllowUninstall = true; + break; + default: + AllowUninstall = false; + break; + } + } + + if (Status == null) + { + var statusForm = new FormStatus(); + Status = statusForm; + statusForm.Show(); + } + + BootstrapperLoop = new BootstrapperLoop(Status, new BootstrapperLoop.LoopCompleteCallback(LoopComplete)); + BootstrapperLoop.Start(); + + Application.Run(); + } + + static void Application_ThreadException(object sender, ThreadExceptionEventArgs e) + { + WriteAppError(e.Exception); + } + + public static void WriteAppError(Exception ex) + { + try + { + string AppErrorPath = string.Format("{0}{1}", System.Reflection.Assembly.GetExecutingAssembly().Location, ".errors.txt"); + System.Text.StringBuilder ErrorMessage = new System.Text.StringBuilder(); + ErrorMessage.AppendLine(); + ErrorMessage.AppendLine(DateTime.Now.ToLongDateString()); + ErrorMessage.AppendLine(DateTime.Now.ToLongTimeString()); + ErrorMessage.AppendLine(string.Format("Type: {0}", ex.GetType().FullName)); + ErrorMessage.AppendLine(string.Format("Message: {0}", ex.Message)); + ErrorMessage.AppendLine(string.Format("Source: {0}", ex.Source)); + ErrorMessage.AppendLine(string.Format("Stack: {0}", ex.StackTrace)); + System.IO.File.AppendAllText(AppErrorPath, ErrorMessage.ToString()); + } + catch (Exception) { } + } + + public static void LoopComplete() + { + // Run Post Actions + if (PostBootstrapperActions != null) + { + // Check Uninstall + if (AllowUninstall && PostBootstrapperActions.Contains("UninstallBootstrapper")) + { + Interop.InstallInterop.Uninstall(); + } + + // Check ShutdownActions + if (PostBootstrapperActions.Contains("Shutdown")) + { + Status.UpdateStatus("System Preparation (Bootstrapper)", "Shutting Down; Finished...", string.Empty, false, 0); + SleepThread(4000, true); + Interop.ShutdownInterop.Shutdown(); + } + else + if (PostBootstrapperActions.Contains("Reboot")) + { + Status.UpdateStatus("System Preparation (Bootstrapper)", "Rebooting; Finished...", string.Empty, false, 0); + SleepThread(4000, true); + Interop.ShutdownInterop.Reboot(); + } + else + { + Status.UpdateStatus("System Preparation (Bootstrapper)", "Starting System; Finished...", string.Empty, false, 0); + SleepThread(2000, true); + } + } + else + { + Status.UpdateStatus("System Preparation (Bootstrapper)", "Starting System; Finished...", string.Empty, false, 0); + SleepThread(2000, true); + } + + ExitApplication(); + } + + public static void InstallComplete() + { + ExitApplication(); + } + + public static void ExitApplication() + { + if (!ApplicationExiting) + { + ApplicationExiting = true; + if (BootstrapperLoop != null) + { + if (BootstrapperLoop.LoopThread != null) + { + if (BootstrapperLoop.LoopThread.ThreadState == System.Threading.ThreadState.WaitSleepJoin) + { + BootstrapperLoop.LoopThread.Interrupt(); + } + if (BootstrapperLoop.LoopThread.ThreadState == System.Threading.ThreadState.Running) + { + BootstrapperLoop.LoopThread.Abort(); + } + } + } + Application.Exit(); + } + } + + public static void Trace(string Format, params string[] args) + { + System.Diagnostics.Debug.WriteLine(Format, args); + } + + public static void SleepThread(int millisecondsTimeout, bool updateUI) + { + if (updateUI) + { + for (int i = 0; i < millisecondsTimeout; i += 500) + { + int progress = Convert.ToInt32(((Convert.ToDouble(i) / Convert.ToDouble(millisecondsTimeout)) * 100)); + Status.UpdateStatus(null, null, null, true, progress); + Thread.Sleep(500); + } + } + else + { + Thread.Sleep(millisecondsTimeout); + } + } + } +} diff --git a/Disco.ClientBootstrapper/Properties/AssemblyInfo.cs b/Disco.ClientBootstrapper/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..80ae7a9a --- /dev/null +++ b/Disco.ClientBootstrapper/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using 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. +[assembly: AssemblyTitle("Disco - Client Bootstrapper")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Disco")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// 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. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("5d11beb8-8b5f-4842-8604-9f2d8284f04d")] + +// 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.*")] +[assembly: AssemblyVersion("1.2.0131.2002")] +[assembly: AssemblyFileVersion("1.2.0131.2002")] diff --git a/Disco.ClientBootstrapper/Properties/Resources.Designer.cs b/Disco.ClientBootstrapper/Properties/Resources.Designer.cs new file mode 100644 index 00000000..d3a32f4e --- /dev/null +++ b/Disco.ClientBootstrapper/Properties/Resources.Designer.cs @@ -0,0 +1,73 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.17929 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Disco.ClientBootstrapper.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // 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. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Disco.ClientBootstrapper.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Background_BW { + get { + object obj = ResourceManager.GetObject("Background_BW", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/Disco.ClientBootstrapper/Properties/Resources.resx b/Disco.ClientBootstrapper/Properties/Resources.resx new file mode 100644 index 00000000..729a7a7a --- /dev/null +++ b/Disco.ClientBootstrapper/Properties/Resources.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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\Background-BW.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Disco.ClientBootstrapper/Properties/Settings.Designer.cs b/Disco.ClientBootstrapper/Properties/Settings.Designer.cs new file mode 100644 index 00000000..fbfd459f --- /dev/null +++ b/Disco.ClientBootstrapper/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.225 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Disco.ClientBootstrapper.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/Disco.ClientBootstrapper/Properties/Settings.settings b/Disco.ClientBootstrapper/Properties/Settings.settings new file mode 100644 index 00000000..abf36c5d --- /dev/null +++ b/Disco.ClientBootstrapper/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Disco.ClientBootstrapper/Properties/app.manifest b/Disco.ClientBootstrapper/Properties/app.manifest new file mode 100644 index 00000000..66b901b5 --- /dev/null +++ b/Disco.ClientBootstrapper/Properties/app.manifest @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Disco.ClientBootstrapper/Resources/Background-BW.png b/Disco.ClientBootstrapper/Resources/Background-BW.png new file mode 100644 index 0000000000000000000000000000000000000000..88bded4160b1047860fe73aec200aacc828bdc12 GIT binary patch literal 3506 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 0 Then +' Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2") +' Do +' Set objWMIProcesses = objWMIService.ExecQuery("SELECT ProcessId FROM Win32_Process WHERE ProcessId=" & WaitForProcessID) +' If objWMIProcesses.Count = 0 Then +' Exit Do +' End If +' WScript.Sleep 500 +' Loop +' Err.Clear +'End If +'Set objWMIService = Nothing +'Set objWMIProcesses = Nothing + +Set objShell = CreateObject("WScript.Shell") +Set objFSO = CreateObject("Scripting.FileSystemObject") + +Do + Call Err.Clear() + If objFSO.FolderExists(DeleteDirectory) Then + objFSO.DeleteFolder DeleteDirectory, True + End If + WScript.Sleep 1000 +Loop Until Err.Number = 0 + +GroupPolicyScriptLocation = objShell.ExpandEnvironmentStrings("%WinDir%\System32\GroupPolicy\Machine\Scripts\scripts.ini") +If objFSO.FileExists(GroupPolicyScriptLocation) Then + Call objFSO.DeleteFile(GroupPolicyScriptLocation) +End If + +Set objFSO = Nothing + +objShell.RegDelete("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\HideStartupScripts") +objShell.RegDelete("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\RunStartupScriptSync") +objShell.RegDelete("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Shutdown\") +objShell.RegDelete("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Startup\0\0\") +objShell.RegDelete("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Startup\0\") +objShell.RegDelete("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\Scripts\Startup\") +objShell.RegDelete("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Shutdown\") +objShell.RegDelete("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Startup\0\0\") +objShell.RegDelete("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Startup\0\") +objShell.RegDelete("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Startup\") + +Set objShell = Nothing \ No newline at end of file diff --git a/Disco.Configuration/Disco.Configuration.vbproj b/Disco.Configuration/Disco.Configuration.vbproj new file mode 100644 index 00000000..c1df6e66 --- /dev/null +++ b/Disco.Configuration/Disco.Configuration.vbproj @@ -0,0 +1,116 @@ + + + + Debug + AnyCPU + + + + + {CD7BB28C-B74D-4880-8B7E-4487AB5E6AFC} + Library + Disco.Configuration + Disco.Configuration + 512 + Windows + v4.0 + + + true + full + true + true + bin\Debug\ + Disco.Configuration.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + pdbonly + false + true + true + bin\Release\ + Disco.Configuration.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + 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 + + + + + {40F222A9-CC05-4035-AFF4-15A78250EF2B} + Disco.Models + + + + + \ No newline at end of file diff --git a/Disco.Configuration/My Project/Application.Designer.vb b/Disco.Configuration/My Project/Application.Designer.vb new file mode 100644 index 00000000..6015516a --- /dev/null +++ b/Disco.Configuration/My Project/Application.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.235 +' +' 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/Disco.Configuration/My Project/Application.myapp b/Disco.Configuration/My Project/Application.myapp new file mode 100644 index 00000000..0167050e --- /dev/null +++ b/Disco.Configuration/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 1 + true + diff --git a/Disco.Configuration/My Project/AssemblyInfo.vb b/Disco.Configuration/My Project/AssemblyInfo.vb new file mode 100644 index 00000000..0070d33c --- /dev/null +++ b/Disco.Configuration/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +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/Disco.Configuration/My Project/Resources.Designer.vb b/Disco.Configuration/My Project/Resources.Designer.vb new file mode 100644 index 00000000..72cffc23 --- /dev/null +++ b/Disco.Configuration/My Project/Resources.Designer.vb @@ -0,0 +1,62 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.235 +' +' 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.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("Disco.Configuration.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(ByVal value As Global.System.Globalization.CultureInfo) + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Disco.Configuration/My Project/Resources.resx b/Disco.Configuration/My Project/Resources.resx new file mode 100644 index 00000000..ffecec85 --- /dev/null +++ b/Disco.Configuration/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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/Disco.Configuration/My Project/Settings.Designer.vb b/Disco.Configuration/My Project/Settings.Designer.vb new file mode 100644 index 00000000..4cd7656c --- /dev/null +++ b/Disco.Configuration/My Project/Settings.Designer.vb @@ -0,0 +1,73 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.235 +' +' 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.Disco.Configuration.My.MySettings + Get + Return Global.Disco.Configuration.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/Disco.Configuration/My Project/Settings.settings b/Disco.Configuration/My Project/Settings.settings new file mode 100644 index 00000000..377f56d6 --- /dev/null +++ b/Disco.Configuration/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Disco.Data/App.config b/Disco.Data/App.config new file mode 100644 index 00000000..56b8a360 --- /dev/null +++ b/Disco.Data/App.config @@ -0,0 +1,20 @@ + + + + +
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Disco.Data/Configuration/ConfigurationBase.cs b/Disco.Data/Configuration/ConfigurationBase.cs new file mode 100644 index 00000000..529a6555 --- /dev/null +++ b/Disco.Data/Configuration/ConfigurationBase.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Disco.Data.Configuration +{ + public abstract class ConfigurationBase + { + private ConfigurationContext _context; + + public ConfigurationContext Context + { + get + { + return _context; + } + } + public abstract string Scope { get; } + + public ConfigurationBase(ConfigurationContext Context) + { + this._context = Context; + } + + protected void SetValue(string Key, ValueType Value) + { + this.Context.SetConfigurationValue(this.Scope, Key, Value); + } + protected ValueType GetValue(string Key, ValueType Default) + { + return this.Context.GetConfigurationValue(this.Scope, Key, Default); + } + + } +} diff --git a/Disco.Data/Configuration/ConfigurationContext.cs b/Disco.Data/Configuration/ConfigurationContext.cs new file mode 100644 index 00000000..178fa632 --- /dev/null +++ b/Disco.Data/Configuration/ConfigurationContext.cs @@ -0,0 +1,472 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Data.Repository; +using Disco.Models.Repository; +using System.IO; +using System.Security.Cryptography; +using Disco.Models.BI.Interop.Community; +using Newtonsoft.Json; + +namespace Disco.Data.Configuration +{ + public class ConfigurationContext + { + private DiscoDataContext _dbContext; + private DiscoDataContext dbContext + { + get + { + if (_dbContext != null) + return _dbContext; + else + throw new InvalidOperationException("Cache-miss where Configuration Item requested from Cache-Only Configuration Context"); + } + } + + public bool CacheOnly + { + get + { + return _dbContext == null; + } + } + + public ConfigurationContext(DiscoDataContext dbContext) + { + this._dbContext = dbContext; + + // Init Modules + this.moduleBootstrapperConfiguration = new Lazy(() => new Modules.BootstrapperConfiguration(this)); + this.moduleDeviceProfilesConfiguration = new Lazy(() => new Modules.DeviceProfilesConfiguration(this)); + this.moduleOrganisationAddressesConfiguration = new Lazy(() => new Modules.OrganisationAddressesConfiguration(this)); + this.moduleWirelessConfiguration = new Lazy(() => new Modules.WirelessConfiguration(this)); + } + + #region Item Cache + + private static Dictionary> configDictionary = new Dictionary>(); + private static List configurationItems = new List(); + private static object configurationItemsLock = new object(); + + private void loadConfigurationItems(string Scope, bool Reload) + { + if (Reload || !configDictionary.ContainsKey(Scope)) + { + lock (configurationItemsLock) + { + if (Reload || !configDictionary.ContainsKey(Scope)) + { + var newItems = this.dbContext.ConfigurationItems.Where(ci => ci.Scope == Scope).ToArray(); + + if (configDictionary.ContainsKey(Scope)) + { + var existingItems = configDictionary[Scope]; + foreach (var existingItem in existingItems.Values) + { + configurationItems.Remove(existingItem); + } + } + configurationItems.AddRange(newItems); + configDictionary[Scope] = newItems.ToDictionary(ci => ci.Key); + } + } + } + } + public Dictionary> ConfigurationDictionary(string IncludingScope) + { + this.loadConfigurationItems(IncludingScope, false); + return configDictionary; + } + public ConfigurationItem ConfigurationItem(string Scope, string Key) + { + Dictionary scopeDict = default(Dictionary); + if (this.ConfigurationDictionary(Scope).TryGetValue(Scope, out scopeDict)) + { + ConfigurationItem item = default(ConfigurationItem); + if (scopeDict.TryGetValue(Key, out item)) + return item; + } + return null; + } + private List ConfigurationItems(string IncludingScope) + { + this.loadConfigurationItems(IncludingScope, false); + return configurationItems; + } + + #endregion + + #region Helpers + public ValueType GetConfigurationValue(string Scope, string Key, ValueType Default) + { + var ci = this.ConfigurationItem(Scope, Key); + if (ci == null) + return Default; + else + return (ValueType)Convert.ChangeType(ci.Value, typeof(ValueType)); + } + public void SetConfigurationValue(string Scope, string Key, ValueType Value) + { + if (CacheOnly) + throw new InvalidOperationException("Cannot save changes with a CacheOnly Context"); + + var ci = this.ConfigurationItem(Scope, Key); + if (ci == null && Value != null) + { + lock (configurationItemsLock) + { + ci = this.ConfigurationItem(Scope, Key); + if (ci == null) + { + // Create Configuration Item + ci = new ConfigurationItem() { Scope = Scope, Key = Key, Value = Value.ToString() }; + // Add Item to DB & Internal Collections + this.dbContext.ConfigurationItems.Add(ci); + this.ConfigurationItems(Scope).Add(ci); + this.ConfigurationDictionary(Scope)[Scope].Add(Key, ci); + ci = null; + } + } + } + if (ci != null) + { + lock (configurationItemsLock) + { + var entityInfo = dbContext.Entry(ci); + if (entityInfo.State == System.Data.EntityState.Detached) + { + // Reload Scope from DB + this.loadConfigurationItems(Scope, true); + ci = this.ConfigurationItem(Scope, Key); + } + + if (Value == null) + { + dbContext.ConfigurationItems.Remove(ci); + configurationItems.Remove(ci); + configDictionary[Scope].Remove(Key); + } + else + { + ci.Value = Value.ToString(); + } + } + } + } + + public static string ObsfucateValue(string Value) + { + if (string.IsNullOrEmpty(Value)) + return Value; + else + return Convert.ToBase64String(Encoding.Unicode.GetBytes(Value)); + } + public static string DeobsfucateValue(string ObsfucatedValue) + { + if (string.IsNullOrEmpty(ObsfucatedValue)) + return ObsfucatedValue; + else + return Encoding.Unicode.GetString(Convert.FromBase64String(ObsfucatedValue)); + } + #endregion + + #region Configuration Modules + + private Lazy moduleBootstrapperConfiguration; + private Lazy moduleDeviceProfilesConfiguration; + private Lazy moduleOrganisationAddressesConfiguration; + private Lazy moduleWirelessConfiguration; + + public Modules.BootstrapperConfiguration Bootstrapper + { + get + { + return moduleBootstrapperConfiguration.Value; + } + } + public Modules.DeviceProfilesConfiguration DeviceProfiles + { + get + { + return moduleDeviceProfilesConfiguration.Value; + } + } + public Modules.OrganisationAddressesConfiguration OrganisationAddresses + { + get + { + return moduleOrganisationAddressesConfiguration.Value; + } + } + public Modules.WirelessConfiguration Wireless + { + get + { + return moduleWirelessConfiguration.Value; + } + } + + #endregion + + #region System Configuration Items + + public string Scope { get { return "System"; } } + + public string DataStoreLocation + { + get + { + var result = this.GetConfigurationValue(this.Scope, "DataStoreLocation", null); + if (result == null) + { + var appDataPath = System.Web.HttpContext.Current.Server.MapPath("~/App_Data"); + if (appDataPath.EndsWith("\\")) + return appDataPath; + else + return string.Concat(appDataPath, '\\'); + } + else + return result; + } + set + { + if (value == null) + throw new ArgumentNullException("value"); + if (!System.IO.Directory.Exists(value)) + throw new System.IO.DirectoryNotFoundException(string.Format("DataStoreLocation: '{0}' could not be found", value)); + string storePath; + if (value.EndsWith("\\")) + storePath = value; + else + storePath = string.Concat(value, '\\'); + this.SetConfigurationValue(this.Scope, "DataStoreLocation", storePath); + } + } + public string PluginsLocation + { + get + { + return System.IO.Path.Combine(this.DataStoreLocation, @"Plugins\"); + } + } + public string PluginStorageLocation + { + get + { + return System.IO.Path.Combine(this.DataStoreLocation, @"PluginStorage\"); + } + } + #region Organisation Logo + private string OrganisationLogoPath + { + get + { + return System.IO.Path.Combine(DataStoreLocation, "OrganisationLogo.png"); + } + } + //private static string _OrganisationLogoHash; + //private static byte[] _OrganisationLogo; + //private static object _OrganisationLogoLock = new object(); + //private static void LoadOrganisationLogo(ConfigurationContext context, bool reload = false) + //{ + // if (_OrganisationLogoHash == null || reload) + // { + // lock (_OrganisationLogoLock) + // { + // if (_OrganisationLogoHash == null || reload) + // { + // _OrganisationLogo = null; + // _OrganisationLogoHash = null; + + // string organisationLogoPath = context.OrganisationLogoPath; + // if (System.IO.File.Exists(organisationLogoPath)) + // _OrganisationLogo = System.IO.File.ReadAllBytes(organisationLogoPath); + // } + // if (_OrganisationLogo == null || _OrganisationLogo.Length == 0) + // { + // _OrganisationLogo = Disco.Data.Properties.Resources.EmptyLogo; + // } + // if (_OrganisationLogoHash == null) + // { + // using (SHA256 h = SHA256.Create()) + // { + // _OrganisationLogoHash = Convert.ToBase64String(h.ComputeHash(_OrganisationLogo)); + // } + // } + // } + // } + //} + public string OrganisationLogoHash + { + get + { + var path = this.OrganisationLogoPath; + if (File.Exists(path)) + return File.GetLastWriteTimeUtc(path).ToBinary().ToString(); + else + return "-1"; + } + } + public Stream OrganisationLogo + { + get + { + //LoadOrganisationLogo(this); + //if (_OrganisationLogo == null || _OrganisationLogo.Length != 0) + // return new MemoryStream(_OrganisationLogo); + //else + // return null; + var path = this.OrganisationLogoPath; + if (File.Exists(path)) + return new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read); + else + return new MemoryStream(Disco.Data.Properties.Resources.EmptyLogo); + } + set + { + string organisationLogoPath = this.OrganisationLogoPath; + if (value == null) + { + if (System.IO.File.Exists(organisationLogoPath)) + System.IO.File.Delete(organisationLogoPath); + } + else + { + using (FileStream fs = new FileStream(organisationLogoPath, FileMode.Create, FileAccess.Write, FileShare.None)) + { + value.CopyTo(fs); + } + } + //LoadOrganisationLogo(this, true); + } + } + #endregion + public string OrganisationName + { + get + { + return this.GetConfigurationValue(this.Scope, "OrganisationName", null); + } + set + { + this.SetConfigurationValue(this.Scope, "OrganisationName", value); + } + } + public bool MultiSiteMode + { + get + { + return this.GetConfigurationValue(this.Scope, "MultiSiteMode", false); + } + set + { + this.SetConfigurationValue(this.Scope, "MultiSiteMode", value); + } + } + + #region Proxy Configuration + public string ProxyAddress + { + get + { + return this.GetConfigurationValue(this.Scope, "ProxyAddress", null); + } + set + { + this.SetConfigurationValue(this.Scope, "ProxyAddress", value); + } + } + public int ProxyPort + { + get + { + return this.GetConfigurationValue(this.Scope, "ProxyPort", 8080); + } + set + { + this.SetConfigurationValue(this.Scope, "ProxyPort", value); + } + } + public string ProxyUsername + { + get + { + return this.GetConfigurationValue(this.Scope, "ProxyUsername", null); + } + set + { + this.SetConfigurationValue(this.Scope, "ProxyUsername", value); + } + } + public string ProxyPassword + { + get + { + return DeobsfucateValue(this.GetConfigurationValue(this.Scope, "ProxyPassword", null)); + } + set + { + this.SetConfigurationValue(this.Scope, "ProxyPassword", ObsfucateValue(value)); + } + } + #endregion + + #region UpdateCheck + public string DeploymentId + { + get + { + return this.GetConfigurationValue(this.Scope, "DeploymentId", null); + } + } + public UpdateResponse UpdateLastCheck + { + get + { + var json = this.GetConfigurationValue(this.Scope, "UpdateLastCheck", null); + if (json != null) + { + try + { + return JsonConvert.DeserializeObject(json); + } + catch (Exception) + { }// Ignore Serialization Issues + } + return null; + } + set + { + if (value == null) + this.SetConfigurationValue(this.Scope, "UpdateLastCheck", null); + + var json = JsonConvert.SerializeObject(value); + this.SetConfigurationValue(this.Scope, "UpdateLastCheck", json); + } + } + public bool UpdateBetaDeployment + { + get + { + return this.GetConfigurationValue(this.Scope, "UpdateBetaDeployment", false); + } + } + public string InstalledDatabaseVersion + { + get + { + return this.GetConfigurationValue(this.Scope, "InstalledDatabaseVersion", null); + } + set + { + this.SetConfigurationValue(this.Scope, "InstalledDatabaseVersion", value); + } + } + #endregion + + #endregion + + } +} diff --git a/Disco.Data/Configuration/Modules/BootstrapperConfiguration.cs b/Disco.Data/Configuration/Modules/BootstrapperConfiguration.cs new file mode 100644 index 00000000..310d88fb --- /dev/null +++ b/Disco.Data/Configuration/Modules/BootstrapperConfiguration.cs @@ -0,0 +1,41 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Disco.Data.Configuration.Modules +{ + public class BootstrapperConfiguration : ConfigurationBase + { + public BootstrapperConfiguration(ConfigurationContext Context) : base(Context) { } + + public override string Scope + { + get { return "Bootstrapper"; } + } + + public string MacSshUsername + { + get + { + return this.GetValue("MacSshUsername", "root"); + } + set + { + this.SetValue("MacSshUsername", value); + } + } + + public string MacSshPassword + { + get + { + return ConfigurationContext.DeobsfucateValue(this.GetValue("MacSshPassword", string.Empty)); + } + set + { + this.SetValue("MacSshPassword", ConfigurationContext.ObsfucateValue(value)); + } + } + } +} diff --git a/Disco.Data/Configuration/Modules/DeviceProfileConfiguration.cs b/Disco.Data/Configuration/Modules/DeviceProfileConfiguration.cs new file mode 100644 index 00000000..f2fa5eea --- /dev/null +++ b/Disco.Data/Configuration/Modules/DeviceProfileConfiguration.cs @@ -0,0 +1,86 @@ +// Removed 2012-06-14 G# - Properties moved to DeviceProfile model & DB Migrated in DBv3. +// +// +//using System; +//using System.Collections.Generic; +//using System.Linq; +//using System.Text; +//using Disco.Models.Repository; + +//namespace Disco.Data.Configuration.Modules +//{ +// public class DeviceProfileConfiguration : ConfigurationBase +// { +// private DeviceProfilesConfiguration deviceProfilesConfig; +// private DeviceProfile deviceProfile; + +// public DeviceProfileConfiguration(ConfigurationContext Context, DeviceProfile DeviceProfile) +// : base(Context) +// { +// this.deviceProfilesConfig = Context.DeviceProfiles; +// this.deviceProfile = DeviceProfile; +// } + +// public override string Scope +// { +// get +// { +// return string.Format("DeviceProfile:{0}", this.deviceProfile.Id); +// } +// } + +// public string ComputerNameTemplate +// { +// get +// { +// return this.GetValue("ComputerNameTemplate", "DeviceProfile.ShortName + '-' + SerialNumber"); +// } +// set +// { +// this.SetValue("ComputerNameTemplate", value); +// } +// } + +// public enum DeviceProfileDistributionTypes : int +// { +// OneToMany = 0, +// OneToOne = 1 +// } +// public DeviceProfileDistributionTypes DistributionType +// { +// get +// { +// return (DeviceProfileDistributionTypes)this.GetValue("DistributionType", (int)DeviceProfileDistributionTypes.OneToMany); +// } +// set +// { +// this.SetValue("DistributionType", (int)value); +// } +// } +// public string OrganisationalUnit +// { +// get +// { +// return this.GetValue("OrganisationalUnit", null); +// } +// set +// { +// this.SetValue("OrganisationalUnit", value); +// } +// } +// public bool AllocateWirelessCertificate +// { +// get +// { +// return this.GetValue("AllocateWirelessCertificate", false); +// } +// set +// { +// this.SetValue("AllocateWirelessCertificate", value); +// } +// } + + + +// } +//} diff --git a/Disco.Data/Configuration/Modules/DeviceProfilesConfiguration.cs b/Disco.Data/Configuration/Modules/DeviceProfilesConfiguration.cs new file mode 100644 index 00000000..4307da85 --- /dev/null +++ b/Disco.Data/Configuration/Modules/DeviceProfilesConfiguration.cs @@ -0,0 +1,70 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Models.Repository; + +namespace Disco.Data.Configuration.Modules +{ + public class DeviceProfilesConfiguration : ConfigurationBase + { + // Removed 2012-06-14 G# - Properties moved to DeviceProfile model & DB Migrated in DBv3. + //private Dictionary deviceProfileConfigurations; + + public DeviceProfilesConfiguration(ConfigurationContext Context) + : base(Context) + { + // Removed 2012-06-14 G# - Properties moved to DeviceProfile model & DB Migrated in DBv3. + //this.deviceProfileConfigurations = new Dictionary(); + } + + public override string Scope + { + get { return "DeviceProfiles"; } + } + + // Removed 2012-06-14 G# - Properties moved to DeviceProfile model & DB Migrated in DBv3. + //public DeviceProfileConfiguration DeviceProfile(DeviceProfile Profile) + //{ + // DeviceProfileConfiguration dpc = default(DeviceProfileConfiguration); + // if (!this.deviceProfileConfigurations.TryGetValue(Profile.Id, out dpc)) + // { + // dpc = new DeviceProfileConfiguration(this.Context, Profile); + // this.deviceProfileConfigurations[Profile.Id] = dpc; + // } + // return dpc; + //} + + public int DefaultDeviceProfileId + { + get + { + var v = this.GetValue("DefaultDeviceProfileId", 1); + if (v > 0) + return v; + else + return 1; + } + set + { + if (value < 1) + throw new ArgumentOutOfRangeException("value", "Expected >= 1"); + this.SetValue("DefaultDeviceProfileId", value); + } + } + public int DefaultAddDeviceOfflineDeviceProfileId + { + get + { + return this.GetValue("DefaultAddDeviceOfflineDeviceProfileId", 0); + } + set + { + if (value < 0) + throw new ArgumentOutOfRangeException("value", "Expected >= 0"); + this.SetValue("DefaultAddDeviceOfflineDeviceProfileId", value); + } + } + + } +} diff --git a/Disco.Data/Configuration/Modules/OrganisationAddressesConfiguration.cs b/Disco.Data/Configuration/Modules/OrganisationAddressesConfiguration.cs new file mode 100644 index 00000000..c507b1c0 --- /dev/null +++ b/Disco.Data/Configuration/Modules/OrganisationAddressesConfiguration.cs @@ -0,0 +1,89 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Models.BI.Config; +using Disco.Models.Repository; +using Newtonsoft.Json; + +namespace Disco.Data.Configuration.Modules +{ + public class OrganisationAddressesConfiguration : ConfigurationBase + { + public OrganisationAddressesConfiguration(ConfigurationContext Context) : base(Context) { } + + public override string Scope + { + get { return "OrganisationAddresses"; } + } + + public OrganisationAddress GetAddress(int Id) + { + var address = default(OrganisationAddress); + var addressString = this.GetValue(Id.ToString(), null); + if (addressString != null) + { + if (addressString.StartsWith("{")) + { + // Assume Json + address = JsonConvert.DeserializeObject(addressString); + } + else + { + // Assume Old Storage Method + address = OrganisationAddress.FromConfigurationEntry(Id, addressString); + } + } + return address; + } + public OrganisationAddress SetAddress(OrganisationAddress Address) + { + if (!Address.Id.HasValue) + { + Address.Id = NextOrganisationAddressId; + } + + string addressString = JsonConvert.SerializeObject(Address); + + this.SetValue(Address.Id.ToString(), addressString); //Address.ToConfigurationEntry()); + return Address; + } + public void RemoveAddress(int Id) + { + // Set Config Item to null = Remove Configuration Item + this.SetValue(Id.ToString(), null); + } + + public List Addresses + { + get + { + Dictionary configAddress = default(Dictionary); + if (this.Context.ConfigurationDictionary(this.Scope).TryGetValue(this.Scope, out configAddress)) + return configAddress.Select( + ca => ca.Value.Value.StartsWith("{") ? + JsonConvert.DeserializeObject(ca.Value.Value) : + OrganisationAddress.FromConfigurationEntry(int.Parse(ca.Key), ca.Value.Value) + ).ToList(); + else + return new List(); // Empty List - No Addresses + } + } + + private int NextOrganisationAddressId + { + get + { + int nextId = 0; + while (true) + { + if (this.Context.ConfigurationItem(this.Scope, nextId.ToString()) == null) + break; + nextId++; + } + return nextId; + } + } + + } +} diff --git a/Disco.Data/Configuration/Modules/WirelessConfiguration.cs b/Disco.Data/Configuration/Modules/WirelessConfiguration.cs new file mode 100644 index 00000000..75b1d682 --- /dev/null +++ b/Disco.Data/Configuration/Modules/WirelessConfiguration.cs @@ -0,0 +1,109 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Disco.Data.Configuration.Modules +{ + public class WirelessConfiguration : ConfigurationBase + { + public const string Provider_eduSTAR = "eduSTAR"; + public const string Provider_eduPaSS = "eduPaSS"; + + public WirelessConfiguration(ConfigurationContext Context) : base(Context) { } + + public override string Scope + { + get { return "Wireless"; } + } + + public int CertificateAutoBufferMax + { + get + { + return this.GetValue("CertificateAutoBufferMax", 50); + } + set + { + this.SetValue("CertificateAutoBufferMax", value); + } + } + public int CertificateAutoBufferLow + { + get + { + return this.GetValue("CertificateAutoBufferLow", 10); + } + set + { + this.SetValue("CertificateAutoBufferLow", value); + } + } + public string Provider + { + get + { + return this.GetValue("Provider", Provider_eduSTAR); + } + set + { + if (string.IsNullOrEmpty(value)) + throw new ArgumentNullException("value"); + if (value.Equals(Provider_eduSTAR, StringComparison.InvariantCultureIgnoreCase)) + this.SetValue("Provider", Provider_eduSTAR); + else + throw new NotSupportedException(string.Format("Unsupported Wireless Provider: ", value)); + } + } + + #region eduSTAR Configuration + + public string eduSTAR_Scope + { + get { return "Wireless_eduSTAR"; } + } + + public string eduSTAR_ServiceAccountSchoolId + { + get + { + return this.Context.GetConfigurationValue(this.eduSTAR_Scope, "ServiceAccountSchoolId", null); + } + set + { + if (string.IsNullOrEmpty(value)) + throw new ArgumentNullException("value"); + this.Context.SetConfigurationValue(this.eduSTAR_Scope, "ServiceAccountSchoolId", value); + } + } + public string eduSTAR_ServiceAccountUsername + { + get + { + return this.Context.GetConfigurationValue(this.eduSTAR_Scope, "ServiceAccountUsername", null); + } + set + { + if (string.IsNullOrEmpty(value)) + throw new ArgumentNullException("value"); + this.Context.SetConfigurationValue(this.eduSTAR_Scope, "ServiceAccountUsername", value); + } + } + public string eduSTAR_ServiceAccountPassword + { + get + { + return ConfigurationContext.DeobsfucateValue(this.Context.GetConfigurationValue(this.eduSTAR_Scope, "ServiceAccountPassword", null)); + } + set + { + if (string.IsNullOrEmpty(value)) + throw new ArgumentNullException("value"); + this.Context.SetConfigurationValue(this.eduSTAR_Scope, "ServiceAccountPassword", ConfigurationContext.ObsfucateValue(value)); + } + } + + #endregion + + } +} diff --git a/Disco.Data/Disco.Data.csproj b/Disco.Data/Disco.Data.csproj new file mode 100644 index 00000000..db7e8ce5 --- /dev/null +++ b/Disco.Data/Disco.Data.csproj @@ -0,0 +1,147 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {85A6BD19-2C64-4746-8F2C-A68A86E8C2D7} + Library + Properties + Disco.Data + Disco.Data + v4.5 + 512 + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + false + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + false + + + + False + ..\packages\EntityFramework.5.0.0\lib\net45\EntityFramework.dll + + + False + ..\packages\Newtonsoft.Json.4.5.11\lib\net40\Newtonsoft.Json.dll + + + + + + + + + + + + + + + + + + + + + + + + 201204250418485_DBv0.cs + + + + 201205100307196_DBv1.cs + + + + 201205290205162_DBv2.cs + + + + 201206140712161_DBv3.cs + + + + 201206280337277_DBv4.cs + + + + 201211090325116_DBv5.cs + + + + 201301150107063_DBv6.cs + + + + + + True + True + Resources.resx + + + + + + + + + Designer + + + + + {FBC05512-FCCA-4B16-9E76-8C413C5DE6C9} + Disco.Models + + + + + 201211090325116_DBv5.cs + + + 201301150107063_DBv6.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Disco.Data/Disco.Data.sln b/Disco.Data/Disco.Data.sln new file mode 100644 index 00000000..852c6c41 --- /dev/null +++ b/Disco.Data/Disco.Data.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Disco.Data", "Disco.Data.csproj", "{85A6BD19-2C64-4746-8F2C-A68A86E8C2D7}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {85A6BD19-2C64-4746-8F2C-A68A86E8C2D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {85A6BD19-2C64-4746-8F2C-A68A86E8C2D7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {85A6BD19-2C64-4746-8F2C-A68A86E8C2D7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {85A6BD19-2C64-4746-8F2C-A68A86E8C2D7}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Disco.Data/Migrations/201204250418485_DBv0.Designer.cs b/Disco.Data/Migrations/201204250418485_DBv0.Designer.cs new file mode 100644 index 00000000..3b11514a --- /dev/null +++ b/Disco.Data/Migrations/201204250418485_DBv0.Designer.cs @@ -0,0 +1,24 @@ +// +namespace Disco.Data.Migrations +{ + using System.Data.Entity.Migrations; + using System.Data.Entity.Migrations.Infrastructure; + + public sealed partial class DBv0 : IMigrationMetadata + { + string IMigrationMetadata.Id + { + get { return "201204250418485_DBv0"; } + } + + string IMigrationMetadata.Source + { + get { return null; } + } + + string IMigrationMetadata.Target + { + get { return "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"; } + } + } +} diff --git a/Disco.Data/Migrations/201204250418485_DBv0.cs b/Disco.Data/Migrations/201204250418485_DBv0.cs new file mode 100644 index 00000000..3422696b --- /dev/null +++ b/Disco.Data/Migrations/201204250418485_DBv0.cs @@ -0,0 +1,604 @@ +namespace Disco.Data.Migrations +{ + using System.Data.Entity.Migrations; + + public partial class DBv0 : DbMigration + { + public override void Up() + { + CreateTable( + "Configuration", + c => new + { + Scope = c.String(nullable: false, maxLength: 80), + Key = c.String(nullable: false, maxLength: 80), + Value = c.String(), + }) + .PrimaryKey(t => new { t.Scope, t.Key }); + + CreateTable( + "DocumentTemplates", + c => new + { + Id = c.String(nullable: false, maxLength: 30), + Description = c.String(nullable: false, maxLength: 250), + Scope = c.String(nullable: false, maxLength: 6), + FilterExpression = c.String(maxLength: 250), + }) + .PrimaryKey(t => t.Id); + + CreateTable( + "JobSubTypes", + c => new + { + Id = c.String(nullable: false, maxLength: 20), + JobTypeId = c.String(nullable: false, maxLength: 5), + Description = c.String(nullable: false, maxLength: 100), + }) + .PrimaryKey(t => new { t.Id, t.JobTypeId }) + .ForeignKey("JobTypes", t => t.JobTypeId) + .Index(t => t.JobTypeId); + + CreateTable( + "DeviceComponents", + c => new + { + Id = c.Int(nullable: false, identity: true), + DeviceModelId = c.Int(), + Description = c.String(maxLength: 100), + Cost = c.Decimal(nullable: false, precision: 18, scale: 2), + }) + .PrimaryKey(t => t.Id) + .ForeignKey("DeviceModels", t => t.DeviceModelId) + .Index(t => t.DeviceModelId); + + CreateTable( + "DeviceModels", + c => new + { + Id = c.Int(nullable: false, identity: true), + Description = c.String(maxLength: 500), + Manufacturer = c.String(maxLength: 200), + Model = c.String(maxLength: 200), + ModelType = c.String(maxLength: 40), + Image = c.Binary(), + DefaultPurchaseDate = c.DateTime(), + DeviceCost = c.Decimal(precision: 18, scale: 2), + DefaultWarrantyProvider = c.String(maxLength: 40), + }) + .PrimaryKey(t => t.Id); + + CreateTable( + "Devices", + c => new + { + SerialNumber = c.String(nullable: false, maxLength: 40), + AssetNumber = c.String(maxLength: 40), + Location = c.String(maxLength: 250), + DeviceModelId = c.Int(), + DeviceProfileId = c.Int(nullable: false), + DeviceBatchId = c.Int(), + ComputerName = c.String(maxLength: 24), + AssignedUserId = c.String(maxLength: 50), + LastNetworkLogonDate = c.DateTime(), + CertificateStoreReference = c.String(maxLength: 24), + AllowUnauthenticatedEnrol = c.Boolean(nullable: false), + Active = c.Boolean(nullable: false), + CreatedDate = c.DateTime(nullable: false), + EnrolledDate = c.DateTime(), + LastEnrolDate = c.DateTime(), + DecommissionedDate = c.DateTime(), + }) + .PrimaryKey(t => t.SerialNumber) + .ForeignKey("DeviceModels", t => t.DeviceModelId) + .ForeignKey("DeviceProfiles", t => t.DeviceProfileId) + .ForeignKey("DeviceBatches", t => t.DeviceBatchId) + .ForeignKey("Users", t => t.AssignedUserId) + .Index(t => t.DeviceModelId) + .Index(t => t.DeviceProfileId) + .Index(t => t.DeviceBatchId) + .Index(t => t.AssignedUserId); + + CreateTable( + "DeviceProfiles", + c => new + { + Id = c.Int(nullable: false, identity: true), + Name = c.String(nullable: false, maxLength: 100), + ShortName = c.String(nullable: false, maxLength: 10), + Description = c.String(maxLength: 500), + DefaultOrganisationAddress = c.Int(), + }) + .PrimaryKey(t => t.Id); + + CreateTable( + "DeviceBatches", + c => new + { + Id = c.Int(nullable: false, identity: true), + Name = c.String(maxLength: 500), + PurchaseDate = c.DateTime(nullable: false), + Supplier = c.String(maxLength: 200), + PurchaseDetails = c.String(maxLength: 500), + UnitCost = c.Decimal(precision: 18, scale: 2), + UnitQuantity = c.Int(), + DefaultDeviceModelId = c.Int(), + WarrantyValidUntil = c.DateTime(), + WarrantyDetails = c.String(), + InsuredDate = c.DateTime(), + InsuranceSupplier = c.String(maxLength: 200), + InsuredUntil = c.DateTime(), + InsuranceDetails = c.String(), + Comments = c.String(), + }) + .PrimaryKey(t => t.Id) + .ForeignKey("DeviceModels", t => t.DefaultDeviceModelId) + .Index(t => t.DefaultDeviceModelId); + + CreateTable( + "Users", + c => new + { + Id = c.String(nullable: false, maxLength: 50), + DisplayName = c.String(maxLength: 200), + Surname = c.String(maxLength: 200), + GivenName = c.String(maxLength: 200), + Type = c.String(maxLength: 8), + PhoneNumber = c.String(maxLength: 100), + EmailAddress = c.String(maxLength: 150), + }) + .PrimaryKey(t => t.Id); + + CreateTable( + "UserDetails", + c => new + { + UserId = c.String(nullable: false, maxLength: 50), + Scope = c.String(nullable: false, maxLength: 100), + Key = c.String(nullable: false, maxLength: 100), + Value = c.String(), + }) + .PrimaryKey(t => new { t.UserId, t.Scope, t.Key }) + .ForeignKey("Users", t => t.UserId) + .Index(t => t.UserId); + + CreateTable( + "UserAttachments", + c => new + { + Id = c.Int(nullable: false, identity: true), + UserId = c.String(maxLength: 50), + TechUserId = c.String(nullable: false, maxLength: 50), + Filename = c.String(nullable: false, maxLength: 500), + MimeType = c.String(nullable: false, maxLength: 500), + Timestamp = c.DateTime(nullable: false), + Comments = c.String(nullable: false, maxLength: 500), + DocumentTemplateId = c.String(maxLength: 30), + }) + .PrimaryKey(t => t.Id) + .ForeignKey("Users", t => t.UserId) + .ForeignKey("Users", t => t.TechUserId) + .ForeignKey("DocumentTemplates", t => t.DocumentTemplateId) + .Index(t => t.UserId) + .Index(t => t.TechUserId) + .Index(t => t.DocumentTemplateId); + + CreateTable( + "DeviceUserAssignments", + c => new + { + DeviceSerialNumber = c.String(nullable: false, maxLength: 40), + AssignedDate = c.DateTime(nullable: false), + AssignedUserId = c.String(maxLength: 50), + UnassignedDate = c.DateTime(), + }) + .PrimaryKey(t => new { t.DeviceSerialNumber, t.AssignedDate }) + .ForeignKey("Users", t => t.AssignedUserId) + .ForeignKey("Devices", t => t.DeviceSerialNumber) + .Index(t => t.AssignedUserId) + .Index(t => t.DeviceSerialNumber); + + CreateTable( + "Jobs", + c => new + { + Id = c.Int(nullable: false, identity: true), + JobTypeId = c.String(nullable: false, maxLength: 5), + DeviceSerialNumber = c.String(maxLength: 40), + UserId = c.String(maxLength: 50), + OpenedTechUserId = c.String(nullable: false, maxLength: 50), + OpenedDate = c.DateTime(nullable: false), + ExpectedClosedDate = c.DateTime(), + ClosedTechUserId = c.String(maxLength: 50), + ClosedDate = c.DateTime(), + DeviceHeld = c.DateTime(), + DeviceHeldTechUserId = c.String(maxLength: 50), + DeviceHeldLocation = c.String(maxLength: 100), + DeviceReadyForReturn = c.DateTime(), + DeviceReadyForReturnTechUserId = c.String(maxLength: 50), + DeviceReturnedDate = c.DateTime(), + DeviceReturnedTechUserId = c.String(maxLength: 50), + WaitingForUserAction = c.DateTime(), + }) + .PrimaryKey(t => t.Id) + .ForeignKey("JobTypes", t => t.JobTypeId) + .ForeignKey("Users", t => t.OpenedTechUserId) + .ForeignKey("Users", t => t.ClosedTechUserId) + .ForeignKey("Users", t => t.DeviceHeldTechUserId) + .ForeignKey("Users", t => t.DeviceReadyForReturnTechUserId) + .ForeignKey("Users", t => t.DeviceReturnedTechUserId) + .ForeignKey("Users", t => t.UserId) + .ForeignKey("Devices", t => t.DeviceSerialNumber) + .Index(t => t.JobTypeId) + .Index(t => t.OpenedTechUserId) + .Index(t => t.ClosedTechUserId) + .Index(t => t.DeviceHeldTechUserId) + .Index(t => t.DeviceReadyForReturnTechUserId) + .Index(t => t.DeviceReturnedTechUserId) + .Index(t => t.UserId) + .Index(t => t.DeviceSerialNumber); + + CreateTable( + "JobTypes", + c => new + { + Id = c.String(nullable: false, maxLength: 5), + Description = c.String(maxLength: 100), + }) + .PrimaryKey(t => t.Id); + + CreateTable( + "JobAttachments", + c => new + { + Id = c.Int(nullable: false, identity: true), + JobId = c.Int(nullable: false), + TechUserId = c.String(nullable: false, maxLength: 50), + Filename = c.String(nullable: false, maxLength: 500), + MimeType = c.String(nullable: false, maxLength: 500), + Timestamp = c.DateTime(nullable: false), + Comments = c.String(nullable: false, maxLength: 500), + DocumentTemplateId = c.String(maxLength: 30), + }) + .PrimaryKey(t => t.Id) + .ForeignKey("Jobs", t => t.JobId) + .ForeignKey("Users", t => t.TechUserId) + .ForeignKey("DocumentTemplates", t => t.DocumentTemplateId) + .Index(t => t.JobId) + .Index(t => t.TechUserId) + .Index(t => t.DocumentTemplateId); + + CreateTable( + "JobComponents", + c => new + { + Id = c.Int(nullable: false, identity: true), + JobId = c.Int(nullable: false), + TechUserId = c.String(nullable: false, maxLength: 50), + Description = c.String(maxLength: 500), + Cost = c.Decimal(nullable: false, precision: 18, scale: 2), + }) + .PrimaryKey(t => t.Id) + .ForeignKey("Jobs", t => t.JobId) + .ForeignKey("Users", t => t.TechUserId) + .Index(t => t.JobId) + .Index(t => t.TechUserId); + + CreateTable( + "JobLogs", + c => new + { + Id = c.Int(nullable: false, identity: true), + JobId = c.Int(nullable: false), + TechUserId = c.String(nullable: false, maxLength: 50), + Timestamp = c.DateTime(nullable: false), + Comments = c.String(nullable: false), + }) + .PrimaryKey(t => t.Id) + .ForeignKey("Jobs", t => t.JobId) + .ForeignKey("Users", t => t.TechUserId) + .Index(t => t.JobId) + .Index(t => t.TechUserId); + + CreateTable( + "JobMetaInsurances", + c => new + { + JobId = c.Int(nullable: false), + LossOrDamageDate = c.DateTime(), + EventLocation = c.String(maxLength: 200), + Description = c.String(), + ThirdPartyCaused = c.Boolean(nullable: false), + ThirdPartyCausedName = c.String(maxLength: 200), + ThirdPartyCausedWhy = c.String(maxLength: 600), + WitnessesNamesAddresses = c.String(maxLength: 1200), + BurglaryTheftMethodOfEntry = c.String(maxLength: 200), + PropertyLastSeenDate = c.DateTime(), + PoliceNotified = c.Boolean(nullable: false), + PoliceNotifiedStation = c.String(maxLength: 200), + PoliceNotifiedDate = c.DateTime(), + PoliceNotifiedCrimeReportNo = c.String(maxLength: 400), + RecoverReduceAction = c.String(maxLength: 800), + OtherInterestedParties = c.String(maxLength: 500), + DateOfPurchase = c.DateTime(), + ClaimFormSentDate = c.DateTime(), + ClaimFormSentUserId = c.String(maxLength: 50), + }) + .PrimaryKey(t => t.JobId) + .ForeignKey("Jobs", t => t.JobId) + .ForeignKey("Users", t => t.ClaimFormSentUserId) + .Index(t => t.JobId) + .Index(t => t.ClaimFormSentUserId); + + CreateTable( + "JobMetaWarranties", + c => new + { + JobId = c.Int(nullable: false), + ExternalName = c.String(maxLength: 100), + ExternalLoggedDate = c.DateTime(), + ExternalReference = c.String(maxLength: 100), + ExternalCompletedDate = c.DateTime(), + }) + .PrimaryKey(t => t.JobId) + .ForeignKey("Jobs", t => t.JobId) + .Index(t => t.JobId); + + CreateTable( + "JobMetaNonWarranties", + c => new + { + JobId = c.Int(nullable: false), + IsInsuranceClaim = c.Boolean(nullable: false), + AccountingChargeAddedDate = c.DateTime(), + AccountingChargeAddedUserId = c.String(maxLength: 50), + AccountingChargePaidDate = c.DateTime(), + AccountingChargePaidUserId = c.String(maxLength: 50), + PurchaseOrderRaisedDate = c.DateTime(), + PurchaseOrderRaisedUserId = c.String(maxLength: 50), + PurchaseOrderReference = c.String(maxLength: 20), + PurchaseOrderSentDate = c.DateTime(), + PurchaseOrderSentUserId = c.String(maxLength: 50), + InvoiceReceivedDate = c.DateTime(), + InvoiceReceivedUserId = c.String(maxLength: 50), + RepairerName = c.String(maxLength: 100), + RepairerLoggedDate = c.DateTime(), + RepairerReference = c.String(maxLength: 100), + RepairerCompletedDate = c.DateTime(), + }) + .PrimaryKey(t => t.JobId) + .ForeignKey("Users", t => t.AccountingChargeAddedUserId) + .ForeignKey("Users", t => t.AccountingChargePaidUserId) + .ForeignKey("Users", t => t.PurchaseOrderRaisedUserId) + .ForeignKey("Users", t => t.PurchaseOrderSentUserId) + .ForeignKey("Users", t => t.InvoiceReceivedUserId) + .ForeignKey("Jobs", t => t.JobId) + .Index(t => t.AccountingChargeAddedUserId) + .Index(t => t.AccountingChargePaidUserId) + .Index(t => t.PurchaseOrderRaisedUserId) + .Index(t => t.PurchaseOrderSentUserId) + .Index(t => t.InvoiceReceivedUserId) + .Index(t => t.JobId); + + CreateTable( + "DeviceDetails", + c => new + { + DeviceSerialNumber = c.String(nullable: false, maxLength: 40), + Scope = c.String(nullable: false, maxLength: 100), + Key = c.String(nullable: false, maxLength: 100), + Value = c.String(), + }) + .PrimaryKey(t => new { t.DeviceSerialNumber, t.Scope, t.Key }) + .ForeignKey("Devices", t => t.DeviceSerialNumber) + .Index(t => t.DeviceSerialNumber); + + CreateTable( + "DeviceAttachments", + c => new + { + Id = c.Int(nullable: false, identity: true), + DeviceSerialNumber = c.String(maxLength: 40), + TechUserId = c.String(nullable: false, maxLength: 50), + Filename = c.String(nullable: false, maxLength: 500), + MimeType = c.String(nullable: false, maxLength: 500), + Timestamp = c.DateTime(nullable: false), + Comments = c.String(nullable: false, maxLength: 500), + DocumentTemplateId = c.String(maxLength: 30), + }) + .PrimaryKey(t => t.Id) + .ForeignKey("Devices", t => t.DeviceSerialNumber) + .ForeignKey("Users", t => t.TechUserId) + .ForeignKey("DocumentTemplates", t => t.DocumentTemplateId) + .Index(t => t.DeviceSerialNumber) + .Index(t => t.TechUserId) + .Index(t => t.DocumentTemplateId); + + CreateTable( + "WirelessCertificates", + c => new + { + Id = c.Int(nullable: false, identity: true), + Index = c.Int(nullable: false), + Name = c.String(maxLength: 28), + Content = c.Binary(), + Enabled = c.Boolean(nullable: false), + ExpirationDate = c.DateTime(), + AllocatedDate = c.DateTime(), + DeviceSerialNumber = c.String(maxLength: 40), + }) + .PrimaryKey(t => t.Id) + .ForeignKey("Devices", t => t.DeviceSerialNumber) + .Index(t => t.DeviceSerialNumber); + + CreateTable( + "Jobs_JobSubTypes", + c => new + { + Job_Id = c.Int(nullable: false), + JobSubType_Id = c.String(nullable: false, maxLength: 20), + JobSubType_JobTypeId = c.String(nullable: false, maxLength: 5), + }) + .PrimaryKey(t => new { t.Job_Id, t.JobSubType_Id, t.JobSubType_JobTypeId }) + .ForeignKey("Jobs", t => t.Job_Id, cascadeDelete: true) + .ForeignKey("JobSubTypes", t => new { t.JobSubType_Id, t.JobSubType_JobTypeId }, cascadeDelete: true) + .Index(t => t.Job_Id) + .Index(t => new { t.JobSubType_Id, t.JobSubType_JobTypeId }); + + CreateTable( + "DeviceComponents_JobSubTypes", + c => new + { + DeviceComponent_Id = c.Int(nullable: false), + JobSubType_Id = c.String(nullable: false, maxLength: 20), + JobSubType_JobTypeId = c.String(nullable: false, maxLength: 5), + }) + .PrimaryKey(t => new { t.DeviceComponent_Id, t.JobSubType_Id, t.JobSubType_JobTypeId }) + .ForeignKey("DeviceComponents", t => t.DeviceComponent_Id, cascadeDelete: true) + .ForeignKey("JobSubTypes", t => new { t.JobSubType_Id, t.JobSubType_JobTypeId }, cascadeDelete: true) + .Index(t => t.DeviceComponent_Id) + .Index(t => new { t.JobSubType_Id, t.JobSubType_JobTypeId }); + + CreateTable( + "DocumentTemplates_JobSubTypes", + c => new + { + DocumentTemplate_Id = c.String(nullable: false, maxLength: 30), + JobSubType_Id = c.String(nullable: false, maxLength: 20), + JobSubType_JobTypeId = c.String(nullable: false, maxLength: 5), + }) + .PrimaryKey(t => new { t.DocumentTemplate_Id, t.JobSubType_Id, t.JobSubType_JobTypeId }) + .ForeignKey("DocumentTemplates", t => t.DocumentTemplate_Id, cascadeDelete: true) + .ForeignKey("JobSubTypes", t => new { t.JobSubType_Id, t.JobSubType_JobTypeId }, cascadeDelete: true) + .Index(t => t.DocumentTemplate_Id) + .Index(t => new { t.JobSubType_Id, t.JobSubType_JobTypeId }); + + } + + public override void Down() + { + DropIndex("DocumentTemplates_JobSubTypes", new[] { "JobSubType_Id", "JobSubType_JobTypeId" }); + DropIndex("DocumentTemplates_JobSubTypes", new[] { "DocumentTemplate_Id" }); + DropIndex("DeviceComponents_JobSubTypes", new[] { "JobSubType_Id", "JobSubType_JobTypeId" }); + DropIndex("DeviceComponents_JobSubTypes", new[] { "DeviceComponent_Id" }); + DropIndex("Jobs_JobSubTypes", new[] { "JobSubType_Id", "JobSubType_JobTypeId" }); + DropIndex("Jobs_JobSubTypes", new[] { "Job_Id" }); + DropIndex("WirelessCertificates", new[] { "DeviceSerialNumber" }); + DropIndex("DeviceAttachments", new[] { "DocumentTemplateId" }); + DropIndex("DeviceAttachments", new[] { "TechUserId" }); + DropIndex("DeviceAttachments", new[] { "DeviceSerialNumber" }); + DropIndex("DeviceDetails", new[] { "DeviceSerialNumber" }); + DropIndex("JobMetaNonWarranties", new[] { "JobId" }); + DropIndex("JobMetaNonWarranties", new[] { "InvoiceReceivedUserId" }); + DropIndex("JobMetaNonWarranties", new[] { "PurchaseOrderSentUserId" }); + DropIndex("JobMetaNonWarranties", new[] { "PurchaseOrderRaisedUserId" }); + DropIndex("JobMetaNonWarranties", new[] { "AccountingChargePaidUserId" }); + DropIndex("JobMetaNonWarranties", new[] { "AccountingChargeAddedUserId" }); + DropIndex("JobMetaWarranties", new[] { "JobId" }); + DropIndex("JobMetaInsurances", new[] { "ClaimFormSentUserId" }); + DropIndex("JobMetaInsurances", new[] { "JobId" }); + DropIndex("JobLogs", new[] { "TechUserId" }); + DropIndex("JobLogs", new[] { "JobId" }); + DropIndex("JobComponents", new[] { "TechUserId" }); + DropIndex("JobComponents", new[] { "JobId" }); + DropIndex("JobAttachments", new[] { "DocumentTemplateId" }); + DropIndex("JobAttachments", new[] { "TechUserId" }); + DropIndex("JobAttachments", new[] { "JobId" }); + DropIndex("Jobs", new[] { "DeviceSerialNumber" }); + DropIndex("Jobs", new[] { "UserId" }); + DropIndex("Jobs", new[] { "DeviceReturnedTechUserId" }); + DropIndex("Jobs", new[] { "DeviceReadyForReturnTechUserId" }); + DropIndex("Jobs", new[] { "DeviceHeldTechUserId" }); + DropIndex("Jobs", new[] { "ClosedTechUserId" }); + DropIndex("Jobs", new[] { "OpenedTechUserId" }); + DropIndex("Jobs", new[] { "JobTypeId" }); + DropIndex("DeviceUserAssignments", new[] { "DeviceSerialNumber" }); + DropIndex("DeviceUserAssignments", new[] { "AssignedUserId" }); + DropIndex("UserAttachments", new[] { "DocumentTemplateId" }); + DropIndex("UserAttachments", new[] { "TechUserId" }); + DropIndex("UserAttachments", new[] { "UserId" }); + DropIndex("UserDetails", new[] { "UserId" }); + DropIndex("DeviceBatches", new[] { "DefaultDeviceModelId" }); + DropIndex("Devices", new[] { "AssignedUserId" }); + DropIndex("Devices", new[] { "DeviceBatchId" }); + DropIndex("Devices", new[] { "DeviceProfileId" }); + DropIndex("Devices", new[] { "DeviceModelId" }); + DropIndex("DeviceComponents", new[] { "DeviceModelId" }); + DropIndex("JobSubTypes", new[] { "JobTypeId" }); + DropForeignKey("DocumentTemplates_JobSubTypes", new[] { "JobSubType_Id", "JobSubType_JobTypeId" }, "JobSubTypes"); + DropForeignKey("DocumentTemplates_JobSubTypes", "DocumentTemplate_Id", "DocumentTemplates"); + DropForeignKey("DeviceComponents_JobSubTypes", new[] { "JobSubType_Id", "JobSubType_JobTypeId" }, "JobSubTypes"); + DropForeignKey("DeviceComponents_JobSubTypes", "DeviceComponent_Id", "DeviceComponents"); + DropForeignKey("Jobs_JobSubTypes", new[] { "JobSubType_Id", "JobSubType_JobTypeId" }, "JobSubTypes"); + DropForeignKey("Jobs_JobSubTypes", "Job_Id", "Jobs"); + DropForeignKey("WirelessCertificates", "DeviceSerialNumber", "Devices"); + DropForeignKey("DeviceAttachments", "DocumentTemplateId", "DocumentTemplates"); + DropForeignKey("DeviceAttachments", "TechUserId", "Users"); + DropForeignKey("DeviceAttachments", "DeviceSerialNumber", "Devices"); + DropForeignKey("DeviceDetails", "DeviceSerialNumber", "Devices"); + DropForeignKey("JobMetaNonWarranties", "JobId", "Jobs"); + DropForeignKey("JobMetaNonWarranties", "InvoiceReceivedUserId", "Users"); + DropForeignKey("JobMetaNonWarranties", "PurchaseOrderSentUserId", "Users"); + DropForeignKey("JobMetaNonWarranties", "PurchaseOrderRaisedUserId", "Users"); + DropForeignKey("JobMetaNonWarranties", "AccountingChargePaidUserId", "Users"); + DropForeignKey("JobMetaNonWarranties", "AccountingChargeAddedUserId", "Users"); + DropForeignKey("JobMetaWarranties", "JobId", "Jobs"); + DropForeignKey("JobMetaInsurances", "ClaimFormSentUserId", "Users"); + DropForeignKey("JobMetaInsurances", "JobId", "Jobs"); + DropForeignKey("JobLogs", "TechUserId", "Users"); + DropForeignKey("JobLogs", "JobId", "Jobs"); + DropForeignKey("JobComponents", "TechUserId", "Users"); + DropForeignKey("JobComponents", "JobId", "Jobs"); + DropForeignKey("JobAttachments", "DocumentTemplateId", "DocumentTemplates"); + DropForeignKey("JobAttachments", "TechUserId", "Users"); + DropForeignKey("JobAttachments", "JobId", "Jobs"); + DropForeignKey("Jobs", "DeviceSerialNumber", "Devices"); + DropForeignKey("Jobs", "UserId", "Users"); + DropForeignKey("Jobs", "DeviceReturnedTechUserId", "Users"); + DropForeignKey("Jobs", "DeviceReadyForReturnTechUserId", "Users"); + DropForeignKey("Jobs", "DeviceHeldTechUserId", "Users"); + DropForeignKey("Jobs", "ClosedTechUserId", "Users"); + DropForeignKey("Jobs", "OpenedTechUserId", "Users"); + DropForeignKey("Jobs", "JobTypeId", "JobTypes"); + DropForeignKey("DeviceUserAssignments", "DeviceSerialNumber", "Devices"); + DropForeignKey("DeviceUserAssignments", "AssignedUserId", "Users"); + DropForeignKey("UserAttachments", "DocumentTemplateId", "DocumentTemplates"); + DropForeignKey("UserAttachments", "TechUserId", "Users"); + DropForeignKey("UserAttachments", "UserId", "Users"); + DropForeignKey("UserDetails", "UserId", "Users"); + DropForeignKey("DeviceBatches", "DefaultDeviceModelId", "DeviceModels"); + DropForeignKey("Devices", "AssignedUserId", "Users"); + DropForeignKey("Devices", "DeviceBatchId", "DeviceBatches"); + DropForeignKey("Devices", "DeviceProfileId", "DeviceProfiles"); + DropForeignKey("Devices", "DeviceModelId", "DeviceModels"); + DropForeignKey("DeviceComponents", "DeviceModelId", "DeviceModels"); + DropForeignKey("JobSubTypes", "JobTypeId", "JobTypes"); + DropTable("DocumentTemplates_JobSubTypes"); + DropTable("DeviceComponents_JobSubTypes"); + DropTable("Jobs_JobSubTypes"); + DropTable("WirelessCertificates"); + DropTable("DeviceAttachments"); + DropTable("DeviceDetails"); + DropTable("JobMetaNonWarranties"); + DropTable("JobMetaWarranties"); + DropTable("JobMetaInsurances"); + DropTable("JobLogs"); + DropTable("JobComponents"); + DropTable("JobAttachments"); + DropTable("JobTypes"); + DropTable("Jobs"); + DropTable("DeviceUserAssignments"); + DropTable("UserAttachments"); + DropTable("UserDetails"); + DropTable("Users"); + DropTable("DeviceBatches"); + DropTable("DeviceProfiles"); + DropTable("Devices"); + DropTable("DeviceModels"); + DropTable("DeviceComponents"); + DropTable("JobSubTypes"); + DropTable("DocumentTemplates"); + DropTable("Configuration"); + } + } +} diff --git a/Disco.Data/Migrations/201205100307196_DBv1.Designer.cs b/Disco.Data/Migrations/201205100307196_DBv1.Designer.cs new file mode 100644 index 00000000..cf7f06df --- /dev/null +++ b/Disco.Data/Migrations/201205100307196_DBv1.Designer.cs @@ -0,0 +1,24 @@ +// +namespace Disco.Data.Migrations +{ + using System.Data.Entity.Migrations; + using System.Data.Entity.Migrations.Infrastructure; + + public sealed partial class DBv1 : IMigrationMetadata + { + string IMigrationMetadata.Id + { + get { return "201205100307196_DBv1"; } + } + + string IMigrationMetadata.Source + { + get { return null; } + } + + string IMigrationMetadata.Target + { + get { return "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"; } + } + } +} diff --git a/Disco.Data/Migrations/201205100307196_DBv1.cs b/Disco.Data/Migrations/201205100307196_DBv1.cs new file mode 100644 index 00000000..d25c4a23 --- /dev/null +++ b/Disco.Data/Migrations/201205100307196_DBv1.cs @@ -0,0 +1,25 @@ +namespace Disco.Data.Migrations +{ + using System.Data.Entity.Migrations; + + public partial class DBv1 : DbMigration + { + public override void Up() + { + AddColumn("DocumentTemplates", "FlattenForm", c => c.Boolean(nullable: false, defaultValue: false)); + AddColumn("JobMetaNonWarranties", "AccountingChargeRequiredDate", c => c.DateTime()); + AddColumn("JobMetaNonWarranties", "AccountingChargeRequiredUserId", c => c.String(maxLength: 50)); + AddForeignKey("JobMetaNonWarranties", "AccountingChargeRequiredUserId", "Users", "Id"); + CreateIndex("JobMetaNonWarranties", "AccountingChargeRequiredUserId"); + } + + public override void Down() + { + DropIndex("JobMetaNonWarranties", new[] { "AccountingChargeRequiredUserId" }); + DropForeignKey("JobMetaNonWarranties", "AccountingChargeRequiredUserId", "Users"); + DropColumn("JobMetaNonWarranties", "AccountingChargeRequiredUserId"); + DropColumn("JobMetaNonWarranties", "AccountingChargeRequiredDate"); + DropColumn("DocumentTemplates", "FlattenForm"); + } + } +} diff --git a/Disco.Data/Migrations/201205290205162_DBv2.Designer.cs b/Disco.Data/Migrations/201205290205162_DBv2.Designer.cs new file mode 100644 index 00000000..d56876d9 --- /dev/null +++ b/Disco.Data/Migrations/201205290205162_DBv2.Designer.cs @@ -0,0 +1,24 @@ +// +namespace Disco.Data.Migrations +{ + using System.Data.Entity.Migrations; + using System.Data.Entity.Migrations.Infrastructure; + + public sealed partial class DBv2 : IMigrationMetadata + { + string IMigrationMetadata.Id + { + get { return "201205290205162_DBv2"; } + } + + string IMigrationMetadata.Source + { + get { return null; } + } + + string IMigrationMetadata.Target + { + get { return "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"; } + } + } +} diff --git a/Disco.Data/Migrations/201205290205162_DBv2.cs b/Disco.Data/Migrations/201205290205162_DBv2.cs new file mode 100644 index 00000000..eda6b55c --- /dev/null +++ b/Disco.Data/Migrations/201205290205162_DBv2.cs @@ -0,0 +1,17 @@ +namespace Disco.Data.Migrations +{ + using System.Data.Entity.Migrations; + + public partial class DBv2 : DbMigration + { + public override void Up() + { + AddColumn("Jobs", "Flags", c => c.Long()); + } + + public override void Down() + { + DropColumn("Jobs", "Flags"); + } + } +} diff --git a/Disco.Data/Migrations/201206140712161_DBv3.Designer.cs b/Disco.Data/Migrations/201206140712161_DBv3.Designer.cs new file mode 100644 index 00000000..48691b6a --- /dev/null +++ b/Disco.Data/Migrations/201206140712161_DBv3.Designer.cs @@ -0,0 +1,24 @@ +// +namespace Disco.Data.Migrations +{ + using System.Data.Entity.Migrations; + using System.Data.Entity.Migrations.Infrastructure; + + public sealed partial class DBv3 : IMigrationMetadata + { + string IMigrationMetadata.Id + { + get { return "201206140712161_DBv3"; } + } + + string IMigrationMetadata.Source + { + get { return null; } + } + + string IMigrationMetadata.Target + { + get { return "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"; } + } + } +} diff --git a/Disco.Data/Migrations/201206140712161_DBv3.cs b/Disco.Data/Migrations/201206140712161_DBv3.cs new file mode 100644 index 00000000..2944d7bb --- /dev/null +++ b/Disco.Data/Migrations/201206140712161_DBv3.cs @@ -0,0 +1,30 @@ +namespace Disco.Data.Migrations +{ + using System.Data.Entity.Migrations; + + public partial class DBv3 : DbMigration + { + public override void Up() + { + AddColumn("DeviceProfiles", "ComputerNameTemplate", c => c.String(nullable: true)); + Sql(@"UPDATE DeviceProfiles SET ComputerNameTemplate='DeviceProfile.ShortName + ''-'' + SerialNumber'"); + AlterColumn("DeviceProfiles", "ComputerNameTemplate", c => c.String(nullable: false)); + + AddColumn("DeviceProfiles", "DistributionType", c => c.Int(nullable: false)); + AddColumn("DeviceProfiles", "OrganisationalUnit", c => c.String()); + AddColumn("DeviceProfiles", "AllocateWirelessCertificate", c => c.Boolean(nullable: false)); + AddColumn("DeviceProfiles", "EnforceComputerNameConvention", c => c.Boolean(nullable: false)); + AddColumn("DeviceProfiles", "EnforceOrganisationalUnit", c => c.Boolean(nullable: false)); + } + + public override void Down() + { + DropColumn("DeviceProfiles", "EnforceOrganisationalUnit"); + DropColumn("DeviceProfiles", "EnforceComputerNameConvention"); + DropColumn("DeviceProfiles", "AllocateWirelessCertificate"); + DropColumn("DeviceProfiles", "OrganisationalUnit"); + DropColumn("DeviceProfiles", "DistributionType"); + DropColumn("DeviceProfiles", "ComputerNameTemplate"); + } + } +} diff --git a/Disco.Data/Migrations/201206280337277_DBv4.Designer.cs b/Disco.Data/Migrations/201206280337277_DBv4.Designer.cs new file mode 100644 index 00000000..84b8410f --- /dev/null +++ b/Disco.Data/Migrations/201206280337277_DBv4.Designer.cs @@ -0,0 +1,24 @@ +// +namespace Disco.Data.Migrations +{ + using System.Data.Entity.Migrations; + using System.Data.Entity.Migrations.Infrastructure; + + public sealed partial class DBv4 : IMigrationMetadata + { + string IMigrationMetadata.Id + { + get { return "201206280337277_DBv4"; } + } + + string IMigrationMetadata.Source + { + get { return null; } + } + + string IMigrationMetadata.Target + { + get { return "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"; } + } + } +} diff --git a/Disco.Data/Migrations/201206280337277_DBv4.cs b/Disco.Data/Migrations/201206280337277_DBv4.cs new file mode 100644 index 00000000..cba14a45 --- /dev/null +++ b/Disco.Data/Migrations/201206280337277_DBv4.cs @@ -0,0 +1,52 @@ +namespace Disco.Data.Migrations +{ + using System.Data.Entity.Migrations; + + public partial class DBv4 : DbMigration + { + public override void Up() + { + AddColumn("DeviceProfiles", "ProvisionADAccount", c => c.Boolean(nullable: false)); + Sql(@"UPDATE [DeviceProfiles] SET [ProvisionADAccount]=1;"); + + DropColumn("Devices", "CertificateStoreReference"); + + RenameTable(name: "WirelessCertificates", newName: "DeviceCertificates"); + AddColumn("DeviceCertificates", "ProviderId", c => c.String(maxLength: 64)); + RenameColumn("DeviceCertificates", "Index", "ProviderIndex"); + Sql("UPDATE DeviceCertificates SET ProviderId='EduSTARnetCertificateProvider'"); + AlterColumn("DeviceCertificates", "ProviderId", c => c.String(nullable: false, maxLength: 64)); + + //RenameColumn("DeviceProfiles", "AllocateWirelessCertificate", "AllocateCertificate"); + AddColumn("DeviceProfiles", "CertificateProviderId", c => c.String(maxLength: 64)); + Sql(@"UPDATE [DeviceProfiles] SET [CertificateProviderId]='EduSTARnetCertificateProvider' WHERE [AllocateWirelessCertificate]=1;"); + + // Migrate eduSTAR.net Configuration + Sql(@"UPDATE [Configuration] SET [Scope]='CertificateProvider_eduSTAR.net', [Key]='AutoBufferMin' WHERE [Scope]='Wireless' AND [Key]='CertificateAutoBufferLow'; +UPDATE [Configuration] SET [Scope]='CertificateProvider_eduSTAR.net', [Key]='AutoBufferMax' WHERE [Scope]='Wireless' AND [Key]='CertificateAutoBufferMax'; +UPDATE [Configuration] SET [Scope]='CertificateProvider_eduSTAR.net', [Key]='ServicePassword' WHERE [Scope]='Wireless_eduSTAR' AND [Key]='ServiceAccountPassword'; +UPDATE [Configuration] SET [Scope]='CertificateProvider_eduSTAR.net', [Key]='SchoolId' WHERE [Scope]='Wireless_eduSTAR' AND [Key]='ServiceAccountSchoolId'; +UPDATE [Configuration] SET [Scope]='CertificateProvider_eduSTAR.net', [Key]='ServiceUsername' WHERE [Scope]='Wireless_eduSTAR' AND [Key]='ServiceAccountUsername';" + ); + + Sql(@"UPDATE [DeviceModels] SET [DefaultWarrantyProvider]='LWTWarrantyProvider' WHERE [DefaultWarrantyProvider]='LWT';"); + + DropColumn("DeviceProfiles", "AllocateWirelessCertificate"); + } + + public override void Down() + { + AddColumn("DeviceProfiles", "AllocateWirelessCertificate", c => c.Boolean(nullable: false)); + + RenameColumn("DeviceCertificates", "ProviderIndex", "Index"); + DropColumn("DeviceCertificates", "ProviderId"); + RenameTable(name: "DeviceCertificates", newName: "WirelessCertificates"); + + DropColumn("DeviceProfiles", "CertificateProviderId"); + + AddColumn("Devices", "CertificateStoreReference", c => c.String(maxLength: 24)); + + DropColumn("DeviceProfiles", "ProvisionADAccount"); + } + } +} diff --git a/Disco.Data/Migrations/201211090325116_DBv5.Designer.cs b/Disco.Data/Migrations/201211090325116_DBv5.Designer.cs new file mode 100644 index 00000000..3111a16b --- /dev/null +++ b/Disco.Data/Migrations/201211090325116_DBv5.Designer.cs @@ -0,0 +1,27 @@ +// +namespace Disco.Data.Migrations +{ + using System.Data.Entity.Migrations; + using System.Data.Entity.Migrations.Infrastructure; + using System.Resources; + + public sealed partial class DBv5 : IMigrationMetadata + { + private readonly ResourceManager Resources = new ResourceManager(typeof(DBv5)); + + string IMigrationMetadata.Id + { + get { return "201211090325116_DBv5"; } + } + + string IMigrationMetadata.Source + { + get { return null; } + } + + string IMigrationMetadata.Target + { + get { return Resources.GetString("Target"); } + } + } +} diff --git a/Disco.Data/Migrations/201211090325116_DBv5.cs b/Disco.Data/Migrations/201211090325116_DBv5.cs new file mode 100644 index 00000000..6fb5bfa8 --- /dev/null +++ b/Disco.Data/Migrations/201211090325116_DBv5.cs @@ -0,0 +1,96 @@ +namespace Disco.Data.Migrations +{ + using System; + using System.Data.Entity.Migrations; + + public partial class DBv5 : DbMigration + { + public override void Up() + { + // Drop Foreign Keys + + // 2012-11-09 - G# + // ForeignKey Names are not consistant among databases - Especially version 4.3.1 -> 5.0.0.net45 + #region "Support inconsistant foreign key names" + // DeviceCertificates was renamed from WirelessCertificates + Sql(@" + BEGIN TRY + ALTER TABLE [dbo].[DeviceCertificates] DROP CONSTRAINT [FK_dbo.DeviceCertificates_dbo.Devices_DeviceSerialNumber]; + END TRY + BEGIN CATCH + ALTER TABLE [dbo].[DeviceCertificates] DROP CONSTRAINT [FK_WirelessCertificates_Devices_DeviceSerialNumber]; + END CATCH;", true); + // DeviceAttachments + Sql(@" + BEGIN TRY + ALTER TABLE [dbo].[DeviceAttachments] DROP CONSTRAINT [FK_dbo.DeviceAttachments_dbo.Devices_DeviceSerialNumber]; + END TRY + BEGIN CATCH + ALTER TABLE [dbo].[DeviceAttachments] DROP CONSTRAINT [FK_DeviceAttachments_Devices_DeviceSerialNumber]; + END CATCH;", true); + // DeviceDetails + Sql(@" + BEGIN TRY + ALTER TABLE [dbo].[DeviceDetails] DROP CONSTRAINT [FK_dbo.DeviceDetails_dbo.Devices_DeviceSerialNumber]; + END TRY + BEGIN CATCH + ALTER TABLE [dbo].[DeviceDetails] DROP CONSTRAINT [FK_DeviceDetails_Devices_DeviceSerialNumber]; + END CATCH;", true); + // Jobs + Sql(@" + BEGIN TRY + ALTER TABLE [dbo].[Jobs] DROP CONSTRAINT [FK_dbo.Jobs_dbo.Devices_DeviceSerialNumber]; + END TRY + BEGIN CATCH + ALTER TABLE [dbo].[Jobs] DROP CONSTRAINT [FK_Jobs_Devices_DeviceSerialNumber]; + END CATCH;", true); + // DeviceUserAssignments + Sql(@" + BEGIN TRY + ALTER TABLE [dbo].[DeviceUserAssignments] DROP CONSTRAINT [FK_dbo.DeviceUserAssignments_dbo.Devices_DeviceSerialNumber]; + END TRY + BEGIN CATCH + ALTER TABLE [dbo].[DeviceUserAssignments] DROP CONSTRAINT [FK_DeviceUserAssignments_Devices_DeviceSerialNumber]; + END CATCH;", true); + #endregion + + AlterColumn("dbo.Devices", "SerialNumber", c => c.String(nullable: false, maxLength: 60)); + AlterColumn("dbo.DeviceUserAssignments", "DeviceSerialNumber", c => c.String(nullable: false, maxLength: 60)); + AlterColumn("dbo.Jobs", "DeviceSerialNumber", c => c.String(maxLength: 60)); + AlterColumn("dbo.DeviceDetails", "DeviceSerialNumber", c => c.String(nullable: false, maxLength: 60)); + AlterColumn("dbo.DeviceAttachments", "DeviceSerialNumber", c => c.String(maxLength: 60)); + AlterColumn("dbo.DeviceCertificates", "DeviceSerialNumber", c => c.String(maxLength: 60)); + + // Re-create Foreign Keys + AddForeignKey("dbo.DeviceCertificates", "DeviceSerialNumber", "dbo.Devices", "SerialNumber"); + AddForeignKey("dbo.DeviceAttachments", "DeviceSerialNumber", "dbo.Devices", "SerialNumber"); + AddForeignKey("dbo.DeviceDetails", "DeviceSerialNumber", "dbo.Devices", "SerialNumber"); + AddForeignKey("dbo.Jobs", "DeviceSerialNumber", "dbo.Devices", "SerialNumber"); + AddForeignKey("dbo.DeviceUserAssignments", "DeviceSerialNumber", "dbo.Devices", "SerialNumber"); + } + + public override void Down() + { + // Drop Foreign Keys + DropForeignKey("dbo.DeviceCertificates", "DeviceSerialNumber", "dbo.Devices", "SerialNumber"); + DropForeignKey("dbo.DeviceAttachments", "DeviceSerialNumber", "dbo.Devices", "SerialNumber"); + DropForeignKey("dbo.DeviceDetails", "DeviceSerialNumber", "dbo.Devices", "SerialNumber"); + DropForeignKey("dbo.Jobs", "DeviceSerialNumber", "dbo.Devices", "SerialNumber"); + DropForeignKey("dbo.DeviceUserAssignments", "DeviceSerialNumber", "dbo.Devices", "SerialNumber"); + + AlterColumn("dbo.DeviceCertificates", "DeviceSerialNumber", c => c.String(maxLength: 40)); + AlterColumn("dbo.DeviceAttachments", "DeviceSerialNumber", c => c.String(maxLength: 40)); + AlterColumn("dbo.DeviceDetails", "DeviceSerialNumber", c => c.String(nullable: false, maxLength: 40)); + AlterColumn("dbo.Jobs", "DeviceSerialNumber", c => c.String(maxLength: 40)); + AlterColumn("dbo.DeviceUserAssignments", "DeviceSerialNumber", c => c.String(nullable: false, maxLength: 40)); + AlterColumn("dbo.Devices", "SerialNumber", c => c.String(nullable: false, maxLength: 40)); + + // Re-create Foreign Keys + AddForeignKey("dbo.DeviceCertificates", "DeviceSerialNumber", "dbo.Devices", "SerialNumber"); + AddForeignKey("dbo.DeviceAttachments", "DeviceSerialNumber", "dbo.Devices", "SerialNumber"); + AddForeignKey("dbo.DeviceDetails", "DeviceSerialNumber", "dbo.Devices", "SerialNumber"); + AddForeignKey("dbo.Jobs", "DeviceSerialNumber", "dbo.Devices", "SerialNumber"); + AddForeignKey("dbo.DeviceUserAssignments", "DeviceSerialNumber", "dbo.Devices", "SerialNumber"); + } + } +} diff --git a/Disco.Data/Migrations/201211090325116_DBv5.resx b/Disco.Data/Migrations/201211090325116_DBv5.resx new file mode 100644 index 00000000..b1b4ea98 --- /dev/null +++ b/Disco.Data/Migrations/201211090325116_DBv5.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 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 + + \ No newline at end of file diff --git a/Disco.Data/Migrations/201301150107063_DBv6.Designer.cs b/Disco.Data/Migrations/201301150107063_DBv6.Designer.cs new file mode 100644 index 00000000..2a4d4f83 --- /dev/null +++ b/Disco.Data/Migrations/201301150107063_DBv6.Designer.cs @@ -0,0 +1,27 @@ +// +namespace Disco.Data.Migrations +{ + using System.Data.Entity.Migrations; + using System.Data.Entity.Migrations.Infrastructure; + using System.Resources; + + public sealed partial class DBv6 : IMigrationMetadata + { + private readonly ResourceManager Resources = new ResourceManager(typeof(DBv6)); + + string IMigrationMetadata.Id + { + get { return "201301150107063_DBv6"; } + } + + string IMigrationMetadata.Source + { + get { return null; } + } + + string IMigrationMetadata.Target + { + get { return Resources.GetString("Target"); } + } + } +} diff --git a/Disco.Data/Migrations/201301150107063_DBv6.cs b/Disco.Data/Migrations/201301150107063_DBv6.cs new file mode 100644 index 00000000..69354537 --- /dev/null +++ b/Disco.Data/Migrations/201301150107063_DBv6.cs @@ -0,0 +1,18 @@ +namespace Disco.Data.Migrations +{ + using System; + using System.Data.Entity.Migrations; + + public partial class DBv6 : DbMigration + { + public override void Up() + { + DropColumn("dbo.DeviceModels", "Image"); + } + + public override void Down() + { + AddColumn("dbo.DeviceModels", "Image", c => c.Binary()); + } + } +} diff --git a/Disco.Data/Migrations/201301150107063_DBv6.resx b/Disco.Data/Migrations/201301150107063_DBv6.resx new file mode 100644 index 00000000..6b2efbde --- /dev/null +++ b/Disco.Data/Migrations/201301150107063_DBv6.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 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 + + \ No newline at end of file diff --git a/Disco.Data/Migrations/Configuration.cs b/Disco.Data/Migrations/Configuration.cs new file mode 100644 index 00000000..55509047 --- /dev/null +++ b/Disco.Data/Migrations/Configuration.cs @@ -0,0 +1,21 @@ +namespace Disco.Data.Migrations +{ + using System; + using System.Data.Entity; + using System.Data.Entity.Migrations; + using System.Linq; + using Disco.Data.Repository; + + internal sealed class Configuration : DbMigrationsConfiguration + { + public Configuration() + { + AutomaticMigrationsEnabled = false; + } + + protected override void Seed(DiscoDataContext context) + { + context.SeedDatabase(); + } + } +} diff --git a/Disco.Data/Migrations/DiscoDataMigrator.cs b/Disco.Data/Migrations/DiscoDataMigrator.cs new file mode 100644 index 00000000..ce8dc00e --- /dev/null +++ b/Disco.Data/Migrations/DiscoDataMigrator.cs @@ -0,0 +1,97 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Data.Entity.Migrations; +using System.Data.Entity.Migrations.Infrastructure; +using Disco.Data.Repository; + +namespace Disco.Data.Migrations +{ + public static class DiscoDataMigrator + { + + private static DbMigrator GetMigrator() + { + var migContext = new DbMigrationsConfiguration(); + migContext.MigrationsAssembly = typeof(DiscoDataMigrator).Assembly; + migContext.MigrationsNamespace = "Disco.Data.Migrations"; + + return new DbMigrator(migContext); + } + + public static void MigrateLatest(bool Seed) + { + var migrator = GetMigrator(); + + migrator.Update(); + + if (Seed) + SeedDatabase(); + } + public static void ForceMigration(string TargetMigration, bool Seed) + { + var migrator = GetMigrator(); + + migrator.Update(TargetMigration); + + if (Seed) + SeedDatabase(); + } + + public static string MigrationScript(string CurrentMigration, string TargetMigration) + { + var migrator = GetMigrator(); + var scriptor = new MigratorScriptingDecorator(migrator); + return scriptor.ScriptUpdate(CurrentMigration, TargetMigration); + } + + public static void SeedDatabase() + { + // Seed/Update Database + using (DiscoDataContext dbContext = new DiscoDataContext()) + { + dbContext.SeedDatabase(); + try + { + dbContext.SaveChanges(); + } + catch (Exception ex) + { + System.Diagnostics.Debug.WriteLine(ex.Message); + throw; + } + } + } + + public static MigrationStatus Status() + { + var migrator = GetMigrator(); + + var appliedMigrations = migrator.GetDatabaseMigrations().ToList(); + var pendingMigrations = migrator.GetPendingMigrations().ToList(); + var currentMigration = appliedMigrations.LastOrDefault(); + + return new MigrationStatus() + { + CurrentMigration = currentMigration, + AppliedMigrations = appliedMigrations, + PendingMigrations = pendingMigrations, + AllMigrations = appliedMigrations.Union(pendingMigrations) + }; + } + + public class MigrationStatus + { + public string CurrentMigration { get; internal set; } + public IEnumerable AppliedMigrations { get; internal set; } + public IEnumerable PendingMigrations { get; internal set; } + public IEnumerable AllMigrations { get; internal set; } + + internal MigrationStatus() + { + // Private Constructor + } + } + } +} diff --git a/Disco.Data/Properties/AssemblyInfo.cs b/Disco.Data/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..4200fafc --- /dev/null +++ b/Disco.Data/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using 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. +[assembly: AssemblyTitle("Disco - Data")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Disco")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// 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. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("77cc3aa4-5055-44aa-97b1-c42e5f5e1acd")] + +// 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.*")] +[assembly: AssemblyVersion("1.2.0131.2002")] +[assembly: AssemblyFileVersion("1.2.0131.2002")] diff --git a/Disco.Data/Properties/Resources.Designer.cs b/Disco.Data/Properties/Resources.Designer.cs new file mode 100644 index 00000000..2070c0c5 --- /dev/null +++ b/Disco.Data/Properties/Resources.Designer.cs @@ -0,0 +1,73 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.17929 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Disco.Data.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // 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. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Disco.Data.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Byte[]. + /// + internal static byte[] EmptyLogo { + get { + object obj = ResourceManager.GetObject("EmptyLogo", resourceCulture); + return ((byte[])(obj)); + } + } + } +} diff --git a/Disco.Data/Properties/Resources.resx b/Disco.Data/Properties/Resources.resx new file mode 100644 index 00000000..e701f043 --- /dev/null +++ b/Disco.Data/Properties/Resources.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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\EmptyLogo.png;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Disco.Data/Repository/DiscoDataContext.cs b/Disco.Data/Repository/DiscoDataContext.cs new file mode 100644 index 00000000..59e3d321 --- /dev/null +++ b/Disco.Data/Repository/DiscoDataContext.cs @@ -0,0 +1,72 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Data.Entity; +using Disco.Models.Repository; +using System.Data.Entity.ModelConfiguration.Conventions; + +namespace Disco.Data.Repository +{ + public class DiscoDataContext : DbContext + { + private Lazy _Configuration; + + public DiscoDataContext() + { + this._Configuration = new Lazy(() => new Configuration.ConfigurationContext(this)); + } + + public virtual DbSet ConfigurationItems { get; set; } + + public virtual DbSet DocumentTemplates { get; set; } + + public virtual DbSet Users { get; set; } + public virtual DbSet UserAttachments { get; set; } + + public virtual DbSet DeviceUserAssignments { get; set; } + + public virtual DbSet Devices { get; set; } + public virtual DbSet DeviceDetails { get; set; } + public virtual DbSet DeviceModels { get; set; } + public virtual DbSet DeviceProfiles { get; set; } + public virtual DbSet DeviceBatches { get; set; } + public virtual DbSet DeviceComponents { get; set; } + public virtual DbSet DeviceAttachments { get; set; } + + public virtual DbSet DeviceCertificates { get; set; } + + public virtual DbSet Jobs { get; set; } + public virtual DbSet JobTypes { get; set; } + public virtual DbSet JobSubTypes { get; set; } + public virtual DbSet JobLogs { get; set; } + public virtual DbSet JobAttachments { get; set; } + public virtual DbSet JobComponents { get; set; } + + public virtual DbSet JobMetaWarranties { get; set; } + public virtual DbSet JobMetaNonWarranties { get; set; } + public virtual DbSet JobMetaInsurances { get; set; } + + public Configuration.ConfigurationContext DiscoConfiguration + { + get + { + return this._Configuration.Value; + } + } + + protected override void OnModelCreating(DbModelBuilder modelBuilder) + { + modelBuilder.Conventions.Remove(); + + modelBuilder.Entity().HasMany(m => m.JobSubTypes).WithMany(m => m.DeviceComponents).Map(m => m.ToTable("DeviceComponents_JobSubTypes")); + modelBuilder.Entity().HasMany(m => m.JobSubTypes).WithMany(m => m.AttachmentTypes).Map(m => m.ToTable("DocumentTemplates_JobSubTypes")); + + modelBuilder.Entity().HasMany(m => m.JobSubTypes).WithMany(m => m.Jobs).Map(m => m.ToTable("Jobs_JobSubTypes")); + modelBuilder.Entity().HasMany(m => m.Jobs).WithOptional(m => m.User); + modelBuilder.Entity().HasMany(m => m.Jobs).WithOptional(m => m.Device); + modelBuilder.Entity().Property(DeviceProfile.PropertyAccessExpressions.DistributionTypeDb); + } + + } +} diff --git a/Disco.Data/Repository/DiscoDataContextInitializer.cs b/Disco.Data/Repository/DiscoDataContextInitializer.cs new file mode 100644 index 00000000..869a5b74 --- /dev/null +++ b/Disco.Data/Repository/DiscoDataContextInitializer.cs @@ -0,0 +1,19 @@ +// Shouldn't Need this => Moved to Entity Migrations... + +//using System; +//using System.Collections.Generic; +//using System.Linq; +//using System.Text; +//using System.Data.Entity; + +//namespace Disco.Data.Repository +//{ +// class DiscoDataContextInitializer : CreateDatabaseIfNotExists +// { +// protected override void Seed(DiscoDataContext context) +// { +// context.SeedDatabase(); +// context.SaveChanges(); +// } +// } +//} diff --git a/Disco.Data/Repository/DiscoDataSeeder.cs b/Disco.Data/Repository/DiscoDataSeeder.cs new file mode 100644 index 00000000..296a639e --- /dev/null +++ b/Disco.Data/Repository/DiscoDataSeeder.cs @@ -0,0 +1,270 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Models.Repository; + +namespace Disco.Data.Repository +{ + public static class DiscoDataSeeder + { + public static void SeedDatabase(this DiscoDataContext context) + { + context.SeedDeploymentId(); + context.SeedDeviceModels(); + context.SeedDeviceProfiles(); + context.SeedJobTypes(); + context.SeedJobSubTypes(); + } + + public static void SeedDeploymentId(this DiscoDataContext context) + { + if (context.ConfigurationItems.Count(ci => ci.Scope == "System" && ci.Key == "DeploymentId") == 0) + { + var deploymentId = Guid.NewGuid().ToString("D"); + context.ConfigurationItems.Add(new ConfigurationItem { Scope = "System", Key = "DeploymentId", Value = deploymentId }); + } + } + public static void SeedJobTypes(this DiscoDataContext context) + { + if (context.JobTypes.Count() == 0) + { + context.JobTypes.Add(new JobType { Id = JobType.JobTypeIds.HWar, Description = "Hardware - Warranty" }); + context.JobTypes.Add(new JobType { Id = JobType.JobTypeIds.HNWar, Description = "Hardware - Non-Warranty" }); + context.JobTypes.Add(new JobType { Id = JobType.JobTypeIds.HMisc, Description = "Hardware - Misc" }); + context.JobTypes.Add(new JobType { Id = JobType.JobTypeIds.SImg, Description = "Software - Reimage" }); + context.JobTypes.Add(new JobType { Id = JobType.JobTypeIds.SApp, Description = "Software - Application" }); + context.JobTypes.Add(new JobType { Id = JobType.JobTypeIds.SOS, Description = "Software - Operating System" }); + } + // 2012-05-22 + #region "User Management" Added + if (context.JobTypes.Count(jt => jt.Id == JobType.JobTypeIds.UMgmt) == 0) + context.JobTypes.Add(new JobType { Id = JobType.JobTypeIds.UMgmt, Description = "User - Management" }); + #endregion + // End + } + public static void SeedDeviceModels(this DiscoDataContext context) + { + if (context.DeviceModels.Count() == 0) + { + context.DeviceModels.Add(new DeviceModel { Manufacturer = "Unknown", Model = "Unknown", Description = "Unknown Device Model" }); + } + UpdateDeviceModelConfiguration(context); + // Removed: 2013-01-14 G# + //UpdateDeviceModelImageStorage(context); + } + public static void SeedDeviceProfiles(this DiscoDataContext context) + { + if (context.DeviceProfiles.Count() == 0) + { + context.DeviceProfiles.Add(new DeviceProfile { ShortName = "WS", Name = "Default", Description = "Initial Default Workstation Profile", ComputerNameTemplate = "DeviceProfile.ShortName + ''-'' + SerialNumber" }); + } + } + public static void SeedJobSubTypes(this DiscoDataContext context) + { + if (context.JobSubTypes.Count() == 0) + { + context.JobSubTypes.Add(new JobSubType { Id = "Bag", JobTypeId = JobType.JobTypeIds.HWar, Description = "Bag" }); + context.JobSubTypes.Add(new JobSubType { Id = "Battery", JobTypeId = JobType.JobTypeIds.HWar, Description = "Battery" }); + context.JobSubTypes.Add(new JobSubType { Id = "BezelCaseBottom", JobTypeId = JobType.JobTypeIds.HWar, Description = "Bezel - Case Bottom" }); + context.JobSubTypes.Add(new JobSubType { Id = "BezelCaseTop", JobTypeId = JobType.JobTypeIds.HWar, Description = "Bezel - Case Top" }); + context.JobSubTypes.Add(new JobSubType { Id = "BezelScreenInner", JobTypeId = JobType.JobTypeIds.HWar, Description = "Bezel - Screen Inner" }); + context.JobSubTypes.Add(new JobSubType { Id = "BezelScreenTop", JobTypeId = JobType.JobTypeIds.HWar, Description = "Bezel - Screen Top" }); + context.JobSubTypes.Add(new JobSubType { Id = "BluetoothAdapter", JobTypeId = JobType.JobTypeIds.HWar, Description = "Bluetooth Adapter" }); + context.JobSubTypes.Add(new JobSubType { Id = "CPU", JobTypeId = JobType.JobTypeIds.HWar, Description = "CPU" }); + context.JobSubTypes.Add(new JobSubType { Id = "HardDrive", JobTypeId = JobType.JobTypeIds.HWar, Description = "Hard Drive" }); + context.JobSubTypes.Add(new JobSubType { Id = "Keyboard", JobTypeId = JobType.JobTypeIds.HWar, Description = "Keyboard" }); + context.JobSubTypes.Add(new JobSubType { Id = "Motherboard", JobTypeId = JobType.JobTypeIds.HWar, Description = "Motherboard" }); + context.JobSubTypes.Add(new JobSubType { Id = "Mouse", JobTypeId = JobType.JobTypeIds.HWar, Description = "Mouse/Track Pad" }); + context.JobSubTypes.Add(new JobSubType { Id = "PowerAdapter", JobTypeId = JobType.JobTypeIds.HWar, Description = "Power Adapter" }); + context.JobSubTypes.Add(new JobSubType { Id = "PowerCord", JobTypeId = JobType.JobTypeIds.HWar, Description = "Power Cord/Socket" }); + context.JobSubTypes.Add(new JobSubType { Id = "RAM", JobTypeId = JobType.JobTypeIds.HWar, Description = "RAM" }); + context.JobSubTypes.Add(new JobSubType { Id = "ReplacementDevice", JobTypeId = JobType.JobTypeIds.HWar, Description = "Replacement Device" }); + context.JobSubTypes.Add(new JobSubType { Id = "Screen", JobTypeId = JobType.JobTypeIds.HWar, Description = "Screen" }); + context.JobSubTypes.Add(new JobSubType { Id = "Speakers", JobTypeId = JobType.JobTypeIds.HWar, Description = "Speakers" }); + context.JobSubTypes.Add(new JobSubType { Id = "WebCamera", JobTypeId = JobType.JobTypeIds.HWar, Description = "Web Camera" }); + context.JobSubTypes.Add(new JobSubType { Id = "WirelessAdapter", JobTypeId = JobType.JobTypeIds.HWar, Description = "Wireless Adapter" }); + context.JobSubTypes.Add(new JobSubType { Id = "Other", JobTypeId = JobType.JobTypeIds.HWar, Description = "Other" }); + context.JobSubTypes.Add(new JobSubType { Id = "Bag", JobTypeId = JobType.JobTypeIds.HNWar, Description = "Bag" }); + context.JobSubTypes.Add(new JobSubType { Id = "Battery", JobTypeId = JobType.JobTypeIds.HNWar, Description = "Battery" }); + context.JobSubTypes.Add(new JobSubType { Id = "BezelCaseBottom", JobTypeId = JobType.JobTypeIds.HNWar, Description = "Bezel - Case Bottom" }); + context.JobSubTypes.Add(new JobSubType { Id = "BezelCaseTop", JobTypeId = JobType.JobTypeIds.HNWar, Description = "Bezel - Case Top" }); + context.JobSubTypes.Add(new JobSubType { Id = "BezelScreenInner", JobTypeId = JobType.JobTypeIds.HNWar, Description = "Bezel - Screen Inner" }); + context.JobSubTypes.Add(new JobSubType { Id = "BezelScreenTop", JobTypeId = JobType.JobTypeIds.HNWar, Description = "Bezel - Screen Top" }); + context.JobSubTypes.Add(new JobSubType { Id = "BluetoothAdapter", JobTypeId = JobType.JobTypeIds.HNWar, Description = "Bluetooth Adapter" }); + context.JobSubTypes.Add(new JobSubType { Id = "CPU", JobTypeId = JobType.JobTypeIds.HNWar, Description = "CPU" }); + context.JobSubTypes.Add(new JobSubType { Id = "HardDrive", JobTypeId = JobType.JobTypeIds.HNWar, Description = "Hard Drive" }); + context.JobSubTypes.Add(new JobSubType { Id = "Keyboard", JobTypeId = JobType.JobTypeIds.HNWar, Description = "Keyboard" }); + context.JobSubTypes.Add(new JobSubType { Id = "Motherboard", JobTypeId = JobType.JobTypeIds.HNWar, Description = "Motherboard" }); + context.JobSubTypes.Add(new JobSubType { Id = "Mouse", JobTypeId = JobType.JobTypeIds.HNWar, Description = "Mouse/Track Pad" }); + context.JobSubTypes.Add(new JobSubType { Id = "PowerAdapter", JobTypeId = JobType.JobTypeIds.HNWar, Description = "Power Adapter" }); + context.JobSubTypes.Add(new JobSubType { Id = "PowerCord", JobTypeId = JobType.JobTypeIds.HNWar, Description = "Power Cord/Socket" }); + context.JobSubTypes.Add(new JobSubType { Id = "RAM", JobTypeId = JobType.JobTypeIds.HNWar, Description = "RAM" }); + context.JobSubTypes.Add(new JobSubType { Id = "ReplacementDevice", JobTypeId = JobType.JobTypeIds.HNWar, Description = "Replacement Device" }); + context.JobSubTypes.Add(new JobSubType { Id = "Screen", JobTypeId = JobType.JobTypeIds.HNWar, Description = "Screen" }); + context.JobSubTypes.Add(new JobSubType { Id = "Speakers", JobTypeId = JobType.JobTypeIds.HNWar, Description = "Speakers" }); + context.JobSubTypes.Add(new JobSubType { Id = "WebCamera", JobTypeId = JobType.JobTypeIds.HNWar, Description = "Web Camera" }); + context.JobSubTypes.Add(new JobSubType { Id = "WirelessAdapter", JobTypeId = JobType.JobTypeIds.HNWar, Description = "Wireless Adapter" }); + context.JobSubTypes.Add(new JobSubType { Id = "Other", JobTypeId = JobType.JobTypeIds.HNWar, Description = "Other" }); + context.JobSubTypes.Add(new JobSubType { Id = "ExternalHardDrive", JobTypeId = JobType.JobTypeIds.HMisc, Description = "External Hard Drive" }); + context.JobSubTypes.Add(new JobSubType { Id = "IWB", JobTypeId = JobType.JobTypeIds.HMisc, Description = "Interactive Whiteboard" }); + context.JobSubTypes.Add(new JobSubType { Id = "InternetDongle", JobTypeId = JobType.JobTypeIds.HMisc, Description = "Internet Dongle" }); + context.JobSubTypes.Add(new JobSubType { Id = "Keyboard", JobTypeId = JobType.JobTypeIds.HMisc, Description = "External Keyboard" }); + context.JobSubTypes.Add(new JobSubType { Id = "MobilePhone", JobTypeId = JobType.JobTypeIds.HMisc, Description = "Mobile Phone" }); + context.JobSubTypes.Add(new JobSubType { Id = "Mouse", JobTypeId = JobType.JobTypeIds.HMisc, Description = "External Mouse" }); + context.JobSubTypes.Add(new JobSubType { Id = "MP3Player", JobTypeId = JobType.JobTypeIds.HMisc, Description = "MP3 Player" }); + context.JobSubTypes.Add(new JobSubType { Id = "PrinterScanner", JobTypeId = JobType.JobTypeIds.HMisc, Description = "Printer/Scanner" }); + context.JobSubTypes.Add(new JobSubType { Id = "Projector", JobTypeId = JobType.JobTypeIds.HMisc, Description = "Projector" }); + context.JobSubTypes.Add(new JobSubType { Id = "USBFlashDrive", JobTypeId = JobType.JobTypeIds.HMisc, Description = "USB Flash Drive" }); + context.JobSubTypes.Add(new JobSubType { Id = "WebCamera", JobTypeId = JobType.JobTypeIds.HMisc, Description = "Web Camera" }); + context.JobSubTypes.Add(new JobSubType { Id = "Other", JobTypeId = JobType.JobTypeIds.HMisc, Description = "Other" }); + context.JobSubTypes.Add(new JobSubType { Id = "ContentIllegal", JobTypeId = JobType.JobTypeIds.SImg, Description = "Content - Illegal" }); + context.JobSubTypes.Add(new JobSubType { Id = "ContentInappropriate", JobTypeId = JobType.JobTypeIds.SImg, Description = "Content - Inappropriate" }); + context.JobSubTypes.Add(new JobSubType { Id = "CorruptOS", JobTypeId = JobType.JobTypeIds.SImg, Description = "Corrupt Operating System" }); + context.JobSubTypes.Add(new JobSubType { Id = "HardwareChanges", JobTypeId = JobType.JobTypeIds.SImg, Description = "Hardware Changes" }); + context.JobSubTypes.Add(new JobSubType { Id = "Malware", JobTypeId = JobType.JobTypeIds.SImg, Description = "Malware" }); + context.JobSubTypes.Add(new JobSubType { Id = "Performance", JobTypeId = JobType.JobTypeIds.SImg, Description = "Performance" }); + context.JobSubTypes.Add(new JobSubType { Id = "UserRequest", JobTypeId = JobType.JobTypeIds.SImg, Description = "User Request" }); + context.JobSubTypes.Add(new JobSubType { Id = "UpdatedImage", JobTypeId = JobType.JobTypeIds.SImg, Description = "Updated Image" }); + context.JobSubTypes.Add(new JobSubType { Id = "Other", JobTypeId = JobType.JobTypeIds.SImg, Description = "Other" }); + context.JobSubTypes.Add(new JobSubType { Id = "CurriculumTool", JobTypeId = JobType.JobTypeIds.SApp, Description = "Curriculum Tool" }); + context.JobSubTypes.Add(new JobSubType { Id = "GamingEntertainment", JobTypeId = JobType.JobTypeIds.SApp, Description = "Gaming/Entertainment" }); + context.JobSubTypes.Add(new JobSubType { Id = "ImageManipulation", JobTypeId = JobType.JobTypeIds.SApp, Description = "Image Manipulation" }); + context.JobSubTypes.Add(new JobSubType { Id = "MultimediaPlayback", JobTypeId = JobType.JobTypeIds.SApp, Description = "Multimedia Playback" }); + context.JobSubTypes.Add(new JobSubType { Id = "Presentation", JobTypeId = JobType.JobTypeIds.SApp, Description = "Presentation" }); + context.JobSubTypes.Add(new JobSubType { Id = "Spreadsheet", JobTypeId = JobType.JobTypeIds.SApp, Description = "Spreadsheet" }); + context.JobSubTypes.Add(new JobSubType { Id = "StaffTool", JobTypeId = JobType.JobTypeIds.SApp, Description = "Staff Tool" }); + context.JobSubTypes.Add(new JobSubType { Id = "StudentReporting", JobTypeId = JobType.JobTypeIds.SApp, Description = "Student Reporting" }); + context.JobSubTypes.Add(new JobSubType { Id = "VideoEditing", JobTypeId = JobType.JobTypeIds.SApp, Description = "Video Editing" }); + context.JobSubTypes.Add(new JobSubType { Id = "WebBrowser", JobTypeId = JobType.JobTypeIds.SApp, Description = "Web Browser" }); + context.JobSubTypes.Add(new JobSubType { Id = "WebBrowserPlugin", JobTypeId = JobType.JobTypeIds.SApp, Description = "Web Browser Plugin" }); + context.JobSubTypes.Add(new JobSubType { Id = "WordProcessing", JobTypeId = JobType.JobTypeIds.SApp, Description = "Word Processing" }); + context.JobSubTypes.Add(new JobSubType { Id = "Other", JobTypeId = JobType.JobTypeIds.SApp, Description = "Other" }); + context.JobSubTypes.Add(new JobSubType { Id = "Appearance", JobTypeId = JobType.JobTypeIds.SOS, Description = "Appearance & Personalisation" }); + context.JobSubTypes.Add(new JobSubType { Id = "DisplaySettings", JobTypeId = JobType.JobTypeIds.SOS, Description = "Display Settings" }); + context.JobSubTypes.Add(new JobSubType { Id = "DriversIWB", JobTypeId = JobType.JobTypeIds.SOS, Description = "Drivers - Interactive Whiteboard" }); + context.JobSubTypes.Add(new JobSubType { Id = "DriversPrintScan", JobTypeId = JobType.JobTypeIds.SOS, Description = "Drivers - Printers/Scanners" }); + context.JobSubTypes.Add(new JobSubType { Id = "DriversSystem", JobTypeId = JobType.JobTypeIds.SOS, Description = "Drivers - System" }); + context.JobSubTypes.Add(new JobSubType { Id = "DriversOther", JobTypeId = JobType.JobTypeIds.SOS, Description = "Drivers - Other" }); + context.JobSubTypes.Add(new JobSubType { Id = "Group Policy", JobTypeId = JobType.JobTypeIds.SOS, Description = "Group Policy" }); + context.JobSubTypes.Add(new JobSubType { Id = "KeyboardMouseConfig", JobTypeId = JobType.JobTypeIds.SOS, Description = "Keyboard/Mouse Configuration" }); + context.JobSubTypes.Add(new JobSubType { Id = "MalwareProtection", JobTypeId = JobType.JobTypeIds.SOS, Description = "Malware Protection" }); + context.JobSubTypes.Add(new JobSubType { Id = "NetworkDrives", JobTypeId = JobType.JobTypeIds.SOS, Description = "Network Drives" }); + context.JobSubTypes.Add(new JobSubType { Id = "NetworkWired", JobTypeId = JobType.JobTypeIds.SOS, Description = "Network - Wired" }); + context.JobSubTypes.Add(new JobSubType { Id = "NetworkWireless", JobTypeId = JobType.JobTypeIds.SOS, Description = "Network - Wireless" }); + context.JobSubTypes.Add(new JobSubType { Id = "NetworkOther", JobTypeId = JobType.JobTypeIds.SOS, Description = "Network - Other" }); + context.JobSubTypes.Add(new JobSubType { Id = "PatchUpdate", JobTypeId = JobType.JobTypeIds.SOS, Description = "Patches/Updates" }); + context.JobSubTypes.Add(new JobSubType { Id = "PowerManagement", JobTypeId = JobType.JobTypeIds.SOS, Description = "Power Management" }); + context.JobSubTypes.Add(new JobSubType { Id = "PrintersScanners", JobTypeId = JobType.JobTypeIds.SOS, Description = "Printers/Scanners" }); + context.JobSubTypes.Add(new JobSubType { Id = "SoundConfig", JobTypeId = JobType.JobTypeIds.SOS, Description = "Sound Configuration" }); + context.JobSubTypes.Add(new JobSubType { Id = "Other", JobTypeId = JobType.JobTypeIds.SOS, Description = "Other" }); + } + + // Feature Request 2012-04-27 by Elijah: https://disco.uservoice.com/forums/159707-feedback/suggestions/2803945-customisable-job-sub-types + #region "Optical Drive" Added + if (context.JobSubTypes.Count(jst => jst.JobTypeId == JobType.JobTypeIds.HNWar && jst.Id == "OpticalDrive") == 0) + context.JobSubTypes.Add(new JobSubType { Id = "OpticalDrive", JobTypeId = JobType.JobTypeIds.HNWar, Description = "Optical Drive" }); + if (context.JobSubTypes.Count(jst => jst.JobTypeId == JobType.JobTypeIds.HWar && jst.Id == "OpticalDrive") == 0) + context.JobSubTypes.Add(new JobSubType { Id = "OpticalDrive", JobTypeId = JobType.JobTypeIds.HWar, Description = "Optical Drive" }); + #endregion + // End Feature Request + + // 2012-05-22 + #region "User Management" Added + if (context.JobSubTypes.Count(jst => jst.JobTypeId == JobType.JobTypeIds.UMgmt) == 0) + { + context.JobSubTypes.Add(new JobSubType { Id = JobSubType.UserManagementJobSubTypes.Infringement, JobTypeId = JobType.JobTypeIds.UMgmt, Description = JobSubType.UserManagementJobSubTypes.Infringement }); + context.JobSubTypes.Add(new JobSubType { Id = JobSubType.UserManagementJobSubTypes.Contact, JobTypeId = JobType.JobTypeIds.UMgmt, Description = JobSubType.UserManagementJobSubTypes.Contact }); + } + #endregion + // End + + // 2012-05-29 - Audits + #region "Audit" Added + if (context.JobSubTypes.Count(jst => jst.JobTypeId == JobType.JobTypeIds.HMisc && jst.Id == "Audit") == 0) + context.JobSubTypes.Add(new JobSubType { Id = "Audit", JobTypeId = JobType.JobTypeIds.HMisc, Description = "Audit" }); + if (context.JobSubTypes.Count(jst => jst.JobTypeId == JobType.JobTypeIds.SApp && jst.Id == "Audit") == 0) + context.JobSubTypes.Add(new JobSubType { Id = "Audit", JobTypeId = JobType.JobTypeIds.SApp, Description = "Audit" }); + #endregion + // End + + // Feature Request 2012-06-16 by James: https://disco.uservoice.com/forums/159707-feedback/suggestions/3002911-add-in-microphone-in-hardware-warranty-and-non-war + #region "Microphone" Added + if (context.JobSubTypes.Count(jst => jst.JobTypeId == JobType.JobTypeIds.HNWar && jst.Id == "Microphone") == 0) + context.JobSubTypes.Add(new JobSubType { Id = "Microphone", JobTypeId = JobType.JobTypeIds.HNWar, Description = "Microphone" }); + if (context.JobSubTypes.Count(jst => jst.JobTypeId == JobType.JobTypeIds.HWar && jst.Id == "Microphone") == 0) + context.JobSubTypes.Add(new JobSubType { Id = "Microphone", JobTypeId = JobType.JobTypeIds.HWar, Description = "Microphone" }); + #endregion + // End Feature Request + } + + private static void UpdateDeviceModelConfiguration(this DiscoDataContext context) + { + if (context.ConfigurationItems.Where(c => c.Scope.StartsWith("DeviceProfile:")).Count() > 0) + { + var configurationItems = context.ConfigurationItems.Where(c => c.Scope.StartsWith("DeviceProfile:")).ToList(); + + var deviceProfiles = context.DeviceProfiles.ToDictionary(dp => dp.Id); + foreach (var configurationItem in configurationItems) + { + int profileId = int.Parse(configurationItem.Scope.Substring(configurationItem.Scope.IndexOf(":") + 1)); + DeviceProfile dp; + if (deviceProfiles.TryGetValue(profileId, out dp)) + { + switch (configurationItem.Key) + { + case "ComputerNameTemplate": + dp.ComputerNameTemplate = configurationItem.Value; + break; + case "DistributionType": + dp.DistributionType = (DeviceProfile.DistributionTypes)(int.Parse(configurationItem.Value)); + break; + case "OrganisationalUnit": + dp.OrganisationalUnit = configurationItem.Value; + break; + case "AllocateWirelessCertificate": + if (bool.Parse(configurationItem.Value)) + dp.CertificateProviderId = ""; + else + dp.CertificateProviderId = null; + break; + default: + continue; // Unknown Configuration Item - Leave in DB & Ignore + } + } + // Remove from DB + context.ConfigurationItems.Remove(configurationItem); + } + } + + } + + // Removed: 2013-01-14 G# +// private static void UpdateDeviceModelImageStorage(this DiscoDataContext dbContext) +// { +//#pragma warning disable 0618 +// var updateModels = dbContext.DeviceModels.Where(dm => dm.Image != null); +// if (updateModels.Count() > 0) +// { +// var dataStoreLocation = dbContext.ConfigurationItems.Where(ci => ci.Scope == "System" && ci.Key == "DataStoreLocation").Select(ci => ci.Value).FirstOrDefault(); +// if (!string.IsNullOrEmpty(dataStoreLocation) && System.IO.Directory.Exists(dataStoreLocation)) +// { +// var deviceModelImagesLocation = System.IO.Path.Combine(dataStoreLocation, "DeviceModelImages"); +// if (!System.IO.Directory.Exists(deviceModelImagesLocation)) +// System.IO.Directory.CreateDirectory(deviceModelImagesLocation); +// foreach (var model in updateModels) +// { +// var modelpath = System.IO.Path.Combine(deviceModelImagesLocation, string.Format("{0}.png", model.Id)); + +// if (model.Image != null && model.Image.Length > 0) +// { +// System.IO.File.WriteAllBytes(modelpath, model.Image); +// } +// model.Image = null; +// } +// } +// } +//#pragma warning restore 0618 +// } + } +} diff --git a/Disco.Data/Repository/DiscoDatabaseConnectionFactory.cs b/Disco.Data/Repository/DiscoDatabaseConnectionFactory.cs new file mode 100644 index 00000000..6f8ea8a0 --- /dev/null +++ b/Disco.Data/Repository/DiscoDatabaseConnectionFactory.cs @@ -0,0 +1,88 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Data.Entity.Infrastructure; +using Microsoft.Win32; +using System.Data.Common; +using System.Security; +using System.Security.Permissions; + +namespace Disco.Data.Repository +{ + public class DiscoDatabaseConnectionFactory : IDbConnectionFactory + { + private const string DiscoRegistryKey = @"SOFTWARE\Disco"; + + private IDbConnectionFactory DefaultConnectionFactory; + private IDbConnectionFactory SqlCeConnectionFactory; + private static string _DiscoDataContextConnectionString; + + public static string DiscoDataContextConnectionString + { + get + { + if (_DiscoDataContextConnectionString == null) + { + // Retrieve from Registry + using (var key = Registry.LocalMachine.OpenSubKey(DiscoRegistryKey)) + { + if (key != null) + _DiscoDataContextConnectionString = (string)key.GetValue("DatabaseConnectionString", null); + } + } + return _DiscoDataContextConnectionString; + } + } + + public static void SetDiscoDataContextConnectionString(string ConnectionString, bool Persist) + { + // Set to Local Cache + _DiscoDataContextConnectionString = ConnectionString; + + if (Persist) + { + // Set to Registry + try + { + using (var key = Registry.LocalMachine.CreateSubKey(DiscoRegistryKey)) + { + key.SetValue("DatabaseConnectionString", ConnectionString, RegistryValueKind.String); + } + } + catch (UnauthorizedAccessException ex) + { + throw new SecurityException(string.Format("Unable to write to the Registry Location: HKML\\{0}[DatabaseConnectionString]", DiscoRegistryKey), ex); + } + } + } + + public DiscoDatabaseConnectionFactory(IDbConnectionFactory Default) + { + this.DefaultConnectionFactory = Default; + this.SqlCeConnectionFactory = new SqlCeConnectionFactory("System.Data.SqlServerCe.4.0"); + } + + public System.Data.Common.DbConnection CreateConnection(string nameOrConnectionString) + { + if (nameOrConnectionString == "Disco.Data.Repository.DiscoDataContext") + { + + var connectionString = DiscoDataContextConnectionString; + if (connectionString == null) + { + throw new InvalidOperationException("The Disco DataContext Connection String has not been configured"); + } + + // Build DiscoDataContext - Use Default Connection Factory (SQLClient) + + //return this.DefaultConnectionFactory.CreateConnection(connectionString); + var connection = DbProviderFactories.GetFactory("System.Data.SqlClient").CreateConnection(); + connection.ConnectionString = connectionString; + return connection; + } + + return SqlCeConnectionFactory.CreateConnection(nameOrConnectionString); + } + } +} diff --git a/Disco.Data/Resources/EmptyLogo.png b/Disco.Data/Resources/EmptyLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..766f006f20babcefb4f484653ba726edea2d9e0b GIT binary patch literal 30171 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%0DDmkGBA%yR*oZ z&14;E0uM!qo?a==T>CH@W)ECTr4;}T#*otyUr`Lf9IKiucLWEEqw48Z}&1m1b+ zN`v;!vOOH_D^+|o#${&yge}nIi`mzz0L!bKC%(xGVi^DJhtC^=hVizFw5xJftx z$i>oKek0EN?x}rxHuPaNhu=Qonnb))t^M=Q+vGBx*ok)uJs4wTMmjG0DO@LO_MfM@#HX>dU*u1=i-Y;j1?=suUP_v-KCv-6o?fj7$&Qn zy(^cC$-!}IM~|O6U-SI?@mLBl5j!6uhz2SX*n`!F{_HL-5ODH?nBxpvm5y9_a1*)* zb(=w%K;Q+@G(>%d;QOmwC+-0jS9uPYLD*NerJW-xQwZ3|a!u@wFI{Hc-5jcLz+k2A zzbRq!(`sDn$j@#V&OAiqaij9MkWNZ@wTNqoj7D6=VMGc7YXmy#e>s8tYKajPfYsP` zdd5Y-8%)dG|B{59(7jx_COKg8;Xhq>vh$K(e|?&19q5ydz*1rTDj4U?PlUwvOT0!C=exNvgu>l*M6NSNz_Ss=A>v_^(`mlQ@sG( z9AgiJos7LEMDMUbJiCrJlkPS{JnP}F>HMGZ^jP;UyQ5(w*XyIh5)D)Wp1k{JEU<;^ zeWK2nUVdY!n|~ztd5{5`ng&!kK+g{HIvg=^I(DmGSUSbhMEe20I}cUzLKMm=PoV%u zcpGnPVw8AM60h$w!V{rco)iRCVw?L2n9l{C=f&K^J2|PacRBpM$+o{1o~+L_gZk%Q zigI0;y+f8cihS(%`hULi!U!(lmfxq?Np;tktQR+bWr3y(d>x0R!5TbRgTm=v&raYE zlBa$EY+jg_Sfs#h|54cSZ8hTP`Gv@_<983=?I>2!pv#61Nt#kiwHF#rP&~e?veNuf zKh`BHj=vP2auk_o&2^&bv^?9?_E-!p!NSQ>28&^@U%#TZ_q3J(xd&5Y706y^g*Pl8 zGuO6#cj5@AqqH2`LC9xK*%7EFjHR>Fkb@txmiW&VG47>!x`4GVE;&|Fj57{szN_KS z=dQOWvFa_x{*!jIvteAa4aUC74nVS>*UaT~ACLx>Yxf#M@{*hZUFYRvUC@k$F3EH* znhTPugro5&KE&2cy!lyyIN{&tE}`M{;V!hjZ^4ZSi~sZC3dG{Z&c~2kI}Wx7#0RO& z$%{d1RyL8Y5zlmD*-!ecL8AJ0^t(8sB=S}~ZNTx;bP8Z+Cv=rN+{fct7&~&GUFG@x zf$gYH9#D#u!F0nI1+f7oo;Qj+AIz08n#x`h!TzOlMb?X0_Ormzc^7sjY8Pq64#cT; zAT9I2YeB%wErE)&(KK6p#e*YM%j1Mvk@q5a`zpjKkUgv`d+dx;%Cf1??Ah^uA|F_u zloTSf(cPf+js_bnUg|;5mNDZFP%V2W>`MTPT(+ZNzCP9!HHv-C4jXdoxa&w$U_Q7X z96x!$_M!tJ2~yg_^$-3aVH_~hhDX**OuTZ*A!~6M@6jVxlsQ+N3U2+pl{>-8Z#&x8 zSNGHpt8wGsI+V3eQhm>|W8}{S8#%{0{+$2eU<(E`xY$F5bw}8E8F`b)_JkZ9hGr}l zppckhhOs)w73jruo%(x$`}Bt!KfhHP{rp(6@8|a1n$a(_7W330A0D5UA67o7 zuPwgmADqzesjL0P-T9=K12JNJt?T?h>8h@1vzQlpceYnn12$j({W)u?n(!cBpov+S z_{Og}#x(fPYZ1epI#)DmWhFU!XYJ?I{I1r)=*95offuZw2mQ4b-4mX14O=A>mwdL8 z@()@pe*+8uSxQQ3NZRjFKiR;mk!y?21hS%lNBp#QeLy!_8^z#a*f>JJHcwqT?aMVu z{Ib@vp6)T<*N}W9md&b$JG8*vuk!-+{4K4g38NC;qj@cBYaXldF+5KscZ=1w-m~N87(ovL5y8Z>_17uTARj=Bt%QOpdUU)z;=%T$=te_tgus+IchEWpIY^_U#^- zuUg%9Paj_BRVrzDbm01T$rNL?Ln6)A1Vvcr1dy%>@~o~TD5bqmZ(jXWzf?Zlk?D4U z|3=obqnkOIMCea%$%I_#cZE`XkW)ja+jyQtxbi&Na>YDBx$-_i#YlSdw+R2{W2yJ- z+xTSoOKaqlUeH#|p5LoGvORxyuNDk1XyTG69JW{~t5j^#eZg?ny5W?d*eO9VtOoYd zY`(_1Z#%A2c5_nIXbA@y0MuO_JYxgezr@$vVdoiXr}Q#ujvuG{2!M4hO+xCHc>xy~(*+PS}B8svQ`7nHrQ8&)$RQXy0;L{p5cEf)9vV%vG+`aE_z z#KHuu5dA!RIyca7K5zAhFH#3ti=^Zqq#we3EYHH%YZuez7uGxG7QoiAb%-f5>XTkp zw40;b96v&DCH1%-#(Ed>Ck#JSnMzs zqc}S~uV0%`D_7eu7022qdmlZg;21EYCBs*SKCXC>mIdJM3~w9{?T?tul!pG{^P(c{ zf+YDeK0q%!u3Cued&>y^c*{z4z|`b$`)=_?yFmYw&$kON{(PXZ(YbC%Tp8IKHJ45w zEPB4%FNxSbBr`vn-z>u1L&|R)%?%F&CHviu+=g4q^dBjSHH9}bBj?^NuxHwHrEREe zKSr$J2w7~_${sYPvTmj@uHs_bITH5?i$~tqeRWhd!A6GnEskn%&i2JZfkj#dpc6M! zo}MJ;z+2_Ov8Tn6ur;6dFH?Vilmb)$%8p24-=SDwXkA^`P>u*~@FMBU1VwYD;5fxA++74NZ7S}g7if_!Z z-!{6vpZYN)q2x2L0lrH;RK{5$zSj|Rd9=?B9pPoqJ2(2mL5rPM1E@Xwzfb|9N@xMyXY z7;b@H^|A&Z7`sVt6xt#C*OD)KOj%3ErtkU}_^u!9p^Wv(j}*OH;)u?QlzCMr+D6#; zv2_g)h9&3Q4uYcQG{`~$ z+?g^2W6j@7`hT?KzqiJ}&YbzVSklM4&bRxk?VIocg^~H~AKI_ChTEST!nZs38PE|!%-FZ zQ?)x$7AO$I(SG=M|C`7^7 z$9YlKYbPb>fgl&CD?%=F&*Y+5CJhBjy?u2r0DgS7!G5s725S0pC}51AC6RO~#NLW+ z0&R__OFNhT6^c~%{VGCYf7Yt7g{&p{eYH7_Ngl9l|GPo zkHm6)Z}SsdzV&uNE$E4i6sWqAx!mzsk^Y!x8#3+`DCuHqyGt>Z~ zjE8)o9RJy5ppB2#FW$uo&Z> zF9=7Aw9v@4O;-%F*We}RY49-Uln&ocv_hV%r7Lmx+V*cDM3p`BVEoT$IdB4Tvt>QR zWA66^dt#*u?1`lx0p**1Z2srpelx~em$X=H>lU9CO^G?b8*i~Gww}3LwIb3?y4)7Q zdKr>s0c)@{tJeCixbkTJ+K<6~|4Sjy=mE~s^0LTzw3WeMhHJo8=&kF+iv{|C7+sY! z=JIfT2)7}? zK^i_*g2?&X_G0FlVGsZMTIKhUxWG}%VZ$x|FH`$BNH>>bw&cvm(jON`uxhqZ+x8F@ z$oioPZRujJ%cO%xiR9z7L1i1KceWD@F3(rbrgoPjguRj9m-eia26|xecnbv}E4GJ^ z3|yBgg+?|~Z-_>eVlQ^+yYgVLd;u3D9oBAsuPZ=Qso-jtgG<<(qy}0kddvMcSrp@T zd-h;d~RrUF{rTo>6DYTeZN3el>0`)5E%ba+wKcC$NPcDa zd;_m_LlGY;rorK3Otm2W#C|A$_u$s^HPvnwKT9W*wU}WFoL@Ul1{UjqI~t7Z@4_{8 z9Z9XHr9i`2)DFfRaKV`xBAf*>q>{>N&{N#4UnBURFSbPGh^EiK>7-fno=1cg0k%j0 ztjHY_zA68oc|2ATP9T&3K^z}$?{RMgZWxLl<)mQs2TSMGkJ<@g?6XCj%%xL0$P?3J zCDL$eY*GLEM{6#|=+>u)+TV@drgut?v{^nP{fH*Al$Wf>_&3@FK_Ga%&2tS}$8e8d zJchY)8jq0|q*;(>`6#}E7L&XCp1yYlLmr6@X8!<#&*lUBQf7I9^;1#Fa76Ul?o&>Y zK;YJdv=twovqG9&9gv5hLiU_f!bEka;#$I)s{VJGexJ4XVraVO92ali#<;5lLGKTU zJG^1_MzCbl+Z;|upEQDYAO2+aH741$eLMfKHI#Mf^)Al_aiJ|Mh7vW6{Jvutg_MJPYm|Z}w%$4^w=YX^PCcRf#G*eI zn-b{h+l@qbb+D&yuMtMg)aopunv)Q>WWo1Q2@qqBTws0U!#+gdjFHqLMG0}JpeAB~ zeseh)vHF%T1^5&FNbAnV%2&hRZDwVp@Ey741r$WL0xPzxx%IiifE8BXxslOuPz~&< z9p`*(8dyIWULYn;8BPNIxIU-V0=j-n?u{VvH+FpD;wP-Fq!Q4E-X;P=#Lnjd!7T;z z`;6I<@Z4OeU%h+L_D$+7qE|HRA^rK)&YGaU)v-&8?9!da1<`m94|6r!&$eX-LIRD$ z?O|uvo-jh@W5)7Nb|mIESnT?LiDaG7+P$E)L7G6o+m4YJh|GfEdURAPXr>A zKQ17PB61xoLE}LS$qPL`=|1<=aL>Lbhl_`)$BxtTY{n>n5cYqHu21Xgv$~5zR}gAP z@ZqC7B9_~k%Rzm8OJ^2$%O`eJTbdmfW2(nlU)3`3WLuUaCPNXRv({N31mJ3b8%Y4g z&I9;<=?r8QARXXIGo~0aO@j=9S>A3a&)2ZAjNbfxCbF&O(GB#Iv!x2_p#JX>Nr<)w zTWgc26=dS zZ*j3@znU-d3*)a#f8O_uY$mx%a%?AXgtC@YFF6d1vbU0m2(U(|EtWs@*u3$O8$)jg zCcsn3*{{lMD3C;J;4{RT8-OD+I#ET95s#yw?;$L3vDI;LM_|$WSOUtm^c2OjU&tsApaNKfSYS6N{PIIlOULBl ztC^T7=XxKqztTG=Cy0@{@yLWRX$6Um6t7Y6AGIjf;OV3u@r=J+p;qxYVu{0W6U2AvB9MHUqGLTY(gspxErrFoA_eR&%6W2WiW~oBHL!X19*)(=BMhj-=?;ITexvsAcc#ji@N9n zi4Neof3GiWi+(JwAt3^Yxhx+Umg+U&TN>KkiOU@XGf=?tL4*xnIf281&k!LGDI$<; zUAuPq^m$-lO$$B)>|N@r z+23_I9aed*tUU3K?cu1ydlCSh2u^36q{>IWbDOu+21?$xtp<6_nc5Wyc!;e#OX+Lh zkq6)0z@V;>F)x7LgZItR()CfCFGKbx|I?o`0PWlOf|?lXc)irM#?IoNGcnDiuvpo* zF=)n1JZ#T4`Zz#<7Y4F*=}+^bkGGY+5j6zRbaVJVq0WHk0XnT4FjTYcu0ZVPh#k!Z zxL`iRH>ndBAC|~JYq!O9!yhHtm53Td?&Y2Z?tDsoJ~pII?wvL|HRM1!4hwtA3LwXZ zjvf(1H(izzQ}8ZT<253#p?M#tlD?%#q37bU;r>L1qxq-So7+HP@-2Cy!urT);tUs3 zR6<1A1Pf2A|a$ zL8UzdcmWy$x}?COW1X8rPyYODR5FIoyQkCd&UmaA1@DZ`9EbbX#`L;7%nkSV9^5Lp zJVKBH!+RgDN=xpfgv!)8h-iM_4!v-DEqU@c z+z2(B!@BQRfZu918C}zDiin}lBgoV9&(ZL2$*~wk;5ZQCX88{0|7c801dl_l{P0^c z1&{%7WFD-6x>#rdgX*FjR zO{k!mZ7!>$S*{<47m>g*JrRsrn1x} zviS)l7!NSKb}$@3Yx-URRyKi%shEGguJ(aUVeRJv)x6QagDqk!bk3C~K{jAc`JFV3 zyIzX>tMEseC2G69qsgU<%b_v(yP?spK@ed#1R|gqQsiO^Y{3R|3OxrxQaSwZ_9D8(KryGHXDFo;SSm-MraI=zJ#~J#Y zbo2~4S*iuG=^~4o=2?E&-g*>HHOPv8^5daWxZ>q9yM*^zTqaN`8smPiMd6C#gVDmg zo$p&l0Nmzky3R48X4q}0vrDpT8Wn_f_?k48uRm$1#=Qn zpMwvl(*4Q>aI9gQUm6lV%`IS2gqrJQR7zZ3@7Uce``lmlmj zHQC(YU37QMZ;q6W%(SXVO1PZb2As%3`Ku{ax@a-iB_yCV7mkFVk&t z8SS2rhN)>aI&7Y$_QRLGBF$2Wcr_AVW)ITNwjxAA@2_ z>3vR2o3QPU>3i5fpnw;%u$71AIAMsf*CdaZcK$EgKNtbsETb6vRY@kP4cMOB$=t;P zLa;3xf(e#vA&ug$c8n`abonDK8M*sCFWJ4)=QM@WLLAQ*DkrtSlgP@UKRGKE8Xm}o zx(hhl8h-?P?YXcE44mV+heOkjteYHu!fo}qut0)wMxK3GZ2!mlJ{`5qW=PR!<7d&~ z+?U=49c4K4a!x%u4zgapi-KAA=r@)R&DRY|LgZBe==qoFl}C-sTM9YO7Rb+80{_nA zI-mWM`9u-#_&8o9_eDIs5_vd+^?2s>(^1LPZ|h2O@T9|9OtisoNr=8Bz;dG)0q+v! zfd`-zV9j|CBEZU+(6EeE_s`@!1OYNlxtOMA$r;{rDOO$hIvH@8)YFV4rT*PQUeegH z2Z1A75P{<}u$IBYHp#FW#^_B-C4qX3O7Wl{Z)uiW0Cb24RRZMXMC4LQH`R);xutJG5j@r)zV{lfq6xvv|YB=Iz!?$G+b z0)il61=Rfs6cuCP?*Jlp+ffyMC?S_X+ZjB+wS*tdMbS~Szc&^(U;3PKM=?b&w~{3A z>zO<9fZtwQ&&4yfZD;W2tL9?#FcA+ z8k@GTV8hu8W;4I(LbzJHQ2NcX7`3FBtl}*n>!gSGUZNHAtK> z6xxk;Uz{pj9LF&E-#tbIoI+6VY#VL<+8MTEp4={mimR1iPdxJvEC8ed^fS#qO^BRp z1^-Ev$S!=*Gu!qzyI#Tx95`mM%t7VTZ8`~%@|HRJc`45QO%Mh}MKAO8YxfLPSoXCh zn@1_|8eX>_`86%TWR>C!)u+JSc+y2jLsgLEeX)HrEHnZQ%=53ab37@Hw)5q$@R|<> zKmwRhK8BYC02g;v0EV!hBI>cS*P_aV%+#4~94Gr&9M${mIs0Ha!vWZ1h?(*lRd_pA z-R6vr76drKJKGaWi@SZp+awM$Uo@OP9@4*uc}>LuT1GzyuZSn2aiJfQlAmt)xL}%m zd55i(PFh#c7d&f38~4Sxo=r(0Xh`Vv*%Jg}iRW}8TYBqo*z2EXp-j1G%whvrQ7 zF;>(U!31RRU`nwD4{b=%_%MBho}IREi=TcxIwLeHD;|q@!uffA#-jRte?jsY{3h&Q!&GsnMNiUFIQb_dEwivIwJ%g$%p{cO45 z(c$Q1#OME>{_ssV*2br_h4L@gtoZ;&gp#^3Y(Y^5 zm0X7vk;`0!316%yHRXe0gOdjSfe6si@_>}CZ#fTExL0Omd5e1zU^A09}fKj1Kr{5WO*K#nG8UbAeQ zSph7n_dH;iBEL&L7FQ-8BBmaZMvBKJ+1#JR8e95#4-Ko8EH(D+p@A>HEZkZv@0f3i zq15V%bZ4x54WM}8$qQ3m}nfj!Etlyk*YfG} zw2Zi0OOi{8f?73JKUMYZVLDV5=7kjPPPuWJlgVx9b>CdzDjZhX|Mlik%zDbBM!qcv zFE1&MlZll)6!7|tj<=iT0fQn^HRtvt0g%|A-ea~Jgq~inn7}Y+GYs44>0;o03%Wp@ z1Sin}P7H&+72st2;2EeW7CT-a*e5*cMk3QmabMJD~E%J!xItgcsY~Lju(M0 z5_;`32V5S4Wc)MGJ4PIu-V)O`XQFNuC7)4!@KDtF4Yh~Yn};4Xb}YXd$Qn?8{ri(j z7uzsPoRL<}LEY_#P`7L;Wzh}9sSk!DYR0_)xk>1DQr>x~2VUoXL_kNIpqxGA-yGpe zGA=h_iUhm4pNrw-#VFtX)k)>tGX(1f#KQL=D8ncZ@mLQi3k2CoM$B6v)1K?6L4zdS z0iH+F@KgeDjNlTc$!>00z6dvIqrkmkn#9YG23ml*ws{0lYgcrGq0aG zfMQIpB~JhD@YrmBrS|aK_VSCC)W)_jlZ73+E^}e`e7A@4;QN>pt9Hj}f=n>->*F7B zNM^)LJ+JVFu0i;*QO$H~esF(#D{OqZEr#Du*WyNm6j+-89!lL9QbeqmT>`YK2!*0O zS%47e4=L7i(!}Q!?$m3Y;aR8HP!A*kk5yicgO5+M*?1Jr{Ecig{DP>@ zE1{3?jtZd}XdyuCQH(9CIGts_`y+2#az|iLL`T>b$(O z;>jgL;Vg>qZ4!@bI4R2Dq7lJ!Ln)a~Nx)Yn!4xTahcOW0stu9avo#M1M> zVTh%RB4~)=oIf*mE-6aJUvX2WChj^<_Qqz#veTmQ@^P};k+CK&F@xi|pwHfK-!5}rBMyLV zD=Z&;f~%B#2KhFBH=bRG7Am>RNvX8lo{Kj=poF6wU~Ip~fc5zATc8CVz#I$T!|s>p5#wH;a1f>b1(g3vBQ z1h^2{Jt)Hu=hDMu01X1BdzW7JzkZvG1Mc>~#^Bj(EL|xNp{r_b%|{z)Vrd8gXtu!H zC;&*o4X9(4(WI*r#sz<-(RNw88L?rJD|6O|_EGS0@0OcF%H7;s8|sQ;0)edduRQlJ z>V1Mr!oo&nXKB`;e=d^8`r_j0yzsg9U$cfd_%GnYtHW!=!@c3#87-||&SQX%B*~({ zw&-%#X9SMuK*Tum@e}YhuhGycKoM4qeJK3P3c_Kf0E@VuwnNAgfPKp92(pC$I4S#I zr_zY&3%}QBcdcCdeTyr^)$Zk{?X}Ie3E(4b;#M12gZ@4t?Syq4kS ztkf&69?lVYSM-Kqh(D3MDD0V(Rv>sk44nw9YaNMnQ|T_+Q-3S=pw5&~+=asoa|2ag z4Tpj|TC|m4n~gNC$OClCxFuc#b9NzLS;P~W9Nrj}Yp_Tt6rn}VV zRUZ?ZoTlN@vrF#9x;v#z&Wd`~IAKT;vwl5M0TmUtR9%@Vw)FB!_(uI@%4qyHxpI!| z2$-8ObU`e%_YkvB01$$LxkN!VqJuPwy6sZ71Lh{NwZtkSz!_`7%Pyem#&3tDQWm0K zTbjrU#Rv?z3DMtf`?Qb{WPFAxft{yeV_K|RS(`%GbA{MQi?9R*1&pQyH=HN$B~af? z;x#x9oEWhFfR7qcHm)G=&upzFEIldG=UDfR{n5Y^^r3)vYp~J~BB|>c8Aa!aUVLT6 zS0(VDaM~1u-wv|E+PZcu8KLhSWjyTss!FRT@LD#Xnu<3bN;SB);;dXX`bi|wDF`bR zd&Lw^l77JP1i>(8uW$)be_9V1=D23$B=bgmp_$DAE!e$rY+Oo9mNNzhWER+%zO{5` z+}+Ls+Gh*ci9dez%SikymIzy6nmI$Sca5V%^*Ex5ZSSMe^yap%OvqX7tqu@2qJ=lk4@bt0IKPAYuNBfK6{b0 zm)-M9)`x3XPhT?xnpq46trEU*4%g z;oZvyhFMBlueTPH?EI&$wj4STublSE?XVhxc{0oTk$wp~ERBo_2@`Oi-lbXzv=jlt zNB`crT7T~6UhpAqKC98kH-*ha;Ym65?jGQp83BBN(Md?S1-(2FTDm|Cm=v~q68Z_^ZN^QRFwfp7axsSyk4B+Aw&sM`z zH!Mtn9`1Up1a^HSn5{<4XGB5MoKluNn+x9Ivletz$`n6gH3ZLWWvfW?z!9kKzCbJ% zJ_O+)FLs4QkK*rEQmgIJ-rum_1nN$1?!b=K?ZQvfWj!MLfhjhvWA?ZsfLI6MX20~cJbVdV$~TjkOl!-aO3(e zt0!I$`FsMS78YKp!~71qb@|x~RFKI)a7GH6c5LR=AojY5LvcFaFm>YXUmjJz-#uIpZ^J{z5pPAbn8oSom5Tz6U=lrbusYB zK8&k1TUaAVHeKL?ME!Is2Y1|f8OvM0R@CX%WBwL*&h*5F5yE3JdJ zzw%i@*y+C98WOj$?;{7z>_p%x_ZDQciQcX;Z0DjE|K@o76J9~zFYO$1j-9)J;GQ%Vi+W5dH5}V!E9e#@nhH9Ur3`O8s1}}0@ z(JGxDl?c5?xQ`SYOEFYsf$C`=i*R`W;D;B+Ls>O!0^9Ae$;q>=Fco%pOI;2Sgx2ms zhm{fjeUMF7>>t;s0*RTd+a3irW~B~XQ$mCbw3GdfXpUXOE)NTcM~IE{!NCUS+3(Yw zC5y*K8c|PxcdV1y-b>>tz~4VBs^u{$!agvLOGRYxhwhoEW$XT@bLcJ6M}^MWrqV}7 zN#!@`lkMmq(a^()XjKkq7l|O?31+}$tSn8q8-wLk&SHhe9D&r2U=##g9*|D<$&FZ_ zB}oC~)d09U*3EU_d@=Iqnu^-n7=B*m;ICK4Dz2-vi=WhHI~`5A`%HK2I9np_WIaXO z8Fnr`xtt5OM$*w_b^Q|rAT0U_w6JZ3mu3w)U68|N zU$@_QTmWo`J+q*>X#Inqw6NL2(e2*?)_N&xeqGl&IOkZ$ zK{m(Us}dE?F_INZMI{tvh9ui@oy;_>jE42jPLWD7Pbj3Kl9h3UkiEC_z4ZA9zHWZx zT<6-a=i_;QJf1Wc6j%H?9@C7hn>uqRYT20WP*B!I!jC8tO(e>r)U2gbL1a<81klx3pldz|90aj|74 z>L`ckM>pPKT+yW#V;!HT(0azWFD)jAb3P3ZRWWz}(f-^f%UWXoFp6{lGJ?uWARlO6 z4S*(0xNqIT5>ptnJuG`B3DDVu)%CMeDqg9Z3=5nKaNM}7vLpQ5Eoz;9&!2bbEtb;CHm zo-$2hNx;E?O8xSa8qzRXA4rcFG5|1pz#O2>mi-@D6jmdi1f((90OcmTJ`iQ-fTM7N z#=o&8hm;Kay|-BMpulOHB&t0ZZK=CH4KT7Fcy!weD}_EBLRN6x>}-CtYW<4y9q7*t zg$hOnW{68jy;bHvae!e2;h1V<0cpAvjehEg(kPlnJefrcx1rZR{~#gCI10XYuBnd! zYQ~>7Epzdlzq28t;-37SFc>bKbPHKS;b|lBBvD?n07uV3w3>E@P!HQddHlCw|B;mO zPVNLePz#=evJnJB%?vor*@CLXIlebO%VbOF(1%ZhK6Dv0xvh+5x#g2IVfKFRwhry< zqE!V4_DMca&RiJAAR^b}%j+>Tl3>2{!t-~rWw4t;tl<~)Resu!iAG-3{AX+eH{kPt zQH~~Wlxp$FNdT%$<>#NQ57m+$Mr>dTw|P#N+52wVtj9$J`d%e}`Ad9*5-S zd^LMSG`MN!qoENOe_1J__rOza+RwBs)-Q;oV`_&_9`-v^IS!Uz0`BQWJp|35BVg_# ziK+ezXDmQ4OAZUXHY2Ro`ZZA9hIWT9z-b65&0#i{u|JXuXVpd~#KjA6bCCDt^E=B$ zKhP@aJU&FaLJFP<%DkvkE^%MeewDrj4nHygLp7D(yv-`(Rx<$k#3mA(U@6k zFjPfho#*3*Lm0pDG%T$Vs9<~P6{^QiW`c#`W`+eq0ljje5kdolfzQ0z20$cuHEF@F z*Vx?Cavkp1oPTD|K@-Q;ebt*Y&6#jlC!v9f$$hzQv7-)pOcOUVUCtmlC>~r7LYZI_ zro;7tmheNkHwZak2-uk60YhLuaVG)3x$6cNDsxi-+uTp~9}qdu>MeElydl5_U5TNl z7DFY+Z#w3_J!&o*_RAOG4iB~vp|nr(5Rs;Zk}CZKqP8A^OrT(C;suUK0D~fe7bO3r z0H&}R7tDN5tH8%JJF~$9ML7+ZigrT;Ym}_6`Q2R6sV3&xNVl13%~RyVWE_y;A>Wn+ zkMSBJ8n!ISycpE}7-s--qL9UGe)hrL0&X=$#zn9nzb+1Y6hW>VUn+dg{mFnovjmRd zZ-)O8i(TuU)48DfJz3#laRPAm!au*>l|#Is)gj^fLhD;-n#r5L|3OFcAOc;Md49kc z5Cn6ty_bW3Ys1p0W56=6t)}B4ws~Q)-mXU}a3Om1<+YJAQ0ojB7=C5?+Ct%@0HwO_ zbMO!Rt&c%7G%oG1zFm*pvX&OH2gJzJ;;D23y(1Tv8J8U_F>uXBouLFwd8v)etN zd{ScZwSpI1CZ|%XkeO*k`^vfTi64@BrOKQvD@qroL#oy=(X4Zom}+EC=X=gjb4&poDVz;iaIx=vR8qm`wRHE`>L-$JBd;pkmtuD<{(E&Iq(SfmAm7#yFq&Ymg#ry z>^IZHlb zqq#re?i;$1?M!-uTqiBzkHP_DJ#w3z8KRHp_1Voc6t}HbKVbqmv>h**WPu#n&TYgN zz5JGhrstN~?^TZm=740F6ly35XQe`JJwmt@CXaoMT?Vogqt}`zP%W#F?FAn}C{UC} zppGI=zHD6pj!#@S_&Z0DSJwwJtFeWxAxRs{jgnhftnhm08WYhBleD2pXh~0FGmB!O zh*D+Q#Q_EUG$)abI63}>9LO+dRT~^?qYSP`Y$KZ>@&V!irDivUXB`iRIn3#gzO;}o zZxW+-&mjxN6K%)7hd+(nBZ1QQNFaXilOAgCfHO#+*{D-ukF@Q7AXxeQ*@d^F2T%ZA zWO;Vs_RewZQU_a+=rx=2w!3yf2wI+{N-$drBVV}F4Yz+kX-sua|2u3AhGFVOSz#$iDC z!r17`DBc8CgX0qWFz9(9akUWgAF(spz2O|^mua;M8i2 zJ`}7fU1E75lS|jx0fx+|fDnOR#REF?!qj@>T@>Z60Lt`sAKo+fH>+MDV6`i`8`G4F zJV`4FI6U*RIOE4O@-F%m=Kq;LDC(J@X8z~Gx#6dc6*j=-OKU`S$?u`@xZk9i&v82*^N7;DXT2ba}Gr&`qtnm^jg{VROTZqN1_2_0Z^iZ31`X@FmYI# zNwyl#s8fRll#l6@F#j(hEDFvF1#r|d+6^WtM*q@<ih^x{xhjc~b zqf7$2zh67u-FHREEMGuw250U90VI2dy}}MypSDGe5;&WfY}J``@&R}lJetB^+O7-w z;v)H%#XBB-CRmS=WX|-JMDF=pf1btsbD$al^Wl0J%ynpz~WxSqv07O-!bG#$i)6yvB*5gcr9&N^Q#crc!>baJ!J0Fxra zgg7NpzHb7~oB)KRW!1W_tDoDaFGu!<5r>SG05Bg3z$6bp{AE#QGSF)Zk3neP23X%7 zfI2)<<)p-D*PUj@c_F!TvHOWqFn|H&xP!BR!_eb2YhqNEmjjvD$amG6( z)8nFb`+Bo1*er(XQa|%{gdxaH$aFurf}U850=(pZc{j(tH0P-3 zCti^LW74FAfT>3@>w}x;l1H430Iwj}!Na%g)W7;$+A|p9r>ODE2nNU)=*P9*LrY!C zKnqXX2@o4>bO`p9-VR6)u{;&2jI>>R+FM1 zvSgNFfTg8C8#Jgl_q1u6Z(andI}VqQOg&WZpa9SIt69@RL0RDgi7gMrivekPT!tbW zRM35`HXXz2%`p$^#KF@fWZ@~EAIaH5(I&ZYcHC@Pdyw>Sy7nEgEp%qjJ1e=Td1S9W zN{#-zO=4wgVJVCp-vj>n*CR20c;934&PYUv2%+UHGtQYN5b>by!HT9YZ7C!fA4K&# z)zL|&Vho`dI4kH+Z!dd-Y48he&E)2_YkE=l^y5})BRbx5&OcP>RR6sX^67iIiO;{u z^C%HzN^aGTeV-avZf1onoPIF{F9N9;zbkNe`wLzNfD%L@M1EE)6hk_acf`D<5ICC7 zB@TEW7L5Rwj~|f-PT=k?v)FRh5F*x&LBOCMqFO`OQgP@WPT1 zCI^wcl&aO5LYQ&Z5emHf51zI{onpeV;DjQ|MF+)_dtUK69SLmGWY-hSBYmljCx00#kPkVl#Q;gCQA0g!T(f#f_{uexN@GBpsD zNFeZ|*c-Yyxk|O;_l{yScW>#mPI6$^t!vk$Lz`;Tz_c>0;0E}>t_*b)YGprvY* zA7>8K+NiYNOKMsC_9H8rMI?=Vo12^aYF;c+0saDQZ4BMu05phqxYB)hMPZfe7F8IuryS9GhCu~M%hhw_qv%98SEq>gUB;E>tK!D^l1*~y(t<-@O} zh>3E9CHVM#1&)Wf5y*4IitfM`< ztsH<|w*cTd1z^59N3eynrx%1Y7PBr%*68fdy4LXIqrsNC$2(-Tj$9OVu}%3KNfnMl zJfBoJ#Rm(vO8K`vWo2>-75};$XRVZ7-Cr(MmNbmGazf#YlY48_+Rmq4|DoLlq*c1* zM!$>AkvfLNHiPG)kG}Peek?MRvlM)RUuQYmn2c34hM&L{*kAO7+@n|YS!%BF?^_oK zJHg?G(f1^&M%}oT=MwZYaLHQxQ(zw#tX)5b{{9Idp%4h^|TsU6u*_}KgrXXMm!paPBpJ4S)+X4-dt{gx|y6C)AbX7+~nyE-=K&wy>Us zr}4!+TI;q0Dq!IIF7PNKG$B?O-0?a@9;J>6lNa@VcLbTHR%Ug&lwXn=$AlggTC7-IhstwV~#ctTf^cvM7HY`K4Y>C zw@c@|(ey>J_$(&f_E#z3;K;i-OA4z69(aLv+)L`L)U)=>TtnKqX z3@Sv^;*k}Q(~+Yz-jv~Lwv`*6?L>PAUS`FmEALey*Q0f+ukGDAW;V^eD;!vLHt){e z_7r0q;X!gAC@J8VSg6}rsi_lwFZP}PUI{EIf?o& zX&0LBT)FW`dg2@AdU*ON=J4W4_@$ujlI+Kt*_*=eOfJGZy~G%j@54LLK8ai-ZalI5y!cnfnjbUVG+4@A6yH7m zG9<)7%!mZ0FfqqU&0X_`%h#>reifi~9rk|`*2|GB>)=f%z&G)qo^Hjd!*?ZUS`Q*E z$iH;5$9r$$QnUKoj& z;|AnY0@jO7*5hlknWAN!oHB!Tweph+Ja|4&zTbxp6BRH^eMT6!XFkI%Fa4x?mY`8~ zE9ewHDsf~wSbc3B7D~gBa*P0i$#>;36}(D(*L+WEWBPnzN)Oa^Ty#C)<*iwZA40WQgoDu2uB-iHMF9t z8y9w}4R&@f4$qFCf=vHAfm2Iek<}y{6Xz}xQ5foCjw0GvPay{gCVSo1F$ucc+_d;$ zC1Leb*DqiEsLq8OM(9xH*v=eH>6J@sC%u%eBrwnM-REmF$8Me_l42tlv%Q6&o>8d0 zfUx1j$tt{F$kY&RG_&6--Dh`x)+c}0Sj#57C#e8W`|v{+hmgG423ZTwg}M#qGJXx) zpC^3&#a$+PF#;(f9|Bzl*!36CZ^mV)(s#ID0&+dg0V7smAANdh8cwUi+op1JL#z>v zMjq8#tg*Bf@)=MT%>x-V;74wf;|sb}Zpljz=D&DiUQ_dTS!U*^hGt$~w#47V_;zbhakxT)!s!5#cvZ>=GBOn(vHfv_sVt) z;2>jpBK|rRLQvl%*k$ZX3rgw|e46%Nimh;{T2gr6mE@D&1+OGwDOEr~iz|WOkT+f4 zoK_kC1WeV<{0>V0`MEF;WHJe)TWo8zmu}WvW9up`FM>Q2&vMX8we20<59iOMhXNnF z1g^))zMe8A8=V7f=zPUvI^C9JR z<1}W!fIz6dEOz2}66kM_nuoJ?0ZM-7myNJ2Ti@4ugG02eh25xi2Xu$;ten!{A7|OwpHzhS`}XaR3@`>5L+4qte|M%XxpboazHb6?XOJ>27s4>z zH)HC&gGTm(@Yg?F@KHdGfXw`IT+X%ofP~{~+ssb$%)Y^DyEG}Tv0m8=mL7+rfzo3_ z6#~X{=XAvAPC)uN|825qC>~Wz&g?_FG#(#4;ESZj+3}Y`a|=hV=sIlb#RFf+upnxp zh6PNo=?>`)ab@49?l-q-;Hp*mOaDLS-bu-=Mu8|3*4l6hh7M>f(D4lTU_wKxd~!wN z9HP>G2Ay5N)Wvl~vM9%8*V~xTUgO9DWhe5AJw*Y?)|5#~YCcHo<@gVu(6#2_$_KQf z46(>Tk+`{DbvfFj;Yr^5#|uwP3?x|u;)B@7;F5rjkt^&?@^q2uyF7Qal^n>EoFgwE zCPfP?HGq=%2$KIT`psB)j-88NVA@o90Nvz)2+6P>B>d}Grh!S@pD?i^;i_Ml?BNd4 zJ3DDhyP}K`F<=0;XI@UFUxwzp=%yj4vrmug^}qVmq4nLhdd6}<-BN~2-Oh}+ckcw6 z9tP}8q8;D5|HyDheT@ds@s=ILPP56bg^60s>>NBey`gn*db8ujm+C#$d{MNh4k6?YuY?yx7gfA6Nr&C(#b+I!am?3oQ6EHp44ZL}B)*{+ za4z(mrMk%i_5<$fI4* zJfeU62*z1~+)DeSuR>OS@220e1hzQT3>WPjHHa{#zc$W3Nhej0H~M(3vE;b5vkd=z z@wNdSh6?QXBWZ%6&FW=VFFcW!NmPuy(TzSYea3u@5MJ}aeWiUJBK_q8{Q?c&hj zxGt@|n=F_BxYJC4n{;>h9DJ*2w=`rDHNSu4ORaY_>lTT9oFg=|=Y7WTbk4x=bYfW2 zj?_*P;wyY8wY#5gGi|vz_h?b!vyGqWCFKOhX1J9$XTr*^kRDQY2gYInUlSQ{t6|{i z!22__n{P^z*qn(iAy85zT^nn~TlSq#y=-*eO?!l*@qU`yb~Q}+(JF;sWp;;X*SAHf zRGR8p%8!n-$8raTUk(S$h&u;pZ@V7}Z!dQKX|--e%rwO)O_k`P7pbG4Zp4Dpj+gX` zA=4;kBc=Vu|%uCC?4A;2N(}_6LvEZ@8tnDL!o)cJ|?Y47UMhxSW>mW z6tU)=W-?8r39PUXBifBQMtCP9kE*KnhPuYo{Bg+{qstEerN*Q4J4-$7i(CZ)Fs^9rL)^YP9y_+XngONKpbOC-fR-ZS@FqNaa z8{KYYZNd}9MUf%N@a~K=WaMAOe;esz%%{9@*FAT(@e?jNlbJq0dasnD?;)%53w~eUY z^QCrymUjuB*X6?%NMbDW=YvC?fO zuh-1hs-0h>@E<`Q03};$%VJw{%c5IS{fAfGDwU@Q>qn;oqV8`Fh)E=g{QAdUo7cojE(K0fygsn>+2jmz%( zOU^T;?PWQRwR-*_AmH`uNMf0)^kdbhw)6AfskFe&ccBeEX>vXMkL^iw7Bkeh4V+p zhYO1eGo<>Dz8EUn{n25~2%2~?#N{PA#9L)Cjn%wA$37#w8dH(XVldTeF#NYjGH0yw zo6ox(6+7LFVk(;7Ck_lvj`vckcB;OolUR3ICiSgoS(+Pfzn?*b{%2236=dLhxoDh1 zb}Sk<41bEqNGeYt>#@tJ`k3g$NDK&ufln2E;0H%RcG& z;0yFB$%GXVhBh0*ch>kpU;Z8H5TulNWM3y*3*mu6r;QFnR77L1?ku#?SW#4SZw)S#Xzd*3% zEH1!emgB9(EcT-8TGZF%ErVtx*)O4`r`iwn^4m~~o zHqhZF1<3%KDd>&4T~GP29k_dnzJ|yw*-2`S$_BTP#T(bhd>OdGpT2D9WCQtO%VoAL z&WjMG$n0gk(W%2-e{L|tiY^*+DiW1AE#Q+p$V_j!;olPBpV`Cb_35d9R*y)q#WXGq z`lZvG4Qna^GPI#Yp#FLQf3lzEeA`sKh8Vlk;;d6ze2hA3w@7WUkN;z7MxvWr(L>QC z!Cb^0X(-6YaRF%PTsUo~{q2~e=}aA)gQ$#QzD&T|R6<~V!mGlke= z(D@O=sld(g&N`p9&cTlEGTDA^I4>wLZJc6oVy&r&ti<7x`~i0`FAE?MEpF9|J&aOxVdg4s57f14yBV(ZP3 zKHi{uvz(oB;QE4{Ykdd*kw=1TY8ft52Hg*xhPxh04zE6J9KKKcsW|1)ui7!g8UYQ? zKdepK+P}6r&fQ9q5g^GNCUyDlNA144WbPgXmZ^iE%{a=l*)Gaa>k=QCd81i>?Om16)b@hUt4ZgH z%g+ODI8D?99`gG;)Eji{S?zh%n8)2rp))7Z>wi{Kw2v(g87wM3`R_|wq}W1T^Y$36 z9tk;01u{byTWy(aqgmbm-NmL+=yMumFBoM=ymdkFT3&0OnPG>t#Dx1he3eQT>qWly z$j4s_8lSTk=m-3`?K2))3qG6cPwWVv^{EVBbqw^Gb>!C#Al{W&19zD~k|H94+Sh9= zY&tD&Iw63fdA8V8jpv~k7PJM6hsj_Z9FoWU@wAF?wXXtJ%!=?ylK)+{3eUc~aro%R z95E~>jyKfiJ6*~yQdz#JB|2-b#TER>GJ5t7`|#?Ak3Li1dwrhe$@kZM7xud7fql!g z{R`U7c)Yk?)Gyn{InR<}e6y8g_h3eKbvY>0=9EC;mB7N&zDT^N?p*stP7(0IX_Q+E z%@-vsCL=*xN}T`i+gQb+!NEF;Mt`0E;r_0TTLU(a8ZuIE41di#kTd>$vLj^S^n`~l z7qd!d%og9@h6vW)cu<@RI?j}Ue^RDX8coC64inq zz4AZaFs6o7rj;fN@>?4_NUELtpA@R|abL*Zb{fvpd4Osj3k<*mf`H z?U?7pyFQ-a^N$-dJklC6rfeEAR=YZW6kQSp>unfbRhzEUdb1ZwR7(-3A)U`{Iv1vy*KX6-C6p4%T;4p9a~hYLFj1Cj{Ekrg85$9@rqtNG2r*VrP2iC9@EjMEx5 z%0Yy7ES2k z6JXQYoR#B}*+0Q8una!=TG0{yRDUIqY}GbT{0wo z*azDaMS0V?=?*4TRoYOUs8RK=DapFn``CYAJ^`h zf%W{`d*{dPz~H$gU=uuk56QDs=4~yGz4aGnJ0+35%w#;fvKmRPPHK^epn8eKND~LD ze{#*To?ff&YjAY&;IF!V%>OW(lSo?9vvX$ri3OU~LCSaOVp_w{fA)|X+qyJ|$1Sn#KscPQght>)*s?>7!;cg$&a2FS9l z46$=Ahmi0SF%tut-lZjVzeASRA>He`f3j7_7LW!wOUKpvS4yC^r>Ud71ikP&+kT?% z)tR5fm*o%LM;7xrN6(1G;zgJJW5mfZxA_6_LwB*CZK35^weK+lSjiooqJf{hBSFDq zVFw1L9IVZGqQ+a-gu8YcH$`EJE7_w8+zHDV^nk?JjBjY@N)@!KUS^bHg|5j2t-W=Q>UTwTD)Kb)IF8Gyws)eWaDHGOX5%(EXH+aVyKcwrigBm(U!-&S5YqhFjBtU&$Qr)rB;=Na;NxO_|g zozbo5k4KXD`&PhEsOq2i(5#Ogln+06${*10?tR3aSVwDdo2OBgs2=t zKQXfNq^O#_`EGRk+Tdri$5+S~0+qL_hBU)P1T4<`nw{G>ACyZuObG1p1^42s>z!rk zrw#))K>U9MxnpQ)hYLwOaaf`m^O)F{#Qjrb)wT17>1o0Br}p>6?r|lFfc~L(Hp%^} zIcVQx$l>wrZ+r?=0^PFBZ%jKB`OD&^ap{OX{A5Y3|IBqvS#JutXytNHYmP*Rs-ED7 zm%-BQOSdS}`nTK_&_c(sO~Pb~dmOsVoWt?t@6xliI1#-%9TQZ6M4{LkKs_ag zsplU6O;*nYTTttHv%M3Dwt__RHyY#>BLUn9_ZiDbdnEH&amQ?c51YMQ1CMhSv$LE{ z0y@z=Lex(_@BhQYDl}b@ij%@q<6-t*c7gBKG{4JTxA!ef!K`n(|3nhv^9&#xWY<0^ zQkl^619OxBGbuQ43p#6nC?3X#Si7sNq>%V)Bs?dy-pK@lF{WS8NP0GB+o{Aa*=SSt z&CxR~L1qz;pNFOE!iB&mZapdB%~J4vqH2%kBLWh*t;VyL95R1H5eW}JWND1Q?U?yL z-sQ^wBIwPcuqpm*U8h7#{ALgli5D>xNZqXU`3e`!xGfWj!G3NS=wDQF9dzrSjOa8?pvI^@%Kqk?8M&41T4+b@g!?g?3# z<^EnEx6W@xZ%gt*SkQ0Ay*{zMh6mR1RW$Twlxb0lq0p;x+U>uxzSQA2U$G@?axce$ z-=<}YQVG>;6R>LC+3y0Cy#ag2#Dev!Q_5N9Vi8dVUR;xuV-Ve@AM=_A)Q&UFPQ~fv z+1GdOoWv@TNXQlmv|H=pMe>a+#%xBAZHD^q66BCrp+GfU|1+o8Z9&`o1gQgPWNttr z=4?C?wS<`b^MI~bhDeG$flNt%F_>{D34Q@oUjC^-J#Tb-KY~i{Vr#}bBv&YfY^Pe`k6eXS%u5F` z&p#}TA}-_t7)eCpp*=0xOEqU{Z}f5bfJXlFX(D%F6sEWcf4c8Tjh!(faQ?fz??SPr zj#8&DNEaRyMx=DH*NQZw}&qCh^=gbzDgyzd;#Z=a&=1Dw!hCefp5pljGv2AM?eU60?vK zlfc>XbMTE6NJiUgC}ell(4M|_QB&bP7bF26+(WdmiNNfD;wbB4;C7|GXI;Fb@)kdqzENLK-<#pvxND zv~qc)T~g`o5vBI6pT*RB1j60`2fTJ7{~GIy0hK+Jjr#WF?B@)W&)#^Ay#suu-BCG+ zYI>B}Yz&QjB}>&rVE-8ynSN2Yub7=_?|jgMht6q$o@b@4%)04M(}nx*{#&TLK4lJ& zRxN0kTkAWQR$O_CrS}lf8DD5B54|5fKO&nIx+w5|*sYiQLG6;k$hXQL7<&8ebbIFJ zohRv1_uctC#BQANl{*J_F~? zo{L9@q~u8mKqNkmyU!_nr#pP7DT}d@ManbK+x=ZVv@<(&wipoofJ|xu z|EqCSz3HFKif%ow-+0{2SX5;!DoVg}cK}L@ zSb)a6nzh(NX8ZruE(JHRKhx zZ6!4ywzCm_Y&DP#+{gXi=|Y8P(DtvP-PJT6=1?=Kc^e5TBY!G9ZHKd$@j&Ns^YYF1 zeZT&R^fqmEE6=@kE<6icdOQ^B|7KbU@z1@=o1SuDY`#jbA8+@lrObFZgdlUskikP) z&wpkH|1EOycvDJQdDec`9T_BKlljGsvDD_UyU1Aojtm$Y8rxtz#?VWbw=ZnIVw{qK zrS*Z@Z6lQr zn}c%q97mx{DPg=;9VC$ZlUi^_#P$sLM3((EZlBEit3Kh(xa*k>-_yl<D zFenQ;6U2H(PP52yy~w+b&a`DUGt=*kdaCmzi@L+^;v9}-K p-JNXy_5Yn8^>4~l30-!c0m?5<(z-t0e+?i%CdVucU+6pD`afAc?Dqfw literal 0 HcmV?d00001 diff --git a/Disco.Data/packages.config b/Disco.Data/packages.config new file mode 100644 index 00000000..bdb15dfe --- /dev/null +++ b/Disco.Data/packages.config @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/Disco.Logging/App.config b/Disco.Logging/App.config new file mode 100644 index 00000000..d87ec9c4 --- /dev/null +++ b/Disco.Logging/App.config @@ -0,0 +1,14 @@ + + + + +
+ + + + + + + + + \ No newline at end of file diff --git a/Disco.Logging/Disco.Logging.csproj b/Disco.Logging/Disco.Logging.csproj new file mode 100644 index 00000000..a70bd2f7 --- /dev/null +++ b/Disco.Logging/Disco.Logging.csproj @@ -0,0 +1,125 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {BD16C575-70C2-4DDE-A572-FC79EF028CB2} + Library + Properties + Disco.Logging + Disco.Logging + v4.0 + 512 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\packages\EntityFramework.4.3.1\lib\net40\EntityFramework.dll + + + ..\..\Resources\Libraries\fastJSON\fastJSON.dll + + + True + ..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll + + + False + ..\packages\Newtonsoft.Json.4.5.1\lib\net40\Newtonsoft.Json.dll + + + ..\..\Resources\Libraries\Quartz\Quartz.dll + + + False + ..\packages\SignalR.Server.0.4.0.0\lib\net40\SignalR.dll + + + ..\packages\SignalR.Hosting.AspNet.0.4.0.0\lib\net40\SignalR.Hosting.AspNet.dll + + + + + + + True + ..\packages\SqlServerCompact.4.0.8482.1\lib\System.Data.SqlServerCe.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + + {85A6BD19-2C64-4746-8F2C-A68A86E8C2D7} + Disco.Data + + + {FBC05512-FCCA-4B16-9E76-8C413C5DE6C9} + Disco.Models + + + + + + + + + + + + + + +REM if not exist "$(TargetDir)x86" md "$(TargetDir)x86" +REM xcopy /s /y "$(SolutionDir)packages\SqlServerCompact.4.0.8482.1\NativeBinaries\x86\*.*" "$(TargetDir)x86" +REM if not exist "$(TargetDir)amd64" md "$(TargetDir)amd64" +REM xcopy /s /y "$(SolutionDir)packages\SqlServerCompact.4.0.8482.1\NativeBinaries\amd64\*.*" "$(TargetDir)amd64" + + + \ No newline at end of file diff --git a/Disco.Logging/LogBase.cs b/Disco.Logging/LogBase.cs new file mode 100644 index 00000000..b7eefbca --- /dev/null +++ b/Disco.Logging/LogBase.cs @@ -0,0 +1,43 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Disco.Logging +{ + public abstract class LogBase + { + private Dictionary _EventTypes; + + public LogBase() + { + // Cache Event Types + _EventTypes = this.LoadEventTypes().ToDictionary(et => et.Id); + } + + public abstract int ModuleId { get; } + public abstract string ModuleName { get; } + public abstract string ModuleDescription { get; } + protected abstract List LoadEventTypes(); + + public Dictionary EventTypes + { + get + { + return _EventTypes; + } + } + protected void Log(int EventTypeId, params object[] Args) + { + LogContext.Current.Log(this.ModuleId, EventTypeId, Args); + } + public string LiveLogGroupName + { + get + { + return this.ModuleName; + } + } + + } +} diff --git a/Disco.Logging/LogContext.cs b/Disco.Logging/LogContext.cs new file mode 100644 index 00000000..98213619 --- /dev/null +++ b/Disco.Logging/LogContext.cs @@ -0,0 +1,311 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Data.Repository; +using System.IO; +using System.Management; +using System.Diagnostics; +using System.Data.SqlServerCe; +using System.Data.EntityClient; +using System.Data.Entity; +using Quartz; +using Quartz.Impl; +using Quartz.Impl.Triggers; + +namespace Disco.Logging +{ + public class LogContext + { + public static Dictionary LogModules { get; private set; } + private static object _LogModulesLock = new object(); + + private static LogContext _Current; + private static object _CurrentLock = new Object(); + public static LogContext Current + { + get + { + lock (_CurrentLock) + { + if (_Current == null) + throw new InvalidOperationException("Logging Context has not been Initialized"); + return _Current; + } + } + private set + { + lock (_CurrentLock) + { + _Current = value; + } + } + } + + private static void InitalizeModules() + { + if (LogModules == null) + { + lock (_LogModulesLock) + { + if (LogModules == null) + { + LogModules = new Dictionary(); + // Load all LogModules (Only from Disco Assemblies) + var appDomain = AppDomain.CurrentDomain; + + var logModuleTypes = (from a in appDomain.GetAssemblies() + where !a.GlobalAssemblyCache && !a.IsDynamic && a.FullName.StartsWith("Disco.", StringComparison.InvariantCultureIgnoreCase) + from type in a.GetTypes() + where typeof(LogBase).IsAssignableFrom(type) && !type.IsAbstract + select type); + foreach (var logModuleType in logModuleTypes) + { + var instance = (LogBase)Activator.CreateInstance(logModuleType); + LogModules[instance.ModuleId] = instance; + } + } + } + } + } + + private static void InitalizeDatabase(Targets.LogPersistContext logDbContext) + { + // Add Modules + var existingModules = logDbContext.Modules.Include("EventTypes").ToDictionary(m => m.Id); + foreach (var module in LogModules) + { + // Update/Insert Module + Models.LogModule dbModule; + if (existingModules.TryGetValue(module.Key, out dbModule)) + { + // Update + if (dbModule.Name != module.Value.ModuleName) + dbModule.Name = module.Value.ModuleName; + if (dbModule.Description != module.Value.ModuleDescription) + dbModule.Description = module.Value.ModuleDescription; + } + else + { + // Insert + dbModule = new Models.LogModule() + { + Id = module.Key, + Name = module.Value.ModuleName, + Description = module.Value.ModuleDescription + }; + logDbContext.Modules.Add(dbModule); + } + // Update/Insert Event Types + Dictionary existingEventTypes = (dbModule.EventTypes == null) ? new Dictionary() : dbModule.EventTypes.ToDictionary(et => et.Id); + foreach (var eventType in module.Value.EventTypes) + { + Models.LogEventType dbEventType; + if (existingEventTypes.TryGetValue(eventType.Key, out dbEventType)) + { + // Update + if (dbEventType.Name != eventType.Value.Name) + dbEventType.Name = eventType.Value.Name; + if (dbEventType.Severity != eventType.Value.Severity) + dbEventType.Severity = eventType.Value.Severity; + if (dbEventType.Format != eventType.Value.Format) + dbEventType.Format = eventType.Value.Format; + } + else + { + // Insert + dbEventType = new Models.LogEventType() + { + Id = eventType.Key, + ModuleId = module.Key, + Name = eventType.Value.Name, + Severity = eventType.Value.Severity, + Format = eventType.Value.Format + }; + logDbContext.EventTypes.Add(dbEventType); + } + } + } + + logDbContext.SaveChanges(); + } + + public static string LogFileBasePath(DiscoDataContext DiscoContext) + { + var logDirectoryBase = Path.Combine(DiscoContext.DiscoConfiguration.DataStoreLocation, "Logs"); + // Create Directory Structure + if (!Directory.Exists(logDirectoryBase)) + { + Directory.CreateDirectory(logDirectoryBase); + } + // Ensure Logs are NTFS Compressed - TODO... + //Utilities.CompressDirectory(logDirectory); + // WMI - Doesn't Work for Network Folders... + //var logDirectoryBaseInfo = new DirectoryInfo(logDirectoryBase); + //if ((logDirectoryBaseInfo.Attributes & FileAttributes.Compressed) != FileAttributes.Compressed) + //{ + // var logDirectoryWmiPath = string.Format("Win32_Directory.Name=\"{0}\"", logDirectoryBase); + // using (ManagementObject logDirectoryBaseMO = new ManagementObject(logDirectoryWmiPath)) + // { + // ManagementBaseObject outParams = logDirectoryBaseMO.InvokeMethod("Compress", null, null); + // Debug.WriteLine("LoggingContext.InitalizeCurrent: Compressing Log Folder; Result: " + outParams.Properties["ReturnValue"].Value.ToString()); + // } + //} + return logDirectoryBase; + } + + public static string LogFilePath(DiscoDataContext DiscoContext, DateTime Date, bool CreateDirectory = true) + { + var logDirectoryBase = LogFileBasePath(DiscoContext); + var logDirectory = Path.Combine(logDirectoryBase, Date.Year.ToString()); + if (CreateDirectory && !Directory.Exists(logDirectory)) + { + Directory.CreateDirectory(logDirectory); + } + var logFileName = string.Format("DiscoLog_{0:yyy-MM-dd}.sdf", Date); + return Path.Combine(logDirectory, logFileName); + } + + internal static void ReInitalize(DiscoDataContext DiscoContext) + { + lock (_CurrentLock) + { + var logPath = LogFilePath(DiscoContext, DateTime.Today); + + //var connectionString = string.Format("Data Source=\"{0}\"", logPath); + + SqlCeConnectionStringBuilder sqlCeCSB = new SqlCeConnectionStringBuilder(); + sqlCeCSB.DataSource = logPath; + var connectionString = sqlCeCSB.ToString(); + + // Ensure Database Exists + if (!File.Exists(logPath)) + { + // Create Database + using (var context = new Targets.LogPersistContext(connectionString)) + { + context.Database.CreateIfNotExists(); + } + } + + // Add Modules/Event Types + InitalizeModules(); + using (var context = new Targets.LogPersistContext(connectionString)) + { + InitalizeDatabase(context); + } + + // Create Current LogContext + var currentLogContext = new LogContext(logPath, connectionString); + _Current = currentLogContext; + } + SystemLog.LogLogInitialized(_Current.PersistantStorePath); + try + { + // Get Yesterdays Log + var yesterdaysLogPath = LogFilePath(DiscoContext, DateTime.Today.AddDays(-1), false); + if (File.Exists(yesterdaysLogPath)) + { + SqlCeConnectionStringBuilder sqlCeCSB = new SqlCeConnectionStringBuilder(); + sqlCeCSB.DataSource = yesterdaysLogPath; + var connectionString = sqlCeCSB.ToString(); + int logCount; + using (var context = new Targets.LogPersistContext(connectionString)) + { + logCount = context.Events.Where(e => !(e.ModuleId == 0 && e.EventTypeId == 100)).Count(); + if (logCount == 0) + { + // Delete (empty) Database + context.Database.Delete(); + } + } + } + } + catch (Exception ex) + { + SystemLog.LogError("Error occurred while investigating yesterdays log for deletion", ex.GetType().Name, ex.Message, ex.StackTrace); + } + } + + private static IScheduler _ReInitializeScheduler; + public static void Initalize(DiscoDataContext DiscoContext, ISchedulerFactory SchedulerFactory) + { + ReInitalize(DiscoContext); + + _ReInitializeScheduler = SchedulerFactory.GetScheduler(); + + var reInitalizeJobDetail = new JobDetailImpl("DiscoLogContextReinialize", typeof(LogReInitalizeJob)); + + // Simple Trigger - Issue with Day light savings + //var reInitalizeTrigger = TriggerBuilder.Create() + // .WithIdentity("DiscoLogContextReinializeTrigger") + // .StartAt(DateBuilder.TomorrowAt(0,0,0)) + // .WithSchedule(SimpleScheduleBuilder.Create().WithIntervalInHours(24).RepeatForever()) + // .Build(); + // Use Cron Schedule instead + var reInitalizeTrigger = TriggerBuilder.Create() + .WithIdentity("DiscoLogContextReinializeTrigger") + .StartNow() + .WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(0, 0)) // Midnight + .Build(); + + _ReInitializeScheduler.ScheduleJob(reInitalizeJobDetail, reInitalizeTrigger); + } + public static string LiveLogAllEventsGroupName + { + get + { + return Targets.LogLiveContext.LiveLogNameAll; + } + } + + private LogContext(string PersistantStorePath, string PersistantStoreConnectionString) + { + this.PersistantStorePath = PersistantStorePath; + this.PersistantStoreConnectionString = PersistantStoreConnectionString; + } + + public string PersistantStorePath { get; private set; } + public string PersistantStoreConnectionString { get; private set; } + + public void Log(int ModuleId, int EventTypeId, params object[] Args) + { + LogBase logModule; + if (LogModules.TryGetValue(ModuleId, out logModule)) + { + Models.LogEventType eventType; + if (logModule.EventTypes.TryGetValue(EventTypeId, out eventType)) + { + var eventTimestamp = DateTime.Now; + if (eventType.UseLive) + { + Targets.LogLiveContext.Broadcast(logModule, eventType, eventTimestamp, Args); + } + if (eventType.UsePersist) + { + string args = null; + if (Args != null && Args.Length > 0) + args = fastJSON.JSON.Instance.ToJSON(Args, false); + using (var context = new Targets.LogPersistContext(PersistantStoreConnectionString)) + { + var e = new Models.LogEvent() + { + Timestamp = eventTimestamp, + ModuleId = logModule.ModuleId, + EventTypeId = eventType.Id, + Arguments = args + }; + context.Events.Add(e); + context.SaveChanges(); + } + } + } + else + throw new InvalidOperationException(string.Format("Unknown Log Event Type Called: {0} (for Module: {1})", EventTypeId, ModuleId)); + } + else + throw new InvalidOperationException(string.Format("Unknown Log Module Called: {0}", ModuleId)); + } + + } +} diff --git a/Disco.Logging/LogReInitalizeJob.cs b/Disco.Logging/LogReInitalizeJob.cs new file mode 100644 index 00000000..bf2b1d54 --- /dev/null +++ b/Disco.Logging/LogReInitalizeJob.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Quartz; +using Disco.Data.Repository; + +namespace Disco.Logging +{ + class LogReInitalizeJob : IJob + { + public void Execute(IJobExecutionContext context) + { + using (DiscoDataContext DiscoContext = new DiscoDataContext()) + { + LogContext.ReInitalize(DiscoContext); + } + } + } +} diff --git a/Disco.Logging/Models/LogEvent.cs b/Disco.Logging/Models/LogEvent.cs new file mode 100644 index 00000000..ef15417c --- /dev/null +++ b/Disco.Logging/Models/LogEvent.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel.DataAnnotations; + +namespace Disco.Logging.Models +{ + [Table("Events")] + public class LogEvent + { + [Required, Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)] + public int Id { get; set; } + [Required] + public int ModuleId { get; set; } + [Required] + public int EventTypeId { get; set; } + [Required] + public DateTime Timestamp { get; set; } + public string Arguments { get; set; } + } +} diff --git a/Disco.Logging/Models/LogEventType.cs b/Disco.Logging/Models/LogEventType.cs new file mode 100644 index 00000000..56c55327 --- /dev/null +++ b/Disco.Logging/Models/LogEventType.cs @@ -0,0 +1,66 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel.DataAnnotations; + +namespace Disco.Logging.Models +{ + [Table("EventTypes")] + public class LogEventType + { + [Required, Key, Column(Order=0), DatabaseGenerated(DatabaseGeneratedOption.None)] + public int ModuleId { get; set; } + [Required, Key, Column(Order = 1), DatabaseGenerated(DatabaseGeneratedOption.None)] + public int Id { get; set; } + [Required, MaxLength(200)] + public string Name { get; set; } + [Required] + public int Severity { get; set; } + [MaxLength(1024)] + public string Format { get; set; } + + [NotMapped] + public bool UsePersist { get; set; } + [NotMapped] + public bool UseLive { get; set; } + [NotMapped] + public bool UseDisplay { get; set; } + + [ForeignKey("ModuleId")] + public LogModule Module { get; set; } + + public enum Severities + { + Information = 0, + Warning = 1, + Error = 2 + } + + public string FormatMessage(object[] Arguments) + { + + if (Arguments != null && Arguments.Length > 0) + { + if (!string.IsNullOrEmpty(Format)) + { + return string.Format(Format, Arguments); + } + else + { + return Arguments + .Select(v => v == null ? string.Empty : v.ToString()) + .Aggregate((a, b) => a + ", " + (b == null ? string.Empty : b)); + } + } + else + { + if (!string.IsNullOrEmpty(Format)) + { + return Format; + } + } + return string.Empty; + } + } +} diff --git a/Disco.Logging/Models/LogLiveEvent.cs b/Disco.Logging/Models/LogLiveEvent.cs new file mode 100644 index 00000000..bb558014 --- /dev/null +++ b/Disco.Logging/Models/LogLiveEvent.cs @@ -0,0 +1,57 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Collections; + +namespace Disco.Logging.Models +{ + public class LogLiveEvent + { + public int ModuleId { get; set; } + public string ModuleName { get; set; } + public string ModuleDescription { get; set; } + public int EventTypeId { get; set; } + public string EventTypeName { get; set; } + public int EventTypeSeverity { get; set; } + + public DateTime Timestamp { get; set; } + public object[] Arguments { get; set; } + public string FormattedMessage { get; set; } + public string FormattedTimestamp { get; set; } + public bool UseDisplay { get; set; } + + public static LogLiveEvent Create(LogBase logModule, Models.LogEventType eventType, DateTime Timestamp, string jsonArguments) + { + object[] Arguments = null; + if (jsonArguments != null) + { + var alArguments = fastJSON.JSON.Instance.Parse(jsonArguments) as ArrayList; + if (alArguments != null) + { + Arguments = alArguments.ToArray(); + } + } + return Create(logModule, eventType, Timestamp, Arguments); + } + + public static LogLiveEvent Create(LogBase logModule, Models.LogEventType eventType, DateTime Timestamp, params object[] Arguments) + { + return new Models.LogLiveEvent() + { + ModuleId = logModule.ModuleId, + ModuleName = logModule.ModuleName, + ModuleDescription = logModule.ModuleDescription, + EventTypeId = eventType.Id, + EventTypeName = eventType.Name, + EventTypeSeverity = eventType.Severity, + Timestamp = Timestamp, + Arguments = Arguments, + FormattedMessage = eventType.FormatMessage(Arguments), + FormattedTimestamp = Timestamp.ToString("dd/MM/yyy hh:mm:ss tt"), + UseDisplay = eventType.UseDisplay + }; + } + + } +} diff --git a/Disco.Logging/Models/LogModule.cs b/Disco.Logging/Models/LogModule.cs new file mode 100644 index 00000000..88488575 --- /dev/null +++ b/Disco.Logging/Models/LogModule.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel.DataAnnotations; + +namespace Disco.Logging.Models +{ + [Table("Modules")] + public class LogModule + { + [Required, Key, DatabaseGenerated(DatabaseGeneratedOption.None)] + public int Id { get; set; } + [Required, MaxLength(200)] + public string Name { get; set; } + [Required, MaxLength(500)] + public string Description { get; set; } + + public virtual IList EventTypes { get; set; } + } +} diff --git a/Disco.Logging/Properties/AssemblyInfo.cs b/Disco.Logging/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..4e064f91 --- /dev/null +++ b/Disco.Logging/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using 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. +[assembly: AssemblyTitle("Disco - Logging")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Disco")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// 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. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("03a4a5bf-60c6-4dff-b623-387043b8be86")] + +// 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.*")] +[assembly: AssemblyVersion("1.2012.0627.1427")] +[assembly: AssemblyFileVersion("1.2012.0627.1427")] diff --git a/Disco.Logging/ReadLogContext.cs b/Disco.Logging/ReadLogContext.cs new file mode 100644 index 00000000..cf13976d --- /dev/null +++ b/Disco.Logging/ReadLogContext.cs @@ -0,0 +1,179 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Logging.Targets; +using Disco.Data.Repository; +using System.IO; +using System.Text.RegularExpressions; +using System.Data.SqlServerCe; +using Disco.Logging.Models; + +namespace Disco.Logging +{ + public class ReadLogContext + { + public DateTime? Start { get; set; } + public DateTime? End { get; set; } + public int? Take { get; set; } + public int? Module { get; set; } + public List EventTypes { get; set; } + + public bool Validate() + { + if (this.Start.HasValue && this.End.HasValue && this.End.Value < this.Start.Value) + throw new ArgumentOutOfRangeException("End", "End must be greater than Start"); + if (this.Start.HasValue && !this.End.HasValue && this.Start > DateTime.Now) + throw new ArgumentOutOfRangeException("Start", "Start must be less than current time"); + + return true; + } + + public List Query(DiscoDataContext DiscoContext) + { + List results = new List(); + + // Validate Options + this.Validate(); + + var relevantLogFiles = RelevantLogFiles(DiscoContext); + relevantLogFiles.Reverse(); + foreach (var logFile in relevantLogFiles) + { + SqlCeConnectionStringBuilder sqlCeCSB = new SqlCeConnectionStringBuilder(); + sqlCeCSB.DataSource = logFile.Item1; + + var logModules = LogContext.LogModules; + + using (var context = new Targets.LogPersistContext(sqlCeCSB.ToString())) + { + var query = this.BuildQuery(context, logFile.Item2, results.Count); + IEnumerable queryResults = query; // Run the Query + results.AddRange(queryResults.Select(le => Models.LogLiveEvent.Create(logModules[le.ModuleId], logModules[le.ModuleId].EventTypes[le.EventTypeId], le.Timestamp, le.Arguments))); + } + if (this.Take.HasValue && this.Take.Value < results.Count) + break; + } + return results; + } + + private static Regex LogFileDateRegex = new Regex("DiscoLog_([0-9]{4})-([0-9]{2})-([0-9]{2}).sdf", RegexOptions.IgnoreCase); + private static DateTime? LogFileDate(string LogFilePath) + { + var fileNameMatch = LogFileDateRegex.Match(LogFilePath); + if (fileNameMatch.Success) + { + return new DateTime(int.Parse(fileNameMatch.Groups[1].Value), + int.Parse(fileNameMatch.Groups[2].Value), + int.Parse(fileNameMatch.Groups[3].Value)); + } + else + { + return null; + } + } + + private List> RelevantLogFiles(DiscoDataContext DiscoContext) + { + List> relevantFiles = new List>(); + var logDirectoryBase = LogContext.LogFileBasePath(DiscoContext); + var logDirectoryBaseInfo = new DirectoryInfo(logDirectoryBase); + var endDate = this.End.HasValue ? this.End.Value : DateTime.Now; + var endDateYear = endDate.Year.ToString(); + + // Try Shortcut ( < 31 Days in Query) + if (this.Start.HasValue) + { + if ((this.End.HasValue && this.End.Value.Subtract(this.Start.Value).Days < 31) || + (!this.End.HasValue && DateTime.Now.Subtract(this.Start.Value).Days < 31)) + { + // Less than 31 Days in Query - Just evaluate each Path + var queryDate = this.Start.Value.Date; + while (queryDate <= endDate) + { + var fileName = LogContext.LogFilePath(DiscoContext, queryDate, false); + if (File.Exists(fileName)) + relevantFiles.Add(new Tuple(fileName, LogFileDate(fileName).Value)); + + queryDate = queryDate.AddDays(1); + } + return relevantFiles; + } + } + + List logYears = new List(); + foreach (var directoryName in logDirectoryBaseInfo.GetDirectories()) + { + int directoryYear; + if (int.TryParse(directoryName.Name, out directoryYear)) + { + logYears.Add(directoryName.Name); + } + } + logYears.Sort(); + + foreach (var logYear in logYears) + { + List logFiles = Directory.EnumerateFiles(Path.Combine(logDirectoryBase, logYear), "DiscoLog_*.sdf").ToList(); + logFiles.Sort(); + if (logYear != endDateYear) + { + foreach (var logFile in logFiles) + { + relevantFiles.Add(new Tuple(logFile, LogFileDate(logFile).Value)); + } + } + else + { + foreach (var logFile in logFiles) + { + var fileNameDate = LogFileDate(logFile); + if (fileNameDate != null) + { + if (fileNameDate.Value < endDate) + { + relevantFiles.Add(new Tuple(logFile, fileNameDate.Value)); + } + else + { + break; // Files are sorted, must be no more... + } + } + } + break; // Years are sorted, must be no more... + } + } + return relevantFiles; + } + + private IQueryable BuildQuery(LogPersistContext LogContext, DateTime LogDate, int Taken) + { + IQueryable query = LogContext.Events.OrderByDescending(le => le.Timestamp); + if (this.Module.HasValue) + { + query = query.Where(le => le.ModuleId == this.Module.Value); + } + if (this.EventTypes != null && this.EventTypes.Count > 0) + { + query = query.Where(le => this.EventTypes.Contains(le.EventTypeId)); + } + if (this.Start.HasValue && this.Start.Value > LogDate) + { + var startValue = DateTime.SpecifyKind(this.Start.Value, DateTimeKind.Local); + query = query.Where(le => le.Timestamp > startValue); + } + if (this.End.HasValue && this.End.Value <= LogDate.AddDays(1)) + { + var endValue = DateTime.SpecifyKind(this.End.Value, DateTimeKind.Local); + query = query.Where(le => le.Timestamp < endValue); + } + if (this.Take.HasValue && this.Take.Value > 0) + { + var take = this.Take.Value - Taken; + query = query.Take(take); + } + return query; + } + + } +} diff --git a/Disco.Logging/SystemLog.cs b/Disco.Logging/SystemLog.cs new file mode 100644 index 00000000..aac8683b --- /dev/null +++ b/Disco.Logging/SystemLog.cs @@ -0,0 +1,126 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Logging.Models; + +namespace Disco.Logging +{ + public class SystemLog : LogBase + { + private const int _ModuleId = 0; + public enum EventTypeIds : int + { + Information = 0, + Warning = 1, + Error = 2, + Exception = 10, + ExceptionWithInner = 11, + LogInitialized = 100 + } + public static SystemLog Current + { + get + { + return (SystemLog)LogContext.LogModules[_ModuleId]; + } + } + private static void Log(EventTypeIds EventTypeId, params object[] Args) + { + Current.Log((int)EventTypeId, Args); + } + public static void LogInformation(params object[] Messages) + { + Log(EventTypeIds.Information, Messages); + } + public static void LogWarning(params object[] Messages) + { + Log(EventTypeIds.Warning, Messages); + } + public static void LogError(params object[] Messages) + { + Log(EventTypeIds.Error, Messages); + } + public static void LogException(string Component, Exception ex) + { + if (ex.InnerException != null) + { + Log(EventTypeIds.ExceptionWithInner, Component, ex.GetType().Name, ex.Message, ex.StackTrace, ex.InnerException.GetType().Name, ex.InnerException.Message, ex.InnerException.StackTrace); + } + else + { + Log(EventTypeIds.Exception, Component, ex.GetType().Name, ex.Message, ex.StackTrace); + } + } + + public static void LogLogInitialized(string PersistantStorePath) + { + Log(EventTypeIds.LogInitialized, PersistantStorePath); + } + + public override int ModuleId + { + get { return _ModuleId; } + } + + public override string ModuleName + { + get { return "System"; } + } + + public override string ModuleDescription + { + get { return "Core System Log"; } + } + + protected override List LoadEventTypes() + { + List eventTypes = new List() { + new LogEventType() { + Id = (int)EventTypeIds.Information, + ModuleId = _ModuleId, + Name = "Information", + Format = null, + Severity = (int)LogEventType.Severities.Information, + UseLive = true, UsePersist = true, UseDisplay = true }, + new LogEventType() { + Id = (int)EventTypeIds.Warning, + ModuleId = _ModuleId, + Name = "Warning", + Format = null, + Severity = (int)LogEventType.Severities.Warning, + UseLive = true, UsePersist = true, UseDisplay = true }, + new LogEventType() { + Id = (int)EventTypeIds.Error, + ModuleId = _ModuleId, + Name = "Error", + Format = null, + Severity = (int)LogEventType.Severities.Error, + UseLive = true, UsePersist = true, UseDisplay = true }, + new LogEventType() { + Id = (int)EventTypeIds.Exception, + ModuleId = _ModuleId, + Name = "Exception", + Format = "{0}; {1}: {2}; {3}", + Severity = (int)LogEventType.Severities.Error, + UseLive = true, UsePersist = true, UseDisplay = true }, + new LogEventType() { + Id = (int)EventTypeIds.ExceptionWithInner, + ModuleId = _ModuleId, + Name = "Exception with Inner Exception", + Format = "{0}; {1}: {2}; {3}; {4}: {5}; {6}", + Severity = (int)LogEventType.Severities.Error, + UseLive = true, UsePersist = true, UseDisplay = true }, + new LogEventType() { + Id = (int)EventTypeIds.LogInitialized, + ModuleId = _ModuleId, + Name = "Log Initialized", + Format = "Log Initialized to '{0}'", + Severity = (int)LogEventType.Severities.Information, + UseLive = false, UsePersist = true, UseDisplay = true } + }; + + return eventTypes; + } + } +} diff --git a/Disco.Logging/Targets/LogLiveContext.cs b/Disco.Logging/Targets/LogLiveContext.cs new file mode 100644 index 00000000..1b0d8d98 --- /dev/null +++ b/Disco.Logging/Targets/LogLiveContext.cs @@ -0,0 +1,55 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using SignalR; +using SignalR.Hosting.AspNet; +using SignalR.Infrastructure; + +namespace Disco.Logging.Targets +{ + public class LogLiveContext : PersistentConnection + { + protected override System.Threading.Tasks.Task OnReceivedAsync(string connectionId, string data) + { + // Add to Group + if (!string.IsNullOrWhiteSpace(data) && data.StartsWith("/addToGroups:") && data.Length > 13) + { + var groups = data.Substring(13).Split(','); + foreach (var g in groups) + { + this.AddToGroup(connectionId, g); + } + } + + return base.OnReceivedAsync(connectionId, data); + } + + internal static void Broadcast(LogBase logModule, Models.LogEventType eventType, DateTime Timestamp, params object[] Arguments) + { + var message = Models.LogLiveEvent.Create(logModule, eventType, Timestamp, Arguments); + + var connectionManager = AspNetHost.DependencyResolver.Resolve(); + var connection = connectionManager.GetConnection(); + connection.Broadcast(_QualifiedTypeNameAll, message); + connection.Broadcast(LiveLogNameGroup(logModule.ModuleName), message); + } + + private const string _GroupNameAll = "__All"; + private static string _QualifiedTypeName = typeof(LogLiveContext).FullName + "."; + private static string _QualifiedTypeNameAll = _QualifiedTypeName + "__All"; + private static string LiveLogNameGroup(string LogName) + { + return string.Concat(_QualifiedTypeName, LogName); + } + public static string LiveLogNameAll + { + get + { + //return _QualifiedTypeNameAll; + return _GroupNameAll; + } + } + + } +} diff --git a/Disco.Logging/Targets/LogPersistContext.cs b/Disco.Logging/Targets/LogPersistContext.cs new file mode 100644 index 00000000..ac335469 --- /dev/null +++ b/Disco.Logging/Targets/LogPersistContext.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Data.Entity; +using System.Data.Entity.Infrastructure; + +namespace Disco.Logging.Targets +{ + public class LogPersistContext : DbContext + { + public LogPersistContext(string ConnectionString) : base(ConnectionString) { } + + public DbSet Modules { get; set; } + public DbSet EventTypes { get; set; } + public DbSet Events { get; set; } + + protected override void OnModelCreating(DbModelBuilder modelBuilder) + { + //modelBuilder.Conventions.Remove(); + } + } +} diff --git a/Disco.Logging/Utilities.cs b/Disco.Logging/Utilities.cs new file mode 100644 index 00000000..249fbc03 --- /dev/null +++ b/Disco.Logging/Utilities.cs @@ -0,0 +1,263 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Microsoft.Win32.SafeHandles; +using System.Runtime.InteropServices; +using System.IO; +using System.Web.Mvc; + +namespace Disco.Logging +{ + public static class Utilities + { + + public const string LogEventCSVHeader = "Timestamp,ModuleId,ModuleName,ModuleDescription,EventTypeId,EventTypeName,Severity,Message"; + public static void ToCsvLine(this Models.LogLiveEvent e, TextWriter writer) + { + writer.Write(e.Timestamp.ToString("yyy-MM-dd HH:mm:ss")); + writer.Write(","); + writer.Write(e.ModuleId); + writer.Write(",\""); + writer.Write(e.ModuleName); + writer.Write("\",\""); + writer.Write(e.ModuleDescription); + writer.Write("\","); + writer.Write(e.EventTypeId); + writer.Write(",\""); + writer.Write(e.EventTypeName); + writer.Write("\","); + writer.Write(e.EventTypeSeverity); + writer.Write(",\""); + writer.Write(e.FormattedMessage.Replace("\"", "'")); + writer.Write("\""); + if (e.Arguments != null) + { + foreach (var arg in e.Arguments) + { + writer.Write(",\""); + writer.Write(arg.ToString().Replace("\"", "'")); + writer.Write("\""); + } + } + writer.WriteLine(); + } + public static MemoryStream ToCsv(this List e) + { + var ms = new MemoryStream(); + StreamWriter sw = new StreamWriter(ms); + sw.WriteLine(LogEventCSVHeader); + if (e != null) + { + foreach (var le in e) + { + le.ToCsvLine(sw); + } + } + sw.Flush(); + ms.Position = 0; + return ms; + } + + public static List ToSelectListItems(this List items) + { + return items.Select(et => new SelectListItem() { Value = et.Id.ToString(), Text = et.Name }).ToList(); + } + + #region Win32 APIs + /// + /// The CreateFile function creates or opens a file, file stream, directory, physical disk, volume, console buffer, tape drive, + /// communications resource, mailslot, or named pipe. The function returns a handle that can be used to access an object. + /// + /// + /// access to the object, which can be read, write, or both + /// The sharing mode of an object, which can be read, write, both, or none + /// A pointer to a SECURITY_ATTRIBUTES structure that determines whether or not the returned handle can + /// be inherited by child processes. Can be null + /// An action to take on files that exist and do not exist + /// The file attributes and flags. + /// A handle to a template file with the GENERIC_READ access right. The template file supplies file attributes + /// and extended attributes for the file that is being created. This parameter can be null + /// If the function succeeds, the return value is an open handle to a specified file. If a specified file exists before the function + /// all and dwCreationDisposition is CREATE_ALWAYS or OPEN_ALWAYS, a call to GetLastError returns ERROR_ALREADY_EXISTS, even when the function + /// succeeds. If a file does not exist before the call, GetLastError returns 0 (zero). + /// If the function fails, the return value is INVALID_HANDLE_VALUE. To get extended error information, call GetLastError. + /// + [DllImport("kernel32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall, SetLastError = true)] + private static extern SafeFileHandle CreateFile( + string lpFileName, + EFileAccess dwDesiredAccess, + EFileShare dwShareMode, + IntPtr SecurityAttributes, + ECreationDisposition dwCreationDisposition, + EFileAttributes dwFlagsAndAttributes, + IntPtr hTemplateFile + ); + [Flags] + private enum EFileAccess : uint + { + Delete = 0x10000, + ReadControl = 0x20000, + WriteDAC = 0x40000, + WriteOwner = 0x80000, + Synchronize = 0x100000, + + StandardRightsRequired = 0xF0000, + StandardRightsRead = ReadControl, + StandardRightsWrite = ReadControl, + StandardRightsExecute = ReadControl, + StandardRightsAll = 0x1F0000, + SpecificRightsAll = 0xFFFF, + + AccessSystemSecurity = 0x1000000, // AccessSystemAcl access type + + MaximumAllowed = 0x2000000, // MaximumAllowed access type + + GenericRead = 0x80000000, + GenericWrite = 0x40000000, + GenericExecute = 0x20000000, + GenericAll = 0x10000000 + } + [Flags] + private enum EFileShare : uint + { + /// + /// + /// + None = 0x00000000, + /// + /// Enables subsequent open operations on an object to request read access. + /// Otherwise, other processes cannot open the object if they request read access. + /// If this flag is not specified, but the object has been opened for read access, the function fails. + /// + Read = 0x00000001, + /// + /// Enables subsequent open operations on an object to request write access. + /// Otherwise, other processes cannot open the object if they request write access. + /// If this flag is not specified, but the object has been opened for write access, the function fails. + /// + Write = 0x00000002, + /// + /// Enables subsequent open operations on an object to request delete access. + /// Otherwise, other processes cannot open the object if they request delete access. + /// If this flag is not specified, but the object has been opened for delete access, the function fails. + /// + Delete = 0x00000004 + } + private enum ECreationDisposition : uint + { + /// + /// Creates a new file. The function fails if a specified file exists. + /// + New = 1, + /// + /// Creates a new file, always. + /// If a file exists, the function overwrites the file, clears the existing attributes, combines the specified file attributes, + /// and flags with FILE_ATTRIBUTE_ARCHIVE, but does not set the security descriptor that the SECURITY_ATTRIBUTES structure specifies. + /// + CreateAlways = 2, + /// + /// Opens a file. The function fails if the file does not exist. + /// + OpenExisting = 3, + /// + /// Opens a file, always. + /// If a file does not exist, the function creates a file as if dwCreationDisposition is CREATE_NEW. + /// + OpenAlways = 4, + /// + /// Opens a file and truncates it so that its size is 0 (zero) bytes. The function fails if the file does not exist. + /// The calling process must open the file with the GENERIC_WRITE access right. + /// + TruncateExisting = 5 + } + [Flags] + private enum EFileAttributes : uint + { + None = 0x0000000, + Readonly = 0x00000001, + Hidden = 0x00000002, + System = 0x00000004, + Directory = 0x00000010, + Archive = 0x00000020, + Device = 0x00000040, + Normal = 0x00000080, + Temporary = 0x00000100, + SparseFile = 0x00000200, + ReparsePoint = 0x00000400, + Compressed = 0x00000800, + Offline = 0x00001000, + NotContentIndexed = 0x00002000, + Encrypted = 0x00004000, + Write_Through = 0x80000000, + Overlapped = 0x40000000, + NoBuffering = 0x20000000, + RandomAccess = 0x10000000, + SequentialScan = 0x08000000, + DeleteOnClose = 0x04000000, + BackupSemantics = 0x02000000, + PosixSemantics = 0x01000000, + OpenReparsePoint = 0x00200000, + OpenNoRecall = 0x00100000, + FirstPipeInstance = 0x00080000 + } + + private const int FSCTL_SET_COMPRESSION = 0x9C040; + private const short COMPRESSION_FORMAT_DEFAULT = 1; + [DllImport("kernel32.dll", SetLastError = true)] + private static extern int DeviceIoControl( + SafeFileHandle hDevice, + int dwIoControlCode, + ref short lpInBuffer, + int nInBufferSize, + IntPtr lpOutBuffer, + int nOutBufferSize, + ref int lpBytesReturned, + IntPtr lpOverlapped); + #endregion + + public static void CompressDirectory(string DirectoryPath) + { + if (DirectoryPath.Length > 250) + throw new InvalidOperationException(string.Format("Directory Path to Long (>250) to Compress: {0}", DirectoryPath)); + + DirectoryInfo dirInfo = new DirectoryInfo(DirectoryPath); + if (dirInfo.Exists) + { + if ((dirInfo.Attributes & FileAttributes.Compressed) != FileAttributes.Compressed) + { + var dirHandle = CreateFile(DirectoryPath, EFileAccess.GenericWrite, EFileShare.Read, IntPtr.Zero, ECreationDisposition.OpenExisting, EFileAttributes.None, IntPtr.Zero); + if (dirHandle.IsInvalid) + { + Marshal.ThrowExceptionForHR(Marshal.GetHRForLastWin32Error()); + } + else + { + EnableCompression(dirHandle); + dirHandle.Close(); + } + } + } + else + { + throw new InvalidOperationException(string.Format("Directory doesn't exist: {0}", DirectoryPath)); + } + } + + private static void EnableCompression(SafeFileHandle handle) + { + int lpBytesReturned = 0; + short lpInBuffer = COMPRESSION_FORMAT_DEFAULT; + + int result = DeviceIoControl(handle, FSCTL_SET_COMPRESSION, + ref lpInBuffer, sizeof(short), IntPtr.Zero, 0, + ref lpBytesReturned, IntPtr.Zero); + + if (result != 0) + { + Marshal.ThrowExceptionForHR(Marshal.GetLastWin32Error()); + } + } + + } +} diff --git a/Disco.Logging/packages.config b/Disco.Logging/packages.config new file mode 100644 index 00000000..2ba417d6 --- /dev/null +++ b/Disco.Logging/packages.config @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/Disco.Models/App.config b/Disco.Models/App.config new file mode 100644 index 00000000..cbfc1faf --- /dev/null +++ b/Disco.Models/App.config @@ -0,0 +1,17 @@ + + + + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/Disco.Models/BI/Config/OrganisationAddress.cs b/Disco.Models/BI/Config/OrganisationAddress.cs new file mode 100644 index 00000000..ab83ba5f --- /dev/null +++ b/Disco.Models/BI/Config/OrganisationAddress.cs @@ -0,0 +1,74 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel.DataAnnotations; + +namespace Disco.Models.BI.Config +{ + public class OrganisationAddress + { + + public int? Id { get; set; } + [Required] + public string Name { get; set; } + [Required] + public string Address { get; set; } + [Required] + public string Suburb { get; set; } + [Required] + public string Postcode { get; set; } + [Required] + public string State { get; set; } + [Required] + public string Country { get; set; } + [Required] + public string ShortName { get; set; } + + // Added 2012-12-11 G# + // http://discoict.com.au/forum/support/2012/12/address-details.aspx + public string PhoneNumber { get; set; } + public string FaxNumber { get; set; } + // End Added 2012-12-11 G# + + public string ToConfigurationEntry() + { + StringBuilder entryBuilder = new StringBuilder(); + + entryBuilder.AppendLine(Name.Trim()); + entryBuilder.AppendLine(Address.Trim()); + entryBuilder.AppendLine(Suburb.Trim()); + entryBuilder.AppendLine(Postcode.Trim()); + entryBuilder.AppendLine(State.Trim()); + entryBuilder.AppendLine(Country.Trim()); + + if (!string.IsNullOrEmpty(ShortName)) + { + entryBuilder.AppendLine(ShortName.Trim()); + } + + return entryBuilder.ToString(); + } + + public static OrganisationAddress FromConfigurationEntry(int Id, string Entry) + { + string[] entryLines = Entry.Split(new string[] { Environment.NewLine }, StringSplitOptions.None); + if (entryLines.Length >= 6) + { + return new OrganisationAddress() + { + Id = Id, + Name = entryLines[0].Trim(), + Address = entryLines[1].Trim(), + Suburb = entryLines[2].Trim(), + Postcode = entryLines[3].Trim(), + State = entryLines[4].Trim(), + Country = entryLines[5].Trim(), + ShortName = (entryLines.Length > 6 ? entryLines[6].Trim() : string.Empty) + }; + } + throw new ArgumentException("Invalid Configuration Address Entry", "entry"); + } + + } +} diff --git a/Disco.Models/BI/DocumentTemplate/DocumentState.cs b/Disco.Models/BI/DocumentTemplate/DocumentState.cs new file mode 100644 index 00000000..c1554925 --- /dev/null +++ b/Disco.Models/BI/DocumentTemplate/DocumentState.cs @@ -0,0 +1,59 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Collections; + +namespace Disco.Models.BI.DocumentTemplates +{ + public class DocumentState : IDisposable + { + public int SequenceNumber { get; set; } + public Hashtable FieldCache { get; set; } + public Hashtable ScopeCache { get; set; } + public Hashtable DocumentCache { get; set; } + + public DocumentState(int SequenceNumber) + { + this.SequenceNumber = SequenceNumber; + this.FieldCache = new Hashtable(); + this.ScopeCache = new Hashtable(); + this.DocumentCache = new Hashtable(); + } + + public void FlushFieldCache() + { + FlushDictionary(this.FieldCache); + } + public void FlushScopeCache() + { + FlushFieldCache(); + FlushDictionary(this.ScopeCache); + } + public void FlushDocumentCache() + { + FlushScopeCache(); + FlushDictionary(this.DocumentCache); + } + private static void FlushDictionary(Hashtable d) + { + foreach (var key in d.Keys) + { + var disposeItem = d[key] as IDisposable; + if (disposeItem != null) + disposeItem.Dispose(); + } + d.Clear(); + } + + public static DocumentState DefaultState() + { + return new DocumentState(1); + } + + public void Dispose() + { + FlushDocumentCache(); + } + } +} diff --git a/Disco.Models/BI/Expressions/IImageExpressionResult.cs b/Disco.Models/BI/Expressions/IImageExpressionResult.cs new file mode 100644 index 00000000..d5ae6970 --- /dev/null +++ b/Disco.Models/BI/Expressions/IImageExpressionResult.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.IO; + +namespace Disco.Models.BI.Expressions +{ + public interface IImageExpressionResult + { + Stream GetImage(int Width, int Height); + byte Quality { get; set; } + bool LosslessFormat { get; set; } + bool ShowField { get; set; } + string BackgroundColour { get; set; } + bool BackgroundPreferTransparent { get; set; } + } +} diff --git a/Disco.Models/BI/Interop/Community/UpdateRequestBase.cs b/Disco.Models/BI/Interop/Community/UpdateRequestBase.cs new file mode 100644 index 00000000..33bcba22 --- /dev/null +++ b/Disco.Models/BI/Interop/Community/UpdateRequestBase.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Net; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; + +namespace Disco.Models.BI.Interop.Community +{ + public class UpdateRequestBase + { + public virtual int RequestVersion { get; set; } + } +} diff --git a/Disco.Models/BI/Interop/Community/UpdateRequestV1.cs b/Disco.Models/BI/Interop/Community/UpdateRequestV1.cs new file mode 100644 index 00000000..9c910310 --- /dev/null +++ b/Disco.Models/BI/Interop/Community/UpdateRequestV1.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; + +namespace Disco.Models.BI.Interop.Community +{ + public class UpdateRequestV1 : UpdateRequestBase + { + public UpdateRequestV1() + { + this.RequestVersion = 1; + } + + public string DeploymentId { get; set; } + public string CurrentDiscoVersion { get; set; } + public bool BetaDeployment { get; set; } + + public string OrganisationName { get; set; } + public string BroadbandDoeWanId { get; set; } + + public List Stat_JobCounts { get; set; } + public List Stat_OpenJobCounts { get; set; } + public List Stat_ActiveDeviceModelCounts { get; set; } + public List Stat_UserCounts { get; set; } + + public class Stat + { + public string Key { get; set; } + public int Count { get; set; } + } + + } +} diff --git a/Disco.Models/BI/Interop/Community/UpdateResponse.cs b/Disco.Models/BI/Interop/Community/UpdateResponse.cs new file mode 100644 index 00000000..15693040 --- /dev/null +++ b/Disco.Models/BI/Interop/Community/UpdateResponse.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Disco.Models.BI.Interop.Community +{ + public class UpdateResponse + { + public string Version { get; set; } + public DateTime VersionReleasedTimestamp { get; set; } + public string Blurb { get; set; } + public string UrlLink { get; set; } + public DateTime ResponseTimestamp { get; set; } + public bool BetaRelease { get; set; } + + public bool IsUpdatable(Version TestVersion) + { + var updateVersion = System.Version.Parse(this.Version); + return (updateVersion > TestVersion); + } + } +} diff --git a/Disco.Models/BI/Job/JobTableModel.cs b/Disco.Models/BI/Job/JobTableModel.cs new file mode 100644 index 00000000..e0bb8bbe --- /dev/null +++ b/Disco.Models/BI/Job/JobTableModel.cs @@ -0,0 +1,74 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Disco.Models.BI.Job +{ + public class JobTableModel + { + public bool ShowId { get; set; } + public bool? ShowDeviceAddress { get; set; } + public bool ShowDates { get; set; } + public bool ShowType { get; set; } + public bool ShowDevice { get; set; } + public bool ShowUser { get; set; } + public bool ShowTechnician { get; set; } + public bool ShowLocation { get; set; } + public bool ShowStatus { get; set; } + public bool IsSmallTable { get; set; } + public bool HideClosedJobs { get; set; } + public List Items { get; set; } + + public JobTableModel() + { + ShowId = true; + ShowDates = true; + ShowType = true; + ShowDevice = true; + ShowUser = true; + ShowTechnician = true; + } + + public class JobTableItemModel + { + public int Id { get; set; } + public int? DeviceAddressId { get; set; } + public string DeviceAddress { get; set; } + public DateTime OpenedDate { get; set; } + public DateTime? ClosedDate { get; set; } + public string TypeId { get; set; } + public string TypeDescription { get; set; } + public string DeviceSerialNumber { get; set; } + public string DeviceModelDescription { get; set; } + public string UserId { get; set; } + public string UserDisplayName { get; set; } + public string OpenedTechUserId { get; set; } + public string OpenedTechUserDisplayName { get; set; } + public string StatusDescription { get; set; } + public string StatusId { get; set; } + public string Location { get; set; } + } + + public class JobTableItemModelIncludeStatus : JobTableItemModel + { + public string JobMetaWarranty_ExternalReference { get; set; } + public DateTime? JobMetaWarranty_ExternalCompletedDate { get; set; } + + public DateTime? JobMetaNonWarranty_RepairerLoggedDate { get; set; } + public DateTime? JobMetaNonWarranty_RepairerCompletedDate { get; set; } + public DateTime? JobMetaNonWarranty_AccountingChargeAddedDate { get; set; } + public DateTime? JobMetaNonWarranty_AccountingChargePaidDate { get; set; } + public DateTime? JobMetaNonWarranty_AccountingChargeRequiredDate { get; set; } + public bool? JobMetaNonWarranty_IsInsuranceClaim { get; set; } + public DateTime? JobMetaInsurance_ClaimFormSentDate { get; set; } + + public DateTime? WaitingForUserAction { get; set; } + public DateTime? DeviceReadyForReturn { get; set; } + public DateTime? DeviceHeld { get; set; } + public DateTime? DeviceReturnedDate { get; set; } + public string JobMetaWarranty_ExternalName { get; set; } + public string JobMetaNonWarranty_RepairerName { get; set; } + } + } +} diff --git a/Disco.Models/BI/Job/Statistics/DailyOpenedClosedItem.cs b/Disco.Models/BI/Job/Statistics/DailyOpenedClosedItem.cs new file mode 100644 index 00000000..cdc561a4 --- /dev/null +++ b/Disco.Models/BI/Job/Statistics/DailyOpenedClosedItem.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Disco.Models.BI.Job.Statistics +{ + public class DailyOpenedClosedItem + { + public DateTime Timestamp { get; set; } + public int TotalJobs { get; set; } + public int OpenedJobs { get; set; } + public int ClosedJobs { get; set; } + } +} diff --git a/Disco.Models/BI/Search/DeviceSearchResultItem.cs b/Disco.Models/BI/Search/DeviceSearchResultItem.cs new file mode 100644 index 00000000..283b6a1d --- /dev/null +++ b/Disco.Models/BI/Search/DeviceSearchResultItem.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Disco.Models.BI.Search +{ + public class DeviceSearchResultItem + { + public string AssetNumber { get; set; } + public string AssignedUserDescription + { + get + { + if (AssignedUserId != null) + { + if (AssignedUserDisplayName != null) + return string.Format("{0} ({1})", AssignedUserDisplayName, AssignedUserId); + else + return AssignedUserId; + } + return string.Empty; + } + } + public string AssignedUserDisplayName { get; set; } + public string AssignedUserId { get; set; } + public string ComputerName { get; set; } + public string DeviceModelDescription { get; set; } + public string DeviceProfileDescription { get; set; } + public int JobCount { get; set; } + public DateTime? DecommissionedDate { get; set; } + public string SerialNumber { get; set; } + } +} diff --git a/Disco.Models/BI/Search/UserSearchResultItem.cs b/Disco.Models/BI/Search/UserSearchResultItem.cs new file mode 100644 index 00000000..40b8c9a8 --- /dev/null +++ b/Disco.Models/BI/Search/UserSearchResultItem.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Disco.Models.BI.Search +{ + public class UserSearchResultItem + { + public int AssignedDevicesCount { get; set; } + public string DisplayName { get; set; } + public string GivenName { get; set; } + public string Id { get; set; } + public int JobCount { get; set; } + public string Surname { get; set; } + } +} diff --git a/Disco.Models/ClientServices/Enrol.cs b/Disco.Models/ClientServices/Enrol.cs new file mode 100644 index 00000000..471ada30 --- /dev/null +++ b/Disco.Models/ClientServices/Enrol.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Disco.Models.ClientServices +{ + public class Enrol : ServiceBase + { + public override string Feature + { + get { return "Enrol"; } + } + + public string DeviceSerialNumber { get; set; } + public string DeviceUUID { get; set; } + + public string DeviceComputerName { get; set; } + public bool DeviceIsPartOfDomain { get; set; } + + public string DeviceManufacturer { get; set; } + public string DeviceModel { get; set; } + public string DeviceModelType { get; set; } + + public string DeviceLanMacAddress { get; set; } + + public string DeviceWlanMacAddress { get; set; } + + public List DeviceCertificates { get; set; } + } +} diff --git a/Disco.Models/ClientServices/EnrolResponse.cs b/Disco.Models/ClientServices/EnrolResponse.cs new file mode 100644 index 00000000..3741ce82 --- /dev/null +++ b/Disco.Models/ClientServices/EnrolResponse.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Disco.Models.ClientServices +{ + public class EnrolResponse + { + public string SessionId { get; set; } + + public string DeviceDomainName { get; set; } + public string DeviceComputerName { get; set; } + + public string DeviceAssignedUserDomain { get; set; } + public string DeviceAssignedUserName { get; set; } + public string DeviceAssignedUserSID { get; set; } + public string DeviceAssignedUserUsername { get; set; } + + public string OfflineDomainJoin { get; set; } + + public string DeviceCertificate { get; set; } + public List DeviceCertificateRemoveExisting { get; set; } + + // Actions + public bool AllowBootstrapperUninstall { get; set; } + public bool RequireReboot { get; set; } + + public string ErrorMessage { get; set; } + } +} diff --git a/Disco.Models/ClientServices/MacEnrol.cs b/Disco.Models/ClientServices/MacEnrol.cs new file mode 100644 index 00000000..ea63f53f --- /dev/null +++ b/Disco.Models/ClientServices/MacEnrol.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Disco.Models.ClientServices +{ + public class MacEnrol : ServiceBase + { + public override string Feature + { + get { return "MacEnrol"; } + } + + public string DeviceSerialNumber { get; set; } + public string DeviceUUID { get; set; } + + public string DeviceComputerName { get; set; } + + public string DeviceManufacturer { get; set; } + public string DeviceModel { get; set; } + public string DeviceModelType { get; set; } + + public string DeviceLanMacAddress { get; set; } + + public string DeviceWlanMacAddress { get; set; } + } +} diff --git a/Disco.Models/ClientServices/MacEnrolResponse.cs b/Disco.Models/ClientServices/MacEnrolResponse.cs new file mode 100644 index 00000000..3dd63e0a --- /dev/null +++ b/Disco.Models/ClientServices/MacEnrolResponse.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Disco.Models.ClientServices +{ + public class MacEnrolResponse + { + public string DeviceComputerName { get; set; } + + public string DeviceAssignedUserDomain { get; set; } + public string DeviceAssignedUserName { get; set; } + public string DeviceAssignedUserSID { get; set; } + public string DeviceAssignedUserUsername { get; set; } + + public string ErrorMessage { get; set; } + } +} diff --git a/Disco.Models/ClientServices/MacSecureEnrolResponse.cs b/Disco.Models/ClientServices/MacSecureEnrolResponse.cs new file mode 100644 index 00000000..c7c1cf0a --- /dev/null +++ b/Disco.Models/ClientServices/MacSecureEnrolResponse.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Disco.Models.ClientServices +{ + public class MacSecureEnrolResponse + { + public string DeviceComputerName { get; set; } + + public string DeviceAssignedUserDomain { get; set; } + public string DeviceAssignedUserName { get; set; } + public string DeviceAssignedUserSID { get; set; } + public string DeviceAssignedUserUsername { get; set; } + + public string ErrorMessage { get; set; } + + public static MacSecureEnrolResponse FromMacEnrolResponse(MacEnrolResponse mer) + { + return new MacSecureEnrolResponse + { + DeviceComputerName = mer.DeviceComputerName, + DeviceAssignedUserDomain = mer.DeviceAssignedUserDomain, + DeviceAssignedUserName = mer.DeviceAssignedUserName, + DeviceAssignedUserSID = mer.DeviceAssignedUserSID, + DeviceAssignedUserUsername = mer.DeviceAssignedUserUsername + }; + } + + } +} diff --git a/Disco.Models/ClientServices/ServiceBase.cs b/Disco.Models/ClientServices/ServiceBase.cs new file mode 100644 index 00000000..428e4ad3 --- /dev/null +++ b/Disco.Models/ClientServices/ServiceBase.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Disco.Models.ClientServices +{ + public abstract class ServiceBase + { + internal ServiceBase() + { + } + + public abstract string Feature { get; } + } +} diff --git a/Disco.Models/ClientServices/WhoAmI.cs b/Disco.Models/ClientServices/WhoAmI.cs new file mode 100644 index 00000000..403e30e8 --- /dev/null +++ b/Disco.Models/ClientServices/WhoAmI.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Disco.Models.ClientServices +{ + public class WhoAmI : ServiceBase + { + + public override string Feature + { + get { return "WhoAmI"; } + } + } +} diff --git a/Disco.Models/ClientServices/WhoAmIResponse.cs b/Disco.Models/ClientServices/WhoAmIResponse.cs new file mode 100644 index 00000000..0fb18b85 --- /dev/null +++ b/Disco.Models/ClientServices/WhoAmIResponse.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Disco.Models.ClientServices +{ + public class WhoAmIResponse + { + public string DisplayName { get; set; } + public string Type { get; set; } + public string Username { get; set; } + + public override string ToString() + { + return string.Format("{0} ({1})", DisplayName, Username); + } + } +} diff --git a/Disco.Models/Disco.Models.csproj b/Disco.Models/Disco.Models.csproj new file mode 100644 index 00000000..f7b59d36 --- /dev/null +++ b/Disco.Models/Disco.Models.csproj @@ -0,0 +1,114 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {FBC05512-FCCA-4B16-9E76-8C413C5DE6C9} + Library + Properties + Disco.Models + Disco.Models + v4.5 + 512 + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + false + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Disco.Models/Interop/ActiveDirectory/ActiveDirectoryMachineAccount.cs b/Disco.Models/Interop/ActiveDirectory/ActiveDirectoryMachineAccount.cs new file mode 100644 index 00000000..00eb8169 --- /dev/null +++ b/Disco.Models/Interop/ActiveDirectory/ActiveDirectoryMachineAccount.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Models.Repository; + +namespace Disco.Models.Interop.ActiveDirectory +{ + public class ActiveDirectoryMachineAccount + { + public string DistinguishedName { get; set; } + public string DnsName { get; set; } + public string Domain { get; set; } + public string Name { get; set; } + public Guid NetbootGUID { get; set; } + public string ObjectSid { get; set; } + public string Path { get; set; } + public string sAMAccountName { get; set; } + public bool IsCriticalSystemObject { get; set; } + public Dictionary LoadedProperties { get; set; } + + public string ParentDistinguishedName + { + get + { + // Determine Parent + if (!string.IsNullOrWhiteSpace(DistinguishedName)) + return DistinguishedName.Substring(0, DistinguishedName.IndexOf(",DC=")).Substring(DistinguishedName.IndexOf(",") + 1); + else + return null; + } + } + + public User ToRepositoryUser() + { + return new User + { + Id = this.sAMAccountName, + Type = "Computer", + DisplayName = this.Name + }; + } + + } +} diff --git a/Disco.Models/Interop/ActiveDirectory/ActiveDirectoryUserAccount.cs b/Disco.Models/Interop/ActiveDirectory/ActiveDirectoryUserAccount.cs new file mode 100644 index 00000000..6cfb1822 --- /dev/null +++ b/Disco.Models/Interop/ActiveDirectory/ActiveDirectoryUserAccount.cs @@ -0,0 +1,41 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Models.Repository; + +namespace Disco.Models.Interop.ActiveDirectory +{ + public class ActiveDirectoryUserAccount + { + public string DisplayName { get; set; } + public string DistinguishedName { get; set; } + public string Domain { get; set; } + public string Email { get; set; } + public string GivenName { get; set; } + public List Groups { get; set; } + public string Name { get; set; } + public string ObjectSid { get; set; } + public string Path { get; set; } + public string Phone { get; set; } + public string sAMAccountName { get; set; } + public string Surname { get; set; } + public string Type { get; set; } + public Dictionary LoadedProperties { get; set; } + + public User ToRepositoryUser() + { + return new User + { + Id = this.sAMAccountName, + DisplayName = this.DisplayName, + Surname = this.Surname, + GivenName = this.GivenName, + EmailAddress = this.Email, + PhoneNumber = this.Phone, + Type = this.Type + }; + } + + } +} diff --git a/Disco.Models/Properties/AssemblyInfo.cs b/Disco.Models/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..c9f40db8 --- /dev/null +++ b/Disco.Models/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using 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. +[assembly: AssemblyTitle("Disco - Data Models")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Disco")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// 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. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("44f11caf-e8d3-4c5a-9406-d84779e6d427")] + +// 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.*")] +[assembly: AssemblyVersion("1.2.0131.2002")] +[assembly: AssemblyFileVersion("1.2.0131.2002")] diff --git a/Disco.Models/Repository/ConfigurationItem.cs b/Disco.Models/Repository/ConfigurationItem.cs new file mode 100644 index 00000000..4e6dc9a7 --- /dev/null +++ b/Disco.Models/Repository/ConfigurationItem.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace Disco.Models.Repository +{ + [Table("Configuration")] + public class ConfigurationItem + { + [StringLength(80), Column(Order = 1), Key] + public string Key { get; set; } + [Column(Order = 0), StringLength(80), Key] + public string Scope { get; set; } + public string Value { get; set; } + } +} diff --git a/Disco.Models/Repository/Device/Device.cs b/Disco.Models/Repository/Device/Device.cs new file mode 100644 index 00000000..e34e547d --- /dev/null +++ b/Disco.Models/Repository/Device/Device.cs @@ -0,0 +1,67 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace Disco.Models.Repository +{ + public class Device + { + [Required(ErrorMessage="The Serial Number is Required"), Key, StringLength(60)] + public string SerialNumber { get; set; } + + [StringLength(40)] + public string AssetNumber { get; set; } + [StringLength(250)] + public string Location { get; set; } + + public int? DeviceModelId { get; set; } + [Range(1, int.MaxValue, ErrorMessage="A valid Device Profile is Required")] + public int DeviceProfileId { get; set; } + public int? DeviceBatchId { get; set; } + + [StringLength(24)] + public string ComputerName { get; set; } + public string AssignedUserId { get; set; } + public DateTime? LastNetworkLogonDate { get; set; } + + // 2012-06-21 - Removed + //[StringLength(24)] + //public string CertificateStoreReference { get; set; } + + public bool AllowUnauthenticatedEnrol { get; set; } + + public bool Active { get; set; } + + public DateTime CreatedDate { get; set; } + public DateTime? EnrolledDate { get; set; } + public DateTime? LastEnrolDate { get; set; } + public DateTime? DecommissionedDate { get; set; } + + [ForeignKey("DeviceModelId")] + public virtual DeviceModel DeviceModel { get; set; } + [ForeignKey("DeviceProfileId")] + public virtual DeviceProfile DeviceProfile { get; set; } + [ForeignKey("DeviceBatchId")] + public virtual DeviceBatch DeviceBatch { get; set; } + [ForeignKey("AssignedUserId")] + public virtual User AssignedUser { get; set; } + + public virtual IList DeviceUserAssignments { get; set; } + public virtual IList DeviceDetails { get; set; } + public virtual IList DeviceAttachments { get; set; } + + [InverseProperty("DeviceSerialNumber")] + public virtual IList Jobs { get; set; } + + public override string ToString() + { + if (DeviceModel != null) + return string.Format("{0} - {1}", this.DeviceModel, this.SerialNumber); + else + return this.SerialNumber; + } + } +} diff --git a/Disco.Models/Repository/Device/DeviceAttachment.cs b/Disco.Models/Repository/Device/DeviceAttachment.cs new file mode 100644 index 00000000..595e81b2 --- /dev/null +++ b/Disco.Models/Repository/Device/DeviceAttachment.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace Disco.Models.Repository +{ + public class DeviceAttachment + { + [Key] + public int Id { get; set; } + public string DeviceSerialNumber { get; set; } + [Required] + public string TechUserId { get; set; } + [StringLength(500), Required] + public string Filename { get; set; } + [Required, StringLength(500)] + public string MimeType { get; set; } + public DateTime Timestamp { get; set; } + [Required, StringLength(500)] + public string Comments { get; set; } + + public string DocumentTemplateId { get; set; } + + [InverseProperty("DeviceAttachments"), ForeignKey("DeviceSerialNumber")] + public virtual Device Device { get; set; } + + [ForeignKey("TechUserId")] + public virtual User TechUser { get; set; } + + [ForeignKey("DocumentTemplateId")] + public virtual DocumentTemplate DocumentTemplate { get; set; } + + } +} diff --git a/Disco.Models/Repository/Device/DeviceBatch.cs b/Disco.Models/Repository/Device/DeviceBatch.cs new file mode 100644 index 00000000..72c40cc1 --- /dev/null +++ b/Disco.Models/Repository/Device/DeviceBatch.cs @@ -0,0 +1,61 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace Disco.Models.Repository +{ + public class DeviceBatch + { + [Key] + public int Id { get; set; } + [StringLength(500)] + public string Name { get; set; } + + [Required, DisplayFormat(ApplyFormatInEditMode = true, ConvertEmptyStringToNull = true, DataFormatString = "{0:yyyy/MM/dd}", HtmlEncode = false)] + public DateTime PurchaseDate { get; set; } + [StringLength(200)] + public string Supplier { get; set; } + [DataType(DataType.MultilineText), StringLength(500)] + public string PurchaseDetails { get; set; } + + [DisplayFormat(ApplyFormatInEditMode = true, ConvertEmptyStringToNull = true, DataFormatString = "{0:c}")] + public decimal? UnitCost { get; set; } + public int? UnitQuantity { get; set; } + + public int? DefaultDeviceModelId { get; set; } + + [DisplayFormat(ApplyFormatInEditMode = true, ConvertEmptyStringToNull = true, DataFormatString = "{0:yyyy/MM/dd}", HtmlEncode = false)] + public DateTime? WarrantyValidUntil { get; set; } + [DataType(DataType.MultilineText)] + public string WarrantyDetails { get; set; } + + [DisplayFormat(ApplyFormatInEditMode = true, ConvertEmptyStringToNull = true, DataFormatString = "{0:yyyy/MM/dd}", HtmlEncode = false)] + public DateTime? InsuredDate { get; set; } + [StringLength(200)] + public string InsuranceSupplier { get; set; } + [DisplayFormat(ApplyFormatInEditMode = true, ConvertEmptyStringToNull = true, DataFormatString = "{0:yyyy/MM/dd}", HtmlEncode = false)] + public DateTime? InsuredUntil { get; set; } + [DataType(DataType.MultilineText)] + public string InsuranceDetails { get; set; } + + [DataType(DataType.MultilineText)] + public string Comments { get; set; } + + [ForeignKey("DefaultDeviceModelId")] + public virtual DeviceModel DefaultDeviceModel { get; set; } + + public virtual IList Devices { get; set; } + + public override string ToString() + { + if (string.IsNullOrWhiteSpace(this.Name)) + { + return string.Format("{0}: {1}", this.Id, this.PurchaseDate.ToLongDateString()); + } + return this.Name; + } + } +} diff --git a/Disco.Models/Repository/Device/DeviceCertificate.cs b/Disco.Models/Repository/Device/DeviceCertificate.cs new file mode 100644 index 00000000..1b8cfd3e --- /dev/null +++ b/Disco.Models/Repository/Device/DeviceCertificate.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace Disco.Models.Repository +{ + public class DeviceCertificate + { + [Key] + public int Id { get; set; } + + [Required, StringLength(64)] + public string ProviderId { get; set; } + public int ProviderIndex { get; set; } + + [StringLength(28)] + public string Name { get; set; } + [MaxLength(16384)] + public byte[] Content { get; set; } + public bool Enabled { get; set; } + + // Added 2011-10-24 G# + public DateTime? ExpirationDate { get; set; } + // Added 2011-10-24 G# + public DateTime? AllocatedDate { get; set; } + + public string DeviceSerialNumber { get; set; } + + [ForeignKey("DeviceSerialNumber")] + public virtual Device Device { get; set; } + } +} diff --git a/Disco.Models/Repository/Device/DeviceComponent.cs b/Disco.Models/Repository/Device/DeviceComponent.cs new file mode 100644 index 00000000..6fe2e617 --- /dev/null +++ b/Disco.Models/Repository/Device/DeviceComponent.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace Disco.Models.Repository +{ + public class DeviceComponent + { + [Key] + public int Id { get; set; } + public int? DeviceModelId { get; set; } + [StringLength(100)] + public string Description { get; set; } + public decimal Cost { get; set; } + + [ForeignKey("DeviceModelId")] + public virtual DeviceModel DeviceModel { get; set; } + + public virtual IList JobSubTypes { get; set; } + } +} diff --git a/Disco.Models/Repository/Device/DeviceDetail.cs b/Disco.Models/Repository/Device/DeviceDetail.cs new file mode 100644 index 00000000..696a2168 --- /dev/null +++ b/Disco.Models/Repository/Device/DeviceDetail.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace Disco.Models.Repository +{ + public class DeviceDetail + { + [Column(Order = 0), Key] + public string DeviceSerialNumber { get; set; } + + [Key, StringLength(100), Column(Order = 2)] + public string Key { get; set; } + + [Column(Order = 1), StringLength(100), Key] + public string Scope { get; set; } + + public string Value { get; set; } + + [ForeignKey("DeviceSerialNumber")] + public virtual Device Device { get; set; } + } +} diff --git a/Disco.Models/Repository/Device/DeviceModel.cs b/Disco.Models/Repository/Device/DeviceModel.cs new file mode 100644 index 00000000..30021a59 --- /dev/null +++ b/Disco.Models/Repository/Device/DeviceModel.cs @@ -0,0 +1,49 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel.DataAnnotations; + +namespace Disco.Models.Repository +{ + public class DeviceModel + { + [Key] + public int Id { get; set; } + [StringLength(500)] + public string Description { get; set; } + + [StringLength(200)] + public string Manufacturer { get; set; } + [StringLength(200)] + public string Model { get; set; } + [StringLength(40)] + public string ModelType { get; set; } + + // Remove Reliance On! + // Removed: 2013-01-14 G# + //[Obsolete("Image to be removed from the Database")] + //public byte[] Image { get; set; } + + [DisplayFormat(ApplyFormatInEditMode = true, ConvertEmptyStringToNull = true, DataFormatString = "{0:yyyy/MM/dd}", HtmlEncode = false)] + public DateTime? DefaultPurchaseDate { get; set; } + [DisplayFormat(ApplyFormatInEditMode = true, ConvertEmptyStringToNull = true, DataFormatString = "{0:c}")] + public decimal? DeviceCost { get; set; } + + [StringLength(40)] + public string DefaultWarrantyProvider { get; set; } + + public virtual IList DeviceComponents { get; set; } + + public virtual IList Devices { get; set; } + + public override string ToString() + { + if (string.IsNullOrWhiteSpace(this.Description)) + { + return string.Format("{0} {1}", this.Manufacturer, this.Model); + } + return this.Description; + } + } +} diff --git a/Disco.Models/Repository/Device/DeviceProfile.cs b/Disco.Models/Repository/Device/DeviceProfile.cs new file mode 100644 index 00000000..b57f6e98 --- /dev/null +++ b/Disco.Models/Repository/Device/DeviceProfile.cs @@ -0,0 +1,83 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.ComponentModel; +using System.Linq.Expressions; + +namespace Disco.Models.Repository +{ + public partial class DeviceProfile + { + [Key] + public int Id { get; set; } + + [Required, StringLength(100)] + public string Name { get; set; } + + [Required, StringLength(10)] + public string ShortName { get; set; } + + [StringLength(500)] + public string Description { get; set; } + + public int? DefaultOrganisationAddress { get; set; } + + // Migration from DeviceProfile Configuration + // 2012-06-14 G# + [Required()] + public string ComputerNameTemplate { get; set; } + public enum DistributionTypes : int + { + OneToMany = 0, + OneToOne = 1 + } + [Column("DistributionType"), EditorBrowsable(EditorBrowsableState.Never)] + public int DistributionTypeDb { get; set; } + [NotMapped] + public DistributionTypes DistributionType + { + get + { + return (DistributionTypes)this.DistributionTypeDb; + } + set + { + this.DistributionTypeDb = (int)value; + } + } + public string OrganisationalUnit { get; set; } + // End Migration + + // 2012-06-14 G# + public bool EnforceComputerNameConvention { get; set; } + public bool EnforceOrganisationalUnit { get; set; } + + // 2012-06-28 G# + public bool ProvisionADAccount { get; set; } + + public virtual IList Devices { get; set; } + + public override string ToString() + { + if (string.IsNullOrEmpty(this.ShortName)) + { + return this.Name; + } + return string.Format("{0} ({1})", this.Name, this.ShortName); + } + + // 2012-06-21 + // public bool AllocateCertificate { get; set; } // Renamed from 'AllocateWirelessCertificate' + [StringLength(64)] + public string CertificateProviderId { get; set; } + } + public partial class DeviceProfile + { + public class PropertyAccessExpressions { + public static readonly Expression> DistributionTypeDb = x => x.DistributionTypeDb; + } + } +} diff --git a/Disco.Models/Repository/Device/DeviceUserAssignment.cs b/Disco.Models/Repository/Device/DeviceUserAssignment.cs new file mode 100644 index 00000000..c0bca3d1 --- /dev/null +++ b/Disco.Models/Repository/Device/DeviceUserAssignment.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace Disco.Models.Repository +{ + public class DeviceUserAssignment + { + [Key, Column(Order = 0)] + public string DeviceSerialNumber { get; set; } + public string AssignedUserId { get; set; } + + [Column(Order = 1), Key] + public DateTime AssignedDate { get; set; } + public DateTime? UnassignedDate { get; set; } + + [ForeignKey("AssignedUserId")] + public virtual User AssignedUser { get; set; } + + [ForeignKey("DeviceSerialNumber")] + public virtual Device Device { get; set; } + } +} diff --git a/Disco.Models/Repository/DocumentTemplate/DocumentTemplate.cs b/Disco.Models/Repository/DocumentTemplate/DocumentTemplate.cs new file mode 100644 index 00000000..3cda79e2 --- /dev/null +++ b/Disco.Models/Repository/DocumentTemplate/DocumentTemplate.cs @@ -0,0 +1,44 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace Disco.Models.Repository +{ + public class DocumentTemplate + { + public const string PdfMimeType = "application/pdf"; + + [StringLength(30), Required, Key] + public string Id { get; set; } + + [StringLength(250), Required] + public string Description { get; set; } + [Required, StringLength(6)] + public string Scope { get; set; } + [StringLength(250)] + public string FilterExpression { get; set; } + + // Feature Request 2012-05-10 by G#: https://disco.uservoice.com/forums/159707-feedback/suggestions/2811092-document-template-option-flatten-form-on-generate + public bool FlattenForm { get; set; } + // End Feature Request + + [InverseProperty("DocumentTemplates")] + public virtual IList JobSubTypes { get; set; } + + public static class DocumentTemplateScopes + { + public const string Device = "Device"; + public const string Job = "Job"; + public const string User = "User"; + + public static List ToList() + { + return new List { Device, Job, User }; + } + } + + } +} diff --git a/Disco.Models/Repository/Job/Job.cs b/Disco.Models/Repository/Job/Job.cs new file mode 100644 index 00000000..ba121484 --- /dev/null +++ b/Disco.Models/Repository/Job/Job.cs @@ -0,0 +1,132 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace Disco.Models.Repository +{ + public class Job + { + [Key] + public int Id { get; set; } + [Required] + public string JobTypeId { get; set; } + + public string DeviceSerialNumber { get; set; } + public string UserId { get; set; } + + [Required] + public string OpenedTechUserId { get; set; } + + public DateTime OpenedDate { get; set; } + [DisplayFormat(ApplyFormatInEditMode = true, ConvertEmptyStringToNull = true, DataFormatString = "{0:yyyy/MM/dd hh:mm tt}", HtmlEncode = false)] + public DateTime? ExpectedClosedDate { get; set; } + public string ClosedTechUserId { get; set; } + public DateTime? ClosedDate { get; set; } + + public long? Flags { get; set; } + + [Display(Name = "Technician Held Device")] + public DateTime? DeviceHeld { get; set; } + public string DeviceHeldTechUserId { get; set; } + [StringLength(100)] + public string DeviceHeldLocation { get; set; } + + public DateTime? DeviceReadyForReturn { get; set; } + public string DeviceReadyForReturnTechUserId { get; set; } + public DateTime? DeviceReturnedDate { get; set; } + public string DeviceReturnedTechUserId { get; set; } + + public DateTime? WaitingForUserAction { get; set; } + + [ForeignKey("JobTypeId")] + public virtual JobType JobType { get; set; } + public virtual IList JobSubTypes { get; set; } + + [ForeignKey("DeviceSerialNumber")] + public virtual Device Device { get; set; } + [ForeignKey("UserId")] + public virtual User User { get; set; } + + [ForeignKey("OpenedTechUserId")] + public virtual User OpenedTechUser { get; set; } + [ForeignKey("ClosedTechUserId")] + public virtual User ClosedTechUser { get; set; } + + [ForeignKey("DeviceHeldTechUserId")] + public virtual User DeviceHeldTechUser { get; set; } + [ForeignKey("DeviceReadyForReturnTechUserId")] + public virtual User DeviceReadyForReturnTechUser { get; set; } + [ForeignKey("DeviceReturnedTechUserId")] + public virtual User DeviceReturnedTechUser { get; set; } + + //// Added 2012-10-23 G# - DBv5 Migration + //public virtual IList JobAssignments { get; set; } + //// End Added 2012-10-23 G# - DBv5 Migration + + public virtual IList JobAttachments { get; set; } + public virtual IList JobComponents { get; set; } + public virtual IList JobLogs { get; set; } + + public virtual JobMetaInsurance JobMetaInsurance { get; set; } + public virtual JobMetaWarranty JobMetaWarranty { get; set; } + public virtual JobMetaNonWarranty JobMetaNonWarranty { get; set; } + + #region Helper Members + public decimal JobComponentsTotalCost() + { + if (this.JobComponents != null) + { + return this.JobComponents.Sum(jc => jc.Cost); + } + return decimal.Zero; + } + #endregion + + public static class JobStatusIds + { + public const string AwaitingAccountingPayment = "AwaitingAccountingPayment"; + public const string AwaitingAccountingCharge = "AwaitingAccountingCharge"; + public const string AwaitingDeviceReturn = "AwaitingDeviceReturn"; + public const string AwaitingInsuranceProcessing = "AwaitingInsuranceProcessing"; + public const string AwaitingRepairs = "AwaitingRepairs"; + public const string AwaitingUserAction = "AwaitingUserAction"; + public const string AwaitingWarrantyRepair = "AwaitingWarrantyRepair"; + public const string Closed = "Closed"; + public const string Open = "Open"; + } + + [Flags] + public enum UserManagementFlags : long + { + [Display(GroupName = JobSubType.UserManagementJobSubTypes.Infringement, Name = "Content - Games")] + Infringement_ContentGames = 1, + [Display(GroupName = JobSubType.UserManagementJobSubTypes.Infringement, Name = "Content - Illegal")] + Infringement_ContentIllegal = 2, + [Display(GroupName = JobSubType.UserManagementJobSubTypes.Infringement, Name = "Content - Violence")] + Infringement_ContentViolence = 4, + [Display(GroupName = JobSubType.UserManagementJobSubTypes.Infringement, Name = "Content - Pornography")] + Infringement_ContentPornography = 8, + [Display(GroupName = JobSubType.UserManagementJobSubTypes.Infringement, Name = "Hacking")] + Infringement_Hacking = 16, + [Display(GroupName = JobSubType.UserManagementJobSubTypes.Infringement, Name = "Proxy Bypass")] + Infringement_ProxyBypass = 32, + [Display(GroupName = JobSubType.UserManagementJobSubTypes.Infringement, Name = "Breach Usage Agreement")] + Infringement_BreachUsageAgreement = 64, + [Display(GroupName = JobSubType.UserManagementJobSubTypes.Infringement, Name = "Breach Financial Agreement")] + Infringement_BreachFinancialAgreement = 128, + [Display(GroupName = JobSubType.UserManagementJobSubTypes.Contact, Name = "Phone")] + Contact_Phone = 4294967296, + [Display(GroupName = JobSubType.UserManagementJobSubTypes.Contact, Name = "Email")] + Contact_Email = 8589934592, + [Display(GroupName = JobSubType.UserManagementJobSubTypes.Contact, Name = "In Person")] + Contact_InPerson = 17179869184, + [Display(GroupName = JobSubType.UserManagementJobSubTypes.Contact, Name = "SMS")] + Contact_SMS = 34359738368, + [Display(GroupName = JobSubType.UserManagementJobSubTypes.Contact, Name = "Mail")] + Contact_Mail = 68719476736, + } + } +} diff --git a/Disco.Models/Repository/Job/JobAssignment.cs b/Disco.Models/Repository/Job/JobAssignment.cs new file mode 100644 index 00000000..6de71101 --- /dev/null +++ b/Disco.Models/Repository/Job/JobAssignment.cs @@ -0,0 +1,30 @@ +//using System; +//using System.Collections.Generic; +//using System.Linq; +//using System.Text; +//using System.ComponentModel.DataAnnotations; +//using System.ComponentModel.DataAnnotations.Schema; + +//namespace Disco.Models.Repository +//{ +// // Added 2012-10-23 G# - DBv5 Migration +// public class JobAssignment +// { +// [Key, Required, ColumnAttribute(Order = 0)] +// public int JobId { get; set; } +// [Key, Required, ColumnAttribute(Order = 1)] +// public string TechUserId { get; set; } +// [Key, Required, ColumnAttribute(Order = 2)] +// public DateTime AssignedDate { get; set; } + +// public DateTime? UnassignedDate { get; set; } + +// public DateTime? TargetCompletionDate { get; set; } + +// [ForeignKey("JobId"), InverseProperty("JobAssignments")] +// public virtual Job Job { get; set; } + +// [ForeignKey("TechUserId")] +// public User TechUser { get; set; } +// } +//} diff --git a/Disco.Models/Repository/Job/JobAttachment.cs b/Disco.Models/Repository/Job/JobAttachment.cs new file mode 100644 index 00000000..2f046560 --- /dev/null +++ b/Disco.Models/Repository/Job/JobAttachment.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace Disco.Models.Repository +{ + public class JobAttachment + { + [Key] + public int Id { get; set; } + public int JobId { get; set; } + + [Required] + public string TechUserId { get; set; } + [Required, StringLength(500)] + public string Filename { get; set; } + [Required, StringLength(500)] + public string MimeType { get; set; } + public DateTime Timestamp { get; set; } + [StringLength(500), Required] + public string Comments { get; set; } + + public string DocumentTemplateId { get; set; } + + [ForeignKey("JobId"), InverseProperty("JobAttachments")] + public virtual Job Job { get; set; } + + [ForeignKey("TechUserId")] + public virtual User TechUser { get; set; } + + [ForeignKey("DocumentTemplateId")] + public virtual DocumentTemplate DocumentTemplate { get; set; } + } +} diff --git a/Disco.Models/Repository/Job/JobComponent.cs b/Disco.Models/Repository/Job/JobComponent.cs new file mode 100644 index 00000000..683c45c2 --- /dev/null +++ b/Disco.Models/Repository/Job/JobComponent.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace Disco.Models.Repository +{ + public class JobComponent + { + [Key] + public int Id { get; set; } + public int JobId { get; set; } + + [Required] + public string TechUserId { get; set; } + [StringLength(500)] + public string Description { get; set; } + public decimal Cost { get; set; } + + [ForeignKey("JobId")] + public virtual Job Job { get; set; } + + [ForeignKey("TechUserId")] + public virtual User TechUser { get; set; } + } +} diff --git a/Disco.Models/Repository/Job/JobLog.cs b/Disco.Models/Repository/Job/JobLog.cs new file mode 100644 index 00000000..0610ffc2 --- /dev/null +++ b/Disco.Models/Repository/Job/JobLog.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace Disco.Models.Repository +{ + public class JobLog + { + [Key] + public int Id { get; set; } + public int JobId { get; set; } + + [Required] + public string TechUserId { get; set; } + public DateTime Timestamp { get; set; } + [Required] + public string Comments { get; set; } + + [ForeignKey("JobId")] + public Job Job { get; set; } + + [ForeignKey("TechUserId")] + public User TechUser { get; set; } + } +} diff --git a/Disco.Models/Repository/Job/JobMeta/JobMetaInsurance.cs b/Disco.Models/Repository/Job/JobMeta/JobMetaInsurance.cs new file mode 100644 index 00000000..e7b595f0 --- /dev/null +++ b/Disco.Models/Repository/Job/JobMeta/JobMetaInsurance.cs @@ -0,0 +1,68 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace Disco.Models.Repository +{ + public class JobMetaInsurance + { + [Required, Key] + public int JobId { get; set; } + + [DisplayFormat(ApplyFormatInEditMode = true, ConvertEmptyStringToNull = true, DataFormatString = "{0:yyyy/MM/dd hh:mm tt}", HtmlEncode = false)] + public DateTime? LossOrDamageDate { get; set; } + + [StringLength(200)] + public string EventLocation { get; set; } + + [DataType(DataType.MultilineText)] + public string Description { get; set; } + + [Display(Name = "Caused by Third Party")] + public bool ThirdPartyCaused { get; set; } + [StringLength(200)] + public string ThirdPartyCausedName { get; set; } + [DataType(DataType.MultilineText), StringLength(600)] + public string ThirdPartyCausedWhy { get; set; } + + [StringLength(1200), DataType(DataType.MultilineText)] + public string WitnessesNamesAddresses { get; set; } + + [StringLength(200)] + public string BurglaryTheftMethodOfEntry { get; set; } + + [DisplayFormat(ApplyFormatInEditMode = true, ConvertEmptyStringToNull = true, DataFormatString = "{0:yyyy/MM/dd hh:mm tt}", HtmlEncode = false)] + public DateTime? PropertyLastSeenDate { get; set; } + + [Display(Name = "Police Notified")] + public bool PoliceNotified { get; set; } + [StringLength(200)] + public string PoliceNotifiedStation { get; set; } + [DisplayFormat(ApplyFormatInEditMode = true, ConvertEmptyStringToNull = true, DataFormatString = "{0:yyyy/MM/dd}", HtmlEncode = false)] + public DateTime? PoliceNotifiedDate { get; set; } + [StringLength(400)] + public string PoliceNotifiedCrimeReportNo { get; set; } + + [DataType(DataType.MultilineText), StringLength(800)] + public string RecoverReduceAction { get; set; } + + [StringLength(500)] + public string OtherInterestedParties { get; set; } + + [DisplayFormat(ApplyFormatInEditMode = true, ConvertEmptyStringToNull = true, DataFormatString = "{0:yyyy/MM/dd}", HtmlEncode = false)] + public DateTime? DateOfPurchase { get; set; } + + [DisplayFormat(ApplyFormatInEditMode = true, ConvertEmptyStringToNull = true, DataFormatString = "{0:yyyy/MM/dd hh:mm tt}", HtmlEncode = false)] + public DateTime? ClaimFormSentDate { get; set; } + public string ClaimFormSentUserId { get; set; } + + [Required, ForeignKey("JobId")] + public virtual Job Job { get; set; } + + [ForeignKey("ClaimFormSentUserId")] + public virtual User ClaimFormSentUser { get; set; } + } +} diff --git a/Disco.Models/Repository/Job/JobMeta/JobMetaNonWarranty.cs b/Disco.Models/Repository/Job/JobMeta/JobMetaNonWarranty.cs new file mode 100644 index 00000000..95f68fdc --- /dev/null +++ b/Disco.Models/Repository/Job/JobMeta/JobMetaNonWarranty.cs @@ -0,0 +1,67 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace Disco.Models.Repository +{ + public class JobMetaNonWarranty + { + [Key, Required] + public int JobId { get; set; } + + public bool IsInsuranceClaim { get; set; } + + // Feature Request 2012-05-10 by Michael E: https://disco.uservoice.com/forums/159707-feedback/suggestions/2811092-document-template-option-flatten-form-on-generate + [DisplayFormat(ApplyFormatInEditMode = true, ConvertEmptyStringToNull = true, DataFormatString = "{0:yyyy/MM/dd hh:mm tt}", HtmlEncode = false)] + public DateTime? AccountingChargeRequiredDate { get; set; } + [ForeignKey("AccountingChargeRequiredUserId")] + public virtual User AccountingChargeRequiredUser { get; set; } + public string AccountingChargeRequiredUserId { get; set; } + // End Feature Request + + [DisplayFormat(ApplyFormatInEditMode = true, ConvertEmptyStringToNull = true, DataFormatString = "{0:yyyy/MM/dd hh:mm tt}", HtmlEncode = false)] + public DateTime? AccountingChargeAddedDate { get; set; } + [ForeignKey("AccountingChargeAddedUserId")] + public virtual User AccountingChargeAddedUser { get; set; } + public string AccountingChargeAddedUserId { get; set; } + + [DisplayFormat(ApplyFormatInEditMode = true, ConvertEmptyStringToNull = true, DataFormatString = "{0:yyyy/MM/dd hh:mm tt}", HtmlEncode = false)] + public DateTime? AccountingChargePaidDate { get; set; } + [ForeignKey("AccountingChargePaidUserId")] + public virtual User AccountingChargePaidUser { get; set; } + public string AccountingChargePaidUserId { get; set; } + + [DisplayFormat(ApplyFormatInEditMode = true, ConvertEmptyStringToNull = true, DataFormatString = "{0:yyyy/MM/dd hh:mm tt}", HtmlEncode = false)] + public DateTime? PurchaseOrderRaisedDate { get; set; } + [ForeignKey("PurchaseOrderRaisedUserId")] + public virtual User PurchaseOrderRaisedUser { get; set; } + public string PurchaseOrderRaisedUserId { get; set; } + [StringLength(20)] + public string PurchaseOrderReference { get; set; } + [DisplayFormat(ApplyFormatInEditMode = true, ConvertEmptyStringToNull = true, DataFormatString = "{0:yyyy/MM/dd hh:mm tt}", HtmlEncode = false)] + public DateTime? PurchaseOrderSentDate { get; set; } + [ForeignKey("PurchaseOrderSentUserId")] + public virtual User PurchaseOrderSentUser { get; set; } + public string PurchaseOrderSentUserId { get; set; } + [DisplayFormat(ApplyFormatInEditMode = true, ConvertEmptyStringToNull = true, DataFormatString = "{0:yyyy/MM/dd hh:mm tt}", HtmlEncode = false)] + public DateTime? InvoiceReceivedDate { get; set; } + [ForeignKey("InvoiceReceivedUserId")] + public virtual User InvoiceReceivedUser { get; set; } + public string InvoiceReceivedUserId { get; set; } + + [StringLength(100)] + public string RepairerName { get; set; } + [DisplayFormat(ApplyFormatInEditMode = true, ConvertEmptyStringToNull = true, DataFormatString = "{0:yyyy/MM/dd hh:mm tt}", HtmlEncode = false)] + public DateTime? RepairerLoggedDate { get; set; } + [StringLength(100)] + public string RepairerReference { get; set; } + [DisplayFormat(ApplyFormatInEditMode = true, ConvertEmptyStringToNull = true, DataFormatString = "{0:yyyy/MM/dd hh:mm tt}", HtmlEncode = false)] + public DateTime? RepairerCompletedDate { get; set; } + + [ForeignKey("JobId"), Required] + public virtual Job Job { get; set; } + } +} diff --git a/Disco.Models/Repository/Job/JobMeta/JobMetaWarranty.cs b/Disco.Models/Repository/Job/JobMeta/JobMetaWarranty.cs new file mode 100644 index 00000000..a78a3686 --- /dev/null +++ b/Disco.Models/Repository/Job/JobMeta/JobMetaWarranty.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace Disco.Models.Repository +{ + public class JobMetaWarranty + { + [Required, Key] + public int JobId { get; set; } + + [StringLength(100)] + public string ExternalName { get; set; } + [DisplayFormat(ApplyFormatInEditMode = true, ConvertEmptyStringToNull = true, DataFormatString = "{0:yyyy/MM/dd hh:mm tt}", HtmlEncode = false)] + public DateTime? ExternalLoggedDate { get; set; } + [StringLength(100)] + public string ExternalReference { get; set; } + [DisplayFormat(ApplyFormatInEditMode = true, ConvertEmptyStringToNull = true, DataFormatString = "{0:yyyy/MM/dd hh:mm tt}", HtmlEncode = false)] + public DateTime? ExternalCompletedDate { get; set; } + + [ForeignKey("JobId"), Required] + public virtual Job Job { get; set; } + } +} diff --git a/Disco.Models/Repository/Job/JobSubType.cs b/Disco.Models/Repository/Job/JobSubType.cs new file mode 100644 index 00000000..48157aea --- /dev/null +++ b/Disco.Models/Repository/Job/JobSubType.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace Disco.Models.Repository +{ + public class JobSubType + { + [Key, StringLength(20), Column(Order = 0)] + public string Id { get; set; } + [Key, Required, Column(Order = 1)] + public string JobTypeId { get; set; } + [Required, StringLength(100)] + public string Description { get; set; } + + public virtual IList AttachmentTypes { get; set; } + public virtual IList DeviceComponents { get; set; } + + [ForeignKey("JobTypeId")] + public virtual JobType JobType { get; set; } + public virtual IList Jobs { get; set; } + + public static class UserManagementJobSubTypes + { + public const string Infringement = "Infringement"; + public const string Contact = "Contact"; + } + + public override string ToString() + { + return this.Description; + } + } +} diff --git a/Disco.Models/Repository/Job/JobType.cs b/Disco.Models/Repository/Job/JobType.cs new file mode 100644 index 00000000..03663f9d --- /dev/null +++ b/Disco.Models/Repository/Job/JobType.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel.DataAnnotations; + +namespace Disco.Models.Repository +{ + public class JobType + { + [StringLength(5), Key] + public string Id { get; set; } + [StringLength(100)] + public string Description { get; set; } + + public virtual IList JobSubTypes { get; set; } + + public override string ToString() + { + return this.Description; + } + + public static class JobTypeIds + { + public const string HMisc = "HMisc"; + public const string HNWar = "HNWar"; + public const string HWar = "HWar"; + public const string SApp = "SApp"; + public const string SImg = "SImg"; + public const string SOS = "SOS"; + public const string UMgmt = "UMgmt"; + } + } +} diff --git a/Disco.Models/Repository/User/User.cs b/Disco.Models/Repository/User/User.cs new file mode 100644 index 00000000..076cc0c4 --- /dev/null +++ b/Disco.Models/Repository/User/User.cs @@ -0,0 +1,79 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace Disco.Models.Repository +{ + public class User + { + [StringLength(50), Key] + public string Id { get; set; } + + [StringLength(200)] + public string DisplayName { get; set; } + [StringLength(200)] + public string Surname { get; set; } + [StringLength(200)] + public string GivenName { get; set; } + + [StringLength(8)] + public string Type { get; set; } + [StringLength(100)] + public string PhoneNumber { get; set; } + [StringLength(150)] + public string EmailAddress { get; set; } + + public virtual IList UserDetails { get; set; } + public virtual IList UserAttachments { get; set; } + public virtual IList DeviceUserAssignments { get; set; } + [InverseProperty("UserId")] + public virtual IList Jobs { get; set; } + + //#region Helper Members + //[NotMapped, XmlIgnore, ScriptIgnore] + //public List CurrentDeviceUserAssignments + //{ + // get + // { + // return this.DeviceUserAssignments.Where(dua => !dua.UnassignedDate.HasValue).ToList(); + // } + //} + //#endregion + + public override string ToString() + { + return string.Format("{0} ({1})", this.DisplayName, this.Id); + } + + public void UpdateSelf(User u) + { + if (!this.Id.Equals(u.Id, StringComparison.InvariantCultureIgnoreCase)) + throw new ArgumentException("User Id's do not match", "u"); + + if (this.Surname != u.Surname) + this.Surname = u.Surname; + if (this.GivenName != u.GivenName) + this.GivenName = u.GivenName; + if (this.DisplayName != u.DisplayName) + this.DisplayName = u.DisplayName; + if (this.EmailAddress != u.EmailAddress) + this.EmailAddress = u.EmailAddress; + if (this.PhoneNumber != u.PhoneNumber) + this.PhoneNumber = u.PhoneNumber; + if (this.Type != u.Type) + this.Type = u.Type; + } + + public static class Types + { + public const string Admin = "Admin"; + public const string Computer = "Computer"; + public const string Staff = "Staff"; + public const string Student = "Student"; + } + + } +} diff --git a/Disco.Models/Repository/User/UserAttachment.cs b/Disco.Models/Repository/User/UserAttachment.cs new file mode 100644 index 00000000..51e22a6d --- /dev/null +++ b/Disco.Models/Repository/User/UserAttachment.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace Disco.Models.Repository +{ + public class UserAttachment + { + [Key] + public int Id { get; set; } + public string UserId { get; set; } + [Required] + public string TechUserId { get; set; } + [Required, StringLength(500)] + public string Filename { get; set; } + [StringLength(500), Required] + public string MimeType { get; set; } + public DateTime Timestamp { get; set; } + [Required, StringLength(500)] + public string Comments { get; set; } + + public string DocumentTemplateId { get; set; } + + [ForeignKey("UserId"), InverseProperty("UserAttachments")] + public virtual User User { get; set; } + + [ForeignKey("TechUserId")] + public virtual User TechUser { get; set; } + + [ForeignKey("DocumentTemplateId")] + public virtual DocumentTemplate DocumentTemplate { get; set; } + } +} diff --git a/Disco.Models/Repository/User/UserDetail.cs b/Disco.Models/Repository/User/UserDetail.cs new file mode 100644 index 00000000..ea429a11 --- /dev/null +++ b/Disco.Models/Repository/User/UserDetail.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace Disco.Models.Repository +{ + public class UserDetail + { + [Key, Column(Order = 0)] + public string UserId { get; set; } + + [Column(Order = 1), Key, StringLength(100)] + public string Scope { get; set; } + + [Key, Column(Order = 2), StringLength(100)] + public string Key { get; set; } + + public string Value { get; set; } + + [ForeignKey("UserId")] + public virtual User User { get; set; } + } +} diff --git a/Disco.Services/App.config b/Disco.Services/App.config new file mode 100644 index 00000000..f1f62828 --- /dev/null +++ b/Disco.Services/App.config @@ -0,0 +1,17 @@ + + + + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/Disco.Services/App_Start/RazorGeneratorMvcStart.cs b/Disco.Services/App_Start/RazorGeneratorMvcStart.cs new file mode 100644 index 00000000..42440fc8 --- /dev/null +++ b/Disco.Services/App_Start/RazorGeneratorMvcStart.cs @@ -0,0 +1,21 @@ +using System.Web; +using System.Web.Mvc; +using System.Web.WebPages; +using RazorGenerator.Mvc; + +[assembly: WebActivator.PostApplicationStartMethod(typeof(Disco.Services.App_Start.RazorGeneratorMvcStart), "Start")] + +namespace Disco.Services.App_Start { + public static class RazorGeneratorMvcStart { + public static void Start() { + var engine = new PrecompiledMvcEngine(typeof(RazorGeneratorMvcStart).Assembly) { + UsePhysicalViewsIfNewer = HttpContext.Current.Request.IsLocal + }; + + ViewEngines.Engines.Insert(0, engine); + + // StartPage lookups are done by WebPages. + VirtualPathFactoryManager.RegisterVirtualPathFactory(engine); + } + } +} diff --git a/Disco.Services/Disco.Services.csproj b/Disco.Services/Disco.Services.csproj new file mode 100644 index 00000000..dcb5df4d --- /dev/null +++ b/Disco.Services/Disco.Services.csproj @@ -0,0 +1,186 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {B80A737F-BD6A-4986-9182-DD7B932BD950} + Library + Properties + Disco.Services + Disco.Services + v4.5 + 512 + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + false + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + false + + + + ..\packages\EntityFramework.5.0.0\lib\net45\EntityFramework.dll + + + True + ..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll + + + False + ..\packages\Newtonsoft.Json.4.5.11\lib\net40\Newtonsoft.Json.dll + + + False + ..\..\Resources\Libraries\Quartz\Quartz.dll + + + False + ..\packages\RazorGenerator.Mvc.1.5.0.0\lib\net40\RazorGenerator.Mvc.dll + + + False + ..\packages\SignalR.Server.0.5.3\lib\net40\SignalR.dll + + + False + ..\packages\SignalR.Hosting.AspNet.0.5.3\lib\net45\SignalR.Hosting.AspNet.dll + + + ..\packages\SignalR.Hosting.Common.0.5.3\lib\net40\SignalR.Hosting.Common.dll + + + + + + + True + ..\packages\Microsoft.SqlServer.Compact.4.0.8876.1\lib\net40\System.Data.SqlServerCe.dll + + + + + + + + + + + + + False + ..\packages\WebActivator.1.5.3\lib\net40\WebActivator.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {85A6BD19-2C64-4746-8F2C-A68A86E8C2D7} + Disco.Data + + + {FBC05512-FCCA-4B16-9E76-8C413C5DE6C9} + Disco.Models + + + + + + + + + + + + + + + + if not exist "$(TargetDir)x86" md "$(TargetDir)x86" + xcopy /s /y "$(SolutionDir)packages\Microsoft.SqlServer.Compact.4.0.8876.1\NativeBinaries\x86\*.*" "$(TargetDir)x86" + if not exist "$(TargetDir)amd64" md "$(TargetDir)amd64" + xcopy /s /y "$(SolutionDir)packages\Microsoft.SqlServer.Compact.4.0.8876.1\NativeBinaries\amd64\*.*" "$(TargetDir)amd64" + + + \ No newline at end of file diff --git a/Disco.Services/Logging/LogBase.cs b/Disco.Services/Logging/LogBase.cs new file mode 100644 index 00000000..14060559 --- /dev/null +++ b/Disco.Services/Logging/LogBase.cs @@ -0,0 +1,43 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Disco.Services.Logging +{ + public abstract class LogBase + { + private Dictionary _EventTypes; + + public LogBase() + { + // Cache Event Types + _EventTypes = this.LoadEventTypes().ToDictionary(et => et.Id); + } + + public abstract int ModuleId { get; } + public abstract string ModuleName { get; } + public abstract string ModuleDescription { get; } + protected abstract List LoadEventTypes(); + + public Dictionary EventTypes + { + get + { + return _EventTypes; + } + } + protected void Log(int EventTypeId, params object[] Args) + { + LogContext.Current.Log(this.ModuleId, EventTypeId, Args); + } + public string LiveLogGroupName + { + get + { + return this.ModuleName; + } + } + + } +} diff --git a/Disco.Services/Logging/LogContext.cs b/Disco.Services/Logging/LogContext.cs new file mode 100644 index 00000000..ac5c856b --- /dev/null +++ b/Disco.Services/Logging/LogContext.cs @@ -0,0 +1,314 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Data.Repository; +using System.IO; +using System.Management; +using System.Diagnostics; +using System.Data.SqlServerCe; +using System.Data.EntityClient; +using System.Data.Entity; +using Quartz; +using Quartz.Impl; +using Quartz.Impl.Triggers; +using Newtonsoft.Json; + +namespace Disco.Services.Logging +{ + public class LogContext + { + public static Dictionary LogModules { get; private set; } + private static object _LogModulesLock = new object(); + + private static LogContext _Current; + private static object _CurrentLock = new Object(); + public static LogContext Current + { + get + { + lock (_CurrentLock) + { + if (_Current == null) + throw new InvalidOperationException("Logging Context has not been Initialized"); + return _Current; + } + } + private set + { + lock (_CurrentLock) + { + _Current = value; + } + } + } + + private static void InitalizeModules() + { + if (LogModules == null) + { + lock (_LogModulesLock) + { + if (LogModules == null) + { + LogModules = new Dictionary(); + // Load all LogModules (Only from Disco Assemblies) + var appDomain = AppDomain.CurrentDomain; + + var logModuleTypes = (from a in appDomain.GetAssemblies() + where !a.GlobalAssemblyCache && !a.IsDynamic && a.FullName.StartsWith("Disco.", StringComparison.InvariantCultureIgnoreCase) + from type in a.GetTypes() + where typeof(LogBase).IsAssignableFrom(type) && !type.IsAbstract + select type); + foreach (var logModuleType in logModuleTypes) + { + var instance = (LogBase)Activator.CreateInstance(logModuleType); + LogModules[instance.ModuleId] = instance; + } + } + } + } + } + + private static void InitalizeDatabase(Targets.LogPersistContext logDbContext) + { + // Add Modules + var existingModules = logDbContext.Modules.Include("EventTypes").ToDictionary(m => m.Id); + foreach (var module in LogModules) + { + // Update/Insert Module + Models.LogModule dbModule; + if (existingModules.TryGetValue(module.Key, out dbModule)) + { + // Update + if (dbModule.Name != module.Value.ModuleName) + dbModule.Name = module.Value.ModuleName; + if (dbModule.Description != module.Value.ModuleDescription) + dbModule.Description = module.Value.ModuleDescription; + } + else + { + // Insert + dbModule = new Models.LogModule() + { + Id = module.Key, + Name = module.Value.ModuleName, + Description = module.Value.ModuleDescription + }; + logDbContext.Modules.Add(dbModule); + } + // Update/Insert Event Types + Dictionary existingEventTypes = (dbModule.EventTypes == null) ? new Dictionary() : dbModule.EventTypes.ToDictionary(et => et.Id); + foreach (var eventType in module.Value.EventTypes) + { + Models.LogEventType dbEventType; + if (existingEventTypes.TryGetValue(eventType.Key, out dbEventType)) + { + // Update + if (dbEventType.Name != eventType.Value.Name) + dbEventType.Name = eventType.Value.Name; + if (dbEventType.Severity != eventType.Value.Severity) + dbEventType.Severity = eventType.Value.Severity; + if (dbEventType.Format != eventType.Value.Format) + dbEventType.Format = eventType.Value.Format; + } + else + { + // Insert + dbEventType = new Models.LogEventType() + { + Id = eventType.Key, + ModuleId = module.Key, + Name = eventType.Value.Name, + Severity = eventType.Value.Severity, + Format = eventType.Value.Format + }; + logDbContext.EventTypes.Add(dbEventType); + } + } + } + + logDbContext.SaveChanges(); + } + + public static string LogFileBasePath(DiscoDataContext DiscoContext) + { + var logDirectoryBase = Path.Combine(DiscoContext.DiscoConfiguration.DataStoreLocation, "Logs"); + // Create Directory Structure + if (!Directory.Exists(logDirectoryBase)) + { + Directory.CreateDirectory(logDirectoryBase); + } + // Ensure Logs are NTFS Compressed - TODO... + //Utilities.CompressDirectory(logDirectory); + // WMI - Doesn't Work for Network Folders... + //var logDirectoryBaseInfo = new DirectoryInfo(logDirectoryBase); + //if ((logDirectoryBaseInfo.Attributes & FileAttributes.Compressed) != FileAttributes.Compressed) + //{ + // var logDirectoryWmiPath = string.Format("Win32_Directory.Name=\"{0}\"", logDirectoryBase); + // using (ManagementObject logDirectoryBaseMO = new ManagementObject(logDirectoryWmiPath)) + // { + // ManagementBaseObject outParams = logDirectoryBaseMO.InvokeMethod("Compress", null, null); + // Debug.WriteLine("LoggingContext.InitalizeCurrent: Compressing Log Folder; Result: " + outParams.Properties["ReturnValue"].Value.ToString()); + // } + //} + return logDirectoryBase; + } + + public static string LogFilePath(DiscoDataContext DiscoContext, DateTime Date, bool CreateDirectory = true) + { + var logDirectoryBase = LogFileBasePath(DiscoContext); + var logDirectory = Path.Combine(logDirectoryBase, Date.Year.ToString()); + if (CreateDirectory && !Directory.Exists(logDirectory)) + { + Directory.CreateDirectory(logDirectory); + } + var logFileName = string.Format("DiscoLog_{0:yyy-MM-dd}.sdf", Date); + return Path.Combine(logDirectory, logFileName); + } + + internal static void ReInitalize(DiscoDataContext DiscoContext) + { + lock (_CurrentLock) + { + var logPath = LogFilePath(DiscoContext, DateTime.Today); + + //var connectionString = string.Format("Data Source=\"{0}\"", logPath); + + SqlCeConnectionStringBuilder sqlCeCSB = new SqlCeConnectionStringBuilder(); + sqlCeCSB.DataSource = logPath; + var connectionString = sqlCeCSB.ToString(); + + // Ensure Database Exists + if (!File.Exists(logPath)) + { + // Create Database + using (var context = new Targets.LogPersistContext(connectionString)) + { + context.Database.CreateIfNotExists(); + } + } + + // Add Modules/Event Types + InitalizeModules(); + using (var context = new Targets.LogPersistContext(connectionString)) + { + InitalizeDatabase(context); + } + + // Create Current LogContext + var currentLogContext = new LogContext(logPath, connectionString); + _Current = currentLogContext; + } + SystemLog.LogLogInitialized(_Current.PersistantStorePath); + try + { + // Get Yesterdays Log + var yesterdaysLogPath = LogFilePath(DiscoContext, DateTime.Today.AddDays(-1), false); + if (File.Exists(yesterdaysLogPath)) + { + SqlCeConnectionStringBuilder sqlCeCSB = new SqlCeConnectionStringBuilder(); + sqlCeCSB.DataSource = yesterdaysLogPath; + var connectionString = sqlCeCSB.ToString(); + int logCount; + using (var context = new Targets.LogPersistContext(connectionString)) + { + logCount = context.Events.Where(e => !(e.ModuleId == 0 && e.EventTypeId == 100)).Count(); + if (logCount == 0) + { + // Delete (empty) Database + context.Database.Delete(); + } + } + } + } + catch (Exception ex) + { + SystemLog.LogError("Error occurred while investigating yesterdays log for deletion", ex.GetType().Name, ex.Message, ex.StackTrace); + } + } + + private static IScheduler _ReInitializeScheduler; + public static void Initalize(DiscoDataContext DiscoContext, ISchedulerFactory SchedulerFactory) + { + ReInitalize(DiscoContext); + + _ReInitializeScheduler = SchedulerFactory.GetScheduler(); + + var reInitalizeJobDetail = new JobDetailImpl("DiscoLogContextReinialize", typeof(LogReInitalizeJob)); + + // Simple Trigger - Issue with Day light savings + //var reInitalizeTrigger = TriggerBuilder.Create() + // .WithIdentity("DiscoLogContextReinializeTrigger") + // .StartAt(DateBuilder.TomorrowAt(0,0,0)) + // .WithSchedule(SimpleScheduleBuilder.Create().WithIntervalInHours(24).RepeatForever()) + // .Build(); + // Use Cron Schedule instead + var reInitalizeTrigger = TriggerBuilder.Create() + .WithIdentity("DiscoLogContextReinializeTrigger") + .StartNow() + .WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(0, 0)) // Midnight + .Build(); + + _ReInitializeScheduler.ScheduleJob(reInitalizeJobDetail, reInitalizeTrigger); + } + public static string LiveLogAllEventsGroupName + { + get + { + return Targets.LogLiveContext.LiveLogNameAll; + } + } + + private LogContext(string PersistantStorePath, string PersistantStoreConnectionString) + { + this.PersistantStorePath = PersistantStorePath; + this.PersistantStoreConnectionString = PersistantStoreConnectionString; + } + + public string PersistantStorePath { get; private set; } + public string PersistantStoreConnectionString { get; private set; } + + public void Log(int ModuleId, int EventTypeId, params object[] Args) + { + LogBase logModule; + if (LogModules.TryGetValue(ModuleId, out logModule)) + { + Models.LogEventType eventType; + if (logModule.EventTypes.TryGetValue(EventTypeId, out eventType)) + { + var eventTimestamp = DateTime.Now; + if (eventType.UseLive) + { + Targets.LogLiveContext.Broadcast(logModule, eventType, eventTimestamp, Args); + } + if (eventType.UsePersist) + { + string args = null; + if (Args != null && Args.Length > 0) + { //args = fastJSON.JSON.Instance.ToJSON(Args, false); // Old fastJSON Implementation + args = JsonConvert.SerializeObject(Args); + } + using (var context = new Targets.LogPersistContext(PersistantStoreConnectionString)) + { + var e = new Models.LogEvent() + { + Timestamp = eventTimestamp, + ModuleId = logModule.ModuleId, + EventTypeId = eventType.Id, + Arguments = args + }; + context.Events.Add(e); + context.SaveChanges(); + } + } + } + else + throw new InvalidOperationException(string.Format("Unknown Log Event Type Called: {0} (for Module: {1})", EventTypeId, ModuleId)); + } + else + throw new InvalidOperationException(string.Format("Unknown Log Module Called: {0}", ModuleId)); + } + + } +} diff --git a/Disco.Services/Logging/LogReInitalizeJob.cs b/Disco.Services/Logging/LogReInitalizeJob.cs new file mode 100644 index 00000000..ad268da4 --- /dev/null +++ b/Disco.Services/Logging/LogReInitalizeJob.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Quartz; +using Disco.Data.Repository; + +namespace Disco.Services.Logging +{ + class LogReInitalizeJob : IJob + { + public void Execute(IJobExecutionContext context) + { + using (DiscoDataContext DiscoContext = new DiscoDataContext()) + { + LogContext.ReInitalize(DiscoContext); + } + } + } +} diff --git a/Disco.Services/Logging/Models/LogEvent.cs b/Disco.Services/Logging/Models/LogEvent.cs new file mode 100644 index 00000000..1bd764cd --- /dev/null +++ b/Disco.Services/Logging/Models/LogEvent.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace Disco.Services.Logging.Models +{ + [Table("Events")] + public class LogEvent + { + [Required, Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)] + public int Id { get; set; } + [Required] + public int ModuleId { get; set; } + [Required] + public int EventTypeId { get; set; } + [Required] + public DateTime Timestamp { get; set; } + public string Arguments { get; set; } + } +} diff --git a/Disco.Services/Logging/Models/LogEventType.cs b/Disco.Services/Logging/Models/LogEventType.cs new file mode 100644 index 00000000..2dcc07b3 --- /dev/null +++ b/Disco.Services/Logging/Models/LogEventType.cs @@ -0,0 +1,67 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace Disco.Services.Logging.Models +{ + [Table("EventTypes")] + public class LogEventType + { + [Required, Key, Column(Order=0), DatabaseGenerated(DatabaseGeneratedOption.None)] + public int ModuleId { get; set; } + [Required, Key, Column(Order = 1), DatabaseGenerated(DatabaseGeneratedOption.None)] + public int Id { get; set; } + [Required, MaxLength(200)] + public string Name { get; set; } + [Required] + public int Severity { get; set; } + [MaxLength(1024)] + public string Format { get; set; } + + [NotMapped] + public bool UsePersist { get; set; } + [NotMapped] + public bool UseLive { get; set; } + [NotMapped] + public bool UseDisplay { get; set; } + + [ForeignKey("ModuleId")] + public LogModule Module { get; set; } + + public enum Severities + { + Information = 0, + Warning = 1, + Error = 2 + } + + public string FormatMessage(object[] Arguments) + { + + if (Arguments != null && Arguments.Length > 0) + { + if (!string.IsNullOrEmpty(Format)) + { + return string.Format(Format, Arguments); + } + else + { + return Arguments + .Select(v => v == null ? string.Empty : v.ToString()) + .Aggregate((a, b) => a + ", " + (b == null ? string.Empty : b)); + } + } + else + { + if (!string.IsNullOrEmpty(Format)) + { + return Format; + } + } + return string.Empty; + } + } +} diff --git a/Disco.Services/Logging/Models/LogLiveEvent.cs b/Disco.Services/Logging/Models/LogLiveEvent.cs new file mode 100644 index 00000000..db2bcc7b --- /dev/null +++ b/Disco.Services/Logging/Models/LogLiveEvent.cs @@ -0,0 +1,59 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Collections; +using Newtonsoft.Json; + +namespace Disco.Services.Logging.Models +{ + public class LogLiveEvent + { + public int ModuleId { get; set; } + public string ModuleName { get; set; } + public string ModuleDescription { get; set; } + public int EventTypeId { get; set; } + public string EventTypeName { get; set; } + public int EventTypeSeverity { get; set; } + + public DateTime Timestamp { get; set; } + public object[] Arguments { get; set; } + public string FormattedMessage { get; set; } + public string FormattedTimestamp { get; set; } + public bool UseDisplay { get; set; } + + public static LogLiveEvent Create(LogBase logModule, Models.LogEventType eventType, DateTime Timestamp, string jsonArguments) + { + object[] Arguments = null; + if (jsonArguments != null) + { + //var alArguments = fastJSON.JSON.Instance.Parse(jsonArguments) as ArrayList; // Old fastJSON Implementation + Arguments = JsonConvert.DeserializeObject(jsonArguments); + //if (alArguments != null) + //{ + // Arguments = alArguments.ToArray(); + //} + } + return Create(logModule, eventType, Timestamp, Arguments); + } + + public static LogLiveEvent Create(LogBase logModule, Models.LogEventType eventType, DateTime Timestamp, params object[] Arguments) + { + return new Models.LogLiveEvent() + { + ModuleId = logModule.ModuleId, + ModuleName = logModule.ModuleName, + ModuleDescription = logModule.ModuleDescription, + EventTypeId = eventType.Id, + EventTypeName = eventType.Name, + EventTypeSeverity = eventType.Severity, + Timestamp = Timestamp, + Arguments = Arguments, + FormattedMessage = eventType.FormatMessage(Arguments), + FormattedTimestamp = Timestamp.ToString("dd/MM/yyy hh:mm:ss tt"), + UseDisplay = eventType.UseDisplay + }; + } + + } +} diff --git a/Disco.Services/Logging/Models/LogModule.cs b/Disco.Services/Logging/Models/LogModule.cs new file mode 100644 index 00000000..1115ec16 --- /dev/null +++ b/Disco.Services/Logging/Models/LogModule.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace Disco.Services.Logging.Models +{ + [Table("Modules")] + public class LogModule + { + [Required, Key, DatabaseGenerated(DatabaseGeneratedOption.None)] + public int Id { get; set; } + [Required, MaxLength(200)] + public string Name { get; set; } + [Required, MaxLength(500)] + public string Description { get; set; } + + public virtual IList EventTypes { get; set; } + } +} diff --git a/Disco.Services/Logging/ReadLogContext.cs b/Disco.Services/Logging/ReadLogContext.cs new file mode 100644 index 00000000..adf3209f --- /dev/null +++ b/Disco.Services/Logging/ReadLogContext.cs @@ -0,0 +1,179 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Services.Logging.Targets; +using Disco.Data.Repository; +using System.IO; +using System.Text.RegularExpressions; +using System.Data.SqlServerCe; +using Disco.Services.Logging.Models; + +namespace Disco.Services.Logging +{ + public class ReadLogContext + { + public DateTime? Start { get; set; } + public DateTime? End { get; set; } + public int? Take { get; set; } + public int? Module { get; set; } + public List EventTypes { get; set; } + + public bool Validate() + { + if (this.Start.HasValue && this.End.HasValue && this.End.Value < this.Start.Value) + throw new ArgumentOutOfRangeException("End", "End must be greater than Start"); + if (this.Start.HasValue && !this.End.HasValue && this.Start > DateTime.Now) + throw new ArgumentOutOfRangeException("Start", "Start must be less than current time"); + + return true; + } + + public List Query(DiscoDataContext DiscoContext) + { + List results = new List(); + + // Validate Options + this.Validate(); + + var relevantLogFiles = RelevantLogFiles(DiscoContext); + relevantLogFiles.Reverse(); + foreach (var logFile in relevantLogFiles) + { + SqlCeConnectionStringBuilder sqlCeCSB = new SqlCeConnectionStringBuilder(); + sqlCeCSB.DataSource = logFile.Item1; + + var logModules = LogContext.LogModules; + + using (var context = new Targets.LogPersistContext(sqlCeCSB.ToString())) + { + var query = this.BuildQuery(context, logFile.Item2, results.Count); + IEnumerable queryResults = query; // Run the Query + results.AddRange(queryResults.Select(le => Models.LogLiveEvent.Create(logModules[le.ModuleId], logModules[le.ModuleId].EventTypes[le.EventTypeId], le.Timestamp, le.Arguments))); + } + if (this.Take.HasValue && this.Take.Value < results.Count) + break; + } + return results; + } + + private static Regex LogFileDateRegex = new Regex("DiscoLog_([0-9]{4})-([0-9]{2})-([0-9]{2}).sdf", RegexOptions.IgnoreCase); + private static DateTime? LogFileDate(string LogFilePath) + { + var fileNameMatch = LogFileDateRegex.Match(LogFilePath); + if (fileNameMatch.Success) + { + return new DateTime(int.Parse(fileNameMatch.Groups[1].Value), + int.Parse(fileNameMatch.Groups[2].Value), + int.Parse(fileNameMatch.Groups[3].Value)); + } + else + { + return null; + } + } + + private List> RelevantLogFiles(DiscoDataContext DiscoContext) + { + List> relevantFiles = new List>(); + var logDirectoryBase = LogContext.LogFileBasePath(DiscoContext); + var logDirectoryBaseInfo = new DirectoryInfo(logDirectoryBase); + var endDate = this.End.HasValue ? this.End.Value : DateTime.Now; + var endDateYear = endDate.Year.ToString(); + + // Try Shortcut ( < 31 Days in Query) + if (this.Start.HasValue) + { + if ((this.End.HasValue && this.End.Value.Subtract(this.Start.Value).Days < 31) || + (!this.End.HasValue && DateTime.Now.Subtract(this.Start.Value).Days < 31)) + { + // Less than 31 Days in Query - Just evaluate each Path + var queryDate = this.Start.Value.Date; + while (queryDate <= endDate) + { + var fileName = LogContext.LogFilePath(DiscoContext, queryDate, false); + if (File.Exists(fileName)) + relevantFiles.Add(new Tuple(fileName, LogFileDate(fileName).Value)); + + queryDate = queryDate.AddDays(1); + } + return relevantFiles; + } + } + + List logYears = new List(); + foreach (var directoryName in logDirectoryBaseInfo.GetDirectories()) + { + int directoryYear; + if (int.TryParse(directoryName.Name, out directoryYear)) + { + logYears.Add(directoryName.Name); + } + } + logYears.Sort(); + + foreach (var logYear in logYears) + { + List logFiles = Directory.EnumerateFiles(Path.Combine(logDirectoryBase, logYear), "DiscoLog_*.sdf").ToList(); + logFiles.Sort(); + if (logYear != endDateYear) + { + foreach (var logFile in logFiles) + { + relevantFiles.Add(new Tuple(logFile, LogFileDate(logFile).Value)); + } + } + else + { + foreach (var logFile in logFiles) + { + var fileNameDate = LogFileDate(logFile); + if (fileNameDate != null) + { + if (fileNameDate.Value < endDate) + { + relevantFiles.Add(new Tuple(logFile, fileNameDate.Value)); + } + else + { + break; // Files are sorted, must be no more... + } + } + } + break; // Years are sorted, must be no more... + } + } + return relevantFiles; + } + + private IQueryable BuildQuery(LogPersistContext LogContext, DateTime LogDate, int Taken) + { + IQueryable query = LogContext.Events.OrderByDescending(le => le.Timestamp); + if (this.Module.HasValue) + { + query = query.Where(le => le.ModuleId == this.Module.Value); + } + if (this.EventTypes != null && this.EventTypes.Count > 0) + { + query = query.Where(le => this.EventTypes.Contains(le.EventTypeId)); + } + if (this.Start.HasValue && this.Start.Value > LogDate) + { + var startValue = DateTime.SpecifyKind(this.Start.Value, DateTimeKind.Local); + query = query.Where(le => le.Timestamp > startValue); + } + if (this.End.HasValue && this.End.Value <= LogDate.AddDays(1)) + { + var endValue = DateTime.SpecifyKind(this.End.Value, DateTimeKind.Local); + query = query.Where(le => le.Timestamp < endValue); + } + if (this.Take.HasValue && this.Take.Value > 0) + { + var take = this.Take.Value - Taken; + query = query.Take(take); + } + return query; + } + + } +} diff --git a/Disco.Services/Logging/SystemLog.cs b/Disco.Services/Logging/SystemLog.cs new file mode 100644 index 00000000..f3efb7d0 --- /dev/null +++ b/Disco.Services/Logging/SystemLog.cs @@ -0,0 +1,140 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Services.Logging.Models; + +namespace Disco.Services.Logging +{ + public class SystemLog : LogBase + { + private const int _ModuleId = 0; + public enum EventTypeIds : int + { + Information = 0, + Warning = 1, + Error = 2, + Exception = 10, + ExceptionWithInner = 11, + LogInitialized = 100, + Uninitialized = 200 + } + public static SystemLog Current + { + get + { + return (SystemLog)LogContext.LogModules[_ModuleId]; + } + } + private static void Log(EventTypeIds EventTypeId, params object[] Args) + { + Current.Log((int)EventTypeId, Args); + } + public static void LogInformation(params object[] Messages) + { + Log(EventTypeIds.Information, Messages); + } + public static void LogWarning(params object[] Messages) + { + Log(EventTypeIds.Warning, Messages); + } + public static void LogError(params object[] Messages) + { + Log(EventTypeIds.Error, Messages); + } + public static void LogException(string Component, Exception ex) + { + if (ex.InnerException != null) + { + Log(EventTypeIds.ExceptionWithInner, Component, ex.GetType().Name, ex.Message, ex.StackTrace, ex.InnerException.GetType().Name, ex.InnerException.Message, ex.InnerException.StackTrace); + } + else + { + Log(EventTypeIds.Exception, Component, ex.GetType().Name, ex.Message, ex.StackTrace); + } + } + + public static void LogLogInitialized(string PersistantStorePath) + { + Log(EventTypeIds.LogInitialized, PersistantStorePath); + } + + public static void LogUninitialized() + { + if (Current != null) + Log(EventTypeIds.Uninitialized); + } + + public override int ModuleId + { + get { return _ModuleId; } + } + + public override string ModuleName + { + get { return "System"; } + } + + public override string ModuleDescription + { + get { return "Core System Log"; } + } + + protected override List LoadEventTypes() + { + List eventTypes = new List() { + new LogEventType() { + Id = (int)EventTypeIds.Information, + ModuleId = _ModuleId, + Name = "Information", + Format = null, + Severity = (int)LogEventType.Severities.Information, + UseLive = true, UsePersist = true, UseDisplay = true }, + new LogEventType() { + Id = (int)EventTypeIds.Warning, + ModuleId = _ModuleId, + Name = "Warning", + Format = null, + Severity = (int)LogEventType.Severities.Warning, + UseLive = true, UsePersist = true, UseDisplay = true }, + new LogEventType() { + Id = (int)EventTypeIds.Error, + ModuleId = _ModuleId, + Name = "Error", + Format = null, + Severity = (int)LogEventType.Severities.Error, + UseLive = true, UsePersist = true, UseDisplay = true }, + new LogEventType() { + Id = (int)EventTypeIds.Exception, + ModuleId = _ModuleId, + Name = "Exception", + Format = "{0}; {1}: {2}; {3}", + Severity = (int)LogEventType.Severities.Error, + UseLive = true, UsePersist = true, UseDisplay = true }, + new LogEventType() { + Id = (int)EventTypeIds.ExceptionWithInner, + ModuleId = _ModuleId, + Name = "Exception with Inner Exception", + Format = "{0}; {1}: {2}; {3}; {4}: {5}; {6}", + Severity = (int)LogEventType.Severities.Error, + UseLive = true, UsePersist = true, UseDisplay = true }, + new LogEventType() { + Id = (int)EventTypeIds.LogInitialized, + ModuleId = _ModuleId, + Name = "Log Initialized", + Format = "Log Initialized to '{0}'", + Severity = (int)LogEventType.Severities.Information, + UseLive = false, UsePersist = true, UseDisplay = true }, + new LogEventType() { + Id = (int)EventTypeIds.Uninitialized, + ModuleId = _ModuleId, + Name = "Disco Uninitialized", + Format = "Disco Uninitialized", + Severity = (int)LogEventType.Severities.Information, + UseLive = false, UsePersist = true, UseDisplay = false } + }; + + return eventTypes; + } + } +} diff --git a/Disco.Services/Logging/Targets/LogLiveContext.cs b/Disco.Services/Logging/Targets/LogLiveContext.cs new file mode 100644 index 00000000..82476da4 --- /dev/null +++ b/Disco.Services/Logging/Targets/LogLiveContext.cs @@ -0,0 +1,56 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using SignalR; +using SignalR.Hosting.AspNet; +using SignalR.Infrastructure; + +namespace Disco.Services.Logging.Targets +{ + public class LogLiveContext : PersistentConnection + { + + protected override System.Threading.Tasks.Task OnReceivedAsync(IRequest request, string connectionId, string data) + { + // Add to Group + if (!string.IsNullOrWhiteSpace(data) && data.StartsWith("/addToGroups:") && data.Length > 13) + { + var groups = data.Substring(13).Split(','); + foreach (var g in groups) + { + this.Groups.Add(connectionId, g); + } + } + + return base.OnReceivedAsync(request, connectionId, data); + } + + internal static void Broadcast(LogBase logModule, Models.LogEventType eventType, DateTime Timestamp, params object[] Arguments) + { + var message = Models.LogLiveEvent.Create(logModule, eventType, Timestamp, Arguments); + + var connectionManager = GlobalHost.ConnectionManager; + var connectionContext = connectionManager.GetConnectionContext(); + connectionContext.Groups.Send(_GroupNameAll, message); + connectionContext.Groups.Send(logModule.ModuleName, message); + } + + private const string _GroupNameAll = "__All"; + //private static string _QualifiedTypeName = typeof(LogLiveContext).FullName + "."; + //private static string _QualifiedTypeNameAll = _QualifiedTypeName + "__All"; + //private static string LiveLogNameGroup(string LogName) + //{ + // return string.Concat(_QualifiedTypeName, LogName); + //} + public static string LiveLogNameAll + { + get + { + //return _QualifiedTypeNameAll; + return _GroupNameAll; + } + } + + } +} diff --git a/Disco.Services/Logging/Targets/LogPersistContext.cs b/Disco.Services/Logging/Targets/LogPersistContext.cs new file mode 100644 index 00000000..df6c3067 --- /dev/null +++ b/Disco.Services/Logging/Targets/LogPersistContext.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Data.Entity; +using System.Data.Entity.Infrastructure; + +namespace Disco.Services.Logging.Targets +{ + public class LogPersistContext : DbContext + { + public LogPersistContext(string ConnectionString) : base(ConnectionString) { } + + public DbSet Modules { get; set; } + public DbSet EventTypes { get; set; } + public DbSet Events { get; set; } + + protected override void OnModelCreating(DbModelBuilder modelBuilder) + { + //modelBuilder.Conventions.Remove(); + } + } +} diff --git a/Disco.Services/Logging/Utilities.cs b/Disco.Services/Logging/Utilities.cs new file mode 100644 index 00000000..a0ebd40d --- /dev/null +++ b/Disco.Services/Logging/Utilities.cs @@ -0,0 +1,266 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Microsoft.Win32.SafeHandles; +using System.Runtime.InteropServices; +using System.IO; +using System.Web.Mvc; + +namespace Disco.Services.Logging +{ + public static class Utilities + { + + public const string LogEventCSVHeader = "Timestamp,ModuleId,ModuleName,ModuleDescription,EventTypeId,EventTypeName,Severity,Message"; + public static void ToCsvLine(this Models.LogLiveEvent e, TextWriter writer) + { + writer.Write(e.Timestamp.ToString("yyy-MM-dd HH:mm:ss")); + writer.Write(","); + writer.Write(e.ModuleId); + writer.Write(",\""); + writer.Write(e.ModuleName); + writer.Write("\",\""); + writer.Write(e.ModuleDescription); + writer.Write("\","); + writer.Write(e.EventTypeId); + writer.Write(",\""); + writer.Write(e.EventTypeName); + writer.Write("\","); + writer.Write(e.EventTypeSeverity); + writer.Write(",\""); + writer.Write(e.FormattedMessage.Replace("\"", "'")); + writer.Write("\""); + if (e.Arguments != null) + { + foreach (var arg in e.Arguments) + { + writer.Write(",\""); + if (arg == null) + writer.Write("null"); + else + writer.Write(arg.ToString().Replace("\"", "'")); + writer.Write("\""); + } + } + writer.WriteLine(); + } + public static MemoryStream ToCsv(this List e) + { + var ms = new MemoryStream(); + StreamWriter sw = new StreamWriter(ms); + sw.WriteLine(LogEventCSVHeader); + if (e != null) + { + foreach (var le in e) + { + le.ToCsvLine(sw); + } + } + sw.Flush(); + ms.Position = 0; + return ms; + } + + public static List ToSelectListItems(this List items) + { + return items.Select(et => new SelectListItem() { Value = et.Id.ToString(), Text = et.Name }).ToList(); + } + + #region Win32 APIs + /// + /// The CreateFile function creates or opens a file, file stream, directory, physical disk, volume, console buffer, tape drive, + /// communications resource, mailslot, or named pipe. The function returns a handle that can be used to access an object. + /// + /// + /// access to the object, which can be read, write, or both + /// The sharing mode of an object, which can be read, write, both, or none + /// A pointer to a SECURITY_ATTRIBUTES structure that determines whether or not the returned handle can + /// be inherited by child processes. Can be null + /// An action to take on files that exist and do not exist + /// The file attributes and flags. + /// A handle to a template file with the GENERIC_READ access right. The template file supplies file attributes + /// and extended attributes for the file that is being created. This parameter can be null + /// If the function succeeds, the return value is an open handle to a specified file. If a specified file exists before the function + /// all and dwCreationDisposition is CREATE_ALWAYS or OPEN_ALWAYS, a call to GetLastError returns ERROR_ALREADY_EXISTS, even when the function + /// succeeds. If a file does not exist before the call, GetLastError returns 0 (zero). + /// If the function fails, the return value is INVALID_HANDLE_VALUE. To get extended error information, call GetLastError. + /// + [DllImport("kernel32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall, SetLastError = true)] + private static extern SafeFileHandle CreateFile( + string lpFileName, + EFileAccess dwDesiredAccess, + EFileShare dwShareMode, + IntPtr SecurityAttributes, + ECreationDisposition dwCreationDisposition, + EFileAttributes dwFlagsAndAttributes, + IntPtr hTemplateFile + ); + [Flags] + private enum EFileAccess : uint + { + Delete = 0x10000, + ReadControl = 0x20000, + WriteDAC = 0x40000, + WriteOwner = 0x80000, + Synchronize = 0x100000, + + StandardRightsRequired = 0xF0000, + StandardRightsRead = ReadControl, + StandardRightsWrite = ReadControl, + StandardRightsExecute = ReadControl, + StandardRightsAll = 0x1F0000, + SpecificRightsAll = 0xFFFF, + + AccessSystemSecurity = 0x1000000, // AccessSystemAcl access type + + MaximumAllowed = 0x2000000, // MaximumAllowed access type + + GenericRead = 0x80000000, + GenericWrite = 0x40000000, + GenericExecute = 0x20000000, + GenericAll = 0x10000000 + } + [Flags] + private enum EFileShare : uint + { + /// + /// + /// + None = 0x00000000, + /// + /// Enables subsequent open operations on an object to request read access. + /// Otherwise, other processes cannot open the object if they request read access. + /// If this flag is not specified, but the object has been opened for read access, the function fails. + /// + Read = 0x00000001, + /// + /// Enables subsequent open operations on an object to request write access. + /// Otherwise, other processes cannot open the object if they request write access. + /// If this flag is not specified, but the object has been opened for write access, the function fails. + /// + Write = 0x00000002, + /// + /// Enables subsequent open operations on an object to request delete access. + /// Otherwise, other processes cannot open the object if they request delete access. + /// If this flag is not specified, but the object has been opened for delete access, the function fails. + /// + Delete = 0x00000004 + } + private enum ECreationDisposition : uint + { + /// + /// Creates a new file. The function fails if a specified file exists. + /// + New = 1, + /// + /// Creates a new file, always. + /// If a file exists, the function overwrites the file, clears the existing attributes, combines the specified file attributes, + /// and flags with FILE_ATTRIBUTE_ARCHIVE, but does not set the security descriptor that the SECURITY_ATTRIBUTES structure specifies. + /// + CreateAlways = 2, + /// + /// Opens a file. The function fails if the file does not exist. + /// + OpenExisting = 3, + /// + /// Opens a file, always. + /// If a file does not exist, the function creates a file as if dwCreationDisposition is CREATE_NEW. + /// + OpenAlways = 4, + /// + /// Opens a file and truncates it so that its size is 0 (zero) bytes. The function fails if the file does not exist. + /// The calling process must open the file with the GENERIC_WRITE access right. + /// + TruncateExisting = 5 + } + [Flags] + private enum EFileAttributes : uint + { + None = 0x0000000, + Readonly = 0x00000001, + Hidden = 0x00000002, + System = 0x00000004, + Directory = 0x00000010, + Archive = 0x00000020, + Device = 0x00000040, + Normal = 0x00000080, + Temporary = 0x00000100, + SparseFile = 0x00000200, + ReparsePoint = 0x00000400, + Compressed = 0x00000800, + Offline = 0x00001000, + NotContentIndexed = 0x00002000, + Encrypted = 0x00004000, + Write_Through = 0x80000000, + Overlapped = 0x40000000, + NoBuffering = 0x20000000, + RandomAccess = 0x10000000, + SequentialScan = 0x08000000, + DeleteOnClose = 0x04000000, + BackupSemantics = 0x02000000, + PosixSemantics = 0x01000000, + OpenReparsePoint = 0x00200000, + OpenNoRecall = 0x00100000, + FirstPipeInstance = 0x00080000 + } + + private const int FSCTL_SET_COMPRESSION = 0x9C040; + private const short COMPRESSION_FORMAT_DEFAULT = 1; + [DllImport("kernel32.dll", SetLastError = true)] + private static extern int DeviceIoControl( + SafeFileHandle hDevice, + int dwIoControlCode, + ref short lpInBuffer, + int nInBufferSize, + IntPtr lpOutBuffer, + int nOutBufferSize, + ref int lpBytesReturned, + IntPtr lpOverlapped); + #endregion + + public static void CompressDirectory(string DirectoryPath) + { + if (DirectoryPath.Length > 250) + throw new InvalidOperationException(string.Format("Directory Path to Long (>250) to Compress: {0}", DirectoryPath)); + + DirectoryInfo dirInfo = new DirectoryInfo(DirectoryPath); + if (dirInfo.Exists) + { + if ((dirInfo.Attributes & FileAttributes.Compressed) != FileAttributes.Compressed) + { + var dirHandle = CreateFile(DirectoryPath, EFileAccess.GenericWrite, EFileShare.Read, IntPtr.Zero, ECreationDisposition.OpenExisting, EFileAttributes.None, IntPtr.Zero); + if (dirHandle.IsInvalid) + { + Marshal.ThrowExceptionForHR(Marshal.GetHRForLastWin32Error()); + } + else + { + EnableCompression(dirHandle); + dirHandle.Close(); + } + } + } + else + { + throw new InvalidOperationException(string.Format("Directory doesn't exist: {0}", DirectoryPath)); + } + } + + private static void EnableCompression(SafeFileHandle handle) + { + int lpBytesReturned = 0; + short lpInBuffer = COMPRESSION_FORMAT_DEFAULT; + + int result = DeviceIoControl(handle, FSCTL_SET_COMPRESSION, + ref lpInBuffer, sizeof(short), IntPtr.Zero, 0, + ref lpBytesReturned, IntPtr.Zero); + + if (result != 0) + { + Marshal.ThrowExceptionForHR(Marshal.GetLastWin32Error()); + } + } + + } +} diff --git a/Disco.Services/Plugins/Features/CertificateProvider/CertificateProviderFeature.cs b/Disco.Services/Plugins/Features/CertificateProvider/CertificateProviderFeature.cs new file mode 100644 index 00000000..34ba14d5 --- /dev/null +++ b/Disco.Services/Plugins/Features/CertificateProvider/CertificateProviderFeature.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Disco.Data.Repository; +using Disco.Models.Repository; + +namespace Disco.Services.Plugins.Features.CertificateProvider +{ + [PluginFeatureCategory(DisplayName = "Certificate Providers")] + public abstract class CertificateProviderFeature : PluginFeature + { + // Certificate Plugin Requirements + public abstract string CertificateProviderId { get; } + public abstract Tuple> AllocateCertificate(DiscoDataContext dbContext, Device Device); + } +} diff --git a/Disco.Services/Plugins/Features/CertificateProvider/CertificateProviderLog.cs b/Disco.Services/Plugins/Features/CertificateProvider/CertificateProviderLog.cs new file mode 100644 index 00000000..81921cad --- /dev/null +++ b/Disco.Services/Plugins/Features/CertificateProvider/CertificateProviderLog.cs @@ -0,0 +1,304 @@ +using Disco.Services.Logging; +using Disco.Services.Logging.Models; +using System; +using System.Collections.Generic; +using System.Diagnostics; +namespace Disco.Services.Plugins.Features.CertificateProvider +{ + public class CertificateProvidersLog : LogBase + { + public enum EventTypeIds + { + RetrievalStarting = 10, + RetrievalProgress, + RetrievalFinished, + RetrievalWarning = 15, + RetrievalError, + RetrievalCertificateStarting = 20, + RetrievalCertificateFinished = 22, + RetrievalCertificateWarning = 25, + RetrievalCertificateError, + Allocated = 40, + AllocationFailed = 50 + } + private const int _ModuleId = 60; + private static bool _IsCertificateRetrievalProcessing; + private static string _CertificateRetrievalStatus; + private static int _CertificateRetrievalProgress; + public static CertificateProvidersLog Current + { + get + { + return (CertificateProvidersLog)LogContext.LogModules[60]; + } + } + public static bool IsCertificateRetrievalProcessing + { + get + { + return CertificateProvidersLog._IsCertificateRetrievalProcessing; + } + } + public override string ModuleDescription + { + get + { + return "Certificate Providers"; + } + } + public override int ModuleId + { + get + { + return 60; + } + } + public override string ModuleName + { + get + { + return "CertificateProviders"; + } + } + [System.Diagnostics.DebuggerNonUserCode] + public CertificateProvidersLog() + { + } + private static void Log(CertificateProvidersLog.EventTypeIds EventTypeId, params object[] Args) + { + CertificateProvidersLog.Current.Log((int)EventTypeId, Args); + } + public static void LogRetrievalStarting(int CertificateCount, int CertificateIdFrom, int CertificateIdTo) + { + CertificateProvidersLog.Log(CertificateProvidersLog.EventTypeIds.RetrievalStarting, new object[] + { + CertificateCount, + CertificateIdFrom, + CertificateIdTo + }); + } + public static void LogRetrievalFinished() + { + CertificateProvidersLog.Log(CertificateProvidersLog.EventTypeIds.RetrievalFinished, new object[0]); + } + public static void LogRetrievalWarning(string Message) + { + CertificateProvidersLog.Log(CertificateProvidersLog.EventTypeIds.RetrievalWarning, new object[] + { + Message + }); + } + public static void LogRetrievalError(string Message) + { + CertificateProvidersLog.Log(CertificateProvidersLog.EventTypeIds.RetrievalError, new object[] + { + Message + }); + } + public static void LogRetrievalCertificateStarting(string CertificateId) + { + CertificateProvidersLog.Log(CertificateProvidersLog.EventTypeIds.RetrievalCertificateStarting, new object[] + { + CertificateId + }); + } + public static void LogRetrievalCertificateFinished(string CertificateId) + { + CertificateProvidersLog.Log(CertificateProvidersLog.EventTypeIds.RetrievalCertificateFinished, new object[] + { + CertificateId + }); + } + public static void LogRetrievalCertificateWarning(string CertificateId, string Message) + { + CertificateProvidersLog.Log(CertificateProvidersLog.EventTypeIds.RetrievalCertificateWarning, new object[] + { + CertificateId, + Message + }); + } + public static void LogRetrievalCertificateError(string CertificateId, string Message) + { + CertificateProvidersLog.Log(CertificateProvidersLog.EventTypeIds.RetrievalCertificateError, new object[] + { + CertificateId, + Message + }); + } + public static void LogAllocated(string CertificateId, string DeviceSerialNumber) + { + CertificateProvidersLog.Log(CertificateProvidersLog.EventTypeIds.Allocated, new object[] + { + CertificateId, + DeviceSerialNumber + }); + } + public static void LogAllocationFailed(string DeviceSerialNumber) + { + CertificateProvidersLog.Log(CertificateProvidersLog.EventTypeIds.AllocationFailed, new object[] + { + DeviceSerialNumber + }); + } + public static void LogCertificateRetrievalProgress(bool? IsProcessing, int? Progress, string Status) + { + bool flag = IsProcessing.HasValue; + if (flag) + { + CertificateProvidersLog._IsCertificateRetrievalProcessing = IsProcessing.Value; + } + flag = CertificateProvidersLog._IsCertificateRetrievalProcessing; + if (flag) + { + bool flag2 = Status != null; + if (flag2) + { + CertificateProvidersLog._CertificateRetrievalStatus = Status; + } + flag2 = Progress.HasValue; + if (flag2) + { + CertificateProvidersLog._CertificateRetrievalProgress = Progress.Value; + } + } + else + { + CertificateProvidersLog._CertificateRetrievalStatus = null; + CertificateProvidersLog._CertificateRetrievalProgress = 0; + } + CertificateProvidersLog.Log(CertificateProvidersLog.EventTypeIds.RetrievalProgress, new object[] + { + CertificateProvidersLog._IsCertificateRetrievalProcessing, + CertificateProvidersLog._CertificateRetrievalProgress, + CertificateProvidersLog._CertificateRetrievalStatus + }); + } + protected override System.Collections.Generic.List LoadEventTypes() + { + return new System.Collections.Generic.List + { + new LogEventType + { + Id = 10, + ModuleId = 60, + Name = "Retrieval Starting", + Format = "Starting retrieval of {0} certificate/s ({1} to {2})", + Severity = 0, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 11, + ModuleId = 60, + Name = "Retrieval Progress", + Format = "Processing: {0}; {1}% Complete; Status: {2}", + Severity = 0, + UseLive = true, + UsePersist = false, + UseDisplay = false + }, + new LogEventType + { + Id = 12, + ModuleId = 60, + Name = "Retrieval Finished", + Format = "Retrieval of Certificates Complete", + Severity = 0, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 15, + ModuleId = 60, + Name = "Retrieval Warning", + Format = "Retrieval Warning: {0}", + Severity = 1, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 16, + ModuleId = 60, + Name = "Retrieval Error", + Format = "Retrieval Error: {0}", + Severity = 2, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 20, + ModuleId = 60, + Name = "Retrieval Certificate Starting", + Format = "Retrieving Certificate: {0}", + Severity = 0, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 22, + ModuleId = 60, + Name = "Retrieval Certificate Finished", + Format = "Certificate Retrieved: {0}", + Severity = 0, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 25, + ModuleId = 60, + Name = "Retrieval Certificate Warning", + Format = "{0} Certificate Warning: {1}", + Severity = 1, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 26, + ModuleId = 60, + Name = "Retrieval Certificate Error", + Format = "{0} Certificate Error: {1}", + Severity = 2, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 40, + ModuleId = 60, + Name = "Allocated", + Format = "Certificate {0} allocated to {1}", + Severity = 0, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 50, + ModuleId = 60, + Name = "Allocation Failed", + Format = "No certificates available for Device: {0}", + Severity = 2, + UseLive = true, + UsePersist = true, + UseDisplay = true + } + }; + } + } +} diff --git a/Disco.Services/Plugins/Features/InteroperabilityProvider/InteroperabilityProviderFeature.cs b/Disco.Services/Plugins/Features/InteroperabilityProvider/InteroperabilityProviderFeature.cs new file mode 100644 index 00000000..71357485 --- /dev/null +++ b/Disco.Services/Plugins/Features/InteroperabilityProvider/InteroperabilityProviderFeature.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Disco.Services.Plugins.Features.InteroperabilityProvider +{ + [PluginFeatureCategory(DisplayName = "Interoperability Providers")] + public abstract class InteroperabilityProviderFeature : PluginFeature + { + } +} diff --git a/Disco.Services/Plugins/Features/Other/OtherFeature.cs b/Disco.Services/Plugins/Features/Other/OtherFeature.cs new file mode 100644 index 00000000..fbbb18ca --- /dev/null +++ b/Disco.Services/Plugins/Features/Other/OtherFeature.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Disco.Services.Plugins.Features.Other +{ + [PluginFeatureCategory(DisplayName = "Other")] + public abstract class OtherFeature : PluginFeature + { + } +} diff --git a/Disco.Services/Plugins/Features/WarrantyProvider/WarrantyProviderFeature.cs b/Disco.Services/Plugins/Features/WarrantyProvider/WarrantyProviderFeature.cs new file mode 100644 index 00000000..f5998282 --- /dev/null +++ b/Disco.Services/Plugins/Features/WarrantyProvider/WarrantyProviderFeature.cs @@ -0,0 +1,49 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Web.Mvc; +using Disco.Data.Repository; +using Disco.Models.BI.Config; +using Disco.Models.Repository; + +namespace Disco.Services.Plugins.Features.WarrantyProvider +{ + [PluginFeatureCategory(DisplayName = "Warranty Providers")] + public abstract class WarrantyProviderFeature : PluginFeature + { + // Warranty Plugin Requirements + public abstract string WarrantyProviderId { get; } + public abstract Type SubmitJobViewType { get; } + public abstract dynamic SubmitJobViewModel(DiscoDataContext dbContext, Controller controller, Job Job, OrganisationAddress Address, User TechUser); + public abstract Dictionary SubmitJobParseProperties(DiscoDataContext dbContext, FormCollection form, Controller controller, Job Job, OrganisationAddress Address, User TechUser, string FaultDescription); + public abstract Dictionary SubmitJobDiscloseInfo(DiscoDataContext dbContext, Job Job, OrganisationAddress Address, User TechUser, string FaultDescription, Dictionary WarrantyProviderProperties); + public abstract string SubmitJob(DiscoDataContext dbContext, Job Job, OrganisationAddress Address, User TechUser, string FaultDescription, Dictionary WarrantyProviderProperties); + + public abstract Type JobDetailsViewType { get; } + public bool JobDetailsSupported { get { return this.JobDetailsViewType != null; } } + public abstract dynamic JobDetailsViewModel(DiscoDataContext dbContext, Controller controller, Job Job); + + public static PluginFeatureManifest FindPluginFeature(string PluginIdOrWarrantyProviderId) + { + var defs = Plugins.GetPluginFeatures(typeof(WarrantyProviderFeature)); + var def = defs.FirstOrDefault(d => d.PluginManifest.Id.Equals(PluginIdOrWarrantyProviderId, StringComparison.InvariantCultureIgnoreCase)); + if (def != null) + return def; + else + foreach (var d in defs) + { + using (var providerInstance = d.CreateInstance()) + { + if (providerInstance.WarrantyProviderId != null && providerInstance.WarrantyProviderId.Equals(PluginIdOrWarrantyProviderId, StringComparison.InvariantCultureIgnoreCase)) + { + return d; + } + } + } + + return null; + } + } +} diff --git a/Disco.Services/Plugins/Features/WarrantyProvider/WarrantyProviderSubmitJobException.cs b/Disco.Services/Plugins/Features/WarrantyProvider/WarrantyProviderSubmitJobException.cs new file mode 100644 index 00000000..46c55206 --- /dev/null +++ b/Disco.Services/Plugins/Features/WarrantyProvider/WarrantyProviderSubmitJobException.cs @@ -0,0 +1,12 @@ +using System; + +namespace Disco.Services.Plugins.Features.WarrantyProvider +{ + public class WarrantyProviderSubmitJobException : Exception + { + public WarrantyProviderSubmitJobException(string Message) + : base(Message) + { + } + } +} diff --git a/Disco.Services/Plugins/InvalidFeatureCategoryTypeException.cs b/Disco.Services/Plugins/InvalidFeatureCategoryTypeException.cs new file mode 100644 index 00000000..e5b8efe7 --- /dev/null +++ b/Disco.Services/Plugins/InvalidFeatureCategoryTypeException.cs @@ -0,0 +1,50 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Disco.Services.Plugins +{ + public class InvalidFeatureCategoryTypeException : Exception + { + private string _pluginRequested; + private Type _categoryType; + + public string PluginRequested + { + get + { + return _pluginRequested; + } + } + public Type CategoryType + { + get + { + return _categoryType; + } + } + + public InvalidFeatureCategoryTypeException(Type CategoryType) + : this(CategoryType, null) + { + } + public InvalidFeatureCategoryTypeException(Type CategoryType, string PluginRequested) + { + this._categoryType = CategoryType; + this._pluginRequested = PluginRequested; + } + + public override string Message + { + get + { + if (string.IsNullOrEmpty(_pluginRequested)) + return string.Format("Invalid Category Type [{0}]", _categoryType.Name); + else + return string.Format("Plugin [{1}] is not of the correct Category Type [{0}]", _categoryType.Name, _pluginRequested); + } + } + + } +} diff --git a/Disco.Services/Plugins/Plugin.cs b/Disco.Services/Plugins/Plugin.cs new file mode 100644 index 00000000..9a12f7bc --- /dev/null +++ b/Disco.Services/Plugins/Plugin.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Disco.Data.Repository; + +namespace Disco.Services.Plugins +{ + public abstract class Plugin : IDisposable + { + public PluginManifest Manifest {get; internal set;} + + #region Lifecycle + public abstract bool Install(DiscoDataContext dbContext); + public abstract bool Initalize(DiscoDataContext dbContext); + public abstract bool Uninstall(DiscoDataContext dbContext); + public abstract bool BeforeUpdate(DiscoDataContext dbContext, PluginManifest updateManifest); + #endregion + + public virtual void Dispose() + { + // Nothing in Base Class + } + + public override sealed string ToString() + { + return string.Format("{0} ({1}) - v{2}", this.Manifest.Name, this.Manifest.Id, this.Manifest.Version.ToString(4)); + } + } +} diff --git a/Disco.Services/Plugins/PluginAttribute.cs b/Disco.Services/Plugins/PluginAttribute.cs new file mode 100644 index 00000000..f9cbf4bc --- /dev/null +++ b/Disco.Services/Plugins/PluginAttribute.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Disco.Services.Plugins +{ + [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)] + public class PluginAttribute : Attribute + { + public string Id { get; set; } + public string Name { get; set; } + public string Author { get; set; } + } +} diff --git a/Disco.Services/Plugins/PluginConfigurationHandler.cs b/Disco.Services/Plugins/PluginConfigurationHandler.cs new file mode 100644 index 00000000..3341c4db --- /dev/null +++ b/Disco.Services/Plugins/PluginConfigurationHandler.cs @@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Web.Mvc; +using Disco.Data.Repository; + +namespace Disco.Services.Plugins +{ + public abstract class PluginConfigurationHandler : IDisposable + { + public PluginManifest Manifest { get; set; } + + public abstract PluginConfigurationHandlerGetResponse Get(DiscoDataContext dbContext, Controller controller); + public abstract bool Post(DiscoDataContext dbContext, FormCollection form, Controller controller); + + public virtual void Dispose() + { + // Nothing in Base Class + } + + protected PluginConfigurationHandlerGetResponse GetResponse(Type ViewType, dynamic ViewModel = null) + { + return new PluginConfigurationHandlerGetResponse(this.Manifest, ViewType, ViewModel); + } + public class PluginConfigurationHandlerGetResponse + { + public PluginManifest Manifest { get; set; } + public Type ViewType { get; set; } + public dynamic ViewModel { get; set; } + + public PluginConfigurationHandlerGetResponse(PluginManifest Manifest, Type ViewType, dynamic ViewModel = null) + { + if (ViewType == null) + throw new ArgumentNullException("ViewType"); + if (!typeof(WebViewPage).IsAssignableFrom(ViewType)) + throw new ArgumentException("The PluginConfigurationHandler ViewType must inherit System.Web.Mvc.WebViewPage", "ViewType"); + + this.Manifest = Manifest; + + this.ViewType = ViewType; + this.ViewModel = ViewModel; + } + } + } +} diff --git a/Disco.Services/Plugins/PluginExtensions.cs b/Disco.Services/Plugins/PluginExtensions.cs new file mode 100644 index 00000000..85f378fe --- /dev/null +++ b/Disco.Services/Plugins/PluginExtensions.cs @@ -0,0 +1,190 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Data.Repository; +using System.IO; +using System.Web.Mvc; +using System.Web.Routing; +using System.Web; +using System.Web.Mvc.Html; +using System.Globalization; + +namespace Disco.Services.Plugins +{ + public static class PluginExtensions + { + #region Model Binding from Controller + public static bool TryUpdateModel(this Controller controller, TModel model) where TModel : class + { + return controller.TryUpdateModel(model, null, controller.ValueProvider); + } + public static bool TryUpdateModel(this Controller controller, TModel model, IValueProvider valueProvider) where TModel : class + { + return controller.TryUpdateModel(model, null, valueProvider); + } + public static bool TryUpdateModel(this Controller controller, TModel model, string prefix) where TModel : class + { + return controller.TryUpdateModel(model, prefix, controller.ValueProvider); + } + public static bool TryUpdateModel(this Controller controller, TModel model, string prefix, IValueProvider valueProvider) where TModel : class + { + if (model == null) + throw new ArgumentNullException("model"); + if (valueProvider == null) + throw new ArgumentNullException("valueProvider"); + + Predicate predicate = propertyName => true; + IModelBinder binder = ModelBinders.Binders.GetBinder(typeof(TModel)); + + ModelBindingContext context2 = new ModelBindingContext + { + ModelMetadata = ModelMetadataProviders.Current.GetMetadataForType(() => model, typeof(TModel)), + ModelName = prefix, + ModelState = controller.ModelState, + PropertyFilter = predicate, + ValueProvider = valueProvider + }; + + ModelBindingContext bindingContext = context2; + + binder.BindModel(controller.ControllerContext, bindingContext); + + return controller.ModelState.IsValid; + } + #endregion + + #region Virtual Directories + //public static string WebHandlerResource(this PluginManifest pluginManifest, string resourcePath, RequestContext requestContext) + //{ + // var rootPath = WebHandlerRootUrl(pluginManifest, requestContext); + // return string.Concat(rootPath, resourcePath); + //} + //public static string WebHandlerRootUrl(this PluginManifest pluginManifest, RequestContext requestContext) + //{ + // var tempPath = pluginManifest.WebHandlerActionUrl(requestContext, "_"); + // return tempPath.Substring(0, tempPath.LastIndexOf(@"/") + 1); + //} + //public static string WebHandlerActionUrl(this PluginManifest pluginManifest, RequestContext requestContext, string PluginAction) + //{ + // var routeValues = new RouteValueDictionary(new { PluginId = pluginManifest.Id, PluginAction = PluginAction }); + // return UrlHelper.GenerateUrl("Plugin", "PluginWebHandler", "Index", routeValues, RouteTable.Routes, requestContext, true); + //} + //public static string WebHandlerResourceUrl(this PluginManifest pluginManifest, RequestContext requestContext, string PluginAction) + //{ + // var routeValues = new RouteValueDictionary(new { PluginId = pluginManifest.Id, PluginAction = PluginAction }); + + + + // return UrlHelper.GenerateUrl("Plugin", "PluginWebHandler", "Index", routeValues, RouteTable.Routes, requestContext, true); + //} + + public static HtmlString DiscoPluginResourceUrl(this WebViewPage ViewPage, string Resource) + { + return ViewPage.DiscoPluginResourceUrl(Resource, false); + } + public static HtmlString DiscoPluginResourceUrl(this WebViewPage ViewPage, string Resource, bool Download) + { + if (string.IsNullOrEmpty(Resource)) + throw new ArgumentNullException("Resource"); + + // Find Plugin + var pageType = ViewPage.GetType(); + var pageAssembly = pageType.Assembly; + var manifest = Plugins.GetPlugin(pageAssembly); + + var resourcePath = manifest.WebResourcePath(Resource); + + var routeValues = new RouteValueDictionary(new { PluginId = manifest.Id, res = Resource }); + string pluginActionUrl = UrlHelper.GenerateUrl("Plugin_Resources", null, null, routeValues, RouteTable.Routes, ViewPage.ViewContext.RequestContext, false); + + pluginActionUrl += string.Format("?v={0}", resourcePath.Item2); + + if (Download) + pluginActionUrl += "&Download=true"; + + return new HtmlString(pluginActionUrl); + } + public static HtmlString DiscoPluginActionUrl(this WebViewPage ViewPage, string PluginAction) + { + if (string.IsNullOrEmpty(PluginAction)) + throw new ArgumentNullException("PluginAction"); + + // Find Plugin + var pageType = ViewPage.GetType(); + var pageAssembly = pageType.Assembly; + var manifest = Plugins.GetPlugin(pageAssembly); + + var routeValues = new RouteValueDictionary(new { PluginId = manifest.Id, PluginAction = PluginAction }); + string pluginActionUrl = UrlHelper.GenerateUrl("Plugin", null, null, routeValues, RouteTable.Routes, ViewPage.ViewContext.RequestContext, false); + return new HtmlString(pluginActionUrl); + } + public static HtmlString DiscoPluginConfigureUrl(this WebViewPage ViewPage) + { + // Find Plugin + var pageType = ViewPage.GetType(); + var pageAssembly = pageType.Assembly; + var manifest = Plugins.GetPlugin(pageAssembly); + + var routeValues = new RouteValueDictionary(new { PluginId = manifest.Id }); + string pluginActionUrl = UrlHelper.GenerateUrl("Config_Plugins_Configure", null, null, routeValues, RouteTable.Routes, ViewPage.ViewContext.RequestContext, false); + return new HtmlString(pluginActionUrl); + } + public static MvcForm DiscoPluginActionBeginForm(this WebViewPage ViewPage, string PluginAction, FormMethod method, IDictionary htmlAttributes) + { + if (string.IsNullOrEmpty(PluginAction)) + throw new ArgumentNullException("PluginAction"); + + // Find Plugin + var pageType = ViewPage.GetType(); + var pageAssembly = pageType.Assembly; + var manifest = Plugins.GetPlugin(pageAssembly); + + var routeValues = new RouteValueDictionary(new { PluginId = manifest.Id, PluginAction = PluginAction }); + string pluginActionUrl = UrlHelper.GenerateUrl("Plugin", null, null, routeValues, RouteTable.Routes, ViewPage.ViewContext.RequestContext, false); + + return ViewPage.FormHelper(pluginActionUrl, method, htmlAttributes); + } + public static MvcForm DiscoPluginActionBeginForm(this WebViewPage ViewPage, string PluginAction, FormMethod method) + { + return ViewPage.DiscoPluginActionBeginForm(PluginAction, method, null); + } + public static MvcForm DiscoPluginActionBeginForm(this WebViewPage ViewPage, string PluginAction, IDictionary htmlAttributes) + { + return ViewPage.DiscoPluginActionBeginForm(PluginAction, FormMethod.Post, htmlAttributes); + } + public static MvcForm DiscoPluginActionBeginForm(this WebViewPage ViewPage, string PluginAction) + { + return ViewPage.DiscoPluginActionBeginForm(PluginAction, FormMethod.Post, null); + } + + private static MvcForm FormHelper(this WebViewPage ViewPage, string formAction, FormMethod method, IDictionary htmlAttributes) + { + TagBuilder builder = new TagBuilder("form"); + builder.MergeAttributes(htmlAttributes); + builder.MergeAttribute("action", formAction); + builder.MergeAttribute("method", HtmlHelper.GetFormMethodString(method), true); + bool flag = ViewPage.ViewContext.ClientValidationEnabled && !ViewPage.ViewContext.UnobtrusiveJavaScriptEnabled; + if (flag) + { + object obj2 = ViewPage.ViewContext.HttpContext.Items["DiscoPluginLastFormNum"]; + int num = (obj2 != null) ? (((int)obj2) + 1) : 1000; + ViewPage.ViewContext.HttpContext.Items["DiscoPluginLastFormNum"] = num; + + builder.GenerateId(string.Format(CultureInfo.InvariantCulture, "form{0}", new object[] { num })); + } + ViewPage.ViewContext.Writer.Write(builder.ToString(TagRenderMode.StartTag)); + MvcForm form = new MvcForm(ViewPage.ViewContext); + if (flag) + { + ViewPage.ViewContext.FormContext.FormId = builder.Attributes["id"]; + } + return form; + } + + + + + #endregion + } +} diff --git a/Disco.Services/Plugins/PluginFeature.cs b/Disco.Services/Plugins/PluginFeature.cs new file mode 100644 index 00000000..68d8b2f9 --- /dev/null +++ b/Disco.Services/Plugins/PluginFeature.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Disco.Data.Repository; + +namespace Disco.Services.Plugins +{ + public abstract class PluginFeature : IDisposable + { + public PluginFeatureManifest Manifest {get; internal set;} + + public abstract bool Initalize(DiscoDataContext dbContext); + + public virtual void Dispose() + { + // Nothing in Base Class + } + } +} diff --git a/Disco.Services/Plugins/PluginFeatureAttribute.cs b/Disco.Services/Plugins/PluginFeatureAttribute.cs new file mode 100644 index 00000000..f41d0c95 --- /dev/null +++ b/Disco.Services/Plugins/PluginFeatureAttribute.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Disco.Services.Plugins +{ + [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)] + public class PluginFeatureAttribute : Attribute + { + public string Id { get; set; } + public string Name { get; set; } + } +} diff --git a/Disco.Services/Plugins/PluginFeatureCategoryAttribute.cs b/Disco.Services/Plugins/PluginFeatureCategoryAttribute.cs new file mode 100644 index 00000000..6358bfb4 --- /dev/null +++ b/Disco.Services/Plugins/PluginFeatureCategoryAttribute.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Disco.Services.Plugins +{ + [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)] + public class PluginFeatureCategoryAttribute : Attribute + { + public string DisplayName { get; set; } + } +} diff --git a/Disco.Services/Plugins/PluginFeatureManifest.cs b/Disco.Services/Plugins/PluginFeatureManifest.cs new file mode 100644 index 00000000..b5d55082 --- /dev/null +++ b/Disco.Services/Plugins/PluginFeatureManifest.cs @@ -0,0 +1,107 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Disco.Data.Repository; +using Newtonsoft.Json; +using System.Reflection; + +namespace Disco.Services.Plugins +{ + public class PluginFeatureManifest + { + public string Id { get; set; } + public string Name { get; set; } + public string TypeName { get; set; } + + [JsonProperty] + private string CategoryTypeName { get; set; } + + [JsonIgnore] + public PluginManifest PluginManifest { get; private set; } + [JsonIgnore] + internal Type Type { get; private set; } + [JsonIgnore] + public Type CategoryType { get; private set; } + + internal bool Initialize(DiscoDataContext dbContext, PluginManifest pluginManifest) + { + this.PluginManifest = pluginManifest; + + if (this.Type == null) + this.Type = this.PluginManifest.PluginAssembly.GetType(this.TypeName, true, true); + + if (this.CategoryType == null) + this.CategoryType = Type.GetType(this.CategoryTypeName, true, true); + + using (var instance = this.CreateInstance()) + { + instance.Initalize(dbContext); + } + + PluginsLog.LogInitializedPluginFeature(this.PluginManifest, this); + + return true; + } + + public PluginFeature CreateInstance() + { + var i = (PluginFeature)Activator.CreateInstance(Type); + i.Manifest = this; + return i; + } + public CategoryType CreateInstance() where CategoryType : PluginFeature + { + if (typeof(CategoryType).IsAssignableFrom(this.Type)) + { + var i = (CategoryType)Activator.CreateInstance(Type); + i.Manifest = this; + return i; + } + else + throw new InvalidOperationException(string.Format("The feature [{0}] cannot be cast into type [{1}]", this.Type.Name, typeof(CategoryType).Name)); + } + + /// + /// Uses reflection to build a Plugin Manifest + /// + /// Assembly containing a plugin + /// A plugin manifest for the first encountered plugin within the assembly + public static PluginFeatureManifest FromPluginFeatureType(Type featureType, PluginManifest pluginManifest) + { + var featureAttribute = (PluginFeatureAttribute)featureType.GetCustomAttributes(typeof(PluginFeatureAttribute), false).FirstOrDefault(); + + if (featureAttribute == null) + throw new ArgumentException(string.Format("Plugin Feature found [{0}], but no PluginFeatureAttribute found", featureType.Name), "featureType"); + + var featureId = featureAttribute.Id; + var featureName = featureAttribute.Name; + + // Determine Feature Category + var featureCategoryType = featureType.BaseType; + + if (featureCategoryType == null) + throw new ArgumentException(string.Format("Plugin Feature found [{0}], but has no Base Type to determine its Category", featureType.Name), "featureType"); + + if (featureCategoryType == typeof(PluginFeature) || !typeof(PluginFeature).IsAssignableFrom(featureCategoryType)) + throw new ArgumentException(string.Format("Plugin Feature found [{0}], but its Base Type is not a valid Feature Category Type (Base Feature or not assignable)", featureType.Name), "featureType"); + + var featureCategoryAttribute = (PluginFeatureCategoryAttribute)featureCategoryType.GetCustomAttributes(typeof(PluginFeatureCategoryAttribute), false).FirstOrDefault(); + + if (featureCategoryAttribute == null) + throw new ArgumentException(string.Format("Plugin Feature found [{0}], but its Base Type is not a valid Feature Category Type (no attribute)", featureType.Name), "featureType"); + + return new PluginFeatureManifest() + { + PluginManifest = pluginManifest, + Id = featureId, + Name = featureName, + Type = featureType, + TypeName = featureType.FullName, + CategoryType = featureCategoryType, + CategoryTypeName = featureCategoryType.FullName + }; + } + } +} diff --git a/Disco.Services/Plugins/PluginManifest.cs b/Disco.Services/Plugins/PluginManifest.cs new file mode 100644 index 00000000..719535fc --- /dev/null +++ b/Disco.Services/Plugins/PluginManifest.cs @@ -0,0 +1,321 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Security.Cryptography; +using System.Text; +using System.Threading.Tasks; +using System.Web; +using System.Web.Mvc; +using Disco.Data.Repository; +using Newtonsoft.Json; + +namespace Disco.Services.Plugins +{ + public class PluginManifest + { + public string Id { get; set; } + public string Name { get; set; } + public string Author { get; set; } + public Version Version { get; set; } + [JsonProperty] + internal string AssemblyPath { get; set; } + [JsonProperty] + private string TypeName { get; set; } + [JsonProperty] + private string ConfigurationHandlerTypeName { get; set; } + [JsonProperty] + private string WebHandlerTypeName { get; set; } + + [JsonProperty] + internal Dictionary AssemblyReferences { get; set; } + + [JsonProperty] + public List Features { get; private set; } + + [JsonIgnore] + internal Assembly PluginAssembly { get; private set; } + [JsonIgnore] + internal Type Type { get; private set; } + [JsonIgnore] + private Type ConfigurationHandlerType { get; set; } + [JsonIgnore] + private Type WebHandlerType { get; set; } + + [JsonIgnore] + public string PluginLocation { get; private set; } + [JsonIgnore] + public string StorageLocation { get; private set; } + + private static Dictionary> WebResourceHashes = new Dictionary>(); + + public List GetFeatures(Type FeatureCategoryType) + { + return this.Features.Where(fm => fm.CategoryType.IsAssignableFrom(FeatureCategoryType)).ToList(); + } + public PluginFeatureManifest GetFeature(string PluginFeatureId) + { + return this.Features.Where(fm => fm.Id == PluginFeatureId).FirstOrDefault(); + } + + public Plugin CreateInstance() + { + var i = (Plugin)Activator.CreateInstance(Type); + i.Manifest = this; + return i; + } + + /// + /// Deserializes a Json Manifest + /// + /// Path to the Json Manifest file + /// + public static PluginManifest FromPluginManifestFile(string FilePath) + { + using (Stream manifestStream = File.OpenRead(FilePath)) + { + PluginManifest manifest = FromPluginManifestFile(manifestStream, Path.GetDirectoryName(FilePath)); + return manifest; + } + } + + /// + /// Deserializes a Json Manifest + /// + /// Stream containing the encoded Json Manifest File + /// PluginLocation to be set in the manifest + /// + public static PluginManifest FromPluginManifestFile(Stream FileStream, string PluginLocation = null) + { + string manifestString; + using (StreamReader manifestStreamReader = new StreamReader(FileStream)) + { + manifestString = manifestStreamReader.ReadToEnd(); + } + + var manifest = JsonConvert.DeserializeObject(manifestString); + + manifest.PluginLocation = PluginLocation; + + return manifest; + } + /// + /// Uses reflection to build a Plugin Manifest + /// + /// Assembly containing a plugin + /// A plugin manifest for the first encountered plugin within the assembly + public static PluginManifest FromPluginAssembly(Assembly assembly) + { + // Determine Plugin Properties + var pluginType = (from type in assembly.GetTypes() + where typeof(Plugin).IsAssignableFrom(type) && !type.IsAbstract + select type).FirstOrDefault(); + + if (pluginType == null) + throw new ArgumentException("No Plugin was found in this Assembly", "pluginAssembly"); + + var assemblyName = assembly.GetName(); + + var pluginAttributes = pluginType.GetCustomAttribute(false); + + if (pluginAttributes == null) + throw new ArgumentException(string.Format("Plugin found [{0}], but no PluginAttribute found", pluginType.Name), "pluginAssembly"); + + var pluginId = pluginAttributes.Id; + var pluginName = pluginAttributes.Name; + var pluginAuthor = pluginAttributes.Author; + + var pluginVersion = assemblyName.Version; + var pluginAssemblyPath = Path.GetFileName(assembly.Location); + var pluginTypeName = pluginType.FullName; + var pluginLocation = Path.GetDirectoryName(assembly.Location); + + // Find Configuration Handler + var pluginConfigurationHandlerType = (from type in assembly.GetTypes() + where typeof(PluginConfigurationHandler).IsAssignableFrom(type) && !type.IsAbstract + select type).FirstOrDefault(); + if (pluginConfigurationHandlerType == null) + throw new ArgumentException("A Plugin was found, but no Configuration Handler was found in this Assembly - this is required", "pluginAssembly"); + + // Find Web Handler + var pluginWebHandlerType = (from type in assembly.GetTypes() + where typeof(PluginWebHandler).IsAssignableFrom(type) && !type.IsAbstract + select type).FirstOrDefault(); + + Dictionary pluginAssemblyReferences = new Dictionary(); + foreach (string referenceFilename in Directory.EnumerateFiles(pluginLocation, "*.dll", SearchOption.TopDirectoryOnly)) + { + if (!referenceFilename.Equals(assembly.Location, StringComparison.InvariantCultureIgnoreCase)) + { + try + { + Assembly pluginRefAssembly = Assembly.ReflectionOnlyLoadFrom(referenceFilename); + pluginAssemblyReferences[pluginRefAssembly.FullName] = referenceFilename.Substring(pluginLocation.Length + 1); + } + catch (Exception) { } // Ignore Load Exceptions + } + } + + PluginManifest pluginManifest = new PluginManifest() + { + Id = pluginId, + Name = pluginName, + Author = pluginAuthor, + Version = pluginVersion, + AssemblyPath = pluginAssemblyPath, + TypeName = pluginTypeName, + AssemblyReferences = pluginAssemblyReferences, + PluginAssembly = assembly, + Type = pluginType, + PluginLocation = pluginLocation, + ConfigurationHandlerType = pluginConfigurationHandlerType, + ConfigurationHandlerTypeName = pluginConfigurationHandlerType.FullName, + WebHandlerType = pluginWebHandlerType, + WebHandlerTypeName = (pluginWebHandlerType == null ? null : pluginWebHandlerType.FullName) + }; + + pluginManifest.Features = (from type in assembly.GetTypes() + where typeof(PluginFeature).IsAssignableFrom(type) && !type.IsAbstract + select PluginFeatureManifest.FromPluginFeatureType(type, pluginManifest)).ToList(); + + return pluginManifest; + } + + public string ToManifestFile() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + public bool InitializePlugin(DiscoDataContext dbContext) + { + var assemblyFullPath = Path.Combine(this.PluginLocation, this.AssemblyPath); + + if (!File.Exists(assemblyFullPath)) + throw new FileNotFoundException(string.Format("Plugin Assembly [{0}] not found at: {1}", this.Id, assemblyFullPath), assemblyFullPath); + + if (this.PluginAssembly == null) + this.PluginAssembly = Assembly.LoadFile(assemblyFullPath); + + if (this.PluginAssembly == null) + throw new InvalidOperationException(string.Format("Unable to load Plugin Assembly [{0}] at: {1}", this.Id, assemblyFullPath)); + + PluginsLog.LogInitializingPluginAssembly(this.PluginAssembly); + + // Check Manifest/Assembly Versions Match + if (this.Version != this.PluginAssembly.GetName().Version) + throw new InvalidOperationException(string.Format("The plugin [{0}] manifest version [{1}] doesn't match the plugin assembly [{2} : {3}]", this.Id, this.Version, assemblyFullPath, this.PluginAssembly.GetName().Version)); + + if (this.Type == null) + this.Type = this.PluginAssembly.GetType(this.TypeName, true, true); + + if (this.ConfigurationHandlerType == null) + this.ConfigurationHandlerType = this.PluginAssembly.GetType(this.ConfigurationHandlerTypeName, true, true); + + if (!string.IsNullOrEmpty(this.WebHandlerTypeName) && this.WebHandlerType == null) + this.WebHandlerType = this.PluginAssembly.GetType(this.WebHandlerTypeName, true, true); + + // Update non-static values + this.StorageLocation = Path.Combine(dbContext.DiscoConfiguration.PluginStorageLocation, this.Id); + + // Initialize Plugin + using (var pluginInstance = this.CreateInstance()) + { + pluginInstance.Initalize(dbContext); + } + PluginsLog.LogInitializedPlugin(this); + + // Initialize Plugin Features + if (Features != null) + { + foreach (var feature in Features) + { + feature.Initialize(dbContext, this); + } + } + else + { + Features = new List(); + } + + return true; + } + + public PluginConfigurationHandler CreateConfigurationHandler() + { + // Configuration Handler is Required + if (this.ConfigurationHandlerType == null) + throw new ArgumentNullException("ConfigurationType"); + if (!typeof(PluginConfigurationHandler).IsAssignableFrom(this.ConfigurationHandlerType)) + throw new ArgumentException("The Plugin ConfigurationHandlerType must inherit Disco.Services.Plugins.PluginConfigurationHandler", "ConfigurationHandlerType"); + + var handler = (PluginConfigurationHandler)Activator.CreateInstance(this.ConfigurationHandlerType); + + handler.Manifest = this; + + return handler; + } + [JsonIgnore] + public bool HasWebHandler + { + get + { + return this.WebHandlerType != null; + } + } + public PluginWebHandler CreateWebHandler(Controller HostController) + { + // Web Handler is Not Required + if (this.WebHandlerType == null) + return null; + + if (!typeof(PluginWebHandler).IsAssignableFrom(this.WebHandlerType)) + throw new ArgumentException("The Plugin WebHandlerType must inherit Disco.Services.Plugins.PluginWebHandler", "WebHandlerType"); + + var handler = (PluginWebHandler)Activator.CreateInstance(this.WebHandlerType); + + handler.Manifest = this; + handler.HostController = HostController; + + return handler; + } + + public Tuple WebResourcePath(string Resource) + { + if (string.IsNullOrWhiteSpace(Resource)) + throw new ArgumentNullException("Resource"); + + if (Resource.Contains("..")) + throw new ArgumentException("Resource Paths cannot navigate to the parent", "Resource"); + + var resourcePath = Path.Combine(this.PluginLocation, "WebResources", Resource.Replace(@"/", @"\")); + + Tuple resourceHash; + string resourceKey = string.Format("{0}://{1}", this.Name, Resource); + if (WebResourceHashes.TryGetValue(resourceKey, out resourceHash)) + { +#if DEBUG + var fileDateCheck = System.IO.File.GetLastWriteTime(resourcePath); + if (fileDateCheck == resourceHash.Item2) +#endif + return new Tuple(resourcePath, resourceHash.Item1); + } + + if (!File.Exists(resourcePath)) + throw new FileNotFoundException(string.Format("Resource [{0}] not found", Resource), resourcePath); + + var fileDate = System.IO.File.GetLastWriteTime(resourcePath); + var fileBytes = System.IO.File.ReadAllBytes(resourcePath); + if (fileBytes.Length > 0) + { + using (SHA256 sha = SHA256.Create()) + { + byte[] hash = sha.ComputeHash(fileBytes); + resourceHash = new Tuple(HttpServerUtility.UrlTokenEncode(hash), fileDate); + } + } + WebResourceHashes[resourceKey] = resourceHash; + + return new Tuple(resourcePath, resourceHash.Item1); + } + } +} diff --git a/Disco.Services/Plugins/PluginWebHandler.cs b/Disco.Services/Plugins/PluginWebHandler.cs new file mode 100644 index 00000000..903c6755 --- /dev/null +++ b/Disco.Services/Plugins/PluginWebHandler.cs @@ -0,0 +1,229 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Web.Mvc; +using System.Web.Routing; +using RazorGenerator.Mvc; + +namespace Disco.Services.Plugins +{ + public abstract class PluginWebHandler : IDisposable + { + public PluginManifest Manifest { get; set; } + public Controller HostController { get; set; } + + public abstract ActionResult ExecuteAction(string ActionName); + + public virtual void Dispose() + { + // Nothing in Base Class + } + + + #region Action Results + + #region Compiled View + private static string[] _viewFileNames = new string[] { "cshtml" }; + public ActionResult CompiledView(Type CompiledViewType, object Model, bool UseDiscoLayout) + { + string layoutPath = UseDiscoLayout ? "~/Views/Shared/_Layout.cshtml" : null; + + IView v = new PrecompiledMvcView(this.HostController.Request.Path, layoutPath, CompiledViewType, false, _viewFileNames); + + if (Model != null) + this.HostController.ViewData.Model = Model; + + return new ViewResult { View = v, ViewData = this.HostController.ViewData, TempData = this.HostController.TempData }; + } + public ActionResult CompiledView(Type CompiledViewType, bool UseDiscoLayout) + { + return this.CompiledView(CompiledViewType, null, UseDiscoLayout); + } + public ActionResult CompiledView(Type CompiledViewType, object Model) + { + return this.CompiledView(CompiledViewType, Model, true); + } + public ActionResult CompiledView(Type CompiledViewType) + { + return this.CompiledView(CompiledViewType, false, true); + } + public ActionResult CompiledPartialView(Type PartialCompiledViewType, object Model) + { + IView v = new PrecompiledMvcView(this.HostController.Request.Path, PartialCompiledViewType, false, _viewFileNames); + + if (Model != null) + this.HostController.ViewData.Model = Model; + + return new PartialViewResult { View = v, ViewData = this.HostController.ViewData, TempData = this.HostController.TempData }; + } + public ActionResult CompiledPartialView(Type PartialCompiledViewType) + { + return this.CompiledView(PartialCompiledViewType, null); + } + #endregion + + #region Content + public ActionResult Content(string content, string contentType, Encoding contentEncoding) + { + return new ContentResult { Content = content, ContentType = contentType, ContentEncoding = contentEncoding }; + } + public ActionResult Content(string content, string contentType) + { + return this.Content(content, null, null); + } + public ActionResult Content(string content) + { + return this.Content(content, null); + } + #endregion + + #region Json + public ActionResult Json(object data, JsonRequestBehavior behavior) + { + return new JsonResult { Data = data, ContentType = null, ContentEncoding = null, JsonRequestBehavior = behavior }; + } + #endregion + + #region File + public ActionResult File(Stream fileStream, string contentType) + { + return this.File(fileStream, contentType, null); + } + public ActionResult File(Stream fileStream, string contentType, string fileDownloadName) + { + return new FileStreamResult(fileStream, contentType) { FileDownloadName = fileDownloadName }; + } + public ActionResult File(byte[] fileContents, string contentType) + { + return this.File(fileContents, contentType, null); + } + public ActionResult File(byte[] fileContents, string contentType, string fileDownloadName) + { + return new FileContentResult(fileContents, contentType) { FileDownloadName = fileDownloadName }; + } + #endregion + + #region HttpNotFound + public ActionResult HttpNotFound(string statusDescription) + { + return new HttpNotFoundResult(statusDescription); + } + public ActionResult HttpNotFound() + { + return this.HttpNotFound(null); + } + #endregion + + #region Redirect + public ActionResult RedirectToScheduledTaskStatus(string SessionId) + { + if (string.IsNullOrEmpty(SessionId)) + throw new ArgumentNullException(SessionId); + + return this.RedirectToAction("TaskStatus", "Logging", "Config", new { id = SessionId }); + } + public ActionResult Redirect(string url) + { + if (string.IsNullOrEmpty(url)) + throw new ArgumentNullException("url"); + + return new RedirectResult(url); + } + public ActionResult RedirectPermanent(string url) + { + if (string.IsNullOrEmpty(url)) + throw new ArgumentNullException("url"); + + return new RedirectResult(url, true); + } + public ActionResult RedirectToPluginAction(string PluginAction) + { + if (string.IsNullOrEmpty(PluginAction)) + throw new ArgumentNullException("PluginAction"); + + var routeValues = new RouteValueDictionary(new { PluginId = this.Manifest.Id, PluginAction = PluginAction }); + string pluginActionUrl = UrlHelper.GenerateUrl("Plugin", null, null, routeValues, RouteTable.Routes, this.HostController.Request.RequestContext, false); + + return new RedirectResult(pluginActionUrl, false); + } + public ActionResult RedirectToPluginResource(string Resource, bool? Download) + { + var resourcePath = this.Manifest.WebResourcePath(Resource); + + var routeValues = new RouteValueDictionary(new { PluginId = this.Manifest.Id, res = Resource }); + string pluginActionUrl = UrlHelper.GenerateUrl("Plugin_Resources", null, null, routeValues, RouteTable.Routes, this.HostController.Request.RequestContext, false); + + pluginActionUrl += string.Format("?v={0}", resourcePath.Item2); + + if (Download.HasValue && Download.Value) + { + pluginActionUrl += "&Download=true"; + } + + return new RedirectResult(pluginActionUrl, false); + } + public ActionResult RedirectToPluginResource(string Resource) + { + return this.RedirectToPluginResource(Resource, null); + } + public ActionResult RedirectToRoute(string routeName, object routeValues) + { + RouteValueDictionary routeValueDictionary; + if (routeValues != null) + routeValueDictionary = new RouteValueDictionary(routeValues); + else + routeValueDictionary = new RouteValueDictionary(); + + return new RedirectToRouteResult(routeName, routeValueDictionary); + } + public ActionResult RedirectToRoute(string routeName) + { + return this.RedirectToRoute(routeName, null); + } + public ActionResult RedirectToAction(string actionName, string controller, string areaName, object routeValues) + { + RouteValueDictionary routeValueDictionary; + if (routeValues != null) + routeValueDictionary = new RouteValueDictionary(routeValues); + else + routeValueDictionary = new RouteValueDictionary(); + + routeValueDictionary["action"] = actionName; + routeValueDictionary["controller"] = controller; + if (areaName != null) + routeValueDictionary["area"] = areaName; + + return new RedirectToRouteResult(routeValueDictionary); + } + public ActionResult RedirectToAction(string actionName, string controller, string areaName) + { + return this.RedirectToAction(actionName, controller, areaName, null); + } + public ActionResult RedirectToAction(string actionName, string controller, object routeValues) + { + return this.RedirectToAction(actionName, controller, null, routeValues); + } + public ActionResult RedirectToAction(string actionName, string controller) + { + return this.RedirectToAction(actionName, controller, null, null); + } + public ActionResult RedirectToDiscoJob(int jobId) + { + return this.RedirectToAction("Show", "Job", null, new { id = jobId.ToString() }); + } + public ActionResult RedirectToDiscoDevice(string DeviceSerialNumber) + { + return this.RedirectToAction("Show", "Device", null, new { id = DeviceSerialNumber }); + } + public ActionResult RedirectToDiscoUser(string UserId) + { + return this.RedirectToAction("Show", "User", null, new { id = UserId }); + } + #endregion + + #endregion + } +} diff --git a/Disco.Services/Plugins/PluginWebHandlerController.cs b/Disco.Services/Plugins/PluginWebHandlerController.cs new file mode 100644 index 00000000..b2be9fe4 --- /dev/null +++ b/Disco.Services/Plugins/PluginWebHandlerController.cs @@ -0,0 +1,121 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using System.Web.Mvc; + +namespace Disco.Services.Plugins +{ + public abstract class PluginWebHandlerController : PluginWebHandler + { + + public override ActionResult ExecuteAction(string ActionName) + { + var handlerType = this.GetType(); + var methodDescriptor = FindControllerMethod(handlerType, ActionName); + + if (methodDescriptor == null) + return this.HttpNotFound("Unknown Plugin Method"); + + var methodParams = BuildMethodParameters(handlerType, methodDescriptor.MethodInfo, ActionName, this.HostController); + + return (ActionResult)methodDescriptor.MethodInfo.Invoke(this, methodParams); + } + + private static WebHandlerCachedItem FindControllerMethod(Type Handler, string ActionName) + { + var descriptors = CacheWebHandler(Handler); + WebHandlerCachedItem method; + if (descriptors.TryGetValue(ActionName.ToLower(), out method)) + return method; // Not Found + else + return null; // Not Found + } + private static object[] BuildMethodParameters(Type Handler, MethodInfo methodInfo, string ActionName, Controller HostController) + { + var methodParams = methodInfo.GetParameters(); + var result = new object[methodParams.Length]; + + for (int i = 0; i < methodParams.Length; i++) + { + var methodParam = methodParams[i]; + + Type parameterType = methodParam.ParameterType; + IModelBinder modelBinder = ModelBinders.Binders.GetBinder(parameterType); + IValueProvider valueProvider = HostController.ValueProvider; + string parameterName = methodParam.Name; + + ModelBindingContext bindingContext = new ModelBindingContext() + { + FallbackToEmptyPrefix = true, + ModelMetadata = ModelMetadataProviders.Current.GetMetadataForType(null, parameterType), + ModelName = parameterName, + ModelState = HostController.ViewData.ModelState, + PropertyFilter = (p) => true, + ValueProvider = valueProvider + }; + + var parameterValue = modelBinder.BindModel(HostController.ControllerContext, bindingContext); + + if (parameterValue == null && methodParam.HasDefaultValue) + parameterValue = methodParam.DefaultValue; + + result[i] = parameterValue; + + //var paramInstance = Activator.CreateInstance(methodParam.ParameterType); + + //IModelBinder binder = ModelBinders.Binders.GetBinder(methodParam.ParameterType); + //ModelBindingContext bindingContext = new ModelBindingContext + //{ + // ModelMetadata = ModelMetadataProviders.Current.GetMetadataForType(() => paramInstance, methodParam.ParameterType), + // ModelName = methodParam.Name, + // ModelState = HostController.ModelState, + // PropertyFilter = (p) => true, + // ValueProvider = HostController.ValueProvider + //}; + //binder.BindModel(HostController.ControllerContext, bindingContext); + + //if (methodParam.HasDefaultValue && paramInstance == null) + // paramInstance = methodParam.DefaultValue; + + //result[i] = paramInstance; + } + + return result; + } + + #region Method Cache + private static Dictionary> WebHandlerCachedItems = new Dictionary>(); + private static Dictionary CacheWebHandler(Type Handler) + { + Dictionary result; + + if (!WebHandlerCachedItems.TryGetValue(Handler, out result)) + { + // Cache Miss + result = new Dictionary(); + var methods = Array.FindAll(Handler.GetMethods(BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly), mi => { return !mi.IsSpecialName && typeof(ActionResult).IsAssignableFrom(mi.ReturnType); }); + foreach (var method in methods) + { + var item = new WebHandlerCachedItem() + { + Method = method.Name, + MethodInfo = method + }; + result.Add(item.Method.ToLower(), item); + } + WebHandlerCachedItems[Handler] = result; + } + + return result; + } + private class WebHandlerCachedItem + { + public string Method { get; set; } + public MethodInfo MethodInfo { get; set; } + } + #endregion + } +} diff --git a/Disco.Services/Plugins/Plugins.cs b/Disco.Services/Plugins/Plugins.cs new file mode 100644 index 00000000..027dfe46 --- /dev/null +++ b/Disco.Services/Plugins/Plugins.cs @@ -0,0 +1,363 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using Disco.Data.Repository; +using System.IO.Compression; + +namespace Disco.Services.Plugins +{ + public static class Plugins + { + private static Dictionary _PluginAssemblyManifests; + private static Dictionary _PluginManifests; + internal static Dictionary FeatureCategoryDisplayNames; + + private static object _PluginLock = new object(); + public static string PluginPath { get; private set; } + + public static PluginManifest GetPlugin(string PluginId, Type ContainsCategoryType) + { + if (_PluginManifests == null) + throw new InvalidOperationException("Plugins have not been initialized"); + + PluginManifest manifest; + if (_PluginManifests.TryGetValue(PluginId, out manifest)) + { + if (ContainsCategoryType == null) + return manifest; + else + { + foreach (var featureManifest in manifest.Features) + { + if (ContainsCategoryType.IsAssignableFrom(featureManifest.CategoryType)) + return manifest; + } + + throw new InvalidFeatureCategoryTypeException(ContainsCategoryType, PluginId); + } + } + else + { + throw new UnknownPluginException(PluginId); + } + } + public static PluginManifest GetPlugin(string PluginId) + { + return GetPlugin(PluginId, null); + } + public static PluginManifest GetPlugin(Assembly PluginAssembly) + { + if (_PluginAssemblyManifests == null) + throw new InvalidOperationException("Plugins have not been initialized"); + + PluginManifest manifest; + if (_PluginAssemblyManifests.TryGetValue(PluginAssembly, out manifest)) + { + return manifest; + } + else + { + throw new UnknownPluginException(PluginAssembly.FullName); + } + } + public static List GetPlugins() + { + if (_PluginManifests == null) + throw new InvalidOperationException("Plugins have not been initialized"); + + return _PluginManifests.Values.ToList(); + } + + public static PluginFeatureManifest GetPluginFeature(string PluginFeatureId, Type CategoryType) + { + if (_PluginManifests == null) + throw new InvalidOperationException("Plugins have not been initialized"); + + var featureManifest = _PluginManifests.Values.SelectMany(pm => pm.Features).Where(fm => fm.Id == PluginFeatureId).FirstOrDefault(); + + if (featureManifest == null) + throw new UnknownPluginException(PluginFeatureId, "Unknown Feature"); + + if (CategoryType == null) + return featureManifest; + else + if (CategoryType.IsAssignableFrom(featureManifest.CategoryType)) + return featureManifest; + else + throw new InvalidFeatureCategoryTypeException(CategoryType, PluginFeatureId); + } + public static PluginFeatureManifest GetPluginFeature(string PluginFeatureId) + { + return GetPluginFeature(PluginFeatureId, null); + } + public static List GetPluginFeatures(Type FeatureCategoryType) + { + if (_PluginManifests == null) + throw new InvalidOperationException("Plugins have not been initialized"); + + return _PluginManifests.Values.SelectMany(pm => pm.Features).Where(fm => fm.CategoryType.IsAssignableFrom(FeatureCategoryType)).OrderBy(fm => fm.PluginManifest.Name).ToList(); + } + public static List GetPluginFeatures() + { + if (_PluginManifests == null) + throw new InvalidOperationException("Plugins have not been initialized"); + + return _PluginManifests.Values.SelectMany(pm => pm.Features).ToList(); + } + + + public static string PluginFeatureCategoryDisplayName(Type FeatureCategoryType) + { + if (FeatureCategoryType == null) + throw new ArgumentNullException("FeatureType"); + + string displayName; + if (FeatureCategoryDisplayNames.TryGetValue(FeatureCategoryType, out displayName)) + return displayName; + else + throw new InvalidOperationException(string.Format("Unknown Plugin Feature Category Type: [{0}]", FeatureCategoryType.Name)); + } + + public static void InitalizePlugins(DiscoDataContext dbContext) + { + if (_PluginManifests == null) + { + lock (_PluginLock) + { + if (_PluginManifests == null) + { + Dictionary loadedPlugins = new Dictionary(); + + PluginPath = dbContext.DiscoConfiguration.PluginsLocation; + + AppDomain appDomain = AppDomain.CurrentDomain; + + // Subscribe to Assembly Resolving + appDomain.AssemblyResolve += CurrentDomain_AssemblyResolve; + + DirectoryInfo pluginDirectoryRoot = new DirectoryInfo(PluginPath); + if (pluginDirectoryRoot.Exists) + { + foreach (DirectoryInfo pluginDirectory in pluginDirectoryRoot.EnumerateDirectories()) + { + string pluginManifestFilename = Path.Combine(pluginDirectory.FullName, "manifest.json"); + if (File.Exists(pluginManifestFilename)) + { + PluginManifest pluginManifest = null; + try + { + pluginManifest = PluginManifest.FromPluginManifestFile(pluginManifestFilename); + + if (pluginManifest != null) + { + if (loadedPlugins.ContainsKey(pluginManifest.Id)) + throw new InvalidOperationException(string.Format("The plugin [{0}] is already initialized", pluginManifest.Id)); + + pluginManifest.InitializePlugin(dbContext); + + loadedPlugins[pluginManifest.Id] = pluginManifest; + } + } + catch (Exception ex) { PluginsLog.LogInitializeException(pluginManifestFilename, ex); } + } + } + } + + _PluginManifests = loadedPlugins; + + ReinitializePluginEnvironment(); + + // Install Plugins - TEMPORARY? Workaround until UI in place? Or Useful for 'built-in' plugins? + if (pluginDirectoryRoot.Exists) + { + foreach (FileInfo pluginPackageFile in pluginDirectoryRoot.EnumerateFiles("*.discoPlugin", SearchOption.TopDirectoryOnly)) + { + // Install Plugin + InstallPlugin(dbContext, pluginPackageFile.FullName); + // Delete Package File + pluginPackageFile.Delete(); + } + } + } + } + } + } + + private static void ReinitializePluginEnvironment() + { + FeatureCategoryDisplayNames = InitializeFeatureCategoryDetails(_PluginManifests.Values); + _PluginAssemblyManifests = _PluginManifests.Values.ToDictionary(p => p.PluginAssembly, p => p); + } + + public static void InstallPlugin(DiscoDataContext dbContext, String PackageFilePath) + { + using (var packageStream = File.OpenRead(PackageFilePath)) + { + InstallPlugin(dbContext, packageStream); + } + } + + public static void InstallPlugin(DiscoDataContext dbContext, Stream PluginPackage) + { + if (_PluginManifests == null) + throw new InvalidOperationException("Plugins have not been initialized"); + + using (MemoryStream packageStream = new MemoryStream()) + { + PluginPackage.CopyTo(packageStream); + packageStream.Position = 0; + + using (ZipArchive packageArchive = new ZipArchive(packageStream, ZipArchiveMode.Read, false)) + { + + ZipArchiveEntry packageManifestEntry = packageArchive.GetEntry("manifest.json"); + if (packageManifestEntry == null) + throw new InvalidDataException("The plugin package does not contain the 'manifest.json' entry"); + + PluginManifest packageManifest; + + using (Stream packageManifestStream = packageManifestEntry.Open()) + { + packageManifest = PluginManifest.FromPluginManifestFile(packageManifestStream); + } + + lock (_PluginLock) + { + if (_PluginManifests == null) + throw new InvalidOperationException("Plugins have not been initialized"); + + // Ensure not already installed + if (_PluginManifests.ContainsKey(packageManifest.Id)) + throw new InvalidOperationException(string.Format("The '{0} [{1}]' Plugin is already installed, please uninstall any existing versions before trying again", packageManifest.Name, packageManifest.Id)); + + string packagePath = Path.Combine(dbContext.DiscoConfiguration.PluginsLocation, packageManifest.Id); + + // Force Delete of Existing Folder + if (Directory.Exists(packagePath)) + Directory.Delete(packagePath, true); + + Directory.CreateDirectory(packagePath); + + // Extract Package Contents + foreach (var packageEntry in packageArchive.Entries) + { + // Determine Extraction Path + var packageEntryTarget = Path.Combine(packagePath, packageEntry.FullName); + + // Create Sub Directories + Directory.CreateDirectory(Path.GetDirectoryName(packageEntryTarget)); + + using (var packageEntryStream = packageEntry.Open()) + { + using (var packageTargetStream = File.Open(packageEntryTarget, FileMode.Create, FileAccess.Write, FileShare.None)) + { + packageEntryStream.CopyTo(packageTargetStream); + } + } + } + + // Reload Manifest + packageManifest = PluginManifest.FromPluginManifestFile(Path.Combine(packagePath, "manifest.json")); + + // Initialize Plugin + packageManifest.InitializePlugin(dbContext); + + // Add Plugin Manifest to Environment + _PluginManifests[packageManifest.Id] = packageManifest; + + // Reinitialize Plugin Environment + ReinitializePluginEnvironment(); + } + + } + } + } + + private static Dictionary InitializeFeatureCategoryDetails(IEnumerable pluginManifests) + { + Dictionary categoryDisplayNames = new Dictionary(); + + // Always add 'Other' + var otherFeatureType = typeof(Features.Other.OtherFeature); + categoryDisplayNames.Add(otherFeatureType, ((PluginFeatureCategoryAttribute)otherFeatureType.GetCustomAttributes(typeof(PluginFeatureCategoryAttribute), false).FirstOrDefault()).DisplayName); + + foreach (var pluginManifest in pluginManifests) + { + foreach (var featureManifest in pluginManifest.Features) + { + if (!categoryDisplayNames.ContainsKey(featureManifest.CategoryType)) + { + string displayName = null; + + var displayAttributes = featureManifest.CategoryType.GetCustomAttributes(typeof(PluginFeatureCategoryAttribute), true); + if (displayAttributes != null && displayAttributes.Length > 0) + displayName = ((PluginFeatureCategoryAttribute)(displayAttributes[0])).DisplayName; + + if (string.IsNullOrWhiteSpace(displayName)) + displayName = featureManifest.CategoryType.Name; + + categoryDisplayNames[featureManifest.CategoryType] = displayName; + } + } + } + return categoryDisplayNames; + } + + #region Plugin Referenced Assemblies Resolving + + public static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args) + { + if (args.RequestingAssembly.Location.StartsWith(PluginPath, StringComparison.InvariantCultureIgnoreCase) && _PluginManifests != null) + { + // Try best guess first + PluginManifest requestingPlugin = _PluginManifests.Values.Where(p => p.Type.Assembly == args.RequestingAssembly).FirstOrDefault(); + if (requestingPlugin != null) + { + Assembly loadedAssembly = CurrentDomain_AssemblyResolve_ByPlugin(requestingPlugin, args); + if (loadedAssembly != null) + return loadedAssembly; + } + + // Try all Plugin References + foreach (var pluginDef in _PluginManifests.Values) + { + Assembly loadedAssembly = CurrentDomain_AssemblyResolve_ByPlugin(pluginDef, args); + if (loadedAssembly != null) + return loadedAssembly; + } + } + return null; + } + private static Assembly CurrentDomain_AssemblyResolve_ByPlugin(PluginManifest pluginManifest, ResolveEventArgs args) + { + if (pluginManifest.AssemblyReferences != null) + { + string assemblyPath; + if (pluginManifest.AssemblyReferences.TryGetValue(args.Name, out assemblyPath)) + { + var resolvedAssemblyPath = Path.Combine(pluginManifest.PluginLocation, assemblyPath); + + try + { + Assembly loadedAssembly = Assembly.LoadFile(resolvedAssemblyPath); + + PluginsLog.LogPluginReferenceAssemblyLoaded(args.Name, resolvedAssemblyPath, args.RequestingAssembly.FullName); + + return loadedAssembly; + } + catch (Exception ex) + { + PluginsLog.LogPluginException(string.Format("Resolving Plugin Reference Assembly: '{0}' [{1}]; Requested by: '{2}' [{3}]; Disco.Plugins.DiscoPlugins.CurrentDomain_AssemblyResolve()", args.Name, resolvedAssemblyPath, args.RequestingAssembly.FullName, args.RequestingAssembly.Location), ex); + } + } + } + return null; + } + + #endregion + } +} diff --git a/Disco.Services/Plugins/PluginsLog.cs b/Disco.Services/Plugins/PluginsLog.cs new file mode 100644 index 00000000..895ed691 --- /dev/null +++ b/Disco.Services/Plugins/PluginsLog.cs @@ -0,0 +1,275 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Services.Logging; +using Disco.Services.Logging.Models; +using System.Reflection; + +namespace Disco.Services.Plugins +{ + public class PluginsLog : LogBase + { + private const int _ModuleId = 10; + + public override string ModuleDescription { get { return "Plugins"; } } + public override int ModuleId { get { return _ModuleId; } } + public override string ModuleName { get { return "Plugins"; } } + + public enum EventTypeIds + { + InitializingPlugins = 10, + InitializingPluginAssembly, + InitializedPlugin, + InitializedPluginFeature, + InitializeWarning = 15, + InitializeError, + InitializeException, + InitializeExceptionWithInner, + PluginException = 20, + PluginExceptionWithInner, + PluginReferenceAssemblyLoaded = 50, + PluginConfigurationLoaded = 100, + PluginConfigurationSaved = 104, + PluginWebControllerAccessed = 200 + } + + public static PluginsLog Current + { + get + { + return (PluginsLog)LogContext.LogModules[_ModuleId]; + } + } + private static void Log(EventTypeIds EventTypeId, params object[] Args) + { + Current.Log((int)EventTypeId, Args); + } + + public static void LogInitializingPlugins(string PluginDirectory) + { + Current.Log((int)EventTypeIds.InitializingPlugins, PluginDirectory); + } + public static void LogInitializingPluginAssembly(Assembly PluginAssembly) + { + Current.Log((int)EventTypeIds.InitializingPluginAssembly, PluginAssembly.FullName, PluginAssembly.Location); + } + public static void LogInitializedPlugin(PluginManifest Menifest) + { + Current.Log((int)EventTypeIds.InitializedPlugin, Menifest.Id, Menifest.Version.ToString(3), Menifest.Type.Name, Menifest.Type.Assembly.Location); + } + public static void LogInitializedPluginFeature(PluginManifest PluginMenifest, PluginFeatureManifest FeatureManifest) + { + Current.Log((int)EventTypeIds.InitializedPluginFeature, PluginMenifest.Id, FeatureManifest.Type.Name); + } + public static void LogInitializeWarning(string Warning) + { + Current.Log((int)EventTypeIds.InitializeWarning, Warning); + } + public static void LogInitializeError(string Error) + { + Current.Log((int)EventTypeIds.InitializeError, Error); + } + public static void LogPluginReferenceAssemblyLoaded(string AssemblyFullName, string AssemblyPath, string RequestedBy) + { + Current.Log((int)EventTypeIds.PluginReferenceAssemblyLoaded, AssemblyFullName, AssemblyPath, RequestedBy); + } + public static void LogPluginConfigurationLoaded(string PluginId, string UserId) + { + Current.Log((int)EventTypeIds.PluginConfigurationLoaded, PluginId, UserId); + } + public static void LogPluginConfigurationSaved(string PluginId, string UserId) + { + Current.Log((int)EventTypeIds.PluginConfigurationSaved, PluginId, UserId); + } + public static void LogPluginWebControllerAccessed(string PluginId, string PluginAction, string UserId) + { + Current.Log((int)EventTypeIds.PluginWebControllerAccessed, PluginId, PluginAction, UserId); + } + + public static void LogInitializeException(string PluginFilename, Exception ex) + { + if (ex.InnerException != null) + { + Log(EventTypeIds.InitializeExceptionWithInner, PluginFilename, ex.GetType().Name, ex.Message, ex.StackTrace, ex.InnerException.GetType().Name, ex.InnerException.Message, ex.InnerException.StackTrace); + } + else + { + Log(EventTypeIds.InitializeException, PluginFilename, ex.GetType().Name, ex.Message, ex.StackTrace); + } + } + + public static void LogPluginException(string Component, Exception ex) + { + if (ex.InnerException != null) + { + Log(EventTypeIds.PluginExceptionWithInner, Component, ex.GetType().Name, ex.Message, ex.StackTrace, ex.InnerException.GetType().Name, ex.InnerException.Message, ex.InnerException.StackTrace); + } + else + { + Log(EventTypeIds.PluginException, Component, ex.GetType().Name, ex.Message, ex.StackTrace); + } + } + + protected override List LoadEventTypes() + { + return new System.Collections.Generic.List + { + new LogEventType + { + Id = (int)EventTypeIds.InitializingPlugins, + ModuleId = _ModuleId, + Name = "Initializing Plugins", + Format = "Starting plugin discovery and initialization from: {0}", + Severity = (int)LogEventType.Severities.Information, + UseLive = false, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = (int)EventTypeIds.InitializingPluginAssembly, + ModuleId = _ModuleId, + Name = "Initializing Plugin Assembly", + Format = "Initializing Plugin Assembly: [{0}] From '{1}'", + Severity = (int)LogEventType.Severities.Information, + UseLive = false, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = (int)EventTypeIds.InitializedPlugin, + ModuleId = _ModuleId, + Name = "Initialized Plugin", + Format = "Initialized Plugin: '{0} (v{1})' [{2}] From '{3}'", + Severity = (int)LogEventType.Severities.Information, + UseLive = false, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = (int)EventTypeIds.InitializedPluginFeature, + ModuleId = _ModuleId, + Name = "Initialized Plugin Feature", + Format = "Initialized Plugin Feature: '{1}' From '{0}'", + Severity = (int)LogEventType.Severities.Information, + UseLive = false, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = (int)EventTypeIds.InitializeWarning, + ModuleId = _ModuleId, + Name = "Initialize Warning", + Format = "Initialize Warning: {0}", + Severity = (int)LogEventType.Severities.Warning, + UseLive = false, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = (int)EventTypeIds.InitializeError, + ModuleId = _ModuleId, + Name = "Initialize Error", + Format = "Initialize Error: {0}", + Severity = (int)LogEventType.Severities.Error, + UseLive = false, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = (int)EventTypeIds.InitializeException, + ModuleId = _ModuleId, + Name = "Initialize Exception", + Format = "Exception: {0}; {1}: {2}; {3}", + Severity = (int)LogEventType.Severities.Error, + UseLive = false, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = (int)EventTypeIds.InitializeExceptionWithInner, + ModuleId = _ModuleId, + Name = "Initialize Exception with Inner Exception", + Format = "Exception: {0}; {1}: {2}; {3}; Inner: {4}: {5}; {6}", + Severity = (int)LogEventType.Severities.Error, + UseLive = false, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = (int)EventTypeIds.PluginException, + ModuleId = _ModuleId, + Name = "Plugin Exception", + Format = "Exception: {0}; {1}: {2}; {3}", + Severity = (int)LogEventType.Severities.Error, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = (int)EventTypeIds.PluginExceptionWithInner, + ModuleId = _ModuleId, + Name = "Plugin Exception with Inner Exception", + Format = "Exception: {0}; {1}: {2}; {3}; Inner: {4}: {5}; {6}", + Severity = (int)LogEventType.Severities.Error, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = (int)EventTypeIds.PluginReferenceAssemblyLoaded, + ModuleId = _ModuleId, + Name = "Plugin Reference Assembly Loaded", + Format = "Loaded Plugin Reference Assembly: [{0}] From: '{1}'; Requested by: [{2}]", + Severity = (int)LogEventType.Severities.Information, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = (int)EventTypeIds.PluginConfigurationLoaded, + ModuleId = _ModuleId, + Name = "Plugin Configuration Loaded", + Format = "Plugin Configuration Loaded: [{0}] by [{1}]", + Severity = (int)LogEventType.Severities.Information, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = (int)EventTypeIds.PluginConfigurationSaved, + ModuleId = _ModuleId, + Name = "Plugin Configuration Saved", + Format = "Plugin Configuration Saved: [{0}] by [{1}]", + Severity = (int)LogEventType.Severities.Information, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = (int)EventTypeIds.PluginWebControllerAccessed, + ModuleId = _ModuleId, + Name = "Plugin Web Controller Accessed", + Format = "Plugin Web Controller Accessed: Plugin [{0}], Action [{1}], By [{2}]", + Severity = (int)LogEventType.Severities.Information, + UseLive = true, + UsePersist = true, + UseDisplay = true + } + }; + } + } +} diff --git a/Disco.Services/Plugins/UnknownPluginException.cs b/Disco.Services/Plugins/UnknownPluginException.cs new file mode 100644 index 00000000..1b1da494 --- /dev/null +++ b/Disco.Services/Plugins/UnknownPluginException.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Disco.Services.Plugins +{ + public class UnknownPluginException : Exception + { + private string _pluginRequested; + + public string PluginRequested + { + get + { + return _pluginRequested; + } + } + + public UnknownPluginException(string PluginRequested) + { + this._pluginRequested = PluginRequested; + } + public UnknownPluginException(string PluginRequested, string Message) : base(Message) + { + this._pluginRequested = PluginRequested; + } + + public override string Message + { + get + { + return string.Format("Unknown Plugin Id: [{0}]", _pluginRequested); + } + } + } +} diff --git a/Disco.Services/Properties/AssemblyInfo.cs b/Disco.Services/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..3c1813ce --- /dev/null +++ b/Disco.Services/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using 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. +[assembly: AssemblyTitle("Disco.Services")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Disco.Services")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// 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. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("3f4b432d-2abd-4bc2-86cd-f90650b73930")] + +// 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.*")] +[assembly: AssemblyVersion("1.2.0131.2002")] +[assembly: AssemblyFileVersion("1.2.0131.2002")] diff --git a/Disco.Services/Tasks/ScheduledTask.cs b/Disco.Services/Tasks/ScheduledTask.cs new file mode 100644 index 00000000..86bbb932 --- /dev/null +++ b/Disco.Services/Tasks/ScheduledTask.cs @@ -0,0 +1,108 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Quartz; +using Disco.Data.Repository; + +namespace Disco.Services.Tasks +{ + public abstract class ScheduledTask : IJob + { + public abstract void InitalizeScheduledTask(DiscoDataContext dbContext); + + internal protected ScheduledTaskStatus Status { get; private set; } + internal protected IJobExecutionContext ExecutionContext { get; private set; } + + public abstract bool CancelInitiallySupported { get; } + public abstract bool SingleInstanceTask { get; } + public virtual bool IsSilent { get { return false; } } + public virtual bool LogExceptionsOnly { get { return false; } } + public abstract string TaskName { get; } + protected abstract void ExecuteTask(); + + #region Protected Triggers + /// + /// Schedules the Task to Begin Immediately + /// + protected ScheduledTaskStatus ScheduleTask() + { + return ScheduleTask(null, null); + } + /// + /// Schedules the Task to Begin Immediately + /// + /// DataMap passed into the executing Task + /// + protected ScheduledTaskStatus ScheduleTask(JobDataMap DataMap) + { + return ScheduleTask(null, DataMap); + } + /// + /// Schedules the Task to Begin based on the Trigger + /// + /// Trigger for the Task + protected ScheduledTaskStatus ScheduleTask(TriggerBuilder Trigger) + { + return ScheduleTask(Trigger, null); + } + /// + /// Schedules the Task to Begin based on the Trigger including the DataMap + /// + /// Trigger for the Task + /// DataMap passed into the executing Task + /// + protected ScheduledTaskStatus ScheduleTask(TriggerBuilder Trigger, JobDataMap DataMap) + { + if (Trigger == null) + Trigger = TriggerBuilder.Create(); // Defaults to Start Immediately + + if (DataMap != null) + Trigger = Trigger.UsingJobData(DataMap); + + return ScheduledTasks.RegisterTask(this, Trigger); + } + #endregion + + public void Execute(IJobExecutionContext context) + { + // Task Status + this.ExecutionContext = context; + this.Status = context.GetDiscoScheduledTaskStatus(); + if (this.Status == null) + this.Status = ScheduledTasks.RegisterTask(this); + + try + { + if (!this.LogExceptionsOnly) + ScheduledTasksLog.LogScheduledTaskExecuted(this.Status.TaskName, this.Status.SessionId); + + this.Status.Started(); + this.ExecuteTask(); + } + catch (Exception ex) + { + ScheduledTasksLog.LogScheduledTaskException(this.Status.TaskName, this.Status.SessionId, this.GetType(), ex); + this.Status.SetTaskException(ex); + } + finally + { + if (!this.Status.FinishedTimestamp.HasValue) // Scheduled Task Didn't Trigger 'Finished' + this.Status.Finished(); + + var nextTriggerTime = context.NextFireTimeUtc; + if (nextTriggerTime.HasValue) + { // Continuous Task + this.Status.Reset(nextTriggerTime.Value.LocalDateTime); + } + else + { + this.UnregisterTask(); + } + + if (!this.LogExceptionsOnly) + ScheduledTasksLog.LogScheduledTaskFinished(this.Status.TaskName, this.Status.SessionId); + } + } + } +} diff --git a/Disco.Services/Tasks/ScheduledTaskCleanup.cs b/Disco.Services/Tasks/ScheduledTaskCleanup.cs new file mode 100644 index 00000000..f3bef948 --- /dev/null +++ b/Disco.Services/Tasks/ScheduledTaskCleanup.cs @@ -0,0 +1,10 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Quartz; + +namespace Disco.Services.Tasks +{ + +} diff --git a/Disco.Services/Tasks/ScheduledTaskStatus.cs b/Disco.Services/Tasks/ScheduledTaskStatus.cs new file mode 100644 index 00000000..7d4ba841 --- /dev/null +++ b/Disco.Services/Tasks/ScheduledTaskStatus.cs @@ -0,0 +1,351 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Quartz; +using System.Web.Script.Serialization; + +namespace Disco.Services.Tasks +{ + public class ScheduledTaskStatus + { + #region Backing Fields + + private string _sessionId; + private string _triggerKey; + private string _taskName; + private Type _taskType; + private bool _isSilent; + + private byte _progress; + private string _currentProcess; + private string _currentDescription; + + private Exception _taskException; + private bool _cancelInitiallySupported; + private bool _cancelSupported; + private bool _isCanceling; + + private DateTime? _startedTimestamp; + private DateTime? _nextScheduledTimestamp; + private DateTime? _finishedTimestamp; + + private string _finishedMessage; + private string _finishedUrl; + + private int _statusVersion = 0; + + #endregion + + #region Properties + + public string SessionId { get { return this._sessionId; } } + public string TriggerKey { get { return this._triggerKey; } } + public string TaskName { get { return this._taskName; } } + public Type TaskType { get { return this._taskType; } } + public bool IsSilent { get { return this._isSilent; } } + + public byte Progress { get { return this._progress; } } + public string CurrentProcess { get { return this._currentProcess; } } + public string CurrentDescription { get { return this._currentDescription; } } + + public Exception TaskException { get { return this._taskException; } } + public bool CancelSupported { get { return this._cancelSupported; } } + public bool IsCanceling { get { return this._isCanceling; } } + + public DateTime? StartedTimestamp { get { return this._startedTimestamp; } } + public DateTime? FinishedTimestamp { get { return this._finishedTimestamp; } } + public DateTime? NextScheduledTimestamp { get { return this._nextScheduledTimestamp; } } + + public string FinishedMessage { get { return this._finishedMessage; } } + public string FinishedUrl { get { return this._finishedUrl; } } + + public int StatusVersion { get { return this._statusVersion; } } + + public bool IsRunning + { + get + { + return _startedTimestamp.HasValue && !_finishedTimestamp.HasValue; + } + } + + #endregion + + #region Events + public delegate void UpdatedEvent(ScheduledTaskStatus sender, string[] ChangedProperties); + public delegate void CancelingEvent(ScheduledTaskStatus sender); + public event UpdatedEvent Updated; + public event CancelingEvent Canceling; + #endregion + + public ScheduledTaskStatus(ScheduledTask Task, string SessionId, string TriggerKey, string FinishedUrl = null) + { + this._taskName = Task.TaskName; + this._taskType = Task.GetType(); + + this._sessionId = SessionId; + this._triggerKey = TriggerKey; + this._cancelInitiallySupported = Task.CancelInitiallySupported; + this._cancelSupported = this._cancelInitiallySupported; + + this._finishedUrl = FinishedUrl; + + this._currentProcess = "Scheduled"; + this._currentDescription = "Scheduled Task for Execution"; + + this._progress = 0; + } + + #region Progress Actions + public void UpdateStatus(byte Progress) + { + this._progress = Progress; + UpdateTriggered(new string[] { "Progress" }); + } + public void UpdateStatus(double Progress) + { + UpdateStatus((byte)Progress); + } + public void UpdateStatus(string CurrentDescription) + { + this._currentDescription = CurrentDescription; + UpdateTriggered(new string[] { "CurrentDescription" }); + } + public void UpdateStatus(byte Progress, string CurrentDescription) + { + this._progress = Progress; + this._currentDescription = CurrentDescription; + UpdateTriggered(new string[] { "Progress", "CurrentDescription" }); + } + public void UpdateStatus(double Progress, string CurrentDescription) + { + UpdateStatus((byte)Progress, CurrentDescription); + } + public void UpdateStatus(byte Progress, string CurrentProcess, string CurrentDescription) + { + this._progress = Progress; + this._currentProcess = CurrentProcess; + this._currentDescription = CurrentDescription; + UpdateTriggered(new string[] { "Progress", "CurrentProcess", "CurrentDescription" }); + } + public void UpdateStatus(double Progress, string CurrentProcess, string CurrentDescription) + { + UpdateStatus((byte)Progress, CurrentProcess, CurrentDescription); + } + #endregion + + #region State Actions + public bool Canceled() + { + if (!this._isCanceling) + { + if (_cancelSupported) + { // Cancelling + this._isCanceling = true; + UpdateTriggered(new string[] { "IsCancelling" }); + if (this.Canceling != null) + Canceling(this); + return true; + } + else + { // Cancelling not supported + return false; + } + } + else + { // Already Cancelling + return true; + } + } + public void SetCancelSupported(bool CancelSupported) + { + if (this._cancelSupported != CancelSupported) + { + this._cancelSupported = CancelSupported; + UpdateTriggered(new string[] { "CancelSupported" }); + } + } + public void SetTaskException(Exception TaskException) + { + if (this._taskException != TaskException) + { + this._taskException = TaskException; + UpdateTriggered(new string[] { "TaskException" }); + } + } + public void SetIsSilent(bool IsSilent) + { + if (this._isSilent != IsSilent) + this._isSilent = IsSilent; + } + public void SetFinishedUrl(string FinishedUrl) + { + if (this._finishedUrl != FinishedUrl) + { + this._finishedUrl = FinishedUrl; + UpdateTriggered(new string[] { "FinishedUrl" }); + } + } + public void SetFinishedMessage(string FinishedMessage) + { + if (this._finishedMessage != FinishedMessage) + { + this._finishedMessage = FinishedMessage; + UpdateTriggered(new string[] { "FinishedMessage" }); + } + } + public void SetNextScheduledTimestamp(DateTime? NextScheduledTimestamp) + { + if (this._nextScheduledTimestamp != NextScheduledTimestamp) + { + this._nextScheduledTimestamp = NextScheduledTimestamp; + UpdateTriggered(new string[] { "NextScheduledTimestamp" }); + } + } + public void Started() + { + List changedProperties = new List() { "IsRunning", "StartedTimestamp" }; + + this._startedTimestamp = DateTime.Now; + + if (this._nextScheduledTimestamp != null) + { + this._nextScheduledTimestamp = null; + changedProperties.Add("NextScheduledTimestamp"); + } + if (this._finishedTimestamp != null) + { + this._finishedTimestamp = null; + changedProperties.Add("FinishedTimestamp"); + } + if (this._progress != 0) + { + this._progress = 0; + changedProperties.Add("Progress"); + } + if (this._currentProcess != "Starting") + { + this._currentProcess = "Starting"; + changedProperties.Add("CurrentProcess"); + } + if (this._currentDescription != "Initializing Task for Execution") + { + this._currentDescription = "Initializing Task for Execution"; + changedProperties.Add("CurrentDescription"); + } + if (this._taskException != null) + { + this._taskException = null; + changedProperties.Add("TaskException"); + } + if (this._cancelSupported != this._cancelInitiallySupported) + { + this._cancelSupported = this._cancelInitiallySupported; + changedProperties.Add("CancelSupported"); + } + { + this._isCanceling = false; + changedProperties.Add("IsCanceling"); + } + if (this._isCanceling) + { + this._isCanceling = false; + changedProperties.Add("IsCanceling"); + } + UpdateTriggered(changedProperties.ToArray()); + } + public void Finished() + { + Finished(this._finishedMessage, this._finishedUrl); + } + public void Finished(string FinishedMessage, string FinishedUrl) + { + List changedProperties = new List() { "IsRunning", "FinishedTimestamp" }; + + this._finishedTimestamp = DateTime.Now; + + if (FinishedMessage != this._finishedMessage) + { + this._finishedMessage = FinishedMessage; + changedProperties.Add("FinishedMessage"); + } + if (FinishedUrl != this._finishedUrl) + { + this._finishedUrl = FinishedUrl; + changedProperties.Add("FinishedUrl"); + } + + if (this._isCanceling) + { + this._isCanceling = false; + changedProperties.Add("IsCanceling"); + } + UpdateTriggered(changedProperties.ToArray()); + } + public void Reset(DateTime? NextScheduledTimestamp) + { + List changedProperties = new List(); + + if (this._nextScheduledTimestamp != NextScheduledTimestamp) + { + this._nextScheduledTimestamp = NextScheduledTimestamp; + changedProperties.Add("NextScheduledTimestamp"); + } + + if (this._startedTimestamp != null) + { + this._startedTimestamp = null; + changedProperties.Add("StartedTimestamp"); + } + if (this._finishedTimestamp != null) + { + this._finishedTimestamp = null; + changedProperties.Add("FinishedTimestamp"); + } + if (this._finishedMessage != null) + { + this._finishedMessage = null; + changedProperties.Add("FinishedMessage"); + } + if (this._finishedUrl != null) + { + this._finishedUrl = null; + changedProperties.Add("FinishedUrl"); + } + if (this._progress != 0) + { + this._progress = 0; + changedProperties.Add("Progress"); + } + if (this._currentProcess != "Scheduled") + { + this._currentProcess = "Scheduled"; + changedProperties.Add("CurrentProcess"); + } + if (this._currentDescription != "Scheduled Task for Execution") + { + this._currentDescription = "Scheduled Task for Execution"; + changedProperties.Add("CurrentDescription"); + } + if (this._isCanceling) + { + this._isCanceling = false; + changedProperties.Add("IsCanceling"); + } + UpdateTriggered(changedProperties.ToArray()); + } + #endregion + + private void UpdateTriggered(string[] ChangedProperties) + { + this._statusVersion++; + + if (Updated != null) + Updated(this, ChangedProperties); + + if (!_isSilent) + ScheduledTasksLiveStatusService.Broadcast(ScheduledTaskStatusLive.FromScheduledTaskStatus(this, ChangedProperties)); + } + } +} diff --git a/Disco.Services/Tasks/ScheduledTaskStatusLive.cs b/Disco.Services/Tasks/ScheduledTaskStatusLive.cs new file mode 100644 index 00000000..ed8ea7d3 --- /dev/null +++ b/Disco.Services/Tasks/ScheduledTaskStatusLive.cs @@ -0,0 +1,56 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Disco.Services.Tasks +{ + public class ScheduledTaskStatusLive + { + public string TaskName { get; set; } + public string SessionId { get; set; } + + public byte Progress { get; set; } + public string CurrentProcess { get; set; } + public string CurrentDescription { get; set; } + + public string TaskExceptionMessage { get; set; } + public bool CancelSupported { get; set; } + public bool IsCancelling { get; set; } + + public bool IsRunning { get; set; } + public DateTime? StartedTimestamp { get; set; } + public DateTime? FinishedTimestamp { get; set; } + public DateTime? NextScheduledTimestamp { get; set; } + + public string FinishedMessage { get; set; } + public string FinishedUrl { get; set; } + + public int StatusVersion { get; set; } + + public string[] ChangedProperties { get; set; } + + public static ScheduledTaskStatusLive FromScheduledTaskStatus(ScheduledTaskStatus Status, string[] ChangedProperties) + { + return new ScheduledTaskStatusLive() + { + TaskName = Status.TaskName, + SessionId = Status.SessionId, + Progress = Status.Progress, + CurrentProcess = Status.CurrentProcess, + CurrentDescription = Status.CurrentDescription, + CancelSupported = Status.CancelSupported, + TaskExceptionMessage = (Status.TaskException == null ? null : Status.TaskException.Message), + IsCancelling = Status.IsCanceling, + IsRunning = Status.IsRunning, + StartedTimestamp = Status.StartedTimestamp, + FinishedTimestamp = Status.FinishedTimestamp, + NextScheduledTimestamp = Status.NextScheduledTimestamp, + FinishedMessage = Status.FinishedMessage, + FinishedUrl = Status.FinishedUrl, + StatusVersion = Status.StatusVersion, + ChangedProperties = ChangedProperties + }; + } + } +} diff --git a/Disco.Services/Tasks/ScheduledTasks.cs b/Disco.Services/Tasks/ScheduledTasks.cs new file mode 100644 index 00000000..f3c46c4e --- /dev/null +++ b/Disco.Services/Tasks/ScheduledTasks.cs @@ -0,0 +1,190 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Quartz; +using Quartz.Impl; +using Disco.Data.Repository; + +namespace Disco.Services.Tasks +{ + public static class ScheduledTasks + { + internal const string SchedulerGroupName = "DiscoScheduledTasks"; + private static IScheduler _TaskScheduler; + + private static object _RunningTasksLock = new object(); + private static List _RunningTasks = new List(); + + public static void InitalizeScheduledTasks(DiscoDataContext dbContext, ISchedulerFactory SchedulerFactory) + { + ScheduledTasksLog.LogInitializingScheduledTasks(); + + try + { + _TaskScheduler = SchedulerFactory.GetScheduler(); + _TaskScheduler.Start(); + + // Scheduled Cleanup + ScheduledTaskCleanup.Schedule(_TaskScheduler); + + // Discover DiscoScheduledTask + var appDomain = AppDomain.CurrentDomain; + + var scheduledTaskTypes = (from a in appDomain.GetAssemblies() + where !a.GlobalAssemblyCache && !a.IsDynamic + from type in a.GetTypes() + where typeof(ScheduledTask).IsAssignableFrom(type) && !type.IsAbstract + select type); + foreach (Type scheduledTaskType in scheduledTaskTypes) + { + ScheduledTask instance = (ScheduledTask)Activator.CreateInstance(scheduledTaskType); + try + { + instance.InitalizeScheduledTask(dbContext); + } + catch (Exception ex) + { + ScheduledTasksLog.LogInitializeException(ex, scheduledTaskType); + } + } + } + catch (Exception ex) + { + ScheduledTasksLog.LogInitializeException(ex); + } + + } + + public static ScheduledTaskStatus GetTaskStatus(string TaskSessionId) + { + return _RunningTasks.Where(t => t.SessionId == TaskSessionId).FirstOrDefault(); + } + public static List GetTaskStatuses(Type TaskType) + { + return _RunningTasks.Where(t => t.TaskType == TaskType).ToList(); + } + public static List GetTaskStatuses() + { + return _RunningTasks.ToList(); + } + + public static ScheduledTaskStatus RegisterTask(ScheduledTask Task) + { + return RegisterTask(Task, null); + } + public static ScheduledTaskStatus RegisterTask(ScheduledTask Task, TriggerBuilder TaskBuilder) + { + var sessionId = Guid.NewGuid().ToString("D"); + var triggerKey = GenerateTriggerKey(); + var taskType = Task.GetType(); + + var taskStatus = new ScheduledTaskStatus(Task, sessionId, triggerKey.Name); + + lock (_RunningTasksLock) + { + if (Task.SingleInstanceTask) + { + var existingGuid = _RunningTasks.Where(t => t.IsRunning && t.TaskType == taskType).Select(t => t.SessionId).FirstOrDefault(); + if (existingGuid != null) + throw new InvalidOperationException(string.Format("This Single-Instance Task is already running, SessionId: {0}", existingGuid)); + } + _RunningTasks.Add(taskStatus); + } + + if (TaskBuilder != null) + { + ITrigger trigger = TaskBuilder.WithIdentity(triggerKey).Build(); + IJobDetail jobDetails = new JobDetailImpl(sessionId, taskType) + { + Description = Task.TaskName, + JobDataMap = trigger.JobDataMap + }; + + _TaskScheduler.ScheduleJob(jobDetails, trigger); + + var nextTriggerTime = trigger.GetNextFireTimeUtc(); + if (nextTriggerTime.HasValue) + taskStatus.SetNextScheduledTimestamp(nextTriggerTime.Value.LocalDateTime); + } + + return taskStatus; + } + public static bool UnregisterTask(this ScheduledTask Task) + { + lock (_RunningTasksLock) + { + if (_RunningTasks.Contains(Task.Status)) + { + //_RunningTasks.Remove(Task.Status); + _TaskScheduler.UnscheduleJob(Task.ExecutionContext.Trigger.Key); + return true; + } + } + return false; + } + public static bool UnregisterTask(this ScheduledTaskStatus TaskStatus) + { + lock (_RunningTasksLock) + { + if (_RunningTasks.Contains(TaskStatus)) + { + //_RunningTasks.Remove(Task.Status); + _TaskScheduler.UnscheduleJob(new TriggerKey(TaskStatus.TriggerKey, SchedulerGroupName)); + return true; + } + } + return false; + } + + public static TriggerKey GenerateTriggerKey() + { + return new TriggerKey(Guid.NewGuid().ToString("D"), SchedulerGroupName); + } + + public static ScheduledTaskStatus GetDiscoScheduledTaskStatus(this IJobExecutionContext context) + { + return GetTaskStatus(context.JobDetail.Key.Name); + } + + private class ScheduledTaskCleanup : IJob + { + public void Execute(IJobExecutionContext context) + { + lock (ScheduledTasks._RunningTasksLock) + { + // Lifetime = 5mins + var expiredTime = DateTime.Now.AddMinutes(-1); + var expiredTasks = ScheduledTasks._RunningTasks.Where( + t => !t.IsRunning && + !t.NextScheduledTimestamp.HasValue && + t.FinishedTimestamp < expiredTime + ).ToArray(); + + foreach (var expiredTask in expiredTasks) + ScheduledTasks._RunningTasks.Remove(expiredTask); + } + } + public static void Schedule(IScheduler TaskScheduler) + { + // Next 10min interval + DateTime now = DateTime.Now; + int mins = (10 - (now.Minute % 10)); + if (mins < 2) + mins += 10; + DateTimeOffset startAt = new DateTimeOffset(now).AddMinutes(mins).AddSeconds(now.Second * -1).AddMilliseconds(now.Millisecond * -1); + ITrigger trigger = TriggerBuilder.Create() + .StartAt(startAt) + .WithSchedule(SimpleScheduleBuilder.RepeatMinutelyForever(10)) + .WithIdentity("ScheduledTaskCleanupTrigger", ScheduledTasks.SchedulerGroupName + "_System") + .Build(); + + IJobDetail job = JobBuilder.Create() + .WithIdentity("ScheduledTaskCleanupJob", ScheduledTasks.SchedulerGroupName + "_System") + .Build(); + + _TaskScheduler.ScheduleJob(job, trigger); + } + } + } +} diff --git a/Disco.Services/Tasks/ScheduledTasksLiveStatusService.cs b/Disco.Services/Tasks/ScheduledTasksLiveStatusService.cs new file mode 100644 index 00000000..1fb7d7f8 --- /dev/null +++ b/Disco.Services/Tasks/ScheduledTasksLiveStatusService.cs @@ -0,0 +1,56 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using SignalR; +using SignalR.Hosting.AspNet; +using SignalR.Infrastructure; + +namespace Disco.Services.Tasks +{ + public class ScheduledTasksLiveStatusService : PersistentConnection + { + + protected override System.Threading.Tasks.Task OnReceivedAsync(IRequest request, string connectionId, string data) + { + // Add to Group + if (!string.IsNullOrWhiteSpace(data) && data.StartsWith("/addToGroups:") && data.Length > 13) + { + var groups = data.Substring(13).Split(','); + foreach (var g in groups) + { + this.Groups.Add(connectionId, g); + } + } + + return base.OnReceivedAsync(request, connectionId, data); + } + + internal static void Broadcast(ScheduledTaskStatusLive SessionStatus) + { + //var message = Models.LogLiveEvent.Create(logModule, eventType, Timestamp, Arguments); + + var connectionManager = GlobalHost.ConnectionManager; //AspNetHost.DependencyResolver.Resolve(); + var connectionContext = connectionManager.GetConnectionContext(); + connectionContext.Groups.Send(_GroupNameAll, SessionStatus); + connectionContext.Groups.Send(SessionStatus.SessionId, SessionStatus); + } + + private const string _GroupNameAll = "__All"; + //private static string _QualifiedSessionName = typeof(ScheduledTasksLiveStatusService).FullName + "."; + //private static string _QualifiedSessionNameAll = _QualifiedSessionName + "__All"; + //private static string LiveStatusGroup(string SessionId) + //{ + // return string.Concat(_QualifiedSessionName, SessionId); + //} + public static string LiveStatusAll + { + get + { + //return _QualifiedTypeNameAll; + return _GroupNameAll; + } + } + + } +} diff --git a/Disco.Services/Tasks/ScheduledTasksLog.cs b/Disco.Services/Tasks/ScheduledTasksLog.cs new file mode 100644 index 00000000..91133787 --- /dev/null +++ b/Disco.Services/Tasks/ScheduledTasksLog.cs @@ -0,0 +1,196 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Services.Logging; +using Disco.Services.Logging.Models; + +namespace Disco.Services.Tasks +{ + public class ScheduledTasksLog : LogBase + { + private const int _ModuleId = 20; + + public override string ModuleDescription { get { return "Scheduled Tasks"; } } + public override int ModuleId { get { return _ModuleId; } } + public override string ModuleName { get { return "ScheduledTasks"; } } + + public enum EventTypeIds + { + InitializingScheduledTasks = 10, + InitializeException = 15, + InitializeExceptionWithInner, + InitializeScheduledTasksException, + InitializeScheduledTasksExceptionWithInner, + ScheduledTasksException = 30, + ScheduledTasksExceptionWithInner, + ScheduledTaskExecuted = 50, + ScheduledTaskFinished = 80, + } + public static ScheduledTasksLog Current + { + get + { + return (ScheduledTasksLog)LogContext.LogModules[_ModuleId]; + } + } + private static void Log(EventTypeIds EventTypeId, params object[] Args) + { + Current.Log((int)EventTypeId, Args); + } + + public static void LogInitializingScheduledTasks() + { + Current.Log((int)EventTypeIds.InitializingScheduledTasks); + } + public static void LogScheduledTaskExecuted(string TaskName, string SessionId) + { + Current.Log((int)EventTypeIds.ScheduledTaskExecuted, TaskName, SessionId); + } + public static void LogScheduledTaskFinished(string TaskName, string SessionId) + { + Current.Log((int)EventTypeIds.ScheduledTaskFinished, TaskName, SessionId); + } + + public static void LogInitializeException(Exception ex) + { + if (ex.InnerException != null) + { + Log(EventTypeIds.InitializeExceptionWithInner, ex.GetType().Name, ex.Message, ex.StackTrace, ex.InnerException.GetType().Name, ex.InnerException.Message, ex.InnerException.StackTrace); + } + else + { + Log(EventTypeIds.InitializeException, ex.GetType().Name, ex.Message, ex.StackTrace); + } + } + public static void LogInitializeException(Exception ex, Type ScheduledTaskType) + { + if (ex.InnerException != null) + { + Log(EventTypeIds.InitializeScheduledTasksExceptionWithInner, ScheduledTaskType.Name, ScheduledTaskType.Assembly.Location, ex.GetType().Name, ex.Message, ex.StackTrace, ex.InnerException.GetType().Name, ex.InnerException.Message, ex.InnerException.StackTrace); + } + else + { + Log(EventTypeIds.InitializeScheduledTasksException, ScheduledTaskType.Name, ScheduledTaskType.Assembly.Location, ex.GetType().Name, ex.Message, ex.StackTrace); + } + } + + public static void LogScheduledTaskException(string ScheduledTaskName, string SessionId, Type ScheduledTaskType, Exception ex) + { + if (ex.InnerException != null) + { + Log(EventTypeIds.ScheduledTasksExceptionWithInner, ScheduledTaskName, SessionId, ScheduledTaskType.Assembly.Location, ex.GetType().Name, ex.Message, ex.StackTrace, ex.InnerException.GetType().Name, ex.InnerException.Message, ex.InnerException.StackTrace); + } + else + { + Log(EventTypeIds.ScheduledTasksException, ScheduledTaskName, SessionId, ScheduledTaskType.Assembly.Location, ex.GetType().Name, ex.Message, ex.StackTrace); + } + } + + protected override List LoadEventTypes() + { + return new System.Collections.Generic.List + { + new LogEventType + { + Id = (int)EventTypeIds.InitializingScheduledTasks, + ModuleId = _ModuleId, + Name = "Initializing Scheduled Tasks", + Format = "Starting Scheduled Task discovery and initialization", + Severity = (int)LogEventType.Severities.Information, + UseLive = false, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = (int)EventTypeIds.InitializeException, + ModuleId = _ModuleId, + Name = "Initialize Exception", + Format = "Exception: {0}: {1}; {2}", + Severity = (int)LogEventType.Severities.Error, + UseLive = false, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = (int)EventTypeIds.InitializeExceptionWithInner, + ModuleId = _ModuleId, + Name = "Initialize Exception with Inner Exception", + Format = "Exception: {0}: {1}; {2}; Inner: {3}: {4}; {5}", + Severity = (int)LogEventType.Severities.Error, + UseLive = false, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = (int)EventTypeIds.InitializeScheduledTasksException, + ModuleId = _ModuleId, + Name = "Initialize Task Exception", + Format = "[{0}] At '{1}'; Exception: {2}: {3}; {4}", + Severity = (int)LogEventType.Severities.Error, + UseLive = false, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = (int)EventTypeIds.InitializeScheduledTasksExceptionWithInner, + ModuleId = _ModuleId, + Name = "Initialize Task Exception with Inner Exception", + Format = "[{0}] At '{1}'; Exception: {2}: {3}; {4}; Inner: {5}: {6}; {7}", + Severity = (int)LogEventType.Severities.Error, + UseLive = false, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = (int)EventTypeIds.ScheduledTasksException, + ModuleId = _ModuleId, + Name = "Scheduled Task Exception", + Format = "Task Name: {0}; SessionId: {1}; At: '{2}'; Exception: {3}: {4}; {5}", + Severity = (int)LogEventType.Severities.Error, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = (int)EventTypeIds.ScheduledTasksExceptionWithInner, + ModuleId = _ModuleId, + Name = "Scheduled Task Exception with Inner Exception", + Format = "Task Name: {0}; SessionId: {1}; At: '{2}'; Exception: {3}: {4}; {5}; Inner: {6}: {7}; {8}", + Severity = (int)LogEventType.Severities.Error, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = (int)EventTypeIds.ScheduledTaskExecuted, + ModuleId = _ModuleId, + Name = "Scheduled Task Started", + Format = "Scheduled Task Started: {0}; Session Id: {1}", + Severity = (int)LogEventType.Severities.Information, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = (int)EventTypeIds.ScheduledTaskFinished, + ModuleId = _ModuleId, + Name = "Scheduled Task Finished", + Format = "Scheduled Task Finished: {0}; Session Id: {1}", + Severity = (int)LogEventType.Severities.Information, + UseLive = true, + UsePersist = true, + UseDisplay = true + } + }; + } + } +} diff --git a/Disco.Services/_Plugins/Categories/CertificateProvider/CertificateProviderLog.cs b/Disco.Services/_Plugins/Categories/CertificateProvider/CertificateProviderLog.cs new file mode 100644 index 00000000..36c2dbc1 --- /dev/null +++ b/Disco.Services/_Plugins/Categories/CertificateProvider/CertificateProviderLog.cs @@ -0,0 +1,304 @@ +using Disco.Services.Logging; +using Disco.Services.Logging.Models; +using System; +using System.Collections.Generic; +using System.Diagnostics; +namespace Disco.Services.Plugins.Categories.CertificateProvider +{ + public class CertificateProvidersLog : LogBase + { + public enum EventTypeIds + { + RetrievalStarting = 10, + RetrievalProgress, + RetrievalFinished, + RetrievalWarning = 15, + RetrievalError, + RetrievalCertificateStarting = 20, + RetrievalCertificateFinished = 22, + RetrievalCertificateWarning = 25, + RetrievalCertificateError, + Allocated = 40, + AllocationFailed = 50 + } + private const int _ModuleId = 60; + private static bool _IsCertificateRetrievalProcessing; + private static string _CertificateRetrievalStatus; + private static int _CertificateRetrievalProgress; + public static CertificateProvidersLog Current + { + get + { + return (CertificateProvidersLog)LogContext.LogModules[60]; + } + } + public static bool IsCertificateRetrievalProcessing + { + get + { + return CertificateProvidersLog._IsCertificateRetrievalProcessing; + } + } + public override string ModuleDescription + { + get + { + return "Certificate Providers"; + } + } + public override int ModuleId + { + get + { + return 60; + } + } + public override string ModuleName + { + get + { + return "CertificateProviders"; + } + } + [System.Diagnostics.DebuggerNonUserCode] + public CertificateProvidersLog() + { + } + private static void Log(CertificateProvidersLog.EventTypeIds EventTypeId, params object[] Args) + { + CertificateProvidersLog.Current.Log((int)EventTypeId, Args); + } + public static void LogRetrievalStarting(int CertificateCount, int CertificateIdFrom, int CertificateIdTo) + { + CertificateProvidersLog.Log(CertificateProvidersLog.EventTypeIds.RetrievalStarting, new object[] + { + CertificateCount, + CertificateIdFrom, + CertificateIdTo + }); + } + public static void LogRetrievalFinished() + { + CertificateProvidersLog.Log(CertificateProvidersLog.EventTypeIds.RetrievalFinished, new object[0]); + } + public static void LogRetrievalWarning(string Message) + { + CertificateProvidersLog.Log(CertificateProvidersLog.EventTypeIds.RetrievalWarning, new object[] + { + Message + }); + } + public static void LogRetrievalError(string Message) + { + CertificateProvidersLog.Log(CertificateProvidersLog.EventTypeIds.RetrievalError, new object[] + { + Message + }); + } + public static void LogRetrievalCertificateStarting(string CertificateId) + { + CertificateProvidersLog.Log(CertificateProvidersLog.EventTypeIds.RetrievalCertificateStarting, new object[] + { + CertificateId + }); + } + public static void LogRetrievalCertificateFinished(string CertificateId) + { + CertificateProvidersLog.Log(CertificateProvidersLog.EventTypeIds.RetrievalCertificateFinished, new object[] + { + CertificateId + }); + } + public static void LogRetrievalCertificateWarning(string CertificateId, string Message) + { + CertificateProvidersLog.Log(CertificateProvidersLog.EventTypeIds.RetrievalCertificateWarning, new object[] + { + CertificateId, + Message + }); + } + public static void LogRetrievalCertificateError(string CertificateId, string Message) + { + CertificateProvidersLog.Log(CertificateProvidersLog.EventTypeIds.RetrievalCertificateError, new object[] + { + CertificateId, + Message + }); + } + public static void LogAllocated(string CertificateId, string DeviceSerialNumber) + { + CertificateProvidersLog.Log(CertificateProvidersLog.EventTypeIds.Allocated, new object[] + { + CertificateId, + DeviceSerialNumber + }); + } + public static void LogAllocationFailed(string DeviceSerialNumber) + { + CertificateProvidersLog.Log(CertificateProvidersLog.EventTypeIds.AllocationFailed, new object[] + { + DeviceSerialNumber + }); + } + public static void LogCertificateRetrievalProgress(bool? IsProcessing, int? Progress, string Status) + { + bool flag = IsProcessing.HasValue; + if (flag) + { + CertificateProvidersLog._IsCertificateRetrievalProcessing = IsProcessing.Value; + } + flag = CertificateProvidersLog._IsCertificateRetrievalProcessing; + if (flag) + { + bool flag2 = Status != null; + if (flag2) + { + CertificateProvidersLog._CertificateRetrievalStatus = Status; + } + flag2 = Progress.HasValue; + if (flag2) + { + CertificateProvidersLog._CertificateRetrievalProgress = Progress.Value; + } + } + else + { + CertificateProvidersLog._CertificateRetrievalStatus = null; + CertificateProvidersLog._CertificateRetrievalProgress = 0; + } + CertificateProvidersLog.Log(CertificateProvidersLog.EventTypeIds.RetrievalProgress, new object[] + { + CertificateProvidersLog._IsCertificateRetrievalProcessing, + CertificateProvidersLog._CertificateRetrievalProgress, + CertificateProvidersLog._CertificateRetrievalStatus + }); + } + protected override System.Collections.Generic.List LoadEventTypes() + { + return new System.Collections.Generic.List + { + new LogEventType + { + Id = 10, + ModuleId = 60, + Name = "Retrieval Starting", + Format = "Starting retrieval of {0} certificate/s ({1} to {2})", + Severity = 0, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 11, + ModuleId = 60, + Name = "Retrieval Progress", + Format = "Processing: {0}; {1}% Complete; Status: {2}", + Severity = 0, + UseLive = true, + UsePersist = false, + UseDisplay = false + }, + new LogEventType + { + Id = 12, + ModuleId = 60, + Name = "Retrieval Finished", + Format = "Retrieval of Certificates Complete", + Severity = 0, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 15, + ModuleId = 60, + Name = "Retrieval Warning", + Format = "Retrieval Warning: {0}", + Severity = 1, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 16, + ModuleId = 60, + Name = "Retrieval Error", + Format = "Retrieval Error: {0}", + Severity = 2, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 20, + ModuleId = 60, + Name = "Retrieval Certificate Starting", + Format = "Retrieving Certificate: {0}", + Severity = 0, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 22, + ModuleId = 60, + Name = "Retrieval Certificate Finished", + Format = "Certificate Retrieved: {0}", + Severity = 0, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 25, + ModuleId = 60, + Name = "Retrieval Certificate Warning", + Format = "{0} Certificate Warning: {1}", + Severity = 1, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 26, + ModuleId = 60, + Name = "Retrieval Certificate Error", + Format = "{0} Certificate Error: {1}", + Severity = 2, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 40, + ModuleId = 60, + Name = "Allocated", + Format = "Certificate {0} allocated to {1}", + Severity = 0, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = 50, + ModuleId = 60, + Name = "Allocation Failed", + Format = "No certificates available for Device: {0}", + Severity = 2, + UseLive = true, + UsePersist = true, + UseDisplay = true + } + }; + } + } +} diff --git a/Disco.Services/_Plugins/Categories/CertificateProvider/CertificateProviderPlugin.cs b/Disco.Services/_Plugins/Categories/CertificateProvider/CertificateProviderPlugin.cs new file mode 100644 index 00000000..c1cf4153 --- /dev/null +++ b/Disco.Services/_Plugins/Categories/CertificateProvider/CertificateProviderPlugin.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Data.Repository; +using Disco.Models.Repository; + +namespace Disco.Services.Plugins.Categories.CertificateProvider +{ + [PluginCategory(DisplayName = "Certificate Providers")] + public abstract class CertificateProviderPlugin : Plugin + { + public override sealed Type PluginCategoryType + { + get { return typeof(CertificateProviderPlugin); } + } + + // Certificate Plugin Requirements + public abstract string CertificateProviderId { get; } + public abstract Tuple> AllocateCertificate(DiscoDataContext dbContext, Device Device); + + } +} diff --git a/Disco.Services/_Plugins/Categories/InteroperabilityProvider/InteroperabilityProviderPlugin.cs b/Disco.Services/_Plugins/Categories/InteroperabilityProvider/InteroperabilityProviderPlugin.cs new file mode 100644 index 00000000..66be1088 --- /dev/null +++ b/Disco.Services/_Plugins/Categories/InteroperabilityProvider/InteroperabilityProviderPlugin.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Disco.Services.Plugins.Categories.InteroperabilityProvider +{ + [PluginCategory(DisplayName = "Interoperability Providers")] + public abstract class InteroperabilityProviderPlugin : Plugin + { + public override sealed Type PluginCategoryType + { + get { return typeof(InteroperabilityProviderPlugin); } + } + } +} diff --git a/Disco.Services/_Plugins/Categories/WarrantyProvider/WarrantyProviderPlugin.cs b/Disco.Services/_Plugins/Categories/WarrantyProvider/WarrantyProviderPlugin.cs new file mode 100644 index 00000000..05439ef9 --- /dev/null +++ b/Disco.Services/_Plugins/Categories/WarrantyProvider/WarrantyProviderPlugin.cs @@ -0,0 +1,52 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web.Mvc; +using Disco.Data.Repository; +using Disco.Models.BI.Config; +using Disco.Models.Repository; + +namespace Disco.Services.Plugins.Categories.WarrantyProvider +{ + [PluginCategory(DisplayName = "Warranty Providers")] + public abstract class WarrantyProviderPlugin : Plugin + { + public override sealed Type PluginCategoryType + { + get { return typeof(WarrantyProviderPlugin); } + } + + // Warranty Plugin Requirements + public abstract string WarrantyProviderId { get; } + public abstract Type SubmitJobViewType { get; } + public abstract dynamic SubmitJobViewModel(DiscoDataContext dbContext, Controller controller, Job Job, OrganisationAddress Address, User TechUser); + public abstract Dictionary SubmitJobParseProperties(DiscoDataContext dbContext, FormCollection form, Controller controller, Job Job, OrganisationAddress Address, User TechUser, string FaultDescription); + public abstract Dictionary SubmitJobDiscloseInfo(DiscoDataContext dbContext, Job Job, OrganisationAddress Address, User TechUser, string FaultDescription, Dictionary WarrantyProviderProperties); + public abstract string SubmitJob(DiscoDataContext dbContext, Job Job, OrganisationAddress Address, User TechUser, string FaultDescription, Dictionary WarrantyProviderProperties); + + public abstract Type JobDetailsViewType { get; } + public bool JobDetailsSupported { get { return this.JobDetailsViewType != null; } } + public abstract dynamic JobDetailsViewModel(DiscoDataContext dbContext, Controller controller, Job Job); + + public static PluginDefinition FindPlugin(string PlugIdOrWarrantyProviderId) + { + var defs = Plugins.GetPlugins(typeof(WarrantyProviderPlugin)); + var def = defs.FirstOrDefault(d => d.Id.Equals(PlugIdOrWarrantyProviderId, StringComparison.InvariantCultureIgnoreCase)); + if (def != null) + return def; + else + foreach (var d in defs) + { + using (var providerInstance = d.CreateInstance()) + { + if (providerInstance.WarrantyProviderId != null && providerInstance.WarrantyProviderId.Equals(PlugIdOrWarrantyProviderId, StringComparison.InvariantCultureIgnoreCase)) + { + return d; + } + } + } + + return null; + } + } +} diff --git a/Disco.Services/_Plugins/Categories/WarrantyProvider/WarrantyProviderSubmitJobException.cs b/Disco.Services/_Plugins/Categories/WarrantyProvider/WarrantyProviderSubmitJobException.cs new file mode 100644 index 00000000..c582d74b --- /dev/null +++ b/Disco.Services/_Plugins/Categories/WarrantyProvider/WarrantyProviderSubmitJobException.cs @@ -0,0 +1,12 @@ +using System; + +namespace Disco.Services.Plugins.Categories.WarrantyProvider +{ + public class WarrantyProviderSubmitJobException : Exception + { + public WarrantyProviderSubmitJobException(string Message) + : base(Message) + { + } + } +} diff --git a/Disco.Services/_Plugins/IPluginConfiguration.cs b/Disco.Services/_Plugins/IPluginConfiguration.cs new file mode 100644 index 00000000..83c5c678 --- /dev/null +++ b/Disco.Services/_Plugins/IPluginConfiguration.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Data.Repository; +using System.Web.Mvc; + +namespace Disco.Services.Plugins +{ + public interface IPluginConfiguration + { + Type ConfigurationViewType { get; } + dynamic ConfigurationViewModel(DiscoDataContext dbContext, Controller controller); + bool ConfigurationSave(DiscoDataContext dbContext, FormCollection form, Controller controller); + } +} diff --git a/Disco.Services/_Plugins/IPluginWebController.cs b/Disco.Services/_Plugins/IPluginWebController.cs new file mode 100644 index 00000000..8256c569 --- /dev/null +++ b/Disco.Services/_Plugins/IPluginWebController.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Web.Mvc; + +namespace Disco.Services.Plugins +{ + public interface IPluginWebController + { + ActionResult ExecuteAction(string ActionName, Controller HostController); + } +} diff --git a/Disco.Services/_Plugins/InvalidCategoryTypeException.cs b/Disco.Services/_Plugins/InvalidCategoryTypeException.cs new file mode 100644 index 00000000..66990a78 --- /dev/null +++ b/Disco.Services/_Plugins/InvalidCategoryTypeException.cs @@ -0,0 +1,50 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Disco.Services.Plugins +{ + public class InvalidCategoryTypeException : Exception + { + private string _pluginRequested; + private Type _categoryType; + + public string PluginRequested + { + get + { + return _pluginRequested; + } + } + public Type CategoryType + { + get + { + return _categoryType; + } + } + + public InvalidCategoryTypeException(Type CategoryType) + : this(CategoryType, null) + { + } + public InvalidCategoryTypeException(Type CategoryType, string PluginRequested) + { + this._categoryType = CategoryType; + this._pluginRequested = PluginRequested; + } + + public override string Message + { + get + { + if (string.IsNullOrEmpty(_pluginRequested)) + return string.Format("Invalid Category Type [{0}]", _categoryType.Name); + else + return string.Format("Plugin [{1}] is not of the correct Category Type [{0}]", _categoryType.Name, _pluginRequested); + } + } + + } +} diff --git a/Disco.Services/_Plugins/Plugin.cs b/Disco.Services/_Plugins/Plugin.cs new file mode 100644 index 00000000..6079ce52 --- /dev/null +++ b/Disco.Services/_Plugins/Plugin.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Data.Repository; +using System.Web.Mvc; + +namespace Disco.Services.Plugins +{ + public abstract class Plugin : IDisposable + { + public string Id { get { return this.GetType().Name; } } + public abstract string Name { get; } + public abstract string Author { get; } + public abstract Version Version { get; } + + public abstract Type PluginCategoryType { get; } + + public abstract bool Initalize(DiscoDataContext dbContext); + + public abstract void Dispose(); + + public override sealed string ToString() + { + return string.Format("{0} ({1}) - v{2}", this.Name, this.Id, this.Version.ToString(3)); + } + } +} diff --git a/Disco.Services/_Plugins/PluginCategoryAttribute.cs b/Disco.Services/_Plugins/PluginCategoryAttribute.cs new file mode 100644 index 00000000..d2ec3d4e --- /dev/null +++ b/Disco.Services/_Plugins/PluginCategoryAttribute.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Disco.Services.Plugins +{ + [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)] + public class PluginCategoryAttribute : Attribute + { + public string DisplayName { get; set; } + } +} diff --git a/Disco.Services/_Plugins/PluginDefinition.cs b/Disco.Services/_Plugins/PluginDefinition.cs new file mode 100644 index 00000000..1393e4fa --- /dev/null +++ b/Disco.Services/_Plugins/PluginDefinition.cs @@ -0,0 +1,86 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Reflection; +using System.Web.Mvc; + +namespace Disco.Services.Plugins +{ + public class PluginDefinition + { + public string Id { get; private set; } + public string Name { get; private set; } + public string Author { get; private set; } + public Version Version { get; private set; } + + public Type PluginType { get; private set; } + public Type PluginCategoryType { get; private set; } + + public Dictionary PluginReferenceAssemblies { get; private set; } + public string PluginHostDirectory { get; private set; } + + public bool HasConfiguration { get; private set; } + public bool HasWebController { get; private set; } + + public PluginDefinition(Plugin PluginInstance, string HostDirectory, Dictionary ReferencedAssemblies = null) + { + Type pluginType = PluginInstance.GetType(); + + if (string.IsNullOrWhiteSpace(PluginInstance.Id)) + throw new ArgumentNullException("PluginInstance.Id"); + if (string.IsNullOrWhiteSpace(PluginInstance.Name)) + throw new ArgumentNullException("PluginInstance.Name"); + if (string.IsNullOrWhiteSpace(PluginInstance.Author)) + throw new ArgumentNullException("PluginInstance.Author"); + if (string.IsNullOrWhiteSpace(HostDirectory)) + throw new ArgumentNullException("HostDirectory"); + if (PluginInstance.Version == null) + throw new ArgumentNullException("PluginInstance.Version"); + if (PluginInstance.PluginCategoryType == null) + throw new ArgumentNullException("PluginInstance.PluginCategoryType"); + if (!PluginInstance.PluginCategoryType.IsAssignableFrom(pluginType)) + throw new ArgumentException(string.Format("The plugin [{0}] does not inherit the Category [{1}]", pluginType.Name, PluginInstance.PluginCategoryType.Name), "PluginInstance.PluginCategoryType"); + + this.Id = PluginInstance.Id; + this.Name = PluginInstance.Name; + this.Author = PluginInstance.Author; + this.Version = PluginInstance.Version; + this.PluginType = pluginType; + this.PluginCategoryType = PluginInstance.PluginCategoryType; + + this.PluginHostDirectory = HostDirectory; + + if (ReferencedAssemblies != null && ReferencedAssemblies.Count > 0) + this.PluginReferenceAssemblies = ReferencedAssemblies; + + // Determine (and Validate) if has Configuration + IPluginConfiguration pluginConfiguration = PluginInstance as IPluginConfiguration; + if (pluginConfiguration != null) + { + if (pluginConfiguration.ConfigurationViewType == null) + throw new ArgumentNullException("PluginInstance.ConfigurationViewType"); + if (!typeof(WebViewPage).IsAssignableFrom(pluginConfiguration.ConfigurationViewType)) + throw new ArgumentException(string.Format("The plugin [{0}] ConfigurationViewType must inherit System.Web.Mvc.WebViewPage", pluginType.Name), "PluginInstance.ConfigurationViewType"); + + this.HasConfiguration = true; + } + + // Determine if has Web Controller + IPluginWebController pluginWebController = PluginInstance as IPluginWebController; + this.HasWebController = (pluginWebController != null); + } + + public Plugin CreateInstance() + { + return (Plugin)Activator.CreateInstance(PluginType); + } + public PluginType CreateInstance() + { + if (typeof(PluginType).IsAssignableFrom(this.PluginType)) + return (PluginType)Activator.CreateInstance(this.PluginType); + else + throw new InvalidOperationException(string.Format("The plugin [{0}] cannot be cast into type [{1}]", this.PluginType.Name, typeof(PluginType).Name)); + } + } +} diff --git a/Disco.Services/_Plugins/PluginExtensions.cs b/Disco.Services/_Plugins/PluginExtensions.cs new file mode 100644 index 00000000..1bab88b3 --- /dev/null +++ b/Disco.Services/_Plugins/PluginExtensions.cs @@ -0,0 +1,75 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Data.Repository; +using System.IO; +using System.Web.Mvc; +using System.Web.Routing; +using System.Web; + +namespace Disco.Services.Plugins +{ + public static class PluginExtensions + { + public static string PluginStorage(this Plugin plugin, DiscoDataContext dbContext) + { + string pluginStorageLocationRoot = dbContext.DiscoConfiguration.PluginStorageLocation; + + string storageLocation = Path.Combine(pluginStorageLocationRoot, plugin.Id); + + if (!Directory.Exists(storageLocation)) + Directory.CreateDirectory(storageLocation); + + return storageLocation; + } + + public static string PluginCategoryDisplayName(this Plugin plugin) + { + if (plugin == null) + throw new ArgumentNullException("plugin"); + + return Plugins.CategoryDisplayNames[plugin.PluginCategoryType]; + } + + #region Model Binding from Controller + public static bool TryUpdateModel(this Controller controller, TModel model) where TModel : class + { + return controller.TryUpdateModel(model, null, controller.ValueProvider); + } + public static bool TryUpdateModel(this Controller controller, TModel model, IValueProvider valueProvider) where TModel : class + { + return controller.TryUpdateModel(model, null, valueProvider); + } + public static bool TryUpdateModel(this Controller controller, TModel model, string prefix) where TModel : class + { + return controller.TryUpdateModel(model, prefix, controller.ValueProvider); + } + public static bool TryUpdateModel(this Controller controller, TModel model, string prefix, IValueProvider valueProvider) where TModel : class + { + if (model == null) + throw new ArgumentNullException("model"); + if (valueProvider == null) + throw new ArgumentNullException("valueProvider"); + + Predicate predicate = propertyName => true; + IModelBinder binder = ModelBinders.Binders.GetBinder(typeof(TModel)); + + ModelBindingContext context2 = new ModelBindingContext + { + ModelMetadata = ModelMetadataProviders.Current.GetMetadataForType(() => model, typeof(TModel)), + ModelName = prefix, + ModelState = controller.ModelState, + PropertyFilter = predicate, + ValueProvider = valueProvider + }; + + ModelBindingContext bindingContext = context2; + + binder.BindModel(controller.ControllerContext, bindingContext); + + return controller.ModelState.IsValid; + } + #endregion + } +} diff --git a/Disco.Services/_Plugins/PluginWebControllerException.cs b/Disco.Services/_Plugins/PluginWebControllerException.cs new file mode 100644 index 00000000..74dc16e2 --- /dev/null +++ b/Disco.Services/_Plugins/PluginWebControllerException.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Disco.Services.Plugins +{ + public class PluginWebControllerException : Exception + { + public PluginWebControllerException(string PluginId, string PluginAction, Exception InnerException) + : base(string.Format("An error occurred executing the Disco Plugin [{0}] Web Controller Action: [{0}]", PluginId, PluginAction), InnerException) + { + } + } +} diff --git a/Disco.Services/_Plugins/PluginWebControllerExtensions.cs b/Disco.Services/_Plugins/PluginWebControllerExtensions.cs new file mode 100644 index 00000000..52c86c07 --- /dev/null +++ b/Disco.Services/_Plugins/PluginWebControllerExtensions.cs @@ -0,0 +1,210 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Web.Routing; +using System.Web.Mvc; +using RazorGenerator.Mvc; +using System.IO; + +namespace Disco.Services.Plugins +{ + public static class PluginWebControllerExtensions + { + #region Virtual Directories + public static string WebControllerRootUrl(this IPluginWebController plugin, RequestContext requestContext) + { + var tempPath = plugin.WebControllerActionUrl(requestContext, "_"); + return tempPath.Substring(0, tempPath.LastIndexOf(@"/") + 1); + } + public static string WebControllerActionUrl(this IPluginWebController plugin, RequestContext requestContext, string PluginAction) + { + //return string.Format("~/Config/Plugins/{0}/{1}", HttpUtility.UrlEncode(((IDiscoPlugin)plugin).Id), HttpUtility.UrlEncode(PluginAction)); + var routeValues = new RouteValueDictionary(new { PluginId = ((Plugin)plugin).Id, PluginAction = PluginAction }); + return UrlHelper.GenerateUrl("Config_Plugins_PluginWebControllerActions", "PluginAction", "Plugins", routeValues, RouteTable.Routes, requestContext, true); + } + #endregion + + #region Action Results + + #region Compiled View + private static string[] _viewFileNames = new string[] { "cshtml" }; + public static ActionResult CompiledView(this Controller HostController, Type CompiledViewType, object Model, bool UseDiscoLayout) + { + string layoutPath = UseDiscoLayout ? "~/Views/Shared/_Layout.cshtml" : null; + + IView v = new PrecompiledMvcView(HostController.Request.Path, layoutPath, CompiledViewType, false, _viewFileNames); + + if (Model != null) + HostController.ViewData.Model = Model; + + return new ViewResult { View = v, ViewData = HostController.ViewData, TempData = HostController.TempData }; + } + public static ActionResult CompiledView(this Controller HostController, Type CompiledViewType, bool UseDiscoLayout) + { + return HostController.CompiledView(CompiledViewType, null, UseDiscoLayout); + } + public static ActionResult CompiledView(this Controller HostController, Type CompiledViewType, object Model) + { + return HostController.CompiledView(CompiledViewType, Model, true); + } + public static ActionResult CompiledView(this Controller HostController, Type CompiledViewType) + { + return HostController.CompiledView(CompiledViewType, false, true); + } + public static ActionResult CompiledPartialView(this Controller HostController, Type PartialCompiledViewType, object Model) + { + IView v = new PrecompiledMvcView(HostController.Request.Path, PartialCompiledViewType, false, _viewFileNames); + + if (Model != null) + HostController.ViewData.Model = Model; + + return new PartialViewResult { View = v, ViewData = HostController.ViewData, TempData = HostController.TempData }; + } + public static ActionResult CompiledPartialView(this Controller HostController, Type PartialCompiledViewType) + { + return HostController.CompiledView(PartialCompiledViewType, null); + } + #endregion + + #region Content + public static ActionResult Content(this Controller HostController, string content, string contentType, Encoding contentEncoding) + { + return new ContentResult { Content = content, ContentType = contentType, ContentEncoding = contentEncoding }; + } + public static ActionResult Content(this Controller HostController, string content, string contentType) + { + return HostController.Content(content, null, null); + } + public static ActionResult Content(this Controller HostController, string content) + { + return HostController.Content(content, null); + } + #endregion + + #region Json + public static ActionResult Json(this Controller HostController, object data, JsonRequestBehavior behavior) + { + return new JsonResult { Data = data, ContentType = null, ContentEncoding = null, JsonRequestBehavior = behavior }; + } + #endregion + + #region File + public static ActionResult File(this Controller HostController, Stream fileStream, string contentType) + { + return HostController.File(fileStream, contentType, null); + } + public static ActionResult File(this Controller HostController, Stream fileStream, string contentType, string fileDownloadName) + { + return new FileStreamResult(fileStream, contentType) { FileDownloadName = fileDownloadName }; + } + public static ActionResult File(this Controller HostController, byte[] fileContents, string contentType) + { + return HostController.File(fileContents, contentType, null); + } + public static ActionResult File(this Controller HostController, byte[] fileContents, string contentType, string fileDownloadName) + { + return new FileContentResult(fileContents, contentType) { FileDownloadName = fileDownloadName }; + } + #endregion + + #region HttpNotFound + public static ActionResult HttpNotFound(this Controller HostController, string statusDescription) + { + return new HttpNotFoundResult(statusDescription); + } + public static ActionResult HttpNotFound(this Controller HostController) + { + return HostController.HttpNotFound(null); + } + #endregion + + #region Redirect + public static ActionResult RedirectToScheduledTaskStatus(this Controller HostController, string SessionId) + { + if (string.IsNullOrEmpty(SessionId)) + throw new ArgumentNullException(SessionId); + + return HostController.RedirectToAction("TaskStatus", "Logging", "Config", new { id = SessionId }); + } + public static ActionResult Redirect(this Controller HostController, string url) + { + if (string.IsNullOrEmpty(url)) + throw new ArgumentNullException("url"); + + return new RedirectResult(url); + } + public static ActionResult RedirectPermanent(this Controller HostController, string url) + { + if (string.IsNullOrEmpty(url)) + throw new ArgumentNullException("url"); + + return new RedirectResult(url, true); + } + public static ActionResult RedirectToAction(this Controller HostController, IPluginWebController Plugin, string PluginAction) + { + if (string.IsNullOrEmpty(PluginAction)) + throw new ArgumentNullException("PluginAction"); + + string pluginActionUrl = Plugin.WebControllerActionUrl(HostController.Request.RequestContext, PluginAction); + return new RedirectResult(pluginActionUrl, false); + } + public static ActionResult RedirectToRoute(this Controller HostController, string routeName, object routeValues) + { + RouteValueDictionary routeValueDictionary; + if (routeValues != null) + routeValueDictionary = new RouteValueDictionary(routeValues); + else + routeValueDictionary = new RouteValueDictionary(); + + return new RedirectToRouteResult(routeName, routeValueDictionary); + } + public static ActionResult RedirectToRoute(this Controller HostController, string routeName) + { + return HostController.RedirectToRoute(routeName, null); + } + public static ActionResult RedirectToAction(this Controller HostController, string actionName, string controllerName, string areaName, object routeValues) + { + RouteValueDictionary routeValueDictionary; + if (routeValues != null) + routeValueDictionary = new RouteValueDictionary(routeValues); + else + routeValueDictionary = new RouteValueDictionary(); + + routeValueDictionary["action"] = actionName; + routeValueDictionary["controller"] = controllerName; + if (areaName != null) + routeValueDictionary["area"] = areaName; + + return new RedirectToRouteResult(routeValueDictionary); + } + public static ActionResult RedirectToAction(this Controller HostController, string actionName, string controllerName, string areaName) + { + return HostController.RedirectToAction(actionName, controllerName, areaName, null); + } + public static ActionResult RedirectToAction(this Controller HostController, string actionName, string controllerName, object routeValues) + { + return HostController.RedirectToAction(actionName, controllerName, null, routeValues); + } + public static ActionResult RedirectToAction(this Controller HostController, string actionName, string controllerName) + { + return HostController.RedirectToAction(actionName, controllerName, null, null); + } + public static ActionResult RedirectToDiscoJob(this Controller HostController, int jobId) + { + return HostController.RedirectToAction("Show", "Job", null, new { id = jobId.ToString() }); + } + public static ActionResult RedirectToDiscoDevice(this Controller HostController, string DeviceSerialNumber) + { + return HostController.RedirectToAction("Show", "Device", null, new { id = DeviceSerialNumber }); + } + public static ActionResult RedirectToDiscoUser(this Controller HostController, string UserId) + { + return HostController.RedirectToAction("Show", "User", null, new { id = UserId }); + } + #endregion + + #endregion + + } +} diff --git a/Disco.Services/_Plugins/Plugins.cs b/Disco.Services/_Plugins/Plugins.cs new file mode 100644 index 00000000..a1fc58ae --- /dev/null +++ b/Disco.Services/_Plugins/Plugins.cs @@ -0,0 +1,290 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Reflection; +using Disco.Data.Repository; +using System.IO; +using System.ComponentModel.DataAnnotations; +using System.Web; +using System.Web.Mvc; +using RazorGenerator.Mvc; +using System.Web.WebPages; + +namespace Disco.Services.Plugins +{ + public static class Plugins + { + private static Dictionary _LoadedPlugins; + internal static Dictionary CategoryDisplayNames; + + private static object _PluginLock = new object(); + + public static string PluginPath { get; private set; } + + public static PluginDefinition GetPlugin(string PluginId, Type CategoryType = null) + { + if (_LoadedPlugins == null) + throw new InvalidOperationException("Plugins have not been initialized"); + + PluginDefinition def; + if (_LoadedPlugins.TryGetValue(PluginId, out def)) + { + if (CategoryType == null) + return def; + else + { + if (CategoryType.IsAssignableFrom(def.PluginCategoryType)) + return def; + else + throw new InvalidCategoryTypeException(CategoryType, PluginId); + } + } + else + { + throw new UnknownPluginException(PluginId); + } + } + public static List GetPlugins(Type CategoryType) + { + if (_LoadedPlugins == null) + throw new InvalidOperationException("Plugins have not been initialized"); + + return _LoadedPlugins.Values.Where(p => p.PluginCategoryType.IsAssignableFrom(CategoryType)).OrderBy(p => p.Name).ToList(); + } + public static List GetPlugins() + { + if (_LoadedPlugins == null) + throw new InvalidOperationException("Plugins have not been initialized"); + + return _LoadedPlugins.Values.ToList(); + } + + public static string PluginCategoryDisplayName(Type CategoryType) + { + if (CategoryType == null) + throw new ArgumentNullException("CategoryType"); + + string displayName; + if (CategoryDisplayNames.TryGetValue(CategoryType, out displayName)) + return displayName; + else + throw new InvalidOperationException(string.Format("Unknown Plugin Category Type: [{0}]", CategoryType.Name)); + } + + #region Initalizing + + public static void InitalizePlugins(DiscoDataContext dbContext) + { + if (_LoadedPlugins == null) + { + lock (_PluginLock) + { + if (_LoadedPlugins == null) + { + Dictionary loadedPlugins = new Dictionary(); + + PluginPath = dbContext.DiscoConfiguration.PluginsLocation; + + AppDomain appDomain = AppDomain.CurrentDomain; + + // Subscribe to Assembly Resolving + appDomain.AssemblyResolve += CurrentDomain_AssemblyResolve; + + // Load Internal (Default?) Plugins + IEnumerable discoAssemblies = (from a in appDomain.GetAssemblies() + where !a.GlobalAssemblyCache && !a.IsDynamic && + a.FullName.StartsWith("Disco.", StringComparison.InvariantCultureIgnoreCase) + select a); + foreach (var discoAssembly in discoAssemblies) + { + List assemblyPluginDefinitions = InitializePluginAssembly(dbContext, discoAssembly, false); + foreach (PluginDefinition definition in assemblyPluginDefinitions) + loadedPlugins[definition.Id] = definition; + } + + // Load External (DataStore) Plugins + DirectoryInfo pluginDirectoryRoot = new DirectoryInfo(PluginPath); + if (pluginDirectoryRoot.Exists) + { + foreach (DirectoryInfo pluginDirectory in pluginDirectoryRoot.EnumerateDirectories()) + { + string pluginAssemblyFilename = Path.Combine(pluginDirectory.FullName, string.Format("{0}.dll", pluginDirectory.Name)); + if (File.Exists(pluginAssemblyFilename)) + { + Assembly pluginAssembly = null; + try + { + pluginAssembly = Assembly.LoadFile(pluginAssemblyFilename); + + if (pluginAssembly != null) + { + PluginsLog.LogInitializingPluginAssembly(pluginAssembly); + List assemblyPluginDefinitions = InitializePluginAssembly(dbContext, pluginAssembly, true); + foreach (PluginDefinition definition in assemblyPluginDefinitions) + loadedPlugins[definition.Id] = definition; + } + } + catch (Exception ex) { PluginsLog.LogInitializeException(pluginAssemblyFilename, ex); } + } + } + } + + // Determine Category Information + CategoryDisplayNames = InitializeCategoryDetails(loadedPlugins.Values); + + + _LoadedPlugins = loadedPlugins; + } + } + } + } + + private static Dictionary InitializeCategoryDetails(IEnumerable plugins) + { + Dictionary categoryDisplayNames = new Dictionary(); + foreach (var pluginDefinition in plugins) + { + if (!categoryDisplayNames.ContainsKey(pluginDefinition.PluginCategoryType)) + { + string displayName = null; + + var displayAttributes = pluginDefinition.PluginCategoryType.GetCustomAttributes(typeof(PluginCategoryAttribute), true); + if (displayAttributes != null && displayAttributes.Length > 0) + displayName = ((PluginCategoryAttribute)(displayAttributes[0])).DisplayName; + + if (string.IsNullOrWhiteSpace(displayName)) + displayName = pluginDefinition.PluginCategoryType.Name; + + categoryDisplayNames[pluginDefinition.PluginCategoryType] = displayName; + } + } + return categoryDisplayNames; + } + + private static List InitializePluginAssembly(DiscoDataContext dbContext, Assembly PluginAssembly, bool ResolveReferences) + { + List pluginDefinitions = new List(); + + var pluginTypes = (from type in PluginAssembly.GetTypes() + where typeof(Plugin).IsAssignableFrom(type) && !type.IsAbstract + select type).ToList(); + + if (pluginTypes.Count > 0) + { + Dictionary referencedAssemblies = null; + + string hostDirectory = Path.GetDirectoryName(PluginAssembly.Location); + + if (ResolveReferences) + referencedAssemblies = ImportReferencedAssemblies(PluginAssembly, hostDirectory); + + foreach (Type t in pluginTypes) + { + var p = InitializePlugin(dbContext, t, hostDirectory, referencedAssemblies); + if (p != null) + pluginDefinitions.Add(p); + } + + } + + return pluginDefinitions; + } + + private static Dictionary ImportReferencedAssemblies(Assembly PluginAssembly, string HostDirectory) + { + Dictionary referencedAssemblies = new Dictionary(); + foreach (string referenceFilename in Directory.EnumerateFiles(HostDirectory, "*.dll", SearchOption.TopDirectoryOnly)) + { + if (!referenceFilename.Equals(PluginAssembly.Location, StringComparison.InvariantCultureIgnoreCase)) + { + try + { + Assembly pluginRefAssembly = Assembly.ReflectionOnlyLoadFrom(referenceFilename); + referencedAssemblies[pluginRefAssembly.FullName] = referenceFilename; + } + catch (Exception) { } // Ignore Load Exceptions + } + } + return referencedAssemblies; + } + + private static PluginDefinition InitializePlugin(DiscoDataContext dbContext, Type PluginType, string HostDirectory, Dictionary ReferencedAssemblies = null) + { + if (!typeof(Plugin).IsAssignableFrom(PluginType)) + throw new ArgumentException(string.Format("Plugins [{0}] does not inherit from [IDiscoPlugin]", PluginType.Name)); + + using (Plugin instance = (Plugin)Activator.CreateInstance(PluginType)) + { + try + { + PluginDefinition definition = new PluginDefinition(instance, HostDirectory, ReferencedAssemblies); + + PluginsLog.LogInitializingPlugin(definition); + + instance.Initalize(dbContext); + + return definition; + } + catch (Exception ex) + { + PluginsLog.LogInitializeException(PluginType.Assembly.Location, ex); + return null; + } + } + } + + #endregion + + #region Plugin Referenced Assemblies Resolving + + public static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args) + { + if (args.RequestingAssembly.Location.StartsWith(PluginPath, StringComparison.InvariantCultureIgnoreCase) && _LoadedPlugins != null) + { + // Try best guess first + PluginDefinition requestingPlugin = _LoadedPlugins.Values.Where(p => p.PluginType.Assembly == args.RequestingAssembly).FirstOrDefault(); + if (requestingPlugin != null) + { + Assembly loadedAssembly = CurrentDomain_AssemblyResolve_ByPlugin(requestingPlugin, args); + if (loadedAssembly != null) + return loadedAssembly; + } + + // Try all Plugin References + foreach (var pluginDef in _LoadedPlugins.Values) + { + Assembly loadedAssembly = CurrentDomain_AssemblyResolve_ByPlugin(pluginDef, args); + if (loadedAssembly != null) + return loadedAssembly; + } + } + return null; + } + private static Assembly CurrentDomain_AssemblyResolve_ByPlugin(PluginDefinition PluginDefinition, ResolveEventArgs args) + { + if (PluginDefinition.PluginReferenceAssemblies != null) + { + string assemblyPath; + if (PluginDefinition.PluginReferenceAssemblies.TryGetValue(args.Name, out assemblyPath)) + { + try + { + Assembly loadedAssembly = Assembly.LoadFile(assemblyPath); + + PluginsLog.LogPluginReferenceAssemblyLoaded(args.Name, assemblyPath, args.RequestingAssembly.FullName); + + return loadedAssembly; + } + catch (Exception ex) + { + PluginsLog.LogPluginException(string.Format("Resolving Plugin Reference Assembly: '{0}' [{1}]; Requested by: '{2}' [{3}]; Disco.Plugins.DiscoPlugins.CurrentDomain_AssemblyResolve()", args.Name, assemblyPath, args.RequestingAssembly.FullName, args.RequestingAssembly.Location), ex); + } + } + } + return null; + } + + #endregion + } +} diff --git a/Disco.Services/_Plugins/PluginsLog.cs b/Disco.Services/_Plugins/PluginsLog.cs new file mode 100644 index 00000000..11099258 --- /dev/null +++ b/Disco.Services/_Plugins/PluginsLog.cs @@ -0,0 +1,259 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Disco.Services.Logging; +using Disco.Services.Logging.Models; +using System.Reflection; + +namespace Disco.Services.Plugins +{ + public class PluginsLog : LogBase + { + private const int _ModuleId = 10; + + public override string ModuleDescription { get { return "Plugins"; } } + public override int ModuleId { get { return _ModuleId; } } + public override string ModuleName { get { return "Plugins"; } } + + public enum EventTypeIds + { + InitializingPlugins = 10, + InitializingPluginAssembly, + InitializedPlugin, + InitializeWarning = 15, + InitializeError, + InitializeException, + InitializeExceptionWithInner, + PluginException = 20, + PluginExceptionWithInner, + PluginReferenceAssemblyLoaded = 50, + PluginConfigurationLoaded = 100, + PluginConfigurationSaved = 104, + PluginWebControllerAccessed = 200 + } + + public static PluginsLog Current + { + get + { + return (PluginsLog)LogContext.LogModules[_ModuleId]; + } + } + private static void Log(EventTypeIds EventTypeId, params object[] Args) + { + Current.Log((int)EventTypeId, Args); + } + + public static void LogInitializingPlugins(string PluginDirectory) + { + Current.Log((int)EventTypeIds.InitializingPlugins, PluginDirectory); + } + public static void LogInitializingPluginAssembly(Assembly PluginAssembly) + { + Current.Log((int)EventTypeIds.InitializingPluginAssembly, PluginAssembly.FullName, PluginAssembly.Location); + } + public static void LogInitializingPlugin(PluginDefinition Definition) + { + Current.Log((int)EventTypeIds.InitializedPlugin, Definition.Id, Definition.Version.ToString(3), Definition.PluginType.Name, Definition.PluginType.Assembly.Location); + } + public static void LogInitializeWarning(string Warning) + { + Current.Log((int)EventTypeIds.InitializeWarning, Warning); + } + public static void LogInitializeError(string Error) + { + Current.Log((int)EventTypeIds.InitializeError, Error); + } + public static void LogPluginReferenceAssemblyLoaded(string AssemblyFullName, string AssemblyPath, string RequestedBy) + { + Current.Log((int)EventTypeIds.PluginReferenceAssemblyLoaded, AssemblyFullName, AssemblyPath, RequestedBy); + } + public static void LogPluginConfigurationLoaded(string PluginId, string UserId) + { + Current.Log((int)EventTypeIds.PluginConfigurationLoaded, PluginId, UserId); + } + public static void LogPluginConfigurationSaved(string PluginId, string UserId) + { + Current.Log((int)EventTypeIds.PluginConfigurationSaved, PluginId, UserId); + } + public static void LogPluginWebControllerAccessed(string PluginId, string PluginAction, string UserId) + { + Current.Log((int)EventTypeIds.PluginWebControllerAccessed, PluginId, PluginAction, UserId); + } + + public static void LogInitializeException(string PluginFilename, Exception ex) + { + if (ex.InnerException != null) + { + Log(EventTypeIds.InitializeExceptionWithInner, PluginFilename, ex.GetType().Name, ex.Message, ex.StackTrace, ex.InnerException.GetType().Name, ex.InnerException.Message, ex.InnerException.StackTrace); + } + else + { + Log(EventTypeIds.InitializeException, PluginFilename, ex.GetType().Name, ex.Message, ex.StackTrace); + } + } + + public static void LogPluginException(string Component, Exception ex) + { + if (ex.InnerException != null) + { + Log(EventTypeIds.PluginExceptionWithInner, Component, ex.GetType().Name, ex.Message, ex.StackTrace, ex.InnerException.GetType().Name, ex.InnerException.Message, ex.InnerException.StackTrace); + } + else + { + Log(EventTypeIds.PluginException, Component, ex.GetType().Name, ex.Message, ex.StackTrace); + } + } + + protected override List LoadEventTypes() + { + return new System.Collections.Generic.List + { + new LogEventType + { + Id = (int)EventTypeIds.InitializingPlugins, + ModuleId = _ModuleId, + Name = "Initializing Plugins", + Format = "Starting plugin discovery and initialization from: {0}", + Severity = (int)LogEventType.Severities.Information, + UseLive = false, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = (int)EventTypeIds.InitializingPluginAssembly, + ModuleId = _ModuleId, + Name = "Initializing Plugin Assembly", + Format = "Initializing Plugin Assembly: [{0}] From '{1}'", + Severity = (int)LogEventType.Severities.Information, + UseLive = false, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = (int)EventTypeIds.InitializedPlugin, + ModuleId = _ModuleId, + Name = "Initialized Plugin", + Format = "Initialized Plugin: '{0} (v{1})' [{2}] From '{3}'", + Severity = (int)LogEventType.Severities.Information, + UseLive = false, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = (int)EventTypeIds.InitializeWarning, + ModuleId = _ModuleId, + Name = "Initialize Warning", + Format = "Initialize Warning: {0}", + Severity = (int)LogEventType.Severities.Warning, + UseLive = false, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = (int)EventTypeIds.InitializeError, + ModuleId = _ModuleId, + Name = "Initialize Error", + Format = "Initialize Error: {0}", + Severity = (int)LogEventType.Severities.Error, + UseLive = false, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = (int)EventTypeIds.InitializeException, + ModuleId = _ModuleId, + Name = "Initialize Exception", + Format = "Exception: {0}; {1}: {2}; {3}", + Severity = (int)LogEventType.Severities.Error, + UseLive = false, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = (int)EventTypeIds.InitializeExceptionWithInner, + ModuleId = _ModuleId, + Name = "Initialize Exception with Inner Exception", + Format = "Exception: {0}; {1}: {2}; {3}; Inner: {4}: {5}; {6}", + Severity = (int)LogEventType.Severities.Error, + UseLive = false, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = (int)EventTypeIds.PluginException, + ModuleId = _ModuleId, + Name = "Plugin Exception", + Format = "Exception: {0}; {1}: {2}; {3}", + Severity = (int)LogEventType.Severities.Error, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = (int)EventTypeIds.PluginExceptionWithInner, + ModuleId = _ModuleId, + Name = "Plugin Exception with Inner Exception", + Format = "Exception: {0}; {1}: {2}; {3}; Inner: {4}: {5}; {6}", + Severity = (int)LogEventType.Severities.Error, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = (int)EventTypeIds.PluginReferenceAssemblyLoaded, + ModuleId = _ModuleId, + Name = "Plugin Reference Assembly Loaded", + Format = "Loaded Plugin Reference Assembly: [{0}] From: '{1}'; Requested by: [{2}]", + Severity = (int)LogEventType.Severities.Information, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = (int)EventTypeIds.PluginConfigurationLoaded, + ModuleId = _ModuleId, + Name = "Plugin Configuration Loaded", + Format = "Plugin Configuration Loaded: [{0}] by [{1}]", + Severity = (int)LogEventType.Severities.Information, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = (int)EventTypeIds.PluginConfigurationSaved, + ModuleId = _ModuleId, + Name = "Plugin Configuration Saved", + Format = "Plugin Configuration Saved: [{0}] by [{1}]", + Severity = (int)LogEventType.Severities.Information, + UseLive = true, + UsePersist = true, + UseDisplay = true + }, + new LogEventType + { + Id = (int)EventTypeIds.PluginWebControllerAccessed, + ModuleId = _ModuleId, + Name = "Plugin Web Controller Accessed", + Format = "Plugin Web Controller Accessed: Plugin [{0}], Action [{1}], By [{2}]", + Severity = (int)LogEventType.Severities.Information, + UseLive = true, + UsePersist = true, + UseDisplay = true + } + }; + } + } +} diff --git a/Disco.Services/_Plugins/UnknownPluginException.cs b/Disco.Services/_Plugins/UnknownPluginException.cs new file mode 100644 index 00000000..1b1da494 --- /dev/null +++ b/Disco.Services/_Plugins/UnknownPluginException.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Disco.Services.Plugins +{ + public class UnknownPluginException : Exception + { + private string _pluginRequested; + + public string PluginRequested + { + get + { + return _pluginRequested; + } + } + + public UnknownPluginException(string PluginRequested) + { + this._pluginRequested = PluginRequested; + } + public UnknownPluginException(string PluginRequested, string Message) : base(Message) + { + this._pluginRequested = PluginRequested; + } + + public override string Message + { + get + { + return string.Format("Unknown Plugin Id: [{0}]", _pluginRequested); + } + } + } +} diff --git a/Disco.Services/packages.config b/Disco.Services/packages.config new file mode 100644 index 00000000..762682ff --- /dev/null +++ b/Disco.Services/packages.config @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/Disco.Silverlight.AttachmentUpload/App.xaml b/Disco.Silverlight.AttachmentUpload/App.xaml new file mode 100644 index 00000000..ffcbba45 --- /dev/null +++ b/Disco.Silverlight.AttachmentUpload/App.xaml @@ -0,0 +1,14 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Disco.Silverlight.AttachmentUpload/App.xaml.vb b/Disco.Silverlight.AttachmentUpload/App.xaml.vb new file mode 100644 index 00000000..f6914a55 --- /dev/null +++ b/Disco.Silverlight.AttachmentUpload/App.xaml.vb @@ -0,0 +1,37 @@ +Partial Public Class App + Inherits Application + + Public Shared Property UploadUrl As Uri + Public Shared Property MainPage As MainPage + + Public Sub New() + InitializeComponent() + End Sub + + Private Sub Application_Startup(ByVal o As Object, ByVal e As StartupEventArgs) Handles Me.Startup + MainPage = New MainPage + + Me.RootVisual = MainPage + + UploadUrl = New Uri(Application.Current.Host.Source.AbsoluteUri.Substring(0, Application.Current.Host.Source.AbsoluteUri.IndexOf("/", 8)) & e.InitParams.Item("UploadUrl")) + + End Sub + + Private Sub Application_UnhandledException(ByVal sender As Object, ByVal e As ApplicationUnhandledExceptionEventArgs) Handles Me.UnhandledException + + ' If the app is running outside of the debugger then report the exception using + ' the browser's exception mechanism. On IE this will display it a yellow alert + ' icon in the status bar and Firefox will display a script error. + If Not System.Diagnostics.Debugger.IsAttached Then + + ' NOTE: This will allow the application to continue running after an exception has been thrown + ' but not handled. + ' For production applications this error handling should be replaced with something that will + ' report the error to the website and stop the application. + e.Handled = True + Dim errorWindow As ChildWindow = New ErrorWindow(e.ExceptionObject) + errorWindow.Show() + End If + End Sub + +End Class diff --git a/Disco.Silverlight.AttachmentUpload/Assets/Styles.xaml b/Disco.Silverlight.AttachmentUpload/Assets/Styles.xaml new file mode 100644 index 00000000..4487c8f6 --- /dev/null +++ b/Disco.Silverlight.AttachmentUpload/Assets/Styles.xaml @@ -0,0 +1,350 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Disco.Silverlight.AttachmentUpload/Assets/dropTarget.png b/Disco.Silverlight.AttachmentUpload/Assets/dropTarget.png new file mode 100644 index 0000000000000000000000000000000000000000..5f1eaf57ecc1477a75b79ff238db0d0c66bd9bc7 GIT binary patch literal 13871 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 literal 0 HcmV?d00001 diff --git a/Disco.Silverlight.AttachmentUpload/Disco.Silverlight.AttachmentUpload.vbproj b/Disco.Silverlight.AttachmentUpload/Disco.Silverlight.AttachmentUpload.vbproj new file mode 100644 index 00000000..cc36ec39 --- /dev/null +++ b/Disco.Silverlight.AttachmentUpload/Disco.Silverlight.AttachmentUpload.vbproj @@ -0,0 +1,196 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {85747DDC-1389-4A40-9AFC-F57E0992294E} + {A1591282-1198-4647-A2B1-27E5FF5F6F3B};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} + Library + Disco.Silverlight.AttachmentUpload + Disco.Silverlight.AttachmentUpload + Silverlight + v4.0 + $(TargetFrameworkVersion) + true + + + true + true + Disco.Silverlight.AttachmentUpload.xap + My Project\AppManifest.xml + Disco.Silverlight.AttachmentUpload.App + Disco.Silverlight.AttachmentUploadTestPage.html + true + true + false + My Project\OutOfBrowserSettings.xml + true + false + + + + + + v3.5 + + + true + full + true + true + true + true + Empty + Bin\Debug + Disco.Silverlight.AttachmentUpload.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + SILVERLIGHT=1 + + + pdbonly + false + true + true + true + true + Bin\Release + Disco.Silverlight.AttachmentUpload.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + SILVERLIGHT=1 + + + On + + + Binary + + + Off + + + On + + + + ..\..\Resources\Libraries\fastJSON\fastJSON-SL.dll + + + ..\..\Resources\Libraries\FJ.Core\FJ.Core.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Utilities.vb + + + App.xaml + + + + + MainPage.xaml + + + + FileWindow.xaml + + + ErrorWindow.xaml + + + File.xaml + + + Hidden.xaml + + + WebCam.xaml + + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + Designer + MSBuild:Compile + + + MSBuild:Compile + Designer + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Disco.Silverlight.AttachmentUpload/FileUploader.vb b/Disco.Silverlight.AttachmentUpload/FileUploader.vb new file mode 100644 index 00000000..091bd17e --- /dev/null +++ b/Disco.Silverlight.AttachmentUpload/FileUploader.vb @@ -0,0 +1,77 @@ +Imports System.Text +Imports Disco.Silverlight.AttachmentUpload.BI + +Public Class FileUploader + + Public Property Url As Uri + Public Property Stream As IO.Stream + Public Property StreamFilename As String + Public Property StreamMimeType As String + Public Property Form As Dictionary(Of String, String) + + Private _HttpSend As HttpWebRequest + Private _UploadBoundaryValue As String + + Private _Complete As UploadComplete + + Public Delegate Sub UploadComplete(Sender As FileUploader, Success As Boolean, Id As Integer) + + Public Sub New(Url As Uri, Stream As IO.Stream, StreamFilename As String, StreamMimeType As String, Form As Dictionary(Of String, String), Optional Complete As UploadComplete = Nothing) + Me.Url = Url + Me.Stream = Stream + Me.StreamFilename = StreamFilename + Me.StreamMimeType = StreamMimeType + Me.Form = Form + Me._Complete = Complete + + Start() + End Sub + + Public Sub Start() + Stream.Position = 0 + Me._HttpSend = WebRequest.Create(App.UploadUrl) + Me._UploadBoundaryValue = ("----------------------------" & DateTime.Now.Ticks.ToString("x")) + Me._HttpSend.ContentType = "multipart/form-data; boundary=" & Me._UploadBoundaryValue + Me._HttpSend.Method = "POST" + Me._HttpSend.BeginGetRequestStream(New AsyncCallback(AddressOf Me.BeginSendRequest), Nothing) + End Sub + + Private Sub BeginSendRequest(ByVal result As IAsyncResult) + Using requestStream As IO.Stream = _HttpSend.EndGetRequestStream(result) + Dim format As String = ("{0}--" & _UploadBoundaryValue & "{0}Content-Disposition: form-data; name=""{1}"";{0}{0}{2}") + Dim pair As KeyValuePair(Of String, String) + For Each pair In Form + Dim str4 As String = String.Format(format, Environment.NewLine, pair.Key, pair.Value) + Dim buffer3 As Byte() = Encoding.UTF8.GetBytes(str4) + requestStream.Write(buffer3, 0, buffer3.Length) + Next + Dim s As String = String.Format(("{0}--" & _UploadBoundaryValue & "{0}Content-Disposition: form-data; name=""{1}""; filename=""{2}""{0}Content-Type: {3}{0}{0}"), Environment.NewLine, "File", Me.StreamFilename, Me.StreamMimeType) + Dim bytes As Byte() = Encoding.UTF8.GetBytes(s) + requestStream.Write(bytes, 0, bytes.Length) + Me.Stream.CopyTo(requestStream) + Me.Stream.Close() + Me.Stream.Dispose() + Dim buffer As Byte() = Encoding.UTF8.GetBytes(String.Format("{0}--{1}{0}", Environment.NewLine, Me._UploadBoundaryValue)) + requestStream.Write(buffer, 0, buffer.Length) + requestStream.Flush() + requestStream.Close() + End Using + _HttpSend.BeginGetResponse(New AsyncCallback(AddressOf Me.BeginGetResponse), Nothing) + End Sub + + Private Sub BeginGetResponse(ByVal result As IAsyncResult) + Dim response As HttpWebResponse = _HttpSend.EndGetResponse(result) + + Dim responseId As Integer = -1 + + If response.StatusCode = 200 Then + Dim responseString = response.GetResponseStream.StreamToString() + Integer.TryParse(responseString, responseId) + End If + + If _Complete IsNot Nothing Then + _Complete.Invoke(Me, (response.StatusCode = 200), responseId) + End If + End Sub + +End Class diff --git a/Disco.Silverlight.AttachmentUpload/JavascriptNavigator.vb b/Disco.Silverlight.AttachmentUpload/JavascriptNavigator.vb new file mode 100644 index 00000000..ca61333d --- /dev/null +++ b/Disco.Silverlight.AttachmentUpload/JavascriptNavigator.vb @@ -0,0 +1,24 @@ +Imports System.Windows.Browser + + +Public Class JavascriptNavigator + + Private _contentFrame As Controls.Frame + + Public Sub New(contentFrame As Controls.Frame) + _contentFrame = contentFrame + End Sub + + + Public Sub Navigate(uri As String) + _contentFrame.Navigate(New Uri(uri, UriKind.Relative)) + End Sub + + + Public ReadOnly Property Location As String + Get + Return _contentFrame.Source.ToString + End Get + End Property + +End Class diff --git a/Disco.Silverlight.AttachmentUpload/MainPage.xaml b/Disco.Silverlight.AttachmentUpload/MainPage.xaml new file mode 100644 index 00000000..d7a0ff47 --- /dev/null +++ b/Disco.Silverlight.AttachmentUpload/MainPage.xaml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Disco.Silverlight.AttachmentUpload/MainPage.xaml.vb b/Disco.Silverlight.AttachmentUpload/MainPage.xaml.vb new file mode 100644 index 00000000..e6900a89 --- /dev/null +++ b/Disco.Silverlight.AttachmentUpload/MainPage.xaml.vb @@ -0,0 +1,60 @@ +Imports System.Windows.Navigation +Imports System.Windows.Browser + +Partial Public Class MainPage + Inherits UserControl + + Private _Navigator As JavascriptNavigator + + Private _UploadingAttachments As New List(Of FileUploader) + + Public Sub New() + InitializeComponent() + + _Navigator = New JavascriptNavigator(Me.ContentFrame) + HtmlPage.RegisterScriptableObject("Navigator", _Navigator) + End Sub + + Private Sub ContentFrame_NavigationFailed(ByVal sender As Object, ByVal e As NavigationFailedEventArgs) Handles ContentFrame.NavigationFailed + e.Handled = True + Dim errorWindow As ChildWindow = New ErrorWindow(e.Uri) + errorWindow.Show() + End Sub + + Public Sub UploadAttachment(stream As IO.Stream, fileName As String, mimeType As String, comments As String) + + Dim form As New Dictionary(Of String, String) + form.Add("comments", comments) + + Dim ua As New FileUploader(App.UploadUrl, stream, fileName, mimeType, form, New FileUploader.UploadComplete(AddressOf UploadComplete)) + + _UploadingAttachments.Add(ua) + + 'Me.NavigationGrid.Visibility = Windows.Visibility.Visible + + End Sub + + Private Sub UploadComplete(Sender As FileUploader, Success As Boolean, Id As Integer) + If _UploadingAttachments.Contains(Sender) Then + _UploadingAttachments.Remove(Sender) + End If + + 'If _UploadingAttachments.Count = 0 Then + ' Me.Dispatcher.BeginInvoke(Function() + ' Me.NavigationGrid.Visibility = Windows.Visibility.Collapsed + ' Return Nothing + ' End Function) + 'End If + + If Id >= 0 Then + Me.Dispatcher.BeginInvoke(Function() + Dim discoFunctions = System.Windows.Browser.HtmlPage.Document.GetProperty("DiscoFunctions") + If discoFunctions IsNot Nothing Then + discoFunctions.addAttachment(Id) + End If + Return (Nothing) + End Function) + End If + End Sub + +End Class \ No newline at end of file diff --git a/Disco.Silverlight.AttachmentUpload/My Project/AppManifest.xml b/Disco.Silverlight.AttachmentUpload/My Project/AppManifest.xml new file mode 100644 index 00000000..41e2af64 --- /dev/null +++ b/Disco.Silverlight.AttachmentUpload/My Project/AppManifest.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/Disco.Silverlight.AttachmentUpload/My Project/AssemblyInfo.vb b/Disco.Silverlight.AttachmentUpload/My Project/AssemblyInfo.vb new file mode 100644 index 00000000..86ccdb53 --- /dev/null +++ b/Disco.Silverlight.AttachmentUpload/My Project/AssemblyInfo.vb @@ -0,0 +1,34 @@ +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/Disco.Silverlight.AttachmentUpload/Views/ErrorWindow.xaml b/Disco.Silverlight.AttachmentUpload/Views/ErrorWindow.xaml new file mode 100644 index 00000000..26321cf2 --- /dev/null +++ b/Disco.Silverlight.AttachmentUpload/Views/ErrorWindow.xaml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + @if (false) + { } + + diff --git a/Disco.Web/Areas/Config/Views/Expressions/Editor.generated.cs b/Disco.Web/Areas/Config/Views/Expressions/Editor.generated.cs new file mode 100644 index 00000000..5d26562e --- /dev/null +++ b/Disco.Web/Areas/Config/Views/Expressions/Editor.generated.cs @@ -0,0 +1,169 @@ +#pragma warning disable 1591 +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.17929 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Disco.Web.Areas.Config.Views.Expressions +{ + using System; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Net; + using System.Text; + using System.Web; + using System.Web.Helpers; + using System.Web.Mvc; + using System.Web.Mvc.Ajax; + using System.Web.Mvc.Html; + using System.Web.Routing; + using System.Web.Security; + using System.Web.UI; + using System.Web.WebPages; + using Disco.BI.Extensions; + using Disco.Models.Repository; + using Disco.Web; + using Disco.Web.Extensions; + + [System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "1.5.0.0")] + [System.Web.WebPages.PageVirtualPathAttribute("~/Areas/Config/Views/Expressions/Editor.cshtml")] + public class Editor : System.Web.Mvc.WebViewPage + { + public Editor() + { + } + public override void Execute() + { + + #line 2 "..\..\Areas\Config\Views\Expressions\Editor.cshtml" + + ViewBag.Title = Html.ToBreadcrumb("Configuration", MVC.Config.Config.Index(), "Expressions"); + Html.BundleDeferred("~/ClientScripts/Modules/Disco-ExpressionEditor"); + + + #line default + #line hidden +WriteLiteral("\r\n\r\n \r\n \r\n \r\n

\r\n Parse Error:

\r\n \r\n \r\n \r\n \r\n Validate\r\n"); + + + #line 17 "..\..\Areas\Config\Views\Expressions\Editor.cshtml" + + + #line default + #line hidden + + #line 17 "..\..\Areas\Config\Views\Expressions\Editor.cshtml" + if (false) + { + + #line default + #line hidden +WriteLiteral(" "); + + + #line 18 "..\..\Areas\Config\Views\Expressions\Editor.cshtml" + } + + + #line default + #line hidden +WriteLiteral(" \r\n $(function () {\r\n var initExpression = \'"); + + + #line 21 "..\..\Areas\Config\Views\Expressions\Editor.cshtml" + Write(Model.Expression); + + + #line default + #line hidden +WriteLiteral("\';\r\n var hostSrcUrl = \'"); + + + #line 22 "..\..\Areas\Config\Views\Expressions\Editor.cshtml" + Write(Links.ClientSource.Style.ExpressionEditor_htm); + + + #line default + #line hidden +WriteLiteral(@"'; + var host = $('' : ''); + inst._keyEvent = false; + return html; + }, + + /* Generate the month and year header. */ + _generateMonthYearHeader: function(inst, drawMonth, drawYear, minDate, maxDate, + secondary, monthNames, monthNamesShort) { + var changeMonth = this._get(inst, 'changeMonth'); + var changeYear = this._get(inst, 'changeYear'); + var showMonthAfterYear = this._get(inst, 'showMonthAfterYear'); + var html = '
'; + var monthHtml = ''; + // month selection + if (secondary || !changeMonth) + monthHtml += '' + monthNames[drawMonth] + ''; + else { + var inMinYear = (minDate && minDate.getFullYear() == drawYear); + var inMaxYear = (maxDate && maxDate.getFullYear() == drawYear); + monthHtml += ''; + } + if (!showMonthAfterYear) + html += monthHtml + (secondary || !(changeMonth && changeYear) ? ' ' : ''); + // year selection + if ( !inst.yearshtml ) { + inst.yearshtml = ''; + if (secondary || !changeYear) + html += '' + drawYear + ''; + else { + // determine range of years to display + var years = this._get(inst, 'yearRange').split(':'); + var thisYear = new Date().getFullYear(); + var determineYear = function(value) { + var year = (value.match(/c[+-].*/) ? drawYear + parseInt(value.substring(1), 10) : + (value.match(/[+-].*/) ? thisYear + parseInt(value, 10) : + parseInt(value, 10))); + return (isNaN(year) ? thisYear : year); + }; + var year = determineYear(years[0]); + var endYear = Math.max(year, determineYear(years[1] || '')); + year = (minDate ? Math.max(year, minDate.getFullYear()) : year); + endYear = (maxDate ? Math.min(endYear, maxDate.getFullYear()) : endYear); + inst.yearshtml += ''; + + html += inst.yearshtml; + inst.yearshtml = null; + } + } + html += this._get(inst, 'yearSuffix'); + if (showMonthAfterYear) + html += (secondary || !(changeMonth && changeYear) ? ' ' : '') + monthHtml; + html += '
'; // Close datepicker_header + return html; + }, + + /* Adjust one of the date sub-fields. */ + _adjustInstDate: function(inst, offset, period) { + var year = inst.drawYear + (period == 'Y' ? offset : 0); + var month = inst.drawMonth + (period == 'M' ? offset : 0); + var day = Math.min(inst.selectedDay, this._getDaysInMonth(year, month)) + + (period == 'D' ? offset : 0); + var date = this._restrictMinMax(inst, + this._daylightSavingAdjust(new Date(year, month, day))); + inst.selectedDay = date.getDate(); + inst.drawMonth = inst.selectedMonth = date.getMonth(); + inst.drawYear = inst.selectedYear = date.getFullYear(); + if (period == 'M' || period == 'Y') + this._notifyChange(inst); + }, + + /* Ensure a date is within any min/max bounds. */ + _restrictMinMax: function(inst, date) { + var minDate = this._getMinMaxDate(inst, 'min'); + var maxDate = this._getMinMaxDate(inst, 'max'); + var newDate = (minDate && date < minDate ? minDate : date); + newDate = (maxDate && newDate > maxDate ? maxDate : newDate); + return newDate; + }, + + /* Notify change of month/year. */ + _notifyChange: function(inst) { + var onChange = this._get(inst, 'onChangeMonthYear'); + if (onChange) + onChange.apply((inst.input ? inst.input[0] : null), + [inst.selectedYear, inst.selectedMonth + 1, inst]); + }, + + /* Determine the number of months to show. */ + _getNumberOfMonths: function(inst) { + var numMonths = this._get(inst, 'numberOfMonths'); + return (numMonths == null ? [1, 1] : (typeof numMonths == 'number' ? [1, numMonths] : numMonths)); + }, + + /* Determine the current maximum date - ensure no time components are set. */ + _getMinMaxDate: function(inst, minMax) { + return this._determineDate(inst, this._get(inst, minMax + 'Date'), null); + }, + + /* Find the number of days in a given month. */ + _getDaysInMonth: function(year, month) { + return 32 - this._daylightSavingAdjust(new Date(year, month, 32)).getDate(); + }, + + /* Find the day of the week of the first of a month. */ + _getFirstDayOfMonth: function(year, month) { + return new Date(year, month, 1).getDay(); + }, + + /* Determines if we should allow a "next/prev" month display change. */ + _canAdjustMonth: function(inst, offset, curYear, curMonth) { + var numMonths = this._getNumberOfMonths(inst); + var date = this._daylightSavingAdjust(new Date(curYear, + curMonth + (offset < 0 ? offset : numMonths[0] * numMonths[1]), 1)); + if (offset < 0) + date.setDate(this._getDaysInMonth(date.getFullYear(), date.getMonth())); + return this._isInRange(inst, date); + }, + + /* Is the given date in the accepted range? */ + _isInRange: function(inst, date) { + var minDate = this._getMinMaxDate(inst, 'min'); + var maxDate = this._getMinMaxDate(inst, 'max'); + return ((!minDate || date.getTime() >= minDate.getTime()) && + (!maxDate || date.getTime() <= maxDate.getTime())); + }, + + /* Provide the configuration settings for formatting/parsing. */ + _getFormatConfig: function(inst) { + var shortYearCutoff = this._get(inst, 'shortYearCutoff'); + shortYearCutoff = (typeof shortYearCutoff != 'string' ? shortYearCutoff : + new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10)); + return {shortYearCutoff: shortYearCutoff, + dayNamesShort: this._get(inst, 'dayNamesShort'), dayNames: this._get(inst, 'dayNames'), + monthNamesShort: this._get(inst, 'monthNamesShort'), monthNames: this._get(inst, 'monthNames')}; + }, + + /* Format the given date for display. */ + _formatDate: function(inst, day, month, year) { + if (!day) { + inst.currentDay = inst.selectedDay; + inst.currentMonth = inst.selectedMonth; + inst.currentYear = inst.selectedYear; + } + var date = (day ? (typeof day == 'object' ? day : + this._daylightSavingAdjust(new Date(year, month, day))) : + this._daylightSavingAdjust(new Date(inst.currentYear, inst.currentMonth, inst.currentDay))); + return this.formatDate(this._get(inst, 'dateFormat'), date, this._getFormatConfig(inst)); + } +}); + +/* + * Bind hover events for datepicker elements. + * Done via delegate so the binding only occurs once in the lifetime of the parent div. + * Global instActive, set by _updateDatepicker allows the handlers to find their way back to the active picker. + */ +function bindHover(dpDiv) { + var selector = 'button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a'; + return dpDiv.delegate(selector, 'mouseout', function() { + $(this).removeClass('ui-state-hover'); + if (this.className.indexOf('ui-datepicker-prev') != -1) $(this).removeClass('ui-datepicker-prev-hover'); + if (this.className.indexOf('ui-datepicker-next') != -1) $(this).removeClass('ui-datepicker-next-hover'); + }) + .delegate(selector, 'mouseover', function(){ + if (!$.datepicker._isDisabledDatepicker( instActive.inline ? dpDiv.parent()[0] : instActive.input[0])) { + $(this).parents('.ui-datepicker-calendar').find('a').removeClass('ui-state-hover'); + $(this).addClass('ui-state-hover'); + if (this.className.indexOf('ui-datepicker-prev') != -1) $(this).addClass('ui-datepicker-prev-hover'); + if (this.className.indexOf('ui-datepicker-next') != -1) $(this).addClass('ui-datepicker-next-hover'); + } + }); +} + +/* jQuery extend now ignores nulls! */ +function extendRemove(target, props) { + $.extend(target, props); + for (var name in props) + if (props[name] == null || props[name] == undefined) + target[name] = props[name]; + return target; +}; + +/* Invoke the datepicker functionality. + @param options string - a command, optionally followed by additional parameters or + Object - settings for attaching new datepicker functionality + @return jQuery object */ +$.fn.datepicker = function(options){ + + /* Verify an empty collection wasn't passed - Fixes #6976 */ + if ( !this.length ) { + return this; + } + + /* Initialise the date picker. */ + if (!$.datepicker.initialized) { + $(document).mousedown($.datepicker._checkExternalClick). + find(document.body).append($.datepicker.dpDiv); + $.datepicker.initialized = true; + } + + var otherArgs = Array.prototype.slice.call(arguments, 1); + if (typeof options == 'string' && (options == 'isDisabled' || options == 'getDate' || options == 'widget')) + return $.datepicker['_' + options + 'Datepicker']. + apply($.datepicker, [this[0]].concat(otherArgs)); + if (options == 'option' && arguments.length == 2 && typeof arguments[1] == 'string') + return $.datepicker['_' + options + 'Datepicker']. + apply($.datepicker, [this[0]].concat(otherArgs)); + return this.each(function() { + typeof options == 'string' ? + $.datepicker['_' + options + 'Datepicker']. + apply($.datepicker, [this].concat(otherArgs)) : + $.datepicker._attachDatepicker(this, options); + }); +}; + +$.datepicker = new Datepicker(); // singleton instance +$.datepicker.initialized = false; +$.datepicker.uuid = new Date().getTime(); +$.datepicker.version = "1.9.2"; + +// Workaround for #4055 +// Add another global to avoid noConflict issues with inline event handlers +window['DP_jQuery_' + dpuuid] = $; + +})(jQuery); + +(function( $, undefined ) { + +var uiDialogClasses = "ui-dialog ui-widget ui-widget-content ui-corner-all ", + sizeRelatedOptions = { + buttons: true, + height: true, + maxHeight: true, + maxWidth: true, + minHeight: true, + minWidth: true, + width: true + }, + resizableRelatedOptions = { + maxHeight: true, + maxWidth: true, + minHeight: true, + minWidth: true + }; + +$.widget("ui.dialog", { + version: "1.9.2", + options: { + autoOpen: true, + buttons: {}, + closeOnEscape: true, + closeText: "close", + dialogClass: "", + draggable: true, + hide: null, + height: "auto", + maxHeight: false, + maxWidth: false, + minHeight: 150, + minWidth: 150, + modal: false, + position: { + my: "center", + at: "center", + of: window, + collision: "fit", + // ensure that the titlebar is never outside the document + using: function( pos ) { + var topOffset = $( this ).css( pos ).offset().top; + if ( topOffset < 0 ) { + $( this ).css( "top", pos.top - topOffset ); + } + } + }, + resizable: true, + show: null, + stack: true, + title: "", + width: 300, + zIndex: 1000 + }, + + _create: function() { + this.originalTitle = this.element.attr( "title" ); + // #5742 - .attr() might return a DOMElement + if ( typeof this.originalTitle !== "string" ) { + this.originalTitle = ""; + } + this.oldPosition = { + parent: this.element.parent(), + index: this.element.parent().children().index( this.element ) + }; + this.options.title = this.options.title || this.originalTitle; + var that = this, + options = this.options, + + title = options.title || " ", + uiDialog, + uiDialogTitlebar, + uiDialogTitlebarClose, + uiDialogTitle, + uiDialogButtonPane; + + uiDialog = ( this.uiDialog = $( "
" ) ) + .addClass( uiDialogClasses + options.dialogClass ) + .css({ + display: "none", + outline: 0, // TODO: move to stylesheet + zIndex: options.zIndex + }) + // setting tabIndex makes the div focusable + .attr( "tabIndex", -1) + .keydown(function( event ) { + if ( options.closeOnEscape && !event.isDefaultPrevented() && event.keyCode && + event.keyCode === $.ui.keyCode.ESCAPE ) { + that.close( event ); + event.preventDefault(); + } + }) + .mousedown(function( event ) { + that.moveToTop( false, event ); + }) + .appendTo( "body" ); + + this.element + .show() + .removeAttr( "title" ) + .addClass( "ui-dialog-content ui-widget-content" ) + .appendTo( uiDialog ); + + uiDialogTitlebar = ( this.uiDialogTitlebar = $( "
" ) ) + .addClass( "ui-dialog-titlebar ui-widget-header " + + "ui-corner-all ui-helper-clearfix" ) + .bind( "mousedown", function() { + // Dialog isn't getting focus when dragging (#8063) + uiDialog.focus(); + }) + .prependTo( uiDialog ); + + uiDialogTitlebarClose = $( "" ) + .addClass( "ui-dialog-titlebar-close ui-corner-all" ) + .attr( "role", "button" ) + .click(function( event ) { + event.preventDefault(); + that.close( event ); + }) + .appendTo( uiDialogTitlebar ); + + ( this.uiDialogTitlebarCloseText = $( "" ) ) + .addClass( "ui-icon ui-icon-closethick" ) + .text( options.closeText ) + .appendTo( uiDialogTitlebarClose ); + + uiDialogTitle = $( "" ) + .uniqueId() + .addClass( "ui-dialog-title" ) + .html( title ) + .prependTo( uiDialogTitlebar ); + + uiDialogButtonPane = ( this.uiDialogButtonPane = $( "
" ) ) + .addClass( "ui-dialog-buttonpane ui-widget-content ui-helper-clearfix" ); + + ( this.uiButtonSet = $( "
" ) ) + .addClass( "ui-dialog-buttonset" ) + .appendTo( uiDialogButtonPane ); + + uiDialog.attr({ + role: "dialog", + "aria-labelledby": uiDialogTitle.attr( "id" ) + }); + + uiDialogTitlebar.find( "*" ).add( uiDialogTitlebar ).disableSelection(); + this._hoverable( uiDialogTitlebarClose ); + this._focusable( uiDialogTitlebarClose ); + + if ( options.draggable && $.fn.draggable ) { + this._makeDraggable(); + } + if ( options.resizable && $.fn.resizable ) { + this._makeResizable(); + } + + this._createButtons( options.buttons ); + this._isOpen = false; + + if ( $.fn.bgiframe ) { + uiDialog.bgiframe(); + } + + // prevent tabbing out of modal dialogs + this._on( uiDialog, { keydown: function( event ) { + if ( !options.modal || event.keyCode !== $.ui.keyCode.TAB ) { + return; + } + + var tabbables = $( ":tabbable", uiDialog ), + first = tabbables.filter( ":first" ), + last = tabbables.filter( ":last" ); + + if ( event.target === last[0] && !event.shiftKey ) { + first.focus( 1 ); + return false; + } else if ( event.target === first[0] && event.shiftKey ) { + last.focus( 1 ); + return false; + } + }}); + }, + + _init: function() { + if ( this.options.autoOpen ) { + this.open(); + } + }, + + _destroy: function() { + var next, + oldPosition = this.oldPosition; + + if ( this.overlay ) { + this.overlay.destroy(); + } + this.uiDialog.hide(); + this.element + .removeClass( "ui-dialog-content ui-widget-content" ) + .hide() + .appendTo( "body" ); + this.uiDialog.remove(); + + if ( this.originalTitle ) { + this.element.attr( "title", this.originalTitle ); + } + + next = oldPosition.parent.children().eq( oldPosition.index ); + // Don't try to place the dialog next to itself (#8613) + if ( next.length && next[ 0 ] !== this.element[ 0 ] ) { + next.before( this.element ); + } else { + oldPosition.parent.append( this.element ); + } + }, + + widget: function() { + return this.uiDialog; + }, + + close: function( event ) { + var that = this, + maxZ, thisZ; + + if ( !this._isOpen ) { + return; + } + + if ( false === this._trigger( "beforeClose", event ) ) { + return; + } + + this._isOpen = false; + + if ( this.overlay ) { + this.overlay.destroy(); + } + + if ( this.options.hide ) { + this._hide( this.uiDialog, this.options.hide, function() { + that._trigger( "close", event ); + }); + } else { + this.uiDialog.hide(); + this._trigger( "close", event ); + } + + $.ui.dialog.overlay.resize(); + + // adjust the maxZ to allow other modal dialogs to continue to work (see #4309) + if ( this.options.modal ) { + maxZ = 0; + $( ".ui-dialog" ).each(function() { + if ( this !== that.uiDialog[0] ) { + thisZ = $( this ).css( "z-index" ); + if ( !isNaN( thisZ ) ) { + maxZ = Math.max( maxZ, thisZ ); + } + } + }); + $.ui.dialog.maxZ = maxZ; + } + + return this; + }, + + isOpen: function() { + return this._isOpen; + }, + + // the force parameter allows us to move modal dialogs to their correct + // position on open + moveToTop: function( force, event ) { + var options = this.options, + saveScroll; + + if ( ( options.modal && !force ) || + ( !options.stack && !options.modal ) ) { + return this._trigger( "focus", event ); + } + + if ( options.zIndex > $.ui.dialog.maxZ ) { + $.ui.dialog.maxZ = options.zIndex; + } + if ( this.overlay ) { + $.ui.dialog.maxZ += 1; + $.ui.dialog.overlay.maxZ = $.ui.dialog.maxZ; + this.overlay.$el.css( "z-index", $.ui.dialog.overlay.maxZ ); + } + + // Save and then restore scroll + // Opera 9.5+ resets when parent z-index is changed. + // http://bugs.jqueryui.com/ticket/3193 + saveScroll = { + scrollTop: this.element.scrollTop(), + scrollLeft: this.element.scrollLeft() + }; + $.ui.dialog.maxZ += 1; + this.uiDialog.css( "z-index", $.ui.dialog.maxZ ); + this.element.attr( saveScroll ); + this._trigger( "focus", event ); + + return this; + }, + + open: function() { + if ( this._isOpen ) { + return; + } + + var hasFocus, + options = this.options, + uiDialog = this.uiDialog; + + this._size(); + this._position( options.position ); + uiDialog.show( options.show ); + this.overlay = options.modal ? new $.ui.dialog.overlay( this ) : null; + this.moveToTop( true ); + + // set focus to the first tabbable element in the content area or the first button + // if there are no tabbable elements, set focus on the dialog itself + hasFocus = this.element.find( ":tabbable" ); + if ( !hasFocus.length ) { + hasFocus = this.uiDialogButtonPane.find( ":tabbable" ); + if ( !hasFocus.length ) { + hasFocus = uiDialog; + } + } + hasFocus.eq( 0 ).focus(); + + this._isOpen = true; + this._trigger( "open" ); + + return this; + }, + + _createButtons: function( buttons ) { + var that = this, + hasButtons = false; + + // if we already have a button pane, remove it + this.uiDialogButtonPane.remove(); + this.uiButtonSet.empty(); + + if ( typeof buttons === "object" && buttons !== null ) { + $.each( buttons, function() { + return !(hasButtons = true); + }); + } + if ( hasButtons ) { + $.each( buttons, function( name, props ) { + var button, click; + props = $.isFunction( props ) ? + { click: props, text: name } : + props; + // Default to a non-submitting button + props = $.extend( { type: "button" }, props ); + // Change the context for the click callback to be the main element + click = props.click; + props.click = function() { + click.apply( that.element[0], arguments ); + }; + button = $( "", props ) + .appendTo( that.uiButtonSet ); + if ( $.fn.button ) { + button.button(); + } + }); + this.uiDialog.addClass( "ui-dialog-buttons" ); + this.uiDialogButtonPane.appendTo( this.uiDialog ); + } else { + this.uiDialog.removeClass( "ui-dialog-buttons" ); + } + }, + + _makeDraggable: function() { + var that = this, + options = this.options; + + function filteredUi( ui ) { + return { + position: ui.position, + offset: ui.offset + }; + } + + this.uiDialog.draggable({ + cancel: ".ui-dialog-content, .ui-dialog-titlebar-close", + handle: ".ui-dialog-titlebar", + containment: "document", + start: function( event, ui ) { + $( this ) + .addClass( "ui-dialog-dragging" ); + that._trigger( "dragStart", event, filteredUi( ui ) ); + }, + drag: function( event, ui ) { + that._trigger( "drag", event, filteredUi( ui ) ); + }, + stop: function( event, ui ) { + options.position = [ + ui.position.left - that.document.scrollLeft(), + ui.position.top - that.document.scrollTop() + ]; + $( this ) + .removeClass( "ui-dialog-dragging" ); + that._trigger( "dragStop", event, filteredUi( ui ) ); + $.ui.dialog.overlay.resize(); + } + }); + }, + + _makeResizable: function( handles ) { + handles = (handles === undefined ? this.options.resizable : handles); + var that = this, + options = this.options, + // .ui-resizable has position: relative defined in the stylesheet + // but dialogs have to use absolute or fixed positioning + position = this.uiDialog.css( "position" ), + resizeHandles = typeof handles === 'string' ? + handles : + "n,e,s,w,se,sw,ne,nw"; + + function filteredUi( ui ) { + return { + originalPosition: ui.originalPosition, + originalSize: ui.originalSize, + position: ui.position, + size: ui.size + }; + } + + this.uiDialog.resizable({ + cancel: ".ui-dialog-content", + containment: "document", + alsoResize: this.element, + maxWidth: options.maxWidth, + maxHeight: options.maxHeight, + minWidth: options.minWidth, + minHeight: this._minHeight(), + handles: resizeHandles, + start: function( event, ui ) { + $( this ).addClass( "ui-dialog-resizing" ); + that._trigger( "resizeStart", event, filteredUi( ui ) ); + }, + resize: function( event, ui ) { + that._trigger( "resize", event, filteredUi( ui ) ); + }, + stop: function( event, ui ) { + $( this ).removeClass( "ui-dialog-resizing" ); + options.height = $( this ).height(); + options.width = $( this ).width(); + that._trigger( "resizeStop", event, filteredUi( ui ) ); + $.ui.dialog.overlay.resize(); + } + }) + .css( "position", position ) + .find( ".ui-resizable-se" ) + .addClass( "ui-icon ui-icon-grip-diagonal-se" ); + }, + + _minHeight: function() { + var options = this.options; + + if ( options.height === "auto" ) { + return options.minHeight; + } else { + return Math.min( options.minHeight, options.height ); + } + }, + + _position: function( position ) { + var myAt = [], + offset = [ 0, 0 ], + isVisible; + + if ( position ) { + // deep extending converts arrays to objects in jQuery <= 1.3.2 :-( + // if (typeof position == 'string' || $.isArray(position)) { + // myAt = $.isArray(position) ? position : position.split(' '); + + if ( typeof position === "string" || (typeof position === "object" && "0" in position ) ) { + myAt = position.split ? position.split( " " ) : [ position[ 0 ], position[ 1 ] ]; + if ( myAt.length === 1 ) { + myAt[ 1 ] = myAt[ 0 ]; + } + + $.each( [ "left", "top" ], function( i, offsetPosition ) { + if ( +myAt[ i ] === myAt[ i ] ) { + offset[ i ] = myAt[ i ]; + myAt[ i ] = offsetPosition; + } + }); + + position = { + my: myAt[0] + (offset[0] < 0 ? offset[0] : "+" + offset[0]) + " " + + myAt[1] + (offset[1] < 0 ? offset[1] : "+" + offset[1]), + at: myAt.join( " " ) + }; + } + + position = $.extend( {}, $.ui.dialog.prototype.options.position, position ); + } else { + position = $.ui.dialog.prototype.options.position; + } + + // need to show the dialog to get the actual offset in the position plugin + isVisible = this.uiDialog.is( ":visible" ); + if ( !isVisible ) { + this.uiDialog.show(); + } + this.uiDialog.position( position ); + if ( !isVisible ) { + this.uiDialog.hide(); + } + }, + + _setOptions: function( options ) { + var that = this, + resizableOptions = {}, + resize = false; + + $.each( options, function( key, value ) { + that._setOption( key, value ); + + if ( key in sizeRelatedOptions ) { + resize = true; + } + if ( key in resizableRelatedOptions ) { + resizableOptions[ key ] = value; + } + }); + + if ( resize ) { + this._size(); + } + if ( this.uiDialog.is( ":data(resizable)" ) ) { + this.uiDialog.resizable( "option", resizableOptions ); + } + }, + + _setOption: function( key, value ) { + var isDraggable, isResizable, + uiDialog = this.uiDialog; + + switch ( key ) { + case "buttons": + this._createButtons( value ); + break; + case "closeText": + // ensure that we always pass a string + this.uiDialogTitlebarCloseText.text( "" + value ); + break; + case "dialogClass": + uiDialog + .removeClass( this.options.dialogClass ) + .addClass( uiDialogClasses + value ); + break; + case "disabled": + if ( value ) { + uiDialog.addClass( "ui-dialog-disabled" ); + } else { + uiDialog.removeClass( "ui-dialog-disabled" ); + } + break; + case "draggable": + isDraggable = uiDialog.is( ":data(draggable)" ); + if ( isDraggable && !value ) { + uiDialog.draggable( "destroy" ); + } + + if ( !isDraggable && value ) { + this._makeDraggable(); + } + break; + case "position": + this._position( value ); + break; + case "resizable": + // currently resizable, becoming non-resizable + isResizable = uiDialog.is( ":data(resizable)" ); + if ( isResizable && !value ) { + uiDialog.resizable( "destroy" ); + } + + // currently resizable, changing handles + if ( isResizable && typeof value === "string" ) { + uiDialog.resizable( "option", "handles", value ); + } + + // currently non-resizable, becoming resizable + if ( !isResizable && value !== false ) { + this._makeResizable( value ); + } + break; + case "title": + // convert whatever was passed in o a string, for html() to not throw up + $( ".ui-dialog-title", this.uiDialogTitlebar ) + .html( "" + ( value || " " ) ); + break; + } + + this._super( key, value ); + }, + + _size: function() { + /* If the user has resized the dialog, the .ui-dialog and .ui-dialog-content + * divs will both have width and height set, so we need to reset them + */ + var nonContentHeight, minContentHeight, autoHeight, + options = this.options, + isVisible = this.uiDialog.is( ":visible" ); + + // reset content sizing + this.element.show().css({ + width: "auto", + minHeight: 0, + height: 0 + }); + + if ( options.minWidth > options.width ) { + options.width = options.minWidth; + } + + // reset wrapper sizing + // determine the height of all the non-content elements + nonContentHeight = this.uiDialog.css({ + height: "auto", + width: options.width + }) + .outerHeight(); + minContentHeight = Math.max( 0, options.minHeight - nonContentHeight ); + + if ( options.height === "auto" ) { + // only needed for IE6 support + if ( $.support.minHeight ) { + this.element.css({ + minHeight: minContentHeight, + height: "auto" + }); + } else { + this.uiDialog.show(); + autoHeight = this.element.css( "height", "auto" ).height(); + if ( !isVisible ) { + this.uiDialog.hide(); + } + this.element.height( Math.max( autoHeight, minContentHeight ) ); + } + } else { + this.element.height( Math.max( options.height - nonContentHeight, 0 ) ); + } + + if (this.uiDialog.is( ":data(resizable)" ) ) { + this.uiDialog.resizable( "option", "minHeight", this._minHeight() ); + } + } +}); + +$.extend($.ui.dialog, { + uuid: 0, + maxZ: 0, + + getTitleId: function($el) { + var id = $el.attr( "id" ); + if ( !id ) { + this.uuid += 1; + id = this.uuid; + } + return "ui-dialog-title-" + id; + }, + + overlay: function( dialog ) { + this.$el = $.ui.dialog.overlay.create( dialog ); + } +}); + +$.extend( $.ui.dialog.overlay, { + instances: [], + // reuse old instances due to IE memory leak with alpha transparency (see #5185) + oldInstances: [], + maxZ: 0, + events: $.map( + "focus,mousedown,mouseup,keydown,keypress,click".split( "," ), + function( event ) { + return event + ".dialog-overlay"; + } + ).join( " " ), + create: function( dialog ) { + if ( this.instances.length === 0 ) { + // prevent use of anchors and inputs + // we use a setTimeout in case the overlay is created from an + // event that we're going to be cancelling (see #2804) + setTimeout(function() { + // handle $(el).dialog().dialog('close') (see #4065) + if ( $.ui.dialog.overlay.instances.length ) { + $( document ).bind( $.ui.dialog.overlay.events, function( event ) { + // stop events if the z-index of the target is < the z-index of the overlay + // we cannot return true when we don't want to cancel the event (#3523) + if ( $( event.target ).zIndex() < $.ui.dialog.overlay.maxZ ) { + return false; + } + }); + } + }, 1 ); + + // handle window resize + $( window ).bind( "resize.dialog-overlay", $.ui.dialog.overlay.resize ); + } + + var $el = ( this.oldInstances.pop() || $( "
" ).addClass( "ui-widget-overlay" ) ); + + // allow closing by pressing the escape key + $( document ).bind( "keydown.dialog-overlay", function( event ) { + var instances = $.ui.dialog.overlay.instances; + // only react to the event if we're the top overlay + if ( instances.length !== 0 && instances[ instances.length - 1 ] === $el && + dialog.options.closeOnEscape && !event.isDefaultPrevented() && event.keyCode && + event.keyCode === $.ui.keyCode.ESCAPE ) { + + dialog.close( event ); + event.preventDefault(); + } + }); + + $el.appendTo( document.body ).css({ + width: this.width(), + height: this.height() + }); + + if ( $.fn.bgiframe ) { + $el.bgiframe(); + } + + this.instances.push( $el ); + return $el; + }, + + destroy: function( $el ) { + var indexOf = $.inArray( $el, this.instances ), + maxZ = 0; + + if ( indexOf !== -1 ) { + this.oldInstances.push( this.instances.splice( indexOf, 1 )[ 0 ] ); + } + + if ( this.instances.length === 0 ) { + $( [ document, window ] ).unbind( ".dialog-overlay" ); + } + + $el.height( 0 ).width( 0 ).remove(); + + // adjust the maxZ to allow other modal dialogs to continue to work (see #4309) + $.each( this.instances, function() { + maxZ = Math.max( maxZ, this.css( "z-index" ) ); + }); + this.maxZ = maxZ; + }, + + height: function() { + var scrollHeight, + offsetHeight; + // handle IE + if ( $.ui.ie ) { + scrollHeight = Math.max( + document.documentElement.scrollHeight, + document.body.scrollHeight + ); + offsetHeight = Math.max( + document.documentElement.offsetHeight, + document.body.offsetHeight + ); + + if ( scrollHeight < offsetHeight ) { + return $( window ).height() + "px"; + } else { + return scrollHeight + "px"; + } + // handle "good" browsers + } else { + return $( document ).height() + "px"; + } + }, + + width: function() { + var scrollWidth, + offsetWidth; + // handle IE + if ( $.ui.ie ) { + scrollWidth = Math.max( + document.documentElement.scrollWidth, + document.body.scrollWidth + ); + offsetWidth = Math.max( + document.documentElement.offsetWidth, + document.body.offsetWidth + ); + + if ( scrollWidth < offsetWidth ) { + return $( window ).width() + "px"; + } else { + return scrollWidth + "px"; + } + // handle "good" browsers + } else { + return $( document ).width() + "px"; + } + }, + + resize: function() { + /* If the dialog is draggable and the user drags it past the + * right edge of the window, the document becomes wider so we + * need to stretch the overlay. If the user then drags the + * dialog back to the left, the document will become narrower, + * so we need to shrink the overlay to the appropriate size. + * This is handled by shrinking the overlay before setting it + * to the full document size. + */ + var $overlays = $( [] ); + $.each( $.ui.dialog.overlay.instances, function() { + $overlays = $overlays.add( this ); + }); + + $overlays.css({ + width: 0, + height: 0 + }).css({ + width: $.ui.dialog.overlay.width(), + height: $.ui.dialog.overlay.height() + }); + } +}); + +$.extend( $.ui.dialog.overlay.prototype, { + destroy: function() { + $.ui.dialog.overlay.destroy( this.$el ); + } +}); + +}( jQuery ) ); + +(function( $, undefined ) { + +var rvertical = /up|down|vertical/, + rpositivemotion = /up|left|vertical|horizontal/; + +$.effects.effect.blind = function( o, done ) { + // Create element + var el = $( this ), + props = [ "position", "top", "bottom", "left", "right", "height", "width" ], + mode = $.effects.setMode( el, o.mode || "hide" ), + direction = o.direction || "up", + vertical = rvertical.test( direction ), + ref = vertical ? "height" : "width", + ref2 = vertical ? "top" : "left", + motion = rpositivemotion.test( direction ), + animation = {}, + show = mode === "show", + wrapper, distance, margin; + + // if already wrapped, the wrapper's properties are my property. #6245 + if ( el.parent().is( ".ui-effects-wrapper" ) ) { + $.effects.save( el.parent(), props ); + } else { + $.effects.save( el, props ); + } + el.show(); + wrapper = $.effects.createWrapper( el ).css({ + overflow: "hidden" + }); + + distance = wrapper[ ref ](); + margin = parseFloat( wrapper.css( ref2 ) ) || 0; + + animation[ ref ] = show ? distance : 0; + if ( !motion ) { + el + .css( vertical ? "bottom" : "right", 0 ) + .css( vertical ? "top" : "left", "auto" ) + .css({ position: "absolute" }); + + animation[ ref2 ] = show ? margin : distance + margin; + } + + // start at 0 if we are showing + if ( show ) { + wrapper.css( ref, 0 ); + if ( ! motion ) { + wrapper.css( ref2, margin + distance ); + } + } + + // Animate + wrapper.animate( animation, { + duration: o.duration, + easing: o.easing, + queue: false, + complete: function() { + if ( mode === "hide" ) { + el.hide(); + } + $.effects.restore( el, props ); + $.effects.removeWrapper( el ); + done(); + } + }); + +}; + +})(jQuery); + +(function( $, undefined ) { + +$.effects.effect.bounce = function( o, done ) { + var el = $( this ), + props = [ "position", "top", "bottom", "left", "right", "height", "width" ], + + // defaults: + mode = $.effects.setMode( el, o.mode || "effect" ), + hide = mode === "hide", + show = mode === "show", + direction = o.direction || "up", + distance = o.distance, + times = o.times || 5, + + // number of internal animations + anims = times * 2 + ( show || hide ? 1 : 0 ), + speed = o.duration / anims, + easing = o.easing, + + // utility: + ref = ( direction === "up" || direction === "down" ) ? "top" : "left", + motion = ( direction === "up" || direction === "left" ), + i, + upAnim, + downAnim, + + // we will need to re-assemble the queue to stack our animations in place + queue = el.queue(), + queuelen = queue.length; + + // Avoid touching opacity to prevent clearType and PNG issues in IE + if ( show || hide ) { + props.push( "opacity" ); + } + + $.effects.save( el, props ); + el.show(); + $.effects.createWrapper( el ); // Create Wrapper + + // default distance for the BIGGEST bounce is the outer Distance / 3 + if ( !distance ) { + distance = el[ ref === "top" ? "outerHeight" : "outerWidth" ]() / 3; + } + + if ( show ) { + downAnim = { opacity: 1 }; + downAnim[ ref ] = 0; + + // if we are showing, force opacity 0 and set the initial position + // then do the "first" animation + el.css( "opacity", 0 ) + .css( ref, motion ? -distance * 2 : distance * 2 ) + .animate( downAnim, speed, easing ); + } + + // start at the smallest distance if we are hiding + if ( hide ) { + distance = distance / Math.pow( 2, times - 1 ); + } + + downAnim = {}; + downAnim[ ref ] = 0; + // Bounces up/down/left/right then back to 0 -- times * 2 animations happen here + for ( i = 0; i < times; i++ ) { + upAnim = {}; + upAnim[ ref ] = ( motion ? "-=" : "+=" ) + distance; + + el.animate( upAnim, speed, easing ) + .animate( downAnim, speed, easing ); + + distance = hide ? distance * 2 : distance / 2; + } + + // Last Bounce when Hiding + if ( hide ) { + upAnim = { opacity: 0 }; + upAnim[ ref ] = ( motion ? "-=" : "+=" ) + distance; + + el.animate( upAnim, speed, easing ); + } + + el.queue(function() { + if ( hide ) { + el.hide(); + } + $.effects.restore( el, props ); + $.effects.removeWrapper( el ); + done(); + }); + + // inject all the animations we just queued to be first in line (after "inprogress") + if ( queuelen > 1) { + queue.splice.apply( queue, + [ 1, 0 ].concat( queue.splice( queuelen, anims + 1 ) ) ); + } + el.dequeue(); + +}; + +})(jQuery); + +(function( $, undefined ) { + +$.effects.effect.clip = function( o, done ) { + // Create element + var el = $( this ), + props = [ "position", "top", "bottom", "left", "right", "height", "width" ], + mode = $.effects.setMode( el, o.mode || "hide" ), + show = mode === "show", + direction = o.direction || "vertical", + vert = direction === "vertical", + size = vert ? "height" : "width", + position = vert ? "top" : "left", + animation = {}, + wrapper, animate, distance; + + // Save & Show + $.effects.save( el, props ); + el.show(); + + // Create Wrapper + wrapper = $.effects.createWrapper( el ).css({ + overflow: "hidden" + }); + animate = ( el[0].tagName === "IMG" ) ? wrapper : el; + distance = animate[ size ](); + + // Shift + if ( show ) { + animate.css( size, 0 ); + animate.css( position, distance / 2 ); + } + + // Create Animation Object: + animation[ size ] = show ? distance : 0; + animation[ position ] = show ? 0 : distance / 2; + + // Animate + animate.animate( animation, { + queue: false, + duration: o.duration, + easing: o.easing, + complete: function() { + if ( !show ) { + el.hide(); + } + $.effects.restore( el, props ); + $.effects.removeWrapper( el ); + done(); + } + }); + +}; + +})(jQuery); + +(function( $, undefined ) { + +$.effects.effect.drop = function( o, done ) { + + var el = $( this ), + props = [ "position", "top", "bottom", "left", "right", "opacity", "height", "width" ], + mode = $.effects.setMode( el, o.mode || "hide" ), + show = mode === "show", + direction = o.direction || "left", + ref = ( direction === "up" || direction === "down" ) ? "top" : "left", + motion = ( direction === "up" || direction === "left" ) ? "pos" : "neg", + animation = { + opacity: show ? 1 : 0 + }, + distance; + + // Adjust + $.effects.save( el, props ); + el.show(); + $.effects.createWrapper( el ); + + distance = o.distance || el[ ref === "top" ? "outerHeight": "outerWidth" ]( true ) / 2; + + if ( show ) { + el + .css( "opacity", 0 ) + .css( ref, motion === "pos" ? -distance : distance ); + } + + // Animation + animation[ ref ] = ( show ? + ( motion === "pos" ? "+=" : "-=" ) : + ( motion === "pos" ? "-=" : "+=" ) ) + + distance; + + // Animate + el.animate( animation, { + queue: false, + duration: o.duration, + easing: o.easing, + complete: function() { + if ( mode === "hide" ) { + el.hide(); + } + $.effects.restore( el, props ); + $.effects.removeWrapper( el ); + done(); + } + }); +}; + +})(jQuery); + +(function( $, undefined ) { + +$.effects.effect.explode = function( o, done ) { + + var rows = o.pieces ? Math.round( Math.sqrt( o.pieces ) ) : 3, + cells = rows, + el = $( this ), + mode = $.effects.setMode( el, o.mode || "hide" ), + show = mode === "show", + + // show and then visibility:hidden the element before calculating offset + offset = el.show().css( "visibility", "hidden" ).offset(), + + // width and height of a piece + width = Math.ceil( el.outerWidth() / cells ), + height = Math.ceil( el.outerHeight() / rows ), + pieces = [], + + // loop + i, j, left, top, mx, my; + + // children animate complete: + function childComplete() { + pieces.push( this ); + if ( pieces.length === rows * cells ) { + animComplete(); + } + } + + // clone the element for each row and cell. + for( i = 0; i < rows ; i++ ) { // ===> + top = offset.top + i * height; + my = i - ( rows - 1 ) / 2 ; + + for( j = 0; j < cells ; j++ ) { // ||| + left = offset.left + j * width; + mx = j - ( cells - 1 ) / 2 ; + + // Create a clone of the now hidden main element that will be absolute positioned + // within a wrapper div off the -left and -top equal to size of our pieces + el + .clone() + .appendTo( "body" ) + .wrap( "
" ) + .css({ + position: "absolute", + visibility: "visible", + left: -j * width, + top: -i * height + }) + + // select the wrapper - make it overflow: hidden and absolute positioned based on + // where the original was located +left and +top equal to the size of pieces + .parent() + .addClass( "ui-effects-explode" ) + .css({ + position: "absolute", + overflow: "hidden", + width: width, + height: height, + left: left + ( show ? mx * width : 0 ), + top: top + ( show ? my * height : 0 ), + opacity: show ? 0 : 1 + }).animate({ + left: left + ( show ? 0 : mx * width ), + top: top + ( show ? 0 : my * height ), + opacity: show ? 1 : 0 + }, o.duration || 500, o.easing, childComplete ); + } + } + + function animComplete() { + el.css({ + visibility: "visible" + }); + $( pieces ).remove(); + if ( !show ) { + el.hide(); + } + done(); + } +}; + +})(jQuery); + +(function( $, undefined ) { + +$.effects.effect.fade = function( o, done ) { + var el = $( this ), + mode = $.effects.setMode( el, o.mode || "toggle" ); + + el.animate({ + opacity: mode + }, { + queue: false, + duration: o.duration, + easing: o.easing, + complete: done + }); +}; + +})( jQuery ); + +(function( $, undefined ) { + +$.effects.effect.fold = function( o, done ) { + + // Create element + var el = $( this ), + props = [ "position", "top", "bottom", "left", "right", "height", "width" ], + mode = $.effects.setMode( el, o.mode || "hide" ), + show = mode === "show", + hide = mode === "hide", + size = o.size || 15, + percent = /([0-9]+)%/.exec( size ), + horizFirst = !!o.horizFirst, + widthFirst = show !== horizFirst, + ref = widthFirst ? [ "width", "height" ] : [ "height", "width" ], + duration = o.duration / 2, + wrapper, distance, + animation1 = {}, + animation2 = {}; + + $.effects.save( el, props ); + el.show(); + + // Create Wrapper + wrapper = $.effects.createWrapper( el ).css({ + overflow: "hidden" + }); + distance = widthFirst ? + [ wrapper.width(), wrapper.height() ] : + [ wrapper.height(), wrapper.width() ]; + + if ( percent ) { + size = parseInt( percent[ 1 ], 10 ) / 100 * distance[ hide ? 0 : 1 ]; + } + if ( show ) { + wrapper.css( horizFirst ? { + height: 0, + width: size + } : { + height: size, + width: 0 + }); + } + + // Animation + animation1[ ref[ 0 ] ] = show ? distance[ 0 ] : size; + animation2[ ref[ 1 ] ] = show ? distance[ 1 ] : 0; + + // Animate + wrapper + .animate( animation1, duration, o.easing ) + .animate( animation2, duration, o.easing, function() { + if ( hide ) { + el.hide(); + } + $.effects.restore( el, props ); + $.effects.removeWrapper( el ); + done(); + }); + +}; + +})(jQuery); + +(function( $, undefined ) { + +$.effects.effect.highlight = function( o, done ) { + var elem = $( this ), + props = [ "backgroundImage", "backgroundColor", "opacity" ], + mode = $.effects.setMode( elem, o.mode || "show" ), + animation = { + backgroundColor: elem.css( "backgroundColor" ) + }; + + if (mode === "hide") { + animation.opacity = 0; + } + + $.effects.save( elem, props ); + + elem + .show() + .css({ + backgroundImage: "none", + backgroundColor: o.color || "#ffff99" + }) + .animate( animation, { + queue: false, + duration: o.duration, + easing: o.easing, + complete: function() { + if ( mode === "hide" ) { + elem.hide(); + } + $.effects.restore( elem, props ); + done(); + } + }); +}; + +})(jQuery); + +(function( $, undefined ) { + +$.effects.effect.pulsate = function( o, done ) { + var elem = $( this ), + mode = $.effects.setMode( elem, o.mode || "show" ), + show = mode === "show", + hide = mode === "hide", + showhide = ( show || mode === "hide" ), + + // showing or hiding leaves of the "last" animation + anims = ( ( o.times || 5 ) * 2 ) + ( showhide ? 1 : 0 ), + duration = o.duration / anims, + animateTo = 0, + queue = elem.queue(), + queuelen = queue.length, + i; + + if ( show || !elem.is(":visible")) { + elem.css( "opacity", 0 ).show(); + animateTo = 1; + } + + // anims - 1 opacity "toggles" + for ( i = 1; i < anims; i++ ) { + elem.animate({ + opacity: animateTo + }, duration, o.easing ); + animateTo = 1 - animateTo; + } + + elem.animate({ + opacity: animateTo + }, duration, o.easing); + + elem.queue(function() { + if ( hide ) { + elem.hide(); + } + done(); + }); + + // We just queued up "anims" animations, we need to put them next in the queue + if ( queuelen > 1 ) { + queue.splice.apply( queue, + [ 1, 0 ].concat( queue.splice( queuelen, anims + 1 ) ) ); + } + elem.dequeue(); +}; + +})(jQuery); + +(function( $, undefined ) { + +$.effects.effect.puff = function( o, done ) { + var elem = $( this ), + mode = $.effects.setMode( elem, o.mode || "hide" ), + hide = mode === "hide", + percent = parseInt( o.percent, 10 ) || 150, + factor = percent / 100, + original = { + height: elem.height(), + width: elem.width(), + outerHeight: elem.outerHeight(), + outerWidth: elem.outerWidth() + }; + + $.extend( o, { + effect: "scale", + queue: false, + fade: true, + mode: mode, + complete: done, + percent: hide ? percent : 100, + from: hide ? + original : + { + height: original.height * factor, + width: original.width * factor, + outerHeight: original.outerHeight * factor, + outerWidth: original.outerWidth * factor + } + }); + + elem.effect( o ); +}; + +$.effects.effect.scale = function( o, done ) { + + // Create element + var el = $( this ), + options = $.extend( true, {}, o ), + mode = $.effects.setMode( el, o.mode || "effect" ), + percent = parseInt( o.percent, 10 ) || + ( parseInt( o.percent, 10 ) === 0 ? 0 : ( mode === "hide" ? 0 : 100 ) ), + direction = o.direction || "both", + origin = o.origin, + original = { + height: el.height(), + width: el.width(), + outerHeight: el.outerHeight(), + outerWidth: el.outerWidth() + }, + factor = { + y: direction !== "horizontal" ? (percent / 100) : 1, + x: direction !== "vertical" ? (percent / 100) : 1 + }; + + // We are going to pass this effect to the size effect: + options.effect = "size"; + options.queue = false; + options.complete = done; + + // Set default origin and restore for show/hide + if ( mode !== "effect" ) { + options.origin = origin || ["middle","center"]; + options.restore = true; + } + + options.from = o.from || ( mode === "show" ? { + height: 0, + width: 0, + outerHeight: 0, + outerWidth: 0 + } : original ); + options.to = { + height: original.height * factor.y, + width: original.width * factor.x, + outerHeight: original.outerHeight * factor.y, + outerWidth: original.outerWidth * factor.x + }; + + // Fade option to support puff + if ( options.fade ) { + if ( mode === "show" ) { + options.from.opacity = 0; + options.to.opacity = 1; + } + if ( mode === "hide" ) { + options.from.opacity = 1; + options.to.opacity = 0; + } + } + + // Animate + el.effect( options ); + +}; + +$.effects.effect.size = function( o, done ) { + + // Create element + var original, baseline, factor, + el = $( this ), + props0 = [ "position", "top", "bottom", "left", "right", "width", "height", "overflow", "opacity" ], + + // Always restore + props1 = [ "position", "top", "bottom", "left", "right", "overflow", "opacity" ], + + // Copy for children + props2 = [ "width", "height", "overflow" ], + cProps = [ "fontSize" ], + vProps = [ "borderTopWidth", "borderBottomWidth", "paddingTop", "paddingBottom" ], + hProps = [ "borderLeftWidth", "borderRightWidth", "paddingLeft", "paddingRight" ], + + // Set options + mode = $.effects.setMode( el, o.mode || "effect" ), + restore = o.restore || mode !== "effect", + scale = o.scale || "both", + origin = o.origin || [ "middle", "center" ], + position = el.css( "position" ), + props = restore ? props0 : props1, + zero = { + height: 0, + width: 0, + outerHeight: 0, + outerWidth: 0 + }; + + if ( mode === "show" ) { + el.show(); + } + original = { + height: el.height(), + width: el.width(), + outerHeight: el.outerHeight(), + outerWidth: el.outerWidth() + }; + + if ( o.mode === "toggle" && mode === "show" ) { + el.from = o.to || zero; + el.to = o.from || original; + } else { + el.from = o.from || ( mode === "show" ? zero : original ); + el.to = o.to || ( mode === "hide" ? zero : original ); + } + + // Set scaling factor + factor = { + from: { + y: el.from.height / original.height, + x: el.from.width / original.width + }, + to: { + y: el.to.height / original.height, + x: el.to.width / original.width + } + }; + + // Scale the css box + if ( scale === "box" || scale === "both" ) { + + // Vertical props scaling + if ( factor.from.y !== factor.to.y ) { + props = props.concat( vProps ); + el.from = $.effects.setTransition( el, vProps, factor.from.y, el.from ); + el.to = $.effects.setTransition( el, vProps, factor.to.y, el.to ); + } + + // Horizontal props scaling + if ( factor.from.x !== factor.to.x ) { + props = props.concat( hProps ); + el.from = $.effects.setTransition( el, hProps, factor.from.x, el.from ); + el.to = $.effects.setTransition( el, hProps, factor.to.x, el.to ); + } + } + + // Scale the content + if ( scale === "content" || scale === "both" ) { + + // Vertical props scaling + if ( factor.from.y !== factor.to.y ) { + props = props.concat( cProps ).concat( props2 ); + el.from = $.effects.setTransition( el, cProps, factor.from.y, el.from ); + el.to = $.effects.setTransition( el, cProps, factor.to.y, el.to ); + } + } + + $.effects.save( el, props ); + el.show(); + $.effects.createWrapper( el ); + el.css( "overflow", "hidden" ).css( el.from ); + + // Adjust + if (origin) { // Calculate baseline shifts + baseline = $.effects.getBaseline( origin, original ); + el.from.top = ( original.outerHeight - el.outerHeight() ) * baseline.y; + el.from.left = ( original.outerWidth - el.outerWidth() ) * baseline.x; + el.to.top = ( original.outerHeight - el.to.outerHeight ) * baseline.y; + el.to.left = ( original.outerWidth - el.to.outerWidth ) * baseline.x; + } + el.css( el.from ); // set top & left + + // Animate + if ( scale === "content" || scale === "both" ) { // Scale the children + + // Add margins/font-size + vProps = vProps.concat([ "marginTop", "marginBottom" ]).concat(cProps); + hProps = hProps.concat([ "marginLeft", "marginRight" ]); + props2 = props0.concat(vProps).concat(hProps); + + el.find( "*[width]" ).each( function(){ + var child = $( this ), + c_original = { + height: child.height(), + width: child.width(), + outerHeight: child.outerHeight(), + outerWidth: child.outerWidth() + }; + if (restore) { + $.effects.save(child, props2); + } + + child.from = { + height: c_original.height * factor.from.y, + width: c_original.width * factor.from.x, + outerHeight: c_original.outerHeight * factor.from.y, + outerWidth: c_original.outerWidth * factor.from.x + }; + child.to = { + height: c_original.height * factor.to.y, + width: c_original.width * factor.to.x, + outerHeight: c_original.height * factor.to.y, + outerWidth: c_original.width * factor.to.x + }; + + // Vertical props scaling + if ( factor.from.y !== factor.to.y ) { + child.from = $.effects.setTransition( child, vProps, factor.from.y, child.from ); + child.to = $.effects.setTransition( child, vProps, factor.to.y, child.to ); + } + + // Horizontal props scaling + if ( factor.from.x !== factor.to.x ) { + child.from = $.effects.setTransition( child, hProps, factor.from.x, child.from ); + child.to = $.effects.setTransition( child, hProps, factor.to.x, child.to ); + } + + // Animate children + child.css( child.from ); + child.animate( child.to, o.duration, o.easing, function() { + + // Restore children + if ( restore ) { + $.effects.restore( child, props2 ); + } + }); + }); + } + + // Animate + el.animate( el.to, { + queue: false, + duration: o.duration, + easing: o.easing, + complete: function() { + if ( el.to.opacity === 0 ) { + el.css( "opacity", el.from.opacity ); + } + if( mode === "hide" ) { + el.hide(); + } + $.effects.restore( el, props ); + if ( !restore ) { + + // we need to calculate our new positioning based on the scaling + if ( position === "static" ) { + el.css({ + position: "relative", + top: el.to.top, + left: el.to.left + }); + } else { + $.each([ "top", "left" ], function( idx, pos ) { + el.css( pos, function( _, str ) { + var val = parseInt( str, 10 ), + toRef = idx ? el.to.left : el.to.top; + + // if original was "auto", recalculate the new value from wrapper + if ( str === "auto" ) { + return toRef + "px"; + } + + return val + toRef + "px"; + }); + }); + } + } + + $.effects.removeWrapper( el ); + done(); + } + }); + +}; + +})(jQuery); + +(function( $, undefined ) { + +$.effects.effect.shake = function( o, done ) { + + var el = $( this ), + props = [ "position", "top", "bottom", "left", "right", "height", "width" ], + mode = $.effects.setMode( el, o.mode || "effect" ), + direction = o.direction || "left", + distance = o.distance || 20, + times = o.times || 3, + anims = times * 2 + 1, + speed = Math.round(o.duration/anims), + ref = (direction === "up" || direction === "down") ? "top" : "left", + positiveMotion = (direction === "up" || direction === "left"), + animation = {}, + animation1 = {}, + animation2 = {}, + i, + + // we will need to re-assemble the queue to stack our animations in place + queue = el.queue(), + queuelen = queue.length; + + $.effects.save( el, props ); + el.show(); + $.effects.createWrapper( el ); + + // Animation + animation[ ref ] = ( positiveMotion ? "-=" : "+=" ) + distance; + animation1[ ref ] = ( positiveMotion ? "+=" : "-=" ) + distance * 2; + animation2[ ref ] = ( positiveMotion ? "-=" : "+=" ) + distance * 2; + + // Animate + el.animate( animation, speed, o.easing ); + + // Shakes + for ( i = 1; i < times; i++ ) { + el.animate( animation1, speed, o.easing ).animate( animation2, speed, o.easing ); + } + el + .animate( animation1, speed, o.easing ) + .animate( animation, speed / 2, o.easing ) + .queue(function() { + if ( mode === "hide" ) { + el.hide(); + } + $.effects.restore( el, props ); + $.effects.removeWrapper( el ); + done(); + }); + + // inject all the animations we just queued to be first in line (after "inprogress") + if ( queuelen > 1) { + queue.splice.apply( queue, + [ 1, 0 ].concat( queue.splice( queuelen, anims + 1 ) ) ); + } + el.dequeue(); + +}; + +})(jQuery); + +(function( $, undefined ) { + +$.effects.effect.slide = function( o, done ) { + + // Create element + var el = $( this ), + props = [ "position", "top", "bottom", "left", "right", "width", "height" ], + mode = $.effects.setMode( el, o.mode || "show" ), + show = mode === "show", + direction = o.direction || "left", + ref = (direction === "up" || direction === "down") ? "top" : "left", + positiveMotion = (direction === "up" || direction === "left"), + distance, + animation = {}; + + // Adjust + $.effects.save( el, props ); + el.show(); + distance = o.distance || el[ ref === "top" ? "outerHeight" : "outerWidth" ]( true ); + + $.effects.createWrapper( el ).css({ + overflow: "hidden" + }); + + if ( show ) { + el.css( ref, positiveMotion ? (isNaN(distance) ? "-" + distance : -distance) : distance ); + } + + // Animation + animation[ ref ] = ( show ? + ( positiveMotion ? "+=" : "-=") : + ( positiveMotion ? "-=" : "+=")) + + distance; + + // Animate + el.animate( animation, { + queue: false, + duration: o.duration, + easing: o.easing, + complete: function() { + if ( mode === "hide" ) { + el.hide(); + } + $.effects.restore( el, props ); + $.effects.removeWrapper( el ); + done(); + } + }); +}; + +})(jQuery); + +(function( $, undefined ) { + +$.effects.effect.transfer = function( o, done ) { + var elem = $( this ), + target = $( o.to ), + targetFixed = target.css( "position" ) === "fixed", + body = $("body"), + fixTop = targetFixed ? body.scrollTop() : 0, + fixLeft = targetFixed ? body.scrollLeft() : 0, + endPosition = target.offset(), + animation = { + top: endPosition.top - fixTop , + left: endPosition.left - fixLeft , + height: target.innerHeight(), + width: target.innerWidth() + }, + startPosition = elem.offset(), + transfer = $( '
' ) + .appendTo( document.body ) + .addClass( o.className ) + .css({ + top: startPosition.top - fixTop , + left: startPosition.left - fixLeft , + height: elem.innerHeight(), + width: elem.innerWidth(), + position: targetFixed ? "fixed" : "absolute" + }) + .animate( animation, o.duration, o.easing, function() { + transfer.remove(); + done(); + }); +}; + +})(jQuery); + +(function( $, undefined ) { + +var mouseHandled = false; + +$.widget( "ui.menu", { + version: "1.9.2", + defaultElement: "
    ", + delay: 300, + options: { + icons: { + submenu: "ui-icon-carat-1-e" + }, + menus: "ul", + position: { + my: "left top", + at: "right top" + }, + role: "menu", + + // callbacks + blur: null, + focus: null, + select: null + }, + + _create: function() { + this.activeMenu = this.element; + this.element + .uniqueId() + .addClass( "ui-menu ui-widget ui-widget-content ui-corner-all" ) + .toggleClass( "ui-menu-icons", !!this.element.find( ".ui-icon" ).length ) + .attr({ + role: this.options.role, + tabIndex: 0 + }) + // need to catch all clicks on disabled menu + // not possible through _on + .bind( "click" + this.eventNamespace, $.proxy(function( event ) { + if ( this.options.disabled ) { + event.preventDefault(); + } + }, this )); + + if ( this.options.disabled ) { + this.element + .addClass( "ui-state-disabled" ) + .attr( "aria-disabled", "true" ); + } + + this._on({ + // Prevent focus from sticking to links inside menu after clicking + // them (focus should always stay on UL during navigation). + "mousedown .ui-menu-item > a": function( event ) { + event.preventDefault(); + }, + "click .ui-state-disabled > a": function( event ) { + event.preventDefault(); + }, + "click .ui-menu-item:has(a)": function( event ) { + var target = $( event.target ).closest( ".ui-menu-item" ); + if ( !mouseHandled && target.not( ".ui-state-disabled" ).length ) { + mouseHandled = true; + + this.select( event ); + // Open submenu on click + if ( target.has( ".ui-menu" ).length ) { + this.expand( event ); + } else if ( !this.element.is( ":focus" ) ) { + // Redirect focus to the menu + this.element.trigger( "focus", [ true ] ); + + // If the active item is on the top level, let it stay active. + // Otherwise, blur the active item since it is no longer visible. + if ( this.active && this.active.parents( ".ui-menu" ).length === 1 ) { + clearTimeout( this.timer ); + } + } + } + }, + "mouseenter .ui-menu-item": function( event ) { + var target = $( event.currentTarget ); + // Remove ui-state-active class from siblings of the newly focused menu item + // to avoid a jump caused by adjacent elements both having a class with a border + target.siblings().children( ".ui-state-active" ).removeClass( "ui-state-active" ); + this.focus( event, target ); + }, + mouseleave: "collapseAll", + "mouseleave .ui-menu": "collapseAll", + focus: function( event, keepActiveItem ) { + // If there's already an active item, keep it active + // If not, activate the first item + var item = this.active || this.element.children( ".ui-menu-item" ).eq( 0 ); + + if ( !keepActiveItem ) { + this.focus( event, item ); + } + }, + blur: function( event ) { + this._delay(function() { + if ( !$.contains( this.element[0], this.document[0].activeElement ) ) { + this.collapseAll( event ); + } + }); + }, + keydown: "_keydown" + }); + + this.refresh(); + + // Clicks outside of a menu collapse any open menus + this._on( this.document, { + click: function( event ) { + if ( !$( event.target ).closest( ".ui-menu" ).length ) { + this.collapseAll( event ); + } + + // Reset the mouseHandled flag + mouseHandled = false; + } + }); + }, + + _destroy: function() { + // Destroy (sub)menus + this.element + .removeAttr( "aria-activedescendant" ) + .find( ".ui-menu" ).andSelf() + .removeClass( "ui-menu ui-widget ui-widget-content ui-corner-all ui-menu-icons" ) + .removeAttr( "role" ) + .removeAttr( "tabIndex" ) + .removeAttr( "aria-labelledby" ) + .removeAttr( "aria-expanded" ) + .removeAttr( "aria-hidden" ) + .removeAttr( "aria-disabled" ) + .removeUniqueId() + .show(); + + // Destroy menu items + this.element.find( ".ui-menu-item" ) + .removeClass( "ui-menu-item" ) + .removeAttr( "role" ) + .removeAttr( "aria-disabled" ) + .children( "a" ) + .removeUniqueId() + .removeClass( "ui-corner-all ui-state-hover" ) + .removeAttr( "tabIndex" ) + .removeAttr( "role" ) + .removeAttr( "aria-haspopup" ) + .children().each( function() { + var elem = $( this ); + if ( elem.data( "ui-menu-submenu-carat" ) ) { + elem.remove(); + } + }); + + // Destroy menu dividers + this.element.find( ".ui-menu-divider" ).removeClass( "ui-menu-divider ui-widget-content" ); + }, + + _keydown: function( event ) { + var match, prev, character, skip, regex, + preventDefault = true; + + function escape( value ) { + return value.replace( /[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&" ); + } + + switch ( event.keyCode ) { + case $.ui.keyCode.PAGE_UP: + this.previousPage( event ); + break; + case $.ui.keyCode.PAGE_DOWN: + this.nextPage( event ); + break; + case $.ui.keyCode.HOME: + this._move( "first", "first", event ); + break; + case $.ui.keyCode.END: + this._move( "last", "last", event ); + break; + case $.ui.keyCode.UP: + this.previous( event ); + break; + case $.ui.keyCode.DOWN: + this.next( event ); + break; + case $.ui.keyCode.LEFT: + this.collapse( event ); + break; + case $.ui.keyCode.RIGHT: + if ( this.active && !this.active.is( ".ui-state-disabled" ) ) { + this.expand( event ); + } + break; + case $.ui.keyCode.ENTER: + case $.ui.keyCode.SPACE: + this._activate( event ); + break; + case $.ui.keyCode.ESCAPE: + this.collapse( event ); + break; + default: + preventDefault = false; + prev = this.previousFilter || ""; + character = String.fromCharCode( event.keyCode ); + skip = false; + + clearTimeout( this.filterTimer ); + + if ( character === prev ) { + skip = true; + } else { + character = prev + character; + } + + regex = new RegExp( "^" + escape( character ), "i" ); + match = this.activeMenu.children( ".ui-menu-item" ).filter(function() { + return regex.test( $( this ).children( "a" ).text() ); + }); + match = skip && match.index( this.active.next() ) !== -1 ? + this.active.nextAll( ".ui-menu-item" ) : + match; + + // If no matches on the current filter, reset to the last character pressed + // to move down the menu to the first item that starts with that character + if ( !match.length ) { + character = String.fromCharCode( event.keyCode ); + regex = new RegExp( "^" + escape( character ), "i" ); + match = this.activeMenu.children( ".ui-menu-item" ).filter(function() { + return regex.test( $( this ).children( "a" ).text() ); + }); + } + + if ( match.length ) { + this.focus( event, match ); + if ( match.length > 1 ) { + this.previousFilter = character; + this.filterTimer = this._delay(function() { + delete this.previousFilter; + }, 1000 ); + } else { + delete this.previousFilter; + } + } else { + delete this.previousFilter; + } + } + + if ( preventDefault ) { + event.preventDefault(); + } + }, + + _activate: function( event ) { + if ( !this.active.is( ".ui-state-disabled" ) ) { + if ( this.active.children( "a[aria-haspopup='true']" ).length ) { + this.expand( event ); + } else { + this.select( event ); + } + } + }, + + refresh: function() { + var menus, + icon = this.options.icons.submenu, + submenus = this.element.find( this.options.menus ); + + // Initialize nested menus + submenus.filter( ":not(.ui-menu)" ) + .addClass( "ui-menu ui-widget ui-widget-content ui-corner-all" ) + .hide() + .attr({ + role: this.options.role, + "aria-hidden": "true", + "aria-expanded": "false" + }) + .each(function() { + var menu = $( this ), + item = menu.prev( "a" ), + submenuCarat = $( "" ) + .addClass( "ui-menu-icon ui-icon " + icon ) + .data( "ui-menu-submenu-carat", true ); + + item + .attr( "aria-haspopup", "true" ) + .prepend( submenuCarat ); + menu.attr( "aria-labelledby", item.attr( "id" ) ); + }); + + menus = submenus.add( this.element ); + + // Don't refresh list items that are already adapted + menus.children( ":not(.ui-menu-item):has(a)" ) + .addClass( "ui-menu-item" ) + .attr( "role", "presentation" ) + .children( "a" ) + .uniqueId() + .addClass( "ui-corner-all" ) + .attr({ + tabIndex: -1, + role: this._itemRole() + }); + + // Initialize unlinked menu-items containing spaces and/or dashes only as dividers + menus.children( ":not(.ui-menu-item)" ).each(function() { + var item = $( this ); + // hyphen, em dash, en dash + if ( !/[^\-—–\s]/.test( item.text() ) ) { + item.addClass( "ui-widget-content ui-menu-divider" ); + } + }); + + // Add aria-disabled attribute to any disabled menu item + menus.children( ".ui-state-disabled" ).attr( "aria-disabled", "true" ); + + // If the active item has been removed, blur the menu + if ( this.active && !$.contains( this.element[ 0 ], this.active[ 0 ] ) ) { + this.blur(); + } + }, + + _itemRole: function() { + return { + menu: "menuitem", + listbox: "option" + }[ this.options.role ]; + }, + + focus: function( event, item ) { + var nested, focused; + this.blur( event, event && event.type === "focus" ); + + this._scrollIntoView( item ); + + this.active = item.first(); + focused = this.active.children( "a" ).addClass( "ui-state-focus" ); + // Only update aria-activedescendant if there's a role + // otherwise we assume focus is managed elsewhere + if ( this.options.role ) { + this.element.attr( "aria-activedescendant", focused.attr( "id" ) ); + } + + // Highlight active parent menu item, if any + this.active + .parent() + .closest( ".ui-menu-item" ) + .children( "a:first" ) + .addClass( "ui-state-active" ); + + if ( event && event.type === "keydown" ) { + this._close(); + } else { + this.timer = this._delay(function() { + this._close(); + }, this.delay ); + } + + nested = item.children( ".ui-menu" ); + if ( nested.length && ( /^mouse/.test( event.type ) ) ) { + this._startOpening(nested); + } + this.activeMenu = item.parent(); + + this._trigger( "focus", event, { item: item } ); + }, + + _scrollIntoView: function( item ) { + var borderTop, paddingTop, offset, scroll, elementHeight, itemHeight; + if ( this._hasScroll() ) { + borderTop = parseFloat( $.css( this.activeMenu[0], "borderTopWidth" ) ) || 0; + paddingTop = parseFloat( $.css( this.activeMenu[0], "paddingTop" ) ) || 0; + offset = item.offset().top - this.activeMenu.offset().top - borderTop - paddingTop; + scroll = this.activeMenu.scrollTop(); + elementHeight = this.activeMenu.height(); + itemHeight = item.height(); + + if ( offset < 0 ) { + this.activeMenu.scrollTop( scroll + offset ); + } else if ( offset + itemHeight > elementHeight ) { + this.activeMenu.scrollTop( scroll + offset - elementHeight + itemHeight ); + } + } + }, + + blur: function( event, fromFocus ) { + if ( !fromFocus ) { + clearTimeout( this.timer ); + } + + if ( !this.active ) { + return; + } + + this.active.children( "a" ).removeClass( "ui-state-focus" ); + this.active = null; + + this._trigger( "blur", event, { item: this.active } ); + }, + + _startOpening: function( submenu ) { + clearTimeout( this.timer ); + + // Don't open if already open fixes a Firefox bug that caused a .5 pixel + // shift in the submenu position when mousing over the carat icon + if ( submenu.attr( "aria-hidden" ) !== "true" ) { + return; + } + + this.timer = this._delay(function() { + this._close(); + this._open( submenu ); + }, this.delay ); + }, + + _open: function( submenu ) { + var position = $.extend({ + of: this.active + }, this.options.position ); + + clearTimeout( this.timer ); + this.element.find( ".ui-menu" ).not( submenu.parents( ".ui-menu" ) ) + .hide() + .attr( "aria-hidden", "true" ); + + submenu + .show() + .removeAttr( "aria-hidden" ) + .attr( "aria-expanded", "true" ) + .position( position ); + }, + + collapseAll: function( event, all ) { + clearTimeout( this.timer ); + this.timer = this._delay(function() { + // If we were passed an event, look for the submenu that contains the event + var currentMenu = all ? this.element : + $( event && event.target ).closest( this.element.find( ".ui-menu" ) ); + + // If we found no valid submenu ancestor, use the main menu to close all sub menus anyway + if ( !currentMenu.length ) { + currentMenu = this.element; + } + + this._close( currentMenu ); + + this.blur( event ); + this.activeMenu = currentMenu; + }, this.delay ); + }, + + // With no arguments, closes the currently active menu - if nothing is active + // it closes all menus. If passed an argument, it will search for menus BELOW + _close: function( startMenu ) { + if ( !startMenu ) { + startMenu = this.active ? this.active.parent() : this.element; + } + + startMenu + .find( ".ui-menu" ) + .hide() + .attr( "aria-hidden", "true" ) + .attr( "aria-expanded", "false" ) + .end() + .find( "a.ui-state-active" ) + .removeClass( "ui-state-active" ); + }, + + collapse: function( event ) { + var newItem = this.active && + this.active.parent().closest( ".ui-menu-item", this.element ); + if ( newItem && newItem.length ) { + this._close(); + this.focus( event, newItem ); + } + }, + + expand: function( event ) { + var newItem = this.active && + this.active + .children( ".ui-menu " ) + .children( ".ui-menu-item" ) + .first(); + + if ( newItem && newItem.length ) { + this._open( newItem.parent() ); + + // Delay so Firefox will not hide activedescendant change in expanding submenu from AT + this._delay(function() { + this.focus( event, newItem ); + }); + } + }, + + next: function( event ) { + this._move( "next", "first", event ); + }, + + previous: function( event ) { + this._move( "prev", "last", event ); + }, + + isFirstItem: function() { + return this.active && !this.active.prevAll( ".ui-menu-item" ).length; + }, + + isLastItem: function() { + return this.active && !this.active.nextAll( ".ui-menu-item" ).length; + }, + + _move: function( direction, filter, event ) { + var next; + if ( this.active ) { + if ( direction === "first" || direction === "last" ) { + next = this.active + [ direction === "first" ? "prevAll" : "nextAll" ]( ".ui-menu-item" ) + .eq( -1 ); + } else { + next = this.active + [ direction + "All" ]( ".ui-menu-item" ) + .eq( 0 ); + } + } + if ( !next || !next.length || !this.active ) { + next = this.activeMenu.children( ".ui-menu-item" )[ filter ](); + } + + this.focus( event, next ); + }, + + nextPage: function( event ) { + var item, base, height; + + if ( !this.active ) { + this.next( event ); + return; + } + if ( this.isLastItem() ) { + return; + } + if ( this._hasScroll() ) { + base = this.active.offset().top; + height = this.element.height(); + this.active.nextAll( ".ui-menu-item" ).each(function() { + item = $( this ); + return item.offset().top - base - height < 0; + }); + + this.focus( event, item ); + } else { + this.focus( event, this.activeMenu.children( ".ui-menu-item" ) + [ !this.active ? "first" : "last" ]() ); + } + }, + + previousPage: function( event ) { + var item, base, height; + if ( !this.active ) { + this.next( event ); + return; + } + if ( this.isFirstItem() ) { + return; + } + if ( this._hasScroll() ) { + base = this.active.offset().top; + height = this.element.height(); + this.active.prevAll( ".ui-menu-item" ).each(function() { + item = $( this ); + return item.offset().top - base + height > 0; + }); + + this.focus( event, item ); + } else { + this.focus( event, this.activeMenu.children( ".ui-menu-item" ).first() ); + } + }, + + _hasScroll: function() { + return this.element.outerHeight() < this.element.prop( "scrollHeight" ); + }, + + select: function( event ) { + // TODO: It should never be possible to not have an active item at this + // point, but the tests don't trigger mouseenter before click. + this.active = this.active || $( event.target ).closest( ".ui-menu-item" ); + var ui = { item: this.active }; + if ( !this.active.has( ".ui-menu" ).length ) { + this.collapseAll( event, true ); + } + this._trigger( "select", event, ui ); + } +}); + +}( jQuery )); + +(function( $, undefined ) { + +$.ui = $.ui || {}; + +var cachedScrollbarWidth, + max = Math.max, + abs = Math.abs, + round = Math.round, + rhorizontal = /left|center|right/, + rvertical = /top|center|bottom/, + roffset = /[\+\-]\d+%?/, + rposition = /^\w+/, + rpercent = /%$/, + _position = $.fn.position; + +function getOffsets( offsets, width, height ) { + return [ + parseInt( offsets[ 0 ], 10 ) * ( rpercent.test( offsets[ 0 ] ) ? width / 100 : 1 ), + parseInt( offsets[ 1 ], 10 ) * ( rpercent.test( offsets[ 1 ] ) ? height / 100 : 1 ) + ]; +} +function parseCss( element, property ) { + return parseInt( $.css( element, property ), 10 ) || 0; +} + +$.position = { + scrollbarWidth: function() { + if ( cachedScrollbarWidth !== undefined ) { + return cachedScrollbarWidth; + } + var w1, w2, + div = $( "
    " ), + innerDiv = div.children()[0]; + + $( "body" ).append( div ); + w1 = innerDiv.offsetWidth; + div.css( "overflow", "scroll" ); + + w2 = innerDiv.offsetWidth; + + if ( w1 === w2 ) { + w2 = div[0].clientWidth; + } + + div.remove(); + + return (cachedScrollbarWidth = w1 - w2); + }, + getScrollInfo: function( within ) { + var overflowX = within.isWindow ? "" : within.element.css( "overflow-x" ), + overflowY = within.isWindow ? "" : within.element.css( "overflow-y" ), + hasOverflowX = overflowX === "scroll" || + ( overflowX === "auto" && within.width < within.element[0].scrollWidth ), + hasOverflowY = overflowY === "scroll" || + ( overflowY === "auto" && within.height < within.element[0].scrollHeight ); + return { + width: hasOverflowX ? $.position.scrollbarWidth() : 0, + height: hasOverflowY ? $.position.scrollbarWidth() : 0 + }; + }, + getWithinInfo: function( element ) { + var withinElement = $( element || window ), + isWindow = $.isWindow( withinElement[0] ); + return { + element: withinElement, + isWindow: isWindow, + offset: withinElement.offset() || { left: 0, top: 0 }, + scrollLeft: withinElement.scrollLeft(), + scrollTop: withinElement.scrollTop(), + width: isWindow ? withinElement.width() : withinElement.outerWidth(), + height: isWindow ? withinElement.height() : withinElement.outerHeight() + }; + } +}; + +$.fn.position = function( options ) { + if ( !options || !options.of ) { + return _position.apply( this, arguments ); + } + + // make a copy, we don't want to modify arguments + options = $.extend( {}, options ); + + var atOffset, targetWidth, targetHeight, targetOffset, basePosition, + target = $( options.of ), + within = $.position.getWithinInfo( options.within ), + scrollInfo = $.position.getScrollInfo( within ), + targetElem = target[0], + collision = ( options.collision || "flip" ).split( " " ), + offsets = {}; + + if ( targetElem.nodeType === 9 ) { + targetWidth = target.width(); + targetHeight = target.height(); + targetOffset = { top: 0, left: 0 }; + } else if ( $.isWindow( targetElem ) ) { + targetWidth = target.width(); + targetHeight = target.height(); + targetOffset = { top: target.scrollTop(), left: target.scrollLeft() }; + } else if ( targetElem.preventDefault ) { + // force left top to allow flipping + options.at = "left top"; + targetWidth = targetHeight = 0; + targetOffset = { top: targetElem.pageY, left: targetElem.pageX }; + } else { + targetWidth = target.outerWidth(); + targetHeight = target.outerHeight(); + targetOffset = target.offset(); + } + // clone to reuse original targetOffset later + basePosition = $.extend( {}, targetOffset ); + + // force my and at to have valid horizontal and vertical positions + // if a value is missing or invalid, it will be converted to center + $.each( [ "my", "at" ], function() { + var pos = ( options[ this ] || "" ).split( " " ), + horizontalOffset, + verticalOffset; + + if ( pos.length === 1) { + pos = rhorizontal.test( pos[ 0 ] ) ? + pos.concat( [ "center" ] ) : + rvertical.test( pos[ 0 ] ) ? + [ "center" ].concat( pos ) : + [ "center", "center" ]; + } + pos[ 0 ] = rhorizontal.test( pos[ 0 ] ) ? pos[ 0 ] : "center"; + pos[ 1 ] = rvertical.test( pos[ 1 ] ) ? pos[ 1 ] : "center"; + + // calculate offsets + horizontalOffset = roffset.exec( pos[ 0 ] ); + verticalOffset = roffset.exec( pos[ 1 ] ); + offsets[ this ] = [ + horizontalOffset ? horizontalOffset[ 0 ] : 0, + verticalOffset ? verticalOffset[ 0 ] : 0 + ]; + + // reduce to just the positions without the offsets + options[ this ] = [ + rposition.exec( pos[ 0 ] )[ 0 ], + rposition.exec( pos[ 1 ] )[ 0 ] + ]; + }); + + // normalize collision option + if ( collision.length === 1 ) { + collision[ 1 ] = collision[ 0 ]; + } + + if ( options.at[ 0 ] === "right" ) { + basePosition.left += targetWidth; + } else if ( options.at[ 0 ] === "center" ) { + basePosition.left += targetWidth / 2; + } + + if ( options.at[ 1 ] === "bottom" ) { + basePosition.top += targetHeight; + } else if ( options.at[ 1 ] === "center" ) { + basePosition.top += targetHeight / 2; + } + + atOffset = getOffsets( offsets.at, targetWidth, targetHeight ); + basePosition.left += atOffset[ 0 ]; + basePosition.top += atOffset[ 1 ]; + + return this.each(function() { + var collisionPosition, using, + elem = $( this ), + elemWidth = elem.outerWidth(), + elemHeight = elem.outerHeight(), + marginLeft = parseCss( this, "marginLeft" ), + marginTop = parseCss( this, "marginTop" ), + collisionWidth = elemWidth + marginLeft + parseCss( this, "marginRight" ) + scrollInfo.width, + collisionHeight = elemHeight + marginTop + parseCss( this, "marginBottom" ) + scrollInfo.height, + position = $.extend( {}, basePosition ), + myOffset = getOffsets( offsets.my, elem.outerWidth(), elem.outerHeight() ); + + if ( options.my[ 0 ] === "right" ) { + position.left -= elemWidth; + } else if ( options.my[ 0 ] === "center" ) { + position.left -= elemWidth / 2; + } + + if ( options.my[ 1 ] === "bottom" ) { + position.top -= elemHeight; + } else if ( options.my[ 1 ] === "center" ) { + position.top -= elemHeight / 2; + } + + position.left += myOffset[ 0 ]; + position.top += myOffset[ 1 ]; + + // if the browser doesn't support fractions, then round for consistent results + if ( !$.support.offsetFractions ) { + position.left = round( position.left ); + position.top = round( position.top ); + } + + collisionPosition = { + marginLeft: marginLeft, + marginTop: marginTop + }; + + $.each( [ "left", "top" ], function( i, dir ) { + if ( $.ui.position[ collision[ i ] ] ) { + $.ui.position[ collision[ i ] ][ dir ]( position, { + targetWidth: targetWidth, + targetHeight: targetHeight, + elemWidth: elemWidth, + elemHeight: elemHeight, + collisionPosition: collisionPosition, + collisionWidth: collisionWidth, + collisionHeight: collisionHeight, + offset: [ atOffset[ 0 ] + myOffset[ 0 ], atOffset [ 1 ] + myOffset[ 1 ] ], + my: options.my, + at: options.at, + within: within, + elem : elem + }); + } + }); + + if ( $.fn.bgiframe ) { + elem.bgiframe(); + } + + if ( options.using ) { + // adds feedback as second argument to using callback, if present + using = function( props ) { + var left = targetOffset.left - position.left, + right = left + targetWidth - elemWidth, + top = targetOffset.top - position.top, + bottom = top + targetHeight - elemHeight, + feedback = { + target: { + element: target, + left: targetOffset.left, + top: targetOffset.top, + width: targetWidth, + height: targetHeight + }, + element: { + element: elem, + left: position.left, + top: position.top, + width: elemWidth, + height: elemHeight + }, + horizontal: right < 0 ? "left" : left > 0 ? "right" : "center", + vertical: bottom < 0 ? "top" : top > 0 ? "bottom" : "middle" + }; + if ( targetWidth < elemWidth && abs( left + right ) < targetWidth ) { + feedback.horizontal = "center"; + } + if ( targetHeight < elemHeight && abs( top + bottom ) < targetHeight ) { + feedback.vertical = "middle"; + } + if ( max( abs( left ), abs( right ) ) > max( abs( top ), abs( bottom ) ) ) { + feedback.important = "horizontal"; + } else { + feedback.important = "vertical"; + } + options.using.call( this, props, feedback ); + }; + } + + elem.offset( $.extend( position, { using: using } ) ); + }); +}; + +$.ui.position = { + fit: { + left: function( position, data ) { + var within = data.within, + withinOffset = within.isWindow ? within.scrollLeft : within.offset.left, + outerWidth = within.width, + collisionPosLeft = position.left - data.collisionPosition.marginLeft, + overLeft = withinOffset - collisionPosLeft, + overRight = collisionPosLeft + data.collisionWidth - outerWidth - withinOffset, + newOverRight; + + // element is wider than within + if ( data.collisionWidth > outerWidth ) { + // element is initially over the left side of within + if ( overLeft > 0 && overRight <= 0 ) { + newOverRight = position.left + overLeft + data.collisionWidth - outerWidth - withinOffset; + position.left += overLeft - newOverRight; + // element is initially over right side of within + } else if ( overRight > 0 && overLeft <= 0 ) { + position.left = withinOffset; + // element is initially over both left and right sides of within + } else { + if ( overLeft > overRight ) { + position.left = withinOffset + outerWidth - data.collisionWidth; + } else { + position.left = withinOffset; + } + } + // too far left -> align with left edge + } else if ( overLeft > 0 ) { + position.left += overLeft; + // too far right -> align with right edge + } else if ( overRight > 0 ) { + position.left -= overRight; + // adjust based on position and margin + } else { + position.left = max( position.left - collisionPosLeft, position.left ); + } + }, + top: function( position, data ) { + var within = data.within, + withinOffset = within.isWindow ? within.scrollTop : within.offset.top, + outerHeight = data.within.height, + collisionPosTop = position.top - data.collisionPosition.marginTop, + overTop = withinOffset - collisionPosTop, + overBottom = collisionPosTop + data.collisionHeight - outerHeight - withinOffset, + newOverBottom; + + // element is taller than within + if ( data.collisionHeight > outerHeight ) { + // element is initially over the top of within + if ( overTop > 0 && overBottom <= 0 ) { + newOverBottom = position.top + overTop + data.collisionHeight - outerHeight - withinOffset; + position.top += overTop - newOverBottom; + // element is initially over bottom of within + } else if ( overBottom > 0 && overTop <= 0 ) { + position.top = withinOffset; + // element is initially over both top and bottom of within + } else { + if ( overTop > overBottom ) { + position.top = withinOffset + outerHeight - data.collisionHeight; + } else { + position.top = withinOffset; + } + } + // too far up -> align with top + } else if ( overTop > 0 ) { + position.top += overTop; + // too far down -> align with bottom edge + } else if ( overBottom > 0 ) { + position.top -= overBottom; + // adjust based on position and margin + } else { + position.top = max( position.top - collisionPosTop, position.top ); + } + } + }, + flip: { + left: function( position, data ) { + var within = data.within, + withinOffset = within.offset.left + within.scrollLeft, + outerWidth = within.width, + offsetLeft = within.isWindow ? within.scrollLeft : within.offset.left, + collisionPosLeft = position.left - data.collisionPosition.marginLeft, + overLeft = collisionPosLeft - offsetLeft, + overRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft, + myOffset = data.my[ 0 ] === "left" ? + -data.elemWidth : + data.my[ 0 ] === "right" ? + data.elemWidth : + 0, + atOffset = data.at[ 0 ] === "left" ? + data.targetWidth : + data.at[ 0 ] === "right" ? + -data.targetWidth : + 0, + offset = -2 * data.offset[ 0 ], + newOverRight, + newOverLeft; + + if ( overLeft < 0 ) { + newOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth - outerWidth - withinOffset; + if ( newOverRight < 0 || newOverRight < abs( overLeft ) ) { + position.left += myOffset + atOffset + offset; + } + } + else if ( overRight > 0 ) { + newOverLeft = position.left - data.collisionPosition.marginLeft + myOffset + atOffset + offset - offsetLeft; + if ( newOverLeft > 0 || abs( newOverLeft ) < overRight ) { + position.left += myOffset + atOffset + offset; + } + } + }, + top: function( position, data ) { + var within = data.within, + withinOffset = within.offset.top + within.scrollTop, + outerHeight = within.height, + offsetTop = within.isWindow ? within.scrollTop : within.offset.top, + collisionPosTop = position.top - data.collisionPosition.marginTop, + overTop = collisionPosTop - offsetTop, + overBottom = collisionPosTop + data.collisionHeight - outerHeight - offsetTop, + top = data.my[ 1 ] === "top", + myOffset = top ? + -data.elemHeight : + data.my[ 1 ] === "bottom" ? + data.elemHeight : + 0, + atOffset = data.at[ 1 ] === "top" ? + data.targetHeight : + data.at[ 1 ] === "bottom" ? + -data.targetHeight : + 0, + offset = -2 * data.offset[ 1 ], + newOverTop, + newOverBottom; + if ( overTop < 0 ) { + newOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight - outerHeight - withinOffset; + if ( ( position.top + myOffset + atOffset + offset) > overTop && ( newOverBottom < 0 || newOverBottom < abs( overTop ) ) ) { + position.top += myOffset + atOffset + offset; + } + } + else if ( overBottom > 0 ) { + newOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset + offset - offsetTop; + if ( ( position.top + myOffset + atOffset + offset) > overBottom && ( newOverTop > 0 || abs( newOverTop ) < overBottom ) ) { + position.top += myOffset + atOffset + offset; + } + } + } + }, + flipfit: { + left: function() { + $.ui.position.flip.left.apply( this, arguments ); + $.ui.position.fit.left.apply( this, arguments ); + }, + top: function() { + $.ui.position.flip.top.apply( this, arguments ); + $.ui.position.fit.top.apply( this, arguments ); + } + } +}; + +// fraction support test +(function () { + var testElement, testElementParent, testElementStyle, offsetLeft, i, + body = document.getElementsByTagName( "body" )[ 0 ], + div = document.createElement( "div" ); + + //Create a "fake body" for testing based on method used in jQuery.support + testElement = document.createElement( body ? "div" : "body" ); + testElementStyle = { + visibility: "hidden", + width: 0, + height: 0, + border: 0, + margin: 0, + background: "none" + }; + if ( body ) { + $.extend( testElementStyle, { + position: "absolute", + left: "-1000px", + top: "-1000px" + }); + } + for ( i in testElementStyle ) { + testElement.style[ i ] = testElementStyle[ i ]; + } + testElement.appendChild( div ); + testElementParent = body || document.documentElement; + testElementParent.insertBefore( testElement, testElementParent.firstChild ); + + div.style.cssText = "position: absolute; left: 10.7432222px;"; + + offsetLeft = $( div ).offset().left; + $.support.offsetFractions = offsetLeft > 10 && offsetLeft < 11; + + testElement.innerHTML = ""; + testElementParent.removeChild( testElement ); +})(); + +// DEPRECATED +if ( $.uiBackCompat !== false ) { + // offset option + (function( $ ) { + var _position = $.fn.position; + $.fn.position = function( options ) { + if ( !options || !options.offset ) { + return _position.call( this, options ); + } + var offset = options.offset.split( " " ), + at = options.at.split( " " ); + if ( offset.length === 1 ) { + offset[ 1 ] = offset[ 0 ]; + } + if ( /^\d/.test( offset[ 0 ] ) ) { + offset[ 0 ] = "+" + offset[ 0 ]; + } + if ( /^\d/.test( offset[ 1 ] ) ) { + offset[ 1 ] = "+" + offset[ 1 ]; + } + if ( at.length === 1 ) { + if ( /left|center|right/.test( at[ 0 ] ) ) { + at[ 1 ] = "center"; + } else { + at[ 1 ] = at[ 0 ]; + at[ 0 ] = "center"; + } + } + return _position.call( this, $.extend( options, { + at: at[ 0 ] + offset[ 0 ] + " " + at[ 1 ] + offset[ 1 ], + offset: undefined + } ) ); + }; + }( jQuery ) ); +} + +}( jQuery ) ); + +(function( $, undefined ) { + +$.widget( "ui.progressbar", { + version: "1.9.2", + options: { + value: 0, + max: 100 + }, + + min: 0, + + _create: function() { + this.element + .addClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" ) + .attr({ + role: "progressbar", + "aria-valuemin": this.min, + "aria-valuemax": this.options.max, + "aria-valuenow": this._value() + }); + + this.valueDiv = $( "
    " ) + .appendTo( this.element ); + + this.oldValue = this._value(); + this._refreshValue(); + }, + + _destroy: function() { + this.element + .removeClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" ) + .removeAttr( "role" ) + .removeAttr( "aria-valuemin" ) + .removeAttr( "aria-valuemax" ) + .removeAttr( "aria-valuenow" ); + + this.valueDiv.remove(); + }, + + value: function( newValue ) { + if ( newValue === undefined ) { + return this._value(); + } + + this._setOption( "value", newValue ); + return this; + }, + + _setOption: function( key, value ) { + if ( key === "value" ) { + this.options.value = value; + this._refreshValue(); + if ( this._value() === this.options.max ) { + this._trigger( "complete" ); + } + } + + this._super( key, value ); + }, + + _value: function() { + var val = this.options.value; + // normalize invalid value + if ( typeof val !== "number" ) { + val = 0; + } + return Math.min( this.options.max, Math.max( this.min, val ) ); + }, + + _percentage: function() { + return 100 * this._value() / this.options.max; + }, + + _refreshValue: function() { + var value = this.value(), + percentage = this._percentage(); + + if ( this.oldValue !== value ) { + this.oldValue = value; + this._trigger( "change" ); + } + + this.valueDiv + .toggle( value > this.min ) + .toggleClass( "ui-corner-right", value === this.options.max ) + .width( percentage.toFixed(0) + "%" ); + this.element.attr( "aria-valuenow", value ); + } +}); + +})( jQuery ); + +(function( $, undefined ) { + +// number of pages in a slider +// (how many times can you page up/down to go through the whole range) +var numPages = 5; + +$.widget( "ui.slider", $.ui.mouse, { + version: "1.9.2", + widgetEventPrefix: "slide", + + options: { + animate: false, + distance: 0, + max: 100, + min: 0, + orientation: "horizontal", + range: false, + step: 1, + value: 0, + values: null + }, + + _create: function() { + var i, handleCount, + o = this.options, + existingHandles = this.element.find( ".ui-slider-handle" ).addClass( "ui-state-default ui-corner-all" ), + handle = "", + handles = []; + + this._keySliding = false; + this._mouseSliding = false; + this._animateOff = true; + this._handleIndex = null; + this._detectOrientation(); + this._mouseInit(); + + this.element + .addClass( "ui-slider" + + " ui-slider-" + this.orientation + + " ui-widget" + + " ui-widget-content" + + " ui-corner-all" + + ( o.disabled ? " ui-slider-disabled ui-disabled" : "" ) ); + + this.range = $([]); + + if ( o.range ) { + if ( o.range === true ) { + if ( !o.values ) { + o.values = [ this._valueMin(), this._valueMin() ]; + } + if ( o.values.length && o.values.length !== 2 ) { + o.values = [ o.values[0], o.values[0] ]; + } + } + + this.range = $( "
    " ) + .appendTo( this.element ) + .addClass( "ui-slider-range" + + // note: this isn't the most fittingly semantic framework class for this element, + // but worked best visually with a variety of themes + " ui-widget-header" + + ( ( o.range === "min" || o.range === "max" ) ? " ui-slider-range-" + o.range : "" ) ); + } + + handleCount = ( o.values && o.values.length ) || 1; + + for ( i = existingHandles.length; i < handleCount; i++ ) { + handles.push( handle ); + } + + this.handles = existingHandles.add( $( handles.join( "" ) ).appendTo( this.element ) ); + + this.handle = this.handles.eq( 0 ); + + this.handles.add( this.range ).filter( "a" ) + .click(function( event ) { + event.preventDefault(); + }) + .mouseenter(function() { + if ( !o.disabled ) { + $( this ).addClass( "ui-state-hover" ); + } + }) + .mouseleave(function() { + $( this ).removeClass( "ui-state-hover" ); + }) + .focus(function() { + if ( !o.disabled ) { + $( ".ui-slider .ui-state-focus" ).removeClass( "ui-state-focus" ); + $( this ).addClass( "ui-state-focus" ); + } else { + $( this ).blur(); + } + }) + .blur(function() { + $( this ).removeClass( "ui-state-focus" ); + }); + + this.handles.each(function( i ) { + $( this ).data( "ui-slider-handle-index", i ); + }); + + this._on( this.handles, { + keydown: function( event ) { + var allowed, curVal, newVal, step, + index = $( event.target ).data( "ui-slider-handle-index" ); + + switch ( event.keyCode ) { + case $.ui.keyCode.HOME: + case $.ui.keyCode.END: + case $.ui.keyCode.PAGE_UP: + case $.ui.keyCode.PAGE_DOWN: + case $.ui.keyCode.UP: + case $.ui.keyCode.RIGHT: + case $.ui.keyCode.DOWN: + case $.ui.keyCode.LEFT: + event.preventDefault(); + if ( !this._keySliding ) { + this._keySliding = true; + $( event.target ).addClass( "ui-state-active" ); + allowed = this._start( event, index ); + if ( allowed === false ) { + return; + } + } + break; + } + + step = this.options.step; + if ( this.options.values && this.options.values.length ) { + curVal = newVal = this.values( index ); + } else { + curVal = newVal = this.value(); + } + + switch ( event.keyCode ) { + case $.ui.keyCode.HOME: + newVal = this._valueMin(); + break; + case $.ui.keyCode.END: + newVal = this._valueMax(); + break; + case $.ui.keyCode.PAGE_UP: + newVal = this._trimAlignValue( curVal + ( (this._valueMax() - this._valueMin()) / numPages ) ); + break; + case $.ui.keyCode.PAGE_DOWN: + newVal = this._trimAlignValue( curVal - ( (this._valueMax() - this._valueMin()) / numPages ) ); + break; + case $.ui.keyCode.UP: + case $.ui.keyCode.RIGHT: + if ( curVal === this._valueMax() ) { + return; + } + newVal = this._trimAlignValue( curVal + step ); + break; + case $.ui.keyCode.DOWN: + case $.ui.keyCode.LEFT: + if ( curVal === this._valueMin() ) { + return; + } + newVal = this._trimAlignValue( curVal - step ); + break; + } + + this._slide( event, index, newVal ); + }, + keyup: function( event ) { + var index = $( event.target ).data( "ui-slider-handle-index" ); + + if ( this._keySliding ) { + this._keySliding = false; + this._stop( event, index ); + this._change( event, index ); + $( event.target ).removeClass( "ui-state-active" ); + } + } + }); + + this._refreshValue(); + + this._animateOff = false; + }, + + _destroy: function() { + this.handles.remove(); + this.range.remove(); + + this.element + .removeClass( "ui-slider" + + " ui-slider-horizontal" + + " ui-slider-vertical" + + " ui-slider-disabled" + + " ui-widget" + + " ui-widget-content" + + " ui-corner-all" ); + + this._mouseDestroy(); + }, + + _mouseCapture: function( event ) { + var position, normValue, distance, closestHandle, index, allowed, offset, mouseOverHandle, + that = this, + o = this.options; + + if ( o.disabled ) { + return false; + } + + this.elementSize = { + width: this.element.outerWidth(), + height: this.element.outerHeight() + }; + this.elementOffset = this.element.offset(); + + position = { x: event.pageX, y: event.pageY }; + normValue = this._normValueFromMouse( position ); + distance = this._valueMax() - this._valueMin() + 1; + this.handles.each(function( i ) { + var thisDistance = Math.abs( normValue - that.values(i) ); + if ( distance > thisDistance ) { + distance = thisDistance; + closestHandle = $( this ); + index = i; + } + }); + + // workaround for bug #3736 (if both handles of a range are at 0, + // the first is always used as the one with least distance, + // and moving it is obviously prevented by preventing negative ranges) + if( o.range === true && this.values(1) === o.min ) { + index += 1; + closestHandle = $( this.handles[index] ); + } + + allowed = this._start( event, index ); + if ( allowed === false ) { + return false; + } + this._mouseSliding = true; + + this._handleIndex = index; + + closestHandle + .addClass( "ui-state-active" ) + .focus(); + + offset = closestHandle.offset(); + mouseOverHandle = !$( event.target ).parents().andSelf().is( ".ui-slider-handle" ); + this._clickOffset = mouseOverHandle ? { left: 0, top: 0 } : { + left: event.pageX - offset.left - ( closestHandle.width() / 2 ), + top: event.pageY - offset.top - + ( closestHandle.height() / 2 ) - + ( parseInt( closestHandle.css("borderTopWidth"), 10 ) || 0 ) - + ( parseInt( closestHandle.css("borderBottomWidth"), 10 ) || 0) + + ( parseInt( closestHandle.css("marginTop"), 10 ) || 0) + }; + + if ( !this.handles.hasClass( "ui-state-hover" ) ) { + this._slide( event, index, normValue ); + } + this._animateOff = true; + return true; + }, + + _mouseStart: function() { + return true; + }, + + _mouseDrag: function( event ) { + var position = { x: event.pageX, y: event.pageY }, + normValue = this._normValueFromMouse( position ); + + this._slide( event, this._handleIndex, normValue ); + + return false; + }, + + _mouseStop: function( event ) { + this.handles.removeClass( "ui-state-active" ); + this._mouseSliding = false; + + this._stop( event, this._handleIndex ); + this._change( event, this._handleIndex ); + + this._handleIndex = null; + this._clickOffset = null; + this._animateOff = false; + + return false; + }, + + _detectOrientation: function() { + this.orientation = ( this.options.orientation === "vertical" ) ? "vertical" : "horizontal"; + }, + + _normValueFromMouse: function( position ) { + var pixelTotal, + pixelMouse, + percentMouse, + valueTotal, + valueMouse; + + if ( this.orientation === "horizontal" ) { + pixelTotal = this.elementSize.width; + pixelMouse = position.x - this.elementOffset.left - ( this._clickOffset ? this._clickOffset.left : 0 ); + } else { + pixelTotal = this.elementSize.height; + pixelMouse = position.y - this.elementOffset.top - ( this._clickOffset ? this._clickOffset.top : 0 ); + } + + percentMouse = ( pixelMouse / pixelTotal ); + if ( percentMouse > 1 ) { + percentMouse = 1; + } + if ( percentMouse < 0 ) { + percentMouse = 0; + } + if ( this.orientation === "vertical" ) { + percentMouse = 1 - percentMouse; + } + + valueTotal = this._valueMax() - this._valueMin(); + valueMouse = this._valueMin() + percentMouse * valueTotal; + + return this._trimAlignValue( valueMouse ); + }, + + _start: function( event, index ) { + var uiHash = { + handle: this.handles[ index ], + value: this.value() + }; + if ( this.options.values && this.options.values.length ) { + uiHash.value = this.values( index ); + uiHash.values = this.values(); + } + return this._trigger( "start", event, uiHash ); + }, + + _slide: function( event, index, newVal ) { + var otherVal, + newValues, + allowed; + + if ( this.options.values && this.options.values.length ) { + otherVal = this.values( index ? 0 : 1 ); + + if ( ( this.options.values.length === 2 && this.options.range === true ) && + ( ( index === 0 && newVal > otherVal) || ( index === 1 && newVal < otherVal ) ) + ) { + newVal = otherVal; + } + + if ( newVal !== this.values( index ) ) { + newValues = this.values(); + newValues[ index ] = newVal; + // A slide can be canceled by returning false from the slide callback + allowed = this._trigger( "slide", event, { + handle: this.handles[ index ], + value: newVal, + values: newValues + } ); + otherVal = this.values( index ? 0 : 1 ); + if ( allowed !== false ) { + this.values( index, newVal, true ); + } + } + } else { + if ( newVal !== this.value() ) { + // A slide can be canceled by returning false from the slide callback + allowed = this._trigger( "slide", event, { + handle: this.handles[ index ], + value: newVal + } ); + if ( allowed !== false ) { + this.value( newVal ); + } + } + } + }, + + _stop: function( event, index ) { + var uiHash = { + handle: this.handles[ index ], + value: this.value() + }; + if ( this.options.values && this.options.values.length ) { + uiHash.value = this.values( index ); + uiHash.values = this.values(); + } + + this._trigger( "stop", event, uiHash ); + }, + + _change: function( event, index ) { + if ( !this._keySliding && !this._mouseSliding ) { + var uiHash = { + handle: this.handles[ index ], + value: this.value() + }; + if ( this.options.values && this.options.values.length ) { + uiHash.value = this.values( index ); + uiHash.values = this.values(); + } + + this._trigger( "change", event, uiHash ); + } + }, + + value: function( newValue ) { + if ( arguments.length ) { + this.options.value = this._trimAlignValue( newValue ); + this._refreshValue(); + this._change( null, 0 ); + return; + } + + return this._value(); + }, + + values: function( index, newValue ) { + var vals, + newValues, + i; + + if ( arguments.length > 1 ) { + this.options.values[ index ] = this._trimAlignValue( newValue ); + this._refreshValue(); + this._change( null, index ); + return; + } + + if ( arguments.length ) { + if ( $.isArray( arguments[ 0 ] ) ) { + vals = this.options.values; + newValues = arguments[ 0 ]; + for ( i = 0; i < vals.length; i += 1 ) { + vals[ i ] = this._trimAlignValue( newValues[ i ] ); + this._change( null, i ); + } + this._refreshValue(); + } else { + if ( this.options.values && this.options.values.length ) { + return this._values( index ); + } else { + return this.value(); + } + } + } else { + return this._values(); + } + }, + + _setOption: function( key, value ) { + var i, + valsLength = 0; + + if ( $.isArray( this.options.values ) ) { + valsLength = this.options.values.length; + } + + $.Widget.prototype._setOption.apply( this, arguments ); + + switch ( key ) { + case "disabled": + if ( value ) { + this.handles.filter( ".ui-state-focus" ).blur(); + this.handles.removeClass( "ui-state-hover" ); + this.handles.prop( "disabled", true ); + this.element.addClass( "ui-disabled" ); + } else { + this.handles.prop( "disabled", false ); + this.element.removeClass( "ui-disabled" ); + } + break; + case "orientation": + this._detectOrientation(); + this.element + .removeClass( "ui-slider-horizontal ui-slider-vertical" ) + .addClass( "ui-slider-" + this.orientation ); + this._refreshValue(); + break; + case "value": + this._animateOff = true; + this._refreshValue(); + this._change( null, 0 ); + this._animateOff = false; + break; + case "values": + this._animateOff = true; + this._refreshValue(); + for ( i = 0; i < valsLength; i += 1 ) { + this._change( null, i ); + } + this._animateOff = false; + break; + case "min": + case "max": + this._animateOff = true; + this._refreshValue(); + this._animateOff = false; + break; + } + }, + + //internal value getter + // _value() returns value trimmed by min and max, aligned by step + _value: function() { + var val = this.options.value; + val = this._trimAlignValue( val ); + + return val; + }, + + //internal values getter + // _values() returns array of values trimmed by min and max, aligned by step + // _values( index ) returns single value trimmed by min and max, aligned by step + _values: function( index ) { + var val, + vals, + i; + + if ( arguments.length ) { + val = this.options.values[ index ]; + val = this._trimAlignValue( val ); + + return val; + } else { + // .slice() creates a copy of the array + // this copy gets trimmed by min and max and then returned + vals = this.options.values.slice(); + for ( i = 0; i < vals.length; i+= 1) { + vals[ i ] = this._trimAlignValue( vals[ i ] ); + } + + return vals; + } + }, + + // returns the step-aligned value that val is closest to, between (inclusive) min and max + _trimAlignValue: function( val ) { + if ( val <= this._valueMin() ) { + return this._valueMin(); + } + if ( val >= this._valueMax() ) { + return this._valueMax(); + } + var step = ( this.options.step > 0 ) ? this.options.step : 1, + valModStep = (val - this._valueMin()) % step, + alignValue = val - valModStep; + + if ( Math.abs(valModStep) * 2 >= step ) { + alignValue += ( valModStep > 0 ) ? step : ( -step ); + } + + // Since JavaScript has problems with large floats, round + // the final value to 5 digits after the decimal point (see #4124) + return parseFloat( alignValue.toFixed(5) ); + }, + + _valueMin: function() { + return this.options.min; + }, + + _valueMax: function() { + return this.options.max; + }, + + _refreshValue: function() { + var lastValPercent, valPercent, value, valueMin, valueMax, + oRange = this.options.range, + o = this.options, + that = this, + animate = ( !this._animateOff ) ? o.animate : false, + _set = {}; + + if ( this.options.values && this.options.values.length ) { + this.handles.each(function( i ) { + valPercent = ( that.values(i) - that._valueMin() ) / ( that._valueMax() - that._valueMin() ) * 100; + _set[ that.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%"; + $( this ).stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate ); + if ( that.options.range === true ) { + if ( that.orientation === "horizontal" ) { + if ( i === 0 ) { + that.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { left: valPercent + "%" }, o.animate ); + } + if ( i === 1 ) { + that.range[ animate ? "animate" : "css" ]( { width: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } ); + } + } else { + if ( i === 0 ) { + that.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { bottom: ( valPercent ) + "%" }, o.animate ); + } + if ( i === 1 ) { + that.range[ animate ? "animate" : "css" ]( { height: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } ); + } + } + } + lastValPercent = valPercent; + }); + } else { + value = this.value(); + valueMin = this._valueMin(); + valueMax = this._valueMax(); + valPercent = ( valueMax !== valueMin ) ? + ( value - valueMin ) / ( valueMax - valueMin ) * 100 : + 0; + _set[ this.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%"; + this.handle.stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate ); + + if ( oRange === "min" && this.orientation === "horizontal" ) { + this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { width: valPercent + "%" }, o.animate ); + } + if ( oRange === "max" && this.orientation === "horizontal" ) { + this.range[ animate ? "animate" : "css" ]( { width: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } ); + } + if ( oRange === "min" && this.orientation === "vertical" ) { + this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { height: valPercent + "%" }, o.animate ); + } + if ( oRange === "max" && this.orientation === "vertical" ) { + this.range[ animate ? "animate" : "css" ]( { height: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } ); + } + } + } + +}); + +}(jQuery)); + +(function( $ ) { + +function modifier( fn ) { + return function() { + var previous = this.element.val(); + fn.apply( this, arguments ); + this._refresh(); + if ( previous !== this.element.val() ) { + this._trigger( "change" ); + } + }; +} + +$.widget( "ui.spinner", { + version: "1.9.2", + defaultElement: "", + widgetEventPrefix: "spin", + options: { + culture: null, + icons: { + down: "ui-icon-triangle-1-s", + up: "ui-icon-triangle-1-n" + }, + incremental: true, + max: null, + min: null, + numberFormat: null, + page: 10, + step: 1, + + change: null, + spin: null, + start: null, + stop: null + }, + + _create: function() { + // handle string values that need to be parsed + this._setOption( "max", this.options.max ); + this._setOption( "min", this.options.min ); + this._setOption( "step", this.options.step ); + + // format the value, but don't constrain + this._value( this.element.val(), true ); + + this._draw(); + this._on( this._events ); + this._refresh(); + + // turning off autocomplete prevents the browser from remembering the + // value when navigating through history, so we re-enable autocomplete + // if the page is unloaded before the widget is destroyed. #7790 + this._on( this.window, { + beforeunload: function() { + this.element.removeAttr( "autocomplete" ); + } + }); + }, + + _getCreateOptions: function() { + var options = {}, + element = this.element; + + $.each( [ "min", "max", "step" ], function( i, option ) { + var value = element.attr( option ); + if ( value !== undefined && value.length ) { + options[ option ] = value; + } + }); + + return options; + }, + + _events: { + keydown: function( event ) { + if ( this._start( event ) && this._keydown( event ) ) { + event.preventDefault(); + } + }, + keyup: "_stop", + focus: function() { + this.previous = this.element.val(); + }, + blur: function( event ) { + if ( this.cancelBlur ) { + delete this.cancelBlur; + return; + } + + this._refresh(); + if ( this.previous !== this.element.val() ) { + this._trigger( "change", event ); + } + }, + mousewheel: function( event, delta ) { + if ( !delta ) { + return; + } + if ( !this.spinning && !this._start( event ) ) { + return false; + } + + this._spin( (delta > 0 ? 1 : -1) * this.options.step, event ); + clearTimeout( this.mousewheelTimer ); + this.mousewheelTimer = this._delay(function() { + if ( this.spinning ) { + this._stop( event ); + } + }, 100 ); + event.preventDefault(); + }, + "mousedown .ui-spinner-button": function( event ) { + var previous; + + // We never want the buttons to have focus; whenever the user is + // interacting with the spinner, the focus should be on the input. + // If the input is focused then this.previous is properly set from + // when the input first received focus. If the input is not focused + // then we need to set this.previous based on the value before spinning. + previous = this.element[0] === this.document[0].activeElement ? + this.previous : this.element.val(); + function checkFocus() { + var isActive = this.element[0] === this.document[0].activeElement; + if ( !isActive ) { + this.element.focus(); + this.previous = previous; + // support: IE + // IE sets focus asynchronously, so we need to check if focus + // moved off of the input because the user clicked on the button. + this._delay(function() { + this.previous = previous; + }); + } + } + + // ensure focus is on (or stays on) the text field + event.preventDefault(); + checkFocus.call( this ); + + // support: IE + // IE doesn't prevent moving focus even with event.preventDefault() + // so we set a flag to know when we should ignore the blur event + // and check (again) if focus moved off of the input. + this.cancelBlur = true; + this._delay(function() { + delete this.cancelBlur; + checkFocus.call( this ); + }); + + if ( this._start( event ) === false ) { + return; + } + + this._repeat( null, $( event.currentTarget ).hasClass( "ui-spinner-up" ) ? 1 : -1, event ); + }, + "mouseup .ui-spinner-button": "_stop", + "mouseenter .ui-spinner-button": function( event ) { + // button will add ui-state-active if mouse was down while mouseleave and kept down + if ( !$( event.currentTarget ).hasClass( "ui-state-active" ) ) { + return; + } + + if ( this._start( event ) === false ) { + return false; + } + this._repeat( null, $( event.currentTarget ).hasClass( "ui-spinner-up" ) ? 1 : -1, event ); + }, + // TODO: do we really want to consider this a stop? + // shouldn't we just stop the repeater and wait until mouseup before + // we trigger the stop event? + "mouseleave .ui-spinner-button": "_stop" + }, + + _draw: function() { + var uiSpinner = this.uiSpinner = this.element + .addClass( "ui-spinner-input" ) + .attr( "autocomplete", "off" ) + .wrap( this._uiSpinnerHtml() ) + .parent() + // add buttons + .append( this._buttonHtml() ); + + this.element.attr( "role", "spinbutton" ); + + // button bindings + this.buttons = uiSpinner.find( ".ui-spinner-button" ) + .attr( "tabIndex", -1 ) + .button() + .removeClass( "ui-corner-all" ); + + // IE 6 doesn't understand height: 50% for the buttons + // unless the wrapper has an explicit height + if ( this.buttons.height() > Math.ceil( uiSpinner.height() * 0.5 ) && + uiSpinner.height() > 0 ) { + uiSpinner.height( uiSpinner.height() ); + } + + // disable spinner if element was already disabled + if ( this.options.disabled ) { + this.disable(); + } + }, + + _keydown: function( event ) { + var options = this.options, + keyCode = $.ui.keyCode; + + switch ( event.keyCode ) { + case keyCode.UP: + this._repeat( null, 1, event ); + return true; + case keyCode.DOWN: + this._repeat( null, -1, event ); + return true; + case keyCode.PAGE_UP: + this._repeat( null, options.page, event ); + return true; + case keyCode.PAGE_DOWN: + this._repeat( null, -options.page, event ); + return true; + } + + return false; + }, + + _uiSpinnerHtml: function() { + return ""; + }, + + _buttonHtml: function() { + return "" + + "" + + "" + + "" + + "" + + "" + + ""; + }, + + _start: function( event ) { + if ( !this.spinning && this._trigger( "start", event ) === false ) { + return false; + } + + if ( !this.counter ) { + this.counter = 1; + } + this.spinning = true; + return true; + }, + + _repeat: function( i, steps, event ) { + i = i || 500; + + clearTimeout( this.timer ); + this.timer = this._delay(function() { + this._repeat( 40, steps, event ); + }, i ); + + this._spin( steps * this.options.step, event ); + }, + + _spin: function( step, event ) { + var value = this.value() || 0; + + if ( !this.counter ) { + this.counter = 1; + } + + value = this._adjustValue( value + step * this._increment( this.counter ) ); + + if ( !this.spinning || this._trigger( "spin", event, { value: value } ) !== false) { + this._value( value ); + this.counter++; + } + }, + + _increment: function( i ) { + var incremental = this.options.incremental; + + if ( incremental ) { + return $.isFunction( incremental ) ? + incremental( i ) : + Math.floor( i*i*i/50000 - i*i/500 + 17*i/200 + 1 ); + } + + return 1; + }, + + _precision: function() { + var precision = this._precisionOf( this.options.step ); + if ( this.options.min !== null ) { + precision = Math.max( precision, this._precisionOf( this.options.min ) ); + } + return precision; + }, + + _precisionOf: function( num ) { + var str = num.toString(), + decimal = str.indexOf( "." ); + return decimal === -1 ? 0 : str.length - decimal - 1; + }, + + _adjustValue: function( value ) { + var base, aboveMin, + options = this.options; + + // make sure we're at a valid step + // - find out where we are relative to the base (min or 0) + base = options.min !== null ? options.min : 0; + aboveMin = value - base; + // - round to the nearest step + aboveMin = Math.round(aboveMin / options.step) * options.step; + // - rounding is based on 0, so adjust back to our base + value = base + aboveMin; + + // fix precision from bad JS floating point math + value = parseFloat( value.toFixed( this._precision() ) ); + + // clamp the value + if ( options.max !== null && value > options.max) { + return options.max; + } + if ( options.min !== null && value < options.min ) { + return options.min; + } + + return value; + }, + + _stop: function( event ) { + if ( !this.spinning ) { + return; + } + + clearTimeout( this.timer ); + clearTimeout( this.mousewheelTimer ); + this.counter = 0; + this.spinning = false; + this._trigger( "stop", event ); + }, + + _setOption: function( key, value ) { + if ( key === "culture" || key === "numberFormat" ) { + var prevValue = this._parse( this.element.val() ); + this.options[ key ] = value; + this.element.val( this._format( prevValue ) ); + return; + } + + if ( key === "max" || key === "min" || key === "step" ) { + if ( typeof value === "string" ) { + value = this._parse( value ); + } + } + + this._super( key, value ); + + if ( key === "disabled" ) { + if ( value ) { + this.element.prop( "disabled", true ); + this.buttons.button( "disable" ); + } else { + this.element.prop( "disabled", false ); + this.buttons.button( "enable" ); + } + } + }, + + _setOptions: modifier(function( options ) { + this._super( options ); + this._value( this.element.val() ); + }), + + _parse: function( val ) { + if ( typeof val === "string" && val !== "" ) { + val = window.Globalize && this.options.numberFormat ? + Globalize.parseFloat( val, 10, this.options.culture ) : +val; + } + return val === "" || isNaN( val ) ? null : val; + }, + + _format: function( value ) { + if ( value === "" ) { + return ""; + } + return window.Globalize && this.options.numberFormat ? + Globalize.format( value, this.options.numberFormat, this.options.culture ) : + value; + }, + + _refresh: function() { + this.element.attr({ + "aria-valuemin": this.options.min, + "aria-valuemax": this.options.max, + // TODO: what should we do with values that can't be parsed? + "aria-valuenow": this._parse( this.element.val() ) + }); + }, + + // update the value without triggering change + _value: function( value, allowAny ) { + var parsed; + if ( value !== "" ) { + parsed = this._parse( value ); + if ( parsed !== null ) { + if ( !allowAny ) { + parsed = this._adjustValue( parsed ); + } + value = this._format( parsed ); + } + } + this.element.val( value ); + this._refresh(); + }, + + _destroy: function() { + this.element + .removeClass( "ui-spinner-input" ) + .prop( "disabled", false ) + .removeAttr( "autocomplete" ) + .removeAttr( "role" ) + .removeAttr( "aria-valuemin" ) + .removeAttr( "aria-valuemax" ) + .removeAttr( "aria-valuenow" ); + this.uiSpinner.replaceWith( this.element ); + }, + + stepUp: modifier(function( steps ) { + this._stepUp( steps ); + }), + _stepUp: function( steps ) { + this._spin( (steps || 1) * this.options.step ); + }, + + stepDown: modifier(function( steps ) { + this._stepDown( steps ); + }), + _stepDown: function( steps ) { + this._spin( (steps || 1) * -this.options.step ); + }, + + pageUp: modifier(function( pages ) { + this._stepUp( (pages || 1) * this.options.page ); + }), + + pageDown: modifier(function( pages ) { + this._stepDown( (pages || 1) * this.options.page ); + }), + + value: function( newVal ) { + if ( !arguments.length ) { + return this._parse( this.element.val() ); + } + modifier( this._value ).call( this, newVal ); + }, + + widget: function() { + return this.uiSpinner; + } +}); + +}( jQuery ) ); + +(function( $, undefined ) { + +var tabId = 0, + rhash = /#.*$/; + +function getNextTabId() { + return ++tabId; +} + +function isLocal( anchor ) { + return anchor.hash.length > 1 && + anchor.href.replace( rhash, "" ) === + location.href.replace( rhash, "" ) + // support: Safari 5.1 + // Safari 5.1 doesn't encode spaces in window.location + // but it does encode spaces from anchors (#8777) + .replace( /\s/g, "%20" ); +} + +$.widget( "ui.tabs", { + version: "1.9.2", + delay: 300, + options: { + active: null, + collapsible: false, + event: "click", + heightStyle: "content", + hide: null, + show: null, + + // callbacks + activate: null, + beforeActivate: null, + beforeLoad: null, + load: null + }, + + _create: function() { + var that = this, + options = this.options, + active = options.active, + locationHash = location.hash.substring( 1 ); + + this.running = false; + + this.element + .addClass( "ui-tabs ui-widget ui-widget-content ui-corner-all" ) + .toggleClass( "ui-tabs-collapsible", options.collapsible ) + // Prevent users from focusing disabled tabs via click + .delegate( ".ui-tabs-nav > li", "mousedown" + this.eventNamespace, function( event ) { + if ( $( this ).is( ".ui-state-disabled" ) ) { + event.preventDefault(); + } + }) + // support: IE <9 + // Preventing the default action in mousedown doesn't prevent IE + // from focusing the element, so if the anchor gets focused, blur. + // We don't have to worry about focusing the previously focused + // element since clicking on a non-focusable element should focus + // the body anyway. + .delegate( ".ui-tabs-anchor", "focus" + this.eventNamespace, function() { + if ( $( this ).closest( "li" ).is( ".ui-state-disabled" ) ) { + this.blur(); + } + }); + + this._processTabs(); + + if ( active === null ) { + // check the fragment identifier in the URL + if ( locationHash ) { + this.tabs.each(function( i, tab ) { + if ( $( tab ).attr( "aria-controls" ) === locationHash ) { + active = i; + return false; + } + }); + } + + // check for a tab marked active via a class + if ( active === null ) { + active = this.tabs.index( this.tabs.filter( ".ui-tabs-active" ) ); + } + + // no active tab, set to false + if ( active === null || active === -1 ) { + active = this.tabs.length ? 0 : false; + } + } + + // handle numbers: negative, out of range + if ( active !== false ) { + active = this.tabs.index( this.tabs.eq( active ) ); + if ( active === -1 ) { + active = options.collapsible ? false : 0; + } + } + options.active = active; + + // don't allow collapsible: false and active: false + if ( !options.collapsible && options.active === false && this.anchors.length ) { + options.active = 0; + } + + // Take disabling tabs via class attribute from HTML + // into account and update option properly. + if ( $.isArray( options.disabled ) ) { + options.disabled = $.unique( options.disabled.concat( + $.map( this.tabs.filter( ".ui-state-disabled" ), function( li ) { + return that.tabs.index( li ); + }) + ) ).sort(); + } + + // check for length avoids error when initializing empty list + if ( this.options.active !== false && this.anchors.length ) { + this.active = this._findActive( this.options.active ); + } else { + this.active = $(); + } + + this._refresh(); + + if ( this.active.length ) { + this.load( options.active ); + } + }, + + _getCreateEventData: function() { + return { + tab: this.active, + panel: !this.active.length ? $() : this._getPanelForTab( this.active ) + }; + }, + + _tabKeydown: function( event ) { + var focusedTab = $( this.document[0].activeElement ).closest( "li" ), + selectedIndex = this.tabs.index( focusedTab ), + goingForward = true; + + if ( this._handlePageNav( event ) ) { + return; + } + + switch ( event.keyCode ) { + case $.ui.keyCode.RIGHT: + case $.ui.keyCode.DOWN: + selectedIndex++; + break; + case $.ui.keyCode.UP: + case $.ui.keyCode.LEFT: + goingForward = false; + selectedIndex--; + break; + case $.ui.keyCode.END: + selectedIndex = this.anchors.length - 1; + break; + case $.ui.keyCode.HOME: + selectedIndex = 0; + break; + case $.ui.keyCode.SPACE: + // Activate only, no collapsing + event.preventDefault(); + clearTimeout( this.activating ); + this._activate( selectedIndex ); + return; + case $.ui.keyCode.ENTER: + // Toggle (cancel delayed activation, allow collapsing) + event.preventDefault(); + clearTimeout( this.activating ); + // Determine if we should collapse or activate + this._activate( selectedIndex === this.options.active ? false : selectedIndex ); + return; + default: + return; + } + + // Focus the appropriate tab, based on which key was pressed + event.preventDefault(); + clearTimeout( this.activating ); + selectedIndex = this._focusNextTab( selectedIndex, goingForward ); + + // Navigating with control key will prevent automatic activation + if ( !event.ctrlKey ) { + // Update aria-selected immediately so that AT think the tab is already selected. + // Otherwise AT may confuse the user by stating that they need to activate the tab, + // but the tab will already be activated by the time the announcement finishes. + focusedTab.attr( "aria-selected", "false" ); + this.tabs.eq( selectedIndex ).attr( "aria-selected", "true" ); + + this.activating = this._delay(function() { + this.option( "active", selectedIndex ); + }, this.delay ); + } + }, + + _panelKeydown: function( event ) { + if ( this._handlePageNav( event ) ) { + return; + } + + // Ctrl+up moves focus to the current tab + if ( event.ctrlKey && event.keyCode === $.ui.keyCode.UP ) { + event.preventDefault(); + this.active.focus(); + } + }, + + // Alt+page up/down moves focus to the previous/next tab (and activates) + _handlePageNav: function( event ) { + if ( event.altKey && event.keyCode === $.ui.keyCode.PAGE_UP ) { + this._activate( this._focusNextTab( this.options.active - 1, false ) ); + return true; + } + if ( event.altKey && event.keyCode === $.ui.keyCode.PAGE_DOWN ) { + this._activate( this._focusNextTab( this.options.active + 1, true ) ); + return true; + } + }, + + _findNextTab: function( index, goingForward ) { + var lastTabIndex = this.tabs.length - 1; + + function constrain() { + if ( index > lastTabIndex ) { + index = 0; + } + if ( index < 0 ) { + index = lastTabIndex; + } + return index; + } + + while ( $.inArray( constrain(), this.options.disabled ) !== -1 ) { + index = goingForward ? index + 1 : index - 1; + } + + return index; + }, + + _focusNextTab: function( index, goingForward ) { + index = this._findNextTab( index, goingForward ); + this.tabs.eq( index ).focus(); + return index; + }, + + _setOption: function( key, value ) { + if ( key === "active" ) { + // _activate() will handle invalid values and update this.options + this._activate( value ); + return; + } + + if ( key === "disabled" ) { + // don't use the widget factory's disabled handling + this._setupDisabled( value ); + return; + } + + this._super( key, value); + + if ( key === "collapsible" ) { + this.element.toggleClass( "ui-tabs-collapsible", value ); + // Setting collapsible: false while collapsed; open first panel + if ( !value && this.options.active === false ) { + this._activate( 0 ); + } + } + + if ( key === "event" ) { + this._setupEvents( value ); + } + + if ( key === "heightStyle" ) { + this._setupHeightStyle( value ); + } + }, + + _tabId: function( tab ) { + return tab.attr( "aria-controls" ) || "ui-tabs-" + getNextTabId(); + }, + + _sanitizeSelector: function( hash ) { + return hash ? hash.replace( /[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g, "\\$&" ) : ""; + }, + + refresh: function() { + var options = this.options, + lis = this.tablist.children( ":has(a[href])" ); + + // get disabled tabs from class attribute from HTML + // this will get converted to a boolean if needed in _refresh() + options.disabled = $.map( lis.filter( ".ui-state-disabled" ), function( tab ) { + return lis.index( tab ); + }); + + this._processTabs(); + + // was collapsed or no tabs + if ( options.active === false || !this.anchors.length ) { + options.active = false; + this.active = $(); + // was active, but active tab is gone + } else if ( this.active.length && !$.contains( this.tablist[ 0 ], this.active[ 0 ] ) ) { + // all remaining tabs are disabled + if ( this.tabs.length === options.disabled.length ) { + options.active = false; + this.active = $(); + // activate previous tab + } else { + this._activate( this._findNextTab( Math.max( 0, options.active - 1 ), false ) ); + } + // was active, active tab still exists + } else { + // make sure active index is correct + options.active = this.tabs.index( this.active ); + } + + this._refresh(); + }, + + _refresh: function() { + this._setupDisabled( this.options.disabled ); + this._setupEvents( this.options.event ); + this._setupHeightStyle( this.options.heightStyle ); + + this.tabs.not( this.active ).attr({ + "aria-selected": "false", + tabIndex: -1 + }); + this.panels.not( this._getPanelForTab( this.active ) ) + .hide() + .attr({ + "aria-expanded": "false", + "aria-hidden": "true" + }); + + // Make sure one tab is in the tab order + if ( !this.active.length ) { + this.tabs.eq( 0 ).attr( "tabIndex", 0 ); + } else { + this.active + .addClass( "ui-tabs-active ui-state-active" ) + .attr({ + "aria-selected": "true", + tabIndex: 0 + }); + this._getPanelForTab( this.active ) + .show() + .attr({ + "aria-expanded": "true", + "aria-hidden": "false" + }); + } + }, + + _processTabs: function() { + var that = this; + + this.tablist = this._getList() + .addClass( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" ) + .attr( "role", "tablist" ); + + this.tabs = this.tablist.find( "> li:has(a[href])" ) + .addClass( "ui-state-default ui-corner-top" ) + .attr({ + role: "tab", + tabIndex: -1 + }); + + this.anchors = this.tabs.map(function() { + return $( "a", this )[ 0 ]; + }) + .addClass( "ui-tabs-anchor" ) + .attr({ + role: "presentation", + tabIndex: -1 + }); + + this.panels = $(); + + this.anchors.each(function( i, anchor ) { + var selector, panel, panelId, + anchorId = $( anchor ).uniqueId().attr( "id" ), + tab = $( anchor ).closest( "li" ), + originalAriaControls = tab.attr( "aria-controls" ); + + // inline tab + if ( isLocal( anchor ) ) { + selector = anchor.hash; + panel = that.element.find( that._sanitizeSelector( selector ) ); + // remote tab + } else { + panelId = that._tabId( tab ); + selector = "#" + panelId; + panel = that.element.find( selector ); + if ( !panel.length ) { + panel = that._createPanel( panelId ); + panel.insertAfter( that.panels[ i - 1 ] || that.tablist ); + } + panel.attr( "aria-live", "polite" ); + } + + if ( panel.length) { + that.panels = that.panels.add( panel ); + } + if ( originalAriaControls ) { + tab.data( "ui-tabs-aria-controls", originalAriaControls ); + } + tab.attr({ + "aria-controls": selector.substring( 1 ), + "aria-labelledby": anchorId + }); + panel.attr( "aria-labelledby", anchorId ); + }); + + this.panels + .addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" ) + .attr( "role", "tabpanel" ); + }, + + // allow overriding how to find the list for rare usage scenarios (#7715) + _getList: function() { + return this.element.find( "ol,ul" ).eq( 0 ); + }, + + _createPanel: function( id ) { + return $( "
    " ) + .attr( "id", id ) + .addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" ) + .data( "ui-tabs-destroy", true ); + }, + + _setupDisabled: function( disabled ) { + if ( $.isArray( disabled ) ) { + if ( !disabled.length ) { + disabled = false; + } else if ( disabled.length === this.anchors.length ) { + disabled = true; + } + } + + // disable tabs + for ( var i = 0, li; ( li = this.tabs[ i ] ); i++ ) { + if ( disabled === true || $.inArray( i, disabled ) !== -1 ) { + $( li ) + .addClass( "ui-state-disabled" ) + .attr( "aria-disabled", "true" ); + } else { + $( li ) + .removeClass( "ui-state-disabled" ) + .removeAttr( "aria-disabled" ); + } + } + + this.options.disabled = disabled; + }, + + _setupEvents: function( event ) { + var events = { + click: function( event ) { + event.preventDefault(); + } + }; + if ( event ) { + $.each( event.split(" "), function( index, eventName ) { + events[ eventName ] = "_eventHandler"; + }); + } + + this._off( this.anchors.add( this.tabs ).add( this.panels ) ); + this._on( this.anchors, events ); + this._on( this.tabs, { keydown: "_tabKeydown" } ); + this._on( this.panels, { keydown: "_panelKeydown" } ); + + this._focusable( this.tabs ); + this._hoverable( this.tabs ); + }, + + _setupHeightStyle: function( heightStyle ) { + var maxHeight, overflow, + parent = this.element.parent(); + + if ( heightStyle === "fill" ) { + // IE 6 treats height like minHeight, so we need to turn off overflow + // in order to get a reliable height + // we use the minHeight support test because we assume that only + // browsers that don't support minHeight will treat height as minHeight + if ( !$.support.minHeight ) { + overflow = parent.css( "overflow" ); + parent.css( "overflow", "hidden"); + } + maxHeight = parent.height(); + this.element.siblings( ":visible" ).each(function() { + var elem = $( this ), + position = elem.css( "position" ); + + if ( position === "absolute" || position === "fixed" ) { + return; + } + maxHeight -= elem.outerHeight( true ); + }); + if ( overflow ) { + parent.css( "overflow", overflow ); + } + + this.element.children().not( this.panels ).each(function() { + maxHeight -= $( this ).outerHeight( true ); + }); + + this.panels.each(function() { + $( this ).height( Math.max( 0, maxHeight - + $( this ).innerHeight() + $( this ).height() ) ); + }) + .css( "overflow", "auto" ); + } else if ( heightStyle === "auto" ) { + maxHeight = 0; + this.panels.each(function() { + maxHeight = Math.max( maxHeight, $( this ).height( "" ).height() ); + }).height( maxHeight ); + } + }, + + _eventHandler: function( event ) { + var options = this.options, + active = this.active, + anchor = $( event.currentTarget ), + tab = anchor.closest( "li" ), + clickedIsActive = tab[ 0 ] === active[ 0 ], + collapsing = clickedIsActive && options.collapsible, + toShow = collapsing ? $() : this._getPanelForTab( tab ), + toHide = !active.length ? $() : this._getPanelForTab( active ), + eventData = { + oldTab: active, + oldPanel: toHide, + newTab: collapsing ? $() : tab, + newPanel: toShow + }; + + event.preventDefault(); + + if ( tab.hasClass( "ui-state-disabled" ) || + // tab is already loading + tab.hasClass( "ui-tabs-loading" ) || + // can't switch durning an animation + this.running || + // click on active header, but not collapsible + ( clickedIsActive && !options.collapsible ) || + // allow canceling activation + ( this._trigger( "beforeActivate", event, eventData ) === false ) ) { + return; + } + + options.active = collapsing ? false : this.tabs.index( tab ); + + this.active = clickedIsActive ? $() : tab; + if ( this.xhr ) { + this.xhr.abort(); + } + + if ( !toHide.length && !toShow.length ) { + $.error( "jQuery UI Tabs: Mismatching fragment identifier." ); + } + + if ( toShow.length ) { + this.load( this.tabs.index( tab ), event ); + } + this._toggle( event, eventData ); + }, + + // handles show/hide for selecting tabs + _toggle: function( event, eventData ) { + var that = this, + toShow = eventData.newPanel, + toHide = eventData.oldPanel; + + this.running = true; + + function complete() { + that.running = false; + that._trigger( "activate", event, eventData ); + } + + function show() { + eventData.newTab.closest( "li" ).addClass( "ui-tabs-active ui-state-active" ); + + if ( toShow.length && that.options.show ) { + that._show( toShow, that.options.show, complete ); + } else { + toShow.show(); + complete(); + } + } + + // start out by hiding, then showing, then completing + if ( toHide.length && this.options.hide ) { + this._hide( toHide, this.options.hide, function() { + eventData.oldTab.closest( "li" ).removeClass( "ui-tabs-active ui-state-active" ); + show(); + }); + } else { + eventData.oldTab.closest( "li" ).removeClass( "ui-tabs-active ui-state-active" ); + toHide.hide(); + show(); + } + + toHide.attr({ + "aria-expanded": "false", + "aria-hidden": "true" + }); + eventData.oldTab.attr( "aria-selected", "false" ); + // If we're switching tabs, remove the old tab from the tab order. + // If we're opening from collapsed state, remove the previous tab from the tab order. + // If we're collapsing, then keep the collapsing tab in the tab order. + if ( toShow.length && toHide.length ) { + eventData.oldTab.attr( "tabIndex", -1 ); + } else if ( toShow.length ) { + this.tabs.filter(function() { + return $( this ).attr( "tabIndex" ) === 0; + }) + .attr( "tabIndex", -1 ); + } + + toShow.attr({ + "aria-expanded": "true", + "aria-hidden": "false" + }); + eventData.newTab.attr({ + "aria-selected": "true", + tabIndex: 0 + }); + }, + + _activate: function( index ) { + var anchor, + active = this._findActive( index ); + + // trying to activate the already active panel + if ( active[ 0 ] === this.active[ 0 ] ) { + return; + } + + // trying to collapse, simulate a click on the current active header + if ( !active.length ) { + active = this.active; + } + + anchor = active.find( ".ui-tabs-anchor" )[ 0 ]; + this._eventHandler({ + target: anchor, + currentTarget: anchor, + preventDefault: $.noop + }); + }, + + _findActive: function( index ) { + return index === false ? $() : this.tabs.eq( index ); + }, + + _getIndex: function( index ) { + // meta-function to give users option to provide a href string instead of a numerical index. + if ( typeof index === "string" ) { + index = this.anchors.index( this.anchors.filter( "[href$='" + index + "']" ) ); + } + + return index; + }, + + _destroy: function() { + if ( this.xhr ) { + this.xhr.abort(); + } + + this.element.removeClass( "ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible" ); + + this.tablist + .removeClass( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" ) + .removeAttr( "role" ); + + this.anchors + .removeClass( "ui-tabs-anchor" ) + .removeAttr( "role" ) + .removeAttr( "tabIndex" ) + .removeData( "href.tabs" ) + .removeData( "load.tabs" ) + .removeUniqueId(); + + this.tabs.add( this.panels ).each(function() { + if ( $.data( this, "ui-tabs-destroy" ) ) { + $( this ).remove(); + } else { + $( this ) + .removeClass( "ui-state-default ui-state-active ui-state-disabled " + + "ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel" ) + .removeAttr( "tabIndex" ) + .removeAttr( "aria-live" ) + .removeAttr( "aria-busy" ) + .removeAttr( "aria-selected" ) + .removeAttr( "aria-labelledby" ) + .removeAttr( "aria-hidden" ) + .removeAttr( "aria-expanded" ) + .removeAttr( "role" ); + } + }); + + this.tabs.each(function() { + var li = $( this ), + prev = li.data( "ui-tabs-aria-controls" ); + if ( prev ) { + li.attr( "aria-controls", prev ); + } else { + li.removeAttr( "aria-controls" ); + } + }); + + this.panels.show(); + + if ( this.options.heightStyle !== "content" ) { + this.panels.css( "height", "" ); + } + }, + + enable: function( index ) { + var disabled = this.options.disabled; + if ( disabled === false ) { + return; + } + + if ( index === undefined ) { + disabled = false; + } else { + index = this._getIndex( index ); + if ( $.isArray( disabled ) ) { + disabled = $.map( disabled, function( num ) { + return num !== index ? num : null; + }); + } else { + disabled = $.map( this.tabs, function( li, num ) { + return num !== index ? num : null; + }); + } + } + this._setupDisabled( disabled ); + }, + + disable: function( index ) { + var disabled = this.options.disabled; + if ( disabled === true ) { + return; + } + + if ( index === undefined ) { + disabled = true; + } else { + index = this._getIndex( index ); + if ( $.inArray( index, disabled ) !== -1 ) { + return; + } + if ( $.isArray( disabled ) ) { + disabled = $.merge( [ index ], disabled ).sort(); + } else { + disabled = [ index ]; + } + } + this._setupDisabled( disabled ); + }, + + load: function( index, event ) { + index = this._getIndex( index ); + var that = this, + tab = this.tabs.eq( index ), + anchor = tab.find( ".ui-tabs-anchor" ), + panel = this._getPanelForTab( tab ), + eventData = { + tab: tab, + panel: panel + }; + + // not remote + if ( isLocal( anchor[ 0 ] ) ) { + return; + } + + this.xhr = $.ajax( this._ajaxSettings( anchor, event, eventData ) ); + + // support: jQuery <1.8 + // jQuery <1.8 returns false if the request is canceled in beforeSend, + // but as of 1.8, $.ajax() always returns a jqXHR object. + if ( this.xhr && this.xhr.statusText !== "canceled" ) { + tab.addClass( "ui-tabs-loading" ); + panel.attr( "aria-busy", "true" ); + + this.xhr + .success(function( response ) { + // support: jQuery <1.8 + // http://bugs.jquery.com/ticket/11778 + setTimeout(function() { + panel.html( response ); + that._trigger( "load", event, eventData ); + }, 1 ); + }) + .complete(function( jqXHR, status ) { + // support: jQuery <1.8 + // http://bugs.jquery.com/ticket/11778 + setTimeout(function() { + if ( status === "abort" ) { + that.panels.stop( false, true ); + } + + tab.removeClass( "ui-tabs-loading" ); + panel.removeAttr( "aria-busy" ); + + if ( jqXHR === that.xhr ) { + delete that.xhr; + } + }, 1 ); + }); + } + }, + + // TODO: Remove this function in 1.10 when ajaxOptions is removed + _ajaxSettings: function( anchor, event, eventData ) { + var that = this; + return { + url: anchor.attr( "href" ), + beforeSend: function( jqXHR, settings ) { + return that._trigger( "beforeLoad", event, + $.extend( { jqXHR : jqXHR, ajaxSettings: settings }, eventData ) ); + } + }; + }, + + _getPanelForTab: function( tab ) { + var id = $( tab ).attr( "aria-controls" ); + return this.element.find( this._sanitizeSelector( "#" + id ) ); + } +}); + +// DEPRECATED +if ( $.uiBackCompat !== false ) { + + // helper method for a lot of the back compat extensions + $.ui.tabs.prototype._ui = function( tab, panel ) { + return { + tab: tab, + panel: panel, + index: this.anchors.index( tab ) + }; + }; + + // url method + $.widget( "ui.tabs", $.ui.tabs, { + url: function( index, url ) { + this.anchors.eq( index ).attr( "href", url ); + } + }); + + // TODO: Remove _ajaxSettings() method when removing this extension + // ajaxOptions and cache options + $.widget( "ui.tabs", $.ui.tabs, { + options: { + ajaxOptions: null, + cache: false + }, + + _create: function() { + this._super(); + + var that = this; + + this._on({ tabsbeforeload: function( event, ui ) { + // tab is already cached + if ( $.data( ui.tab[ 0 ], "cache.tabs" ) ) { + event.preventDefault(); + return; + } + + ui.jqXHR.success(function() { + if ( that.options.cache ) { + $.data( ui.tab[ 0 ], "cache.tabs", true ); + } + }); + }}); + }, + + _ajaxSettings: function( anchor, event, ui ) { + var ajaxOptions = this.options.ajaxOptions; + return $.extend( {}, ajaxOptions, { + error: function( xhr, status ) { + try { + // Passing index avoid a race condition when this method is + // called after the user has selected another tab. + // Pass the anchor that initiated this request allows + // loadError to manipulate the tab content panel via $(a.hash) + ajaxOptions.error( + xhr, status, ui.tab.closest( "li" ).index(), ui.tab[ 0 ] ); + } + catch ( error ) {} + } + }, this._superApply( arguments ) ); + }, + + _setOption: function( key, value ) { + // reset cache if switching from cached to not cached + if ( key === "cache" && value === false ) { + this.anchors.removeData( "cache.tabs" ); + } + this._super( key, value ); + }, + + _destroy: function() { + this.anchors.removeData( "cache.tabs" ); + this._super(); + }, + + url: function( index ){ + this.anchors.eq( index ).removeData( "cache.tabs" ); + this._superApply( arguments ); + } + }); + + // abort method + $.widget( "ui.tabs", $.ui.tabs, { + abort: function() { + if ( this.xhr ) { + this.xhr.abort(); + } + } + }); + + // spinner + $.widget( "ui.tabs", $.ui.tabs, { + options: { + spinner: "Loading…" + }, + _create: function() { + this._super(); + this._on({ + tabsbeforeload: function( event, ui ) { + // Don't react to nested tabs or tabs that don't use a spinner + if ( event.target !== this.element[ 0 ] || + !this.options.spinner ) { + return; + } + + var span = ui.tab.find( "span" ), + html = span.html(); + span.html( this.options.spinner ); + ui.jqXHR.complete(function() { + span.html( html ); + }); + } + }); + } + }); + + // enable/disable events + $.widget( "ui.tabs", $.ui.tabs, { + options: { + enable: null, + disable: null + }, + + enable: function( index ) { + var options = this.options, + trigger; + + if ( index && options.disabled === true || + ( $.isArray( options.disabled ) && $.inArray( index, options.disabled ) !== -1 ) ) { + trigger = true; + } + + this._superApply( arguments ); + + if ( trigger ) { + this._trigger( "enable", null, this._ui( this.anchors[ index ], this.panels[ index ] ) ); + } + }, + + disable: function( index ) { + var options = this.options, + trigger; + + if ( index && options.disabled === false || + ( $.isArray( options.disabled ) && $.inArray( index, options.disabled ) === -1 ) ) { + trigger = true; + } + + this._superApply( arguments ); + + if ( trigger ) { + this._trigger( "disable", null, this._ui( this.anchors[ index ], this.panels[ index ] ) ); + } + } + }); + + // add/remove methods and events + $.widget( "ui.tabs", $.ui.tabs, { + options: { + add: null, + remove: null, + tabTemplate: "
  • #{label}
  • " + }, + + add: function( url, label, index ) { + if ( index === undefined ) { + index = this.anchors.length; + } + + var doInsertAfter, panel, + options = this.options, + li = $( options.tabTemplate + .replace( /#\{href\}/g, url ) + .replace( /#\{label\}/g, label ) ), + id = !url.indexOf( "#" ) ? + url.replace( "#", "" ) : + this._tabId( li ); + + li.addClass( "ui-state-default ui-corner-top" ).data( "ui-tabs-destroy", true ); + li.attr( "aria-controls", id ); + + doInsertAfter = index >= this.tabs.length; + + // try to find an existing element before creating a new one + panel = this.element.find( "#" + id ); + if ( !panel.length ) { + panel = this._createPanel( id ); + if ( doInsertAfter ) { + if ( index > 0 ) { + panel.insertAfter( this.panels.eq( -1 ) ); + } else { + panel.appendTo( this.element ); + } + } else { + panel.insertBefore( this.panels[ index ] ); + } + } + panel.addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" ).hide(); + + if ( doInsertAfter ) { + li.appendTo( this.tablist ); + } else { + li.insertBefore( this.tabs[ index ] ); + } + + options.disabled = $.map( options.disabled, function( n ) { + return n >= index ? ++n : n; + }); + + this.refresh(); + if ( this.tabs.length === 1 && options.active === false ) { + this.option( "active", 0 ); + } + + this._trigger( "add", null, this._ui( this.anchors[ index ], this.panels[ index ] ) ); + return this; + }, + + remove: function( index ) { + index = this._getIndex( index ); + var options = this.options, + tab = this.tabs.eq( index ).remove(), + panel = this._getPanelForTab( tab ).remove(); + + // If selected tab was removed focus tab to the right or + // in case the last tab was removed the tab to the left. + // We check for more than 2 tabs, because if there are only 2, + // then when we remove this tab, there will only be one tab left + // so we don't need to detect which tab to activate. + if ( tab.hasClass( "ui-tabs-active" ) && this.anchors.length > 2 ) { + this._activate( index + ( index + 1 < this.anchors.length ? 1 : -1 ) ); + } + + options.disabled = $.map( + $.grep( options.disabled, function( n ) { + return n !== index; + }), + function( n ) { + return n >= index ? --n : n; + }); + + this.refresh(); + + this._trigger( "remove", null, this._ui( tab.find( "a" )[ 0 ], panel[ 0 ] ) ); + return this; + } + }); + + // length method + $.widget( "ui.tabs", $.ui.tabs, { + length: function() { + return this.anchors.length; + } + }); + + // panel ids (idPrefix option + title attribute) + $.widget( "ui.tabs", $.ui.tabs, { + options: { + idPrefix: "ui-tabs-" + }, + + _tabId: function( tab ) { + var a = tab.is( "li" ) ? tab.find( "a[href]" ) : tab; + a = a[0]; + return $( a ).closest( "li" ).attr( "aria-controls" ) || + a.title && a.title.replace( /\s/g, "_" ).replace( /[^\w\u00c0-\uFFFF\-]/g, "" ) || + this.options.idPrefix + getNextTabId(); + } + }); + + // _createPanel method + $.widget( "ui.tabs", $.ui.tabs, { + options: { + panelTemplate: "
    " + }, + + _createPanel: function( id ) { + return $( this.options.panelTemplate ) + .attr( "id", id ) + .addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" ) + .data( "ui-tabs-destroy", true ); + } + }); + + // selected option + $.widget( "ui.tabs", $.ui.tabs, { + _create: function() { + var options = this.options; + if ( options.active === null && options.selected !== undefined ) { + options.active = options.selected === -1 ? false : options.selected; + } + this._super(); + options.selected = options.active; + if ( options.selected === false ) { + options.selected = -1; + } + }, + + _setOption: function( key, value ) { + if ( key !== "selected" ) { + return this._super( key, value ); + } + + var options = this.options; + this._super( "active", value === -1 ? false : value ); + options.selected = options.active; + if ( options.selected === false ) { + options.selected = -1; + } + }, + + _eventHandler: function() { + this._superApply( arguments ); + this.options.selected = this.options.active; + if ( this.options.selected === false ) { + this.options.selected = -1; + } + } + }); + + // show and select event + $.widget( "ui.tabs", $.ui.tabs, { + options: { + show: null, + select: null + }, + _create: function() { + this._super(); + if ( this.options.active !== false ) { + this._trigger( "show", null, this._ui( + this.active.find( ".ui-tabs-anchor" )[ 0 ], + this._getPanelForTab( this.active )[ 0 ] ) ); + } + }, + _trigger: function( type, event, data ) { + var tab, panel, + ret = this._superApply( arguments ); + + if ( !ret ) { + return false; + } + + if ( type === "beforeActivate" ) { + tab = data.newTab.length ? data.newTab : data.oldTab; + panel = data.newPanel.length ? data.newPanel : data.oldPanel; + ret = this._super( "select", event, { + tab: tab.find( ".ui-tabs-anchor" )[ 0], + panel: panel[ 0 ], + index: tab.closest( "li" ).index() + }); + } else if ( type === "activate" && data.newTab.length ) { + ret = this._super( "show", event, { + tab: data.newTab.find( ".ui-tabs-anchor" )[ 0 ], + panel: data.newPanel[ 0 ], + index: data.newTab.closest( "li" ).index() + }); + } + return ret; + } + }); + + // select method + $.widget( "ui.tabs", $.ui.tabs, { + select: function( index ) { + index = this._getIndex( index ); + if ( index === -1 ) { + if ( this.options.collapsible && this.options.selected !== -1 ) { + index = this.options.selected; + } else { + return; + } + } + this.anchors.eq( index ).trigger( this.options.event + this.eventNamespace ); + } + }); + + // cookie option + (function() { + + var listId = 0; + + $.widget( "ui.tabs", $.ui.tabs, { + options: { + cookie: null // e.g. { expires: 7, path: '/', domain: 'jquery.com', secure: true } + }, + _create: function() { + var options = this.options, + active; + if ( options.active == null && options.cookie ) { + active = parseInt( this._cookie(), 10 ); + if ( active === -1 ) { + active = false; + } + options.active = active; + } + this._super(); + }, + _cookie: function( active ) { + var cookie = [ this.cookie || + ( this.cookie = this.options.cookie.name || "ui-tabs-" + (++listId) ) ]; + if ( arguments.length ) { + cookie.push( active === false ? -1 : active ); + cookie.push( this.options.cookie ); + } + return $.cookie.apply( null, cookie ); + }, + _refresh: function() { + this._super(); + if ( this.options.cookie ) { + this._cookie( this.options.active, this.options.cookie ); + } + }, + _eventHandler: function() { + this._superApply( arguments ); + if ( this.options.cookie ) { + this._cookie( this.options.active, this.options.cookie ); + } + }, + _destroy: function() { + this._super(); + if ( this.options.cookie ) { + this._cookie( null, this.options.cookie ); + } + } + }); + + })(); + + // load event + $.widget( "ui.tabs", $.ui.tabs, { + _trigger: function( type, event, data ) { + var _data = $.extend( {}, data ); + if ( type === "load" ) { + _data.panel = _data.panel[ 0 ]; + _data.tab = _data.tab.find( ".ui-tabs-anchor" )[ 0 ]; + } + return this._super( type, event, _data ); + } + }); + + // fx option + // The new animation options (show, hide) conflict with the old show callback. + // The old fx option wins over show/hide anyway (always favor back-compat). + // If a user wants to use the new animation API, they must give up the old API. + $.widget( "ui.tabs", $.ui.tabs, { + options: { + fx: null // e.g. { height: "toggle", opacity: "toggle", duration: 200 } + }, + + _getFx: function() { + var hide, show, + fx = this.options.fx; + + if ( fx ) { + if ( $.isArray( fx ) ) { + hide = fx[ 0 ]; + show = fx[ 1 ]; + } else { + hide = show = fx; + } + } + + return fx ? { show: show, hide: hide } : null; + }, + + _toggle: function( event, eventData ) { + var that = this, + toShow = eventData.newPanel, + toHide = eventData.oldPanel, + fx = this._getFx(); + + if ( !fx ) { + return this._super( event, eventData ); + } + + that.running = true; + + function complete() { + that.running = false; + that._trigger( "activate", event, eventData ); + } + + function show() { + eventData.newTab.closest( "li" ).addClass( "ui-tabs-active ui-state-active" ); + + if ( toShow.length && fx.show ) { + toShow + .animate( fx.show, fx.show.duration, function() { + complete(); + }); + } else { + toShow.show(); + complete(); + } + } + + // start out by hiding, then showing, then completing + if ( toHide.length && fx.hide ) { + toHide.animate( fx.hide, fx.hide.duration, function() { + eventData.oldTab.closest( "li" ).removeClass( "ui-tabs-active ui-state-active" ); + show(); + }); + } else { + eventData.oldTab.closest( "li" ).removeClass( "ui-tabs-active ui-state-active" ); + toHide.hide(); + show(); + } + } + }); +} + +})( jQuery ); + +(function( $ ) { + +var increments = 0; + +function addDescribedBy( elem, id ) { + var describedby = (elem.attr( "aria-describedby" ) || "").split( /\s+/ ); + describedby.push( id ); + elem + .data( "ui-tooltip-id", id ) + .attr( "aria-describedby", $.trim( describedby.join( " " ) ) ); +} + +function removeDescribedBy( elem ) { + var id = elem.data( "ui-tooltip-id" ), + describedby = (elem.attr( "aria-describedby" ) || "").split( /\s+/ ), + index = $.inArray( id, describedby ); + if ( index !== -1 ) { + describedby.splice( index, 1 ); + } + + elem.removeData( "ui-tooltip-id" ); + describedby = $.trim( describedby.join( " " ) ); + if ( describedby ) { + elem.attr( "aria-describedby", describedby ); + } else { + elem.removeAttr( "aria-describedby" ); + } +} + +$.widget( "ui.tooltip", { + version: "1.9.2", + options: { + content: function() { + return $( this ).attr( "title" ); + }, + hide: true, + // Disabled elements have inconsistent behavior across browsers (#8661) + items: "[title]:not([disabled])", + position: { + my: "left top+15", + at: "left bottom", + collision: "flipfit flip" + }, + show: true, + tooltipClass: null, + track: false, + + // callbacks + close: null, + open: null + }, + + _create: function() { + this._on({ + mouseover: "open", + focusin: "open" + }); + + // IDs of generated tooltips, needed for destroy + this.tooltips = {}; + // IDs of parent tooltips where we removed the title attribute + this.parents = {}; + + if ( this.options.disabled ) { + this._disable(); + } + }, + + _setOption: function( key, value ) { + var that = this; + + if ( key === "disabled" ) { + this[ value ? "_disable" : "_enable" ](); + this.options[ key ] = value; + // disable element style changes + return; + } + + this._super( key, value ); + + if ( key === "content" ) { + $.each( this.tooltips, function( id, element ) { + that._updateContent( element ); + }); + } + }, + + _disable: function() { + var that = this; + + // close open tooltips + $.each( this.tooltips, function( id, element ) { + var event = $.Event( "blur" ); + event.target = event.currentTarget = element[0]; + that.close( event, true ); + }); + + // remove title attributes to prevent native tooltips + this.element.find( this.options.items ).andSelf().each(function() { + var element = $( this ); + if ( element.is( "[title]" ) ) { + element + .data( "ui-tooltip-title", element.attr( "title" ) ) + .attr( "title", "" ); + } + }); + }, + + _enable: function() { + // restore title attributes + this.element.find( this.options.items ).andSelf().each(function() { + var element = $( this ); + if ( element.data( "ui-tooltip-title" ) ) { + element.attr( "title", element.data( "ui-tooltip-title" ) ); + } + }); + }, + + open: function( event ) { + var that = this, + target = $( event ? event.target : this.element ) + // we need closest here due to mouseover bubbling, + // but always pointing at the same event target + .closest( this.options.items ); + + // No element to show a tooltip for or the tooltip is already open + if ( !target.length || target.data( "ui-tooltip-id" ) ) { + return; + } + + if ( target.attr( "title" ) ) { + target.data( "ui-tooltip-title", target.attr( "title" ) ); + } + + target.data( "ui-tooltip-open", true ); + + // kill parent tooltips, custom or native, for hover + if ( event && event.type === "mouseover" ) { + target.parents().each(function() { + var parent = $( this ), + blurEvent; + if ( parent.data( "ui-tooltip-open" ) ) { + blurEvent = $.Event( "blur" ); + blurEvent.target = blurEvent.currentTarget = this; + that.close( blurEvent, true ); + } + if ( parent.attr( "title" ) ) { + parent.uniqueId(); + that.parents[ this.id ] = { + element: this, + title: parent.attr( "title" ) + }; + parent.attr( "title", "" ); + } + }); + } + + this._updateContent( target, event ); + }, + + _updateContent: function( target, event ) { + var content, + contentOption = this.options.content, + that = this, + eventType = event ? event.type : null; + + if ( typeof contentOption === "string" ) { + return this._open( event, target, contentOption ); + } + + content = contentOption.call( target[0], function( response ) { + // ignore async response if tooltip was closed already + if ( !target.data( "ui-tooltip-open" ) ) { + return; + } + // IE may instantly serve a cached response for ajax requests + // delay this call to _open so the other call to _open runs first + that._delay(function() { + // jQuery creates a special event for focusin when it doesn't + // exist natively. To improve performance, the native event + // object is reused and the type is changed. Therefore, we can't + // rely on the type being correct after the event finished + // bubbling, so we set it back to the previous value. (#8740) + if ( event ) { + event.type = eventType; + } + this._open( event, target, response ); + }); + }); + if ( content ) { + this._open( event, target, content ); + } + }, + + _open: function( event, target, content ) { + var tooltip, events, delayedShow, + positionOption = $.extend( {}, this.options.position ); + + if ( !content ) { + return; + } + + // Content can be updated multiple times. If the tooltip already + // exists, then just update the content and bail. + tooltip = this._find( target ); + if ( tooltip.length ) { + tooltip.find( ".ui-tooltip-content" ).html( content ); + return; + } + + // if we have a title, clear it to prevent the native tooltip + // we have to check first to avoid defining a title if none exists + // (we don't want to cause an element to start matching [title]) + // + // We use removeAttr only for key events, to allow IE to export the correct + // accessible attributes. For mouse events, set to empty string to avoid + // native tooltip showing up (happens only when removing inside mouseover). + if ( target.is( "[title]" ) ) { + if ( event && event.type === "mouseover" ) { + target.attr( "title", "" ); + } else { + target.removeAttr( "title" ); + } + } + + tooltip = this._tooltip( target ); + addDescribedBy( target, tooltip.attr( "id" ) ); + tooltip.find( ".ui-tooltip-content" ).html( content ); + + function position( event ) { + positionOption.of = event; + if ( tooltip.is( ":hidden" ) ) { + return; + } + tooltip.position( positionOption ); + } + if ( this.options.track && event && /^mouse/.test( event.type ) ) { + this._on( this.document, { + mousemove: position + }); + // trigger once to override element-relative positioning + position( event ); + } else { + tooltip.position( $.extend({ + of: target + }, this.options.position ) ); + } + + tooltip.hide(); + + this._show( tooltip, this.options.show ); + // Handle tracking tooltips that are shown with a delay (#8644). As soon + // as the tooltip is visible, position the tooltip using the most recent + // event. + if ( this.options.show && this.options.show.delay ) { + delayedShow = setInterval(function() { + if ( tooltip.is( ":visible" ) ) { + position( positionOption.of ); + clearInterval( delayedShow ); + } + }, $.fx.interval ); + } + + this._trigger( "open", event, { tooltip: tooltip } ); + + events = { + keyup: function( event ) { + if ( event.keyCode === $.ui.keyCode.ESCAPE ) { + var fakeEvent = $.Event(event); + fakeEvent.currentTarget = target[0]; + this.close( fakeEvent, true ); + } + }, + remove: function() { + this._removeTooltip( tooltip ); + } + }; + if ( !event || event.type === "mouseover" ) { + events.mouseleave = "close"; + } + if ( !event || event.type === "focusin" ) { + events.focusout = "close"; + } + this._on( true, target, events ); + }, + + close: function( event ) { + var that = this, + target = $( event ? event.currentTarget : this.element ), + tooltip = this._find( target ); + + // disabling closes the tooltip, so we need to track when we're closing + // to avoid an infinite loop in case the tooltip becomes disabled on close + if ( this.closing ) { + return; + } + + // only set title if we had one before (see comment in _open()) + if ( target.data( "ui-tooltip-title" ) ) { + target.attr( "title", target.data( "ui-tooltip-title" ) ); + } + + removeDescribedBy( target ); + + tooltip.stop( true ); + this._hide( tooltip, this.options.hide, function() { + that._removeTooltip( $( this ) ); + }); + + target.removeData( "ui-tooltip-open" ); + this._off( target, "mouseleave focusout keyup" ); + // Remove 'remove' binding only on delegated targets + if ( target[0] !== this.element[0] ) { + this._off( target, "remove" ); + } + this._off( this.document, "mousemove" ); + + if ( event && event.type === "mouseleave" ) { + $.each( this.parents, function( id, parent ) { + $( parent.element ).attr( "title", parent.title ); + delete that.parents[ id ]; + }); + } + + this.closing = true; + this._trigger( "close", event, { tooltip: tooltip } ); + this.closing = false; + }, + + _tooltip: function( element ) { + var id = "ui-tooltip-" + increments++, + tooltip = $( "
    " ) + .attr({ + id: id, + role: "tooltip" + }) + .addClass( "ui-tooltip ui-widget ui-corner-all ui-widget-content " + + ( this.options.tooltipClass || "" ) ); + $( "
    " ) + .addClass( "ui-tooltip-content" ) + .appendTo( tooltip ); + tooltip.appendTo( this.document[0].body ); + if ( $.fn.bgiframe ) { + tooltip.bgiframe(); + } + this.tooltips[ id ] = element; + return tooltip; + }, + + _find: function( target ) { + var id = target.data( "ui-tooltip-id" ); + return id ? $( "#" + id ) : $(); + }, + + _removeTooltip: function( tooltip ) { + tooltip.remove(); + delete this.tooltips[ tooltip.attr( "id" ) ]; + }, + + _destroy: function() { + var that = this; + + // close open tooltips + $.each( this.tooltips, function( id, element ) { + // Delegate to close method to handle common cleanup + var event = $.Event( "blur" ); + event.target = event.currentTarget = element[0]; + that.close( event, true ); + + // Remove immediately; destroying an open tooltip doesn't use the + // hide animation + $( "#" + id ).remove(); + + // Restore the title + if ( element.data( "ui-tooltip-title" ) ) { + element.attr( "title", element.data( "ui-tooltip-title" ) ); + element.removeData( "ui-tooltip-title" ); + } + }); + } +}); + +}( jQuery ) ); + +///#source 1 1 /ClientSource/Scripts/Core/jquery.watermark.js +/* + Watermark plugin for jQuery + Version: 3.1.4 + http://jquery-watermark.googlecode.com/ + + Copyright (c) 2009-2012 Todd Northrop + http://www.speednet.biz/ + + August 13, 2012 + + Requires: jQuery 1.2.3+ + + Dual licensed under the MIT or GPL Version 2 licenses. + See mit-license.txt and gpl2-license.txt in the project root for details. +------------------------------------------------------*/ + +( function ( $, window, undefined ) { + +var + // String constants for data names + dataFlag = "watermark", + dataClass = "watermarkClass", + dataFocus = "watermarkFocus", + dataFormSubmit = "watermarkSubmit", + dataMaxLen = "watermarkMaxLength", + dataPassword = "watermarkPassword", + dataText = "watermarkText", + + // Copy of native jQuery regex use to strip return characters from element value + rreturn = /\r/g, + + // Used to determine if type attribute of input element is a non-text type (invalid) + rInvalidType = /^(button|checkbox|hidden|image|radio|range|reset|submit)$/i, + + // Includes only elements with watermark defined + selWatermarkDefined = "input:data(" + dataFlag + "),textarea:data(" + dataFlag + ")", + + // Includes only elements capable of having watermark + selWatermarkAble = ":watermarkable", + + // triggerFns: + // Array of function names to look for in the global namespace. + // Any such functions found will be hijacked to trigger a call to + // hideAll() any time they are called. The default value is the + // ASP.NET function that validates the controls on the page + // prior to a postback. + // + // Am I missing other important trigger function(s) to look for? + // Please leave me feedback: + // http://code.google.com/p/jquery-watermark/issues/list + triggerFns = [ + "Page_ClientValidate" + ], + + // Holds a value of true if a watermark was displayed since the last + // hideAll() was executed. Avoids repeatedly calling hideAll(). + pageDirty = false, + + // Detects if the browser can handle native placeholders + hasNativePlaceholder = ( "placeholder" in document.createElement( "input" ) ); + +// Best practice: this plugin adds only one method to the jQuery object. +// Also ensures that the watermark code is only added once. +$.watermark = $.watermark || { + + // Current version number of the plugin + version: "3.1.4", + + runOnce: true, + + // Default options used when watermarks are instantiated. + // Can be changed to affect the default behavior for all + // new or updated watermarks. + options: { + + // Default class name for all watermarks + className: "watermark", + + // If true, plugin will detect and use native browser support for + // watermarks, if available. (e.g., WebKit's placeholder attribute.) + useNative: true, + + // If true, all watermarks will be hidden during the window's + // beforeunload event. This is done mainly because WebKit + // browsers remember the watermark text during navigation + // and try to restore the watermark text after the user clicks + // the Back button. We can avoid this by hiding the text before + // the browser has a chance to save it. The regular unload event + // was tried, but it seems the browser saves the text before + // that event kicks off, because it didn't work. + hideBeforeUnload: true + }, + + // Hide one or more watermarks by specifying any selector type + // i.e., DOM element, string selector, jQuery matched set, etc. + hide: function ( selector ) { + $( selector ).filter( selWatermarkDefined ).each( + function () { + $.watermark._hide( $( this ) ); + } + ); + }, + + // Internal use only. + _hide: function ( $input, focus ) { + var elem = $input[ 0 ], + inputVal = ( elem.value || "" ).replace( rreturn, "" ), + inputWm = $input.data( dataText ) || "", + maxLen = $input.data( dataMaxLen ) || 0, + className = $input.data( dataClass ); + + if ( ( inputWm.length ) && ( inputVal == inputWm ) ) { + elem.value = ""; + + // Password type? + if ( $input.data( dataPassword ) ) { + + if ( ( $input.attr( "type" ) || "" ) === "text" ) { + var $pwd = $input.data( dataPassword ) || [], + $wrap = $input.parent() || []; + + if ( ( $pwd.length ) && ( $wrap.length ) ) { + $wrap[ 0 ].removeChild( $input[ 0 ] ); // Can't use jQuery methods, because they destroy data + $wrap[ 0 ].appendChild( $pwd[ 0 ] ); + $input = $pwd; + } + } + } + + if ( maxLen ) { + $input.attr( "maxLength", maxLen ); + $input.removeData( dataMaxLen ); + } + + if ( focus ) { + $input.attr( "autocomplete", "off" ); // Avoid NS_ERROR_XPC_JS_THREW_STRING error in Firefox + + window.setTimeout( + function () { + $input.select(); // Fix missing cursor in IE + } + , 1 ); + } + } + + className && $input.removeClass( className ); + }, + + // Display one or more watermarks by specifying any selector type + // i.e., DOM element, string selector, jQuery matched set, etc. + // If conditions are not right for displaying a watermark, ensures that watermark is not shown. + show: function ( selector ) { + $( selector ).filter( selWatermarkDefined ).each( + function () { + $.watermark._show( $( this ) ); + } + ); + }, + + // Internal use only. + _show: function ( $input ) { + var elem = $input[ 0 ], + val = ( elem.value || "" ).replace( rreturn, "" ), + text = $input.data( dataText ) || "", + type = $input.attr( "type" ) || "", + className = $input.data( dataClass ); + + if ( ( ( val.length == 0 ) || ( val == text ) ) && ( !$input.data( dataFocus ) ) ) { + pageDirty = true; + + // Password type? + if ( $input.data( dataPassword ) ) { + + if ( type === "password" ) { + var $pwd = $input.data( dataPassword ) || [], + $wrap = $input.parent() || []; + + if ( ( $pwd.length ) && ( $wrap.length ) ) { + $wrap[ 0 ].removeChild( $input[ 0 ] ); // Can't use jQuery methods, because they destroy data + $wrap[ 0 ].appendChild( $pwd[ 0 ] ); + $input = $pwd; + $input.attr( "maxLength", text.length ); + elem = $input[ 0 ]; + } + } + } + + // Ensure maxLength big enough to hold watermark (input of type="text" or type="search" only) + if ( ( type === "text" ) || ( type === "search" ) ) { + var maxLen = $input.attr( "maxLength" ) || 0; + + if ( ( maxLen > 0 ) && ( text.length > maxLen ) ) { + $input.data( dataMaxLen, maxLen ); + $input.attr( "maxLength", text.length ); + } + } + + className && $input.addClass( className ); + elem.value = text; + } + else { + $.watermark._hide( $input ); + } + }, + + // Hides all watermarks on the current page. + hideAll: function () { + if ( pageDirty ) { + $.watermark.hide( selWatermarkAble ); + pageDirty = false; + } + }, + + // Displays all watermarks on the current page. + showAll: function () { + $.watermark.show( selWatermarkAble ); + } +}; + +$.fn.watermark = $.fn.watermark || function ( text, options ) { + /// + /// Set watermark text and class name on all input elements of type="text/password/search" and + /// textareas within the matched set. If className is not specified in options, the default is + /// "watermark". Within the matched set, only input elements with type="text/password/search" + /// and textareas are affected; all other elements are ignored. + /// + /// + /// Returns the original jQuery matched set (not just the input and texarea elements). + /// + /// + /// Text to display as a watermark when the input or textarea element has an empty value and does not + /// have focus. The first time watermark() is called on an element, if this argument is empty (or not + /// a String type), then the watermark will have the net effect of only changing the class name when + /// the input or textarea element's value is empty and it does not have focus. + /// + /// + /// Provides the ability to override the default watermark options ($.watermark.options). For backward + /// compatibility, if a string value is supplied, it is used as the class name that overrides the class + /// name in $.watermark.options.className. Properties include: + /// className: When the watermark is visible, the element will be styled using this class name. + /// useNative (Boolean or Function): Specifies if native browser support for watermarks will supersede + /// plugin functionality. If useNative is a function, the return value from the function will + /// determine if native support is used. The function is passed one argument -- a jQuery object + /// containing the element being tested as the only element in its matched set -- and the DOM + /// element being tested is the object on which the function is invoked (the value of "this"). + /// + /// + /// The effect of changing the text and class name on an input element is called a watermark because + /// typically light gray text is used to provide a hint as to what type of input is required. However, + /// the appearance of the watermark can be something completely different: simply change the CSS style + /// pertaining to the supplied class name. + /// + /// The first time watermark() is called on an element, the watermark text and class name are initialized, + /// and the focus and blur events are hooked in order to control the display of the watermark. Also, as + /// of version 3.0, drag and drop events are hooked to guard against dropped text being appended to the + /// watermark. If native watermark support is provided by the browser, it is detected and used, unless + /// the useNative option is set to false. + /// + /// Subsequently, watermark() can be called again on an element in order to change the watermark text + /// and/or class name, and it can also be called without any arguments in order to refresh the display. + /// + /// For example, after changing the value of the input or textarea element programmatically, watermark() + /// should be called without any arguments to refresh the display, because the change event is only + /// triggered by user actions, not by programmatic changes to an input or textarea element's value. + /// + /// The one exception to programmatic updates is for password input elements: you are strongly cautioned + /// against changing the value of a password input element programmatically (after the page loads). + /// The reason is that some fairly hairy code is required behind the scenes to make the watermarks bypass + /// IE security and switch back and forth between clear text (for watermarks) and obscured text (for + /// passwords). It is *possible* to make programmatic changes, but it must be done in a certain way, and + /// overall it is not recommended. + /// + + if ( !this.length ) { + return this; + } + + var hasClass = false, + hasText = ( typeof( text ) === "string" ); + + if ( hasText ) { + text = text.replace( rreturn, "" ); + } + + if ( typeof( options ) === "object" ) { + hasClass = ( typeof( options.className ) === "string" ); + options = $.extend( {}, $.watermark.options, options ); + } + else if ( typeof( options ) === "string" ) { + hasClass = true; + options = $.extend( {}, $.watermark.options, { className: options } ); + } + else { + options = $.watermark.options; + } + + if ( typeof( options.useNative ) !== "function" ) { + options.useNative = options.useNative? function () { return true; } : function () { return false; }; + } + + return this.each( + function () { + var $input = $( this ); + + if ( !$input.is( selWatermarkAble ) ) { + return; + } + + // Watermark already initialized? + if ( $input.data( dataFlag ) ) { + + // If re-defining text or class, first remove existing watermark, then make changes + if ( hasText || hasClass ) { + $.watermark._hide( $input ); + + if ( hasText ) { + $input.data( dataText, text ); + } + + if ( hasClass ) { + $input.data( dataClass, options.className ); + } + } + } + else { + + // Detect and use native browser support, if enabled in options + if ( + ( hasNativePlaceholder ) + && ( options.useNative.call( this, $input ) ) + && ( ( $input.attr( "tagName" ) || "" ) !== "TEXTAREA" ) + ) { + // className is not set because current placeholder standard doesn't + // have a separate class name property for placeholders (watermarks). + if ( hasText ) { + $input.attr( "placeholder", text ); + } + + // Only set data flag for non-native watermarks + // [purposely commented-out] -> $input.data(dataFlag, 1); + return; + } + + $input.data( dataText, hasText? text : "" ); + $input.data( dataClass, options.className ); + $input.data( dataFlag, 1 ); // Flag indicates watermark was initialized + + // Special processing for password type + if ( ( $input.attr( "type" ) || "" ) === "password" ) { + var $wrap = $input.wrap( "" ).parent(), + $wm = $( $wrap.html().replace( /type=["']?password["']?/i, 'type="text"' ) ); + + $wm.data( dataText, $input.data( dataText ) ); + $wm.data( dataClass, $input.data( dataClass ) ); + $wm.data( dataFlag, 1 ); + $wm.attr( "maxLength", text.length ); + + $wm.focus( + function () { + $.watermark._hide( $wm, true ); + } + ).bind( "dragenter", + function () { + $.watermark._hide( $wm ); + } + ).bind( "dragend", + function () { + window.setTimeout( function () { $wm.blur(); }, 1 ); + } + ); + + $input.blur( + function () { + $.watermark._show( $input ); + } + ).bind( "dragleave", + function () { + $.watermark._show( $input ); + } + ); + + $wm.data( dataPassword, $input ); + $input.data( dataPassword, $wm ); + } + else { + + $input.focus( + function () { + $input.data( dataFocus, 1 ); + $.watermark._hide( $input, true ); + } + ).blur( + function () { + $input.data( dataFocus, 0 ); + $.watermark._show( $input ); + } + ).bind( "dragenter", + function () { + $.watermark._hide( $input ); + } + ).bind( "dragleave", + function () { + $.watermark._show( $input ); + } + ).bind( "dragend", + function () { + window.setTimeout( function () { $.watermark._show($input); }, 1 ); + } + ).bind( "drop", + // Firefox makes this lovely function necessary because the dropped text + // is merged with the watermark before the drop event is called. + function ( evt ) { + var elem = $input[ 0 ], + dropText = evt.originalEvent.dataTransfer.getData( "Text" ); + + if ( ( elem.value || "" ).replace( rreturn, "" ).replace( dropText, "" ) === $input.data( dataText ) ) { + elem.value = dropText; + } + + $input.focus(); + } + ); + } + + // In order to reliably clear all watermarks before form submission, + // we need to replace the form's submit function with our own + // function. Otherwise watermarks won't be cleared when the form + // is submitted programmatically. + if ( this.form ) { + var form = this.form, + $form = $( form ); + + if ( !$form.data( dataFormSubmit ) ) { + $form.submit( $.watermark.hideAll ); + + // form.submit exists for all browsers except Google Chrome + // (see "else" below for explanation) + if ( form.submit ) { + $form.data( dataFormSubmit, form.submit ); + + form.submit = ( function ( f, $f ) { + return function () { + var nativeSubmit = $f.data( dataFormSubmit ); + + $.watermark.hideAll(); + + if ( nativeSubmit.apply ) { + nativeSubmit.apply( f, Array.prototype.slice.call( arguments ) ); + } + else { + nativeSubmit(); + } + }; + })( form, $form ); + } + else { + $form.data( dataFormSubmit, 1 ); + + // This strangeness is due to the fact that Google Chrome's + // form.submit function is not visible to JavaScript (identifies + // as "undefined"). I had to invent a solution here because hours + // of Googling (ironically) for an answer did not turn up anything + // useful. Within my own form.submit function I delete the form's + // submit function, and then call the non-existent function -- + // which, in the world of Google Chrome, still exists. + form.submit = ( function ( f ) { + return function () { + $.watermark.hideAll(); + delete f.submit; + f.submit(); + }; + })( form ); + } + } + } + } + + $.watermark._show( $input ); + } + ); +}; + +// The code included within the following if structure is guaranteed to only run once, +// even if the watermark script file is included multiple times in the page. +if ( $.watermark.runOnce ) { + $.watermark.runOnce = false; + + $.extend( $.expr[ ":" ], { + + // Extends jQuery with a custom selector - ":data(...)" + // :data() Includes elements that have a specific name defined in the jQuery data + // collection. (Only the existence of the name is checked; the value is ignored.) + // A more sophisticated version of the :data() custom selector originally part of this plugin + // was removed for compatibility with jQuery UI. The original code can be found in the SVN + // source listing in the file, "jquery.data.js". + data: $.expr.createPseudo ? + $.expr.createPseudo( function( dataName ) { + return function( elem ) { + return !!$.data( elem, dataName ); + }; + }) : + // support: jQuery <1.8 + function( elem, i, match ) { + return !!$.data( elem, match[ 3 ] ); + }, + + // Extends jQuery with a custom selector - ":watermarkable" + // Includes elements that can be watermarked, including textareas and most input elements + // that accept text input. It uses a "negative" test (i.e., testing for input types that DON'T + // work) because the HTML spec states that you can basically use any type, and if it doesn't + // recognize the type it will default to type=text. So if we only looked for certain type attributes + // we would fail to recognize non-standard types, which are still valid and watermarkable. + watermarkable: function ( elem ) { + var type, + name = elem.nodeName; + + if ( name === "TEXTAREA" ) { + return true; + } + + if ( name !== "INPUT" ) { + return false; + } + + type = elem.getAttribute( "type" ); + + return ( ( !type ) || ( !rInvalidType.test( type ) ) ); + } + }); + + // Overloads the jQuery .val() function to return the underlying input value on + // watermarked input elements. When .val() is being used to set values, this + // function ensures watermarks are properly set/removed after the values are set. + // Uses self-executing function to override the default jQuery function. + ( function ( valOld ) { + + $.fn.val = function () { + var args = Array.prototype.slice.call( arguments ); + + // Best practice: return immediately if empty matched set + if ( !this.length ) { + return args.length? this : undefined; + } + + // If no args, then we're getting the value of the first element; + // else we're setting values for all elements in matched set + if ( !args.length ) { + + // If element is watermarked, get the underlying value; + // else use native jQuery .val() + if ( this.data( dataFlag ) ) { + var v = ( this[ 0 ].value || "" ).replace( rreturn, "" ); + return ( v === ( this.data( dataText ) || "" ) )? "" : v; + } + else { + return valOld.apply( this ); + } + } + else { + valOld.apply( this, args ); + $.watermark.show( this ); + return this; + } + }; + + })( $.fn.val ); + + // Hijack any functions found in the triggerFns list + if ( triggerFns.length ) { + + // Wait until DOM is ready before searching + $( function () { + var i, name, fn; + + for ( i = triggerFns.length - 1; i >= 0; i-- ) { + name = triggerFns[ i ]; + fn = window[ name ]; + + if ( typeof( fn ) === "function" ) { + window[ name ] = ( function ( origFn ) { + return function () { + $.watermark.hideAll(); + return origFn.apply( null, Array.prototype.slice.call( arguments ) ); + }; + })( fn ); + } + } + }); + } + + $( window ).bind( "beforeunload", function () { + if ( $.watermark.options.hideBeforeUnload ) { + $.watermark.hideAll(); + } + }); +} + +})( jQuery, window ); + +///#source 1 1 /ClientSource/Scripts/Core/jquery.dataTables.js +/** + * @summary DataTables + * @description Paginate, search and sort HTML tables + * @version 1.9.3 + * @file jquery.dataTables.js + * @author Allan Jardine (www.sprymedia.co.uk) + * @contact www.sprymedia.co.uk/contact + * + * @copyright Copyright 2008-2012 Allan Jardine, all rights reserved. + * + * This source file is free software, under either the GPL v2 license or a + * BSD style license, available at: + * http://datatables.net/license_gpl2 + * http://datatables.net/license_bsd + * + * This source file 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 license files for details. + * + * For details please refer to: http://www.datatables.net + */ + +/*jslint evil: true, undef: true, browser: true */ +/*globals $, jQuery,_fnExternApiFunc,_fnInitialise,_fnInitComplete,_fnLanguageCompat,_fnAddColumn,_fnColumnOptions,_fnAddData,_fnCreateTr,_fnGatherData,_fnBuildHead,_fnDrawHead,_fnDraw,_fnReDraw,_fnAjaxUpdate,_fnAjaxParameters,_fnAjaxUpdateDraw,_fnServerParams,_fnAddOptionsHtml,_fnFeatureHtmlTable,_fnScrollDraw,_fnAdjustColumnSizing,_fnFeatureHtmlFilter,_fnFilterComplete,_fnFilterCustom,_fnFilterColumn,_fnFilter,_fnBuildSearchArray,_fnBuildSearchRow,_fnFilterCreateSearch,_fnDataToSearch,_fnSort,_fnSortAttachListener,_fnSortingClasses,_fnFeatureHtmlPaginate,_fnPageChange,_fnFeatureHtmlInfo,_fnUpdateInfo,_fnFeatureHtmlLength,_fnFeatureHtmlProcessing,_fnProcessingDisplay,_fnVisibleToColumnIndex,_fnColumnIndexToVisible,_fnNodeToDataIndex,_fnVisbleColumns,_fnCalculateEnd,_fnConvertToWidth,_fnCalculateColumnWidths,_fnScrollingWidthAdjust,_fnGetWidestNode,_fnGetMaxLenString,_fnStringToCss,_fnDetectType,_fnSettingsFromNode,_fnGetDataMaster,_fnGetTrNodes,_fnGetTdNodes,_fnEscapeRegex,_fnDeleteIndex,_fnReOrderIndex,_fnColumnOrdering,_fnLog,_fnClearTable,_fnSaveState,_fnLoadState,_fnCreateCookie,_fnReadCookie,_fnDetectHeader,_fnGetUniqueThs,_fnScrollBarWidth,_fnApplyToChildren,_fnMap,_fnGetRowData,_fnGetCellData,_fnSetCellData,_fnGetObjectDataFn,_fnSetObjectDataFn,_fnApplyColumnDefs,_fnBindAction,_fnCallbackReg,_fnCallbackFire,_fnJsonString,_fnRender,_fnNodeToColumnIndex,_fnInfoMacros,_fnBrowserDetect,_fnGetColumns*/ + +(/** @lends */function($, window, document, undefined) { + /** + * DataTables is a plug-in for the jQuery Javascript library. It is a + * highly flexible tool, based upon the foundations of progressive + * enhancement, which will add advanced interaction controls to any + * HTML table. For a full list of features please refer to + * DataTables.net. + * + * Note that the DataTable object is not a global variable but is + * aliased to jQuery.fn.DataTable and jQuery.fn.dataTable through which + * it may be accessed. + * + * @class + * @param {object} [oInit={}] Configuration object for DataTables. Options + * are defined by {@link DataTable.defaults} + * @requires jQuery 1.3+ + * + * @example + * // Basic initialisation + * $(document).ready( function { + * $('#example').dataTable(); + * } ); + * + * @example + * // Initialisation with configuration options - in this case, disable + * // pagination and sorting. + * $(document).ready( function { + * $('#example').dataTable( { + * "bPaginate": false, + * "bSort": false + * } ); + * } ); + */ + var DataTable = function( oInit ) + { + + + /** + * Add a column to the list used for the table with default values + * @param {object} oSettings dataTables settings object + * @param {node} nTh The th element for this column + * @memberof DataTable#oApi + */ + function _fnAddColumn( oSettings, nTh ) + { + var oDefaults = DataTable.defaults.columns; + var iCol = oSettings.aoColumns.length; + var oCol = $.extend( {}, DataTable.models.oColumn, oDefaults, { + "sSortingClass": oSettings.oClasses.sSortable, + "sSortingClassJUI": oSettings.oClasses.sSortJUI, + "nTh": nTh ? nTh : document.createElement('th'), + "sTitle": oDefaults.sTitle ? oDefaults.sTitle : nTh ? nTh.innerHTML : '', + "aDataSort": oDefaults.aDataSort ? oDefaults.aDataSort : [iCol], + "mData": oDefaults.mData ? oDefaults.oDefaults : iCol + } ); + oSettings.aoColumns.push( oCol ); + + /* Add a column specific filter */ + if ( oSettings.aoPreSearchCols[ iCol ] === undefined || oSettings.aoPreSearchCols[ iCol ] === null ) + { + oSettings.aoPreSearchCols[ iCol ] = $.extend( {}, DataTable.models.oSearch ); + } + else + { + var oPre = oSettings.aoPreSearchCols[ iCol ]; + + /* Don't require that the user must specify bRegex, bSmart or bCaseInsensitive */ + if ( oPre.bRegex === undefined ) + { + oPre.bRegex = true; + } + + if ( oPre.bSmart === undefined ) + { + oPre.bSmart = true; + } + + if ( oPre.bCaseInsensitive === undefined ) + { + oPre.bCaseInsensitive = true; + } + } + + /* Use the column options function to initialise classes etc */ + _fnColumnOptions( oSettings, iCol, null ); + } + + + /** + * Apply options for a column + * @param {object} oSettings dataTables settings object + * @param {int} iCol column index to consider + * @param {object} oOptions object with sType, bVisible and bSearchable etc + * @memberof DataTable#oApi + */ + function _fnColumnOptions( oSettings, iCol, oOptions ) + { + var oCol = oSettings.aoColumns[ iCol ]; + + /* User specified column options */ + if ( oOptions !== undefined && oOptions !== null ) + { + /* Backwards compatibility for mDataProp */ + if ( oOptions.mDataProp && !oOptions.mData ) + { + oOptions.mData = oOptions.mDataProp; + } + + if ( oOptions.sType !== undefined ) + { + oCol.sType = oOptions.sType; + oCol._bAutoType = false; + } + + $.extend( oCol, oOptions ); + _fnMap( oCol, oOptions, "sWidth", "sWidthOrig" ); + + /* iDataSort to be applied (backwards compatibility), but aDataSort will take + * priority if defined + */ + if ( oOptions.iDataSort !== undefined ) + { + oCol.aDataSort = [ oOptions.iDataSort ]; + } + _fnMap( oCol, oOptions, "aDataSort" ); + } + + /* Cache the data get and set functions for speed */ + var mRender = oCol.mRender ? _fnGetObjectDataFn( oCol.mRender ) : null; + var mData = _fnGetObjectDataFn( oCol.mData ); + + oCol.fnGetData = function (oData, sSpecific) { + var innerData = mData( oData, sSpecific ); + + if ( oCol.mRender && (sSpecific && sSpecific !== '') ) + { + return mRender( innerData, sSpecific, oData ); + } + return innerData; + }; + oCol.fnSetData = _fnSetObjectDataFn( oCol.mData ); + + /* Feature sorting overrides column specific when off */ + if ( !oSettings.oFeatures.bSort ) + { + oCol.bSortable = false; + } + + /* Check that the class assignment is correct for sorting */ + if ( !oCol.bSortable || + ($.inArray('asc', oCol.asSorting) == -1 && $.inArray('desc', oCol.asSorting) == -1) ) + { + oCol.sSortingClass = oSettings.oClasses.sSortableNone; + oCol.sSortingClassJUI = ""; + } + else if ( oCol.bSortable || + ($.inArray('asc', oCol.asSorting) == -1 && $.inArray('desc', oCol.asSorting) == -1) ) + { + oCol.sSortingClass = oSettings.oClasses.sSortable; + oCol.sSortingClassJUI = oSettings.oClasses.sSortJUI; + } + else if ( $.inArray('asc', oCol.asSorting) != -1 && $.inArray('desc', oCol.asSorting) == -1 ) + { + oCol.sSortingClass = oSettings.oClasses.sSortableAsc; + oCol.sSortingClassJUI = oSettings.oClasses.sSortJUIAscAllowed; + } + else if ( $.inArray('asc', oCol.asSorting) == -1 && $.inArray('desc', oCol.asSorting) != -1 ) + { + oCol.sSortingClass = oSettings.oClasses.sSortableDesc; + oCol.sSortingClassJUI = oSettings.oClasses.sSortJUIDescAllowed; + } + } + + + /** + * Adjust the table column widths for new data. Note: you would probably want to + * do a redraw after calling this function! + * @param {object} oSettings dataTables settings object + * @memberof DataTable#oApi + */ + function _fnAdjustColumnSizing ( oSettings ) + { + /* Not interested in doing column width calculation if auto-width is disabled */ + if ( oSettings.oFeatures.bAutoWidth === false ) + { + return false; + } + + _fnCalculateColumnWidths( oSettings ); + for ( var i=0 , iLen=oSettings.aoColumns.length ; i
    ')[0]; + oSettings.nTable.parentNode.insertBefore( nHolding, oSettings.nTable ); + + /* + * All DataTables are wrapped in a div + */ + oSettings.nTableWrapper = $('
    ')[0]; + oSettings.nTableReinsertBefore = oSettings.nTable.nextSibling; + + /* Track where we want to insert the option */ + var nInsertNode = oSettings.nTableWrapper; + + /* Loop over the user set positioning and place the elements as needed */ + var aDom = oSettings.sDom.split(''); + var nTmp, iPushFeature, cOption, nNewNode, cNext, sAttr, j; + for ( var i=0 ; i
    ')[0]; + + /* Check to see if we should append an id and/or a class name to the container */ + cNext = aDom[i+1]; + if ( cNext == "'" || cNext == '"' ) + { + sAttr = ""; + j = 2; + while ( aDom[i+j] != cNext ) + { + sAttr += aDom[i+j]; + j++; + } + + /* Replace jQuery UI constants */ + if ( sAttr == "H" ) + { + sAttr = oSettings.oClasses.sJUIHeader; + } + else if ( sAttr == "F" ) + { + sAttr = oSettings.oClasses.sJUIFooter; + } + + /* The attribute can be in the format of "#id.class", "#id" or "class" This logic + * breaks the string into parts and applies them as needed + */ + if ( sAttr.indexOf('.') != -1 ) + { + var aSplit = sAttr.split('.'); + nNewNode.id = aSplit[0].substr(1, aSplit[0].length-1); + nNewNode.className = aSplit[1]; + } + else if ( sAttr.charAt(0) == "#" ) + { + nNewNode.id = sAttr.substr(1, sAttr.length-1); + } + else + { + nNewNode.className = sAttr; + } + + i += j; /* Move along the position array */ + } + + nInsertNode.appendChild( nNewNode ); + nInsertNode = nNewNode; + } + else if ( cOption == '>' ) + { + /* End container div */ + nInsertNode = nInsertNode.parentNode; + } + else if ( cOption == 'l' && oSettings.oFeatures.bPaginate && oSettings.oFeatures.bLengthChange ) + { + /* Length */ + nTmp = _fnFeatureHtmlLength( oSettings ); + iPushFeature = 1; + } + else if ( cOption == 'f' && oSettings.oFeatures.bFilter ) + { + /* Filter */ + nTmp = _fnFeatureHtmlFilter( oSettings ); + iPushFeature = 1; + } + else if ( cOption == 'r' && oSettings.oFeatures.bProcessing ) + { + /* pRocessing */ + nTmp = _fnFeatureHtmlProcessing( oSettings ); + iPushFeature = 1; + } + else if ( cOption == 't' ) + { + /* Table */ + nTmp = _fnFeatureHtmlTable( oSettings ); + iPushFeature = 1; + } + else if ( cOption == 'i' && oSettings.oFeatures.bInfo ) + { + /* Info */ + nTmp = _fnFeatureHtmlInfo( oSettings ); + iPushFeature = 1; + } + else if ( cOption == 'p' && oSettings.oFeatures.bPaginate ) + { + /* Pagination */ + nTmp = _fnFeatureHtmlPaginate( oSettings ); + iPushFeature = 1; + } + else if ( DataTable.ext.aoFeatures.length !== 0 ) + { + /* Plug-in features */ + var aoFeatures = DataTable.ext.aoFeatures; + for ( var k=0, kLen=aoFeatures.length ; k') : + sSearchStr==="" ? '' : sSearchStr+' '; + + var nFilter = document.createElement( 'div' ); + nFilter.className = oSettings.oClasses.sFilter; + nFilter.innerHTML = ''; + if ( !oSettings.aanFeatures.f ) + { + nFilter.id = oSettings.sTableId+'_filter'; + } + + var jqFilter = $('input[type="text"]', nFilter); + + // Store a reference to the input element, so other input elements could be + // added to the filter wrapper if needed (submit button for example) + nFilter._DT_Input = jqFilter[0]; + + jqFilter.val( oPreviousSearch.sSearch.replace('"','"') ); + jqFilter.bind( 'keyup.DT', function(e) { + /* Update all other filter input elements for the new display */ + var n = oSettings.aanFeatures.f; + var val = this.value==="" ? "" : this.value; // mental IE8 fix :-( + + for ( var i=0, iLen=n.length ; i=0 ; i-- ) + { + var sData = _fnDataToSearch( _fnGetCellData( oSettings, oSettings.aiDisplay[i], iColumn, 'filter' ), + oSettings.aoColumns[iColumn].sType ); + if ( ! rpSearch.test( sData ) ) + { + oSettings.aiDisplay.splice( i, 1 ); + iIndexCorrector++; + } + } + } + + + /** + * Filter the data table based on user input and draw the table + * @param {object} oSettings dataTables settings object + * @param {string} sInput string to filter on + * @param {int} iForce optional - force a research of the master array (1) or not (undefined or 0) + * @param {bool} bRegex treat as a regular expression or not + * @param {bool} bSmart perform smart filtering or not + * @param {bool} bCaseInsensitive Do case insenstive matching or not + * @memberof DataTable#oApi + */ + function _fnFilter( oSettings, sInput, iForce, bRegex, bSmart, bCaseInsensitive ) + { + var i; + var rpSearch = _fnFilterCreateSearch( sInput, bRegex, bSmart, bCaseInsensitive ); + var oPrevSearch = oSettings.oPreviousSearch; + + /* Check if we are forcing or not - optional parameter */ + if ( !iForce ) + { + iForce = 0; + } + + /* Need to take account of custom filtering functions - always filter */ + if ( DataTable.ext.afnFiltering.length !== 0 ) + { + iForce = 1; + } + + /* + * If the input is blank - we want the full data set + */ + if ( sInput.length <= 0 ) + { + oSettings.aiDisplay.splice( 0, oSettings.aiDisplay.length); + oSettings.aiDisplay = oSettings.aiDisplayMaster.slice(); + } + else + { + /* + * We are starting a new search or the new search string is smaller + * then the old one (i.e. delete). Search from the master array + */ + if ( oSettings.aiDisplay.length == oSettings.aiDisplayMaster.length || + oPrevSearch.sSearch.length > sInput.length || iForce == 1 || + sInput.indexOf(oPrevSearch.sSearch) !== 0 ) + { + /* Nuke the old display array - we are going to rebuild it */ + oSettings.aiDisplay.splice( 0, oSettings.aiDisplay.length); + + /* Force a rebuild of the search array */ + _fnBuildSearchArray( oSettings, 1 ); + + /* Search through all records to populate the search array + * The the oSettings.aiDisplayMaster and asDataSearch arrays have 1 to 1 + * mapping + */ + for ( i=0 ; i').html(sSearch).text(); + } + + // Strip newline characters + return sSearch.replace( /[\n\r]/g, " " ); + } + + /** + * Build a regular expression object suitable for searching a table + * @param {string} sSearch string to search for + * @param {bool} bRegex treat as a regular expression or not + * @param {bool} bSmart perform smart filtering or not + * @param {bool} bCaseInsensitive Do case insensitive matching or not + * @returns {RegExp} constructed object + * @memberof DataTable#oApi + */ + function _fnFilterCreateSearch( sSearch, bRegex, bSmart, bCaseInsensitive ) + { + var asSearch, sRegExpString; + + if ( bSmart ) + { + /* Generate the regular expression to use. Something along the lines of: + * ^(?=.*?\bone\b)(?=.*?\btwo\b)(?=.*?\bthree\b).*$ + */ + asSearch = bRegex ? sSearch.split( ' ' ) : _fnEscapeRegex( sSearch ).split( ' ' ); + sRegExpString = '^(?=.*?'+asSearch.join( ')(?=.*?' )+').*$'; + return new RegExp( sRegExpString, bCaseInsensitive ? "i" : "" ); + } + else + { + sSearch = bRegex ? sSearch : _fnEscapeRegex( sSearch ); + return new RegExp( sSearch, bCaseInsensitive ? "i" : "" ); + } + } + + + /** + * Convert raw data into something that the user can search on + * @param {string} sData data to be modified + * @param {string} sType data type + * @returns {string} search string + * @memberof DataTable#oApi + */ + function _fnDataToSearch ( sData, sType ) + { + if ( typeof DataTable.ext.ofnSearch[sType] === "function" ) + { + return DataTable.ext.ofnSearch[sType]( sData ); + } + else if ( sData === null ) + { + return ''; + } + else if ( sType == "html" ) + { + return sData.replace(/[\r\n]/g," ").replace( /<.*?>/g, "" ); + } + else if ( typeof sData === "string" ) + { + return sData.replace(/[\r\n]/g," "); + } + return sData; + } + + + /** + * scape a string such that it can be used in a regular expression + * @param {string} sVal string to escape + * @returns {string} escaped string + * @memberof DataTable#oApi + */ + function _fnEscapeRegex ( sVal ) + { + var acEscape = [ '/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\', '$', '^', '-' ]; + var reReplace = new RegExp( '(\\' + acEscape.join('|\\') + ')', 'g' ); + return sVal.replace(reReplace, '\\$1'); + } + + + + /** + * Generate the node required for the info display + * @param {object} oSettings dataTables settings object + * @returns {node} Information element + * @memberof DataTable#oApi + */ + function _fnFeatureHtmlInfo ( oSettings ) + { + var nInfo = document.createElement( 'div' ); + nInfo.className = oSettings.oClasses.sInfo; + + /* Actions that are to be taken once only for this feature */ + if ( !oSettings.aanFeatures.i ) + { + /* Add draw callback */ + oSettings.aoDrawCallback.push( { + "fn": _fnUpdateInfo, + "sName": "information" + } ); + + /* Add id */ + nInfo.id = oSettings.sTableId+'_info'; + } + oSettings.nTable.setAttribute( 'aria-describedby', oSettings.sTableId+'_info' ); + + return nInfo; + } + + + /** + * Update the information elements in the display + * @param {object} oSettings dataTables settings object + * @memberof DataTable#oApi + */ + function _fnUpdateInfo ( oSettings ) + { + /* Show information about the table */ + if ( !oSettings.oFeatures.bInfo || oSettings.aanFeatures.i.length === 0 ) + { + return; + } + + var + oLang = oSettings.oLanguage, + iStart = oSettings._iDisplayStart+1, + iEnd = oSettings.fnDisplayEnd(), + iMax = oSettings.fnRecordsTotal(), + iTotal = oSettings.fnRecordsDisplay(), + sOut; + + if ( iTotal === 0 && iTotal == iMax ) + { + /* Empty record set */ + sOut = oLang.sInfoEmpty; + } + else if ( iTotal === 0 ) + { + /* Empty record set after filtering */ + sOut = oLang.sInfoEmpty +' '+ oLang.sInfoFiltered; + } + else if ( iTotal == iMax ) + { + /* Normal record set */ + sOut = oLang.sInfo; + } + else + { + /* Record set after filtering */ + sOut = oLang.sInfo +' '+ oLang.sInfoFiltered; + } + + // Convert the macros + sOut += oLang.sInfoPostFix; + sOut = _fnInfoMacros( oSettings, sOut ); + + if ( oLang.fnInfoCallback !== null ) + { + sOut = oLang.fnInfoCallback.call( oSettings.oInstance, + oSettings, iStart, iEnd, iMax, iTotal, sOut ); + } + + var n = oSettings.aanFeatures.i; + for ( var i=0, iLen=n.length ; i'; + var i, iLen; + var aLengthMenu = oSettings.aLengthMenu; + + if ( aLengthMenu.length == 2 && typeof aLengthMenu[0] === 'object' && + typeof aLengthMenu[1] === 'object' ) + { + for ( i=0, iLen=aLengthMenu[0].length ; i'+aLengthMenu[1][i]+''; + } + } + else + { + for ( i=0, iLen=aLengthMenu.length ; i'+aLengthMenu[i]+''; + } + } + sStdMenu += ''; + + var nLength = document.createElement( 'div' ); + if ( !oSettings.aanFeatures.l ) + { + nLength.id = oSettings.sTableId+'_length'; + } + nLength.className = oSettings.oClasses.sLength; + nLength.innerHTML = ''; + + /* + * Set the length to the current display length - thanks to Andrea Pavlovic for this fix, + * and Stefan Skopnik for fixing the fix! + */ + $('select option[value="'+oSettings._iDisplayLength+'"]', nLength).attr("selected", true); + + $('select', nLength).bind( 'change.DT', function(e) { + var iVal = $(this).val(); + + /* Update all other length options for the new display */ + var n = oSettings.aanFeatures.l; + for ( i=0, iLen=n.length ; i oSettings.aiDisplay.length || + oSettings._iDisplayLength == -1 ) + { + oSettings._iDisplayEnd = oSettings.aiDisplay.length; + } + else + { + oSettings._iDisplayEnd = oSettings._iDisplayStart + oSettings._iDisplayLength; + } + } + } + + + + /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Note that most of the paging logic is done in + * DataTable.ext.oPagination + */ + + /** + * Generate the node required for default pagination + * @param {object} oSettings dataTables settings object + * @returns {node} Pagination feature node + * @memberof DataTable#oApi + */ + function _fnFeatureHtmlPaginate ( oSettings ) + { + if ( oSettings.oScroll.bInfinite ) + { + return null; + } + + var nPaginate = document.createElement( 'div' ); + nPaginate.className = oSettings.oClasses.sPaging+oSettings.sPaginationType; + + DataTable.ext.oPagination[ oSettings.sPaginationType ].fnInit( oSettings, nPaginate, + function( oSettings ) { + _fnCalculateEnd( oSettings ); + _fnDraw( oSettings ); + } + ); + + /* Add a draw callback for the pagination on first instance, to update the paging display */ + if ( !oSettings.aanFeatures.p ) + { + oSettings.aoDrawCallback.push( { + "fn": function( oSettings ) { + DataTable.ext.oPagination[ oSettings.sPaginationType ].fnUpdate( oSettings, function( oSettings ) { + _fnCalculateEnd( oSettings ); + _fnDraw( oSettings ); + } ); + }, + "sName": "pagination" + } ); + } + return nPaginate; + } + + + /** + * Alter the display settings to change the page + * @param {object} oSettings dataTables settings object + * @param {string|int} mAction Paging action to take: "first", "previous", "next" or "last" + * or page number to jump to (integer) + * @returns {bool} true page has changed, false - no change (no effect) eg 'first' on page 1 + * @memberof DataTable#oApi + */ + function _fnPageChange ( oSettings, mAction ) + { + var iOldStart = oSettings._iDisplayStart; + + if ( typeof mAction === "number" ) + { + oSettings._iDisplayStart = mAction * oSettings._iDisplayLength; + if ( oSettings._iDisplayStart > oSettings.fnRecordsDisplay() ) + { + oSettings._iDisplayStart = 0; + } + } + else if ( mAction == "first" ) + { + oSettings._iDisplayStart = 0; + } + else if ( mAction == "previous" ) + { + oSettings._iDisplayStart = oSettings._iDisplayLength>=0 ? + oSettings._iDisplayStart - oSettings._iDisplayLength : + 0; + + /* Correct for under-run */ + if ( oSettings._iDisplayStart < 0 ) + { + oSettings._iDisplayStart = 0; + } + } + else if ( mAction == "next" ) + { + if ( oSettings._iDisplayLength >= 0 ) + { + /* Make sure we are not over running the display array */ + if ( oSettings._iDisplayStart + oSettings._iDisplayLength < oSettings.fnRecordsDisplay() ) + { + oSettings._iDisplayStart += oSettings._iDisplayLength; + } + } + else + { + oSettings._iDisplayStart = 0; + } + } + else if ( mAction == "last" ) + { + if ( oSettings._iDisplayLength >= 0 ) + { + var iPages = parseInt( (oSettings.fnRecordsDisplay()-1) / oSettings._iDisplayLength, 10 ) + 1; + oSettings._iDisplayStart = (iPages-1) * oSettings._iDisplayLength; + } + else + { + oSettings._iDisplayStart = 0; + } + } + else + { + _fnLog( oSettings, 0, "Unknown paging action: "+mAction ); + } + $(oSettings.oInstance).trigger('page', oSettings); + + return iOldStart != oSettings._iDisplayStart; + } + + + + /** + * Generate the node required for the processing node + * @param {object} oSettings dataTables settings object + * @returns {node} Processing element + * @memberof DataTable#oApi + */ + function _fnFeatureHtmlProcessing ( oSettings ) + { + var nProcessing = document.createElement( 'div' ); + + if ( !oSettings.aanFeatures.r ) + { + nProcessing.id = oSettings.sTableId+'_processing'; + } + nProcessing.innerHTML = oSettings.oLanguage.sProcessing; + nProcessing.className = oSettings.oClasses.sProcessing; + oSettings.nTable.parentNode.insertBefore( nProcessing, oSettings.nTable ); + + return nProcessing; + } + + + /** + * Display or hide the processing indicator + * @param {object} oSettings dataTables settings object + * @param {bool} bShow Show the processing indicator (true) or not (false) + * @memberof DataTable#oApi + */ + function _fnProcessingDisplay ( oSettings, bShow ) + { + if ( oSettings.oFeatures.bProcessing ) + { + var an = oSettings.aanFeatures.r; + for ( var i=0, iLen=an.length ; i 0 ) + { + nCaption = nCaption[0]; + if ( nCaption._captionSide === "top" ) + { + nScrollHeadTable.appendChild( nCaption ); + } + else if ( nCaption._captionSide === "bottom" && nTfoot ) + { + nScrollFootTable.appendChild( nCaption ); + } + } + + /* + * Sizing + */ + /* When x-scrolling add the width and a scroller to move the header with the body */ + if ( oSettings.oScroll.sX !== "" ) + { + nScrollHead.style.width = _fnStringToCss( oSettings.oScroll.sX ); + nScrollBody.style.width = _fnStringToCss( oSettings.oScroll.sX ); + + if ( nTfoot !== null ) + { + nScrollFoot.style.width = _fnStringToCss( oSettings.oScroll.sX ); + } + + /* When the body is scrolled, then we also want to scroll the headers */ + $(nScrollBody).scroll( function (e) { + nScrollHead.scrollLeft = this.scrollLeft; + + if ( nTfoot !== null ) + { + nScrollFoot.scrollLeft = this.scrollLeft; + } + } ); + } + + /* When yscrolling, add the height */ + if ( oSettings.oScroll.sY !== "" ) + { + nScrollBody.style.height = _fnStringToCss( oSettings.oScroll.sY ); + } + + /* Redraw - align columns across the tables */ + oSettings.aoDrawCallback.push( { + "fn": _fnScrollDraw, + "sName": "scrolling" + } ); + + /* Infinite scrolling event handlers */ + if ( oSettings.oScroll.bInfinite ) + { + $(nScrollBody).scroll( function() { + /* Use a blocker to stop scrolling from loading more data while other data is still loading */ + if ( !oSettings.bDrawing && $(this).scrollTop() !== 0 ) + { + /* Check if we should load the next data set */ + if ( $(this).scrollTop() + $(this).height() > + $(oSettings.nTable).height() - oSettings.oScroll.iLoadGap ) + { + /* Only do the redraw if we have to - we might be at the end of the data */ + if ( oSettings.fnDisplayEnd() < oSettings.fnRecordsDisplay() ) + { + _fnPageChange( oSettings, 'next' ); + _fnCalculateEnd( oSettings ); + _fnDraw( oSettings ); + } + } + } + } ); + } + + oSettings.nScrollHead = nScrollHead; + oSettings.nScrollFoot = nScrollFoot; + + return nScroller; + } + + + /** + * Update the various tables for resizing. It's a bit of a pig this function, but + * basically the idea to: + * 1. Re-create the table inside the scrolling div + * 2. Take live measurements from the DOM + * 3. Apply the measurements + * 4. Clean up + * @param {object} o dataTables settings object + * @returns {node} Node to add to the DOM + * @memberof DataTable#oApi + */ + function _fnScrollDraw ( o ) + { + var + nScrollHeadInner = o.nScrollHead.getElementsByTagName('div')[0], + nScrollHeadTable = nScrollHeadInner.getElementsByTagName('table')[0], + nScrollBody = o.nTable.parentNode, + i, iLen, j, jLen, anHeadToSize, anHeadSizers, anFootSizers, anFootToSize, oStyle, iVis, + nTheadSize, nTfootSize, + iWidth, aApplied=[], iSanityWidth, + nScrollFootInner = (o.nTFoot !== null) ? o.nScrollFoot.getElementsByTagName('div')[0] : null, + nScrollFootTable = (o.nTFoot !== null) ? nScrollFootInner.getElementsByTagName('table')[0] : null, + ie67 = o.oBrowser.bScrollOversize; + + /* + * 1. Re-create the table inside the scrolling div + */ + + /* Remove the old minimised thead and tfoot elements in the inner table */ + $(o.nTable).children('thead, tfoot').remove(); + + /* Clone the current header and footer elements and then place it into the inner table */ + nTheadSize = $(o.nTHead).clone()[0]; + o.nTable.insertBefore( nTheadSize, o.nTable.childNodes[0] ); + + if ( o.nTFoot !== null ) + { + nTfootSize = $(o.nTFoot).clone()[0]; + o.nTable.insertBefore( nTfootSize, o.nTable.childNodes[1] ); + } + + /* + * 2. Take live measurements from the DOM - do not alter the DOM itself! + */ + + /* Remove old sizing and apply the calculated column widths + * Get the unique column headers in the newly created (cloned) header. We want to apply the + * calculated sizes to this header + */ + if ( o.oScroll.sX === "" ) + { + nScrollBody.style.width = '100%'; + nScrollHeadInner.parentNode.style.width = '100%'; + } + + var nThs = _fnGetUniqueThs( o, nTheadSize ); + for ( i=0, iLen=nThs.length ; i nScrollBody.offsetHeight || + $(nScrollBody).css('overflow-y') == "scroll") ) + { + o.nTable.style.width = _fnStringToCss( $(o.nTable).outerWidth() - o.oScroll.iBarWidth); + } + } + else + { + if ( o.oScroll.sXInner !== "" ) + { + /* x scroll inner has been given - use it */ + o.nTable.style.width = _fnStringToCss(o.oScroll.sXInner); + } + else if ( iSanityWidth == $(nScrollBody).width() && + $(nScrollBody).height() < $(o.nTable).height() ) + { + /* There is y-scrolling - try to take account of the y scroll bar */ + o.nTable.style.width = _fnStringToCss( iSanityWidth-o.oScroll.iBarWidth ); + if ( $(o.nTable).outerWidth() > iSanityWidth-o.oScroll.iBarWidth ) + { + /* Not possible to take account of it */ + o.nTable.style.width = _fnStringToCss( iSanityWidth ); + } + } + else + { + /* All else fails */ + o.nTable.style.width = _fnStringToCss( iSanityWidth ); + } + } + + /* Recalculate the sanity width - now that we've applied the required width, before it was + * a temporary variable. This is required because the column width calculation is done + * before this table DOM is created. + */ + iSanityWidth = $(o.nTable).outerWidth(); + + /* We want the hidden header to have zero height, so remove padding and borders. Then + * set the width based on the real headers + */ + anHeadToSize = o.nTHead.getElementsByTagName('tr'); + anHeadSizers = nTheadSize.getElementsByTagName('tr'); + + _fnApplyToChildren( function(nSizer, nToSize) { + oStyle = nSizer.style; + oStyle.paddingTop = "0"; + oStyle.paddingBottom = "0"; + oStyle.borderTopWidth = "0"; + oStyle.borderBottomWidth = "0"; + oStyle.height = 0; + + iWidth = $(nSizer).width(); + nToSize.style.width = _fnStringToCss( iWidth ); + aApplied.push( iWidth ); + }, anHeadSizers, anHeadToSize ); + $(anHeadSizers).height(0); + + if ( o.nTFoot !== null ) + { + /* Clone the current footer and then place it into the body table as a "hidden header" */ + anFootSizers = nTfootSize.getElementsByTagName('tr'); + anFootToSize = o.nTFoot.getElementsByTagName('tr'); + + _fnApplyToChildren( function(nSizer, nToSize) { + oStyle = nSizer.style; + oStyle.paddingTop = "0"; + oStyle.paddingBottom = "0"; + oStyle.borderTopWidth = "0"; + oStyle.borderBottomWidth = "0"; + oStyle.height = 0; + + iWidth = $(nSizer).width(); + nToSize.style.width = _fnStringToCss( iWidth ); + aApplied.push( iWidth ); + }, anFootSizers, anFootToSize ); + $(anFootSizers).height(0); + } + + /* + * 3. Apply the measurements + */ + + /* "Hide" the header and footer that we used for the sizing. We want to also fix their width + * to what they currently are + */ + _fnApplyToChildren( function(nSizer) { + nSizer.innerHTML = ""; + nSizer.style.width = _fnStringToCss( aApplied.shift() ); + }, anHeadSizers ); + + if ( o.nTFoot !== null ) + { + _fnApplyToChildren( function(nSizer) { + nSizer.innerHTML = ""; + nSizer.style.width = _fnStringToCss( aApplied.shift() ); + }, anFootSizers ); + } + + /* Sanity check that the table is of a sensible width. If not then we are going to get + * misalignment - try to prevent this by not allowing the table to shrink below its min width + */ + if ( $(o.nTable).outerWidth() < iSanityWidth ) + { + /* The min width depends upon if we have a vertical scrollbar visible or not */ + var iCorrection = ((nScrollBody.scrollHeight > nScrollBody.offsetHeight || + $(nScrollBody).css('overflow-y') == "scroll")) ? + iSanityWidth+o.oScroll.iBarWidth : iSanityWidth; + + /* IE6/7 are a law unto themselves... */ + if ( ie67 && (nScrollBody.scrollHeight > + nScrollBody.offsetHeight || $(nScrollBody).css('overflow-y') == "scroll") ) + { + o.nTable.style.width = _fnStringToCss( iCorrection-o.oScroll.iBarWidth ); + } + + /* Apply the calculated minimum width to the table wrappers */ + nScrollBody.style.width = _fnStringToCss( iCorrection ); + nScrollHeadInner.parentNode.style.width = _fnStringToCss( iCorrection ); + + if ( o.nTFoot !== null ) + { + nScrollFootInner.parentNode.style.width = _fnStringToCss( iCorrection ); + } + + /* And give the user a warning that we've stopped the table getting too small */ + if ( o.oScroll.sX === "" ) + { + _fnLog( o, 1, "The table cannot fit into the current element which will cause column"+ + " misalignment. The table has been drawn at its minimum possible width." ); + } + else if ( o.oScroll.sXInner !== "" ) + { + _fnLog( o, 1, "The table cannot fit into the current element which will cause column"+ + " misalignment. Increase the sScrollXInner value or remove it to allow automatic"+ + " calculation" ); + } + } + else + { + nScrollBody.style.width = _fnStringToCss( '100%' ); + nScrollHeadInner.parentNode.style.width = _fnStringToCss( '100%' ); + + if ( o.nTFoot !== null ) + { + nScrollFootInner.parentNode.style.width = _fnStringToCss( '100%' ); + } + } + + + /* + * 4. Clean up + */ + if ( o.oScroll.sY === "" ) + { + /* IE7< puts a vertical scrollbar in place (when it shouldn't be) due to subtracting + * the scrollbar height from the visible display, rather than adding it on. We need to + * set the height in order to sort this. Don't want to do it in any other browsers. + */ + if ( ie67 ) + { + nScrollBody.style.height = _fnStringToCss( o.nTable.offsetHeight+o.oScroll.iBarWidth ); + } + } + + if ( o.oScroll.sY !== "" && o.oScroll.bCollapse ) + { + nScrollBody.style.height = _fnStringToCss( o.oScroll.sY ); + + var iExtra = (o.oScroll.sX !== "" && o.nTable.offsetWidth > nScrollBody.offsetWidth) ? + o.oScroll.iBarWidth : 0; + if ( o.nTable.offsetHeight < nScrollBody.offsetHeight ) + { + nScrollBody.style.height = _fnStringToCss( o.nTable.offsetHeight+iExtra ); + } + } + + /* Finally set the width's of the header and footer tables */ + var iOuterWidth = $(o.nTable).outerWidth(); + nScrollHeadTable.style.width = _fnStringToCss( iOuterWidth ); + nScrollHeadInner.style.width = _fnStringToCss( iOuterWidth ); + + // Figure out if there are scrollbar present - if so then we need a the header and footer to + // provide a bit more space to allow "overflow" scrolling (i.e. past the scrollbar) + var bScrolling = $(o.nTable).height() > nScrollBody.clientHeight || $(nScrollBody).css('overflow-y') == "scroll"; + nScrollHeadInner.style.paddingRight = bScrolling ? o.oScroll.iBarWidth+"px" : "0px"; + + if ( o.nTFoot !== null ) + { + nScrollFootTable.style.width = _fnStringToCss( iOuterWidth ); + nScrollFootInner.style.width = _fnStringToCss( iOuterWidth ); + nScrollFootInner.style.paddingRight = bScrolling ? o.oScroll.iBarWidth+"px" : "0px"; + } + + /* Adjust the position of the header in case we loose the y-scrollbar */ + $(nScrollBody).scroll(); + + /* If sorting or filtering has occurred, jump the scrolling back to the top */ + if ( o.bSorted || o.bFiltered ) + { + nScrollBody.scrollTop = 0; + } + } + + + /** + * Apply a given function to the display child nodes of an element array (typically + * TD children of TR rows + * @param {function} fn Method to apply to the objects + * @param array {nodes} an1 List of elements to look through for display children + * @param array {nodes} an2 Another list (identical structure to the first) - optional + * @memberof DataTable#oApi + */ + function _fnApplyToChildren( fn, an1, an2 ) + { + for ( var i=0, iLen=an1.length ; itd', nCalcTmp); + } + + /* Apply custom sizing to the cloned header */ + var nThs = _fnGetUniqueThs( oSettings, nTheadClone ); + iCorrector = 0; + for ( i=0 ; i 0 ) + { + oSettings.aoColumns[i].sWidth = _fnStringToCss( iWidth ); + } + iCorrector++; + } + } + + var cssWidth = $(nCalcTmp).css('width'); + oSettings.nTable.style.width = (cssWidth.indexOf('%') !== -1) ? + cssWidth : _fnStringToCss( $(nCalcTmp).outerWidth() ); + nCalcTmp.parentNode.removeChild( nCalcTmp ); + } + + if ( widthAttr ) + { + oSettings.nTable.style.width = _fnStringToCss( widthAttr ); + } + } + + + /** + * Adjust a table's width to take account of scrolling + * @param {object} oSettings dataTables settings object + * @param {node} n table node + * @memberof DataTable#oApi + */ + function _fnScrollingWidthAdjust ( oSettings, n ) + { + if ( oSettings.oScroll.sX === "" && oSettings.oScroll.sY !== "" ) + { + /* When y-scrolling only, we want to remove the width of the scroll bar so the table + * + scroll bar will fit into the area avaialble. + */ + var iOrigWidth = $(n).width(); + n.style.width = _fnStringToCss( $(n).outerWidth()-oSettings.oScroll.iBarWidth ); + } + else if ( oSettings.oScroll.sX !== "" ) + { + /* When x-scrolling both ways, fix the table at it's current size, without adjusting */ + n.style.width = _fnStringToCss( $(n).outerWidth() ); + } + } + + + /** + * Get the widest node + * @param {object} oSettings dataTables settings object + * @param {int} iCol column of interest + * @returns {string} max string length for each column + * @memberof DataTable#oApi + */ + function _fnGetWidestNode( oSettings, iCol ) + { + var iMaxIndex = _fnGetMaxLenString( oSettings, iCol ); + if ( iMaxIndex < 0 ) + { + return null; + } + + if ( oSettings.aoData[iMaxIndex].nTr === null ) + { + var n = document.createElement('td'); + n.innerHTML = _fnGetCellData( oSettings, iMaxIndex, iCol, '' ); + return n; + } + return _fnGetTdNodes(oSettings, iMaxIndex)[iCol]; + } + + + /** + * Get the maximum strlen for each data column + * @param {object} oSettings dataTables settings object + * @param {int} iCol column of interest + * @returns {string} max string length for each column + * @memberof DataTable#oApi + */ + function _fnGetMaxLenString( oSettings, iCol ) + { + var iMax = -1; + var iMaxIndex = -1; + + for ( var i=0 ; i/g, "" ); + if ( s.length > iMax ) + { + iMax = s.length; + iMaxIndex = i; + } + } + + return iMaxIndex; + } + + + /** + * Append a CSS unit (only if required) to a string + * @param {array} aArray1 first array + * @param {array} aArray2 second array + * @returns {int} 0 if match, 1 if length is different, 2 if no match + * @memberof DataTable#oApi + */ + function _fnStringToCss( s ) + { + if ( s === null ) + { + return "0px"; + } + + if ( typeof s == 'number' ) + { + if ( s < 0 ) + { + return "0px"; + } + return s+"px"; + } + + /* Check if the last character is not 0-9 */ + var c = s.charCodeAt( s.length-1 ); + if (c < 0x30 || c > 0x39) + { + return s; + } + return s+"px"; + } + + + /** + * Get the width of a scroll bar in this browser being used + * @returns {int} width in pixels + * @memberof DataTable#oApi + */ + function _fnScrollBarWidth () + { + var inner = document.createElement('p'); + var style = inner.style; + style.width = "100%"; + style.height = "200px"; + style.padding = "0px"; + + var outer = document.createElement('div'); + style = outer.style; + style.position = "absolute"; + style.top = "0px"; + style.left = "0px"; + style.visibility = "hidden"; + style.width = "200px"; + style.height = "150px"; + style.padding = "0px"; + style.overflow = "hidden"; + outer.appendChild(inner); + + document.body.appendChild(outer); + var w1 = inner.offsetWidth; + outer.style.overflow = 'scroll'; + var w2 = inner.offsetWidth; + if ( w1 == w2 ) + { + w2 = outer.clientWidth; + } + + document.body.removeChild(outer); + return (w1 - w2); + } + + + + /** + * Change the order of the table + * @param {object} oSettings dataTables settings object + * @param {bool} bApplyClasses optional - should we apply classes or not + * @memberof DataTable#oApi + */ + function _fnSort ( oSettings, bApplyClasses ) + { + var + i, iLen, j, jLen, k, kLen, + sDataType, nTh, + aaSort = [], + aiOrig = [], + oSort = DataTable.ext.oSort, + aoData = oSettings.aoData, + aoColumns = oSettings.aoColumns, + oAria = oSettings.oLanguage.oAria; + + /* No sorting required if server-side or no sorting array */ + if ( !oSettings.oFeatures.bServerSide && + (oSettings.aaSorting.length !== 0 || oSettings.aaSortingFixed !== null) ) + { + aaSort = ( oSettings.aaSortingFixed !== null ) ? + oSettings.aaSortingFixed.concat( oSettings.aaSorting ) : + oSettings.aaSorting.slice(); + + /* If there is a sorting data type, and a function belonging to it, then we need to + * get the data from the developer's function and apply it for this column + */ + for ( i=0 ; i/g, "" ); + nTh = aoColumns[i].nTh; + nTh.removeAttribute('aria-sort'); + nTh.removeAttribute('aria-label'); + + /* In ARIA only the first sorting column can be marked as sorting - no multi-sort option */ + if ( aoColumns[i].bSortable ) + { + if ( aaSort.length > 0 && aaSort[0][0] == i ) + { + nTh.setAttribute('aria-sort', aaSort[0][1]=="asc" ? "ascending" : "descending" ); + + var nextSort = (aoColumns[i].asSorting[ aaSort[0][2]+1 ]) ? + aoColumns[i].asSorting[ aaSort[0][2]+1 ] : aoColumns[i].asSorting[0]; + nTh.setAttribute('aria-label', sTitle+ + (nextSort=="asc" ? oAria.sSortAscending : oAria.sSortDescending) ); + } + else + { + nTh.setAttribute('aria-label', sTitle+ + (aoColumns[i].asSorting[0]=="asc" ? oAria.sSortAscending : oAria.sSortDescending) ); + } + } + else + { + nTh.setAttribute('aria-label', sTitle); + } + } + + /* Tell the draw function that we have sorted the data */ + oSettings.bSorted = true; + $(oSettings.oInstance).trigger('sort', oSettings); + + /* Copy the master data into the draw array and re-draw */ + if ( oSettings.oFeatures.bFilter ) + { + /* _fnFilter() will redraw the table for us */ + _fnFilterComplete( oSettings, oSettings.oPreviousSearch, 1 ); + } + else + { + oSettings.aiDisplay = oSettings.aiDisplayMaster.slice(); + oSettings._iDisplayStart = 0; /* reset display back to page 0 */ + _fnCalculateEnd( oSettings ); + _fnDraw( oSettings ); + } + } + + + /** + * Attach a sort handler (click) to a node + * @param {object} oSettings dataTables settings object + * @param {node} nNode node to attach the handler to + * @param {int} iDataIndex column sorting index + * @param {function} [fnCallback] callback function + * @memberof DataTable#oApi + */ + function _fnSortAttachListener ( oSettings, nNode, iDataIndex, fnCallback ) + { + _fnBindAction( nNode, {}, function (e) { + /* If the column is not sortable - don't to anything */ + if ( oSettings.aoColumns[iDataIndex].bSortable === false ) + { + return; + } + + /* + * This is a little bit odd I admit... I declare a temporary function inside the scope of + * _fnBuildHead and the click handler in order that the code presented here can be used + * twice - once for when bProcessing is enabled, and another time for when it is + * disabled, as we need to perform slightly different actions. + * Basically the issue here is that the Javascript engine in modern browsers don't + * appear to allow the rendering engine to update the display while it is still executing + * it's thread (well - it does but only after long intervals). This means that the + * 'processing' display doesn't appear for a table sort. To break the js thread up a bit + * I force an execution break by using setTimeout - but this breaks the expected + * thread continuation for the end-developer's point of view (their code would execute + * too early), so we only do it when we absolutely have to. + */ + var fnInnerSorting = function () { + var iColumn, iNextSort; + + /* If the shift key is pressed then we are multiple column sorting */ + if ( e.shiftKey ) + { + /* Are we already doing some kind of sort on this column? */ + var bFound = false; + for ( var i=0 ; i= iColumns ) + { + for ( i=0 ; i 4096 ) /* Magic 10 for padding */ + { + var aCookies =document.cookie.split(';'); + for ( var i=0, iLen=aCookies.length ; i=0 ; i-- ) + { + aRet.push( aoStore[i].fn.apply( oSettings.oInstance, aArgs ) ); + } + + if ( sTrigger !== null ) + { + $(oSettings.oInstance).trigger(sTrigger, aArgs); + } + + return aRet; + } + + + /** + * JSON stringify. If JSON.stringify it provided by the browser, json2.js or any other + * library, then we use that as it is fast, safe and accurate. If the function isn't + * available then we need to built it ourselves - the inspiration for this function comes + * from Craig Buckler ( http://www.sitepoint.com/javascript-json-serialization/ ). It is + * not perfect and absolutely should not be used as a replacement to json2.js - but it does + * do what we need, without requiring a dependency for DataTables. + * @param {object} o JSON object to be converted + * @returns {string} JSON string + * @memberof DataTable#oApi + */ + var _fnJsonString = (window.JSON) ? JSON.stringify : function( o ) + { + /* Not an object or array */ + var sType = typeof o; + if (sType !== "object" || o === null) + { + // simple data type + if (sType === "string") + { + o = '"'+o+'"'; + } + return o+""; + } + + /* If object or array, need to recurse over it */ + var + sProp, mValue, + json = [], + bArr = $.isArray(o); + + for (sProp in o) + { + mValue = o[sProp]; + sType = typeof mValue; + + if (sType === "string") + { + mValue = '"'+mValue+'"'; + } + else if (sType === "object" && mValue !== null) + { + mValue = _fnJsonString(mValue); + } + + json.push((bArr ? "" : '"'+sProp+'":') + mValue); + } + + return (bArr ? "[" : "{") + json + (bArr ? "]" : "}"); + }; + + + /** + * From some browsers (specifically IE6/7) we need special handling to work around browser + * bugs - this function is used to detect when these workarounds are needed. + * @param {object} oSettings dataTables settings object + * @memberof DataTable#oApi + */ + function _fnBrowserDetect( oSettings ) + { + /* IE6/7 will oversize a width 100% element inside a scrolling element, to include the + * width of the scrollbar, while other browsers ensure the inner element is contained + * without forcing scrolling + */ + var n = $( + '
    '+ + '
    '+ + '
    '+ + '
    '+ + '
    ')[0]; + + document.body.appendChild( n ); + oSettings.oBrowser.bScrollOversize = $('#DT_BrowserTest', n)[0].offsetWidth === 100 ? true : false; + document.body.removeChild( n ); + } + + + + + /** + * Perform a jQuery selector action on the table's TR elements (from the tbody) and + * return the resulting jQuery object. + * @param {string|node|jQuery} sSelector jQuery selector or node collection to act on + * @param {object} [oOpts] Optional parameters for modifying the rows to be included + * @param {string} [oOpts.filter=none] Select TR elements that meet the current filter + * criterion ("applied") or all TR elements (i.e. no filter). + * @param {string} [oOpts.order=current] Order of the TR elements in the processed array. + * Can be either 'current', whereby the current sorting of the table is used, or + * 'original' whereby the original order the data was read into the table is used. + * @param {string} [oOpts.page=all] Limit the selection to the currently displayed page + * ("current") or not ("all"). If 'current' is given, then order is assumed to be + * 'current' and filter is 'applied', regardless of what they might be given as. + * @returns {object} jQuery object, filtered by the given selector. + * @dtopt API + * + * @example + * $(document).ready(function() { + * var oTable = $('#example').dataTable(); + * + * // Highlight every second row + * oTable.$('tr:odd').css('backgroundColor', 'blue'); + * } ); + * + * @example + * $(document).ready(function() { + * var oTable = $('#example').dataTable(); + * + * // Filter to rows with 'Webkit' in them, add a background colour and then + * // remove the filter, thus highlighting the 'Webkit' rows only. + * oTable.fnFilter('Webkit'); + * oTable.$('tr', {"filter": "applied"}).css('backgroundColor', 'blue'); + * oTable.fnFilter(''); + * } ); + */ + this.$ = function ( sSelector, oOpts ) + { + var i, iLen, a = [], tr; + var oSettings = _fnSettingsFromNode( this[DataTable.ext.iApiIndex] ); + var aoData = oSettings.aoData; + var aiDisplay = oSettings.aiDisplay; + var aiDisplayMaster = oSettings.aiDisplayMaster; + + if ( !oOpts ) + { + oOpts = {}; + } + + oOpts = $.extend( {}, { + "filter": "none", // applied + "order": "current", // "original" + "page": "all" // current + }, oOpts ); + + // Current page implies that order=current and fitler=applied, since it is fairly + // senseless otherwise + if ( oOpts.page == 'current' ) + { + for ( i=oSettings._iDisplayStart, iLen=oSettings.fnDisplayEnd() ; i + *
  • 1D array of data - add a single row with the data provided
  • + *
  • 2D array of arrays - add multiple rows in a single call
  • + *
  • object - data object when using mData
  • + *
  • array of objects - multiple data objects when using mData
  • + *
+ * @param {bool} [bRedraw=true] redraw the table or not + * @returns {array} An array of integers, representing the list of indexes in + * aoData ({@link DataTable.models.oSettings}) that have been added to + * the table. + * @dtopt API + * + * @example + * // Global var for counter + * var giCount = 2; + * + * $(document).ready(function() { + * $('#example').dataTable(); + * } ); + * + * function fnClickAddRow() { + * $('#example').dataTable().fnAddData( [ + * giCount+".1", + * giCount+".2", + * giCount+".3", + * giCount+".4" ] + * ); + * + * giCount++; + * } + */ + this.fnAddData = function( mData, bRedraw ) + { + if ( mData.length === 0 ) + { + return []; + } + + var aiReturn = []; + var iTest; + + /* Find settings from table node */ + var oSettings = _fnSettingsFromNode( this[DataTable.ext.iApiIndex] ); + + /* Check if we want to add multiple rows or not */ + if ( typeof mData[0] === "object" && mData[0] !== null ) + { + for ( var i=0 ; i= oSettings.fnRecordsDisplay() ) + { + oSettings._iDisplayStart -= oSettings._iDisplayLength; + if ( oSettings._iDisplayStart < 0 ) + { + oSettings._iDisplayStart = 0; + } + } + + if ( bRedraw === undefined || bRedraw ) + { + _fnCalculateEnd( oSettings ); + _fnDraw( oSettings ); + } + + return oData; + }; + + + /** + * Restore the table to it's original state in the DOM by removing all of DataTables + * enhancements, alterations to the DOM structure of the table and event listeners. + * @param {boolean} [bRemove=false] Completely remove the table from the DOM + * @dtopt API + * + * @example + * $(document).ready(function() { + * // This example is fairly pointless in reality, but shows how fnDestroy can be used + * var oTable = $('#example').dataTable(); + * oTable.fnDestroy(); + * } ); + */ + this.fnDestroy = function ( bRemove ) + { + var oSettings = _fnSettingsFromNode( this[DataTable.ext.iApiIndex] ); + var nOrig = oSettings.nTableWrapper.parentNode; + var nBody = oSettings.nTBody; + var i, iLen; + + bRemove = (bRemove===undefined) ? false : true; + + /* Flag to note that the table is currently being destroyed - no action should be taken */ + oSettings.bDestroying = true; + + /* Fire off the destroy callbacks for plug-ins etc */ + _fnCallbackFire( oSettings, "aoDestroyCallback", "destroy", [oSettings] ); + + /* Restore hidden columns */ + for ( i=0, iLen=oSettings.aoColumns.length ; itr>td.'+oSettings.oClasses.sRowEmpty, oSettings.nTable).parent().remove(); + + /* When scrolling we had to break the table up - restore it */ + if ( oSettings.nTable != oSettings.nTHead.parentNode ) + { + $(oSettings.nTable).children('thead').remove(); + oSettings.nTable.appendChild( oSettings.nTHead ); + } + + if ( oSettings.nTFoot && oSettings.nTable != oSettings.nTFoot.parentNode ) + { + $(oSettings.nTable).children('tfoot').remove(); + oSettings.nTable.appendChild( oSettings.nTFoot ); + } + + /* Remove the DataTables generated nodes, events and classes */ + oSettings.nTable.parentNode.removeChild( oSettings.nTable ); + $(oSettings.nTableWrapper).remove(); + + oSettings.aaSorting = []; + oSettings.aaSortingFixed = []; + _fnSortingClasses( oSettings ); + + $(_fnGetTrNodes( oSettings )).removeClass( oSettings.asStripeClasses.join(' ') ); + + $('th, td', oSettings.nTHead).removeClass( [ + oSettings.oClasses.sSortable, + oSettings.oClasses.sSortableAsc, + oSettings.oClasses.sSortableDesc, + oSettings.oClasses.sSortableNone ].join(' ') + ); + if ( oSettings.bJUI ) + { + $('th span.'+oSettings.oClasses.sSortIcon + + ', td span.'+oSettings.oClasses.sSortIcon, oSettings.nTHead).remove(); + + $('th, td', oSettings.nTHead).each( function () { + var jqWrapper = $('div.'+oSettings.oClasses.sSortJUIWrapper, this); + var kids = jqWrapper.contents(); + $(this).append( kids ); + jqWrapper.remove(); + } ); + } + + /* Add the TR elements back into the table in their original order */ + if ( !bRemove && oSettings.nTableReinsertBefore ) + { + nOrig.insertBefore( oSettings.nTable, oSettings.nTableReinsertBefore ); + } + else if ( !bRemove ) + { + nOrig.appendChild( oSettings.nTable ); + } + + for ( i=0, iLen=oSettings.aoData.length ; i
\r\n"); + + } + } +} +#pragma warning restore 1591 diff --git a/Disco.Web/Views/Device/_DeviceActions.cshtml b/Disco.Web/Views/Device/_DeviceActions.cshtml new file mode 100644 index 00000000..2839d063 --- /dev/null +++ b/Disco.Web/Views/Device/_DeviceActions.cshtml @@ -0,0 +1,124 @@ +@model Disco.Models.Repository.Device +
+ @if (Model.CanDecommission()) + { + @Html.ActionLinkButton("Decommission", MVC.API.Device.Decommission(Model.SerialNumber, true), "buttonDeviceDecommission") +
+

+ + Are you sure?

+
+ + } + @if (Model.CanRecommission()) + { + @Html.ActionLinkButton("Recommission", MVC.API.Device.Recommission(Model.SerialNumber, true), "buttonDeviceRecommission") +
+

+ + Are you sure?

+
+ + } + @if (Model.CanDelete()) + { + @Html.ActionLinkButton("Delete Device", MVC.API.Device.Delete(Model.SerialNumber, true), "buttonDeviceDelete") +
+

+ + This item will be permanently deleted and cannot be recovered.
+ Jobs linked to this Device (but not to a User) will be deleted also.
+ Are you sure?

+
+ + } + @if (Model.CanCreateJob()) + { + Html.BundleDeferred("~/ClientScripts/Modules/Disco-CreateJob"); + @Html.ActionLinkButton("Create Job", MVC.Job.Create(Model.SerialNumber, Model.AssignedUserId), "buttonCreateJob") + } +
\ No newline at end of file diff --git a/Disco.Web/Views/Device/_DeviceActions.generated.cs b/Disco.Web/Views/Device/_DeviceActions.generated.cs new file mode 100644 index 00000000..fddf4f8e --- /dev/null +++ b/Disco.Web/Views/Device/_DeviceActions.generated.cs @@ -0,0 +1,326 @@ +#pragma warning disable 1591 +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.17929 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Disco.Web.Views.Device +{ + using System; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Net; + using System.Text; + using System.Web; + using System.Web.Helpers; + using System.Web.Mvc; + using System.Web.Mvc.Ajax; + using System.Web.Mvc.Html; + using System.Web.Routing; + using System.Web.Security; + using System.Web.UI; + using System.Web.WebPages; + using Disco.BI.Extensions; + using Disco.Models.Repository; + using Disco.Web; + using Disco.Web.Extensions; + + [System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "1.5.0.0")] + [System.Web.WebPages.PageVirtualPathAttribute("~/Views/Device/_DeviceActions.cshtml")] + public class DeviceActions : System.Web.Mvc.WebViewPage + { + public DeviceActions() + { + } + public override void Execute() + { +WriteLiteral("\r\n"); + + + #line 3 "..\..\Views\Device\_DeviceActions.cshtml" + + + #line default + #line hidden + + #line 3 "..\..\Views\Device\_DeviceActions.cshtml" + if (Model.CanDecommission()) + { + + + #line default + #line hidden + + #line 5 "..\..\Views\Device\_DeviceActions.cshtml" + Write(Html.ActionLinkButton("Decommission", MVC.API.Device.Decommission(Model.SerialNumber, true), "buttonDeviceDecommission")); + + + #line default + #line hidden + + #line 5 "..\..\Views\Device\_DeviceActions.cshtml" + + + + #line default + #line hidden +WriteLiteral(" \r\n

\r\n \r\n Are you sure?

\r\n
\r\n"); + +WriteLiteral(" + $(function () { + var button = $('#buttonDeviceDecommission'); + var buttonDialog = $('#dialogConfirmDecommission'); + var buttonLink = button.attr('href'); + button.attr('href', '#'); + button.click(function () { + buttonDialog.dialog('open'); + return false; + }); + buttonDialog.dialog({ + resizable: false, + height: 140, + modal: true, + autoOpen: false, + buttons: { + ""Decommission"": function () { + var $this = $(this); + $this.dialog(""disable""); + $this.dialog(""option"", ""buttons"", null); + window.location.href = buttonLink; + }, + Cancel: function () { + $(this).dialog(""close""); + } + } + }); + }); + +"); + + + #line 40 "..\..\Views\Device\_DeviceActions.cshtml" + } + + + #line default + #line hidden +WriteLiteral(" "); + + + #line 41 "..\..\Views\Device\_DeviceActions.cshtml" + if (Model.CanRecommission()) + { + + + #line default + #line hidden + + #line 43 "..\..\Views\Device\_DeviceActions.cshtml" + Write(Html.ActionLinkButton("Recommission", MVC.API.Device.Recommission(Model.SerialNumber, true), "buttonDeviceRecommission")); + + + #line default + #line hidden + + #line 43 "..\..\Views\Device\_DeviceActions.cshtml" + + + + #line default + #line hidden +WriteLiteral(" \r\n

\r\n \r\n Are you sure?

\r\n
\r\n"); + +WriteLiteral(" + $(function () { + var button = $('#buttonDeviceRecommission'); + var buttonDialog = $('#dialogConfirmRecommission'); + var buttonLink = button.attr('href'); + button.attr('href', '#'); + button.click(function () { + buttonDialog.dialog('open'); + return false; + }); + buttonDialog.dialog({ + resizable: false, + height: 140, + modal: true, + autoOpen: false, + buttons: { + ""Recommission"": function () { + var $this = $(this); + $this.dialog(""disable""); + $this.dialog(""option"", ""buttons"", null); + window.location.href = buttonLink; + }, + Cancel: function () { + $(this).dialog(""close""); + } + } + }); + }); + +"); + + + #line 78 "..\..\Views\Device\_DeviceActions.cshtml" + } + + + #line default + #line hidden +WriteLiteral(" "); + + + #line 79 "..\..\Views\Device\_DeviceActions.cshtml" + if (Model.CanDelete()) + { + + + #line default + #line hidden + + #line 81 "..\..\Views\Device\_DeviceActions.cshtml" + Write(Html.ActionLinkButton("Delete Device", MVC.API.Device.Delete(Model.SerialNumber, true), "buttonDeviceDelete")); + + + #line default + #line hidden + + #line 81 "..\..\Views\Device\_DeviceActions.cshtml" + + + + #line default + #line hidden +WriteLiteral(" \r\n

\r\n \r\n This item will be permanently deleted and cannot be rec" + +"overed.
\r\n Jobs linked to this Device (but not to a User) wi" + +"ll be deleted also.
\r\n Are you sure?

\r\n
\r\n"); + +WriteLiteral(" + $(function () { + var button = $('#buttonDeviceDelete'); + var buttonDialog = $('#dialogConfirmDelete'); + var buttonLink = button.attr('href'); + button.attr('href', '#'); + button.click(function () { + buttonDialog.dialog('open'); + return false; + }); + buttonDialog.dialog({ + resizable: false, + height: 200, + modal: true, + autoOpen: false, + buttons: { + ""Delete"": function () { + var $this = $(this); + $this.dialog(""disable""); + $this.dialog(""option"", ""buttons"", null); + window.location.href = buttonLink; + }, + Cancel: function () { + $(this).dialog(""close""); + } + } + }); + }); + +"); + + + #line 118 "..\..\Views\Device\_DeviceActions.cshtml" + } + + + #line default + #line hidden +WriteLiteral(" "); + + + #line 119 "..\..\Views\Device\_DeviceActions.cshtml" + if (Model.CanCreateJob()) + { + Html.BundleDeferred("~/ClientScripts/Modules/Disco-CreateJob"); + + + #line default + #line hidden + + #line 122 "..\..\Views\Device\_DeviceActions.cshtml" + Write(Html.ActionLinkButton("Create Job", MVC.Job.Create(Model.SerialNumber, Model.AssignedUserId), "buttonCreateJob")); + + + #line default + #line hidden + + #line 122 "..\..\Views\Device\_DeviceActions.cshtml" + + } + + + #line default + #line hidden +WriteLiteral("
"); + + } + } +} +#pragma warning restore 1591 diff --git a/Disco.Web/Views/Device/_DeviceTable.cshtml b/Disco.Web/Views/Device/_DeviceTable.cshtml new file mode 100644 index 00000000..d4a96b04 --- /dev/null +++ b/Disco.Web/Views/Device/_DeviceTable.cshtml @@ -0,0 +1,89 @@ +@model IEnumerable +
+ @if (Model != null && Model.Count() > 0) + { + + + + + + + + + + + + + + @foreach (var item in Model) + { + + + + + + + + + + } + +
+ Serial# + + Asset# + + Name + + Model + + Profile + + Assigned User + + Jobs +
+ @Html.ActionLink(item.SerialNumber, MVC.Device.Show(item.SerialNumber)) + + @item.AssetNumber + @if (item.DecommissionedDate.HasValue) + { (Decommissioned + @CommonHelpers.FriendlyDate(item.DecommissionedDate.Value)) } + + @if (string.IsNullOrWhiteSpace(item.ComputerName)) + { + Unknown + } + else + { + @item.ComputerName + } + + @if (item.DeviceModelDescription != null) + { + @item.DeviceModelDescription + } + else + { + Unknown + } + + @item.DeviceProfileDescription + + @if (string.IsNullOrEmpty(item.AssignedUserId)) + { + N/A + } + else + { + @item.AssignedUserDescription + } + + @item.JobCount +
+ } + else + { + No Devices Found + } +
diff --git a/Disco.Web/Views/Device/_DeviceTable.generated.cs b/Disco.Web/Views/Device/_DeviceTable.generated.cs new file mode 100644 index 00000000..4f2968b0 --- /dev/null +++ b/Disco.Web/Views/Device/_DeviceTable.generated.cs @@ -0,0 +1,387 @@ +#pragma warning disable 1591 +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.17929 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Disco.Web.Views.Device +{ + using System; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Net; + using System.Text; + using System.Web; + using System.Web.Helpers; + using System.Web.Mvc; + using System.Web.Mvc.Ajax; + using System.Web.Mvc.Html; + using System.Web.Routing; + using System.Web.Security; + using System.Web.UI; + using System.Web.WebPages; + using Disco.BI.Extensions; + using Disco.Models.Repository; + using Disco.Web; + using Disco.Web.Extensions; + + [System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "1.5.0.0")] + [System.Web.WebPages.PageVirtualPathAttribute("~/Views/Device/_DeviceTable.cshtml")] + public class DeviceTable : System.Web.Mvc.WebViewPage> + { + public DeviceTable() + { + } + public override void Execute() + { +WriteLiteral("\r\n"); + + + #line 3 "..\..\Views\Device\_DeviceTable.cshtml" + + + #line default + #line hidden + + #line 3 "..\..\Views\Device\_DeviceTable.cshtml" + if (Model != null && Model.Count() > 0) + { + + + #line default + #line hidden +WriteLiteral(" + + + + Serial# + + + Asset# + + + Name + + + Model + + + Profile + + + Assigned User + + + Jobs + + + + +"); + + + #line 32 "..\..\Views\Device\_DeviceTable.cshtml" + + + #line default + #line hidden + + #line 32 "..\..\Views\Device\_DeviceTable.cshtml" + foreach (var item in Model) + { + + + #line default + #line hidden +WriteLiteral(" (item.DecommissionedDate.HasValue ? "decommissioned" : string.Empty + + #line default + #line hidden +, 1013), false) +); + +WriteLiteral(">\r\n \r\n"); + +WriteLiteral(" "); + + + #line 36 "..\..\Views\Device\_DeviceTable.cshtml" + Write(Html.ActionLink(item.SerialNumber, MVC.Device.Show(item.SerialNumber))); + + + #line default + #line hidden +WriteLiteral("\r\n \r\n \r\n"); + +WriteLiteral(" "); + + + #line 39 "..\..\Views\Device\_DeviceTable.cshtml" + Write(item.AssetNumber); + + + #line default + #line hidden +WriteLiteral("\r\n"); + + + #line 40 "..\..\Views\Device\_DeviceTable.cshtml" + + + #line default + #line hidden + + #line 40 "..\..\Views\Device\_DeviceTable.cshtml" + if (item.DecommissionedDate.HasValue) + { + + #line default + #line hidden +WriteLiteral(" (Decommissioned\r\n"); + +WriteLiteral(" "); + + + #line 42 "..\..\Views\Device\_DeviceTable.cshtml" + Write(CommonHelpers.FriendlyDate(item.DecommissionedDate.Value)); + + + #line default + #line hidden +WriteLiteral(") "); + + + #line 42 "..\..\Views\Device\_DeviceTable.cshtml" + } + + + #line default + #line hidden +WriteLiteral(" \r\n \r\n"); + + + #line 45 "..\..\Views\Device\_DeviceTable.cshtml" + + + #line default + #line hidden + + #line 45 "..\..\Views\Device\_DeviceTable.cshtml" + if (string.IsNullOrWhiteSpace(item.ComputerName)) + { + + + #line default + #line hidden +WriteLiteral(" Unknown\r\n"); + + + #line 48 "..\..\Views\Device\_DeviceTable.cshtml" + } + else + { + + + #line default + #line hidden + + #line 51 "..\..\Views\Device\_DeviceTable.cshtml" + Write(item.ComputerName); + + + #line default + #line hidden + + #line 51 "..\..\Views\Device\_DeviceTable.cshtml" + + } + + + #line default + #line hidden +WriteLiteral(" \r\n \r\n"); + + + #line 55 "..\..\Views\Device\_DeviceTable.cshtml" + + + #line default + #line hidden + + #line 55 "..\..\Views\Device\_DeviceTable.cshtml" + if (item.DeviceModelDescription != null) + { + + + #line default + #line hidden +WriteLiteral(" "); + + + #line 57 "..\..\Views\Device\_DeviceTable.cshtml" + Write(item.DeviceModelDescription); + + + #line default + #line hidden +WriteLiteral("\r\n"); + + + #line 58 "..\..\Views\Device\_DeviceTable.cshtml" + } + else + { + + + #line default + #line hidden +WriteLiteral(" Unknown \r\n"); + + + #line 62 "..\..\Views\Device\_DeviceTable.cshtml" + } + + + #line default + #line hidden +WriteLiteral(" \r\n \r\n"); + +WriteLiteral(" "); + + + #line 65 "..\..\Views\Device\_DeviceTable.cshtml" + Write(item.DeviceProfileDescription); + + + #line default + #line hidden +WriteLiteral("\r\n \r\n \r\n"); + + + #line 68 "..\..\Views\Device\_DeviceTable.cshtml" + + + #line default + #line hidden + + #line 68 "..\..\Views\Device\_DeviceTable.cshtml" + if (string.IsNullOrEmpty(item.AssignedUserId)) + { + + + #line default + #line hidden +WriteLiteral(" N/A \r\n"); + + + #line 71 "..\..\Views\Device\_DeviceTable.cshtml" + } + else + { + + + #line default + #line hidden +WriteLiteral(" "); + + + #line 74 "..\..\Views\Device\_DeviceTable.cshtml" + Write(item.AssignedUserDescription); + + + #line default + #line hidden +WriteLiteral("\r\n"); + + + #line 75 "..\..\Views\Device\_DeviceTable.cshtml" + } + + + #line default + #line hidden +WriteLiteral(" \r\n \r\n"); + +WriteLiteral(" "); + + + #line 78 "..\..\Views\Device\_DeviceTable.cshtml" + Write(item.JobCount); + + + #line default + #line hidden +WriteLiteral("\r\n \r\n \r\n"); + + + #line 81 "..\..\Views\Device\_DeviceTable.cshtml" + } + + + #line default + #line hidden +WriteLiteral(" \r\n \r\n"); + + + #line 84 "..\..\Views\Device\_DeviceTable.cshtml" + } + else + { + + + #line default + #line hidden +WriteLiteral(" No Devices Found\r\n"); + + + #line 88 "..\..\Views\Device\_DeviceTable.cshtml" + } + + + #line default + #line hidden +WriteLiteral("\r\n"); + + } + } +} +#pragma warning restore 1591 diff --git a/Disco.Web/Views/Device/_DeviceUserAssignmentHistoryTable.cshtml b/Disco.Web/Views/Device/_DeviceUserAssignmentHistoryTable.cshtml new file mode 100644 index 00000000..081843ac --- /dev/null +++ b/Disco.Web/Views/Device/_DeviceUserAssignmentHistoryTable.cshtml @@ -0,0 +1,35 @@ +@model Disco.Models.Repository.Device +@if (Model.DeviceUserAssignments.Count > 0) +{ + + + + + + + @foreach (var dua in Model.DeviceUserAssignments.OrderByDescending(m => m.AssignedDate)) + { + + + + + + } +
+ User + + Assigned + + Unassigned +
+ @Html.ActionLink(dua.AssignedUser.ToString(), MVC.User.Show(dua.AssignedUserId)) + + @CommonHelpers.FriendlyDate(dua.AssignedDate) + + @CommonHelpers.FriendlyDate(dua.UnassignedDate, "Current") +
+} +else +{ + No Assignment History Available +} diff --git a/Disco.Web/Views/Device/_DeviceUserAssignmentHistoryTable.generated.cs b/Disco.Web/Views/Device/_DeviceUserAssignmentHistoryTable.generated.cs new file mode 100644 index 00000000..56033157 --- /dev/null +++ b/Disco.Web/Views/Device/_DeviceUserAssignmentHistoryTable.generated.cs @@ -0,0 +1,142 @@ +#pragma warning disable 1591 +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.17929 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Disco.Web.Views.Device +{ + using System; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Net; + using System.Text; + using System.Web; + using System.Web.Helpers; + using System.Web.Mvc; + using System.Web.Mvc.Ajax; + using System.Web.Mvc.Html; + using System.Web.Routing; + using System.Web.Security; + using System.Web.UI; + using System.Web.WebPages; + using Disco.BI.Extensions; + using Disco.Models.Repository; + using Disco.Web; + using Disco.Web.Extensions; + + [System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "1.5.0.0")] + [System.Web.WebPages.PageVirtualPathAttribute("~/Views/Device/_DeviceUserAssignmentHistoryTable.cshtml")] + public class DeviceUserAssignmentHistoryTable : System.Web.Mvc.WebViewPage + { + public DeviceUserAssignmentHistoryTable() + { + } + public override void Execute() + { + + #line 2 "..\..\Views\Device\_DeviceUserAssignmentHistoryTable.cshtml" + if (Model.DeviceUserAssignments.Count > 0) +{ + + + #line default + #line hidden +WriteLiteral(" \r\n \r\n \r\n User\r\n \r\n " + +" \r\n Assigned\r\n \r\n \r\n " + +" Unassigned\r\n \r\n \r\n"); + + + #line 16 "..\..\Views\Device\_DeviceUserAssignmentHistoryTable.cshtml" + + + #line default + #line hidden + + #line 16 "..\..\Views\Device\_DeviceUserAssignmentHistoryTable.cshtml" + foreach (var dua in Model.DeviceUserAssignments.OrderByDescending(m => m.AssignedDate)) + { + + + #line default + #line hidden +WriteLiteral(" \r\n \r\n"); + +WriteLiteral(" "); + + + #line 20 "..\..\Views\Device\_DeviceUserAssignmentHistoryTable.cshtml" + Write(Html.ActionLink(dua.AssignedUser.ToString(), MVC.User.Show(dua.AssignedUserId))); + + + #line default + #line hidden +WriteLiteral("\r\n \r\n \r\n"); + +WriteLiteral(" "); + + + #line 23 "..\..\Views\Device\_DeviceUserAssignmentHistoryTable.cshtml" + Write(CommonHelpers.FriendlyDate(dua.AssignedDate)); + + + #line default + #line hidden +WriteLiteral("\r\n \r\n \r\n"); + +WriteLiteral(" "); + + + #line 26 "..\..\Views\Device\_DeviceUserAssignmentHistoryTable.cshtml" + Write(CommonHelpers.FriendlyDate(dua.UnassignedDate, "Current")); + + + #line default + #line hidden +WriteLiteral("\r\n \r\n \r\n"); + + + #line 29 "..\..\Views\Device\_DeviceUserAssignmentHistoryTable.cshtml" + } + + + #line default + #line hidden +WriteLiteral(" \r\n"); + + + #line 31 "..\..\Views\Device\_DeviceUserAssignmentHistoryTable.cshtml" +} +else +{ + + + #line default + #line hidden +WriteLiteral(" No Assignment History Available\r\n"); + + + #line 35 "..\..\Views\Device\_DeviceUserAssignmentHistoryTable.cshtml" +} + + + #line default + #line hidden + } + } +} +#pragma warning restore 1591 diff --git a/Disco.Web/Views/Device/_ViewStart.cshtml b/Disco.Web/Views/Device/_ViewStart.cshtml new file mode 100644 index 00000000..181e92b8 --- /dev/null +++ b/Disco.Web/Views/Device/_ViewStart.cshtml @@ -0,0 +1,3 @@ +@{ + Html.BundleDeferred("~/Style/Device"); +} \ No newline at end of file diff --git a/Disco.Web/Views/Device/_ViewStart.generated.cs b/Disco.Web/Views/Device/_ViewStart.generated.cs new file mode 100644 index 00000000..2b282bee --- /dev/null +++ b/Disco.Web/Views/Device/_ViewStart.generated.cs @@ -0,0 +1,54 @@ +#pragma warning disable 1591 +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.17929 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Disco.Web.Views.Device +{ + using System; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Net; + using System.Text; + using System.Web; + using System.Web.Helpers; + using System.Web.Mvc; + using System.Web.Mvc.Ajax; + using System.Web.Mvc.Html; + using System.Web.Routing; + using System.Web.Security; + using System.Web.UI; + using System.Web.WebPages; + using Disco.BI.Extensions; + using Disco.Models.Repository; + using Disco.Web; + using Disco.Web.Extensions; + + [System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "1.5.0.0")] + [System.Web.WebPages.PageVirtualPathAttribute("~/Views/Device/_ViewStart.cshtml")] + public class ViewStart : System.Web.Mvc.ViewStartPage + { + public ViewStart() + { + } + public override void Execute() + { + + #line 1 "..\..\Views\Device\_ViewStart.cshtml" + + Html.BundleDeferred("~/Style/Device"); + + + #line default + #line hidden + } + } +} +#pragma warning restore 1591 diff --git a/Disco.Web/Views/InitialConfig/Complete.cshtml b/Disco.Web/Views/InitialConfig/Complete.cshtml new file mode 100644 index 00000000..305237c4 --- /dev/null +++ b/Disco.Web/Views/InitialConfig/Complete.cshtml @@ -0,0 +1,200 @@ +@model Disco.Web.Models.InitialConfig.CompleteModel +@{ + ViewBag.Title = null; +} +

@CommonHelpers.Breadcrumbs(Html.ToBreadcrumb("Initial Configuration", MVC.InitialConfig.Index(), "Complete"))

+
+
+

Verification Results

+ + + + + + + + + + + + + + + + +
+

Database

+
+ @{ + if (Model.RegistryDatabaseResult == null) + { + The database connection string was correctly configured and saved. + } + else + { + There was an error saving the database connection string configuration. +
+
+ @{var ex = Model.RegistryDatabaseResult; + do + { +
+

[@ex.GetType().Name]

+
+ @ex.Message +
+
+ if (ex.InnerException == null) { break; } + else { ex = ex.InnerException; } + } while (true); + } +
+ } + } +
+
+

Disco DNS Entry

+
+ @{ + if (Model.DiscoDnsTestResult.Item1 != null) + { + +
The following 'disco' DNS entry was found:
+
+ @Model.DiscoDnsTestResult.Item1.HostName + @{ + if (Model.DiscoDnsTestResult.Item1.Aliases.Length > 0) + { +
+ Aliases: +
    + @foreach (var a in Model.DiscoDnsTestResult.Item1.Aliases) + { +
  • @a
  • + } +
+
+ } + if (Model.DiscoDnsTestResult.Item1.AddressList.Length > 0) + { +
+ IP Addresses: +
    + @foreach (var a in Model.DiscoDnsTestResult.Item1.AddressList) + { +
  • @a.ToString()
  • + } +
+
+ } + } +
+ } + else + { + There was an error determining a DNS entry for Disco. +
+
+ @{var ex = Model.DiscoDnsTestResult.Item2; + do + { +
+

[@ex.GetType().Name]

+
+ @ex.Message +
+
+ if (ex.InnerException == null) { break; } + else { ex = ex.InnerException; } + } while (true); + } +
+ } + } +
+
+

Connectivity to http://discoict.com.au

+
+ @{ + if (Model.DiscoIctComAuWebResult == null) + { + A connection was successfully established to http://discoict.com.au. + } + else + { + There was an error establishing a connection to http://discoict.com.au. This may be caused by missing proxy settings - after starting Disco check these settings in the 'System' configuration area. +
+
+ @{var ex = Model.DiscoIctComAuWebResult; + do + { +
+

[@ex.GetType().Name]

+
+ @ex.Message +
+
+ if (ex.InnerException == null) { break; } + else { ex = ex.InnerException; } + } while (true); + } +
+ } + } +
+
+

Unblock ICMP (Ping) for the Disco server

+
+ The Disco Client Bootstrapper requires the Disco server to respond to ICMP Echo requests (Ping) to function correctly. Please insure any firewall rules are updated accordingly. +
+
+

Configure a regularly scheduled Backup

+
+ Please ensure both the SQL Database and File Store are backed up regularly. +
+
+
+
+ @{ + if (Model.LaunchAllowed) + { + Start Disco + } + else + { + Try Again + } + } +
+
+
+

Re-running Verification Tests

+
Please wait while the verification tests are performed.
+
+ diff --git a/Disco.Web/Views/InitialConfig/Complete.generated.cs b/Disco.Web/Views/InitialConfig/Complete.generated.cs new file mode 100644 index 00000000..2fbe38a5 --- /dev/null +++ b/Disco.Web/Views/InitialConfig/Complete.generated.cs @@ -0,0 +1,726 @@ +#pragma warning disable 1591 +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.17929 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Disco.Web.Views.InitialConfig +{ + using System; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Net; + using System.Text; + using System.Web; + using System.Web.Helpers; + using System.Web.Mvc; + using System.Web.Mvc.Ajax; + using System.Web.Mvc.Html; + using System.Web.Routing; + using System.Web.Security; + using System.Web.UI; + using System.Web.WebPages; + using Disco.BI.Extensions; + using Disco.Models.Repository; + using Disco.Web; + using Disco.Web.Extensions; + + [System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "1.5.0.0")] + [System.Web.WebPages.PageVirtualPathAttribute("~/Views/InitialConfig/Complete.cshtml")] + public class Complete : System.Web.Mvc.WebViewPage + { + public Complete() + { + } + public override void Execute() + { + + #line 2 "..\..\Views\InitialConfig\Complete.cshtml" + + ViewBag.Title = null; + + + #line default + #line hidden +WriteLiteral("\r\n

"); + + + #line 5 "..\..\Views\InitialConfig\Complete.cshtml" +Write(CommonHelpers.Breadcrumbs(Html.ToBreadcrumb("Initial Configuration", MVC.InitialConfig.Index(), "Complete"))); + + + #line default + #line hidden +WriteLiteral("

\r\n\r\n \r\n

Verification Results

\r\n \r\n \r\n " + +" \r\n \r\n " + +" \r\n \r\n \r\n " + +" \r\n \r\n \r\n " + +" \r\n + + + \r\n " + +" \r\n
\r\n

(Model.RegistryDatabaseResult == null ? "success" : "error" + + #line default + #line hidden +, 425), false) +); + +WriteLiteral(">Database

\r\n \r\n"); + + + #line 14 "..\..\Views\InitialConfig\Complete.cshtml" + + + #line default + #line hidden + + #line 14 "..\..\Views\InitialConfig\Complete.cshtml" + + if (Model.RegistryDatabaseResult == null) + { + + + #line default + #line hidden +WriteLiteral(" "); + +WriteLiteral("The database connection string was correctly configured and saved."); + +WriteLiteral("\r\n"); + + + #line 18 "..\..\Views\InitialConfig\Complete.cshtml" + } + else + { + + + #line default + #line hidden +WriteLiteral(" "); + +WriteLiteral("There was an error saving the database connection string configuration."); + +WriteLiteral("\r\n"); + +WriteLiteral("
\r\n"); + +WriteLiteral(" \r\n"); + + + #line 24 "..\..\Views\InitialConfig\Complete.cshtml" + + + #line default + #line hidden + + #line 24 "..\..\Views\InitialConfig\Complete.cshtml" + var ex = Model.RegistryDatabaseResult; + do + { + + + #line default + #line hidden +WriteLiteral("
\r\n " + +"

["); + + + #line 28 "..\..\Views\InitialConfig\Complete.cshtml" + Write(ex.GetType().Name); + + + #line default + #line hidden +WriteLiteral("]

\r\n \r\n"); + +WriteLiteral(" "); + + + #line 30 "..\..\Views\InitialConfig\Complete.cshtml" + Write(ex.Message); + + + #line default + #line hidden +WriteLiteral("\r\n
\r\n " + +" \r\n"); + + + #line 33 "..\..\Views\InitialConfig\Complete.cshtml" + if (ex.InnerException == null) { break; } + else { ex = ex.InnerException; } + } while (true); + + + #line default + #line hidden +WriteLiteral("\r\n \r\n"); + + + #line 38 "..\..\Views\InitialConfig\Complete.cshtml" + } + + + #line default + #line hidden +WriteLiteral("\r\n \r\n
\r\n

(Model.DiscoDnsTestResult.Item2 == null ? "success" : "warning" + + #line default + #line hidden +, 2053), false) +); + +WriteLiteral(">Disco DNS Entry

\r\n \r\n"); + + + #line 47 "..\..\Views\InitialConfig\Complete.cshtml" + + + #line default + #line hidden + + #line 47 "..\..\Views\InitialConfig\Complete.cshtml" + + if (Model.DiscoDnsTestResult.Item1 != null) + { + + + + #line default + #line hidden +WriteLiteral("
The following \'disco\' DNS entry was found:
" + +"\r\n"); + +WriteLiteral(" \r\n "); + + + #line 53 "..\..\Views\InitialConfig\Complete.cshtml" + Write(Model.DiscoDnsTestResult.Item1.HostName); + + + #line default + #line hidden +WriteLiteral("\r\n"); + + + #line 54 "..\..\Views\InitialConfig\Complete.cshtml" + + + #line default + #line hidden + + #line 54 "..\..\Views\InitialConfig\Complete.cshtml" + + if (Model.DiscoDnsTestResult.Item1.Aliases.Length > 0) + { + + + #line default + #line hidden +WriteLiteral("
\r\n " + +" Aliases:\r\n
    \r\n"); + + + #line 60 "..\..\Views\InitialConfig\Complete.cshtml" + + + #line default + #line hidden + + #line 60 "..\..\Views\InitialConfig\Complete.cshtml" + foreach (var a in Model.DiscoDnsTestResult.Item1.Aliases) + { + + + #line default + #line hidden +WriteLiteral("
  • "); + + + #line 62 "..\..\Views\InitialConfig\Complete.cshtml" + Write(a); + + + #line default + #line hidden +WriteLiteral("
  • \r\n"); + + + #line 63 "..\..\Views\InitialConfig\Complete.cshtml" + } + + + #line default + #line hidden +WriteLiteral("
\r\n
\r\n"); + + + #line 66 "..\..\Views\InitialConfig\Complete.cshtml" + } + if (Model.DiscoDnsTestResult.Item1.AddressList.Length > 0) + { + + + #line default + #line hidden +WriteLiteral("
\r\n " + +" IP Addresses:\r\n
    \r\n"); + + + #line 72 "..\..\Views\InitialConfig\Complete.cshtml" + + + #line default + #line hidden + + #line 72 "..\..\Views\InitialConfig\Complete.cshtml" + foreach (var a in Model.DiscoDnsTestResult.Item1.AddressList) + { + + + #line default + #line hidden +WriteLiteral("
  • "); + + + #line 74 "..\..\Views\InitialConfig\Complete.cshtml" + Write(a.ToString()); + + + #line default + #line hidden +WriteLiteral("
  • \r\n"); + + + #line 75 "..\..\Views\InitialConfig\Complete.cshtml" + } + + + #line default + #line hidden +WriteLiteral("
\r\n
\r\n"); + + + #line 78 "..\..\Views\InitialConfig\Complete.cshtml" + } + + + #line default + #line hidden +WriteLiteral("\r\n \r\n"); + + + #line 81 "..\..\Views\InitialConfig\Complete.cshtml" + } + else + { + + + #line default + #line hidden +WriteLiteral(" "); + +WriteLiteral("There was an error determining a DNS entry for Disco."); + +WriteLiteral("\r\n"); + +WriteLiteral("
\r\n"); + +WriteLiteral(" \r\n"); + + + #line 87 "..\..\Views\InitialConfig\Complete.cshtml" + + + #line default + #line hidden + + #line 87 "..\..\Views\InitialConfig\Complete.cshtml" + var ex = Model.DiscoDnsTestResult.Item2; + do + { + + + #line default + #line hidden +WriteLiteral("
\r\n " + +"

["); + + + #line 91 "..\..\Views\InitialConfig\Complete.cshtml" + Write(ex.GetType().Name); + + + #line default + #line hidden +WriteLiteral("]

\r\n \r\n"); + +WriteLiteral(" "); + + + #line 93 "..\..\Views\InitialConfig\Complete.cshtml" + Write(ex.Message); + + + #line default + #line hidden +WriteLiteral("\r\n
\r\n " + +" \r\n"); + + + #line 96 "..\..\Views\InitialConfig\Complete.cshtml" + if (ex.InnerException == null) { break; } + else { ex = ex.InnerException; } + } while (true); + + + #line default + #line hidden +WriteLiteral("\r\n \r\n"); + + + #line 101 "..\..\Views\InitialConfig\Complete.cshtml" + } + + + #line default + #line hidden +WriteLiteral("\r\n \r\n
\r\n

(Model.DiscoIctComAuWebResult == null ? "success" : "warning" + + #line default + #line hidden +, 4958), false) +); + +WriteLiteral(">Connectivity to http://discoict.com.au

\r\n \r\n"); + + + #line 110 "..\..\Views\InitialConfig\Complete.cshtml" + + + #line default + #line hidden + + #line 110 "..\..\Views\InitialConfig\Complete.cshtml" + + if (Model.DiscoIctComAuWebResult == null) + { + + + #line default + #line hidden +WriteLiteral(" "); + +WriteLiteral("A connection was successfully established to http://discoict.com.au."); + +WriteLiteral("\r\n"); + + + #line 114 "..\..\Views\InitialConfig\Complete.cshtml" + } + else + { + + + #line default + #line hidden +WriteLiteral(" "); + +WriteLiteral("There was an error establishing a connection to http://discoict.com.au. This may be caused by missing proxy settings - after" + +" starting Disco check these settings in the \'System\' configuration area."); + +WriteLiteral("\r\n"); + +WriteLiteral("
\r\n"); + +WriteLiteral(" \r\n"); + + + #line 120 "..\..\Views\InitialConfig\Complete.cshtml" + + + #line default + #line hidden + + #line 120 "..\..\Views\InitialConfig\Complete.cshtml" + var ex = Model.DiscoIctComAuWebResult; + do + { + + + #line default + #line hidden +WriteLiteral("
\r\n " + +"

["); + + + #line 124 "..\..\Views\InitialConfig\Complete.cshtml" + Write(ex.GetType().Name); + + + #line default + #line hidden +WriteLiteral("]

\r\n \r\n"); + +WriteLiteral(" "); + + + #line 126 "..\..\Views\InitialConfig\Complete.cshtml" + Write(ex.Message); + + + #line default + #line hidden +WriteLiteral("\r\n
\r\n " + +" \r\n"); + + + #line 129 "..\..\Views\InitialConfig\Complete.cshtml" + if (ex.InnerException == null) { break; } + else { ex = ex.InnerException; } + } while (true); + + + #line default + #line hidden +WriteLiteral("\r\n \r\n"); + + + #line 134 "..\..\Views\InitialConfig\Complete.cshtml" + } + + + #line default + #line hidden +WriteLiteral("\r\n \r\n
\r\n

Unblock ICMP (Ping) for the Disco server

\r\n + The Disco Client Bootstrapper requires the Disco server to respond to ICMP Echo requests (Ping) to function correctly. Please insure any firewall rules are updated accordingly. + +
+

Configure a regularly scheduled Backup

\r\n \r\n Please ensure both the SQL Database and File Store are" + +" backed up regularly.\r\n \r\n
\r\n \r\n \r\n"); + + + #line 158 "..\..\Views\InitialConfig\Complete.cshtml" + + + #line default + #line hidden + + #line 158 "..\..\Views\InitialConfig\Complete.cshtml" + + if (Model.LaunchAllowed) + { + + + #line default + #line hidden +WriteLiteral(" (Url.Action(MVC.InitialConfig.RestartWebApp()) + + #line default + #line hidden +, 7798), false) +); + +WriteLiteral(" class=\"button\""); + +WriteLiteral(">Start Disco\r\n"); + + + #line 162 "..\..\Views\InitialConfig\Complete.cshtml" + } + else + { + + + #line default + #line hidden +WriteLiteral(" (Url.Action(MVC.InitialConfig.Complete()) + + #line default + #line hidden +, 7963), false) +); + +WriteLiteral(" class=\"button\""); + +WriteLiteral(">Try Again\r\n"); + + + #line 166 "..\..\Views\InitialConfig\Complete.cshtml" + } + + + #line default + #line hidden +WriteLiteral("\r\n \r\n\r\n\r\n

Re-running Verification Tests

+
Please wait while the verification tests are performed.
+ + +"); + + } + } +} +#pragma warning restore 1591 diff --git a/Disco.Web/Views/InitialConfig/Database.cshtml b/Disco.Web/Views/InitialConfig/Database.cshtml new file mode 100644 index 00000000..4a57edc4 --- /dev/null +++ b/Disco.Web/Views/InitialConfig/Database.cshtml @@ -0,0 +1,119 @@ +@model Disco.Web.Models.InitialConfig.DatabaseModel +@{ + ViewBag.Title = null; +} +

@CommonHelpers.Breadcrumbs(Html.ToBreadcrumb("Initial Configuration", MVC.InitialConfig.Index(), "Database"))

+@using (Html.BeginForm()) +{ + @Html.ValidationSummary(true) + +
+

SQL Server Connection

+ + + + + + + + + + + + + +
Server: + + @Html.EditorFor(m => m.Server) @Html.ValidationMessageFor(m => m.Server) +
+ If the default instance of SQL Server is not being used, include the instance name.
+ For example: "SERVER_NAME\INSTANCE_NAME" +
+
Database Name: + + @Html.EditorFor(m => m.DatabaseName) @Html.ValidationMessageFor(m => m.DatabaseName) +
+ An attempt will be made to create a database with this name if it does not exist. +
+
Authentication Method: + + @Html.DropDownListFor(m => m.AuthMethod, Model.AuthMethods) @Html.ValidationMessageFor(m => m.AuthMethod) +
+ Integrated Authentication is recommended.
+ To use Integrated Authentication ensure the DiscoServiceAccount domain user has the db_owner role over the database, or sysadmin role if creating a new database. +
+ +
+
+
+ +
+} +
+

Building and Validating Database

+
Please wait while the Disco database is created and/or validated
+
+ diff --git a/Disco.Web/Views/InitialConfig/Database.generated.cs b/Disco.Web/Views/InitialConfig/Database.generated.cs new file mode 100644 index 00000000..0c81f853 --- /dev/null +++ b/Disco.Web/Views/InitialConfig/Database.generated.cs @@ -0,0 +1,317 @@ +#pragma warning disable 1591 +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.17929 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Disco.Web.Views.InitialConfig +{ + using System; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Net; + using System.Text; + using System.Web; + using System.Web.Helpers; + using System.Web.Mvc; + using System.Web.Mvc.Ajax; + using System.Web.Mvc.Html; + using System.Web.Routing; + using System.Web.Security; + using System.Web.UI; + using System.Web.WebPages; + using Disco.BI.Extensions; + using Disco.Models.Repository; + using Disco.Web; + using Disco.Web.Extensions; + + [System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "1.5.0.0")] + [System.Web.WebPages.PageVirtualPathAttribute("~/Views/InitialConfig/Database.cshtml")] + public class Database : System.Web.Mvc.WebViewPage + { + public Database() + { + } + public override void Execute() + { + + #line 2 "..\..\Views\InitialConfig\Database.cshtml" + + ViewBag.Title = null; + + + #line default + #line hidden +WriteLiteral("\r\n

"); + + + #line 5 "..\..\Views\InitialConfig\Database.cshtml" +Write(CommonHelpers.Breadcrumbs(Html.ToBreadcrumb("Initial Configuration", MVC.InitialConfig.Index(), "Database"))); + + + #line default + #line hidden +WriteLiteral("

\r\n"); + + + #line 6 "..\..\Views\InitialConfig\Database.cshtml" + using (Html.BeginForm()) +{ + + + #line default + #line hidden + + #line 8 "..\..\Views\InitialConfig\Database.cshtml" +Write(Html.ValidationSummary(true)); + + + #line default + #line hidden + + #line 8 "..\..\Views\InitialConfig\Database.cshtml" + + + + + #line default + #line hidden +WriteLiteral(" \r\n

SQL Server Connection

\r\n \r\n \r\n " + +" Server:\r\n \r\n \r\n \r\n \r\n \r\n + + + + \r\n \r\n \r\n \r\n \r\n " + +" \r\n <" + +"td>"); + + + #line 55 "..\..\Views\InitialConfig\Database.cshtml" + Write(Html.EditorFor(m => m.Auth_SQL_Password)); + + + #line default + #line hidden +WriteLiteral(" "); + + + #line 55 "..\..\Views\InitialConfig\Database.cshtml" + Write(Html.ValidationMessageFor(m => m.Auth_SQL_Password)); + + + #line default + #line hidden +WriteLiteral("\r\n \r\n
\r\n"); + +WriteLiteral(" "); + + + #line 17 "..\..\Views\InitialConfig\Database.cshtml" + Write(Html.EditorFor(m => m.Server)); + + + #line default + #line hidden +WriteLiteral(" "); + + + #line 17 "..\..\Views\InitialConfig\Database.cshtml" + Write(Html.ValidationMessageFor(m => m.Server)); + + + #line default + #line hidden +WriteLiteral("\r\n \r\n If the default instance of SQL Server is not being use" + +"d, include the instance name.
\r\n For example: \"SERVER_NAME\\INSTANCE_NAME\"\r\n \r\n " + +"
Database Name:\r\n" + +" \r\n"); + +WriteLiteral(" "); + + + #line 28 "..\..\Views\InitialConfig\Database.cshtml" + Write(Html.EditorFor(m => m.DatabaseName)); + + + #line default + #line hidden +WriteLiteral(" "); + + + #line 28 "..\..\Views\InitialConfig\Database.cshtml" + Write(Html.ValidationMessageFor(m => m.DatabaseName)); + + + #line default + #line hidden +WriteLiteral("\r\n + An attempt will be made to create a database with this name if it does not exist. + +
Authentication Method: + +"); + +WriteLiteral(" "); + + + #line 38 "..\..\Views\InitialConfig\Database.cshtml" + Write(Html.DropDownListFor(m => m.AuthMethod, Model.AuthMethods)); + + + #line default + #line hidden +WriteLiteral(" "); + + + #line 38 "..\..\Views\InitialConfig\Database.cshtml" + Write(Html.ValidationMessageFor(m => m.AuthMethod)); + + + #line default + #line hidden +WriteLiteral("\r\n \r\n Integrated Authentication is recommended.
\r\n " + +" To use Integrated Authentication ensure the DiscoServiceAccount domain user has the db_owner role over the database, or sysadmin role if creating a new database.\r\n \r\n " + +" \r\n

SQL Authentication Credentials

\r\n " + +" \r\n The following credentials will be stored in clear-" + +"text.\r\n \r\n \r\n
Username" + +":"); + + + #line 51 "..\..\Views\InitialConfig\Database.cshtml" + Write(Html.EditorFor(m => m.Auth_SQL_Username)); + + + #line default + #line hidden +WriteLiteral(" "); + + + #line 51 "..\..\Views\InitialConfig\Database.cshtml" + Write(Html.ValidationMessageFor(m => m.Auth_SQL_Username)); + + + #line default + #line hidden +WriteLiteral("
Password:
\r\n " + +" \r\n \r\n \r\n \r\n \r\n"); + +WriteLiteral(" \r\n \r\n \r\n"); + + + #line 66 "..\..\Views\InitialConfig\Database.cshtml" +} + + + #line default + #line hidden +WriteLiteral("\r\n

Building and Validating Database

\r\n
Please wait while the Dis" + +"co database is created and/or validated
\r\n\r\n\r\n"); + + } + } +} +#pragma warning restore 1591 diff --git a/Disco.Web/Views/InitialConfig/FileStore.cshtml b/Disco.Web/Views/InitialConfig/FileStore.cshtml new file mode 100644 index 00000000..6c1e9058 --- /dev/null +++ b/Disco.Web/Views/InitialConfig/FileStore.cshtml @@ -0,0 +1,249 @@ +@model Disco.Web.Models.InitialConfig.FileStoreModel +@{ + ViewBag.Title = null; + Html.BundleDeferred("~/Style/jQueryUI/dynatree"); + Html.BundleDeferred("~/ClientScripts/Modules/jQueryUI-DynaTree"); +} +

@CommonHelpers.Breadcrumbs(Html.ToBreadcrumb("Initial Configuration", MVC.InitialConfig.Index(), "File Store"))

+
+ @Html.ValidationSummary(false) + +
+

File Store Location

+ + + + + + + +
+
+
+ +
+
+ Selected Location: <None> (Invalid DataStore Location) +
+
+
+ @using (Html.BeginForm()) + { + @Html.HiddenFor(m => m.FileStoreLocation) +
+ +
+ } +
+
+

Building and Validating File Store

+
Please wait while the Disco File Store is created and/or validated
+
+
+

Create Directory

+ +
Parent:
+
+ diff --git a/Disco.Web/Views/InitialConfig/FileStore.generated.cs b/Disco.Web/Views/InitialConfig/FileStore.generated.cs new file mode 100644 index 00000000..19d1d33a --- /dev/null +++ b/Disco.Web/Views/InitialConfig/FileStore.generated.cs @@ -0,0 +1,329 @@ +#pragma warning disable 1591 +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.17929 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Disco.Web.Views.InitialConfig +{ + using System; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Net; + using System.Text; + using System.Web; + using System.Web.Helpers; + using System.Web.Mvc; + using System.Web.Mvc.Ajax; + using System.Web.Mvc.Html; + using System.Web.Routing; + using System.Web.Security; + using System.Web.UI; + using System.Web.WebPages; + using Disco.BI.Extensions; + using Disco.Models.Repository; + using Disco.Web; + using Disco.Web.Extensions; + + [System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "1.5.0.0")] + [System.Web.WebPages.PageVirtualPathAttribute("~/Views/InitialConfig/FileStore.cshtml")] + public class FileStore : System.Web.Mvc.WebViewPage + { + public FileStore() + { + } + public override void Execute() + { + + #line 2 "..\..\Views\InitialConfig\FileStore.cshtml" + + ViewBag.Title = null; + Html.BundleDeferred("~/Style/jQueryUI/dynatree"); + Html.BundleDeferred("~/ClientScripts/Modules/jQueryUI-DynaTree"); + + + #line default + #line hidden +WriteLiteral("\r\n

"); + + + #line 7 "..\..\Views\InitialConfig\FileStore.cshtml" +Write(CommonHelpers.Breadcrumbs(Html.ToBreadcrumb("Initial Configuration", MVC.InitialConfig.Index(), "File Store"))); + + + #line default + #line hidden +WriteLiteral("

\r\n\r\n"); + +WriteLiteral(" "); + + + #line 9 "..\..\Views\InitialConfig\FileStore.cshtml" +Write(Html.ValidationSummary(false)); + + + #line default + #line hidden +WriteLiteral("\r\n\r\n \r\n

File Store Location

\r\n \r\n \r\n " + +" \r\n " + +" \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n Create Directory\r\n \r\n
\r\n
\r\n " + +" Selected Location: <None> (Invalid DataStore Location)\r\n
\r\n " + +"
\r\n \r\n"); + + + #line 32 "..\..\Views\InitialConfig\FileStore.cshtml" + + + #line default + #line hidden + + #line 32 "..\..\Views\InitialConfig\FileStore.cshtml" + using (Html.BeginForm()) + { + + + #line default + #line hidden + + #line 34 "..\..\Views\InitialConfig\FileStore.cshtml" + Write(Html.HiddenFor(m => m.FileStoreLocation)); + + + #line default + #line hidden + + #line 34 "..\..\Views\InitialConfig\FileStore.cshtml" + + + + #line default + #line hidden +WriteLiteral(" \r\n \r\n \r\n"); + + + #line 38 "..\..\Views\InitialConfig\FileStore.cshtml" + } + + + #line default + #line hidden +WriteLiteral("\r\n\r\n

Building and Validating File Store

\r\n
Please wait while the D" + +"isco File Store is created and/or validated
\r\n\r\n\r\n

Create Directory

\r\n \r\n
Parent:
\r\n\r\n\r\n"); + + } + } +} +#pragma warning restore 1591 diff --git a/Disco.Web/Views/InitialConfig/RestartWebApp.cshtml b/Disco.Web/Views/InitialConfig/RestartWebApp.cshtml new file mode 100644 index 00000000..305f92e2 --- /dev/null +++ b/Disco.Web/Views/InitialConfig/RestartWebApp.cshtml @@ -0,0 +1,34 @@ +@{ + ViewBag.Title = null; +} +

@CommonHelpers.Breadcrumbs("Initial Configuration > Starting Disco")

+
+

Starting Disco

+
Please wait while the Disco environment is initialized
+
+ diff --git a/Disco.Web/Views/InitialConfig/RestartWebApp.generated.cs b/Disco.Web/Views/InitialConfig/RestartWebApp.generated.cs new file mode 100644 index 00000000..f07ce553 --- /dev/null +++ b/Disco.Web/Views/InitialConfig/RestartWebApp.generated.cs @@ -0,0 +1,111 @@ +#pragma warning disable 1591 +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.17929 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Disco.Web.Views.InitialConfig +{ + using System; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Net; + using System.Text; + using System.Web; + using System.Web.Helpers; + using System.Web.Mvc; + using System.Web.Mvc.Ajax; + using System.Web.Mvc.Html; + using System.Web.Routing; + using System.Web.Security; + using System.Web.UI; + using System.Web.WebPages; + using Disco.BI.Extensions; + using Disco.Models.Repository; + using Disco.Web; + using Disco.Web.Extensions; + + [System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "1.5.0.0")] + [System.Web.WebPages.PageVirtualPathAttribute("~/Views/InitialConfig/RestartWebApp.cshtml")] + public class RestartWebApp : System.Web.Mvc.WebViewPage + { + public RestartWebApp() + { + } + public override void Execute() + { + + #line 1 "..\..\Views\InitialConfig\RestartWebApp.cshtml" + + ViewBag.Title = null; + + + #line default + #line hidden +WriteLiteral("\r\n

"); + + + #line 4 "..\..\Views\InitialConfig\RestartWebApp.cshtml" +Write(CommonHelpers.Breadcrumbs("Initial Configuration > Starting Disco")); + + + #line default + #line hidden +WriteLiteral("

\r\n\r\n

Starting Disco

\r\n Please wait while the Disco environment is initialized + + +"); + + } + } +} +#pragma warning restore 1591 diff --git a/Disco.Web/Views/InitialConfig/Welcome.cshtml b/Disco.Web/Views/InitialConfig/Welcome.cshtml new file mode 100644 index 00000000..c22cbc06 --- /dev/null +++ b/Disco.Web/Views/InitialConfig/Welcome.cshtml @@ -0,0 +1,34 @@ +@model Disco.Web.Models.InitialConfig.WelcomeModel +@{ + ViewBag.Title = null; +} +

Welcome to Disco ICT Management!

+
+

The installation is complete, but a few things need to be configured before Disco can be started.

+ @using (Html.BeginForm()) + { +
+

Organisation Name

+ + + + +
+
+ @Html.EditorFor(m => m.OrganisationName)
+ @Html.ValidationMessageFor(m => m.OrganisationName) +
+
+
+
+ +
+ } +
+ diff --git a/Disco.Web/Views/InitialConfig/Welcome.generated.cs b/Disco.Web/Views/InitialConfig/Welcome.generated.cs new file mode 100644 index 00000000..b0503f19 --- /dev/null +++ b/Disco.Web/Views/InitialConfig/Welcome.generated.cs @@ -0,0 +1,133 @@ +#pragma warning disable 1591 +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.17929 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Disco.Web.Views.InitialConfig +{ + using System; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Net; + using System.Text; + using System.Web; + using System.Web.Helpers; + using System.Web.Mvc; + using System.Web.Mvc.Ajax; + using System.Web.Mvc.Html; + using System.Web.Routing; + using System.Web.Security; + using System.Web.UI; + using System.Web.WebPages; + using Disco.BI.Extensions; + using Disco.Models.Repository; + using Disco.Web; + using Disco.Web.Extensions; + + [System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "1.5.0.0")] + [System.Web.WebPages.PageVirtualPathAttribute("~/Views/InitialConfig/Welcome.cshtml")] + public class Welcome : System.Web.Mvc.WebViewPage + { + public Welcome() + { + } + public override void Execute() + { + + #line 2 "..\..\Views\InitialConfig\Welcome.cshtml" + + ViewBag.Title = null; + + + #line default + #line hidden +WriteLiteral("\r\n

Welcome to Disco ICT Management!

\r\n\r\n

The installation is complete, but a few things need to be configured be" + +"fore Disco can be started.

\r\n"); + + + #line 8 "..\..\Views\InitialConfig\Welcome.cshtml" + + + #line default + #line hidden + + #line 8 "..\..\Views\InitialConfig\Welcome.cshtml" + using (Html.BeginForm()) + { + + + #line default + #line hidden +WriteLiteral(" \r\n

Organisation Name

\r\n \r\n <" + +"tr>\r\n \r\n \r\n
\r\n
\r\n"); + +WriteLiteral(" "); + + + #line 16 "..\..\Views\InitialConfig\Welcome.cshtml" + Write(Html.EditorFor(m => m.OrganisationName)); + + + #line default + #line hidden +WriteLiteral("
\r\n"); + +WriteLiteral(" "); + + + #line 17 "..\..\Views\InitialConfig\Welcome.cshtml" + Write(Html.ValidationMessageFor(m => m.OrganisationName)); + + + #line default + #line hidden +WriteLiteral("\r\n
\r\n
\r\n \r\n"); + +WriteLiteral(" \r\n \r\n \r\n"); + + + #line 26 "..\..\Views\InitialConfig\Welcome.cshtml" + } + + + #line default + #line hidden +WriteLiteral("\r\n\r\n"); + + } + } +} +#pragma warning restore 1591 diff --git a/Disco.Web/Views/InitialConfig/_Layout.cshtml b/Disco.Web/Views/InitialConfig/_Layout.cshtml new file mode 100644 index 00000000..c0c3594b --- /dev/null +++ b/Disco.Web/Views/InitialConfig/_Layout.cshtml @@ -0,0 +1,35 @@ +@{ + Html.BundleDeferred("~/Style/Site"); + Html.BundleDeferred("~/ClientScripts/Core"); +} + + + + + + Disco@{if(ViewBag.Title != null){<text> - @CommonHelpers.BreadcrumbsTitle(ViewBag.Title)</text>}} + @Html.BundleRenderDeferred() + @RenderSection("head", false) + + +
+
+
+
+ + DISCO - ICT Asset Management +
+
+
+
+
+ @if(ViewBag.Title != null){
@CommonHelpers.Breadcrumbs(ViewBag.Title)
} +
+ @RenderBody() +
+
+ Disco v@(Disco.Web.DiscoApplication.Version) +
+
+ + \ No newline at end of file diff --git a/Disco.Web/Views/InitialConfig/_Layout.generated.cs b/Disco.Web/Views/InitialConfig/_Layout.generated.cs new file mode 100644 index 00000000..b06793de --- /dev/null +++ b/Disco.Web/Views/InitialConfig/_Layout.generated.cs @@ -0,0 +1,218 @@ +#pragma warning disable 1591 +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.17929 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Disco.Web.Views.InitialConfig +{ + using System; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Net; + using System.Text; + using System.Web; + using System.Web.Helpers; + using System.Web.Mvc; + using System.Web.Mvc.Ajax; + using System.Web.Mvc.Html; + using System.Web.Routing; + using System.Web.Security; + using System.Web.UI; + using System.Web.WebPages; + using Disco.BI.Extensions; + using Disco.Models.Repository; + using Disco.Web; + using Disco.Web.Extensions; + + [System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "1.5.0.0")] + [System.Web.WebPages.PageVirtualPathAttribute("~/Views/InitialConfig/_Layout.cshtml")] + public class Layout : System.Web.Mvc.WebViewPage + { + public Layout() + { + } + public override void Execute() + { + + #line 1 "..\..\Views\InitialConfig\_Layout.cshtml" + + Html.BundleDeferred("~/Style/Site"); + Html.BundleDeferred("~/ClientScripts/Core"); + + + #line default + #line hidden +WriteLiteral("\r\n\r\n\r\n\r\n \r\n \r\n Disco"); + + + #line 10 "..\..\Views\InitialConfig\_Layout.cshtml" + if(ViewBag.Title != null){ + + #line default + #line hidden +WriteLiteral(" - "); + + + #line 10 "..\..\Views\InitialConfig\_Layout.cshtml" + Write(CommonHelpers.BreadcrumbsTitle(ViewBag.Title)); + + + #line default + #line hidden + + #line 10 "..\..\Views\InitialConfig\_Layout.cshtml" + } + + #line default + #line hidden +WriteLiteral("\r\n"); + +WriteLiteral(" "); + + + #line 11 "..\..\Views\InitialConfig\_Layout.cshtml" +Write(Html.BundleRenderDeferred()); + + + #line default + #line hidden +WriteLiteral("\r\n"); + +WriteLiteral(" "); + + + #line 12 "..\..\Views\InitialConfig\_Layout.cshtml" +Write(RenderSection("head", false)); + + + #line default + #line hidden +WriteLiteral("\r\n\r\n\r\n \r\n
\r\n \r\n \r\n (Url.Action(MVC.Public.Public.Index()) + + #line default + #line hidden +, 585), false) +); + +WriteLiteral(">\r\n (Links.ClientSource.Style.Images.Heading_png + + #line default + #line hidden +, 661), false) +); + +WriteLiteral(" alt=\"DISCO - ICT Asset Management\""); + +WriteLiteral(" />\r\n \r\n \r\n \r\n \r\n
\r\n"); + + + #line 26 "..\..\Views\InitialConfig\_Layout.cshtml" + + + #line default + #line hidden + + #line 26 "..\..\Views\InitialConfig\_Layout.cshtml" + if(ViewBag.Title != null){ + + #line default + #line hidden +WriteLiteral(""); + + + #line 26 "..\..\Views\InitialConfig\_Layout.cshtml" + Write(CommonHelpers.Breadcrumbs(ViewBag.Title)); + + + #line default + #line hidden +WriteLiteral(""); + + + #line 26 "..\..\Views\InitialConfig\_Layout.cshtml" + } + + + #line default + #line hidden +WriteLiteral(" \r\n"); + +WriteLiteral(" "); + + + #line 28 "..\..\Views\InitialConfig\_Layout.cshtml" + Write(RenderBody()); + + + #line default + #line hidden +WriteLiteral("\r\n
\r\n
\r\n Disco v"); + + + #line 31 "..\..\Views\InitialConfig\_Layout.cshtml" + Write(Disco.Web.DiscoApplication.Version); + + + #line default + #line hidden +WriteLiteral("\r\n
\r\n \r\n\r\n"); + + } + } +} +#pragma warning restore 1591 diff --git a/Disco.Web/Views/InitialConfig/_ViewStart.cshtml b/Disco.Web/Views/InitialConfig/_ViewStart.cshtml new file mode 100644 index 00000000..4cca93cc --- /dev/null +++ b/Disco.Web/Views/InitialConfig/_ViewStart.cshtml @@ -0,0 +1,4 @@ +@{ + Layout = "~/Views/InitialConfig/_Layout.cshtml"; + Html.BundleDeferred("~/Style/InitialConfig"); +} \ No newline at end of file diff --git a/Disco.Web/Views/InitialConfig/_ViewStart.generated.cs b/Disco.Web/Views/InitialConfig/_ViewStart.generated.cs new file mode 100644 index 00000000..1414f176 --- /dev/null +++ b/Disco.Web/Views/InitialConfig/_ViewStart.generated.cs @@ -0,0 +1,55 @@ +#pragma warning disable 1591 +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.17929 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Disco.Web.Views.InitialConfig +{ + using System; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Net; + using System.Text; + using System.Web; + using System.Web.Helpers; + using System.Web.Mvc; + using System.Web.Mvc.Ajax; + using System.Web.Mvc.Html; + using System.Web.Routing; + using System.Web.Security; + using System.Web.UI; + using System.Web.WebPages; + using Disco.BI.Extensions; + using Disco.Models.Repository; + using Disco.Web; + using Disco.Web.Extensions; + + [System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "1.5.0.0")] + [System.Web.WebPages.PageVirtualPathAttribute("~/Views/InitialConfig/_ViewStart.cshtml")] + public class ViewStart : System.Web.Mvc.ViewStartPage + { + public ViewStart() + { + } + public override void Execute() + { + + #line 1 "..\..\Views\InitialConfig\_ViewStart.cshtml" + + Layout = "~/Views/InitialConfig/_Layout.cshtml"; + Html.BundleDeferred("~/Style/InitialConfig"); + + + #line default + #line hidden + } + } +} +#pragma warning restore 1591 diff --git a/Disco.Web/Views/Job/Create-Old.cshtml b/Disco.Web/Views/Job/Create-Old.cshtml new file mode 100644 index 00000000..4936128a --- /dev/null +++ b/Disco.Web/Views/Job/Create-Old.cshtml @@ -0,0 +1,58 @@ +@model Disco.Web.Models.Job.CreateModel +@{ + ViewBag.Title = Html.ToBreadcrumb("Jobs", MVC.Job.Index(), "Create"); +} +@using (Html.BeginForm(MVC.Job.Create(), FormMethod.Post)) +{ + @Html.ValidationSummary(false) + @Html.HiddenFor(m => m.DeviceSerialNumber) + @Html.HiddenFor(m => m.UserId) +
+ + + + + + + + + @foreach (var jt in Model.JobTypes) + { + + + + + } +
+ @Html.Partial(MVC.Job.Views._CreateSubject, Model) +
+ Type: + + @CommonHelpers.RadioButtonList("Type", Model.JobTypes.ToSelectListItems(Model.Type), 2) +
+ @jt.Description
+ Sub Types +
+ @CommonHelpers.CheckBoxList("SubTypes", Model.JobSubTypes.Where(jst => jst.JobTypeId == jt.Id).ToList().ToSelectListItems(Model.SubTypes), 2) +
+

+ +

+ +
+} \ No newline at end of file diff --git a/Disco.Web/Views/Job/Create.cshtml b/Disco.Web/Views/Job/Create.cshtml new file mode 100644 index 00000000..c30239e7 --- /dev/null +++ b/Disco.Web/Views/Job/Create.cshtml @@ -0,0 +1,301 @@ +@model Disco.Web.Models.Job.CreateModel +@{ + Layout = "~/Views/Shared/_DialogLayout.cshtml"; + ViewBag.Title = Html.ToBreadcrumb("Jobs", MVC.Job.Index(), "Create"); +} +
+ @using (Html.BeginForm(MVC.Job.Create(), FormMethod.Post)) + { + @Html.HiddenFor(m => m.DeviceSerialNumber) + @Html.HiddenFor(m => m.UserId) + @Html.HiddenFor(m => m.QuickLogDestinationUrl) + + @Html.Partial(MVC.Job.Views._CreateSubject, Model) + @Html.ValidationSummary(true) + +
+
+

Type

+ @Html.ValidationMessageFor(m => m.Type) + @CommonHelpers.RadioButtonList("Type", Model.JobTypes.ToSelectListItems(Model.Type), 3) + @Html.ValidationMessageFor(m => m.SubTypes) +
+
+ @foreach (var jt in Model.JobTypes) + { +
+
+ @CommonHelpers.CheckBoxList("SubTypes", Model.JobSubTypes.Where(jst => jst.JobTypeId == jt.Id).ToList().ToSelectListItems(Model.SubTypes), 3) +
+
+ } +
+
+
+ @Html.ValidationMessageFor(m => m.DeviceHeld) + @Html.HiddenFor(m => m.DeviceHeld) + + + + + + +
+

Device Held

+
+ + + +
+
+
+ + + + + +
+

Comments

+
+ @Html.EditorFor(m => m.Comments) +
+
+
+
+

Quick Log

+ +
+
+

Task Time

+ @Html.ValidationMessageFor(m => m.QuickLogTaskTimeMinutes) + + + + + + + + Minutes + +
+
+ } + +
diff --git a/Disco.Web/Views/Job/Create.generated.cs b/Disco.Web/Views/Job/Create.generated.cs new file mode 100644 index 00000000..9457c343 --- /dev/null +++ b/Disco.Web/Views/Job/Create.generated.cs @@ -0,0 +1,598 @@ +#pragma warning disable 1591 +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.17929 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Disco.Web.Views.Job +{ + using System; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Net; + using System.Text; + using System.Web; + using System.Web.Helpers; + using System.Web.Mvc; + using System.Web.Mvc.Ajax; + using System.Web.Mvc.Html; + using System.Web.Routing; + using System.Web.Security; + using System.Web.UI; + using System.Web.WebPages; + using Disco.BI.Extensions; + using Disco.Models.Repository; + using Disco.Web; + using Disco.Web.Extensions; + + [System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "1.5.0.0")] + [System.Web.WebPages.PageVirtualPathAttribute("~/Views/Job/Create.cshtml")] + public class Create : System.Web.Mvc.WebViewPage + { + public Create() + { + } + public override void Execute() + { + + #line 2 "..\..\Views\Job\Create.cshtml" + + Layout = "~/Views/Shared/_DialogLayout.cshtml"; + ViewBag.Title = Html.ToBreadcrumb("Jobs", MVC.Job.Index(), "Create"); + + + #line default + #line hidden +WriteLiteral("\r\n\r\n"); + + + #line 7 "..\..\Views\Job\Create.cshtml" + + + #line default + #line hidden + + #line 7 "..\..\Views\Job\Create.cshtml" + using (Html.BeginForm(MVC.Job.Create(), FormMethod.Post)) + { + + + #line default + #line hidden + + #line 9 "..\..\Views\Job\Create.cshtml" + Write(Html.HiddenFor(m => m.DeviceSerialNumber)); + + + #line default + #line hidden + + #line 9 "..\..\Views\Job\Create.cshtml" + + + + #line default + #line hidden + + #line 10 "..\..\Views\Job\Create.cshtml" + Write(Html.HiddenFor(m => m.UserId)); + + + #line default + #line hidden + + #line 10 "..\..\Views\Job\Create.cshtml" + + + + #line default + #line hidden + + #line 11 "..\..\Views\Job\Create.cshtml" + Write(Html.HiddenFor(m => m.QuickLogDestinationUrl)); + + + #line default + #line hidden + + #line 11 "..\..\Views\Job\Create.cshtml" + + + + + #line default + #line hidden + + #line 13 "..\..\Views\Job\Create.cshtml" + Write(Html.Partial(MVC.Job.Views._CreateSubject, Model)); + + + #line default + #line hidden + + #line 13 "..\..\Views\Job\Create.cshtml" + + + + #line default + #line hidden + + #line 14 "..\..\Views\Job\Create.cshtml" + Write(Html.ValidationSummary(true)); + + + #line default + #line hidden + + #line 14 "..\..\Views\Job\Create.cshtml" + + + + + #line default + #line hidden +WriteLiteral(" \r\n \r\n

Type

\r\n"); + +WriteLiteral(" "); + + + #line 19 "..\..\Views\Job\Create.cshtml" + Write(Html.ValidationMessageFor(m => m.Type)); + + + #line default + #line hidden +WriteLiteral("\r\n"); + +WriteLiteral(" "); + + + #line 20 "..\..\Views\Job\Create.cshtml" + Write(CommonHelpers.RadioButtonList("Type", Model.JobTypes.ToSelectListItems(Model.Type), 3)); + + + #line default + #line hidden +WriteLiteral("\r\n"); + +WriteLiteral(" "); + + + #line 21 "..\..\Views\Job\Create.cshtml" + Write(Html.ValidationMessageFor(m => m.SubTypes)); + + + #line default + #line hidden +WriteLiteral("\r\n \r\n \r\n"); + + + #line 24 "..\..\Views\Job\Create.cshtml" + + + #line default + #line hidden + + #line 24 "..\..\Views\Job\Create.cshtml" + foreach (var jt in Model.JobTypes) + { + + + #line default + #line hidden +WriteLiteral(" (jt.Id + + #line default + #line hidden +, 1060), false) +); + +WriteLiteral(" class=\"createJob_SubType\""); + +WriteLiteral(">\r\n \r\n"); + +WriteLiteral(" "); + + + #line 28 "..\..\Views\Job\Create.cshtml" + Write(CommonHelpers.CheckBoxList("SubTypes", Model.JobSubTypes.Where(jst => jst.JobTypeId == jt.Id).ToList().ToSelectListItems(Model.SubTypes), 3)); + + + #line default + #line hidden +WriteLiteral("\r\n \r\n \r\n"); + + + #line 31 "..\..\Views\Job\Create.cshtml" + } + + + #line default + #line hidden +WriteLiteral(" \r\n \r\n"); + +WriteLiteral(" \r\n"); + +WriteLiteral(" "); + + + #line 35 "..\..\Views\Job\Create.cshtml" + Write(Html.ValidationMessageFor(m => m.DeviceHeld)); + + + #line default + #line hidden +WriteLiteral("\r\n"); + +WriteLiteral(" "); + + + #line 36 "..\..\Views\Job\Create.cshtml" + Write(Html.HiddenFor(m => m.DeviceHeld)); + + + #line default + #line hidden +WriteLiteral("\r\n \r\n \r\n \r\n " + +" \r\n \r\n \r\n " + +"
\r\n " + +"

Device Held

\r\n
\r\n Held\r\n \r\n " + +" Not Held\r\n
\r\n \r\n"); + +WriteLiteral(" \r\n \r\n \r\n \r\n " + +" \r\n \r\n
\r\n " + +"

Comments

\r\n
\r\n"); + +WriteLiteral(" "); + + + #line 58 "..\..\Views\Job\Create.cshtml" + Write(Html.EditorFor(m => m.Comments)); + + + #line default + #line hidden +WriteLiteral("\r\n
\r\n " + +" \r\n"); + +WriteLiteral(" \r\n \r\n

Quick Log

\r\n Automatically close this job\r\n \r\n \r\n

Task Time

\r\n"); + +WriteLiteral(" "); + + + #line 70 "..\..\Views\Job\Create.cshtml" + Write(Html.ValidationMessageFor(m => m.QuickLogTaskTimeMinutes)); + + + #line default + #line hidden +WriteLiteral("\r\n 10 Minutes\r\n 30 Minutes\r\n 1 Hour\r\n 2 Hours\r\n Other\r\n \r\n \r\n Minutes\r\n \r\n \r\n " + +" \r\n"); + + + #line 82 "..\..\Views\Job\Create.cshtml" + } + + + #line default + #line hidden +WriteLiteral(" \r\n $(function () {\r\n var discoDialogMethods;\r\n var " + +"init = true;\r\n //#region Parent Dialog\r\n if (window.parent" + +" && window.parent.document) {\r\n $(\'#QuickLogDestinationUrl\').val(" + +"window.parent.window.location.href);\r\n\r\n var parentDialog = $(\'#c" + +"reateJobDialog\', window.parent.document);\r\n if (parentDialog.leng" + +"th > 0) {\r\n discoDialogMethods = parentDialog[0].discoDialogM" + +"ethods;\r\n var buttons = {\r\n \"Create Jo" + +"b\": function () {\r\n createJobForm.submit()\r\n " + +" },\r\n Cancel: function () {\r\n " + +" discoDialogMethods.close();\r\n }\r\n " + +" }\r\n\r\n discoDialogMethods.setButtons(buttons);\r\n " + +" }\r\n }\r\n //#endregion\r\n\r\n\r\n var crea" + +"teJobForm = $(\'form\');\r\n var validator = createJobForm.data(\'validato" + +"r\');\r\n var unobtrusiveValidation = createJobForm.data(\'unobtrusiveVal" + +"idation\');\r\n\r\n // Validate all Fields\r\n validator.settings" + +".ignore = \'\';\r\n\r\n //#region Job Type/SubTypes\r\n var $jobTy" + +"peContainer = $(\'#createJob_Type\');\r\n var $typeValidationMessage = $(" + +"\'[data-valmsg-for=\"Type\"]\', $jobTypeContainer)\r\n var $subTypesValidat" + +"ionMessage = $(\'[data-valmsg-for=\"SubTypes\"]\', $jobTypeContainer)\r\n v" + +"ar $jobTypes = $jobTypeContainer.find(\'input[type=\"radio\"]\').change(jobTypeChang" + +"e);\r\n $(\'#createJob_SubTypes\').find(\'input[type=\"checkbox\"]\').change(" + +"jobSubTypeHighlight).each(jobSubTypeHighlight);\r\n jobTypeChange();\r\n " + +" function jobSubTypeHighlight() {\r\n var $this = $(this)" + +";\r\n if ($this.is(\':checked\'))\r\n $this.closest(" + +"\'li\').addClass(\'highlight\');\r\n else\r\n $this.cl" + +"osest(\'li\').removeClass(\'highlight\');\r\n }\r\n function jobTy" + +"peChange() {\r\n var $checkedItem = $jobTypes.filter(\':checked\');\r\n" + +"\r\n $jobTypes.closest(\'li\').removeClass(\'highlight\');\r\n\r\n " + +" $checkedItem.closest(\'li\').addClass(\'highlight\');\r\n\r\n if (" + +"init) {\r\n var jobType = $checkedItem.val();\r\n " + +" $(\'#createJob_SubType_\' + jobType).show();\r\n } else {\r\n " + +" $(\'#createJob_SubTypes\').find(\'.createJob_SubType:visible\').slideU" + +"p();\r\n var jobType = $checkedItem.val();\r\n " + +" $(\'#createJob_SubType_\' + jobType).slideDown();\r\n }\r\n " + +" }\r\n\r\n\r\n var additionalValidation = function (form) {\r\n " + +" var isValid = true;\r\n\r\n // Validate Type\r\n var t" + +"ypeValue = $jobTypes.filter(\':checked\').val();\r\n if (typeValue) {" + +"\r\n $typeValidationMessage.removeClass(\'field-validation-error" + +"\').addClass(\'field-validation-valid\');\r\n // Validate SubTypes" + +"\r\n if ($(\'#createJob_SubType_\' + typeValue).find(\'input:check" + +"ed\').length > 0) {\r\n $subTypesValidationMessage.removeCla" + +"ss(\'field-validation-error\').addClass(\'field-validation-valid\');\r\n " + +" } else {\r\n $subTypesValidationMessage.text(\'At leas" + +"t one Job Sub Type is required\').removeClass(\'field-validation-valid\').addClass(" + +"\'field-validation-error\');\r\n isValid = false;\r\n " + +" }\r\n } else {\r\n $typeValidationMessag" + +"e.text(\'A Job Type is required\').removeClass(\'field-validation-valid\').addClass(" + +"\'field-validation-error\');\r\n isValid = false;\r\n " + +" }\r\n\r\n // Validate QuickLog Task Time\r\n if ($quic" + +"kLog.is(\':checked\')) {\r\n var selectedTime = $quickLogTaskTime" + +"s.filter(\':checked\');\r\n if (selectedTime.length > 0) {\r\n " + +" if (selectedTime.val() === \'\') {\r\n " + +" // Handle \'Other\'\r\n var otherTime = parseInt($quickL" + +"ogTaskTimeOtherMinutes.val());\r\n if (!otherTime || ot" + +"herTime <= 0) {\r\n $quickLogTaskTimeValidationMess" + +"age.text(\'A Task Time is required\').removeClass(\'field-validation-valid\').addCla" + +"ss(\'field-validation-error\');\r\n isValid = false;\r" + +"\n }\r\n } else {\r\n " + +" $quickLogTaskTimeValidationMessage.removeClass(\'field-validation-v" + +"alid\').addClass(\'field-validation-error\');\r\n }\r\n " + +" } else {\r\n $quickLogTaskTimeValidationMessage." + +"text(\'A Task Time is required\').removeClass(\'field-validation-valid\').addClass(\'" + +"field-validation-error\');\r\n isValid = false;\r\n " + +" }\r\n } else {\r\n $quickLogTaskTimeValid" + +"ationMessage.removeClass(\'field-validation-valid\').addClass(\'field-validation-er" + +"ror\');\r\n }\r\n\r\n return isValid;\r\n }\r\n\r\n " + +" validator.settings.submitHandler = function (form) {\r\n " + +" if (additionalValidation()) {\r\n discoDialogMethods.setButton" + +"s({});\r\n form.submit();\r\n }\r\n }\r\n " + +" //#endregion\r\n\r\n //#region DeviceHeld\r\n var $dev" + +"iceHeld = $(\'#DeviceHeld\');\r\n\r\n if ($(\'#DeviceSerialNumber\').val()) {" + +"\r\n switch ($deviceHeld.val()) {\r\n case \'True\':" + +"\r\n $(\'#createJob_DeviceHeld\').attr(\'checked\', \'checked\');" + +"\r\n $(\'#createJob_DeviceNotHeld\').attr(\'checked\', null);\r\n" + +" break;\r\n case \'False\':\r\n " + +" $(\'#createJob_DeviceHeld\').attr(\'checked\', null);\r\n " + +" $(\'#createJob_DeviceNotHeld\').attr(\'checked\', \'checked\');\r\n " + +" break;\r\n default:\r\n $(\'#creat" + +"eJob_DeviceHeld\').attr(\'checked\', null);\r\n $(\'#createJob_" + +"DeviceNotHeld\').attr(\'checked\', null);\r\n break;\r\n " + +" }\r\n $(\'#createJob_DeviceHeldContainer\').find(\'input[type=" + +"\"radio\"]\').change(function () {\r\n // Update Hidden Field with" + +" Boolean Value\r\n // Set DeviceHeld\r\n var d" + +"eviceHeldValue = \'\';\r\n if ($(\'#createJob_DeviceHeld\').is(\':ch" + +"ecked\'))\r\n deviceHeldValue = \'True\';\r\n " + +" if ($(\'#createJob_DeviceNotHeld\').is(\':checked\'))\r\n devi" + +"ceHeldValue = \'False\';\r\n $deviceHeld.val(deviceHeldValue).cha" + +"nge();\r\n });\r\n } else {\r\n // No Device " + +"Associated\r\n $deviceHeld.val(\'False\');\r\n $(\'#creat" + +"eJob_DeviceHeldContainer\').hide();\r\n }\r\n //#endregion\r\n\r\n " + +" //#region QuickLog\r\n var $quickLog = $(\'#createJob_QuickLo" + +"g\');\r\n var $quickLogContainer = $(\'#createJob_QuickLogContainer\');\r\n " + +" var $quickLogTaskTimeContainer = $(\'#createJob_QuickLogTaskTimeContai" + +"ner\');\r\n var $quickLogTaskTimes = $quickLogTaskTimeContainer.find(\'in" + +"put[type=\"radio\"]\');\r\n var $quickLogTaskTimeOtherMinutes = $(\'#create" + +"Job_TaskTimeOtherMinutes\');\r\n var $quickLogTaskTimeValidationMessage " + +"= $quickLogTaskTimeContainer.find(\'[data-valmsg-for=\"QuickLogTaskTimeMinutes\"]\')" + +";\r\n\r\n $deviceHeld.change(validateQuickLog);\r\n $jobTypes.ch" + +"ange(validateQuickLog);\r\n validateQuickLog();\r\n\r\n function" + +" validateQuickLog() {\r\n var quickLogAllowed = false;\r\n\r\n " + +" if ($deviceHeld.val() === \'True\') {\r\n quickLogAllowed " + +"= false;\r\n } else {\r\n var selectedType = $jobT" + +"ypes.filter(\':checked\').val();\r\n switch (selectedType) {\r\n " + +" case \'HMisc\':\r\n case \'SApp\':\r\n " + +" case \'SImg\':\r\n case \'SOS\':\r\n " + +" case \'UMgmt\':\r\n quickLogAllowed = true;\r" + +"\n break;\r\n default:\r\n " + +" quickLogAllowed = false;\r\n break;\r" + +"\n }\r\n }\r\n\r\n if (quickLogAllowed" + +") {\r\n $quickLogContainer.slideDown();\r\n } else" + +" {\r\n if (init)\r\n $quickLogContainer.hi" + +"de();\r\n else\r\n $quickLogContainer.slid" + +"eUp();\r\n $quickLog.attr(\'checked\', null).change();\r\n " + +" }\r\n }\r\n\r\n $quickLog.change(function () {\r\n " + +" if ($(this).is(\':checked\')) {\r\n $quickLogTaskTimeConta" + +"iner.slideDown();\r\n } else {\r\n $quickLogTaskTi" + +"meContainer.slideUp();\r\n }\r\n });\r\n\r\n $quick" + +"LogTaskTimes.change(function () {\r\n if ($quickLogTaskTimes.filter" + +"(\':checked\').val() === \"\") {\r\n $(\'#createJob_TaskTimeOtherMin" + +"utesContainer\').show();\r\n $quickLogTaskTimeOtherMinutes.attr(" + +"\'disabled\', null).focus().select();\r\n } else {\r\n " + +" $(\'#createJob_TaskTimeOtherMinutesContainer\').hide();\r\n $q" + +"uickLogTaskTimeOtherMinutes.attr(\'disabled\', \'disabled\');\r\n }\r\n " + +" });\r\n //#endregion\r\n\r\n init = false;\r\n })" + +";\r\n \r\n\r\n"); + + } + } +} +#pragma warning restore 1591 diff --git a/Disco.Web/Views/Job/Create_Redirect.cshtml b/Disco.Web/Views/Job/Create_Redirect.cshtml new file mode 100644 index 00000000..0603bbbb --- /dev/null +++ b/Disco.Web/Views/Job/Create_Redirect.cshtml @@ -0,0 +1,21 @@ +@model Disco.Web.Models.Job.CreateRedirectModel +@{ + Layout = null; + ViewBag.Title = Html.ToBreadcrumb("Jobs", MVC.Job.Index(), "Create - Redirecting..."); +} +Redirecting... + diff --git a/Disco.Web/Views/Job/Create_Redirect.generated.cs b/Disco.Web/Views/Job/Create_Redirect.generated.cs new file mode 100644 index 00000000..6b7a7188 --- /dev/null +++ b/Disco.Web/Views/Job/Create_Redirect.generated.cs @@ -0,0 +1,87 @@ +#pragma warning disable 1591 +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.17929 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Disco.Web.Views.Job +{ + using System; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Net; + using System.Text; + using System.Web; + using System.Web.Helpers; + using System.Web.Mvc; + using System.Web.Mvc.Ajax; + using System.Web.Mvc.Html; + using System.Web.Routing; + using System.Web.Security; + using System.Web.UI; + using System.Web.WebPages; + using Disco.BI.Extensions; + using Disco.Models.Repository; + using Disco.Web; + using Disco.Web.Extensions; + + [System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "1.5.0.0")] + [System.Web.WebPages.PageVirtualPathAttribute("~/Views/Job/Create_Redirect.cshtml")] + public class Create_Redirect : System.Web.Mvc.WebViewPage + { + public Create_Redirect() + { + } + public override void Execute() + { + + #line 2 "..\..\Views\Job\Create_Redirect.cshtml" + + Layout = null; + ViewBag.Title = Html.ToBreadcrumb("Jobs", MVC.Job.Index(), "Create - Redirecting..."); + + + #line default + #line hidden +WriteLiteral("\r\n(Model.RedirectLink + + #line default + #line hidden +, 195), false) +); + +WriteLiteral(@">Redirecting... + +"); + + } + } +} +#pragma warning restore 1591 diff --git a/Disco.Web/Views/Job/Index.cshtml b/Disco.Web/Views/Job/Index.cshtml new file mode 100644 index 00000000..0d3fc80c --- /dev/null +++ b/Disco.Web/Views/Job/Index.cshtml @@ -0,0 +1,131 @@ +@model Disco.Web.Models.Job.IndexModel +@{ + ViewBag.Title = "Jobs"; + Html.BundleDeferred("~/ClientScripts/Modules/Highcharts"); +} +
+
+

Search Jobs

+ @Html.Partial(MVC.Shared.Views._SearchDialog, "jobs") +
+
+

Daily Opened & Closed Jobs

+
+
+ +
+
+

Open Jobs Awaiting Technician Action (@Model.OpenJobs.Items.Count)

+@Html.Partial(MVC.Shared.Views._JobTable, Model.OpenJobs, new ViewDataDictionary()) +

Long Running Jobs (@Model.LongRunningJobs.Items.Count)

+@Html.Partial(MVC.Shared.Views._JobTable, Model.LongRunningJobs, new ViewDataDictionary()) +@*

+ Jobs with Devices Ready for Return (@Model.ReadyForReturnJobs.Items.Count)

+@Html.Partial(MVC.Shared.Views._JobTable, Model.ReadyForReturnJobs, new ViewDataDictionary()) +

+ Jobs Waiting for User Action (@Model.WaitingForUserActionJobs.Items.Count)

+@Html.Partial(MVC.Shared.Views._JobTable, Model.WaitingForUserActionJobs, new ViewDataDictionary()) +

+ Recently Closed Jobs (@Model.RecentlyClosedJobs.Items.Count)

+@Html.Partial(MVC.Shared.Views._JobTable, Model.RecentlyClosedJobs, new ViewDataDictionary())*@ diff --git a/Disco.Web/Views/Job/Index.generated.cs b/Disco.Web/Views/Job/Index.generated.cs new file mode 100644 index 00000000..8b9d4728 --- /dev/null +++ b/Disco.Web/Views/Job/Index.generated.cs @@ -0,0 +1,191 @@ +#pragma warning disable 1591 +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.17929 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Disco.Web.Views.Job +{ + using System; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Net; + using System.Text; + using System.Web; + using System.Web.Helpers; + using System.Web.Mvc; + using System.Web.Mvc.Ajax; + using System.Web.Mvc.Html; + using System.Web.Routing; + using System.Web.Security; + using System.Web.UI; + using System.Web.WebPages; + using Disco.BI.Extensions; + using Disco.Models.Repository; + using Disco.Web; + using Disco.Web.Extensions; + + [System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "1.5.0.0")] + [System.Web.WebPages.PageVirtualPathAttribute("~/Views/Job/Index.cshtml")] + public class Index : System.Web.Mvc.WebViewPage + { + public Index() + { + } + public override void Execute() + { + + #line 2 "..\..\Views\Job\Index.cshtml" + + ViewBag.Title = "Jobs"; + Html.BundleDeferred("~/ClientScripts/Modules/Highcharts"); + + + #line default + #line hidden +WriteLiteral("\r\n\r\n \r\n

Search Jobs

\r\n"); + +WriteLiteral(" "); + + + #line 9 "..\..\Views\Job\Index.cshtml" + Write(Html.Partial(MVC.Shared.Views._SearchDialog, "jobs")); + + + #line default + #line hidden +WriteLiteral("\r\n \r\n \r\n

Daily Opened & Closed Jobs

\r\n \r\n \r\n \r\n (function () {\r\n\r\n var chartData;\r\n\r\n " + +" function buildChart() {\r\n $(function () {\r\n\r\n " + +" var data = chartData;\r\n\r\n var dataTotalOpenJobs" + +" = [];\r\n var dataOpenedJobs = [];\r\n " + +" var dataClosedJobs = [];\r\n for (var i = 0; i < data.len" + +"gth; i++) {\r\n var dataItem = data[i];\r\n " + +" var dataItemDate = new Date(parseInt(dataItem.Timestamp.substr(6, " + +"dataItem.Timestamp.length - 8))).getTime(); // $.datepicker.parseDate(\'yy-mm-dd\'" + +", dataItem.Timestamp.substr(0, 10)).getTime();\r\n data" + +"TotalOpenJobs.push([dataItemDate, dataItem.TotalJobs]);\r\n " + +" dataOpenedJobs.push([dataItemDate, dataItem.OpenedJobs]);\r\n " + +" dataClosedJobs.push([dataItemDate, dataItem.ClosedJobs]);\r\n " + +" }\r\n Highcharts.setOptions({\r\n " + +" global: {\r\n useUTC: false\r\n " + +" }\r\n });\r\n new" + +" Highcharts.Chart({\r\n chart: {\r\n " + +" renderTo: \'chartHostJobDailyOpenedClosed\',\r\n " + +" height: 175,\r\n animation: false\r\n " + +" },\r\n colors: [\'#BBBBBB\', \'#005fab\'" + +", \'#DB761D\'],\r\n title: {\r\n " + +" text: null\r\n },\r\n plo" + +"tOptions: {\r\n series: {\r\n " + +" marker: {\r\n radius: 3\r\n " + +" },\r\n animation:" + +" false\r\n }\r\n },\r\n " + +" legend: {\r\n align: \'left\'," + +"\r\n verticalAlign: \'top\',\r\n " + +" y: 0,\r\n floating: true,\r\n " + +" borderWidth: 0\r\n },\r\n " + +" xAxis: {\r\n type: \'datetime\',\r\n " + +" tickInterval: 7 * 24 * 3600 * 1000, // week\r\n " + +" tickWidth: 1,\r\n gridLineWi" + +"dth: 1,\r\n dateTimeLabelFormats: {\r\n " + +" week: \'%e %b\'\r\n }\r\n " + +" },\r\n yAxis: [{\r\n " + +" title: {\r\n text: null\r\n " + +" },\r\n labels: {\r\n " + +" enabled: false\r\n },\r\n" + +" min: 0\r\n }, {\r\n " + +" title: {\r\n text: nu" + +"ll\r\n },\r\n labels: " + +"{\r\n enabled: false\r\n " + +" },\r\n min: 0\r\n }" + +"],\r\n series: [{\r\n name" + +": \'Total Open Jobs\',\r\n data: dataTotalOpenJobs,\r\n" + +" yAxis: 1\r\n }, {\r\n " + +" name: \'Closed Jobs\',\r\n " + +" data: dataClosedJobs\r\n }, {\r\n " + +" name: \'Opened Jobs\',\r\n data: dataOpened" + +"Jobs\r\n }],\r\n credits: {\r\n " + +" enabled: false\r\n }\r\n " + +" });\r\n });\r\n }\r\n\r\n\r\n " + +" $.getJSON(\'"); + + + #line 110 "..\..\Views\Job\Index.cshtml" + Write(Url.Action(MVC.API.Job.StatisticsDailyOpenedClosed())); + + + #line default + #line hidden +WriteLiteral("\', function (data) {\r\n chartData = data;\r\n " + +"buildChart();\r\n });\r\n }());\r\n\r\n \r\n " + +"\r\n\r\n

Open Jobs Awaiting Technician Action ("); + + + #line 119 "..\..\Views\Job\Index.cshtml" + Write(Model.OpenJobs.Items.Count); + + + #line default + #line hidden +WriteLiteral(")

\r\n"); + + + #line 120 "..\..\Views\Job\Index.cshtml" +Write(Html.Partial(MVC.Shared.Views._JobTable, Model.OpenJobs, new ViewDataDictionary())); + + + #line default + #line hidden +WriteLiteral("\r\n

Long Running Jobs ("); + + + #line 121 "..\..\Views\Job\Index.cshtml" + Write(Model.LongRunningJobs.Items.Count); + + + #line default + #line hidden +WriteLiteral(")

\r\n"); + + + #line 122 "..\..\Views\Job\Index.cshtml" +Write(Html.Partial(MVC.Shared.Views._JobTable, Model.LongRunningJobs, new ViewDataDictionary())); + + + #line default + #line hidden +WriteLiteral("\r\n"); + +WriteLiteral("\r\n"); + + } + } +} +#pragma warning restore 1591 diff --git a/Disco.Web/Views/Job/JobParts/Components.cshtml b/Disco.Web/Views/Job/JobParts/Components.cshtml new file mode 100644 index 00000000..8add3f6c --- /dev/null +++ b/Disco.Web/Views/Job/JobParts/Components.cshtml @@ -0,0 +1,184 @@ +@model Disco.Web.Models.Job.ShowModel +@{ + Html.BundleDeferred("~/ClientScripts/Modules/jQuery-NumberFormatter"); + } + + + + + + + @foreach (var jc in Model.Job.JobComponents) + { + + + + + + } + + + + +
+ Description + + Cost + +   +
+ + + + + +
+ Add Component + + Total: +
+
+

+ + Are you sure?

+
+ diff --git a/Disco.Web/Views/Job/JobParts/Components.generated.cs b/Disco.Web/Views/Job/JobParts/Components.generated.cs new file mode 100644 index 00000000..d6390244 --- /dev/null +++ b/Disco.Web/Views/Job/JobParts/Components.generated.cs @@ -0,0 +1,294 @@ +#pragma warning disable 1591 +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.17929 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Disco.Web.Views.Job.JobParts +{ + using System; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Net; + using System.Text; + using System.Web; + using System.Web.Helpers; + using System.Web.Mvc; + using System.Web.Mvc.Ajax; + using System.Web.Mvc.Html; + using System.Web.Routing; + using System.Web.Security; + using System.Web.UI; + using System.Web.WebPages; + using Disco.BI.Extensions; + using Disco.Models.Repository; + using Disco.Web; + using Disco.Web.Extensions; + + [System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "1.5.0.0")] + [System.Web.WebPages.PageVirtualPathAttribute("~/Views/Job/JobParts/Components.cshtml")] + public class Components : System.Web.Mvc.WebViewPage + { + public Components() + { + } + public override void Execute() + { + + #line 2 "..\..\Views\Job\JobParts\Components.cshtml" + + Html.BundleDeferred("~/ClientScripts/Modules/jQuery-NumberFormatter"); + + + #line default + #line hidden +WriteLiteral("\r\n\r\n \r\n \r\n Description\r\n \r\n \r\n" + +" Cost\r\n \r\n \r\n  \r\n \r\n \r\n"); + + + #line 17 "..\..\Views\Job\JobParts\Components.cshtml" + + + #line default + #line hidden + + #line 17 "..\..\Views\Job\JobParts\Components.cshtml" + foreach (var jc in Model.Job.JobComponents) + { + + + #line default + #line hidden +WriteLiteral("
\r\n\r\n"); + + } + } +} +#pragma warning restore 1591 diff --git a/Disco.Web/Views/Shared/_EmptyLayout.cshtml b/Disco.Web/Views/Shared/_EmptyLayout.cshtml new file mode 100644 index 00000000..aac3831a --- /dev/null +++ b/Disco.Web/Views/Shared/_EmptyLayout.cshtml @@ -0,0 +1,21 @@ +@{ + Html.BundleDeferred("~/Style/Site"); + Html.BundleDeferred("~/ClientScripts/Core"); +} + + + + Disco - @CommonHelpers.BreadcrumbsTitle(ViewBag.Title) + + + + + @Html.BundleRenderDeferred() + @RenderSection("head", false) + + +
+ @RenderBody() +
+ + diff --git a/Disco.Web/Views/Shared/_EmptyLayout.generated.cs b/Disco.Web/Views/Shared/_EmptyLayout.generated.cs new file mode 100644 index 00000000..bea714f3 --- /dev/null +++ b/Disco.Web/Views/Shared/_EmptyLayout.generated.cs @@ -0,0 +1,131 @@ +#pragma warning disable 1591 +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.17929 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Disco.Web.Views.Shared +{ + using System; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Net; + using System.Text; + using System.Web; + using System.Web.Helpers; + using System.Web.Mvc; + using System.Web.Mvc.Ajax; + using System.Web.Mvc.Html; + using System.Web.Routing; + using System.Web.Security; + using System.Web.UI; + using System.Web.WebPages; + using Disco.BI.Extensions; + using Disco.Models.Repository; + using Disco.Web; + using Disco.Web.Extensions; + + [System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "1.5.0.0")] + [System.Web.WebPages.PageVirtualPathAttribute("~/Views/Shared/_EmptyLayout.cshtml")] + public class EmptyLayout : System.Web.Mvc.WebViewPage + { + public EmptyLayout() + { + } + public override void Execute() + { + + #line 1 "..\..\Views\Shared\_EmptyLayout.cshtml" + + Html.BundleDeferred("~/Style/Site"); + Html.BundleDeferred("~/ClientScripts/Core"); + + + #line default + #line hidden +WriteLiteral("\r\n\r\n\r\n\r\n Disco - "); + + + #line 8 "..\..\Views\Shared\_EmptyLayout.cshtml" + Write(CommonHelpers.BreadcrumbsTitle(ViewBag.Title)); + + + #line default + #line hidden +WriteLiteral("\r\n \r\n \r\n \r\n \r\n"); + +WriteLiteral(" "); + + + #line 13 "..\..\Views\Shared\_EmptyLayout.cshtml" +Write(Html.BundleRenderDeferred()); + + + #line default + #line hidden +WriteLiteral("\r\n"); + +WriteLiteral(" "); + + + #line 14 "..\..\Views\Shared\_EmptyLayout.cshtml" +Write(RenderSection("head", false)); + + + #line default + #line hidden +WriteLiteral("\r\n\r\n\r\n \r\n"); + +WriteLiteral(" "); + + + #line 18 "..\..\Views\Shared\_EmptyLayout.cshtml" + Write(RenderBody()); + + + #line default + #line hidden +WriteLiteral("\r\n
\r\n\r\n\r\n"); + + } + } +} +#pragma warning restore 1591 diff --git a/Disco.Web/Views/Shared/_JobTable.cshtml b/Disco.Web/Views/Shared/_JobTable.cshtml new file mode 100644 index 00000000..eb8e2a95 --- /dev/null +++ b/Disco.Web/Views/Shared/_JobTable.cshtml @@ -0,0 +1,27 @@ +@model Disco.Models.BI.Job.JobTableModel +@if (DiscoApplication.MultiSiteMode) +{ + if (Model == null || Model.Items == null || Model.Items.Count == 0) + { + No Jobs Found + } + else + { + var modelItems = Model.Items; + var modelItemsGrouped = modelItems.OrderBy(i => i.DeviceAddress).GroupBy(i => i.DeviceAddress); + foreach (var modelItemsGroup in modelItemsGrouped) + { + Model.Items = modelItemsGroup.ToList(); + if (modelItemsGroup.Key != null) + { +

+ @modelItemsGroup.Key

+ } + @Html.Partial(MVC.Shared.Views._JobTableRender, Model, new ViewDataDictionary()) + } + } +} +else +{ + @Html.Partial(MVC.Shared.Views._JobTableRender, Model, new ViewDataDictionary()) +} \ No newline at end of file diff --git a/Disco.Web/Views/Shared/_JobTable.generated.cs b/Disco.Web/Views/Shared/_JobTable.generated.cs new file mode 100644 index 00000000..6a2528df --- /dev/null +++ b/Disco.Web/Views/Shared/_JobTable.generated.cs @@ -0,0 +1,131 @@ +#pragma warning disable 1591 +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.17929 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Disco.Web.Views.Shared +{ + using System; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Net; + using System.Text; + using System.Web; + using System.Web.Helpers; + using System.Web.Mvc; + using System.Web.Mvc.Ajax; + using System.Web.Mvc.Html; + using System.Web.Routing; + using System.Web.Security; + using System.Web.UI; + using System.Web.WebPages; + using Disco.BI.Extensions; + using Disco.Models.Repository; + using Disco.Web; + using Disco.Web.Extensions; + + [System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "1.5.0.0")] + [System.Web.WebPages.PageVirtualPathAttribute("~/Views/Shared/_JobTable.cshtml")] + public class JobTable : System.Web.Mvc.WebViewPage + { + public JobTable() + { + } + public override void Execute() + { + + #line 2 "..\..\Views\Shared\_JobTable.cshtml" + if (DiscoApplication.MultiSiteMode) +{ + if (Model == null || Model.Items == null || Model.Items.Count == 0) + { + + + #line default + #line hidden +WriteLiteral(" No Jobs Found\r\n"); + + + #line 7 "..\..\Views\Shared\_JobTable.cshtml" + } + else + { + var modelItems = Model.Items; + var modelItemsGrouped = modelItems.OrderBy(i => i.DeviceAddress).GroupBy(i => i.DeviceAddress); + foreach (var modelItemsGroup in modelItemsGrouped) + { + Model.Items = modelItemsGroup.ToList(); + if (modelItemsGroup.Key != null) + { + + + #line default + #line hidden +WriteLiteral("

\r\n"); + +WriteLiteral(" "); + + + #line 18 "..\..\Views\Shared\_JobTable.cshtml" + Write(modelItemsGroup.Key); + + + #line default + #line hidden +WriteLiteral("

\r\n"); + + + #line 19 "..\..\Views\Shared\_JobTable.cshtml" + } + + + #line default + #line hidden + + #line 20 "..\..\Views\Shared\_JobTable.cshtml" +Write(Html.Partial(MVC.Shared.Views._JobTableRender, Model, new ViewDataDictionary())); + + + #line default + #line hidden + + #line 20 "..\..\Views\Shared\_JobTable.cshtml" + + } + } +} +else +{ + + + #line default + #line hidden + + #line 26 "..\..\Views\Shared\_JobTable.cshtml" +Write(Html.Partial(MVC.Shared.Views._JobTableRender, Model, new ViewDataDictionary())); + + + #line default + #line hidden + + #line 26 "..\..\Views\Shared\_JobTable.cshtml" + +} + + #line default + #line hidden + } + } +} +#pragma warning restore 1591 diff --git a/Disco.Web/Views/Shared/_JobTableRender.cshtml b/Disco.Web/Views/Shared/_JobTableRender.cshtml new file mode 100644 index 00000000..81bb7c9a --- /dev/null +++ b/Disco.Web/Views/Shared/_JobTableRender.cshtml @@ -0,0 +1,108 @@ +@model Disco.Models.BI.Job.JobTableModel +@{ + Html.BundleDeferred("~/ClientScripts/Modules/Disco-DataTableHelpers"); +} +
+ @if (Model != null && Model.Items.Count() > 0) + { + + + + @if (Model.ShowId) + { } + @if (Model.ShowStatus) + { } + @if (Model.ShowDates) + { } + @if (Model.ShowType) + { } + @if (Model.ShowDevice) + { } + @if (Model.ShowUser) + { } + @if (Model.ShowTechnician) + { } + @if (Model.ShowLocation) + { } + + + + @foreach (var item in Model.Items) + { + + @if (Model.ShowId) + { } + @if (Model.ShowStatus) + { } + @if (Model.ShowDates) + { } + @if (Model.ShowType) + { } + @if (Model.ShowDevice) + { } + @if (Model.ShowUser) + {} + @if (Model.ShowTechnician) + { } + @if (Model.ShowLocation) + { } + + } + +
+ Ref + + Status + + Dates + + Type + + Device + + User + + Technician + + Location +
+ @Html.ActionLink(item.Id.ToString(), MVC.Job.Show(item.Id)) + + + @item.StatusDescription + + @CommonHelpers.FriendlyDate(item.OpenedDate) + - @CommonHelpers.FriendlyDate(item.ClosedDate) + + @item.TypeId + + @if (item.DeviceSerialNumber != null) + { + @Html.ActionLink(item.DeviceSerialNumber, MVC.Device.Show(item.DeviceSerialNumber), new { Title = item.DeviceModelDescription }) + } + else + { + N/A + } + + @if (item.UserId != null) + { + @Html.ActionLink(string.Format("{0} ({1})", item.UserDisplayName, item.UserId), MVC.User.Show(item.UserId)) + } + else + { + N/A + } + + @item.OpenedTechUserId + + + @(item.Location ?? "Unknown") + +
+ } + else + { + No Jobs Found + } +
diff --git a/Disco.Web/Views/Shared/_JobTableRender.generated.cs b/Disco.Web/Views/Shared/_JobTableRender.generated.cs new file mode 100644 index 00000000..d0b906a3 --- /dev/null +++ b/Disco.Web/Views/Shared/_JobTableRender.generated.cs @@ -0,0 +1,732 @@ +#pragma warning disable 1591 +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.17929 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Disco.Web.Views.Shared +{ + using System; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Net; + using System.Text; + using System.Web; + using System.Web.Helpers; + using System.Web.Mvc; + using System.Web.Mvc.Ajax; + using System.Web.Mvc.Html; + using System.Web.Routing; + using System.Web.Security; + using System.Web.UI; + using System.Web.WebPages; + using Disco.BI.Extensions; + using Disco.Models.Repository; + using Disco.Web; + using Disco.Web.Extensions; + + [System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "1.5.0.0")] + [System.Web.WebPages.PageVirtualPathAttribute("~/Views/Shared/_JobTableRender.cshtml")] + public class JobTableRender : System.Web.Mvc.WebViewPage + { + public JobTableRender() + { + } + public override void Execute() + { + + #line 2 "..\..\Views\Shared\_JobTableRender.cshtml" + + Html.BundleDeferred("~/ClientScripts/Modules/Disco-DataTableHelpers"); + + + #line default + #line hidden +WriteLiteral("\r\n\r\n"); + + + #line 6 "..\..\Views\Shared\_JobTableRender.cshtml" + + + #line default + #line hidden + + #line 6 "..\..\Views\Shared\_JobTableRender.cshtml" + if (Model != null && Model.Items.Count() > 0) + { + + + #line default + #line hidden +WriteLiteral(" (Model.IsSmallTable ? " smallTable" : string.Empty + + #line default + #line hidden +, 239), false) + + #line 8 "..\..\Views\Shared\_JobTableRender.cshtml" + , Tuple.Create(Tuple.Create("", 291), Tuple.Create(Model.HideClosedJobs ? " hideStatusClosed" : string.Empty + + #line default + #line hidden +, 291), false) +); + +WriteLiteral(">\r\n \r\n \r\n"); + + + #line 11 "..\..\Views\Shared\_JobTableRender.cshtml" + + + #line default + #line hidden + + #line 11 "..\..\Views\Shared\_JobTableRender.cshtml" + if (Model.ShowId) + { + + #line default + #line hidden +WriteLiteral(" \r\n Ref\r\n "); + + + #line 14 "..\..\Views\Shared\_JobTableRender.cshtml" + } + + + #line default + #line hidden +WriteLiteral(" "); + + + #line 15 "..\..\Views\Shared\_JobTableRender.cshtml" + if (Model.ShowStatus) + { + + #line default + #line hidden +WriteLiteral(" \r\n Status\r\n "); + + + #line 18 "..\..\Views\Shared\_JobTableRender.cshtml" + } + + + #line default + #line hidden +WriteLiteral(" "); + + + #line 19 "..\..\Views\Shared\_JobTableRender.cshtml" + if (Model.ShowDates) + { + + #line default + #line hidden +WriteLiteral(" \r\n Dates\r\n "); + + + #line 22 "..\..\Views\Shared\_JobTableRender.cshtml" + } + + + #line default + #line hidden +WriteLiteral(" "); + + + #line 23 "..\..\Views\Shared\_JobTableRender.cshtml" + if (Model.ShowType) + { + + #line default + #line hidden +WriteLiteral(" \r\n Type\r\n "); + + + #line 26 "..\..\Views\Shared\_JobTableRender.cshtml" + } + + + #line default + #line hidden +WriteLiteral(" "); + + + #line 27 "..\..\Views\Shared\_JobTableRender.cshtml" + if (Model.ShowDevice) + { + + #line default + #line hidden +WriteLiteral("\r\n Device\r\n "); + + + #line 30 "..\..\Views\Shared\_JobTableRender.cshtml" + } + + + #line default + #line hidden +WriteLiteral(" "); + + + #line 31 "..\..\Views\Shared\_JobTableRender.cshtml" + if (Model.ShowUser) + { + + #line default + #line hidden +WriteLiteral(" \r\n User\r\n "); + + + #line 34 "..\..\Views\Shared\_JobTableRender.cshtml" + } + + + #line default + #line hidden +WriteLiteral(" "); + + + #line 35 "..\..\Views\Shared\_JobTableRender.cshtml" + if (Model.ShowTechnician) + { + + #line default + #line hidden +WriteLiteral(" \r\n Technician\r\n "); + + + #line 38 "..\..\Views\Shared\_JobTableRender.cshtml" + } + + + #line default + #line hidden +WriteLiteral(" "); + + + #line 39 "..\..\Views\Shared\_JobTableRender.cshtml" + if (Model.ShowLocation) + { + + #line default + #line hidden +WriteLiteral(" \r\n Location\r\n "); + + + #line 42 "..\..\Views\Shared\_JobTableRender.cshtml" + } + + + #line default + #line hidden +WriteLiteral(" \r\n \r\n \r\n"); + + + #line 46 "..\..\Views\Shared\_JobTableRender.cshtml" + + + #line default + #line hidden + + #line 46 "..\..\Views\Shared\_JobTableRender.cshtml" + foreach (var item in Model.Items) + { + + + #line default + #line hidden +WriteLiteral("
\r\n
\r\n Disco v"); + + + #line 103 "..\..\Views\Shared\_Layout.cshtml" + Write(Disco.Web.DiscoApplication.Version); + + + #line default + #line hidden +WriteLiteral(" "); + +WriteLiteral("@ "); + + + #line 103 "..\..\Views\Shared\_Layout.cshtml" + Write(Disco.Web.DiscoApplication.OrganisationName); + + + #line default + #line hidden +WriteLiteral(" | discoict.co" + +"m.au | "); + + + #line 104 "..\..\Views\Shared\_Layout.cshtml" + Write(Html.ActionLink("Credits", MVC.Public.Public.Credits())); + + + #line default + #line hidden +WriteLiteral(" | "); + + + #line 104 "..\..\Views\Shared\_Layout.cshtml" + Write(Html.ActionLink("Licence", MVC.Public.Public.Licence())); + + + #line default + #line hidden +WriteLiteral("\r\n
\r\n \r\n\r\n\r\n"); + + } + } +} +#pragma warning restore 1591 diff --git a/Disco.Web/Views/Shared/_SearchDialog.cshtml b/Disco.Web/Views/Shared/_SearchDialog.cshtml new file mode 100644 index 00000000..6f6450cb --- /dev/null +++ b/Disco.Web/Views/Shared/_SearchDialog.cshtml @@ -0,0 +1,35 @@ +@model string +@using (Html.BeginForm(MVC.Search.Query(), FormMethod.Get)) +{ + @Html.ValidationSummary(true) +
+ + + + + +
+ Query: + + @Html.TextBox("term") + @if (Model != null) + { + @Html.Hidden("limit", Model) + if (Model == "jobs") + { +
+ + } + } +
+

+ +

+ +
+} \ No newline at end of file diff --git a/Disco.Web/Views/Shared/_SearchDialog.generated.cs b/Disco.Web/Views/Shared/_SearchDialog.generated.cs new file mode 100644 index 00000000..7821beff --- /dev/null +++ b/Disco.Web/Views/Shared/_SearchDialog.generated.cs @@ -0,0 +1,169 @@ +#pragma warning disable 1591 +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.17929 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Disco.Web.Views.Shared +{ + using System; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Net; + using System.Text; + using System.Web; + using System.Web.Helpers; + using System.Web.Mvc; + using System.Web.Mvc.Ajax; + using System.Web.Mvc.Html; + using System.Web.Routing; + using System.Web.Security; + using System.Web.UI; + using System.Web.WebPages; + using Disco.BI.Extensions; + using Disco.Models.Repository; + using Disco.Web; + using Disco.Web.Extensions; + + [System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "1.5.0.0")] + [System.Web.WebPages.PageVirtualPathAttribute("~/Views/Shared/_SearchDialog.cshtml")] + public class SearchDialog : System.Web.Mvc.WebViewPage + { + public SearchDialog() + { + } + public override void Execute() + { + + #line 2 "..\..\Views\Shared\_SearchDialog.cshtml" + using (Html.BeginForm(MVC.Search.Query(), FormMethod.Get)) +{ + + + #line default + #line hidden + + #line 4 "..\..\Views\Shared\_SearchDialog.cshtml" +Write(Html.ValidationSummary(true)); + + + #line default + #line hidden + + #line 4 "..\..\Views\Shared\_SearchDialog.cshtml" + + + + #line default + #line hidden +WriteLiteral(" \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Q" + +"uery:\r\n \r\n"); + +WriteLiteral(" "); + + + #line 12 "..\..\Views\Shared\_SearchDialog.cshtml" + Write(Html.TextBox("term")); + + + #line default + #line hidden +WriteLiteral("\r\n"); + + + #line 13 "..\..\Views\Shared\_SearchDialog.cshtml" + + + #line default + #line hidden + + #line 13 "..\..\Views\Shared\_SearchDialog.cshtml" + if (Model != null) + { + + + #line default + #line hidden + + #line 15 "..\..\Views\Shared\_SearchDialog.cshtml" + Write(Html.Hidden("limit", Model)); + + + #line default + #line hidden + + #line 15 "..\..\Views\Shared\_SearchDialog.cshtml" + + if (Model == "jobs") + { + + + #line default + #line hidden +WriteLiteral("
\r\n"); + +WriteLiteral(" "); + +WriteLiteral("Search Details\r\n"); + + + #line 21 "..\..\Views\Shared\_SearchDialog.cshtml" + } + } + + + #line default + #line hidden +WriteLiteral("
\r\n \r\n \r\n

\r\n \r\n $(function () {\r\n $(\'#searchDialog\').find(\'#term\')." + +"watermark(\'Search\').focus();\r\n });\r\n \r\n \r\n"); + + + #line 35 "..\..\Views\Shared\_SearchDialog.cshtml" +} + + #line default + #line hidden + } + } +} +#pragma warning restore 1591 diff --git a/Disco.Web/Views/User/Index.cshtml b/Disco.Web/Views/User/Index.cshtml new file mode 100644 index 00000000..2fe96a85 --- /dev/null +++ b/Disco.Web/Views/User/Index.cshtml @@ -0,0 +1,6 @@ +@{ + ViewBag.Title = "Users"; +} +

+ Search for a User

+@Html.Partial(MVC.Shared.Views._SearchDialog, "users") diff --git a/Disco.Web/Views/User/Index.generated.cs b/Disco.Web/Views/User/Index.generated.cs new file mode 100644 index 00000000..9df96d91 --- /dev/null +++ b/Disco.Web/Views/User/Index.generated.cs @@ -0,0 +1,65 @@ +#pragma warning disable 1591 +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.17929 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Disco.Web.Views.User +{ + using System; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Net; + using System.Text; + using System.Web; + using System.Web.Helpers; + using System.Web.Mvc; + using System.Web.Mvc.Ajax; + using System.Web.Mvc.Html; + using System.Web.Routing; + using System.Web.Security; + using System.Web.UI; + using System.Web.WebPages; + using Disco.BI.Extensions; + using Disco.Models.Repository; + using Disco.Web; + using Disco.Web.Extensions; + + [System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "1.5.0.0")] + [System.Web.WebPages.PageVirtualPathAttribute("~/Views/User/Index.cshtml")] + public class Index : System.Web.Mvc.WebViewPage + { + public Index() + { + } + public override void Execute() + { + + #line 1 "..\..\Views\User\Index.cshtml" + + ViewBag.Title = "Users"; + + + #line default + #line hidden +WriteLiteral("\r\n

\r\n Search for a User

\r\n"); + + + #line 6 "..\..\Views\User\Index.cshtml" +Write(Html.Partial(MVC.Shared.Views._SearchDialog, "users")); + + + #line default + #line hidden +WriteLiteral("\r\n"); + + } + } +} +#pragma warning restore 1591 diff --git a/Disco.Web/Views/User/Show.cshtml b/Disco.Web/Views/User/Show.cshtml new file mode 100644 index 00000000..82a6fb71 --- /dev/null +++ b/Disco.Web/Views/User/Show.cshtml @@ -0,0 +1,85 @@ +@model Disco.Web.Models.User.ShowModel +@{ + ViewBag.Title = Html.ToBreadcrumb("Users", MVC.User.Index(), string.Format("{0} ({1})", Model.User.DisplayName, Model.User.Id)); + Html.BundleDeferred("~/ClientScripts/Modules/Silverlight"); + Html.BundleDeferred("~/ClientScripts/Modules/Disco-CreateJob"); +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Id: + + @Model.User.Id + Given Name: + + @Model.User.GivenName +
Type: + + @Model.User.Type + Surname: + + @Model.User.Surname +
Display Name: + + @Model.User.DisplayName +
Email Address: + + @Model.User.EmailAddress + Phone Number: + + @Model.User.PhoneNumber +
Assigned Devices: + + @Html.Partial(MVC.User.Views._UserDeviceAssignmentHistoryTable, Model.User) +
Generate Documents: + + @Html.DropDownList("DocumentTemplates", Model.DocumentTemplatesSelectListItems) + +
+

Jobs

+@Html.Partial(MVC.Shared.Views._JobTable, Model.Jobs) +

Attachments

+@Html.Partial(MVC.User.Views.UserParts.Resources, Model) +
+ @Html.ActionLinkButton("Create Job", MVC.Job.Create(Model.PrimaryDeviceSerialNumber, Model.User.Id), "buttonCreateJob") +
diff --git a/Disco.Web/Views/User/Show.generated.cs b/Disco.Web/Views/User/Show.generated.cs new file mode 100644 index 00000000..92aa4cdc --- /dev/null +++ b/Disco.Web/Views/User/Show.generated.cs @@ -0,0 +1,300 @@ +#pragma warning disable 1591 +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.17929 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Disco.Web.Views.User +{ + using System; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Net; + using System.Text; + using System.Web; + using System.Web.Helpers; + using System.Web.Mvc; + using System.Web.Mvc.Ajax; + using System.Web.Mvc.Html; + using System.Web.Routing; + using System.Web.Security; + using System.Web.UI; + using System.Web.WebPages; + using Disco.BI.Extensions; + using Disco.Models.Repository; + using Disco.Web; + using Disco.Web.Extensions; + + [System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "1.5.0.0")] + [System.Web.WebPages.PageVirtualPathAttribute("~/Views/User/Show.cshtml")] + public class Show : System.Web.Mvc.WebViewPage + { + public Show() + { + } + public override void Execute() + { + + #line 2 "..\..\Views\User\Show.cshtml" + + ViewBag.Title = Html.ToBreadcrumb("Users", MVC.User.Index(), string.Format("{0} ({1})", Model.User.DisplayName, Model.User.Id)); + Html.BundleDeferred("~/ClientScripts/Modules/Silverlight"); + Html.BundleDeferred("~/ClientScripts/Modules/Disco-CreateJob"); + + + #line default + #line hidden +WriteLiteral("\r\n\r\n \r\n Id:\r\n \r\n \r\n"); + +WriteLiteral(" "); + + + #line 12 "..\..\Views\User\Show.cshtml" + Write(Model.User.Id); + + + #line default + #line hidden +WriteLiteral("\r\n \r\n Given Name:\r\n \r\n \r\n"); + +WriteLiteral(" "); + + + #line 17 "..\..\Views\User\Show.cshtml" + Write(Model.User.GivenName); + + + #line default + #line hidden +WriteLiteral("\r\n \r\n \r\n \r\n Type:\r\n \r\n \r\n"); + +WriteLiteral(" "); + + + #line 24 "..\..\Views\User\Show.cshtml" + Write(Model.User.Type); + + + #line default + #line hidden +WriteLiteral("\r\n \r\n Surname:\r\n \r\n \r\n"); + +WriteLiteral(" "); + + + #line 29 "..\..\Views\User\Show.cshtml" + Write(Model.User.Surname); + + + #line default + #line hidden +WriteLiteral("\r\n \r\n \r\n \r\n Display Name:\r\n \r\n \r\n"); + +WriteLiteral(" "); + + + #line 36 "..\..\Views\User\Show.cshtml" + Write(Model.User.DisplayName); + + + #line default + #line hidden +WriteLiteral("\r\n \r\n \r\n \r\n Email Address:\r\n \r\n \r\n"); + +WriteLiteral(" "); + + + #line 43 "..\..\Views\User\Show.cshtml" + Write(Model.User.EmailAddress); + + + #line default + #line hidden +WriteLiteral("\r\n \r\n Phone Number:\r\n \r\n \r\n"); + +WriteLiteral(" "); + + + #line 48 "..\..\Views\User\Show.cshtml" + Write(Model.User.PhoneNumber); + + + #line default + #line hidden +WriteLiteral("\r\n \r\n \r\n \r\n Assigned Devices:\r\n \r\n \r\n"); + +WriteLiteral(" "); + + + #line 55 "..\..\Views\User\Show.cshtml" + Write(Html.Partial(MVC.User.Views._UserDeviceAssignmentHistoryTable, Model.User)); + + + #line default + #line hidden +WriteLiteral("\r\n \r\n \r\n \r\n Generate Documents:\r\n \r\n \r\n"); + +WriteLiteral(" "); + + + #line 62 "..\..\Views\User\Show.cshtml" + Write(Html.DropDownList("DocumentTemplates", Model.DocumentTemplatesSelectListItems)); + + + #line default + #line hidden +WriteLiteral("\r\n \r\n $(function () {\r\n var generatePdfUrl = \'"); + + + #line 65 "..\..\Views\User\Show.cshtml" + Write(Url.Action(MVC.API.User.GeneratePdf(Model.User.Id, null))); + + + #line default + #line hidden +WriteLiteral(@"?DocumentTemplateId='; + var $documentTemplates = $('#DocumentTemplates'); + $documentTemplates.change(function () { + var v = $documentTemplates.val(); + if (v) { + window.location.href = generatePdfUrl + v; + $documentTemplates.val(''); + } + }); + }); + + + + +

Jobs

+"); + + + #line 80 "..\..\Views\User\Show.cshtml" +Write(Html.Partial(MVC.Shared.Views._JobTable, Model.Jobs)); + + + #line default + #line hidden +WriteLiteral("\r\n

Attachments

\r\n"); + + + #line 82 "..\..\Views\User\Show.cshtml" +Write(Html.Partial(MVC.User.Views.UserParts.Resources, Model)); + + + #line default + #line hidden +WriteLiteral("\r\n\r\n"); + +WriteLiteral(" "); + + + #line 84 "..\..\Views\User\Show.cshtml" +Write(Html.ActionLinkButton("Create Job", MVC.Job.Create(Model.PrimaryDeviceSerialNumber, Model.User.Id), "buttonCreateJob")); + + + #line default + #line hidden +WriteLiteral("\r\n\r\n"); + + } + } +} +#pragma warning restore 1591 diff --git a/Disco.Web/Views/User/UserParts/Resources.cshtml b/Disco.Web/Views/User/UserParts/Resources.cshtml new file mode 100644 index 00000000..a09f2d7a --- /dev/null +++ b/Disco.Web/Views/User/UserParts/Resources.cshtml @@ -0,0 +1,193 @@ +@model Disco.Web.Models.User.ShowModel +@{ + Html.BundleDeferred("~/Style/Shadowbox"); + Html.BundleDeferred("~/ClientScripts/Modules/Shadowbox"); +} + + + + +
+ +
+ +
+ +
+
+
+
+
+
+

+ + Are you sure?

+
diff --git a/Disco.Web/Views/User/UserParts/Resources.generated.cs b/Disco.Web/Views/User/UserParts/Resources.generated.cs new file mode 100644 index 00000000..d85a1ccf --- /dev/null +++ b/Disco.Web/Views/User/UserParts/Resources.generated.cs @@ -0,0 +1,479 @@ +#pragma warning disable 1591 +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.17929 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Disco.Web.Views.User.UserParts +{ + using System; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Net; + using System.Text; + using System.Web; + using System.Web.Helpers; + using System.Web.Mvc; + using System.Web.Mvc.Ajax; + using System.Web.Mvc.Html; + using System.Web.Routing; + using System.Web.Security; + using System.Web.UI; + using System.Web.WebPages; + using Disco.BI.Extensions; + using Disco.Models.Repository; + using Disco.Web; + using Disco.Web.Extensions; + + [System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "1.5.0.0")] + [System.Web.WebPages.PageVirtualPathAttribute("~/Views/User/UserParts/Resources.cshtml")] + public class Resources : System.Web.Mvc.WebViewPage + { + public Resources() + { + } + public override void Execute() + { + + #line 2 "..\..\Views\User\UserParts\Resources.cshtml" + + Html.BundleDeferred("~/Style/Shadowbox"); + Html.BundleDeferred("~/ClientScripts/Modules/Shadowbox"); + + + #line default + #line hidden +WriteLiteral("\r\n\r\n \r\n \r\n \r\n"); + + + #line 10 "..\..\Views\User\UserParts\Resources.cshtml" + + + #line default + #line hidden + + #line 10 "..\..\Views\User\UserParts\Resources.cshtml" + if (Model.User.UserAttachments != null) + { + foreach (var ua in Model.User.UserAttachments) + { + + + #line default + #line hidden +WriteLiteral(" (Url.Action(MVC.API.User.AttachmentDownload(ua.Id)) + + #line default + #line hidden +, 471), false) +); + +WriteLiteral(" data-attachmentid=\""); + + + #line 14 "..\..\Views\User\UserParts\Resources.cshtml" + Write(ua.Id); + + + #line default + #line hidden +WriteLiteral("\""); + +WriteLiteral(" data-mimetype=\""); + + + #line 14 "..\..\Views\User\UserParts\Resources.cshtml" + Write(ua.MimeType); + + + #line default + #line hidden +WriteLiteral("\""); + +WriteLiteral(">\r\n (ua.Filename + + #line default + #line hidden +, 632), false) +); + +WriteLiteral(">\r\n (Url.Action(MVC.API.User.AttachmentThumbnail(ua.Id)) + + #line default + #line hidden +, 713), false) +); + +WriteLiteral(" />\r\n (ua.Comments + + #line default + #line hidden +, 834), false) +); + +WriteLiteral(">\r\n"); + + + #line 18 "..\..\Views\User\UserParts\Resources.cshtml" + + + #line default + #line hidden + + #line 18 "..\..\Views\User\UserParts\Resources.cshtml" + if (!string.IsNullOrEmpty(ua.DocumentTemplateId)) + { + + #line default + #line hidden + + #line 19 "..\..\Views\User\UserParts\Resources.cshtml" + Write(ua.DocumentTemplate.Description); + + + #line default + #line hidden + + #line 19 "..\..\Views\User\UserParts\Resources.cshtml" + } + else + { + + #line default + #line hidden + + #line 21 "..\..\Views\User\UserParts\Resources.cshtml" + Write(ua.Comments); + + + #line default + #line hidden + + #line 21 "..\..\Views\User\UserParts\Resources.cshtml" + } + + #line default + #line hidden +WriteLiteral("\r\n "); + + + #line 22 "..\..\Views\User\UserParts\Resources.cshtml" + Write(ua.TechUser.ToString()); + + + #line default + #line hidden +WriteLiteral("\r\n (ua.Timestamp.ToFullDateTime() + + #line default + #line hidden +, 1250), false) +); + +WriteLiteral(">"); + + + #line 23 "..\..\Views\User\UserParts\Resources.cshtml" + Write(ua.Timestamp.ToFuzzy()); + + + #line default + #line hidden +WriteLiteral("\r\n \r\n"); + + + #line 25 "..\..\Views\User\UserParts\Resources.cshtml" + } + } + + + #line default + #line hidden +WriteLiteral(" \r\n \r\n \r\n \r\n + Shadowbox.init({ + skipSetup: true, + modal: true + }); + $(function () { + if (!document.DiscoFunctions) { + document.DiscoFunctions = {}; + } + document.DiscoFunctions.addAttachment = addAttachment; + + $Attachments = $('#Attachments'); + $attachmentOutput = $Attachments.find('.attachmentOutput'); + + $attachmentOutput.find('span.remove').click(removeAttachment); + + $('#dialogUpload').dialog({ autoOpen: false, + draggable: false, + modal: true, + resizable: false, + width: 860, + height: 550, + close: function () { + silverlightUploadAttachment.content.Navigator.Navigate('/Hidden'); + } + }); + + $('#dialogRemoveAttachment').dialog({ + resizable: false, + height: 140, + modal: true, + autoOpen: false + }); + + var onLoadNavigation = null; + var isLoaded = null; + Silverlight.createObject( + '"); + + + #line 68 "..\..\Views\User\UserParts\Resources.cshtml" + Write(Links.ClientBin.Disco_Silverlight_AttachmentUpload_xap); + + + #line default + #line hidden +WriteLiteral(@"', + $('#silverlightHostUploadAttachment').get(0), + 'silverlightUploadAttachment', + { width: '840px', height: '500px', background: 'white', version: '4.0.60310.0' }, + { onLoad: function () { + if (onLoadNavigation) { + silverlightUploadAttachment.content.Navigator.Navigate(onLoadNavigation); + isLoaded = true; + } + } + }, + 'UploadUrl="); + + + #line 79 "..\..\Views\User\UserParts\Resources.cshtml" + Write(Url.Action(MVC.API.User.AttachmentUpload(Model.User.Id, null))); + + + #line default + #line hidden +WriteLiteral(@"' + ); + + $attachmentInput = $Attachments.find('.attachmentInput'); + $attachmentInput.find('.photo').click(function () { + showDialog('/WebCam'); + }); + $attachmentInput.find('.upload').click(function () { + showDialog('/File'); + }); + + silverlightUploadAttachment = $('#silverlightUploadAttachment').get(0); + function showDialog(navigationPath) { + $('#dialogUpload').dialog('open'); + if (isLoaded) { + silverlightUploadAttachment.content.Navigator.Navigate(navigationPath); + } else { + onLoadNavigation = navigationPath; + } + }; + function addAttachment(id, quick) { + var data = { id: id }; + $.ajax({ + url: '"); + + + #line 102 "..\..\Views\User\UserParts\Resources.cshtml" + Write(Url.Action(MVC.API.User.Attachment())); + + + #line default + #line hidden +WriteLiteral(@"', + dataType: 'json', + data: data, + success: function (d) { + if (d.Result == 'OK') { + var a = d.Attachment; + + var e = $(''); + + e.attr('data-attachmentid', a.Id).attr('data-mimetype', a.MimeType).attr('href', '"); + + + #line 111 "..\..\Views\User\UserParts\Resources.cshtml" + Write(Url.Action(MVC.API.User.AttachmentDownload())); + + + #line default + #line hidden +WriteLiteral("/\' + a.Id);\r\n e.find(\'.icon img\').attr(\'src\', " + +"\'"); + + + #line 112 "..\..\Views\User\UserParts\Resources.cshtml" + Write(Url.Action(MVC.API.User.AttachmentThumbnail())); + + + #line default + #line hidden +WriteLiteral("/\' + a.Id);\r\n e.find(\'.comments\').text(a.Comme" + +"nts);\r\n e.find(\'.author\').text(a.Author);\r\n " + +" e.find(\'.timestamp\').text(a.TimestampFuzzy).at" + +"tr(\'title\', a.TimestampFull);\r\n e.find(\'.remo" + +"ve\').click(removeAttachment);\r\n if (!quick)\r\n" + +" e.hide();\r\n " + +" $attachmentOutput.append(e);\r\n if (!qu" + +"ick)\r\n e.show(\'slow\');\r\n " + +" if (a.MimeType.toLowerCase().indexOf(\'image/\') == 0)\r\n " + +" e.shadowbox({ gallery: \'attachments\', player: \'" + +"img\', title: a.Comments });\r\n } else {\r\n " + +" alert(\'Unable to add attachment: \' + d.Result);\r\n " + +" }\r\n },\r\n " + +" error: function (jqXHR, textStatus, errorThrown) {\r\n " + +" alert(\'Unable to add attachment: \' + textStatus);\r\n " + +" }\r\n });\r\n }\r\n " + +" function removeAttachment() {\r\n $this = $(this)." + +"closest(\'a\');\r\n\r\n var data = { id: $this.attr(\'data-attac" + +"hmentid\') };\r\n var $dialogRemoveAttachment = $(\'#dialogRe" + +"moveAttachment\');\r\n $dialogRemoveAttachment.dialog(\"enabl" + +"e\");\r\n $dialogRemoveAttachment.dialog(\'option\', \'buttons\'" + +", {\r\n \"Remove\": function () {\r\n " + +" $dialogRemoveAttachment.dialog(\"disable\");\r\n " + +" $dialogRemoveAttachment.dialog(\"option\", \"buttons\", null);\r\n " + +" $.ajax({\r\n url: \'"); + + + #line 144 "..\..\Views\User\UserParts\Resources.cshtml" + Write(Url.Action(MVC.API.User.AttachmentRemove())); + + + #line default + #line hidden +WriteLiteral("\',\r\n dataType: \'json\',\r\n " + +" data: data,\r\n success: function" + +" (d) {\r\n if (d == \'OK\') {\r\n " + +" $this.hide(300).delay(300).queue(function () {\r\n " + +" var $this = $(this);\r\n " + +" if ($this.attr(\'data-mimetype\').toLowerCase(" + +").indexOf(\'image/\') == 0)\r\n S" + +"hadowbox.removeCache(this);\r\n $th" + +"is.remove();\r\n });\r\n " + +" } else {\r\n ale" + +"rt(\'Unable to remove attachment: \' + d);\r\n " + +" }\r\n $dialogRemoveAttachment.dialog(\"clo" + +"se\");\r\n },\r\n " + +" error: function (jqXHR, textStatus, errorThrown) {\r\n " + +" alert(\'Unable to remove attachment: \' + textStatus);\r\n " + +" $dialogRemoveAttachment.dialog(\"close\");\r\n " + +" }\r\n });\r\n " + +" },\r\n Cancel: function () {\r\n " + +" $dialogRemoveAttachment.dialog(\"close\");\r\n " + +" }\r\n });\r\n\r\n $dialogRem" + +"oveAttachment.dialog(\'open\');\r\n\r\n return false;\r\n " + +" }\r\n $attachmentOutput.children(\'a\').each(function" + +" () {\r\n $this = $(this);\r\n if ($th" + +"is.attr(\'data-mimetype\').toLowerCase().indexOf(\'image/\') == 0)\r\n " + +" $this.shadowbox({ gallery: \'attachments\', player: \'img\', title: $thi" + +"s.find(\'.comments\').text() });\r\n });\r\n });\r\n " + +" \r\n \r\n \r\n\r\n\r\n \r\n \r\n\r\n\r\n

\r\n \r\n Are you sure?

\r\n\r\n"); + + } + } +} +#pragma warning restore 1591 diff --git a/Disco.Web/Views/User/_UserDeviceAssignmentHistoryTable.cshtml b/Disco.Web/Views/User/_UserDeviceAssignmentHistoryTable.cshtml new file mode 100644 index 00000000..799744c6 --- /dev/null +++ b/Disco.Web/Views/User/_UserDeviceAssignmentHistoryTable.cshtml @@ -0,0 +1,80 @@ +@model Disco.Models.Repository.User +@{ + var userId = Model.Id; +} +@if (Model.DeviceUserAssignments.Count > 0) +{ + + + + + + + + + @foreach (var dua in Model.DeviceUserAssignments.OrderByDescending(m => m.AssignedDate)) + { + + + + + + + + } + @if (Model.DeviceUserAssignments.Count(m => !m.UnassignedDate.HasValue) == 0) + { + + + + } +
+ Device Serial # + + Device Asset # + + Device Model + + Assigned + + Unassigned +
+ @Html.ActionLink(dua.Device.SerialNumber, MVC.Device.Show(dua.DeviceSerialNumber)) + + @dua.Device.AssetNumber + + @dua.Device.DeviceModel.ToString() + + @CommonHelpers.FriendlyDate(dua.AssignedDate) + + @CommonHelpers.FriendlyDate(dua.UnassignedDate, "Current") +
+ No Active Assignments +
+ Show + All Assignment History () + +} +else +{ + No Assignment History Available +} diff --git a/Disco.Web/Views/User/_UserDeviceAssignmentHistoryTable.generated.cs b/Disco.Web/Views/User/_UserDeviceAssignmentHistoryTable.generated.cs new file mode 100644 index 00000000..43fd50d3 --- /dev/null +++ b/Disco.Web/Views/User/_UserDeviceAssignmentHistoryTable.generated.cs @@ -0,0 +1,334 @@ +#pragma warning disable 1591 +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.17929 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Disco.Web.Views.User +{ + using System; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Net; + using System.Text; + using System.Web; + using System.Web.Helpers; + using System.Web.Mvc; + using System.Web.Mvc.Ajax; + using System.Web.Mvc.Html; + using System.Web.Routing; + using System.Web.Security; + using System.Web.UI; + using System.Web.WebPages; + using Disco.BI.Extensions; + using Disco.Models.Repository; + using Disco.Web; + using Disco.Web.Extensions; + + [System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "1.5.0.0")] + [System.Web.WebPages.PageVirtualPathAttribute("~/Views/User/_UserDeviceAssignmentHistoryTable.cshtml")] + public class UserDeviceAssignmentHistoryTable : System.Web.Mvc.WebViewPage + { + public UserDeviceAssignmentHistoryTable() + { + } + public override void Execute() + { + + #line 2 "..\..\Views\User\_UserDeviceAssignmentHistoryTable.cshtml" + + var userId = Model.Id; + + + #line default + #line hidden +WriteLiteral("\r\n"); + + + #line 5 "..\..\Views\User\_UserDeviceAssignmentHistoryTable.cshtml" + if (Model.DeviceUserAssignments.Count > 0) +{ + + + #line default + #line hidden +WriteLiteral(" (userId + + #line default + #line hidden +, 195), false) +); + +WriteLiteral(@"> + + + Device Serial # + + + Device Asset # + + + Device Model + + + Assigned + + + Unassigned + + +"); + + + #line 25 "..\..\Views\User\_UserDeviceAssignmentHistoryTable.cshtml" + + + #line default + #line hidden + + #line 25 "..\..\Views\User\_UserDeviceAssignmentHistoryTable.cshtml" + foreach (var dua in Model.DeviceUserAssignments.OrderByDescending(m => m.AssignedDate)) + { + + + #line default + #line hidden +WriteLiteral(" ((!dua.UnassignedDate.HasValue).ToString() + + #line default + #line hidden +, 719), false) +); + +WriteLiteral(">\r\n \r\n"); + +WriteLiteral(" "); + + + #line 29 "..\..\Views\User\_UserDeviceAssignmentHistoryTable.cshtml" + Write(Html.ActionLink(dua.Device.SerialNumber, MVC.Device.Show(dua.DeviceSerialNumber))); + + + #line default + #line hidden +WriteLiteral("\r\n \r\n \r\n"); + +WriteLiteral(" "); + + + #line 32 "..\..\Views\User\_UserDeviceAssignmentHistoryTable.cshtml" + Write(dua.Device.AssetNumber); + + + #line default + #line hidden +WriteLiteral("\r\n \r\n \r\n"); + +WriteLiteral(" "); + + + #line 35 "..\..\Views\User\_UserDeviceAssignmentHistoryTable.cshtml" + Write(dua.Device.DeviceModel.ToString()); + + + #line default + #line hidden +WriteLiteral("\r\n \r\n \r\n"); + +WriteLiteral(" "); + + + #line 38 "..\..\Views\User\_UserDeviceAssignmentHistoryTable.cshtml" + Write(CommonHelpers.FriendlyDate(dua.AssignedDate)); + + + #line default + #line hidden +WriteLiteral("\r\n \r\n \r\n"); + +WriteLiteral(" "); + + + #line 41 "..\..\Views\User\_UserDeviceAssignmentHistoryTable.cshtml" + Write(CommonHelpers.FriendlyDate(dua.UnassignedDate, "Current")); + + + #line default + #line hidden +WriteLiteral("\r\n \r\n \r\n"); + + + #line 44 "..\..\Views\User\_UserDeviceAssignmentHistoryTable.cshtml" + } + + + #line default + #line hidden +WriteLiteral(" "); + + + #line 45 "..\..\Views\User\_UserDeviceAssignmentHistoryTable.cshtml" + if (Model.DeviceUserAssignments.Count(m => !m.UnassignedDate.HasValue) == 0) + { + + + #line default + #line hidden +WriteLiteral(" \r\n \r\n No Active Assignments\r\n \r\n \r\n"); + + + #line 52 "..\..\Views\User\_UserDeviceAssignmentHistoryTable.cshtml" + } + + + #line default + #line hidden +WriteLiteral(" \r\n"); + +WriteLiteral(" (userId + + #line default + #line hidden +, 1752), false) +); + +WriteLiteral(" class=\"smallLink\""); + +WriteLiteral(">Show\r\n All Assignment History ((userId + + #line default + #line hidden +, 1869), false) +); + +WriteLiteral(">)\r\n"); + +WriteLiteral(" \r\n $(function () {\r\n var $table = $(\'#User_AssignedDevice_Hist" + +"ory_"); + + + #line 58 "..\..\Views\User\_UserDeviceAssignmentHistoryTable.cshtml" + Write(userId); + + + #line default + #line hidden +WriteLiteral(@"'); + var $inactiveRecords = $table.find('tr.assignmentActiveFalse').hide(); + if ($inactiveRecords.length != 0) { + var recordCountText = $inactiveRecords.length + ' record'; + if ($inactiveRecords.length != 1) + recordCountText += 's'; + $('#User_AssignedDevice_History_RecordCount_"); + + + #line 64 "..\..\Views\User\_UserDeviceAssignmentHistoryTable.cshtml" + Write(userId); + + + #line default + #line hidden +WriteLiteral("\').text(recordCountText);\r\n $(\'#User_AssignedDevice_History_Trigge" + +"r_"); + + + #line 65 "..\..\Views\User\_UserDeviceAssignmentHistoryTable.cshtml" + Write(userId); + + + #line default + #line hidden +WriteLiteral(@"').click(function () { + $(this).hide(); + $table.find('tr.noActiveAssignments').hide(); + $inactiveRecords.show(); + return false; + }); + } else { + $('#User_AssignedDevice_History_Trigger_"); + + + #line 72 "..\..\Views\User\_UserDeviceAssignmentHistoryTable.cshtml" + Write(userId); + + + #line default + #line hidden +WriteLiteral("\').hide();\r\n }\r\n });\r\n \r\n"); + + + #line 76 "..\..\Views\User\_UserDeviceAssignmentHistoryTable.cshtml" +} +else +{ + + + #line default + #line hidden +WriteLiteral(" No Assignment History Available\r\n"); + + + #line 80 "..\..\Views\User\_UserDeviceAssignmentHistoryTable.cshtml" +} + + + #line default + #line hidden + } + } +} +#pragma warning restore 1591 diff --git a/Disco.Web/Views/User/_UserTable.cshtml b/Disco.Web/Views/User/_UserTable.cshtml new file mode 100644 index 00000000..1c2fc845 --- /dev/null +++ b/Disco.Web/Views/User/_UserTable.cshtml @@ -0,0 +1,59 @@ +@model IEnumerable +
+ @if (Model != null && Model.Count() > 0) + { + + + + + + + + + + + + + @foreach (var item in Model) + { + + + + + + + + + } + +
+ Id + + Surname + + Given Name + + Display Name + + Assigned Devices + + Jobs +
+ @Html.ActionLink(item.Id, MVC.User.Show(item.Id)) + + @item.Surname + + @item.GivenName + + @item.DisplayName + + @item.AssignedDevicesCount + + @item.JobCount +
+ } + else + { + No Users Found + } +
diff --git a/Disco.Web/Views/User/_UserTable.generated.cs b/Disco.Web/Views/User/_UserTable.generated.cs new file mode 100644 index 00000000..c00b999a --- /dev/null +++ b/Disco.Web/Views/User/_UserTable.generated.cs @@ -0,0 +1,211 @@ +#pragma warning disable 1591 +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.17929 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Disco.Web.Views.User +{ + using System; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Net; + using System.Text; + using System.Web; + using System.Web.Helpers; + using System.Web.Mvc; + using System.Web.Mvc.Ajax; + using System.Web.Mvc.Html; + using System.Web.Routing; + using System.Web.Security; + using System.Web.UI; + using System.Web.WebPages; + using Disco.BI.Extensions; + using Disco.Models.Repository; + using Disco.Web; + using Disco.Web.Extensions; + + [System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "1.5.0.0")] + [System.Web.WebPages.PageVirtualPathAttribute("~/Views/User/_UserTable.cshtml")] + public class UserTable : System.Web.Mvc.WebViewPage> + { + public UserTable() + { + } + public override void Execute() + { +WriteLiteral("\r\n"); + + + #line 3 "..\..\Views\User\_UserTable.cshtml" + + + #line default + #line hidden + + #line 3 "..\..\Views\User\_UserTable.cshtml" + if (Model != null && Model.Count() > 0) + { + + + #line default + #line hidden +WriteLiteral(" + + + + Id + + + Surname + + + Given Name + + + Display Name + + + Assigned Devices + + + Jobs + + + + +"); + + + #line 29 "..\..\Views\User\_UserTable.cshtml" + + + #line default + #line hidden + + #line 29 "..\..\Views\User\_UserTable.cshtml" + foreach (var item in Model) + { + + + #line default + #line hidden +WriteLiteral(" \r\n \r\n"); + +WriteLiteral(" "); + + + #line 33 "..\..\Views\User\_UserTable.cshtml" + Write(Html.ActionLink(item.Id, MVC.User.Show(item.Id))); + + + #line default + #line hidden +WriteLiteral("\r\n \r\n \r\n"); + +WriteLiteral(" "); + + + #line 36 "..\..\Views\User\_UserTable.cshtml" + Write(item.Surname); + + + #line default + #line hidden +WriteLiteral("\r\n \r\n \r\n"); + +WriteLiteral(" "); + + + #line 39 "..\..\Views\User\_UserTable.cshtml" + Write(item.GivenName); + + + #line default + #line hidden +WriteLiteral("\r\n \r\n \r\n"); + +WriteLiteral(" "); + + + #line 42 "..\..\Views\User\_UserTable.cshtml" + Write(item.DisplayName); + + + #line default + #line hidden +WriteLiteral("\r\n \r\n \r\n"); + +WriteLiteral(" "); + + + #line 45 "..\..\Views\User\_UserTable.cshtml" + Write(item.AssignedDevicesCount); + + + #line default + #line hidden +WriteLiteral("\r\n \r\n \r\n"); + +WriteLiteral(" "); + + + #line 48 "..\..\Views\User\_UserTable.cshtml" + Write(item.JobCount); + + + #line default + #line hidden +WriteLiteral("\r\n \r\n \r\n"); + + + #line 51 "..\..\Views\User\_UserTable.cshtml" + } + + + #line default + #line hidden +WriteLiteral(" \r\n \r\n"); + + + #line 54 "..\..\Views\User\_UserTable.cshtml" + } + else + { + + + #line default + #line hidden +WriteLiteral(" No Users Found\r\n"); + + + #line 58 "..\..\Views\User\_UserTable.cshtml" + } + + + #line default + #line hidden +WriteLiteral("\r\n"); + + } + } +} +#pragma warning restore 1591 diff --git a/Disco.Web/Views/User/_ViewStart.cshtml b/Disco.Web/Views/User/_ViewStart.cshtml new file mode 100644 index 00000000..709935b5 --- /dev/null +++ b/Disco.Web/Views/User/_ViewStart.cshtml @@ -0,0 +1,3 @@ +@{ + Html.BundleDeferred("~/Style/User"); +} \ No newline at end of file diff --git a/Disco.Web/Views/User/_ViewStart.generated.cs b/Disco.Web/Views/User/_ViewStart.generated.cs new file mode 100644 index 00000000..0cca7b1e --- /dev/null +++ b/Disco.Web/Views/User/_ViewStart.generated.cs @@ -0,0 +1,54 @@ +#pragma warning disable 1591 +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.17929 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Disco.Web.Views.User +{ + using System; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Net; + using System.Text; + using System.Web; + using System.Web.Helpers; + using System.Web.Mvc; + using System.Web.Mvc.Ajax; + using System.Web.Mvc.Html; + using System.Web.Routing; + using System.Web.Security; + using System.Web.UI; + using System.Web.WebPages; + using Disco.BI.Extensions; + using Disco.Models.Repository; + using Disco.Web; + using Disco.Web.Extensions; + + [System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "1.5.0.0")] + [System.Web.WebPages.PageVirtualPathAttribute("~/Views/User/_ViewStart.cshtml")] + public class ViewStart : System.Web.Mvc.ViewStartPage + { + public ViewStart() + { + } + public override void Execute() + { + + #line 1 "..\..\Views\User\_ViewStart.cshtml" + + Html.BundleDeferred("~/Style/User"); + + + #line default + #line hidden + } + } +} +#pragma warning restore 1591 diff --git a/Disco.Web/Views/Web.config b/Disco.Web/Views/Web.config new file mode 100644 index 00000000..fbc5bd75 --- /dev/null +++ b/Disco.Web/Views/Web.config @@ -0,0 +1,62 @@ + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Disco.Web/Views/_ViewStart.cshtml b/Disco.Web/Views/_ViewStart.cshtml new file mode 100644 index 00000000..9c30ccf2 --- /dev/null +++ b/Disco.Web/Views/_ViewStart.cshtml @@ -0,0 +1,3 @@ +@{ + Layout = "~/Views/Shared/_Layout.cshtml"; +} \ No newline at end of file diff --git a/Disco.Web/Views/_ViewStart.generated.cs b/Disco.Web/Views/_ViewStart.generated.cs new file mode 100644 index 00000000..3e56c2f8 --- /dev/null +++ b/Disco.Web/Views/_ViewStart.generated.cs @@ -0,0 +1,54 @@ +#pragma warning disable 1591 +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.17929 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Disco.Web.Views +{ + using System; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Net; + using System.Text; + using System.Web; + using System.Web.Helpers; + using System.Web.Mvc; + using System.Web.Mvc.Ajax; + using System.Web.Mvc.Html; + using System.Web.Routing; + using System.Web.Security; + using System.Web.UI; + using System.Web.WebPages; + using Disco.BI.Extensions; + using Disco.Models.Repository; + using Disco.Web; + using Disco.Web.Extensions; + + [System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "1.5.0.0")] + [System.Web.WebPages.PageVirtualPathAttribute("~/Views/_ViewStart.cshtml")] + public class ViewStart : System.Web.Mvc.ViewStartPage + { + public ViewStart() + { + } + public override void Execute() + { + + #line 1 "..\..\Views\_ViewStart.cshtml" + + Layout = "~/Views/Shared/_Layout.cshtml"; + + + #line default + #line hidden + } + } +} +#pragma warning restore 1591 diff --git a/Disco.Web/Web.Debug.config b/Disco.Web/Web.Debug.config new file mode 100644 index 00000000..2f743e60 --- /dev/null +++ b/Disco.Web/Web.Debug.config @@ -0,0 +1,31 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Disco.Web/Web.Release.config b/Disco.Web/Web.Release.config new file mode 100644 index 00000000..9ebb53d6 --- /dev/null +++ b/Disco.Web/Web.Release.config @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Disco.Web/Web.config b/Disco.Web/Web.config new file mode 100644 index 00000000..762bd6a1 --- /dev/null +++ b/Disco.Web/Web.config @@ -0,0 +1,83 @@ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Disco.Web/_bin_deployableAssemblies/amd64/Microsoft.VC90.CRT/Microsoft.VC90.CRT.manifest b/Disco.Web/_bin_deployableAssemblies/amd64/Microsoft.VC90.CRT/Microsoft.VC90.CRT.manifest new file mode 100644 index 00000000..a7a7026c --- /dev/null +++ b/Disco.Web/_bin_deployableAssemblies/amd64/Microsoft.VC90.CRT/Microsoft.VC90.CRT.manifest @@ -0,0 +1,6 @@ + + + + + Vy8CgQgbu3qH5JHTK0op4kR8114= QTJu3Gttpt8hhCktGelNeXj4Yp8= 1ruqF7/L+m1tqnJVscaOtNRNHIE= + \ No newline at end of file diff --git a/Disco.Web/_bin_deployableAssemblies/amd64/Microsoft.VC90.CRT/README_ENU.txt b/Disco.Web/_bin_deployableAssemblies/amd64/Microsoft.VC90.CRT/README_ENU.txt new file mode 100644 index 0000000000000000000000000000000000000000..fc38b3684fbe06e056c123e9ff6f576f842c8b69 GIT binary patch literal 406 zcma)&K?=e!6hvn&c!wT9ih?%~T)7dwK#Z*hVp`guw^wI=tHqt0<|l9dpZR?~kGP^j zff@mkRnI!2frmrp{mgqn;x|(njMwCmq(aAc$FC+NzGj{W?6I>`{64BSq&Kuwds9t* zCA9_Sm|;teCd#*?T3HQlnOqreI$l7`C9(|izJDrmx~ESXlT7=Tmf;N($w#&T literal 0 HcmV?d00001 diff --git a/Disco.Web/_bin_deployableAssemblies/amd64/Microsoft.VC90.CRT/msvcr90.dll b/Disco.Web/_bin_deployableAssemblies/amd64/Microsoft.VC90.CRT/msvcr90.dll new file mode 100644 index 0000000000000000000000000000000000000000..c95e1bf213f99ca8c602a8c7dd33223215328fdb GIT binary patch literal 624448 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.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≷^X* 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 z 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%0DQ{|fUH|2K@p>g?1 zI~q6o0_?)>Q@2c*N$noqK7aP$ceLCaud4FpXKBRZkRCR*exk+)Hbd4txmLn`i3hyz1b03V`VpmaU^5xHGZ;Y$0R@NBXr)#yIdgYO&_NTsGld9aaq@m%=wavKb=NJ_Osv;$h=YXi6UI_jZ4|R8T@-=BoNkzxo%2F#S5A z{FVg08VDI{=GDX3&8DTwd+@(%K zRcTRGofR+YU9E6=V7OxNyg&Ll?Ew9%6xk#FPCv!PO~Z$62mQ)!H+rE1nWD(b-&Aov z=vUCR1J6*uoa!~Jf%^5s!hUkpuOYhzGyU4=Qiti+s+(ND8vn}mtHL<0U$vHT{n}qj zzheG}`ZZ=w1kUG*kRgbx6+<)E@2m>*x_VLaEW^RRig!+Y{bL287;btjs{!jE#l1?0 zaGj$VOK-2j^^kL>EnDy8tM*syc7Gu4bNZ%!vsJm3CP=iBI(uO}}b*!Pq3?XZapYF?<=MJZ{DgcEm% z9Krc^`RyIiINxpxEcXk}w;t{EWpKVVCO?VA`L^tdxK=pdo;0mY!1-2vDx^1#hq{Fx zMjQ|4F8<+r91nj8IL+qUCw>JHINz>rJ$x?Cw?Dty&*s~gO*U=D`S$0(zh?98Z>uVN zf%ENmO4o8Y-`;Ng+n+e!mMMy#iSzBdN6X&feEWCXBfD|F&40J04bHbahjsrJ=i3ue z<+5TMe++f`VG+(BCVG?2 zAM2j|ej4Ww*WJ6v;`}kwXHOu`AE_aVbttd-8AB$cyxd2Gv-zV*U+3w#KJokZ2PUtw zsstvlQzkGciWGX^o--@@#&vB zKKoz-54&32rv{%>_3f?6Yj3zl8T?3Zh&AxEknn@V*Jc zwt)K<{B{BE19uSok3#rKc!#@fCb(y&gu7e$KY}X+8t#?kKLCgK6u|~HF}smuXs&ix z?zq9n+NkuYQ?aFw`~6Ix!W+-MSMI;))9v6bpPVl*c9?kbl27^a2YuEIeB*O*_!OV8 zSH3>BKg{t-i>=e4_P)nH&pXWM(6r4KAOE#EKCUnC`$TwT`E*as_36L3ZiitvAN%A# zKHFhw&AUGNzZ`3?yPxF~@qB?#!H!4XE`}{#3TA(QsN;I?E=0ej)AM&z+HP3ijDqVt zJ;Sb(%3+6(%rUeB$c@?U@EdXLn^+9NClvbD*9e!HLTm_BVdb(8GQ+ z!z;eq7+w(fD3h}GFxs}seum?&4CPJ8$!F|d zqUqHfe(%t>3BOYG@W7LulWq+S8UmREt6Xa!~DW|3?r?sF)W-@o87a@pQ&P~ ze7%a_ySn-dL%Dl1&|{F_p9u_=%1sP&tsXNh?9!6mYmyM6!oB5Z>0?ZF+tCwoR@n!W z{SaV+`_$1J6bv??%q7&L~fuGR5h{WX2)^+83IU*3_^mkpb2FWlLQ9`ELM&w8Vd?(cHsn<`%prHw~~lqnjL zKras1db{7jBpQ|T!|-xtJJO$m_WV_?-eB5&(4URY42z|q0kZ<_mJFmLhjrW1{eBXy zJ@wV-nqLp0k&E)C#t)}7=J&h@DMUxV%ziVml5HD$VgJ*^eh(w**=!z0%3HM(>CmX__Uq>>>7$?DEevwkQm;Ade!cuWitZnLMtd?Y zh7Nqxxj?Dc(snl|b~&&=jw;d~*4Q#Vih92=RIfdKAf5Yd-Th9zqUpSc)h^!7Nuphj ztaEMFH<||71-#gFCxVVTd1COrFG7VJJm`TYR^QRQB$}OGJbAiedGDvT4FaPS zPyQZq!pqc2(T@%6-zshnoyx*}yI)>nMYu!SAl2LzvjGUyLoO99vQ`K!hM zpU0oijviwZk_N=J;~Q>wg!F9EpFjggw9S-*gk5L|dR~;V%oZ+>saetU)w+ zKg>fcd>Oq1QQ74LtCy+&7fk+zzcxFJ{_-06tiAG^2c2N_&~t2`PWd>HeIGct+Frgt zXIq)=%jMd3W&3gY4M(v3IAz)rwjT$4n4aXD16wR z?X%^!8o>713d7^r{#x#E1KVGVoHB~yHfc>-J>dzbkav z!!W;`8~a|I^3{BXi)+_%C*q)qdU42kV^hPgTP z5li2H1;a>1+22^Y@HmFKi%&3=S82-jQ*w`GFpS*(3qw<(KiBt=m6G0<7*8NeIJeo= zbWMQ6tIjs+qPu+3Iz>6Gp1VQlRh-Je`?UkZ|`+Z>(%1;v+W&d=A6F@ z^hYaGhur1Ues~i|8(w&~wM;7|?R4l?lWUreboj4xZ*7h7rq|Xsu#dM2r22BFQyeZ1 zq=uQ+$rWmKqp|h3UHdXHnD)(jTeba??t;$%x~j(Jy{SmH)mg)mB-RJJGuzJ@xMG#vNfjC>d6Fylu*_oeN!$%7att&?wKGrH%`IX}nw9 zd(T$=Xkibh(-FsO(A8C!`Q7_!IIaBc&yEEPwDe2`yAw^C#8B&kbAAus1<{6AGJ`w7 z{@~VAXJYH+4yP*HxOKy`wW56eXv5Vbe_mNXh_+}~;hZt52d!~>*Ei+r#Lyi>mMn6f zGnf{>**eejQ3Or9cP!jCB$n=cQ0}f(TMf0o@uNY%UroFIWU6+{u`hk$_x_9(iKT&$ zet+@p#wa>K9lOmbG>OhiFR0@(JDRq?Ip$&&lbUY-a_HuI&w9{13m0xzuOCWpR{J(- z+_6O3Kj_PKR*voI&+pq-YqKtqwrqXBg>%qAA%{OZ8^7Os^}+bQG$KV|vZ^(huB^A- zFgz-n9!we=x^A0_?pTtuzWlO&bY@mmn?oa2=5d25f%!kCAOGn4dy**rspoc5{W<2g z)9Xf-UXT2v_2Zwa7ys^l=cn$QfF6Cm-}(7|=jZ#K|Bu`s{(QglU*8{w?>BtDU-|j_ z4D|E;%Fp*J|6jO|isKP3z>`N9*k36`L|XcOpY;2A|Lym^b}83?ar)L%MaA9A0=t>u zd%O1bub<~Ff$yby$5w>zM}N1Z@9~CX7Aan5C;eVMrKMt^caGcUA?}L9FWd&tIdt!U zK!x;ke9}Ik^!>O0wp=ZJepxwr+#iaXy|-P7h5J(1vW}I>ypyHaH2j@*&(gVy>Zki& z&s%#H^Zjg}d>*gqr|y?>JJw5?acAI|0d8j%@0xY3?ROKtpIon=cGK^(6fckN9Z)6s zl45+oqdjdK%vJoAfzT#y1^S?%WH#;z4b2-QJ6GQ0a3#Y!{7T;WP z_6$CcP+!IR!UXq6C&Jy)Dd1qA`5$&))$*PyY%Tjn{^+gPlAcP39a})j?5}*TPM3R! zPU){G?4L<AXoghmy{xq;o6jJPS0~ z@@ID#*U$G0{<-%HqSLmWLSmTo1X!0N`g(RG z0Nke@jGti6^0CZU4{3@ZJik;N%lKAE)Gy}Y0`H~s#wf^3 z;%%8f^0$1XIOvxRY2tyO(t^KbTztp;O%~zVpU5A1NxUudNB)+N6bJqCvHlRAUn-7e ze0CwfK`{?Gynm_;5>F;GAS}y)`B*-d<#-L{&;#E9i+n8O;ycFAun5n#c*k($Aw8D) zB45kLGGCXnP=5%|FBRv5_zjDBI9a@7JmeugmiZ!I%f~X`07w%Fe7sBXvW$;1OtT2j zg!hl>9rBWRTjr1aEgvZk`ej0zLI~egDvo7*%>T7TxKpE#=a0N3-j?|z|NoOmR=Yf@ zZFC^DW9&)oh;pR1mmR6?=~`I5plZIXx;?3Gv?0}F%9834)}*>u8B)ElYJsexHL2)j zLn?YY=$&iXlUgwqNiDAmq?W8+uf(rTN^$wAQd=Xog6iy(doV_)% zhdk{)ZOpunHX`I4IFtiJNn1jBYwTxJIfxn$6>T<^&zHJCj3GoqSuJ*(gWakR9a|PMCLVaArs^*tYccB#_ zzktJZh%y&@;u7OXTp}EZ3*_Yz#%1PQs*b1&1{meXf{PMm%!2pb;3f*%xw18>>}5+T zdsbv}!8Fah;73ltNokVceHAz z^w2=A4Q)xKn6{)6gjIqthY!N~L0Df13p0nApfa3aU*H#J=7;_)-!2f|1j-xX3FT}} zs>)grOT7uje4Ca7{cQpI+Z^<_8L2LFBTgc34+wX*u_88MRvuCt--ExS=9);zS3pYg7Po< zX!-N4q5KU%mNIAJ_{5>GTtUh5q(OOPF4n|F7D$}+P97z7)v=_mRw)a70*Ir&e53<> zS%mc~uS&$lP~}PS7-AnPWBtmJ*k{@3Wvm_S%k}M5 zE9XPaA}fYEvvIT>8*3zeIC}$r$Nwj2$7DVxIb**w*cI61TkFe27VGJLxLLUG79qDJ zJ$1B!erHb{JTM!F#=F5C_;EIHX5N+UNM#tiE5q1b*-){-G2g*Fwl?~ikOXi< zDn}I?=m*7pKq{}|E?jH9N62iWD6cDwfzp^L#zQG?nQ3Zh?DU0Lp#AZETymgD|h+N2xDjkZ1WQH&LfD|=m8=3MfrKVgRG%U z$WvC`4#ou-8zKN<{H*R-S7{)leO`IC^v z;LN<3F2h_U>Ll^H{RZY6aArB-Jawdeal3?ZZN~U8RFGls2w4rTv&g$KydMIWRH7^} zcENlvuJgj9havq$dgR&~9f6gf15+kECs~^n6MyMyqR?Nc%5}$9%%E)nW5+7%# zqb1^++o7$kj0^{-m-LzGSosq3w8VG1os1~US;YN>4$N?nk;UN5?Z)E4TmpJm#j|*= zw5`0190n)Jl&{SkVQmI$G*~OthW-s>2wR(dtbhAgl#yQGq`_ zc4p&a1>$JnETkmBWf8W0tkMj3j`QbkdpC7skJs;_(mLuK?ow1x^}+ zmczSaOPP5Ll7SvnN8Ms`Ih$9_We#g4BOPEd*FchkxzED-TCA<5`l(yX$VG5woyGO* zA(+3N$`GeRU~|CuBZK~L8wCh`sUn~=8)u8>4vE*EjxtizNoF3iWmT+5m94O5sURa2 zpsX_J^A5-d#)xu=&ep_vD_^a!zJk2j*yYH_X6WBwKd_aCl!vmbj64BXBZbeet~GHT zUIEtxY#ok$*c;^MT+0sD^kO}ac343b^H}{=cNsYuP|U;G#RkSRXX26t>!boFvyRAn z$Vj6g8R;U)k+o;ZIk+0^F4YGo^-0%8I6peW{OClg8H(q}e>IOUg@ySBa1syR=RgK9 z&be|KnEM>+S=-(+G6YuEhoM1s|A$tf60_{>dS&t1IpsRA6g=Hs6{3oQeHb8$J4k zf*)V6+Y$RPSg)fkYm^aD7g#I8K1f6rSSMB{)wdRp>fEMn2xV>ncB|ZMw?09B<*lKg zf{h6MRAy&I?6z8ad}6<#z_}8vH?t}{DPL$`V3%*BFB@s?A+`7AJlX$8+PlD4J^z9K z@6TqaG6H7O;lRf<(p>mqS>ww<-r*>;?rwUvB@5JD0{d_xE!gb?BzLP$ag zLnuNLLij)5@6Y@5Ip=iY_y7HRJf6Mp_t*RWIq!*ek1@XK{vY4h)%W*x?s-CU(K?U4 z5B1mjQGK2u$F|||xo6YUhS&j9y||>T_oJ;2@n=25cmc5&qA_EE%%fZ1)H7za_gIov%QzZw_X=r@h0R3EN8>wCBCVHm#f!*~+)uIwX+gcTc(iGxO$+K^Nqo=V zrX%C>*7|!7-9M}PV0~5RPQAX9<&kp?>9UrI?_%@o=c@hJzQgz65gFzPecou6;`Yx+ z-CeHQ196VkguPLdCAv(k&1AoF>#Qm5dek~o`!#oe-%PZpF4`lz?U%$?sBZsSOPY_- zzt;HuE8;M2DH*DhbRKx+EK_^|)!tm$i8TgsHi^bhQDlEt^X0$n8A>Cj=z3l}F1L*u zxMv9J{H_J&>b~1&tlW|8pJIObZ_2Z=cUclKyOfcKlHrmo)L%m4d{8R=pS+>Po9Jqci z!cWZ+{j8CG)Hze|sOL=UNXuxRg3Kbf>~ZD!q8sLVmSR^L$vZGN?a>XStjYa95Uvg3 z+VrEJskGiD+~y;O%WdT4=MM6-?1*JwBhQUg*{4#jaYrmyynd$RXTlNvsIx=09^mXC zuMX|UTBu)|F5A+7ESp=7BJw!xh*oi;WV?P5)c*F9HioXx3Qt-ZyIH_MNg_~`SA^Od{5ZzlUm z(*9n>8*9m#XA9=wG|@b}(bjrb<=b|O#h$WtrI z-@JdL=%L}|m~iO1{RPL^;v$f1P^lj3{swk$Yj>$0dX{|fcw3C=V~fZ2c;v2$j($$D z55Kccu*Hpu{$tcJW2~yo4>VBQSx(!)-4UexcGEcO{Y0zbM9i<*xUuO)o z#RNDNcd6EO*B}16B8uGt?JiY!y~KGAd&M^NRc|~o>R6)AaCw5wn9wv;H0AtOw`asV zBbE8@IoK9w!davzRcYQP&DHK+s;-h_WS8^(Bkeo>8e)scP`CYKsCCu&e)t*wM%)IR z>iUzayPs)Jyv(`G1#KQpZnyL-TYL(8bUwaDe;~o^t~cqM^vhOD;_FR!9&aVuY)ziW zjn4H&=gdx`vymp+?rmMm-fx3Cm!=cDYZcB%>8Gvfr<{}4%KJHY-sL?bq@ya%hnz?mbn}T(y-?q)q zv_*fYS5rr+Mk{$QvyOH3la%ub#<{iXUPj5x#c`S1G|3jfK_20xs$?b_UyDwjY>WFr zx=YpQQcrZrY$&?)OOokaqf=ec>CSe0-I=y|q*;E`TzPI^SFY`g{I&hwrnSju98J%* zMdox{oKO6NP>s5#sN2uUQ0p=B;jJg!vDICVxNDz=)Dv~JgnCkEzKvOnG!ji7Wt}AN zOgFY*zn(_@H>dtt|Lkkwu9*p=?kUv%p^0d)H8tX{gL<g1BRXZa7M)mY$EA$C zb3S=eNkfqy>nhU8e>(Y3=dOiY5^kSySN-$wb$ip+$mPa#(K^2`UAHwyt~qO_52kHx5~jK^XkT1_)_RF>?f|NOKp1k`@S8m*UZMWZXMsaArBoLV z-QTia&SSmI`a1F6-OW3FkvRPOO0^F4?l9f^iMnbn-%K=n)ZJ@)`TS#>EjqsI%DYtC zoYtWx!1d*?4cm+WK4EGh8R3es_Or zi}ydb#b>&Ho2FSJ?an5V#`*E|ulm*&>tKNANA0`Z{^phc>pixp|D7!sdVc;T-FLsY z#aBNjr28-a`~GB$UcdaG`>*)7TaL(we=6^_wj&+` zue?SRQ|^~It6<)}GkKn=M}0SyYb@4%?dS{bCbZh?&TR2^JJ`?>eHwAzG*`FVzxdzU z*bz>Xxc@dM$a{|StPV!8mAndc_ZaDXOY(1dh|ve{1}_h)uN4qZoq0D9O(!Iud0TBA zaT@rt_Ahzf(T;B%xU=%&Z`!t=Xj{~pv9^_HyRUiD93s~tYdL4w3mtWxwCd=HJQ(WL zk=lz=-^u%?EuKvN+L`Zfx;Wz8B>#-fF@IgC_Vv=gOs{)aN1Oo{X#blDdqFox+@{TX z{S=XF@_#zh9NOIxm%@54oZ55KU!p1b>>s+f+sL;HoclEAzCqqW*6+%f6vQdVg&ySN z&~u|%JslB)`d*(tWc_y=ZY%%6{SDl<{e%0TxY@np@f)eONL}Kd?i`wz3wl#FI9gsF z!R@JkaNmX7PYLevyW_gTyE{HK%}YSZ@&@%5G0{&P=o#A@hu zlzQ8V+YjKytK|J+;ycQHnH*m?_jSbde(^ZnHH*AUcE3kx+Jv){B@Oo0t3CYNgMuS)DaecHPFjPe6BtG8@HzNjE-@TZ`hc*8u|B8 zvEh!m5Y~I?sq+TC{ywDKmt;HQYw*%@=R|j(%3337PW)k#$|tm~7$Py3f~ao!n@co4iajk=boYpfS?pXTm~67Jml#rH%~ z9FSfey$9od9+WFwItZNIl|ZR;&9H>BxvIL_kO zL#A=wBk$bZJH5mAa%Z09h!yaMmk)Ig$~O(jYzy`{-ggZ$&*z`*h|8uUlk@akr}h%; z*;td&c1iPq^dCFd5p@EN=&${^>0VbfH(HCNUZ%&-HTYM1p@R7OWmy5^BTOQ^RNXar zLZ3ZkJgu0?7zguodip*iqiG{kH0oDR?akzTF?yCG%E0?xa3T7K!TVnD&~pS8ChUka z;Z_}YG5T_N#!IUe^->VuXSruPoP{3p?S}jPRi`6}!S}@ytz5cx}2d z<{E89@=3Nku5KU>_uPf^Dmh=uJH}}Ij+LV}kw4cFSHXum??0h`?0iT3uFWT7egkvc z3-sDujZNHN^z+WS<8pN98PJaxI^rOB-xIp?ZPHzdKL(DN&%Alj|C!%8_zPYf_v@b5 z^X)4#?tl9#;c&avTi+e59sY7-1$d;d&}7Z;ZE!tYeLw@q8{N3vDkXO?elfFUBFmq*ol>Y{%Xuvm$ zuKdkG{>qOifB6WI+NZJ>Qr{o3@AAGsO0rM*F3FH{74rt)f5{uai2R=R(6vI^TJA3) z`TNVmzd=}tpWDG}Q@1~zaK!$U&miQs%j0_Nh{xxa^Ha*X?TF=EoFc<=?p9#A>qd2^ z!FMaH7br)>lY?j8aKx!^I^txnugJSi#zR`qzo|I1ta)#n8ks0?B0^f8??< zF1T}!KBs1nsr$X(--_RN#Q)%IFR!vckXP>;4E41q_hd);4oj_R-1@xth~Lm&T+3SG zGe^wT@pncJ(=nd}d-GC7XL+8slW$p&4Ttq}qMISl8<>CjE>W!kWZ1ogoANo|M@}Ma zI{vp^%o)g)d`okMNX=ZB4@eKk>TY%&3?Y)-^O~Lxy@m2 zOLRAy<9B%DTD4Q6zsc}h2;1)~N350Md)E`acV5iC{}S?W6?wRlJY13F$6znm&{!Z+ z_PXc)hn@#lf9r_*VFmRgRktrUqc1n5FY}#OcB3VS_T?<{;eJosTy%&ge@|=Zc}9q%K)+Cw~*IzH4pFT{YjfMicI;(^w}(lXl+v{@bB!$V)TE zPIZ5k&bc7xK}WcQRORJ+!TS5$y_XzQRbJe);f$l)fvW!0raj*=GwyodJNsefzJj}@ z4$KJ&_onK5>Nb3fUGH-*gj@D}%HF0!ia7L}0GSVE&pi^iNb2TPrlI`*OSx9bu*y%T ze=fWFmW4G5eVV=C7WqpSnMM=ByLS%E74kPDjGf$%%DuZkCN(~b`$%|&J|R`Lm%Ed6 zm24e{Y;{YLttJL-EbDa%=eBjY_kR)dphjX47q};^vP7?Cw&>3HKdoxG!{r+U+Jy5% zz7<=@IZurx>X&dPDZ^6l?J+m>%>5gQ{>0IfIJyx>C*o*H9LTlQHy5*4Ap^@&M3;qiM28y2o)W%MF zIK9RZ-Ah=fbDqN4Ytmhy(b5tvy?Es}_#9lfC~?1YF^)?S#}T##VfkJpVsIYN6LWja z_UFW{?(MmA%%eXr&h!17d#}+mRrFlwh^~~c5#_79kFfMfugog!XnrS$pFa3$?fS_u zj;$k(5@)yG4w4 zsiGa`7To#i@2K5yTN{b3%j$_c7uFXyb7tNt)}DKd4)n>6tg|``H{a^cV8*CaF^atRChrZ%dmY(+a&PA4vz{U9-ASIBS+pKcO2)wig~d;GM9K~)uuQ19Ytd}gB!(t zN0x~1zTEHMNK%~C2-#~~N1Z?SZdXV2M1N;<*W3g1kFqbR?-%Ho^3E}nJI8+f4o;3e zv~LYJnX7X3o^Rrw8|r`rvrjEZI(es+s4Mwfu^9cW zh~J9k>EDWNz&=fWr%zq=OYXZgf%>NRmBq#dYaO~m!GJCmpkt3uf_l1kGUw4$e$fV@&c;&yubQc0*9Af*2~fIlB44qc$9Ft*dM7r ziC_Lk_0agUHYb!jKVHt?Bk1S5`)d{GkpI#{uHOM#&CzPUR!g)xSE~!Px>Tzxwfdq~ zw`+BeR?T8J{w7-OsMX$D9j?_pt%kL_KOdcRiJX?2rUw`+BmRu5=3b%vX6Gp%;f z>Hw_{*XjhV7HKu2)%jXoqSbq}`m|QJYIToR4{Fseano(9)eNnkuGIpq&eiHQTD@JX zYqh#btJ}1?ORK+VwLz(y&M{gYs@2I_4QqA2R+nmZg;v*Ub)#0dYIT=Z|I%ucnQl7i zTJ59NEUo5f^<1q+wYo^F_h|JAt!~!phg#jQ)dsWNblPjRpH_!zb+lIVv|6my8m(Tb z)#X}Uqt(~6x?QW^YxSU3>xJEPTWYn7R!`RIXszaHwMeT`t^P-=i?zB!t828nL91J} zTC3H4T5VFM>sPCNv^qqqy;G}CXmyiTcWCvXR-2UT^t3uatE03! zO{+7tI#;V#YIV6*S84SLt-hw!ue54cxaqXkYHzJ(X?3br=WF#At*+JT%UZ3~>H)1b zlj9lxx@a|1tE03!S*yibt9h8?Ac7!V0lqEgk5)gVmK6vh;);9a-$W6!-|Tcp-P_Va*UBRrOHYg zud}B_OJgbxFlILou>E7K$F~U8JZQa&sy~w#W`wREBh=e5J}4tc;C}M&%#;z1*4* zs;nvtdA{!w*shf0y0c=ROV5o(MoN>x>@>Axfgwtd`}VGlYP@l->H&S%#bxV zB3e2-gseO+?M9SV&XPHt7zq}VPE$gLLwTi?xniOc4yhNSNrHV&1(A5(#QU;js=g3t zd>$)?OVJds$=FrqV>D_(RV-9VyY7&_53_w&#Zf-HG+I$!h8#@}MoWVQvfQf@>d6;G z;(1+$&{CIZ|FKH7DjfDC6u-}?a>_#I&501_0|{};&O=W@WXp8hCdO9Z8e1`2b)R9P z8d)gAl<59~mPu70@s>(kHkV&wYW}^Wlx>Q*FCia(tc2Knq_ScEskBe7J8WxJstF~= zE_!HLuxsL%Wr~=4XjyPyFXK_7A!})h*qBhZDdJ`6Duw zK`~vGDOcuCOqBXz*||bAmw6vQa;((9YmTX8{46a}EfAa$5)Vs%Bd8Y|fHG09C0<#5 zn>=emu(UEXvZgQ;aZA0#nh*=;7P?s+O*J!aEtYmU6&16pBBQFx)ws&w8J#1%kjR;l7q7`$*9m=GJKyjPWy93-^N`GcmC^{!8 zu9eDuLdf-Xk1|axor@gYr}U}@D6$Z@D|2>583R{L+^VrwwXI8WLH#`6T@~{*Q%}Q9Ac0P9}AL7L`E=-U%qSi zgwhP3}#E8r;ze2WM{*G7xozUFxTc6RjuOi-vEj(Eh;f$cK)Io)8fME2DG}X= z$|{!akXKqbOZTTNw+G49o;%%$Q<80H+mFng?6C|t-kR{^L^EwYL8#sz4f#GMCEMWV z8<|rz`l_)Xn_bB^q*EqSo>Uo%jtCV88TWIt$Bbaz&DyT2%pKF+2;}=DVkvaYQ^(hMTE>YsY@ng?AU7DM$N>yi?^Bf^01JC2U=W@Q=zb#d)9LIBR5#-#*Me2fEmz z{S>|vAivA`?MGyYE#&?8-l>il!S7Z)^3l&5z;6@yO~~5uaRy?)lCaxxYl7O1-_^|L zEPXMon`DdHX|xN!W!PevBJ21RaezA7a5W8k4excpbo9$%7w6;$AoGN}Vjyhbylo(U zH_hSu(%bmv4R%rQ^9hr2lOs06=>IyRXpJG3=J73ADc=^M-_Vyjg*|6EVh7*-tfa0N zQ7>DtlkDllBh17<;yWSM{A!4Uum$!WG{p2j4RIi~u2?msu2>C=VOd=uofW8yy7D*f zAg!Aad9WINH`M8<^I$z}hV8HuY}{lzBTzG88SH@_(4af*4`KZ6hlALqBJi~n>WTw= zpOZR`{FCld@-N$UC*NYMMZe{8Lu^0A5JT=jR-pZf#03i|`$o#K6m|16)H}Z!ST1Fg za7E|xwhLv>!T#^0C`-mm~J@0Cpa%>sOaM_EeGgCNc=y->^k*ScpD% z3+?+hat!NRaeq&^Wq%oBF?F_s50^H>#=i}*BAai7p+>V7yH)txb2jbJhxZpVaDRY4 z0n4Cud%oG4oFWz@-;qtWurV*?Th3j`f7(FY`#WOM4Bpsb-2v_!M@&l*8$g_$A~JvD8yHx@omLIRT3I3omJv^TzBkPr zLVx34Ve^xwI0!vnHN{kzzZ}`P6}fuO5Zz$QdUo$!Ezug5on(m!BFK^zhqJHjU47i^+6=ClK)bT^qC+y`r@*%X#ssreMrLHVf>@-cWmiLub zA4DEMM&>?c1@Q%aXcznLMzykWBZ4*KkW zd4uJDyjSvqA&Qtsrt5-Xzd=qjL@nxK$Ur~8l_B=SK#qapZ=LA36P{H}J#)_HR5#s5;+hJF{9Hmj-IMcmEK zKZZC_!^iTQY~H||4|~gym|{Eb`P4zi8`M`j^4^;?`QCd4 z>aOD$J3EjrtiB7CGKXI_#4^g<{vGlND_|+?fmD9yvUx^|m^w3sKkSN}oGwI<9NLle z+V^9OA)l)tm$L1EExGV>s@VP$_3|BKUTeNr`h|MqjesruCalR`Lu~q)w=jM;MEVcN z{!sc29E2S(@Kk;e2kGc-Sd(RnOvsaNun@wq3qPA726?as7DIdd3K%$qJ~G%8kyA`D z8vVgxrr3aeW;T6wxG9#QjsSavDORDbn?W1GK<+O$p{_$64Lfk34+ln?Vh?KX)3}cv zMgJXbiXrGDrxRujDsE{oHHUc4ppRo$BK@GBkDmp|^g7tGAKBVRy>N+|@jWui+|c?D zWC?X0bYsj5r{W*G>6r6T2cqsp-3&uu70652`J<47(e&FhkoU3lomq@ufNTu|B!scnvakv*b5t=$z90Eou=4-FMc7NFzMLsJ;>c`ecC>1isigFFb}oCc;und z6pPTW<@epo&~L0V#WwUCVfmS)I~y~0o2p3{GUn1hqw=&U$cOAM!x~|z+`0eGQy(Ye>p1pfmcwT zh13b^sIZ_!m@nkr2_KOhcOw72GMU|G3G{Fcl(xg&jYkA?I|uM?dKRfHc_(96Cns#V~{B>lk?PQAD zcE}{^A{f!0zI4D68(}TvOMbJ&Cf1D&PGOFvt(IjOB3ITA%!Ad#$oFvS78z+$zpmJb zY;K3C*yS^yPkj@aV|}%b_%}khvngsIy(?o$H~J@T`*|~HDRbm<=E&*HktNKLwTzpi z88;U(ZXRIVjJ?3R6ISwm*i^>o)!mV|akOo3R9JVZ5F2TmydI2+jLq|(rB7|4{J$|) ze9sub`ZDKt`Znv!TJ({wmKf5Svawd2kA87B-;)ib>=S9PJY*X7qF*(MHPmF<1-7AI zcqZ*Sfqsd)5^|={uCM@Bz?O57FGvkACqZl~Zf7C?65J1-O&w0d?i|WIoiqwqHwCFb z;!nps6%ODxmpH=tqya1Nn^s6#P>XpXYFZI_KwSybFQe>~f6F%H>uuVGdWvCJdpYw2 z`-eTW$G|^W4_{4~S6L6e##*C0Zz24NTphH;h`%k7{+GpCk$o%V!a;+*g$)*aNr(L> z`W1C>OJUwxO#NI(Us=MtX0Qkr^kTf~%NPgq`Y?W<$T&QJxuzfEDAY>3dh}n|0AZM4 zpZ)H3#sb*$0V;$CG3K9yeB570?7tK_l6$0=k-t}%J7MW2)@ZLHC$F&v-;8WP26b_e zzP`4Q@#tLESwYss=dgDR5hlPqSwQ#_>KB^KWS<3_i)puoguRM&HLSgYb>{-)3I@K; z{102OUp$_%Z5(=&-v(}GFE7W^GRDo>$OEi~Jjmj^@fz6kU(#K~*wqTTMBQ0UTh=hv zzRP&Jl`%`I4*O)7{}wX7h56@g+6vZgWjuI?_2_%_0a*PZaePF)S2JeZO8;2GSaTEm zj*m$5L(1|A`_3J-#Rrs|G}c^*{D3`}`Riono{{Wfp$UCy7pgQ%wc85T5T7Ee5R0<* zsY(&6t5euxk*`|nU~Y<7djWg3WvsVvAkO(IBI}YAvGP*ZISW%n@5P+?+>jz-?D01k zj2(;*k|v+fM?Zx$`_mb9X_JfbGS0TOHcGUe7 zDPq?;(s(9C3}lbQ23BOj0p5w7kDA9GWIyZr?VnLUpR*@gkKbpB|2gK0=TpSqzllR2 zkC16HM|?p!zhv*fi?F+ihyBh#SV6v4)S=#>{RZ|>?02?<%|2%*`<;W0@Y9TWp*i)_ z0-0>ZdaAHPF3er0TAy`K3Ceerkt2kZ4A zKhtJEF&^z>zw|wQ=OF(6z(49zsVDq0%n|f4)ErbBYSHJydI{4H?UvTSfDrXTZ zU!*=?N)h`v(I&5_h+5{s-mh~e!0$^I&<>kmMN9f7OlRGZ!Mb8|Q^tAZWPUAc>CX+( zV7{yFK%M_3_4G!H5N|Snlhz8<<=aw3&asT=%)7E)|7v zdy!$-!-i*Q=dZ}m9_H*Hsqg*N5%bYf2#;Y*h9S&td%G}xF}G!Qr~b#%mbugw^GOVP zPo_V?4(5&nFmMWapGF!%>wdm_ zg&uGUoB?xT1#E&Jpuq!tFAbyNT$l}4zzTR8-h;2;Ak<%-Do%q%uok`q=fPBw4rf9M zEP}To?IF^I)1d$^f&1YFI0!=@=9~={!tL+`ybpEPkRQl_61W2Hflcrsd?e3b5xPJIoD3sjJWPcG2tzeo42xj}tcJDl0=x+y zz)si))|1p3bc9|o5Jtj8$cHkhfs0@<+y?i-!$fEVBu*aly~ez2dR&q4?23dh4B z$b!=#7p6i1ltL8Fhf84*EQQI_yl&tFCf;_S0N2LK`%H7hQoN64Cg`! zVlWRbgT=5M?uIq+6l{do;a&I)zJouY&a;#SIzms#gkf+7oDDOe68;01!y;G$%i&JA zAD)Iy@D9|%ZulO4hJ#=~N4r7`Xb;_>H=GEAAsZ&ZIZz0*pb{>IMQ|(J0}sK|@G86w zJ772b1}V>{ik8p?`obxY19@-`grEXu!-a4K+yJ-3eXtf@fHz?~d=2|RY(R#f19XGq zVE|-74orh0sDcaNGFSq)!oBb~JP%vo1K0`Q!2vK|pkAOQbb&rF1Wt#upa{-`YPb-t zhCAS4cotrRccB)3geET{C(sXu!W1Zj`EV`V2KT{J@G`suAHpu!3x7kM{}B(Q!|`wm zoCXsh03{HC8dv~V!Vh$+Cn$z11G{MFcQYY6bQmh zh{1fg9v+1C@B(ax_u*6c27ZFSpzcfb7w7`V!yq^fCPEO(;CxsJH^H6oFsz5yVLN;c z``~Y=|1xtgbcg!1M4rd;mM)NB9%!Z{qhl&=$Hw1`LK#FagemnNS56!PRgx+zpSw zv+yds3!lOF@H>cCX)kC5Euk%Rgf7q%GGGu4hg>)Z!Y~IG!ZmO++zG4TVR!f^%R7oCg=cm2flM1CPVA@Cs~&PvIN*6|C2h zKWGQXLVp+rr^7@z2TGw5E`-bBI=C6`g4OUOyZ~>&d+-_ThM(Xd)Y(iL&;h!`32+h& zgE24>&Vf>>gbU#+xEbz(hv6xB3AVt;@HPAde?!AJ_>KU&Lti)*#=s;9LIu>oC2$Sg z3U|XJ@HD&xZ^1{f6Mlf-q0XD+8#=(T&>x1v8IT77D1l0t2baSV_%E!2$6!6Y0&l?w z@ELpyKZEfW{S%r)dpH(OfI%<}&VWe}gfciEE`{r0Iot=2z%%d?ybT}0PWTQEz~4}R z3%`?sPS6wj!znNV#>3fA2&FIwE`lrII=BgLhgI+>JO{7AHuwm3!;kO>7;jS^Xbqj9 z2lRo#FcKz05K5o|s^9{+1g?T5a0}c855YRv2wUJ2*bTpcwUz!29iSHsg&a5=N+AXd z;97VHUV#tcC#d@lbq&3s9}IypFagen8Bh*2umG08?QlP=gBM^kybn9!2RI0Iw^45B z0)60Q7!BiLD&#{cL}4B*fUDs~SOE{fI`|*F2_L~O*av?>%Dc!Sw1IBW2L{1#7z>ji z0JESP=EGHR1Ka`k!DH|&ybABYr?4A-2Js&K2wFmC=m~vcFpPlla26Co1Ff! zCJcjIm<}Z{8y3KIa63E*>){pH3ZKFr_!aCAX;Vmt-f%LEhN(~p5x5W*!OgG=*20Uh z1!`dr9DtOMm>-}M^oGGO8YV#zRKkUD72FK>!Wwu6UV^vbL--uNfqn2hI6IIFXa!y2 z1Q-a}Fc!{&Ak2a)xCpL-o8S(35Z1v<@Fsi!pTTbU3I2pSA0rpg0eZqoFdW9iG$?>D z%!Z5MYPbpRf(PL#_#eCl@5AS?2lm6Ckn#!g0Ii`j^ny${1{ukKrr$5q<~zQ`Yd%5qd%<41+N+0nULUD1+JXAGiXR!X5AsJP9wt>#z+zf-m4Z z_zj#|>IOQ&vCtPzh7m9h&Vm96!)&++u7+D-C9Hv`;3aqqK7uddNBAA=&uCw04ISYa z=na`L6h=V~Yy!VrVGa1ktoYv2aB1y;a4@DMx! z8{lQw4DY~)Pz$@@JNOy?2ImX*DbNDiL09Mr{ooWB0XZ-k&W1vm36)R-7s91*4J?Bd zunN||I@kcO!#nU1d;#CWPjC>NovcBj6{JH?=m&#g1dN5r5P(vMLN#0f7sJ(X9oz)B z!(H$IJPPaJd3XihhL7PZ_z@1k-;nYpG6OB4BlLh1AQMi8VK5R-hcjUs1Yib)AqwZi zMQ{aN3rpcvxC`!wM_?U12QR}Lunj(eui!iQ5q^O`!1#)BADTmJ=m_25ILL&-Fapki z2`~+UFcYG1K3oRZ!i{h{tb#SL4qk-UU@LqGpTREp0e*qMA?0h@1zJL9=n4JdWEcwB zFdD|eWXOjZ5P=$)4_CkvxEbz%`{8kT9$trc;A8j-euO_EWf$`Zw1KYB3;M&!Fbu{( zE}R8Hm9JmCog6rWnxEmgX$KiQ+9k#*;PzztfUicNnZstR14(*^b^nkuF2(saH z;MexT6c%?Yjz|&Qu?yZ|6#U&8(NOR@GjERYH+2MW8H*O8rD!Eui#DRIXeZi>4x*#z zB+^A^(M5C>-9&eBj5t>G5IsdN(OVoZ`iK)mhUhE$iT)x}oG1o}llaRSgT%>Vuoxmv z5ktkPB1;St!$r0jAx4T(;xsW@j1i}cGenLUE5?cO{AHap`KEfJ$P<&qWHE)8wayaL z#MxrHI7gf-0wP}oMS&<3MIt1M#SBp*O8KyCmI(9Psd7=lZP9uB@~Be8M3tB=sznXI zbC@g67xTmg;y>a-F<)FHE*6)F1>#b1nYdgm6jz8V#Z_XFxLRBzt`&>Lb^L1Kda;yW z5Zx$l;&(wei(AC4V!60Y+%EnrR){;qo#HOBQrs=>5%-E!;y!V|ctETc4~mDx!(xqi zL_8`U6Kloe;tBC2zs7q?JT0CP>&3I;IetI5LA)Sd6#o+&#Y^I4@ru|aUKOv2*ZH#Z zIPr#fQ@q7H7H^BK;vKP#Umd+C-WS`&2mFrkBe6q#EItvRidylR_*{G;c8V{>SK@22 zOY9ckh;PLn@tycy{2=y39%CMB_Aq;zz0Bjx-sbUUAM*q=!|ZGJ zGy9vF=85J2^CWYiImkTO9Bd9TPces@rZH_QUn*74o9Bqyjx0$z_|20>b zcbIpYcbO~AyUlydd(Bnmedhh<1LkV;LGvN=VRMc7i211bn7P(`+w|H#e9sm@k_DGdG$qnJ=5Kn48R3&DYG=&CTW;=9}hQ<`(m9bF2A|xy^jn ze9wH}+-`ngerSGV?l3<#KQTWwYt7Hh&&@B)o#vP3SLWB|E_1i}jrpy)$NbLx-u%Jb zYyN2NGk-Gon?IYsn7^6_%-_u4%|Fb8=AY(Y=HCqchGkloWm}GwV%4!yt-4k{tG?C1 zYG^gG8e2`QrdBhnxs_(Muv%KJtkzZ=tF6_}YHxM0I$E8qbgQ$~#p-Hxv$|WySjSpD zte#dc>o}{ob-dNbI>E}Y`da<0{#K@SqBX!e$r@-4vQD-JTSKf`Xv>j~>gYn}C!^|bYjwcdKxdd_;@+F-q4y=eW<+GxFGy==W=ZL(gqUb9}e zHd}94Z(46zTdcROt=2o%HtSvMJ?njIyY+$fq4klq!}{3z#QM~#wLY^xx4y7;T3=dU zSzlYbtlic(*0pSav>j!JE^`o`V`pMdF{cQbW{c0VsezShJ{;&>Oe_DT8d>CXK zwrN|oZ98^~UB^zf>)Q3~`gQ}mq20)CY&Wr++Rg0dcADM7ZfUo&Tib2ywst$az1_j? zXm_&H?ap==yQ|&J?rtArA8Yrpd)mG1_5k}Nd!RkY zKG_~@53x_NhuWvwS@tk{xSef}ut(aX?9=Sg_89wg`wTnB9&3-Y$J@E~nf3&GqMc_? zvM1Y9?5Xxy_B8u!d%As&eXbp_^X;HrU>Dj&cE~QaXV@insXf!4WryuDyWFm@BldZA z)ULE+c9lKbuC{CJIrd!pe0!dKf&Cx*LVLb_k$tg!iM_zS)V|EV++Jv3VP9!qWiPU? zwy&|TwHMph*-Px}?WOh&_Ko&U_A>is`xg6Fd%1m^eY^c%dxd?6eW!hwz0$thzQ?}T zUS;2B-)}!)ueKkwAF>~|*VvEPkJ^vfYwgGFC+sKfb@o&C)Alp=diz=XIs18ggZ+a2 zqWwR6qy3Wovi*v^$$r&-&3@h9Y`=W|{=(jAe`$YZe{JuwciZ3C-`acZ@9gjGAMCyMkM=(MCwssBv;B+x zt9`)!&Hml~!#-&LY5!&aZ41Y6OviF;$8l1eI!>xn*Qw{!cN#biokmV$p4M;bG;^9e zX-*5LrPIo3?X+>)I_;eHP6wx>)5%G9Iy+sQu1+_nyK{_ltkc8k>GX1rb9y_+JAIrJ zoD8S0)6ePeWI8801DunbfzBZ3WM{B5#5u(o>YVCiIm4XcPPQ|`8R?92PIE>(W1Q2S zGn^b}tTWCT@8mjXIuo3UPM$N#ne0q)raEUi)10%N>CQRMxlX{zcY;oVQ|J^qA*a}x z;gmR~&P->P6L!j+a;L(HIOjQ0r_zZzRnBau+Np8oICGuzov{-qXHOWEp?(zCZA{;c z!1zgdxs&q5si$TH0_7FufoLpN8mLe|AJ3|c6=h|eIda&rtYIUEPtNF@l{M|(Jm!uZ zKEm}?5G)E5^2~x8%P<)Wj%Oal{qR(h!z=gX$YcEex3uVJnUui~^AV3Am#}Jhd3mbE5YfI^b%ZTfIulfkIu@9+xE*k zYgq2cVN(NVsPe>(qh&R@h3t=?snV13l6jPT%f_LBWyuo-B{R7Y|KuyNL`U;?Nb!#1 zZD2xKY0Y7QaVkr$=nncP$G}NPDc*qLSu|SUq~zix+9qb-vyW#t>u@X8v$XZ7z6Wk^xw_YG_PH4Ws)G;6h(IJ5rJAWCRQY95diB&13-fhyOHfBX6RIZCkPgh+% zaGrbtB2XTx4!FOvSNW$7N6WlRc}(z8rsRS;R`!*l*wMndQU8MnnLtLC+en@_KlXU& z%1|H{4VG7igHmp!=ntTc{-K`!AA+i={X88~Rc^d~TPZpI=f=>zIZ&M#Q(%g&_3Fw) ztyKyIA%3=>)JNJ((qqrppt||}JM0f`zq&lJN=7&C#V?20Lx~j(|`&U-gCBayh-&ftKeUk1DlrfM! zAuli?FFP=1+?c#%(-e&AL8(!)_o}Bz0@*b+JU3NQJ}=$C~ge z0z6qTri@o$hBL4#lM0kgr(oe>HyeF?>cu2q9 z5-JjbiAkwoIy4oYUMP;q7oq}F3nTJ@6lzQa0>g@CR#nEl7fb?y;Z>#KqU>O-utdKR zbhy>%P&lH(W(O*1tRxKW`egl5Pg zKI%L9)kR{H%A-ehR&7>Q$P-P4?n6I*K$W`t*odF=aXF_2c=#(K8$@POnkj5mv|O5y zRaVe>6_YDU5dn-N<{&hsh0<1;>`fg=6ROrV4}oQR)} zA1-ADA+@|G$M{#O^t^Nzjh4%z6;;LxN`s68f#PswU`8m$GJ=QtTq8B<8|jKPoOIyD zu6Ria5eP;is&a6YMjA=J0hsKE*crS+HQG-s$ygTTv7P7)nTt~1wF#BW1}Lp4@LHy{ zGFVwyS}H9o3oGZ8`I=&-tM=`bPFhMi3zyE4`ArZx&*TZ4Yj(v<=_^#qVOChPRZg&s zOC5#?BCN$kYh_NQHlA;3IxJANmMZDU8(Ll&F$N3Eio)e?EWxsZ@T|(xxvr^@R}bAP z$6G>6N|WDe7^p7!UY;AMI39!wbnVIt*a?Tqc=Sl+6{GC9t|5}BpHUWx$cc@*pK48j4gzV}Ti! z#lg}rZz5rZJSGa8G$L0CLYvt2UH?@`I&Y$tAn(#57A-I2{UvnO5#Ah%6$ir7Fo%_K zG#X~e)uwXSKf^wwg)bnkQH^*BRT8W4q|>jNs`3%z+&a=ao~)AVd1dQQa7P)F@Hsmv zd!Fzh-DFG6Z=NJtHC9nnKnuF6Y)f>iO{E%keV}TWQdI}B3RKTVt6@*|q6?#ub_MbcOa7mMuqa_j zGRX0)fEURstAmk16<%ZlaSKM=8Hwh~5+qs#3Uw(8X%$Qqk9`l*qgzlpDWG=?T1bOR zKT?s+B{kK)s%%P%N)heCk|O!ArPR!*r2TviqhVnQgMw7tCUaF4mU%5&O!*4s+ovdu zII?>Ek%xh>xO9eFaBp(Mju-vH15c9vlvc&yX;r)xkvTdOS|@Yib~s-nYggL^WEOOP zj3nC2l4|=(*S<)Rx!G_NNurvh*!2ifr5${&luOT`x?eHsjj(ob;HXyPnFnH)be1cg!fJ*RZRSa#ZCFGpY+$vQd)USN2Pa{X@&Cr$Uueit39zMlrv^> z_0Xb4J)rJ{7WDNecy#SvpcDKI=4yL0ds<1%4mc=t9c{`O+>Cs zr5bZp7PV6HlwGy^zs@(KUSb9?YF}uQ9Ngrp)yiW=nJ34dP6?Q@l``$xy3#Ktf+7ed z8igf{+R}!DJ6EH|9%;kkTzjgP5B3I1=0qwG0i`fz(FIvsd#X%M*-#i)RW|IUREg!L zO13nPS{I;Hhl%15tSGX(&&PActWcmj7^{@qDYbuM>lx`(Iv+g zNr+78{V*K2m#SK$3`+00(Bo+iHyKx-;NsU0E(!Hhs9HgXNoWzePD0JOdOx<3(x|ST zLaFubX9Z)Pz0~^l;S8NXI3sS?*R$&zw_~v&8@DjrFK!o_5!9t+#e_cYB4xu1kSHha zvRJz$)oNivt-5+YHV*mPmjzB(F!*j&5p^D`LMgrHQWcM+CrM6F0KVcyA?PY1iFXiQD=<#lcH24b}%a}90~#9kWZaO}IeBeJ`8mjA0o zu5zEno6Ax&gJUB3KaCRRp>&xh3Q`xYWP2#*46RX#$iy%~w|7>O9*LT2k7Ts5wUJ%2+VC zs^_OdN}9An*`(KS|4}OHG#dKPxSJD(2Yf& zVtaZo`*?`g5(ZZiWt!BO@7u3E*FK&{zi!G45^6^p;t3?yPd9)r&9f>PtfCP!T2XTsDrF?of94Qkv*SFN=3T9LuF zFj?=LqF&{&NcC%nGw`@|LakLr+#I0l^rX&hN~LpcWpYXvD$~Poh&w?gGOk8B&Qhn6 zWwX4^0wvLUIXjij;;&7~Dp0CQW0p6oVW;OXeZ(x~C0MNPlYK37m3N!v?)ByWi91UU zKGcz>cfa9nDI@Z)U~tN%j*8R@L@g7vjx2dPSqiOJ)fv&-O>E^Mh*tdV5|*5WDO-KK zCXYmvnf;ZgCVH0#nEow`JSGwHYEqttyHjKQ;M>!A_6S#HY!>I+#2+nF6&)>$$@+As zZ~4EhWp@^r|4S3ILYQesDO4Y7xhlG=QDtPPSG#TLs>@C-_<9nE>t+2^dZ(WW+9Z2< zD(ZXUT1kdcYYJ6YzE%o=>@mRtdE-+MDhbXmmDe1~&c73rri2q`Y2>U^pGinlvbKV& zVs(8co%C^q)E>4aj2|FK=lJRbZ4H}2xjK^$?%9KXP9d#y9VMSlD2Kz&CZz2lXA@YF zWBz21m&=*539&_$XRGMqJAG+TJAJ9~0{B~eW=nZZQCaS{pVkE!ay?t_9c2A`E{S?s z|DL@o3FS&Gq;*_Sv{rdel$vsVP$hkPXI3h9&!9s11~(V(p_K}fkb-xVm0<7Y$L+A{ zb0sA$kzjSXOhc*kXjdcaK-tJnu5@%sSM@DCKkBHtlD{YwbC;;T){Wo49d!38#Y&WQ zgS&#P4Q~G8Wk{?Ueg2qm{OBG!lBxLNqtsSa%1ac+es6X~Tg0V?vXdH>DeUAyK5j~I z;yUfB4j@(a@~2YNkc?MvUR7GP#_)97r&?cOr`K0nC)>=ma|_YgTXcWQ!?vb4s*ZrT=aWNdT;4sQmfg(Pt8_e*Y%gD*aDPUK(91%s+{f5 zgPu;-kgumnDZhYQ-jLeUxm-+GaDhAJ_ z!+24sK%PN`@(pe<&*+BJ1Dp)y4SWe&6(VsAob4?R@Z@QgC*L5Gj2pC@PE$E~>B}S& z)(y!fH=IA!&Gu(5I$?q#$y>5P)~g@NEvr9sDW{}-_;Z>Y%yZM>5-KTSrkL&P-ISB- zDWS+-Y%1@*!42dYRc&|%RfoPI*`u2!&rt^R^fHvMSAjf}3RCTU7@{?@M^^JyiyTJc zI&JHIdcmqztvpd#kKjpv2~@3akc{&wiVWmHBVeigcS|f9+v}!W( zblO(UTiEG&OY3CLT|2jA^4l0Mv_Eg*L(f~DPREI@@7bTXq#rf-X^qacnzyj>ob^FPEA3cPN$;hC}qnA&$pHOxJiztsxXYwdiGKws?_X-R?S|ns-sYImI~v~UbuU+ z7bl^5n(%aPNxVtJwRH~+(Q_{6Myqr>U+!U4b^I%W_*Y-m>Vlutl`7>%X%IcF@vNBc zm5sdocQu|LwI-|fZt|=BdviIpC7Rrt@tsvYC79H8x$-YJjDBF(5DzQOeo)t-L%OTY zYQ9BdS1Bcm3p&rv)w#B6Ju033>t6WZ$#;m)Z`+45y^uOP?;d9OR zx2}Edb=qsMy=U*ujINS=*h79?x^=&DuKs-M+Q;Qy^xF)6OFFmi?K9I{*QZ!5oQ2GE z{@N`$@KC4onKtK*Xqi?YJ%2lax&8cQ?yV1ZMBdWQ4B1aO3OgT^RsVk=BX0GyI)9fg z*Qvc$a*QaSJh@j=j-*?s_gdYGQ-kT&X}vR4pY5x9=(F>=x1F9lwR23|c7l#mpNzYd zUVo;ZA6YJy@;ZMknZj7P zYR~8F#d%^g_tu$a7K~d9^QH;sr)l12iE$IAtG9{5HK}V-mvKCp>wIHj9Cv8s zTL<;7Jo4T7NRE7_4ozKoixFIyblx7&BrC4v&z&IHv}|87A(A_I@@=A!&ri#bEVl%) zT%X}gOjZmdWcsWq=i5XP5j{sZ%i{?kMC?Q{Q8q$7_#-CDCyn@JQ#s<*qdr1D*fYWT z9!qvIrQWHF^O+w~G1FzZd}n2OypnH7=N{zR&GlK6xOMh~;#!aMojl|P9hKnH4HE)a zY@F{j#(DqVHAiSFH%(B_uxLoH^A?JHT+&%x=PAAG$q(TYGEVJi`tc5u`je$_HdnsM z2X3I8OB7fOq283H#&|eL6UzU8F|EtH3Hq+Klk%pizK;#ntc(ia^S++ERm~!G zKSSTQBdzW;M$cjgcX6BwieETDc|IVg|p-v8{7FVeKTgsXHA{&6u?bb z9`NLU*dm;7(xV^A)ziD4+-F8Q?=w0_nsALbswST^1G1xlp1x6YoC|o~l>66m9>EBV zo)+bNL+X0FPKRfSSu?1Xd}E=rKC^UTw@Tw82={TAQ`KDyDd7s{;*1-obxG6(NHVP ziPE`rwv+NyOx(I2K(*CQ?V?;q9Y5quj7^kpQO-By)L8i#qKgFUBa4DetIzmQ?TidY zwKpM@M}3|a`opqteQvxZ$YhRd4*E?=uilcbkAiqy8`mXd)NO5Zec%u-!E!zw$g@co zogOxP91aPcW^>Cln_EI|Zb>$`f{v2?k3(%*gxpNPxoI_3q;u0cJt_;mX{AT6q%Y{zQ*XgQ-YW*8JU8&PI zb-G-qU90o!C%=3BG5x!RB>uSkkLmwt{C{-)|L*+%Sf4+p|5*P2tLdA(Zg0Enr@ENj zkEOY3nxNdb+_5?szjVYm8VbJIklzTya$U*0FqyyH-=$CP z=W^ecCjCt@>F4L5o$1~>-B+hWpj>B|_7B(OCw`szkA|}B810`5%@{wc#CI$TzP(V@ zRklOc$A-x|Cu-WEY)cX*mnUPgJ}a-(^s=vum8`Mt6K0=7k#FAx~P01!$b9w|1*RH{^!;=Uz_Zl&%!ltudA%l?djX~|5ad7eFOXTe{=cLHe&39L@gY&B=M{s|h`nZ=XGCLil?TcnbSAD5r3xGF^Zr`4L) z!~uy>iK`M*6JJPtF>zvIbmHX1mlB^!?3`U#-?91)X z*`K$k+E>_D+F!7*vcG75$-dg2W`EiKihX+G_{7-6kVMYc4c4SBhTciJhCWHJ8~P?~ zFa#!THS|l$GxSf|W_Tni-w>4ahG9U`o5q1j+l|3VMaCgXZy7_9b{K~xy=@FlDmIQx z+Gz|+ddD~>X_s+qQi<`2q}|5wq|Ju$NqdYFlJ*)SllB=WCG9svC%tQ!oOHl2C8^X9 zlk}cpYSQ~|(~>@Ln~`+TEiUOpx4B7&+~y}8HY`XgGd!Ji#9&MM$dH)yvB92HU`R?j zYDiAnXjqu^iD6OFCd1;SPYo$apBbJ_DmN@i`rNQI>6l?z(iev1Nym-P(T-H=z9K2d zurld{;RV{WD(Owbi%D-8UP@YTSZCj2aM*JV>GszR8TJi^O#4eQ5u{t;~MV?PL3g zZlBr@xqWUwY&dQ&Gn}v=F`Tr2WH@F2*id0FFnno0YB+7*X!y$hiQ$ZWli_Ror-pCr zpBcWjmm4bWpBv8Fj~UL{zc74fKW;ovJ1$W7AM81XD*Fk;MZ4KxO-wiRNz5?JPRumS zNz5|zPRus+ODr@zmUz-IF!7XO5L;foDxOoHo60oB3Vq!rRk2$0vSyX$dCf}A3e9rO zGR+drLd`7AG|g3-shZ0)Q#6w`ZJG(1@tSd(v6?ZOQJUeJA)0}j-8EhL`|GryW^+v+ zO)pKMS@pc?pGwU$n&p}$nuVG*xqu+g3tg`=qxzibrTe=?)3v;9uihggUEgqJb$*?t zbJ3s0{r>wcRStg@CvQr*zSLDl{#o2#d`+h_R;byOd?;#Dhu`zY@6|5ZNDJGQs=qicP6&MRLw*M(Tug1_nP0e;5e-+b{U|G#_j zmG91%tNT>%s%sna`i3<5`c*Bs=^}?|=k+oNl$)YM#;GGepy(>7yw$E4S!=(ahCM)r{AS(hSoK(hSh_)%4Ny)T}O4`B!L`Xy$6#G+p_| zy3(3Knifs7rkAGBtlX^1aphC`hjgJ%r)kD(hHD0Cy4Gixb-sE#zrQMa`ZTlraJl-K3u^=vD~uN?>*Ok_^-f%1cp8G8nc|HJiUTEOP&7x!9xxAd_2Tzu6pf_*w(ol z_pgn%mOcJUi?16zH?;nDN!A%JefDDCJKdMJ+WeaJ>Mlp%_lfsBpJ;!}x~uyqIfri! zxIcc+$JXiZRxCSfd+(7QFXZ+vUN~h$%Pz}*j;%=OQ+(pNlULVX|L*C$NBgFKGv}*= zKelR@ocLg%uUEai>P=o>?caAT@VoU#Fa7-8mjma&c(`BW!2>Jq%-Q6q|5axHI+68i z&rV!4d(L}7gTwlqS^q+pZk>u=|9<%3^4U1wZ!X;C=6`dhwh0dac|y zyxZ)+553=cWpl5SlXk4?(r;svEr(b2YToSK)5SZwwI8>1ey?#OM(=)l%kYGI-hQ&z zXBXNn_jqUJ!uzfV_G;cM`)rr&mgk#dzDPf)sw^V+$D95eayUG3f)Ohpd*`2>= z+qL72Mjti%qQiv&sbjk2EPkhC)Uj-PPR1J@PDj0d_xfS$0!MH6@@p~ROq+-OhYsI# zXiAIcN1L)rPVQN7z4F~AuYH>`X4H!AyF!v4@EI~Fa{Mnz&u{ivwczeEZBDK`^iiql zL{9l_XGm4g$o)dT45ER}4XYu>*s&!>w6RRsOwa@k!i(izEDvFM2+O@}(oEVs%X&Jm zPx4ENeX&6**WcbfZECs8Q$vimyR@W1)FuDA<-j*-X%26LvSu z6>mh-e!B_M2X@a2S$@w!{OTR;f9EgDBZm6*9O&vtSAGWJP5IuGA4>V5l<#dbI%N6Y zHWQ@$C6vEJ#?$V5C|_=aC6vE}@|SozWclyV{&&bDdNukRl-tZDZ?`A@A0tw?FO=TiTiI+p#P_x?8ct@IZrC-0s+>iF>iU7PmqvM*!x zmAP9=S}q)SW$NLFtr0o%_B1@Zb=UTBuP;h^x@E7u-z+}%=9rc5Y^Z*3ZO!Eud$hS8 zy?V({y>`0tf9=_RKlQnDZ|{A3tW8DQ!@Y;CdgA13UDjBs0)D4I2ix&$sSB_QmY+0TZnGMPttFn0x+Kd_`%ij)Oa%vA*c@ z>hw>y6W`vy$F9fot)sqZ*Lh{;1gkT9@^}B<{F-gZ$dYie<+GR`lS+QQw7@s=r^iYv z(~tgmBKYBwv>to?%fG#}EB&)tzs|2=-=*T;w0=5d@~5ez4p>kA(Ae*h@M3G!gvs;I z^jU3v{YtxGB4^~S{NEq-(v`DkJNDV!Y3_^Gx;uLxdNjRJ`!_oDe%Y~Z?TgD_{zF`| zK8;>Gcd@hK((XRTD(-IaOHS|SFW!i$3L3ck{PnicL%yxBJ{>W#NBn1#OU9Ruxv?wn zyIx_wVIL(OAHSi+k2{L&isZr|Ep zWL>bX{rT0*1+Sg7J~J(1>r?Z#T33(yYTKEJ$=1rqT(9uPmwUP5&n6CR@WGl3*2_Ix z85`J7TCYTnvqkpVYMt`#MbD?kN8hS<_S1`B{P4%w*2<{kJwj3zS^b_Ha^r(_^Q|MZ zUa+=27;3FuvbOY4zk96LJME87t((zn@$e@P6!+a}{qco5TkAGFWc{f_WNzb%-PUVY zr?%Y{yvEw~h5MFHygd3={zAWo9XDP(e(dMH)9;;-l)9pJ;CG)t@KUJ%M|;Ocx|b&} zeY&s5>S<-Gr`Fs1)y*YMNDO~kIzj?yE=c&Nnor?UI^^RTp%VUE&o+)wVXY;xjNTCyl++_{q^epVbNaX~~o!eOgv~o*CY6cki2~ zQ9&QBXxqEn_Lnjb*IZ>)`Be3C0^Dry!*jl-5b2Hca+a} zn-95l>RXX?EF!z{yL;vbt)9K|_#=JxY&m`7;T3P~ZZY`PSGK%yU+=-D?B@eon*-nR z@d&W=c&qQ~`t{T6Hwf%oSiQ4V$-4c0Dn3~|%s97qpUp+b*ZH-4v-jb1<~i=|9_-zr z-MP<8_oUvck58Mx(CbaF_EM~A{eAjuuaBB`d?w*@ql^!^-n6E5!uST`wt0=~>58i{ z*1O|_IV-yVv-Mr^^oqGuDwriDOY^j?M4^rcfFjCM!OQX@qem( zSCJj7TAzEgs@*hK`rpgeA+661h;28m9UKgwtT2diRqZBEsHiC-E9!_g_y^(d3`fBB za475qheKC69jjVUe#={Fm;ax!bw~@!Z%O$rD8D7;yHkEk%DwCt;w!5br91U-e{jbnHs_Ort{Kk~ulJXl)=;f3?de zRy6(}E5Co$lyg(6rcZkW#=!q*!TqZuS$`7iN3#Au&TB!;w^RQU^KB6G<a}iaouS8<9uP0P>BHe;?3uk&_Rl7Npu!&VIVaqvHMs>Z& z;-;9OS*q!6QvPsH#RAQ0&A-?G*X}=|w{xIos^)RcW$vndae8}~Xx6T&{C}^n`r%)- z|9tdz4%aNutai~uwJ%j~_v4zrdi(#qzUrTU)&5J1ndH1)`8WUH><4|BLZp7L#9o8CB44Td)pGq1r7(Y@(()RJeA&EJeoa(T_?}eDT^|VjblR+!o9|Qc^8YmC%j<-S zm)BP0tL%bG-=~t|jBdaD-xB#cuG6kF_oF&3|0hJg4(hbLb}U~(dsTjQRZ{HJ%j@ZM zu}(jr(?vSnOsBW$baS09)ae$kc%A=)I_;&?uKO6uT_tbX@v7EOC;Xt(u3r7~`w42D zKY!2A?r-EpEnW{Rh!=D^P+rX96{;ZC>2yuKe3a%Rn!`0a>x!3XPSyTadi{yo-(B-g zO_Qc>n0QpjKd1dWb$XM|Z@=auy?mxlH`M8_uKMcq3Ehq&P5J*t^3_}~zo6r}3F3Sm z(f%NvKCIJ=bvfVZ^h^~l?$Q2e9p6)@Gc=p&xCMH>wwmAT_#nN!tM;$aboJvD9am5L zpVs-h`t4<%cHV3xuP!>ij%G)_-U6LoqszNnr>phyA9VVvPCInm7M=gEn(}`Z%IbW{r>)QW|_4124-|;F;jM0AiKU?y3L@)nB`ybZ%UDy0kg^3?^+BFVO==Cn^ z<N@opfB8PT!}~ZkoH*YCKV(UQP7+D&^Y$t6Yn96!*SZ6p57wdWuxI2aDiN zUMW0=dHH&Z3fPQ^uX~WE=nj`@y$zOOGNv5XVltNNdckWP7{Xd`#hU}p4_L&5o}wDQ z$pjgPzZh<1af zM>OL&L3}8a_VbvGPlF$8-JHq$f}F5v`(@a^rCK)t?!lVlFNK4ARsL~sECW3Ne+10M zWE%_NGp$vBrodP~)t~Y3`8GoM_M=>Q1e0wkhsL(_Gx>PJBux63!IkZVScN|gmSECf z3NK>?_;0{Oi}I(yXWMhE!(RpO>!8}$2p+=D;6Dn(I;whx!(_}^7ToR6_+tB(LJw}R zO1~f6sP#5jlLLzMd%<_K-UoYk5h9p%gP?_fW|A=hu&kR9QTWSYX?Hb#%HWM2s$Hg@ z{NEEM24-OK-L3{n+ zNKBSB7B19!8O+hT0GfkUye}M%Ipg6RtrOtt!D`Gn-~mjQTLypBx*FawMESj;|4kva5g6Qg#>sWs}5uQ!;ZrkbF`&9oIRZJjZT2?hbn&=^ckuA zX1D^A>!!hDqf|@6mq&mx&;Jly%1^51~n9%tXg9|#vbK|bhY_|cQfUk=UV zl;0Ol9Yz+G$Is&en z%5z)jTv&<8a;sqb>CB(#05~68gSNrLSP8lk){j;3W;j&qFt}LjR5*8r+TU$3W)5Yr zZXAq%N@*L6vnibb;}>c_+>FWk?1Q0;R2#>_X_)lK!DEa0|LRs8ci{LG)t^ytZ+MskSY@VmI zAFR^48V<@=`&uYGi^=g&1!rucZlRtc1wOTfF-e}ua1-Y2Tll5cl`#8t4#U);0LE`s z+6KFBQ`!n^zoE1@oP^1JJQmh@Q;0&=^@dqRLKLHm;r6$wH@XDAS4=#*3?}Vl?4p;! zy?Ypw=z}m~FUOc(o+1YJe^>QMFmyY>XFp-;Q43Qw7N!{e9(f0bl4 z=OQvs*#4@TuL9sEtP1}&_}~rN-iG5i%*Nz7WC6T{$vWJCRlm^B#8ks>zY39n4uzXA zc}&>`&)%dw{3c-#lQ6k2#KNx)25}t!d05kE5Ct7*FKnZ=KMcdN+A%)i0_{(Rx!PX{ z>$n?)sV!}U?J>FC1K>rh5&mj;pNH}{f-l!Fh+zBuMmm*EpN4I-YH2>3Eq zM%^6n2o{GfhjnTxzc=iMNq;c>6_e-QraKH`E0#q*#c*+L^09s|eRV-WtbAK=T_ShNF9yw@OXG6p`2$v#Yl8@1jB%Q4x974R4B zH+dU`FDCsK`2KzL3FjMSa7JD7!5u|Uj6S5!R7VR&Br?fwyl|h_)$RL`NPZiwM+8{#E+u#O2wmZ5IKHY}= z(aG>3E^3sbEpR+0^N)frVX_Wu;34fl3XScQ-xG%Lg$JI*FM}7`8-yRa8s>H|h;Vcv z{17WfAB8JBDt{V$1C#z@7~s$TfVRRpnC$-qxDnfi-UiQUe-&)nN%?)D7Z)95Sw656 zCiCnL_h2&5Qur$-^E7oP29tSqhchwhkB1wyzYq=xppE!L;8aYGy*QYL$#@6ciOI6| z!EZ2`=XqGCi$TPoy}Fd|CS)(7lI2B;c3n= zw`y-J%*JH93g8J$_U9Q`zmM{p;iH)Jhe6+d>{Dn94DQdEm&YmC{Sn4$NA`DEdw@Zh z(cUlulk;Q@T%&as92d;`#6-cRnB0G};I6@pH~IM#b{;~x#8_cq2;&1C40mHi=u-I1 zqZ|v+mSG0*_HfE(JMM$uVzS&ScyFlEjbJaWgWwdc7ZIle( zz@)zzUevl8&KaZTzy!DwlQC)V(qjhab&ngc!C2)t!$-9agUhvE1s6Q7>W~ay!DK!T zIPeKo&sg{#=A1*GG>8e|s%|lGEhgi$;OAObz^HL*JI2CAn2cEl&yHto4`#c-J0~c= zH|(c%Fih0i5@8VgCmKXDeRU9eL>WXO+6zOd$^9r4&el2sW@2(aDS#hp|512d`%QC+!4k-)0G`BT z{26#pyvoxD4#cEC1U{|($*}EHw2O89VMK!3r()pb1qM-pKNddvj6vK$hrwJ-wy_Xa zXkFVz9WZ%K<~Zz;sQM=YR%5>GQ^IZ#(=i#720J7ve=(e%tn>}IaG~y7ID3)O3GjQZ zFT?j1EB_4`mZItt4lA{;f?qt#98I}rplK=nkB)#hF}aV&EF(`$>VW0Umzb=Z^*Mv+ z`@HgRgEz1kVoa%=Yhg0J(F)?RIP|iW2Jr(Xb>Rz~^Q>Zy;#y)j^m|d&(;xOoQ|ku8 z8L!H@jAIjg6O;2#F+8hv6`Z?TmGH<(w^K~NMiw|D0H zD%`Mxb7OQN{0{R+Uxq$!vp(7kL$CyN7>wUZ{n0kq@Ewi;gZMlJcVMz_OQ3m|>RVrU zdbjGsO1N;Z>ccb`@h!Zx$-XLsQ!12BInUVmUe!4OzJ|$mWx7pB)KVUM?D%j{3rJKXyT91V( zTBpL5zcTl+-E-l_n@aD4?+T;Se;jT%7{v`@%3x2U(OHK;cmk92-Wj-?n_Q*<#wyG< z@gHjF0{E=E@~6Un9!3#>KNwm(jUp5s03$J3=NR~4O{0jx?+1&qICL5Oyp~ZUpetbQ zJNWN1<~?udQ`;!c@Oj?~gYGnnQrSPy*UKoD5pRJ*Fgb68!u{MNm3?>|-tBD^C0+Q8 z0245ITuz32Fd1J8n{yLSYCrf&U8Be%&jR>tJ<4DnPKCAVQ&;?En9)$xAs3coa@`7O zY^1a&?51@fjMh39e%nN?TLsPct9V~HQ0owwr1dhmMeBXgzo}7_QHSm@0+am{56?be z6vy#bL7!&IZ-xz;vwiVfVCxo22g1=08buZUaCi+9^p9w16kRdd7At(P75U%~fSwPj zG2jIkV1D?M;mOvjPcFmmZ87|TFivXnNr10uodrMBx&pelQ!%w+R(rK>0X!}>>z;ug z9dr!rrF9UTs&yQ^zzx|@%Jq8KDDLQN6tQS;*a4II1i&C}t|#LUff1PW$G~r~Rrsr5 zAP*qOaUKkR!Q{T+-OVW4cc*^D1i`2tO55Odtm0A5i>yYm0h9A*3B24JO?>S>^iy9I z9|%`qa$nAczi90p$k@Q7-v&R?`aG=ar`GlCZxqcQQMx-E7Nm3(ynle&F9KlnKvk{{ z`VUh6U>Fjtc9 zdQ>>&UYw)+o^zR7Fgah9L*Mz#QRHuhzE7!mE6m1Z z-HKsEg4!+#@Z18n0rBE#_E}8Mnf~xet)t*4-C4~0!_M^88{QTdZ$7rUxM2#iW% zzu+^74X#gCF(vRQCda^W`0gU*KMucJtl~{6^#8NU9|Xr@GCl&nxkUL7!U|0KD`Cb` zRc;ZiUZ!HamK#Obb1KhRxa4`|cSvG#-C`J$s@9Eytyij;K)CD$wQd&d^r9ML!7vqf!omsJ1T;MCPhCqrAB(rIwz%Sso)PhL^_JiPv@(%x%~V%}QHP59>V0g+!=VM zLygboaAmsMM!E1~Om3s&uttW`Ua)4SnnTR6ewNY}coCD^-7}kVF{!aTB@Z(;a#>a}yP4 zAJ_$x@m4qqlkqkz$ zJ{;)g92?!?cudY4QSkH#H(~0|z5sVbxd~r%3G5l|=A5qrp?4hpfWHxppG{hRj)OmdFDxblFT zs6wZ~JKs~~dc#4O%s&)t4pTeSZZqEIs1UCAP zW$cg5;WbQth6*|FCOUlY=A1tR;1W#6q{4|8R7?z9j>$e;1-EKl3=dQ>9>}K*HoWNO zJkI*VVVJCQ7_<1}oLmk&UQ%T(gKIClInN2R;7v@{!Sg3K(fEprZw~um zvJSy;RJAHM9Oh&4_`VOG#$>sbaLiRzZa6ewXZ%pl0C?vO)h=&15tC)bzy-gkIwV6M z9?X+$+?ZP-~bPkGyf2nR>R~xE;!&Lp4ty5)>7rh!0ni9dl|fd$#O5l`FE&t zZSZDolQ>8{ed?IRusc;*QLx}Hlk?nrAKY=TNt}_}5$1XGtrF-$SgWDQd2h%IzF;e>t*c?(X3F0PmbO3>Uj_poG*Fbv1!x>0Z`7D3D^ zxCN8jx(FV}lJTE`qNVct!k00*AC*9>uhKzquhs|Q1x)6188&HU5+*(`G>82#*;f&8 zq1Mabo0yC#h9|WD40L};#n*;yv<`-EV6qNnuy1RngW&{B=5K?Sv_HVlB*HLRpKxf? zItAuwT@2f`QTYVGF_?^xhhJ)cB^=$BF+iV$!&U7}Vjp@9Jc2p51#I7*ZHGSqF2?+M zuAm5B#N;)uYS^$NG5DLqshBJ)4tjQ?uK2y+Fl-e%8Lq`-OctE=u*xR^9>Ju)9JUKk z{y;bi+s3-#a0zx4oeC%L-}K(G#rwfPOvVSp2(4pavewJs+#x0rLRmKWA|~V4z%5!A!H+RHPL9K$ zwH8BZ9~Q&9+hDg4@P} zWS*69@C?QT{!qAMChg*QR07|b#W)|$u@8O_r}8-pKb*~YApR)q9B&fEXe*rf6vqN| z4Ezvt#=zqXOri?^8TjVY%qN`d7Q-&jsN;(j{$gkTC&rY-SV&gudcopFj7hHd?t}B5 zWB;X%HW-p>5*BnA{CXw(F#0^KwMymh1sA-i+L8>*FxfxlaPLbh<{;dZ#lC=l8yvTu z{zON?W%=|KdKD}$WS&7+!1s%oXV7JE!4B$7UnRqRZ!^!}KM2czjLC6Z1i!>&dvCy~QWYNyFJW>{z5x^8Q#u8Dy-%OBt`CgBZlGh}5=`drfG03{ z{5k_$e4z68gQqb$mc&7}DJJV+h2t<;hbUE2@BXuLjAI`YK_(8|RJ=Z7~T?!8v-JSWD!JTgI!c0E<;5Cyw_srR* z?(U*DCi4%1^D&vf4c@HnE@JU}*1> zUi5JnwaKR%PO7i+jD<-JC>Q@S_&`H!p?rGPhwyiX2tJ-2eEMU zQRvaeUD(jI;eO14J_xU2+t8vddAFlnbR$@bok5pDqlI>HUCR@8mqvR7;dD%1?}~>7 z+P@8+(*8=gyaV+lW)-}M{A2)qPW*9LGLW%^E`?VIvE9)k z*jM3k~q7dx`XHQexE&<*>o$=tu zIETN+(x1ebW{}@3whKBK4xi&Ls?lTNGx78b$G8-@YaVUn7X6*PlJBXD!)G*xt#eK|5*4EChNZj z?$Ejf{;ailj(H4|F;*C_wGDoS$$KK_;m8$?8<{8k8gt%vhOJgJriW2C_%3EeAB5A= z*e|%w83%`~Wz66Yg(on%?iu*$YbvG^_FkvT3WKSbtj}@yU^?>^>juLk8EPLdho5Gu zv04Qq@~Jm5eg*7Pm|QmsrepG0TrB+?nd^v&g7+UO5b+k(Kq1QB6kslE`?Lyrmms%2{aZn zcXMv+33t7t{H3sN34KL;BY5|2J)YqdOx7n3zJxiqDJ;R{^KzxI=so5xSqB*TzM98k zV7m`g{R7~Wn9L^%9z3XGj>3_L=y%o~3j>aj7upJEVh7Rj@EUd=Ek1G=?LT4Pr!B$o z+-HnibQR1zrrJ^fyMCeCXoa;-D!&)>I>o+BybpY!Lg^@Y-@6Ed79% z?1|aXfp82a=d^IR6qEhG3br|?`p_SKg30+O_B(g61>48EMR3LU9MjQhu;vBTCth&r zC64c$+pK~IuBy4E4DPtje2BjUj=90UjSh#om^@c6gvGzI9r5pjqi?GCaCpC)hX}*( z3wKG~g0TTpO&%f+e>vRg?jcg-x^S+ChsZ+P;5{`xLZgO4>+IsyhX_YevAt*}cQ53x*Y_y#7Q?<$51+oHqBAC7NFS$zJAg1#0HQAoT6 zZpP&2(;_&cz0zahYnVKT$%5BAdWeI>nEXAshUFnD(LT^0llx0|7}>>xf4t#*61M9` zeJCpcHtFsm8sTpa127qHg~>fwU)Bva?Wz2}@CqjDd;_itqCe4D@QzTn3)&lY80jGj z&|;MAC)MX+@W;^}q7=X981lp9I1Gf_G1(UH$34W=Cp?`0-zT2*5YLAzod)NOr=EQF zPk`nKrG4SvNwf?9K^QVw`NLqr6c5oH|2BAIs)vY0o2Ge)_*f6&hqgiQnY0Dn2u{Po z(Q)v4oQ|LEA+qNxT>w+#F=Eo-j(MtXB`|xw(giSo0o#t4ZE%>4afS|qos*Q`3SV33 zA#%siZ}8p}4>9&}>Hu4$dhqNj;}*KV$aX~6hL5lIpwF1|VSJh@%LYSVR@(H6huDgF z6H^R7TT9!~74S<3+Ywy}2W8UF=unupo^sI+xF?@BqD$eG0`?2^4fsx>hp?gd!5_CM ze>Hq>n<}>q{`!XUo8I&gr;C)o60Uh$w-Kfmdx&l1lLlYisbaF=%y*Qw!GXIN8^nab zx+NZ>4BZIcwcCU1Zj5L6>K^(8odwhOt92dlLaEZ1p~nYG*M=QF)G>!V#EPSglgBuh zfX{u-7(%atdyc94m%@)vGA{8ShqWq{-wU2U&Dg?!8UFee{f0K3@emc5)RnOK8^$?$ zA3S`P{zR92g1r9=uiAru*pT0e{<-5nLff_8=k+ym_axH*+V>wm7!DNfNI(- z&&S}VtMm!}ZP4wy(pH%CEAtqBZ&MAi$i0ShK3N8e&fh9xiJ5_) z<9-FK!b;gjSD?>KzTLdDr)UDZYHfvMwH^!E4$t zW|2Q8W17Ium@KOYoS^koxJc_|Fbk9Md2o;Rm%<9|{|5f5wJENKXpG7DX0W@~ec)uR zV_}Nc&%qq63*dgthjl-IRoZ_Ade2sQHh>+q?gEEN&Gq>(I0KVynF~|3ehF^IWPRR% zhqV7Ftkn84Y&1u$`vB~sbuTzv>(MZHu8J8AzrkvA&*eNc#Vda;I0TdR35Bz@|0%de z`l&+(d|T_?P|Q>7dO(ZT4?{a9^GShUX#FL;uC-x4{e;Opo4^3Ad%`fSpMY~Q*(VF& zOIojmZ)#l(-JhauTo<|nHpgWAL$EI<^B(}iwVnvy#Jst_Q4GJ({x9KAm|XWdygNbZ zdaw;9^XUkOYCQtZ!DM^_d{OIH;Wn+`hDWtN1}|YUpKI{m1xh!7{#tj1Bd}!7=O2S{ z+CLw@h{-lO;BHKodjS5ZwfOt>AM6312WAZ)p6>eniUz?G@51sY{+e7a4q{n&VNDUk zV=8}q#kl$78Yza0CwcG3@4XKf1H@18|35p9_<7W39H~fW8H34b0{Kqow|J(LSDY|Aqh}I59sjsnzu&`m6o|&;QfcRe!Z5+AMlgdJOz6pIOe7>^oV% zIlM)`Bd*|Yo)y>r|AKL0;%p?|i00?Eg~7LZ%q)w174G2b`9_?O?Z zCdb4y>JFDe0-{Md>B!rRinq<>?jamFZRK)#;86xf=>M6m2NkP`aUPL-~e^4V4?J zHdJpAd7gP*c|LjOJl{M^UO=8TFDNf0FDx%SFDfrKFFwzfmy(y7mzL+q%grmyE6OX$ zE6pp*E6=OQtIVs)<2x|&J@dWtee%uuzWJ8?fP8CyP<}{$SblhZRDNuJe7-F|B|kMk zE#Hx!n_rk;lwXoxnqQV*o?nq)nO~J(oi7SJ3%m+^3d{w*1(t$<0&77~K}bPZL3lw_ zL2N;Mfvq5=AhjT^z)_G}P*_k@P*PA@P*zZ0P*G4>P*qS}AU1k#^xDWjx3d@VFF%eF zN2#MKTjY4=c;)!ym~(t{EI9!=)|{Z6keslb@SLce*qr#BfX&v;qObrfi!%;}B%N!MsDu+n-N;k7bt!&e9wx^A4=}0eRYnHJktI|b=SB5#m zl3~pV$q-e1CLl{shmXV85#R`NggK%d@s1Qnnj_ayL_d@}Djn4h&vYL~NkDoKqa=zE z5|ka19j3=oe6}q+B|9}cE!&Zun_ZY)lwFctmR*r8x3<_UD_m2U8D}LKr5R-zGOd|GnIV~Bncsc&rpWTl^2+kbGG_&3S+jz&Vzbh+O0uf5s z^?IM&fZVX$_}rr0vfT3AirmWFs$8+bbA#6gpAF^>)(t@$LN| z4Qc;vBVCQ|a6O961;VSQSVk{ZZLDUDcrr?S7$?4rlmNy`5ThlG@e;*|iD%5DFly2m zH@S?QBF0WBqo~`R>I-QDDz>Q`7+W17;8a{wlKz96eBL4F_*%qOJm&SGV;_O zQ^r`SV6;>*UPQVlqtJ(ODCd>{#$wQ)%rI$;%Unig(Lc;IBEyqW>ccqoWuyi$R)ZL= zVHx2WQ5mrr@fo&^l#JAjvOU^A^+wcQ_4P5&R$cQU7hX8 ztmDg!6U1y2#Y~fula`a4Q%-PZt&d-yvOaBn?)swj za$o!V^>+{a-2;F3z~4RacMts51J-(IBmZw@uV?Y7`Ou=EML*Xu)G#{i^_t>pY&00! z-(jig;okaAH)8{CV@7$@YVBb#8SI^n29slqCCt+CHqTv_7H$UNFlRKeH4@#Oe?$2o zD?dWZpSO*}ddfdb)7$bidG~pLZSBu(=U&<#*>q~p)gP?*p>NAK9QJ#fTkNKAi`^~Q z;bt@#jkVh5-+esf=Ge6#l(^PzOpRjOx3;wMa2sK|g7kCDUh)i{s~h+c&k`FPFRB>+{?4VbiC_ znS0NUi<&+&I&Pk&NxeFj&X#}@Wn|)UuW`ii_V-%u zmN|OfTWi#~Sy9o`CdE;Vm*r0BtZ{FRVUZD2r%#J;Rjk&%e^Ie!mZqv=4SuUw-{}#N z=Hbzkrje^Tq;GGF-SB{=&aLfeFt`ghyWuXjuA!FEZs1?X=Pmg3@vZ&3MKQsG8znyu{ z-x;#MMe83O-_~h%|B>F!uZ@5CaQ%MSFATi@jw z^2Ba!3>|L%+A=8TjTpn?HP?5%KH(Yr)v=Dm9la+j>*y#~Wgle@(Y zSQ<;mou;}b?}LpG&EbaB=8MPn4SD6!z_yuz6RIqC$i;V=OzcLBZrgPj8hoiv{-&n~ zKKSFI;vsPvVJ+hxn!R<=FZsc%;>F;z?|#X|hSd)#d7X0vi&a8sxPj-2(N804#fT+#N4;Hzx|y5 z`#-vQCCvZnql!MKp8EC6FAILXa_W;hTVp?6`PI-j12PiY9PROi{~hBy8`mXHZuabz zu@jyz9P@UU&%&3DNN&*ar*3Hud+m%Tmu~gjo}T?d{xS2LyDaq=n!W2hR6Oi*?}{fZ zU#;|wUc5W@^riLrhirXj&bgC0WKb?Da&fNCww~f{< zJP=nDKGyBw9&3JidHyS{`ae*(e(~_{FZAzv;4$|*M&)jQ-~Hgn!E+ypUAXn@4^B<` zHuIObmM=_N_t_G+K+C&7zqjMPu8loM1`e&~S?B7u`cZk!8(nuFwealzAvKzIUjN-8 zzjkl-`LL<``cJ?4*mu-{hVu`#dbq}iuZ=kP_QeOj%Walbr`4Y8WqZf;oY3Qd-+()w znzyhj<%bzN`;Pf4b8DSTBd)ioIBov;+gF}gmEEz8?=zzsj+k7#L*Ne+W2RRHtogyX z@s;!wX*Im=?CukNdft%!-W6{xE1NxaO@Ua`rq5507LBVcDWD?iqAPqiiSr$3*2e%p(i9hvn|@XqUBH@!Ba$; z&JyPVqw!sGuV+WDVRIg*8aFffSnAsTe76sjyZ!y99+qyFE{@KQPK!E5#l^*TZP#wX z%$T-QUB|_?6Q)mX7ds_ddfUa$oE|ZILfou&eTQ>6X^YDeSytO1F1|X3cML$nSLLr`Gzf z+u7{UJEzLW&bxccy^op=6W*Hnv*%auE_n2zy1qw`eEaG{hkfdNbnlE6tCJ*iP(d5Rx$8VT7_PMG9bC-Nz^liKLz?#-yzx7bf6X#c-{(AoM zC%jUIr=JKPIyY@bc0YJ8ZA>S?=Jz*4ZDOJTdo&C1a=DwK(GWZ9BH_$e$G2 zv|rx9sBc4`Sn54?QvCVUv2I=~Jl8fiudX~L?vCAX_4S#t+c%xwv#zd@*=H@Y&qCMi zGa!NQJ>}*8htB#RoP9#0r$)|-8#gu9bxt8?pNB17+COY*->Fjv=jl#+XR?DuCM}6M z|1GmmOG^vJFSAdRX?>$(qatUT1BdrB_ZvQ>YkNyzK$}hh{+-+O?bAP?y$*D{x5;lO zM!##s@W`2Sq9;WD(+TR_4)+PApU>Nr9N05^>%Q-UUu%A<%bX@PKkYCuEdHa`pJ&%d z{o&gl*LOacka_*<1y6T4{CSV1T{{0*UEa;V?$MR@>;C7X7S3$&d__@kMbW}b9cvkP zXUv(^Dfsb=+rJ#RpmEWv_%CiYS$JQc{xc3e({j{3N0NqiJACcrm8IYJ5?_6Ca@^H= z%Lip8cK<2bdhW|-chwlWBkrlQwZDGkTz<^OPbMXLR@Z%h!M$(KI$bmP+W70=JG#8m z_1Ew2E*;lod{}v{(4e9`uN=~A^;`b=gBCqsyyjd%x88l2PBDE1kz&Xg2KmP`Bm1 z)~|^OxbkqRci%U=_Dp-P&fXb`zLzGhZ-091-@TB!Ho9i;vqz513HGlu z`OAdB^{pRE3Vo(u^ZG6JE$P3%#aH!h(XG6%)O)w;0l&ol|KH-Yzx-TwtlUmH|L3xl z*1knayeoC(Ry>_xSO0%Q-=FDkKK^A{f7bI{RLPoOpM~Y6Ezd39a&6C-E$>dO{S+qm z+vekmYg#UQ_Rq1eO_MmgNgI>1jAgW81`(2l4?eyAF9@tY`i4zI0#r@fBCs zWfr7WsHeTyw*7tU&a>}U{S{im9jTjh-*4&g_uaMh!Ki=CvzxjB>{dylJ z^C@2s%;N}?%Wyw?^FUdQe(g3@mMvk?Su)B08)|IcU1d@AwJa}Tk3AG~qs?5W^d#Ra zIZMu(vVU`P@~R%ZvFo2cuaGZZ%U>cX!D!y4WxMSt?LVeOw>Y*$v`)#}Ag|+bCV!6egRB?zYJJ&| z@}`MV16VSvV9%jLqB|zQ#t9u05oHARu^5p0V^|AENw@|PCKet!F5v8PDR7v?nZXgY ztA^3fL+aWCyCmQOYKpI*;h~y<-GY4!6WJO0dJ0^7-xr7MwdZ8j{l6nHxK-w@<;3la z!?^GDY_pcW_bWY%RfFH&-Qo3kaiMrnuJ<(ALA{QKCu%nrV;dsz_c zI)BooGw1I19eB83>uk-Nlk1GGw(mThe8lXcgyR0Pd)BiyOBc^m?6|RIi%>|~bMTH&$#{Mu$K{|!kI_Y7XXw3L0^`RSHr<4d>ToRBcJIp0 zdoR+=d%q}6n{#GEc}SquwIY{I%HIr|SjvHgR55U*%Am2Gj_oA$u@@#Tq`o6!#B4$1 zA_HK2Lr2y)nGJc6#>-fMgHed_G;Tva17ulI17(Cp7DHg~K3ZkB*zC66zzO!dcX<6aKXhwU{?X!WJhWLBNyYq zF(Ve>L8$g>KjsyGH&QygvMVBI5#QxE|G%oGEo_`Uqh`lrH*YqcOLAwnD($v?`ZuM7 zJM+uo$)@l3|8eQ-v=x8%)B4xE#pYXf86Ca!f0ymLC>N>8$;GRbVt@F=embD_d-=xF z*3K6j?>oqu7C!v=&Rc4){YM2c-#+^XU1t`@6uiCh!7FENisCJmziVz@KAF8}L$m4T zMPEX-)HcQy=5n-3bG%mNDa~!p5s13GJ9CGSdt6q;qN3AZ+WAlOOyucKdg3*$U}@U% ziR&J1p0GHva%EJ^(V)6}zDx-Mx$i8+wa%yodj!r^uxOpv6x+Y1V#56;H|5_NG+&*+ zRf}i8siIu@+qcbNkGb zlJ=vWM#xD7SoVODNJs7!O{?eP(Z3rE&mK*W)Bf4M#wKvxUxPZA+n%Ri>4kR7y`InG zeRXf(2c8)VKO3BwRk(bj_$>LbxVG?`mHMt!cIEww(MzLQZeKhV5#3{vm>llUympV+@AexSMP9ciEWKE{ zaN^c5IgMtn4}zM(kK!G^A8j)Y6q)Lq_gG?)>%98JnMAZ0?)wUPWO08|ts(GJh&kQ?vvp2axw0*zt9oU?m znKNh3oH=vm%s~8vYG%HGVH${|4EFotp3Ms>~C%8_5AToF*(m4 zpI5wasjsYj$%67Z7y9PSDJ@-6;hS6JD_>UXTUhGzPn+Spa7kg&@P7SzCo9sM|1jYG zFScL$p1$7hedK#>h`-%C=DiT$KQ`=n?{ho%4b;x!wctB%t1o&DE!F<4ic@?0gaFW?uVBNqRl(nV4Vnr+3oN$hLOXP%u%!uO~?U z-xS=fpeDIl#qV;Z*Q$7_g6AqYNx>8a`zp9UQ|kFZ!Dkh0RB)|=*DH91g5?UHtKb9$ zPgF2TK}*38Go+q36x^)fdIj$sFZr7k+^OJh1@|e~?F_;Do`NSUn4w^?f>jExR&bqy zjS6m8@ErxeQ1E*{68a}AI99O`fDrl+pAEDq- z1;;8FQ1Dy@7b$qDg4Zh8prF=|*-BoM6x=aZ+I518Cn=byU^fN#D;x5Lf=?>ALBZcB zc)fx(3RWt(NWpvsa~1R}I9kD>3Z9@~l7jse?55yn!g6}A}Q^BnYHYwPs;GGKI zqTnh8s}!tMuuQ@E3jRdFnF^k%;8+Dy6--tzNx}XK#wz%klJ{Q}d_%!9CFj|gXBeg{ zIA1~Ce|_bqs<(pM6tw3g%c_#nR@JXn`fn9fQ$-b~CWb1^o;HM~wxOCGtDaSH0hTqu zFBHF4_U8iyb^Z>OzhA)*6db8wK*8AxmMK`J;Ef92so*9BHU00a_K#MukK!*y#mA_) z#=leXce8>`3SO*Wp@KCE>T()Z^j~cI4^0YgS8%t2@d=VYNWlUH*C?pzXt>D|d>tp$ zz6@o4BCfnIaqVM{6PmviKPEj+%I_!@Shl1+J*SjqHA`d?92+|{3z%fZN)PLJtSj!j z@6$n-=N+B6swmzXGUTPB3dZ+&_h&{tb?nlG_lGAu*z%9r4*ij?_@l1)W>@@KSNuQ6hts>x#s3Od z{6bfJo-2NmD}I~paxwXWqv@WrRTZL8${#jObX+=?aX;DRX z>B5SIb4nIoT9mo0Vo5Gb`b&VI^ZiAUFhInhGr6e3E}UIDe~F!Lm0A^65o#{Q-wG=m za3SDAYYysPXkCibOluiZmKgl`6?drLRerKf#c2ui=c8<-Ks(8cc2eKdE$4DTr_mz% z)TMEluW<-fVZR?z`ch6*7bNbAr3+3GKZ;gaXotU>=_^5t5@&defsq6+pnKxXn%oju~xeJhvPaD*U`9+!}SAPLvW?xqE1c3H3Qc?TuX6PpywqZI?0#$cTmJYt+?-sp2M2{`txHRUtO5^@G+nI8W#mFdgLGPWNxmxeAgS_-}}Ma7oPp# zuFsxX`EvElhLXdZ*Do%-^z*r2eYCCU+G(?62E1O+319rPUwnOwuXNl`5*Oxt zkXi6b`9%wU^U??1PoKOi_N=c~_S?Dm!QOX#vHrnROB(K<@ancl-^}=Y(>?E(w2oXh z``xS;`@QTRUl{+3lERKmGWo9wnFE5p(ntpT%D_YfHjEx4zz3l)LBQ?|s;` zIk=+skuTpp=Iy!J!`>M9j};UJKK;{or~Q4wqc1I(wdu~cdp!7~vqs+^cw8_GpA@`%&btfNf3m7{#3h>-PP*=aInRB+dj6)hJC_U|{iovT zH!bhGz5C=ok3Molw-Zh|G47nr<2F8>(&w@JuRnLgkk~~J%>G^5Yfp}NamRzf+g=}f z%)RfN*Z5@NttWmu@1r%pU9_zC4HtI%eUDyiel)uO-jxe_mLERLio5E}$8Q>NY15zX z9dh4g=|?}*_tsTAukW|{l|MiH$y+OqfA`HkyLP^O^@Km|`uqL|-Yzb!e&e|3kJx{V%sIo|E-r$q|)* z>b>@FJNvzsR~(dFdHvE_&(Sx6Xa__4$3?&Db}t z^|TrHZu|pKPhY%$@}9N_QwM$e*kji|x$)W58y=W(=WjP8$Bo{x@rE9+J^#a5 z@8mtc;PoF2zjXcsO=r&8((UNt^KTrop$r>tTm+epTrbc zoBaNF$4oe5+8+lrpY@;nUQW#TvVQx=1K!HKC9~%2Vb{J<`MVR(Z+`Ns$}?}jdu8Sg zKmN%l$;(b2_4)IM<=j?s?V@`&ow)A(FVFjH;;8ed+)=+JX@2=X7QC_gzOp?%@0q;r z?#$V#x2#xl_Zy2}xgmGU)SvIn=;PnL@W`$Ed)|EH&DGN$h`s#xe^_%|v$pF~U?nT< z8MDZ`81v{7%%MwR^_N%+tVxKMV4kFX7QFEE8EW2TliYqo>QynlyIlpV`?vEpUw&Bf z`&akaJ-;pR;E|7Y`(Q)gk^9QexP16EuTA~+eZQM{%D;!+pDb^~2eJSbxpGo;_j1E04!7`{%V~Kb!a3C)Xak z=Vud>3(tM|n#)&TIPRW{pPx1Q^3bNlnfEm8t2=*q;nqK%*y|_9&Kvmm@sA(zvtQPB zdn)zeC;Ai|mr%a_)rZ%g`n{`f{dJ$-f4SkjRbS+-dEy^OT`-~kd$%9+qty?eba?eq zBd-hUm|II@^r@fYZ*Wc>@`M~R6d_HE{@AiE9#~)As?5)gOPdTh?-rFC( zbJyQ5JU%vYM%ttIPkZ{k8TV%vO)fp{Uz_&adPL^W7Y{!#^{H;%V>qA3Wmr|epQAee zTL!F)RZK)*mZSHU;BRzc3UDt*kF)1lk~@nXhi_ijRMb})MNJ|@ax(!syA-7~x1G1{ zf&;j^wrOY|y+2dy&6etRO@~C5+qHEr3n{O;GO2ZZzqLO-8m#TRT$gyUx=p%#N41SU z?bOsUbLPw&HgeRwv|*#>jW~7KoYAA_4x2yk)cJGf6^=}wHxJ&AWv!3RymQr{;KU7A zG&Pm{@rGT09&q_5$84IGar2;i-+KO)^pv7=u1$&g<2zZ6O*MBW_5EUM^~|$Ytl!)( z>!F3^+b+I$)+6D=eDozy`*^Qrpb@|I$+)Q@4|s@{C{1) z=MO*odnmi+gR5To{;IUQuJrA=J~?>%lv|tYGcGyd!e=|9cl7hkpEh1~>eRKr9-CJ< zHDSQ2yN*r1?(x>_U!B&!-&ePu5pdHh+veC~`jnjo`hL80Fzs)9Ov0 z&HGLZehUbx2LJTmI}7C3si8tTXcIMr2{~0)QN@)G) zQx+zF^!~2Eqr+B>`1|EwR@F{<{?4MT`i!d{ih2L*pUs>%`S;g9JpGe*CN`A4v%TBo zJw1MX%8YI!XBV7R^QV}DeI#VNBprJe=hn} z*POP$;)uS1YZg?Vz2?|Ke|6XAF7IxSo8RgY`BzTd^u?Kvf0`PI`)p>#O}&;k=MMH~ z{BpqjcP>h6Om^F=M>ej0cirIfGjH9PaO_Lpd-E%If1SPgikbIbJU4K|D}Oz1+&w>N zcJu4z=d_Yr>Q=mZ%cR=U`Y(OG3gfSRrKREG`&%;ZIAOz}rKb)pa?{WGSMFtZ4*N^a z^+SF+=KT8~>DN{LaMN?gJ8OSu?I|d^=JyLu{IkFA%{}W%U%tM1b=$SSTNC?H=6$X6 ze_VXmmOICtJ8;A?*Zef&_NDJUe$N&EdB5fC(5-jB^z)26{`92Pd`kcNXD7yN`Fzi3 z)0#GH@77%S<2G%3|H@(OPW-2TT`=LEu|L19_0?N8tI~Hrd3~?u^oh4ju@1YV>WIAKe|Ey?XCBPUsDEwNv;p2$6JrVm-3$W9cXXWG4VTN@!@+VqZxH56a zT^bWd%I4VqO_9ArCndu@_^GJnLf}}|EO>mS_AVKB*940t^q$&uU@gUtUnzEMW}y`K z-tzEQN^>vA+%H=@^!tt^S#S!{&jvN{+l9{uTtr` z5%MjSzIK*({knW=gnV6Z<4o`Jntz=iiT~9R$``2g)Cl>z&yjko6m<8GE}s}7U)Q@j zuVemoekA^jBb3ij>4_2Yn`cP91q!)mmdcX`df&X2@@Lxl4ADm^hme)E}9Z-Iht z{nzF9Wqb3d>n)3ruld*ck@)Y-A8^lq?)m>v?Xz{}M`-yhv&!&nZVqPYBFkr8fPb95 zmtr4;&(Id&Zzdq0pUqQyd_J|y;lo_M%$keXJYXyY9bzr9y#qgJjmLG8HP}kE(y?zd z%)T4taW@ia#3B?dGeze_f+wMtu%`eit2>1O8us>RIf&(7$h^KTXR= z{iW55PEYcn1#@jX6>c>gF1t?0nek+X@Yyqkwv9`z*%*P2^`kB3*&P0Lc%f~koj#a$ zn9^uJ4|KIXrXBZ^(Kn;lURH$|nR?!!Y-rIrpPACpvSBZMv-&%hRrK`rd8viqzR>o7 z$gj+BbHIK3c5?o1x^`pd1w zX#YIa#S>=XUX>5IA|KuVwAgx|&6%CPeVOQXYj|kdFKY|RpmPc6nfSYD>!E2M{R-({ zdS>iPw)B6gPp7~t(+^kzty%*8s@9sO7cPx(H)o zN4D3YOUgIt7lUBw$wM`mcyQM{wPNea*a}EYhwjgK3XHc z%MlixzBro5w(2z%b*^jWd4hx%o#%fk5z#KOITzaAzpNRZ8MSNl&G}R8lY7M(9lhyx z-*ES34Awthen!{Eo131SPlwB{^5^EQ>*XW!5`F)2?Nwy!JD)dQf?WveHswd3iM}T7 z8Bc`M#}LhDZb$x8x8xk)Dm2Dm@Zi`)7hb&hX+9$$Ep}mLBk$eBigz_M>Q@$a^@3)~Cca*&qGjmihL3ESnTut>6j;_g}Wa z&ew4JH4E){%Ok}$+%u`U8k4=$seg!qX_+JS>#fshsdnB&+ z1vUTaUrBw<7YjeliZ4xn!=;km_Y#3V6(6c#je_eG9B{kTld53rWm4`V1t;Pe=nQCv zAM2RQV2x6()9^19<93X7Dt47d;_s=555tZ}Dy~tuW8Mh+ZZvj6{MaKr4e>Pmn*f}V z$hjQUxIKC8!i++s&#z>`eslcP&WuaZ8ZOuFFp!Mre)*p?29lH9Y7cGp@LrYWZ#cZ= z2fc5R1FhoOSk6rJog-_Psi*Df_@D#flp^a_SNNbz!u5-~k_OE>4e&JR)-c?U!M)h8 zQ}HB+cVlerW9|qWm)bZA_?eKw2vD4G(E4>K>yJji4qbhYejQqxj(+7rujsj47^NOL z`0cgD(YN6^-R!2T+tOY?c!p>adUzx(3EMdg*C>1DqWw7yIax?cw>5BOmW+fgpnjYR+Na@;{?DoSOa1U8P3EW5aGwUP8HvB60n_ag2df{4vi@lF z66?onR|uY&6z zKYUE?+)_LAnH6mV!q?i7^oM)bnwn4ToAF8F9D`!VdKE1{BAE#`=fzq~Sk>_y5l=}J z+Is~Hu=BnI_k23bFc>R6hH!gEP2_rW0(8y~jig6B+MeC0pQE6Qvc{s-qBot2luXdz z8jO2HV{A=5c>O$-^+%(hhps+bnD}!Uq;RNYNSfjL$&+||?nUhspVwO}`F=zA?vb`@ z)T;JW+G}F8_3C!ZlL;9sMYb(-zM(=KC;uYUPg@r$pME{}d*^y!nRNK%y(2n&GVMI~ zb7P)^J&wh=_>`I_^#%_gS$N8UKR(`#J@Cgje!OpR$x`3UqVlB+my{xU2IKwkfe@!% zMHp|aMZ%036SMHGm#p&gCFL_J$`_U{urM}w(oO>RJ#z3*hvIIsZ@d0ZfrAuWpey!i=%pD9?mS>lCH2@E_gaFD{+ z{Zkn$>Fb|X`3jCwuyCuSZ&2`b1>>KQ^ic}ds`R%M%vUg3@q&}|_MfB#`D#_eFtTq7}#Pw}|p`v8(V*5l3xdh`H!qMlD;&C^-l z^YU1X>`bzuuw`A+(J67EN<6)L;=`=747ONKS(AU3_oqc2WKDGhp%W!3DRd1ZbAl6Q+4AJv#;?fG@^Z!y3#R9aLiN^x&pt=bnZ@za^_iCM@{FAKIiN@<+oX4O zizA&MaO5x%bH91IfwPixCZ_A<&38sb!aNgip2(eTOP+R~BRZN>s9Xo>894m?m&onl zT;=GgmWPASnTmZ+UC=#FUcC6%XP~~jlT6-y9*rFGps%zh9BuS7ODB!(#(PBT@3g?uP=JEf%f5VeEUT+t6{e44c zBu1xyk@Uq&_oC64NMoThJ=5hP)vMbTi4JESu7(yvzo>gMO52~cqy6F;J99-xtngEJ zJk7wABAo7BhQHKp>T^fu@q|O3mf{*oJShA`0m}1@6;hP9Kn1UTy557->sU7)#}O?L zZ7}^*^W9eQ^}JSvwA1FAQ0y0HN=kwwb~;8W*I9CcgSc}+Tiz+4FXVVbmPE^wzDp9xXwd;+=B|w z_m;<0Teh-ivDlV}_@a(yl!qGm)`$*XCobJM#AW}n-}1n-oR6Mnd%b)n=GFgPXHWwo zwU1@EZ=*e4(XSkoqL1%*y3yC`EvJsk%i6rqvj;jV$F|Yym-R^3>(wLfVC&cAqv1pM zb4Trw{$p=(PqZVhG_`2-LDTD)%Nfusu2gBIxWaPuYd$1gj(E7fdf6Xx70Euc-OhfS zeCL`gMssb@)$$$Ti!}-7(peq0uQ?Lm9n*>2UVTa~S`H%B-x(dsfFV+Ob5%MWmW`*g zO{sUKoZE(Rrlm*s?Y;pm?bCm|!Y}7|S-qM*v=8$et=$|WcP@ManNK*+mmVlJ58s>M zOe5dU)U=q&Sus3ysV6Q|+v8q{vcz zn>%jBu-besBx^A4bnv+ky#b*cZa1=!!?#Yj$F1pI2tDPTpx0^>(SDAdQuIHc_K2tK z?BI2#Z}cl^^Vw5!!ks=X{VLs3b7kqylf6`aoy47Ej&-N^wa*>ii%!0&9pN|}3(kC{ zdDT4r_bmuV6HjyNH)x{O4_Y@qb(4`EjfO;HN5b`p<5BBT9(uMM{mUA;e&JKU@ENFM z`t8f>mUdi@-cEK{ABxWrc|K+d-Rqh58>Zyk+?Ue5?~Jj??e1#*x>e2>j;5o3m)o|3 zXGmlf(Q$oZefS)cW7JE^T`Mp1NXK8OS>02fuk0Hp?^~@`ut~u$pOAFllLGUf6Ii8S z&31`5D46k-#Pbv^Q?Nn7HCrTqi-J`zN<8TqfkPF%N5NeRzSSc6vD*apeOBNo1#1*u zgMxW4Nd5{1zuYA8><$ z@uwF)M_Ch=qiM=2OkFkitE1y?AzLBaS|DL+U-|BobIIYHoxEP)y42&`Ek zaE*fNOC&zvRe>oArYo4E;A{oU6s%J4Mg`X?*rZ^Kf^RAKk%E@ud&?_Q-#!JCXUKTC z@kB{)RIpf$lfo)V|3JYl3hMV1GZfy9D!oR*T?$(BqlK6G1-m(gb?=KX%y+hbZ# z&K}Nt%$y(EpUaZpryw_+i8zD#b;l|gNgn$7gx-_TK5lqD9e+EARU8`nk=xDrRCIlcSGJFO~gc&aM_x%ItNOQ;N7OCFdDCr{~Q}b8i`^P4|nQ<||mNV9o=QUa6q& zhLpZi?lYCH&pWJD@j;JBxxNbC_>ja;e^_Ac27xsX3T$c;I8;G>-eI50U)x9ObDwuu zt?1`%l=3UoJfY7!w5ohrb2xu>J2Z6qdpdM2)As$HXPV~jf$Xz(?U}Z$k@?(ARvh&D z!@sX2K2_)YSkdfJvQ1v?;cAP|#7y1di7)+ZiuxoYgWL#@T-DKwqJ0Wq8Sou<=J3R# z*LsiG&Pq>z$$}mn{dMX&*NEDeq>o7{@yWHrg}Ij1JteT?_Wk#EXgcD{Y(XSEuGBj3 zAFd%}t!PT9EB!&cSb=`yE~mRU$Y;m={qM<_ax;S$|FY)c8mt1=mESiHm$aN|rCrre zicF2?DVeTF*yP4ro?iU?wP1h_ z{rVZIGlO=O{CUhT$`YZabk@ea_d~yd>al zS2fM(=<&%6zrVu~#B)-54@}Qq(eh@tZ}>*(7_U8C=ATdLiAUj3%WkBoD9lE(R8&+lgc zncvDWtuA?EI5_%lUL8G4>@WW0b$=GWG4O%Fd z21&Z~E`EDf;Ro)M?+TSDxaoe0zop`Oe;}afoaW1RD1o!FFek-Z81;PM*F>W^ZVwGmEu`p`f4(lnf{t?J7J#fd20(UZ&vX6 zL%7Y-t61*n%JUXEYo=F{Oy{WQsTMw4=;#Zc|LrrE=A10+2j^>=&U~U}bZF#5i^HcZ zTnEXDTV`FJl;T`Q*-7|z>sw~5{tu=;?y_ip+xNMX>-H-C+kLKkGqS$RIRj_RM(fE8 z#%j|Hk@_zZeLe-}xi(5nkF4-79&4XWaQOU=bJqXv7aK(yvX19-$>H`p4SbL3$H?lc zd?L@JQcuV99E~hO{n{Q!)3=4HU%v@`b9DdT*^8a^SI6@8>O1L$B744&ofzshccrNP z^zKE&FGY-N5_#W|Pto-oCGu2Q?5DF5pk?#=I&>yxvTT&qA(W{056=-lV77u~3N~C2 z?jJNO{14_z`Z@*kbi7Q`S6?PD?^1zVRtOASBCw`b;Eh)bJiSujmX!hrTqDqToxqTS z89|AsTr043mB94t1+MtHK;6Cu#jjuSw@bkr6&$rs@VER;VB)6&Yrhg0`dr|k{Q|%I zr^^3KV40#{qv*xXlk_brKHygp4=B71D!ov_&lL2j{0bG{pCJ9RK5nu7oKDW{uuq*e zQgr^1mW06Q=|p-mE&JS>YWSFTd^P8}F;98O^Y_RUqy0@9o}Z%U_U)eVGH0-^v@a9w zl;;NY2{?vLPc%~N<<#1D)vB)bi)Ejx(OzwI`sP@!|9*@A_j*4JOBL_y4_B=g`XI~d56rV@+QZOa3y9S6NZR*JsOqzN^2TiiIOB|PC@7k5YVjQHLUp2(ev^04YF^Be z--HvcWT{y^$>{zqB)vk3%uA$_-;5)@JK^l1P%_+!;OqegJ;=IqVLzDcEBpSwo##@gud^4@vMLEA^qh`E>8eb z9n#X39U*#T;nF=7-`~-;McPV>5`dNF6D_l)U9n4~;q^{Vd%B%Tfs}L`25WL=b`)|u<4%J=0f6l^|0 z;@cH$Rj_QKtix&)OkE`L1{GhYV3UGd6l_&6q~Lx96IFSif~PB(qu^`>D-^6zaE*fZ zD7Z<%?Fu%j_Ql>H{OPX(X#GD2I$dI)ikS#&u78D2=TeLLY)c!3LT~qtg6F0; z=w(T7*d?&$6@mA>DX`^Lfm>9*#!G)o(gSY`+@)Yh!7tyD^whryYJta_?iOHX)p+in zp*O=PhMADYL_L6x6Mc)lQ}oBJZ)<)p=@q|IdZu8`dWjd@BQXCifvv|1Jv~lakCAxI zy^`;y-=Ovt?@@5q$AZ_W%4s^9-Nr#eFY%Aw^mdGw`E7lpgHF14!(cr6X^a4?>!$zrPRuE?6klf%TB+@$(QJUlg@dPXSRxK zYyKXf*h)D!&zAD-VfQm@u@Zbb^4;k}q^}u$6aDB&-rVz(Qx)yo-(F9gp3u7TT}p<( z6wZ}LY{MJjh%xhR`Lb{ds&BXM_;3{CYsCdPF8GlNA1<4?h;@*^3294parBC zEjkm)>Tp)oZ&x4OdVo6^9Er3r-+VpLd3)rEsd+w=p3WTX=*lP$|C$-~W&v6#r`h$& zMKno2_tJXBcF4LyQn)sELhjrwCu?Bhm&#yA_JimsPJuG5A8ExTc#gf)I}6VKNVKw~CE-pizlp_lOQiORzJ53TD|XNPN{G~s?@#|g{PlHB z-s^)@^?Q=~cOW$ksB%eq{c%FabecB_{ndxbIwJ2;iPx%fDT+?*@j~aL$GrJT*(&L= zk1Kl30uxpI0|iT-l=Pu$A7R(?5-(8n(^Y-+BpiDgZowSO=&be+W-V=wD7~hXFV9jx z!b3PeW=Vb8)ZxYZnPzw!+$(#Nq8Be(AKUA{+ZWK*LGO-mzrtBB@VTI@+uPSDV@>vv zqicgBqsa1+*0|U3&aBsd9DcL;p`#i4yE#?DZ!aIr-iRa3j{JrH|H+ebiLC$H{>vP~ zd6fGJ)6fI_UW+-0n({q(dR(I}KH!&fRjT(WxZ5T3G3QNkA-_v3d~n=_pXw59;p*V| zX}?1)Z-|(!<@+4`!gjRhFWTFxj-OE->^X#vo*8xh2_>JCg>x>x?!i%NZy&i|$zJ5D z$o*WCb(A|D^`_zWx|}+PcH(t8m~P5$xi~Xu=TDI%`(~X#i67d* z6H+f}cyvBTUR*LhMXdLFLdK2Vv8_sX;Eug7=(JXUs?qVpj- z9trySW%#$kqnk}-|AgAr(H!Qy*Ya(jj^v!((FpynW>fOvHLmHaeHW`(x9`&4KNF1h zBiHdJMV8!aiu9C2pXTGN(Z0pbh&5?;G&Z$2XPyacKaR|I|9r-jK|4pEPWFJr>hV;1 zbYn!;S@H$rl<%mIz8g*WZfcR|X4C@KN1x&(TPFs?r(miV6w4DBEbFv@T1UB`^F(@1 zcJM5A6ae3NesdWN+Uqa|) zk;fXvx7!YFQTt6fhf6y*3=sI%_XK7P6xgijq#PmfluqcDBnqD1&q`HsOO;Dfbee_> zf9Wdj=1)HlZ&A-BT|Vnt8WFCHrNE0etGTgOOx z?NI{#M+=Nq@eEbIQJpiQ59~ZmtU%ApQ;|~K@ua3Zgi@vc(|_Pyzdl#jtmsENhu5s= ztUX!iIKN|ff&FBYUwP$uHU0*j{?;UU`L^Hv(d}J5Qt81&;m^tzxIG}SM8WG6yhp)e zRnD*QM=3Z!!DhddA23;9tb%J*dZU6FicYdBr}@(R0e*W1E;Htw9IQe4e2(^={u!SK za<@ZcI^PiG2xm|0=Xko$9iPv6i}%pf7kNLsYLv)%t!k%xyyTrJa>`eDo2E+KnVsl~ z@RtkN8t3;KwYYGYUf-NP7+UlUH1{{;yDppdG``u0^Ww@q);f}myG62Mqs5ms%b{pt*T=0_ zs~jEZj3=)ZS$nyEbFFk}n(rfY#$Ee8)=0nU6Peng_b)K;S(JPU>0qoKDR%Vr(de|w zi!VMgqu|&Z_R`!>3oOrl%t-Zmd4<~V z23WXM0-2jVvE;{7CyI&b}4T!gu`r3@<(W z-}~}`lH_Pv?`>D>IQM$5EML}lTNErPka$J0z|@5T<4Xj#o+|W)E|WN)?M=Y@lao=M z`8~@?m^Djabty{*?yW9>h10>09RAMW0&8|yo|*2ZA#~(Do+9YA`5Sfm{T}(%51!AJ z;H1m9tQRXDoOG#0@4RqSRp8%3SZ0&oiQtv1ea;1%lHc}|r5-b%>wT8zKFVyAx=8uc zl*Vv7XQARw_E-4p;yj_6YX8o-b2r>hOGB>Dz@LGYFrPc{Z65wUxdf3f%ko5%g+5tk z_W&u&a|%-9*Rc4P7!n49SCbCM_9C>BzgWcc3wr;@r|_rP{7b$`NlriMUGOZFmnRnb z>6a?5XjXzNp1Xw}Q6?8vEhgqa;rF9^v!>b=v%Xb+ZAk8P=6nB z_h}vDXVeOvO?3kEJHb!9R`4`^T6}5;Ju2Ef(Qew+97vMi>z{31X7|G7xTAF{vn4SP zxf~1PiKU^ZB`mk)N$*7TYdCs`t1lg9Ei9c`RK9TjC3)q`mf~kAXXOQoO3I4LbIX@p z?4MIHXHxl+3ujc!sVHIug>*jTNR$~17nBy26KP`coQ3$|P*?uMqVftO7xQ9C35rfE znX`21w7H9l=ILL;MEb-zrRS8EESXa{b;)u(FPa0+m!eIw$~J#{{Q|q)&Kb`DaCr`k z=Lp?l2KLM*!2-;(&l+SwW>Zj_yGYX@G09^ZpY>9smg1U^9^e?$U$S=O%4Z(pt?^wy zVr8LT`C=FS!r74jD2#zrn~gIuYcrgQx*5(wtpcankbfrPO9C@&IMq&LJP&u|m>~=2 z8)*9`W5hA!B8PVq6s^f<^%8saSAyF0?%oAxb2c<43)eK1b>bJGt>=ISPfT0@I$bY8 zE@)Sl+Ly$fxL61aGRQ*>YzciZ)tM!i{i9vqTMd;*2+GWd?%p@+B64ak8>3R--zJ|mv`Lw6;yf*;W)&jeRnjR<*1!} zPlEW`DmeW&*4C69^g6#%V8Jirjv)1jBVWb^-^|fr61d>=W<6rW=je!j`<(_a4@m11 z`6;!>6o1!~7ER9H$ge!;S}kZd(@BY|6wVx`Mq5_P7_qlEzAkoBe?Lvb1LvV#c+Cnw zq@c!=XWF!n!(mJLppn=FG_UqulhO1q+u}6qQf0%grd0y>6yo zykv1vc&dfBo=?GL>Knc4_P_ALFLrQ0o4bq*v?h6w?y2rFSO+~J!{$|J3gZ#O+kAK znm(gqgdNXKv!>^c#5Ka2K7}&{%4U@d%^4HLxFHRbbLrBuCFK=r(2ez_4L>#29%?LN zTYhu>#IGjEd)MdSt_1oc@6mBCpf^Ild8u_NY@YnGqCUAmfITt8`Yj7sg?nXgbIxjnV^?U{x?C51?>DQ+hLQsq}`O7K@&%3s`O zs+>{P=>gE?SyfsOX_@4+#o>9;%0;9lD?ZAEU-@yj(Je1``?@Br$nu)y(et|HnYL|V zzd2H2t23c1`jnR5yBGc)X^LIsI@c+y={k86kY5Jr@_B-T*O4wok_+3>6`2IkstVLi z?~i&%tKfV`DbqtL@=H|WExB78t_RGe_a2>wP%7+QZRQ+^u3+R> zZX?ZOk?pllgpI#$dAFBOG}1mmt{pwvC(c58S0p;^q9h_|k$KW^8b%>)F=r$GqRA55 z9XcgKQkp|4;j~2V-15=bPJ23&51)4Nn=$e%CY)nU&8b_De?4y!!?EwtOOKv` ztdZv0vJee*=DBI$XAx*~RU26o!&h039%@Y`cVY*%Ee!WT^o+|{LeIF`%kuWUBI~U5 zM`!ZstT#IAU;5MB6)3{Ym zW|sGPQWQ)R&#PW9dI#{pS7-TQ^gF}X?eb`^u19u9`R*1y^0`5>8m z+bhM9*vshp9rr!t%e3wPGLM08MRKP=PRGr|9rps{H$~}RaIb*x-w4(`v_r4%h{+j6 z-a?c&vlhd*;dfSeBDfrM>5+1M?F8A=RDw2aK&>Q4#p`CdsfC+S?^op-^oP2;MoR zi%XX*=gyo2y?KLO96Mp3s&8nM;O9Or&{A;iBNF$i{9+e=p~9q@b2}58={nU-hxqpP zgR9*WAU*B`x$!63zv00O!s$;}wYEHk@<`vDGGb(j>S)sjYM&xf8NcTXt-uKCTty_*l_Gq7K)4Em91Yra{=r0eEe%ge-@fQVaOWsocDW-#d` zMrar1kYeP8z%%tZpi(NR((}D6|Z{+*B$5<_h zyX}w0-xopt`wSWymyq(02TdI!(I&56dPDxrV8+T&rVO+L27MEk_iSISk)InIW9>kE zy^&^?@v_?-?{2#tK;4=b-5(t9`y0$HW!t^vMR}OPjP3Yw z4{I&ztu**Bad}U9H5vJ-aWPhF1YU{19yE0wS`Hb^Ksm2Ko|BBcNVLhTSNq7n8O)gP z+#XgHXy+UBOejw@1N`znq6eYkJH6{&pz(A3n-{%ba9n01loRwFMGZSv~XKJsq{#*$RRK9p(d z8Dk~katEd)y6`e0;KjS}iX-6ZI&{6OJ@AM_|DzYK9Y%hrSB$k9S23;(TuHbZ;$y5b zTmf7@TwMv;?obxGA12`5ZFiE+lm0UCGJu!ZJG?$kk233sUW4j?6OZ(oBk*tczmc~O z_g=cC>4MaO`n~9CKG|m-@tLdIZQ_w$afEgwt3!G%5%j(Z{pc0g?j1%R``)YF)FrKd zx;+^vOTG3Aq?=;2Ap`ebbalUzhDq1m@461stup8~M4+qX>Za?KtI2&M`XU5+%?5p4 zuZFZkRv)KSCGLH=yxK<8TGhY2H`^C5XfRI)wy(g*i$t5e5|_cGOa9GZ##&LP1+>>1 z^i5pevwgeG{JtH}Bc$oY2kS9|8B3Yn!^#ES6kL%4`6xE>cjLYmS0p)GpsA^u@@O<@ zn01lo79%ebZSv~XKJsq{GggT*sr_Q`Ti|A@i7j#t82Qb(FUIBew{@x92<=;K(9pPq z#(|vKJqOI=G z`aSqp1H`{-#6A71T0r_&1%ULg(g723HF%VF(~A^Ogsd4Td)<%JPxg~nU}~$87c%aN zuj%n#)62lUo1Pv&J_Bz8?%m@tAN;XS6E6dC>+o>?suZ5vFU)u0H7h)~zt`x(+pq9U zJHUG5(I;kLANNrSW_zi>UV-B)$*3z8_g>>$x0^Ify6$%CI!L$7pj#V(u9lOVu3Jtf z-4=uH?g(_XT-|itay9At3|Xe*-b)U;AKY}^{b16qH0W{+dC^V%iMJn6V3Z|I_M#s5 zjVKd85PpseN8=GPXuRDXc+4kFj(s0!>98C3xwz7g5PqACJdI<*0`Ow{m`F7Bqtc@s zYvCNQ+Q^HxElqC?x*4ldRUFf zFL2>#JVFMISL=bte9~k;wHWyYM`Hd$y!QLi^^*_0c=eMHblia{lwrD&7j0c^ivYBBP6 zPLzXJu;)Lc9z8zYxFOKh6ihwMH_Do2Z2dR#v_6?Qy!XxVrrT(gHOtuc4>H$5%U{Pe z%#T1f-Y834Qquae8)X`iU*N*gc!UfZuhs*P`J`#vKO?_j5bPh~slMp+Wi@#5(ib1- zxC2wz=jldXv~{s9Uiv~gn1L}Zr?R;{tX9-jYt*N4%~Be#(F2e8#HF0}8Tqxxz(>bb z8>O6l;KfT$0nl&ClM#0IuCp%BeAeoXQNEnl@`;TWgKHsOv&oyyQeVn1L}Zr&^RrIS$W@TsXux zOKCg{xL$#&lv9S0--`P(TET-N;-!Z^&~XQ*P?yq;ylCrUTfFp;axep9T28(q*niYjYt*N4%~Be#(F2e8 z#I^0ek?;EfY#OfpQOb#Rc=1pE%wY1r8f6+#M*x>Qm?;{s%ma_*h)ez(jr;)k?h608 z;Ki$-<3YzAn8LRDjJ#;;Vq3iAL^*f`j_{{rz!K<<+Pc^luYRQ*yaMH4fHvr$+oR(eHbszsz$i;xQu6TzVIRsA zp9CA{!eJiq^uDsjYl(oT_mwr?z6f}_-!)zm>UIY+MdM|7;ISP0oG)}#8Tpkd@JoIu z`^mYu=YDbuAor7T0L|V{ZZ+^pCz_!5hkQWRIH)oj#j;^}*h7xKU( zj^;lFv~)-sit}5fjVmhq3|_qKbCp3;(`GGfYlD#&ZC(2#^mE9drRyQ2zFTOE4!S)$ zt|4XQC4b7-42)^{hfroUXlEGoHLh7o;}v`05udo!pY=w5#xU4P#6zbeIMpDUG+<1CRK`rJQyc`NhMLimM?t zIyw2kiB6+^P;SaZSj&57#=~fweT2Dtf)}rGRb|lBv{?)Lyurwewl22COJ67luVCAM zv_S{m9v#;(WwE!ugj{q!bV|j6B^Q z6NmSdk=J;qe9gd^mVXFkQbxmnGU#huvy{fOfa?{QO8I9P`K`Dw!w5U`6xh{c+lMK!Xcgx&?;F!GAGM&V>oDc9&!Az_C(rSqsY9eTl2@+7To8Ki##4k)3cup8l-LVQHe51r0K%Z zJP?wPRN&~a9`_ybkqep{+mu_SK||9bB+sjjyhyakt5^HT|G|VQ!5ull*8^960VaQX zanDC)Sv{-vUXqp8oD1%~Vn1mhMT9%lv8wgl>Gl6}a@4*oq5d}GSWZ3#6EkVtm*_O`USeU{Geh~ zpx&SC%MR|(9`a>iNNb=z_DBltd)LPHscD8BVgi&Uk|u zKh|djf^WACocb!5tRMLD8w9AJZQ!O|U$^B1n{8Hq304Eu+mKZmo7Vj4z1h{xab(42 z*x!9mAoxOPz}IbP-LAcJ*rxw%i~;>m@3o~cN1DGE%|{hwtb*b=??43=Id0+yC})D1 znBeEZmsrJpU$vp=YdQ6CX*Q7;LboF&`(R6IRxPiOjA3Q^9WVI=j09Y1>0T z--^Bru1PKfPk}49uzxcz$oxs>`I)mX_{sT7A2MbHuKXw$J&G=`JnTT1XCNhqf)3Q@ zC8s`vn^>fzy%|~unbe;ZGw!Jb|Lei0SRGMW-3hGj$}OaIo+1v7qnahnLLD|*Fm8ZT z2UmvyjFI3Mw(K{uhPHwKfxOV4J)1rlZdrR1?W~;OGlAgCAvC~lpj{9(Ha;y4EFhsP zx3Go_bj^VvR5w39P*nEfJ>H|%o*5_ia z>cZqav^*y{gU!!P+ld}P^KKK0u@tpcK$yFd5d@4J59)|qllbc;)wt=_Vw=V`;+Xmi%Ta4v#uU8y4?(Y@- zez0}iQ_Ffbu{-y6W?~^ik7LL=&=}t?QRYRE$8dtB0GR^MSguq(EJz51L>7QEGKT z2xAu}JUbZ53BEVxn17uSXI0F^kblgsu-`+hgbi%Vjb}Uhp#h;7nwQ{yhzHIHtsjZVCX}#D4fE=%_!`zP3MeQA9oo%1WvMRk%;JaL`k?NdA%g0{Rg%^XrpkL z10@dD-;Y{n6N`fty^>4o5;_v~bI`0sA}Z_7$_fs%(6z|T!DuOK8<@7^>$c2s&m`2` zK>4Ft1%Nq(K+MDlN!yvW4HQ#sdxZvKQk=FOW$I_epgn!pwY6oXZG$627JQ-9U$A@j z1*-SACDdeqR5od!M%uxC3FG6eN5M;M_P7@-Mg)Q}ER&7_@Tcx=ZD1#r@svPaUa}8~ zSKiTvArFqpP;hG-Z2ygRMCya($RRq)fu$83Ji&f{IGv-QmGl!pA5@OM6I6mvwIybc zdpDuxw=}xd{{e5m#GQZ4isZb6nzb>kU`2A7pV~xYpJ!Kf3u=bz$D0-P#T9 zdw$~9*b!DJBelDgwkR~6Z(j9LdkI!+{fCRKpeuK-Te#n z=IpJpr)V*+EQdwSL6=lw2nHcm_DmTx4Qjp`g{Z7mfVP6lZ4#5~?n$n-p{=X`853tg zzn9H#8`!iBGaV|)u+@%#Qf&>&sqa_x5~dd<_%fS5#E%f{xfjz{+rVp30Cl^{*rSL# z3H+4Irai!??eOin7=<3EzDybS$+F(G7xYB-4kaSA97BqV#%ejPrUaiR=OjYA0Uh4g z0v#sWK+CGzluR$-nHt-)6x;2oNya8CiB}9^2Lzwa48AtsKPJ7Rcc8kto2@7NsQIwg z&jf}%L8^Is<2JHOGsnG_aNUh4O|f%O(O}tYhpO!0^Pvx~?@l2l)LaCVF;aCxbs_O< zY(DHJ*sRa@*KP8XLz~ln=>6*FF-(PPHYh9jywRpXcAN5&VI}>^1svKbHZls@a%2^+ z`GYSi5uBecy|ozg0!q3hkB<5h<6QbExC5&QvXsI|2 zBO5MjM%p&?|Fg=}{Tz+Av-Vs=!9x2Avd6VmT<%Z*QAK51Gb93^Js8&rX5fOuJ*)4x z4)>f4A-{smCc5=G!Itdc3z!f?O`pR39@n<4&y;chu1J}mRd>eT6L@bo{|v3wi=iuqcDMGzyEztd%C2o-9!%xlg>3`-B4tlCEPLC)7~HxA!DeSR{Q;_H zH-1X+d0QNz&xds;ga@G0=<13%TL3T#q0fh)%(!u+M@-;BHvx)l-nWt<`D z(ofsS`D{&ci1918a7t~zg4m8u@h2zca7fIUX?tRDst>GuAGKG$r>4Eh(VQO`_j1L@ zf%;1!jn~=+K7%eF_tc7nKto{MGt1+bCCslIbj99Y{0m>UXO*}&7yLv!I9N~Q1mDW8 zJI|cy>Dpr;qW_v=(SI_>mmwwX#VP^RIRH{mpn@fa9IN9I#73Ga*M4!pTi#Q#~lDaS_l29tIkCcfP4W3Hn_WzbZU}) zq*IfeECAySkAsV28{HQO?g$+-o#-{mJCL*&zVSWwU1q{V{^SJw%}MT$zj?|1vY65r zfAf<2;P33@-bi1O+zWpzlH)TI9xh4lf%GK___Mr!R>H%D$+5WoX}=t(2gQIo=z0WT zFUT!0vSZPlMmtSVf)+%!9tnORuO*}daAR_VowUZb=`ee>h}LaLt|BN&uJqRxCYM2> ziW45n?CVELfgfWip93Nn$pIwy0n7mGjp=^-U%qZbG#$}ifT@7-fGG(NXZE1Mv3niX zHuTJ7c%#teX4DhhhaHtO$$Np_8*7qtZ7AJAM>`>_)wU=wUSc~bXBLHH%%$khZLd^Q z3j{aWa^`9+k>mVpe9Dt>RZ4fOdXudt@J-_W{RPYbguxDj)mEfKr(+P)QO4q^JNF23 zLE}1`rO*@*2ySJR8qG2J=tD9lTN%G{3sv81OuDysFiJ#C;;v1LgOB@hcJOn1`THRT zYc^CWK3H3eMeN@0nZf5XH)B%61o1-o0EqYrh?u;lLq?%uOy6nEnUCWh2EE^4yG2+R z)1JfJqu+3`|0-}*va!?vLR&QesWt%30=5XCN(F*hK;#k-inJOD*}=DACSbDI`2qgP zp+e;HPhJjmy9!8{o|HyyN?v2f?@3;(;5tC!?NE?oKTx;EZb=S^z#S+_PH)Ri^^aNJ zH=*V#$P)HD6J8pO;Ut_ek@Q6rHJPiw(Ka8z0aI9e01%-hK_s-KC%rqx59Z5MDnR|f9q)6tcn%J5Fb6zhI>TBaCZ~SY z%>F1>e|0WiybjdgJRR@Q2RJe0(1C8tEkJdj4S{Ask9yKNID}1(de4}k{ z+Hyf|)qY^wtnLV{$C`usO_^`x#s>MHjDtx2F&k`|Ce+ZU3|^fB1)*EtgBxCgsYqc6C2%`AlOPD*g zZb!;vAjK6rjOktfBulV5SRj+YOAn*^`s$P259*mK;wB=@~X~7mZ=Y}RQ5t|A_rRm!7bQ-fW4wI$ffL$f$Vja zm=ykzu*CXD!cS{#t=v1>KgL!TJfz`hE=ahkx$bJ}OX%$%pn3H-e|UmY5{?fla%csd ztxU)dtzbN}DG`4Y9_qGm+mE1^*xKmclFg@FA6+YT)U6^7kXnJ|W$o2}Lj*b7P>3XV z1J+*s2@*q3WwK+Gc0Y785&a1dUAri~3bp903CG=}?FS zVHGH<3_t#0P}mz$@EQGF!sG;>d-O^W;)Lky#(G~49sLiQikmAB7tYu?Kem_#{`4`Z z6f9nDfP;m`CWGUgMj=a^XjzqhMJ10k^m)75?diRcK5nH@YI=C%Zr>hXoxM8ux}eCH1bab#Wn zp$|X?>Z%Wq+2So~dG#_0k$P#KtP>=aSed~Gu_sxR*w zn^04dh-{2e)*lE?f*D?w&v~q_HW5bOfBcHa0d)*ypZ4vp=P{KEIBc#3f2u`%B>>;B2oL|L0%Rxrzc&}EWs z5UecKC({GRQf_ulT~Sq-`HUI_8~W|rz3d>A>&`dlMn=aa{;l-5c(F}}Z0PeVka>)~-{6c{CO;6;&m z=1e0p?7UCfXMe}ZaBm9li;9h-akc}n=YLWc)$4rsoDI>{+e#tIv@SFQgL_vG)8^O_ zP(cfnz2|7`v6jWz`85+2A=U-(3iN+ z--+(X8F%TyNTDQ)h&m}F4?sD}q+9`Y7-)G-IG>%wy|7bII_^XgYYMd&(SMc9fBFxG z;=|uzJ8K|89D^tW)yU>qI7Y4KGA@b_uW3ER4g*{Ar;Wl1%%Cc5{d|5H?f^;|;(t-J zHaS%R!K3B#jblthZ#`(2z4BjwDLGY`n5sH4Ra&Hhbw=W$j$YltP);IIzOFq12s^H@ zA=$<_^a6xmz4LT__|L@zxNq;mJb%v5h0Oz;meC@0wM`nJob07!{G+K4%dQwj6Uq)2 z$)P5^pHdh01$S9`E++*r?7y~hOHBx=1*6&1Ta>FU?mX@OF>X;uvf10V)j5S@rs|v# zLhwzN2)`PB)yiK5z(urC^pkN?Jh(!A71`}#XJn~zF=$8XHX ze*R7!F38suqb8ALRSL|U^p+5scwdhz2ohYlO8p&k0ewbDX;M4NTfbnIss;q`Hh6kh zNb4pBL(`9T*sL6=YSnk(9W$8mbw;FAs!G#FveNfFo_q^`#>m?wWGU)D4jJCevth;$xH^^Ng&Y=p=!*f~>FW%fWRuA|}g ztp_9S?7oaOkzXxXM48oMR!Cn7QvQ64?VPf#-PE-}*JTGmfoG<%9 zhwD~TPrD%|+-Wr$bgkM<;8OHm*}yZu5hXct(>Py|d-7g_rjcv-P8@j1Dg}MT1d)M& z-w?oN2K>?w?AOTIcPpRyCY=ks2ti9@kK%%AwFm^}&E8^I&=Gpw1Vf(7m8`ML$UlUz zl``55Suz9~zQx)E8Wt0g+ObCgG$^T%$*!Pb-sl`Oe2MJ2;+Z+NAcL;~rM_oPBdiE> z=dJ5dwPeuN6}-c2U3ZV&C6YH=S72Li>-yz&f|PL`Boeh9=s?kWGgZ{LA>uV0O z?*D4jO7FeXru8-zuxX88u7+${GeB}Q@#QhQ?2rHY73AC*qh9|KGe7ae0$`j@(OTd= zq&Iub1CWrpP62F-jMdhV%^3Sm)(RbK`>#5-98k2&`vSAX5L4J<4G!CsUD!^Q-ufqj z{X)~l6y|AR_wyVY$WhT9J^s$O|B20u(Luy&lOz0{yODn0wWC{Eg#OMC4LsM80TFy< zgTahXLs3Vwdq*=9{|)5LFu6LOBw-?aSyhtVsTtF;jqcCaNn5(n{a{ZmsT&uAfn>9) z)uXG6g!r7NvlY=yL$ULmcoAFB8VYjeFC;aj+EJeE%}G;)r5OEEP6uQDs`ROK-%(fgTvbvDPZ*sk0M-h+}5k5ZrR z6pzv$tj}a5p%QzO`JUu*j6+=}TH+!92>nvuG4XA{*tFw$167vg>8nCA5?$qEHb{>Q?{%Bu%7j?OZ^3{;_rXGmBZK!U=#Ka^1SZI5 zY{w)EI6GqdB=#kaV4jMxK=T-|13jM1GGa`&t9BiT2^29xX*ePT;Z}oT1BBJ^(GoQAV68?c?0CT02nU+k5P~#3`m2(?}>thT_I$8aqZLLTScl;Pn9Aw^(tF~@7u4mK-&2hsQSU;VwUfmXz&E!V+VTL}(g?jR@cQ`#_dIM--00y6I)-0M|R=J0%>1?Es3#B_XK{@ zIGMHLyW*9+u&x}XF#o4A4(e?^Nhr#6##Cjr`L+&nJ=d$&$>eiTJ=s9S=Jt1eOh070fbcf@M>b25 ze~qe?KY_y#l4BU9{z>ZX)%>rere=SaED8K8CZMe%H_07p%V*y?UvDnocU0#D=r@~f z&Sz)KwNb|h&!E+`take z$GGbi`x!sG zq`;GP+II^J4jJlZ`H{}!3_hb`ZN7%+hkFdU>Fa$lzgoKqft-_&FN`#hHeK zJbQuF05@4@rgd6yB&-q#Y)x9CH*Bp#e@Hma88`{&6 z-UlU|Z@UnQ^Jc`q=n)CN%PHFE<(BiIfC|suPCMk+(97L{f2c`@VCTuh zzSxM9ZzWl`(U@o$dhtaYpTJS_BI9-$DvM-WNfsx2gkaU^8o%#vd-`l?Jv2|*s)?s~ z$N&ONJxlr6MQ{Drze|KRp-QqKFlX{qHfL*AyEW7hGSTv3EY?FnFdtB51GLs{`k)Qa z9kDi`(gp}%Oh8{b)>i0RY@8Ps@%%3sWS;@HC3&rDgxA*ddeoG$A*~R*ydiAd#I6U+4p9>7Y!`3M5EFFiZ}w31QxU#4Nd$E>-8 zbGuoUtoXXjwZ;7q%(fM|@@eE5G_t`N9a06`s8VNzj1eJmapGtw`yInT|3$_K*v$5- zK*3j?vsQjXUJCGZj*({DO$=dcW8WTz8#P?7)~U4f3sqG#{0L+C6kq}Z(19sO-6~9Twn<~x9QdXqG>x(F zS9O`SnOlSmk(R7*#-$o6yHqX7xE!=#*5Ecu9<(}DRk{S@%QA3^iWHpWmuoY7m_X_V zQ!r#Bsq>4Prc#N3&m9lUT8wk2QaZk8hVN_;1!nVKKSvFq#Ge?qD|DN27lnR|%MwAY zU_ZJ-Qfc|`TVfQj#4HMlTjFC$=m&~fu_|<{aqkH&GAZv2{mv%1J#?4-xHI%y`*Ba` zPW!Pc^cy~CwYT^d%4g**>={~Z61i!S#R%5&5+p8FX5yEca9V`xnO5asm*u8~l{1TF zJuw|y6#}EEZv9#{vA9I>HEEeagaX^fP*PB>G`~_BXhnT5L=*H{mVryVrrMusKLZNB9+>~0&yvxCg!dAZe)J) zyY#=mK~)T-21d4fkW&Bnfk-J9Ds_56&wD`{ZZBxP7o?H*g6{Q#G&o++&lHsLP1kWe zMmR!D9fu-}S+YFtFN!QbCAvyr&UOhGp|&(DuCh{oq%B@CGfK!1NXS8*KI1849j*ySN&N^dplp{iIa!(pdKi1xDrgJjF z$OL?6emYB>HJVK+?LOb5A(iQ4bf($|X+}wMP5Xfj`Ts~~>Fu+ORBUK1BvtF(V=-?_ z%@xg6Vur@|ln=5ViELg~=xh*ax1U7E>L9hhjU}M1ea*!RIHf{+nu*lmm|()WO~yQq zQRW*_8$fMN=a^P%>|yhOT)}tHeUbhOU2Ud47)5OUym~T6d!Z7_nCxlNA(T_%)9wLd z)85vzVA$tW!mvj?al=}$QJHw>h$w9{4oKCVO)=*Y_ym*ZpxWCc=Shxa;dPTYJzrit z?Ra)Kf>%`jqn(D)A^N;{Kc_R9d zxbA3plL5nSNeN6>S6-w^yVF!5w~CUHVX7tzgmp}9LO2qkJ#og6013n#W1SJJojbzc z5dslA;87hSI#jz%jdmHMp0`o~&pu(3XV3Og2|R)__8Z9cjNY*ilg0bBTh%LiV3Vvj zNlGRE6z~7qJv3Z~@0_#*HqY>P{n8|WRR^)Ffdcmkt(RuTSh(AA+6Ssq3JsvTq?FP7 z=V`gAOYXjq%K*=U5@F;Q2bM5HxR&nO)ntm#1lAz7u!ESKq0;PX^6J)VVk9sY>at_Y zAnK$di$^2mnf5J#a4<{8u6Ub<^KxeCAPTVqwvX1C8L*W!)R^1@_SoqdEMb%s_2DO4 zk28!a9g8h6hH}X6u=va`B$d!QCsuo(SxL>>!tyJr|7{h+X5NglI@*1U#HpNC z9cc6~KalC^sS(wQl*GtP(^o~}nX`?7%#2$kw^`eYY2Z~6YFRpHiJqY)T32O8`Jm!Y z8RekbI$*`VmWh7`DU2O#i9zZ$Hw9;5n0~b;Zz#x8P~sN%CFroY(-ktSjK%wtlwG{b zwd&^eYFX~QL*>qp<#s7ueuDI`#ZsEBPvqBblObeoH*yKqZoTuI7UyE7rQRuya^~6j z2xhJ!<7|VS=MZk7K66VE96b^*{O3(;X=Sxk zLIoJeoDP)@$hh}Q(8jTw_mCqum=zQj4Zq)t3F|O>aRIj1xyW~isX@bNQnzW6mGU>} z(i)wj$t8Q-B=gmOQU-_)M!@mRk$WOxNqy+^U$4{R6s6ilF^UQ^C>l3syD30&RTZuX zH~DucJ*^gImYxZxouFv=nJXuX%wDf}tRemP>5R}K+9&~@dg1Z=XZlvc%Gx4pkK;k@U+uPbyPVPcE!#ifp}&^;!gBP4CJVVM44 zKbC}kZ(^2&?l!KK@cUQX6S_sF2*J-!eSY*vcQfT zNdVhgjU_JvRrlMzwUa=I3HB!FzIC3u?|WS5K{7}Fbd6-v??>NXSF9$nq;b;KvU1m5KfF}Aq zmF~i%VSX-Cz}x_UnbmnQ6`4S|u=8{1yg>S$bJc9i4QXRj&glIDDCugsRLY_b&Y4@( zfpJ+;bX}*>PLZe&_PMD2!xDez)A;@`?f6N%>iCD#20G64b!qy%{?qdYrx!NVD&-)3l*GQ*6E zFv|iy+HK?tPLAX3sL zG9zE@LJ>I%yMFG;z;jOQp1Ejvct^}!qhojwV`h}k@Dg%}~0Aj&a4+9ExR(8)!eIH+s`nUap`c(r zQSPWd3u&U`CBK??mE{h4^%-PXC=~8!( zIqk+go@2PZR_9$8e#B_nR&sC17om(3Z2Rw;Rc@kX9pD zYAUc-dHp z9Fev)&%jNO#4}S21NZYz5#_!9jxH)lq^C#vWbsNjuXtBb-&-hGcsv^3cm+6l@MBH5Xw1Rk$C&WjcM5k*c-KzhKOnrdjWST^r#>!8?mq9D(XU>>TADF9 z?4#*~H4YB@tI{18w>y;)06giQyBqKc04%2_ogO?E6KysUd86T{uH83*yrz30jCbEL zhFdhdsLty9-gO(|0QN$ zji-8Bb}h#;R({?Ui3^z%n$dzZDej%Q)-1^arcYP@3BWjHioi&4*94B3p;LVynRBPn zOl!!P%f{+5u}~SCFN?=WDVi`gP|~;-*Hj(*F_KNaTm}Y?>CDewiqD_<>6>qcj(Q}W zidpF)mxo9jXGK%CgqKOC65w%8(ZwZ^Zb?f^-w$uU0&bZCSzFbj0{WSv!qRB;&ZXUw zFHKCQaw96CghD3M$V#-zx?h9I+=B-F$<;8#T8$)g3Xot4F&G`myE2bhxu|4bQ@Oj; zF|sbmnZU;w&j`06>*}SF_#BQkf+HLW${0Vj&`7vQn~>7uNLL12{wELU5h zmixl1S^%d;WQmryvb#9K;Tv0AMvD~IVGwYn!+#5ONA;cgwtW^Gvy+wQo3*=d; zcYd5l1nZpb3}}8HXD3Dd$K*tQfa5xOj!(TUr+k!IKTTZV zckStFH*_A2*B^=Pqush&#_U2YK=nQ7zW0({K5BZN;F}xCVY%O5BZ6<8B=!VqYIfPj zA%Sgi=34-*@H~ZWVca{AZ|Rl_CDeKmiG9GOX31$m6_D0B6lrK{+2C*?v@X?s-_X;~ z#cRJ6Y%NP4-G2x)Mnyb5yTU!|FC|6k*_G+puxU2eekI9b zJR?-ytUcNd+vs52nH-G65tKPtI64!`v+MCCed!71{UzyAHfwg_8eJh9fgT#Tp zOZi7Rr&WbVCC8X#V-QG@Y^*b-GCZX`$$f&8%ljX6c2|1tXO3q}!KAdMdQdYSkI(DV zL5#i*x?{EJ+@I}*iTN2CHugV;nX5!~Cr-$tlZ?%zI(GFnnsmlrXlt=~#Dbr+?YR#6ET z633n0*F}~CDMjldXpe<(*)z-kC`h4C_u-enrO;3USh@h74``Ze-9gWpsw z%Y~w>k!&47LWHHP0cCgpZkEL!+Qhw85l(jF;>VY~zLX#|B zR4#HB!*`~pyPTMry|q3w!39F<(-St=r>3tLe)>WjRgSTb_D=O7IH`g%31a#^u2t8A z1505^be2(|?ua`}%Me0ZfJiU6b6RwaR|bXw(2 zZp!|asgyPcHTe+n39Rz0)wpZ}fPrkFA>XiSLnUPc6A01Ln(EMwY4k4D8!5O)JHN)N zEkwzr{zFrk`-M*K7`i{p(u!wpstJNRGN-ZGalguUu2h+r3D%8&9xD4MU#=oes<(P* zx#D5ya}KdMuTysIX%$y+Yk&Wh-bDdc8TP^7ybA+*UoEp220XwAEQyfO*0_`<51I?E zzZ`eYF0cK{mHWqpyw}GM-|SyeHoQ4q3@#|CPjQRQTacFJ@$^;Y?y{{Q;PmB}p) zp7)3NEUKZaoKN{Id=pPy9b_h+OYR{Q<9-pLWdG#wX;oLojQ?}^!6O_n02T#Th{&S43x9$~p{4lmL=i&U4EWozV9t8+D zb@hniBq(rA>Z8)xJDi7|*u3f-&KVj9w5+c5B3S{)arb@e7xm{L{RyN#EavLcjBg~S z9&2#_f<#sBy`J0Yx#xQBv2q8m3)cLs%G^5`P=lLg-o*PC%k$J=4Xew$vE%_q0gKXgRZ?O+M?*{X>%g2#8l4T5!SwHuGT)9uSCZ8$Frp;zBDv*om=BZJ2v;lF)Xq?MPSD^3quZVCJ>5BMpaEsCEq9qH`*==X(W}PQY zSKUpuGSu1NhM#7!WyXzW4DGGTYt4Po>|+`cfj8*sw#yku=lMkKouQ?Kayc``FQR7p z%k|aHmw!bfbfJF*Y^;BUj*RN_JpLv^U*j)Ziwv8PSa8ftC>n%XO|z=#&)vpY!BWH0 zUk2Sj?4@zV7=m&K?)X?_NK)oeqtO!c*L8&2NkD)s7_oZPMAF!L8k=34`UKVSo0tKJ zo)RtVp7vCUxoQaYyFe21>Y)oQPcIOKr-z@P6%kMGz3GtyZ2M*bXeFK=8G5O#h@~A% zeN>!0jfGLJ8q&Ta3C;$dz0A4BcMt?@pju zKNPo?I^=Z@UKEMY6GqNIL14_I!HR?Mu|YE6WJ6R9Hx~l;y-&{iRFGjCrD;rL0$Zk` z(#=G7uMdBBGfIKvUMD-FizkN{l^CB;xo=EQbj)fUzB`rNGnZM zjc;($57ik{Y7wIJfd&}g;G|FFlU58$YJ7u}{yd*FI4G&{6(((+V=J#7l+5@BB|Fng z7A$OIwS0q;!Ifx$+Q%0rGrmE|hCMK5!wa~8**VtZ7y3dH`O86(gPf)SM>WH zu($B!HbqM*3?_mNonYX{@(9n@jys3ylEa;kYsXFCtJS9yW1xT|AH~O^!)&1H(oeEA z3&xF8!f?O#H&U07x^`TdQXf`3Zu|4NNJ2*T^AQhk zXdROc%$%j3j(bia>2bqJNz+ZG+Rt~@>fAda4AU4XdbRY58L1yrME3oMi#h(7LX$e= zy^j1k-JXh87N@SREKVLDPaWSxrlRC{FwNO&L1ttd8c+B6aslVan1a{{b*4w**}!9$ zsI|W7L^u;F3m2m;UxjC#b1IV~5>Bz*w&73dMd7mb-Z|lLHF{O?KDn#^XKIlqoc%$$ zN1p>y4gaWyyY!Nnk$kNjPedLMo>E&OR$32DIC~|+x5T|vr<3ZI#-XV=yqe~rkw-Np z2rkRT*>XUqphbC_byh|Gi7N3DNM#u0yAUiIqdF+o1?K+GDp1Z5_?Gfp#&3CD`kKZ3 zmNcZVS#MBI1GZX*0nalJQ7#g1ki;Y;d>VeXb@&4ntcAV+-bCgCwz!eUPn8~eH1MAm z8j8c>?NJYzT^@%qYy~0FX_#w&XQyD&@qP2pX2zOvR+b-OmXO38s6W@cFV9ty9Xfkw zu8$vXmP6k!eG=Y3beyo0xd}GNf^iphSe~XVxx2`%zImi#W$}oB9+4+OUO^flls>6q5N2t`cJozg6~qd(i4JBl%X}!efR7 zt@d|JgkGV&capB4y^Ft!qzfJljrwyel|Fb1GjP;uFm1jKJ9chEe)PU*+fk);RG9)=i$y?HK@x4AQ63g#l+nTrY0T<(UR+qk{>$iudl6{RmPC%S?V z#3yrOxgqC;CRPmQhcSQWsUo`|c+6;DIFcqGKhR`@@$*eC7eXF9Z2r#g*$JORZNNzq zXJuT|kZ*DmO@4+Z(-4S`xfSWlN7MRv=G4lSOZ}p+=0>uCBQG|>ndGo_lOhH=X6$UL z&j&f@N4R?x`*Y3joW1GWDbKRVt$(0T_p+sv&fldA-TKcH05IxiC(3uBa_252k=OeE zNP#r}KAe?7PD~Wed~&}*@apeK80us&41(G{00cTwLD&M=yu2pHFFf z{TZh1+IT;+?a50Rz&TW?`NvsVHE8~WwEM=b24rd2BAtE6oLZg@oII1$FP8@gn)aSf zp$=KvpVG9urr4$hKdWhMjfeijjtp8P-=9s*BcH@sSvjbMhw(aE`MLiA z9ZrpNOpO}cD@0+#2j}E%nLy?`-c0*4wPc|JmF48Z!HCLS~E#iYhrih~XIGV9a5sRUM%5+{g5T$S}z z<7B2x(3uI4tN3RR9p`{^ZR_#tCdpQ}Xx*d{a$@PL*mtfPE&F&@LD>%s20#>(o>a*% z$ge6rsX9IBnDnF?Ev!$(Ig0&GP-3^-B{blf zgJNM2?$ZvicFu%&YE20*1dUI=?9I1L!zw^9>W=o3jn%9e;ifg)lg%H@shG}wmxL=LrR386XkU5Yo6K?JG*RKC9H1n64>c)s@?FZf1C;rqH5j-J_fw)fq{_Z07Y zCf}!e-z|Jk_P*Qro@Bl|LhW<|Z^ZL1P_LX3Aq>KJGpyMElOE1E@zPRaI^#dvj(_VY z46U<|)Tes6nC0W$=4|TUBR>6+cxew}zFuT~w&Qfz-oL(7HKclU^9T3szwhrb6V0;< za$6BgSevE(uWGQBIB%~xrI&LwL@y&yt{HpoKz_z;c+Jc<>-OAuYHdjl5SaHbV>l?1 z#+&a@KH)LBhEabzY2yU-Wmi0@JV>@5$a1h^qi9 z-8TpW+?=iU(!pHWamQMp=F(BFq#UjYbuam$wzQWDOVg2EFM61wbILLm%S&ejbcJ-q zlZrzR$K5~f&t>DC_SJA!Lp|x-M1$i{PU!K}*tl2xW^d?n?pFL7-)%|`6mR$9U0hc9 z4jip;SL@icXwIdSc4$Fq?%SlXQ3z84`xZt$LzLROEuRD#vUdZ&^Q;|=^{%_!H2vC* zrs>Fiz3xsGmh~(_r#{Tdits0TlWCJX8BY#4+!H*H#=|`tkB4D}Ai=OdVLQ@j^(gH3c4Eihc-I+*$TRxyn3jDZa^lGm+{jj1lN)&#hnSr z#(P?Q&NWpi{jRB$r_9-d@5$wde<N8^m6=6*wQE>ljrWi`&y}@MeF?os=@8y26xNgT(7q#8mKFEs)tJ%JHIn}4^q6*-A_ebZrUq0Z zyBMqBAbrSr5D@FQ44O@|2Zw!ZsOn?9r}{v_;Hf@tC>w6xRkm%;>phlpjnRPK<7fCl zoZ?nLP48iKf++Tk9ttde4qBVW&8VWJ4C4IXuO$8+ITckBEbM9=bBi5{#P#mvcc~2B zNAet$WuIyOa|Rl6-39%G`+Seq&M6T|8uA7}%@O*3ma&EWJ|aip1EC3l{hZ)EwK5yn za?U5&b(3P?0P><}lm2EV%b_t(tRPV-FLt8kgVu);R{@WT%sN+>8)@rqLJ;VTq}Qem z0YgYtNsD7iDl|0}MX76IYy|)nl^;Uo5QZ1=#w_@Da@;LD%Zj~Y4>G#z?C2sU$+yLO zpSFi*#U-{G)@`0!YpFlb6WYv~^r=FdN09|IM`*>Hl^slth+ zyQ{6Q#`+>S?t7;J`Kiau+vShdJO6He=XZK^8#Pk$QXp?W_pa%#HQh76xRRNXmD#75UyT2nVa5C%dqVGuE$Q>|!CMW<5z*AY%3BZPZz;FurT$gc zdVnqlAJnK3H0ld9s;`;W=UNu4y)Kpv8O-~H`%4&GS)nBNMu@gDn=NXOcF&^WMgo(l zy{odZ79c%IWv)zfiDe?O*pRmMPiAGm>3!Rm`n+tRtyls zc$#8A{IQCa>cm+~3hmh4#JFz{Gr12NoLkY$6}?5#><%pKu^_p_X(%t_Wdr*o%0qY1 zc_96dWm+)S2|Sytf#R)6y1R(niOk4`Ux?lb%+Do=>J~YQb=}!2p0Yn@6ls4%%!X$# zDql|msEEgLggYpt+!peKfkG7F9zD>&qiEm_O66=Ot4y4gA{)5O6zlI?f{zFhFkYGW z+-@3nyeZQTxwYLVS&x^D&tC7-?L`7kb9o4WklZBcrNGHV(CSwS25(#>Yq!kE7imjh zDf|%aDlzSPCL4J9EHiK&8<=^U>;oFn_ktuUnUT+{LA)yySZR_aM{tv-+S?}qn@wJ& zQh!Tw8YWuH>q;NjTrtL1Eb*q<_QT!Fwz&249vp6Vm-sZi*VO-YQMH0A+1>Hzbj}(!PQ7--xslrND$shewM{sW7%m2{pjC#% z5G%a)gc-8ZVY~OF)*SVzgH3Ap-u>zZknYy`1>1IB-5NZetrf2gZ8=@LB9~H7$$&xc z?1&VALj(=T4GQ>anfSKTl<_^f9`(p8Za^~3g=CyLsL}Z09w!$eLxf)p;du|g_53#T z)TXP(@|(eLCKe;h*s6)*PP562W0}c5cTXfHG6^^i543m}UHUe}{y>6Vcc~e;`^+wV#vDDd;D6nxvLSuCc*lR}(;ZL$=RSRR<^Q}- zAARS4-6ses1ACe$_tp>oLx-LQpZ=#wS`C5unUj>$(M2otx_wE!_M8eXQWQOBC?6Dq zC6GgdwP|@+osDhDHI>mbSb$4eVOoHR%pq^j{{#usbS=QC-U6KFEx;yvHba(KtUCZQ zzYe1qX7PK0-!{ge_MBMqs`|{7W$v%IDI2New6f&IWYzlh&Jkn(HJBa{V*mou$o1YU zH0g6lc(v0Uf!Sf;`$Ga*Pd@k3RbyCQk)u>rAMPg6Ss+4 ztv$bqA~UBVvB93iJ(Msf7MjK}k0b;R`4lX~aLkhs>Ryc2P?I@dlG@>6g+}*ajJ7m8 z8oV4M|JN`Fi8}yu2k~as07&fuFt!plLGDG#RWu zd9yY)elz&ZOiwOvPEQ`uoOVW3um?CJRAjomJ~Me4NtZ$s{O}^fjZJAbyLD`d$CRy0 zRgzS23!pA`@BCYd^nb@;gE=QuokQyv-X};y3hY7Fyxw*)b7{|9_jOCcZC_CMyMV5`ELle=}7f??J;_2uc|17nmv4X(@c zN^leJ+ye8bl>NIWGSLz4ET*PFh(ns11l&dDv=KZ5Uv9SjU>0j*_s@(G3G-IJjQ`;B zU=HR9INZv?MJk;w^JYayyEV7KUQl8XH#NA}!F@>!%<|ny-z;ywJDx29_%{3``U}&i z&&Qp4W@?3kf1ocNb+hyT>4+H8!IOuyhK$I8-TfooG}WLlQz&4Kbx^{1>7QUwPo2GYPic}<-%mIuhC7P)}E&9_2`_xWWoDS%zAhE4-%3q=sWDzuaj zcTQBIS=mLiSE7YvGX}Sw(qwS!YdCO1?yZOlGN##u%na8JNh!!W?}25ULtEu)8?FreS8hg;*G~>_^s6&{qYSK*_&rfrWX!f{;8*RB%EMd3Wx8N5}+jsRHjwmZ-n+qEu5Q zzY2U!K@-HWM+-zoJ_!=&snaxJ*P9J=vZA7^uoEJUo$7k$4bVw8FiUGKwGNr$o5e}q z7I{B8{2|HY`mR)c+>gx=GU&P_+u5P>d*=;=GyH@HZTQ4o_#$(;w27*+QQU!Ni&_+# zX+FtSZKI^jH?=GZwdJB}Y}9*dEu&?^frcg%&s=&HLjUW&DFu&zpO)R2CIGgz$@E$6 zZZT32L+v#)FTe!bJtpH(EIvNRM%TJ%gHwpf8PSwYmEz8+hMqu?}G*hdpFYF4U@&ghQ^g zxJs;b8iR_1TGtsB;~9@g$9eIV^RlpcMnq!6y7> zztatB&;UWZezaJimCbh7AJ)6yb)`5fK69b`H`zA2)|fk{snYz1(OwVwnqyGtp7Jm|1}e_n_8& zn`?)+?$un&r78GJT8A0y#r~_~wdZ0w6Hgz|e;N4ypw@jTrgc)?+e(k zi~#JJQ%WCEji7ihy2`=Q{hRf7baQQ8QR|)r;S77wXf%$icg|!HY)S4`f8a5p z{v#OzQtsCrCduB-`W{A5T~Ts(|3lYm7_KeX3G>m9)u%^?1_0Yf#cF=UXwNLgW#-YW zTCX>vvFv&^_aX?w?P}%PPI_Vb@=-Q$_lYWNHw))NiWCYC0~a%rKrPI!2TDRZ$OYLK zvlSSCa^U3+c=`nO&3D`H*ibVgzmGH2B0P2RSfYG0ZYCjzpfDWsEW+c? zJ{pA6twnhH+JcUL$CL`SJD?yO(zKy{O*mX=vmN^Uo+DUx&nKKMpqPg6f}9cZ$>n&g z5wf$!vuZ_N(HwX7!Ul5YKGJ8^v(oUi$WvCBDpGG!EhtR2aA>L|HW&3Ae#e4^x_N5b z+1g)Wgg*VCSTF=#Kf#Q$T^QAa>Gy23(uw8{Fy;6WgEfs=_SK-w=aT3td}9`BAf+k< zvFTY_Cf7aXXS*cWbLD8M<@g%kJHKVFw4;2)jQtJIz>G;E-uea9K;`TWs_d?tRM}+g zQYUbfzjWOMv3BI9UQOHcray6={bI6)PLZeI8+3mrCnhD^npwf(NQ5`&2<_Vq{<=Qr z^=SIsqVSWgf$T=G&^LKRW5naxz(l|^+@I`MlSG&12`rduyybW4S6$^)?j{ znrpf>iv2G$J?38_ug1PuU#^pOh9;^J(Ixr&`D1G*jlE)cdeT^%m)Ca9m=6M?)CFS; zxZ|C8T5YHl{Gm)OBFHcL>kVa9ay(glG@8@N&RT3a4&xpU?^-BEJfefR*}x;mF~}lw@8N?xFu!LnViTBH zn9-KFhU1Chy^|F>3$1#l+IpVLRdI}|qW{rB<5URC>W%J=hMRlzK{KXxrqVA`DRj`R z8)$Dk9lFqVXmqYa*%!@u$*|&WWeY|Z7mpv`12%>|-6YUqgy6H$SA7)ry3)r7>*L4& zO;>(wYw)_V7IPsLKhPC#ZLoXHgxG5d4(Ps9Zy-$gM)~;X$G@4Gay)nHXeTt+%5F?g zT}Jxlv2;^+x}^uQ0j+k+W?0v3AfrZld?t(7-%*QlG!b@Z>-<~;n!*vL@yUs?@L!XM zOkh=D561d%U+tBo65W$fZ58tq6tA&^!6ai{5gW%ER#gLV#b#&XULdYM^+-t~Y!Ap? z@ne;FXhE3^Dbo~3>!VyD)paLXRCGTIlvkZKA|~o!1$#~8O+*fywqC=d5PM_;=ORWU zHu(=W_k&x{jD_DfHGJ8$y2d@qv>IwtltzSvP#rb?E*WF^SCq1=tmVA@snh_d!-3L- zFQ^u4^>}b{xyn0`7U#-)agADRi}H8C!%P$wekGGneBbF9){_joX_XHo43^xL~WoU9d!^eA6rW zf!jyE{Y#bktU2NPrk@E3_s+SfznLa{F<0PaUV)In;~qB2^G%qnCQJzSf0^|A=F*?w zr9Y7L-yNKOj7cBr-;F7%bN)qV+#NrXRCc4g9oNVtI1w^%oN#u0R~khRm*wwCP9*8X zc$Rr9- z`b!7W3+ZPAf8~-arK}|-Wn#&QgdsDvEYk)iMU+CG3i7B}%o}2%W02xe8&D0iV@jB3 zN|3Fp?@C^ZCI2z$I1CNt}4V^%kTJ6&a*^YGEQoh6_|CUmW8IcT#+|U0I;rn#N7t_VXj9jQlPyvK3 zhstl@Y>TbQa=AaG6!~*p?+y5&Ih`&$k%&>IR;h55v6@(WQC?mknb)=CbX(YHOHr|{ zOttuqot+1Z&4j>Zx3jwBN;U?5`T1fjs^woSKaEY@P7YYb8c2gwH<8waox8MU+O3n; z#u7WVT+aA6vw?TaDEJqgz`#T^XHJV}xH^86>A?nB{w8O+x$e9UjnlHyDbZ=#qE6Fp;<#=Y!j#Z73<#$Tk*&}RQ6UWRo z8@T#dLO_Q#km20PLpFe(=xQX$F~Bv`SQ1-sX{frvS+^h-IyxI@GZ`S^FXn@N?Q;Kv zO!)D-A}2XY-$x&>Ym0SWBHKS2c+e?pBP=+|W;h`+{WZ&FJG5f_^IRIysD&DD=zO*H zazi7zn^2RgRhY!koAfpc)Smp$?+XX0?G`HT0mKCZ63n>I63HVa@@p0)T8kZOO-nV; z*0gjsPwHNSAWzl@=fVk6`BXiy+Qe_B>YnNzjLuorwoMljZi*YB_&awY3$H(XQ#3Q$ zui=TfH4oZkS98A+swsD>X&X)MKbCBbru7NMWKKmC4X8dDN8A%s=9X+=FIo-*8?kxE zlDG4H|AI=-kSXF`LL*F1JA3Nsif5a8M|HsW1_Wi$^OtaqqGi@1pnMz0>dohmt%J)pwUpIwPb(gJVg8Z3y zdF|0j-2{0YiV*iJyPNBHzDacJDZdtZ+Q`;MLKtEXJ5qqqDh22s3X3?$Kgzi2 zY?BPf*5eeJF<*5Q^TCZ0EsUs#G_|ywDdHL0nhor6G<9PU6@Da%Eh;u##B!no(#kAS z&I3_`u1AO)hJrg1riBuIE=oArT$(V^T$*r_y~!Lb#saNMa})uP`2ni6c*e47ZiLI@ zX-Ah!!*YR!B7fFx@S--FsKDaK%eGs1Rb$+_-?bh=hmh)9K>&u0R_}1L(F%-q zk|*xMKEGWCdPD5kmQULwH8lv7gB21x~Mo4oAonyk2K z7*KFPjr=%mrZ~tT>s^4ul3I*omQ-W4dT}PL)b3)8U7CzQs8Zp_4}>oYEmA`zE2>h| zL4{EwgG`hu4a?Ah(vZ1IBBCsBv4-=tL`-;%!k_iRBcgN+;N`PmP)8OiX)=Lz*J7~qZ!}Ks?aw4AoF${J3k_` z@K_sJ263i_ex{^0ZL~E%1vwRwXwRHf#^yvtr0&gBpY(huHx(FV(P(w-scn=UMPH`a z&BW599~bmU_Qrj`1+5UxTROHG&Ea8|2J7CN+{X7)HIY%VK5cK^<({we$9%-mB8=~8 zt}Vs3H#b-uu6yxrEYcqhuSRYpKC^ZYd$~x^!0D0SC|wM%6%2 zc!Lht38r)%-3D`zP7(b_0ICY^KY0A}{hy2ZAL0^?vO1@X!?S_sr26zKa7WNNGdu%g z`HCz@)Yesot#ZoW^-ahZyI>sOuYSOy-+93vo@-cw1`4LB<~mgqMxwno;jhD@h_&m^ zhtO71C2==qgt0VXXatZD0g%WxSSAXbYTAxcrpWmJM9wMa4~&&2LW6 zRfgHsuDz;njI4;sJ99_{GxJS2`M+tx(}xXi!XxtACcNTB6*fVbPeUJ1^&@}KKck%Z0D!^$MvLiu>~PqBHayRgKP3K{dJVQzE}p1J*SfJSf8f zxh)5n>dg@xZc(0H?oR8{&4(4~@%={@iqHaoFrvD8ZV+@3NXux8dk3wc?ik&Qh{#Rn zt~L~A+V*>sY4l*Z8=}3EEK@mHWS8&D(DuC(cTNjNbvli+R9lj#aVH}B-pq*7@SkP} zN}tr3_R=kGlB&ck-EY>>q>A|TQ_CT?#-Q(wL$CW+pe9*c;$5E>PjN%l8^!0B_bni~ z!(Hl=sxoE!q3fJ|4qO29Q+R z*Kpk^>J?EJBrvoO3?P;YT&DuKx9Gm{M^LufB(Qb`T1--zhKS*_E74pe2-OV5>|G(4 z1A_sZ8+dzz#<&N6dY+hQ(%PYyn{l}h4G^x>1!>Z6exzHiBKlK9B~~q#3H$=h585-` zb}jSxYJb;r22zAs%$B9r*JzBY5)K#!_RfkxjIqjk`X0~c{E2dACLQIy?1nYV;hXE7 zMhxmi+AiiMjvOD6o%wKEsB z57@b=(W9Fl{`AI%uA7%Q?NkWum{A4oY~6=}p4Y2k-^rLDE?i@D%#}vIjE)t)TGwf& znzj|CnqJ_C;+we+}c?0h=A7aZl(z_h1FiFJN^z@ zE{o1cQS$R-S&FYHvZ6e>fAsD>JW&Kxlt!SQYeV}oM57GNmk0LuMj3b}6|Ze2oCAhN zgBxr#SLzavxO0QKT(?EzkGRbn|493$Vl&2v>26?*Lp<}3MqL_2=?wM8Ke>?wsIj$D z+#hw>DTrwb?gJ+Y@QqbR!E)dP2ceBd{xNttKpD;ovLpbOJR_-U$}P9I5E=r?_~fSi za%d;SEJOa}u1V)}rUH*4EpOzKqFZDmbD^t^+clbIa^TjEL+6N<8Q6kfo0bQGHQszp zWAM3AvZ%QAbUVJA@n~oo13h7!DM{vLMG#~{A92S5W0#|h<^z>5Q(c0zXVmH99vAe%(DtbJ|>$q zrsoOhiykSh&`%Iw7Er$Ky`9A3Y*$r#$Ohvo%*KZ4JeGx`6~qq2K@Tx+A=y# z#R9zCz#Nwwm>L5!7gND;z!Eq8nFhA*8B=YN-NB&sBLFiWG3TVR=)4_sLq`@}H_WJl z`r(6Fr0#RCuqB&rwvCB)SE#-W3Z~c%*cW(9U?Ml)DlyXOC*3*(hXSo8_ofcZ@3m_z zSlHRUEIqMY{&~F%aR%{wf-!OW<~mANc6DlHWu@ugs!%&FYuOkd{2BO|s)lGeJ#5g*bh>!{RqDYZiI zC#dxS1eS*_#=YGNs`0nsAOC#Jd571vmzd_h9fu?D;S<{n z*uDmA`JEjJ2=8u1!$S)D!Rv_-!C7iTE$+m-+=ed3ap%tAxFnz?)YuD~R?p$+%%YIk zhz7mr$wPtOdqw_^+Xv#87Q_b|oUwYFX8^^G7}J z9jG>!?8Jde+D!`Ei2NIHpCcYbptxd0$ZP9r^j_NdEh^{w>jujCfI*9Axc)%sL8sNc z18r5vsjWeaKr-l_htwfg_ZsDKd?#j@lA)Xi*H~UhQ8auhRhyD=;hZ(bM4)?QXxH4c(5W#brXAS%=-$7j1 zVmsJD&E%{y)9~7xVwhH00OpeF9wPM`m;gD3UvNME`S-oywhwQqt8NKc2$4s5s%>oF~nTOq<*@yP-|I)o`C8 z?DzEXoI_ZB<=Y#Lt!c|wr6+ad9ET&Z;2luAC)$J~`+T3TZvxr-WMu>ajNQ<}| z<)7CpjI;|zaDX<0f^C65ll`B$!wBWS;CCr?rJA;~nq80-LQQiWV}l6j58Y={L>kJ= zZfW+)m)z85zte<0y&-m(0n3t6XoETdDi+{msy@Z;{Nq@gy+*j z(-N8c%(LXqL{z_Ao-&SU>1H)CP6%K2vu+End0<{|t>1|z4{L97^71>A4X+ooBB(9QwKUUIo_6(vIED0^KWi7N$hjrROV8GvTOD>5vzUnWSA`InhD$mV;zhk!24I}}PZ=-LT7n=L3`g{j{wq<&|Sj@R` z1`(obk)+zv*;74w!fWE*Dz}#L_IDVH%6pSrEiugi*2mpBAAL|5JLag9TEL3wFLBlg zfc6tAF)6Xz;09QY^i=nUuJFMrFoYeUh}M@^b>XAoul&*yJoKMsFPk%^94Ky4ND#(7 z)uyrTn(dz4yJLouGv;weq$f2Lkxr1gU6U%9g<7gsz(NI(Km}Z`AI71P<}Ox;AJLQLIlE8Heq*KXSsFmF)4s;65QqEwkV#2? z6p1=L@mW1%6@fOVG+KcUt27#PifZQz=v#f!Y)}9CPf1nWIC^M_$r0Xiakm_zK}NPq zpWM6Q`pr`0W+xqG0rWlxDm9dyL9^$oFS#YrI>T*DiRu*>I#`ejw0D_#ckepGrocvV zgTF)f&snatZ=61J71vO)u=Fr$qgt@EF@O+6xNltlpXxZdppKjnNGo9)gr1xEHPU{t z>YR~_RD>CBg4F2jd;O6nNyz{ zCU7u~FG`+@-fzrr5KV-jP6vXu+txcSJDph`9r4<_o=ySg@mp2n^WR9T+gN=xtj0$J*t*vK8*zaj_>g|n*GiUCV~-LHBVDB@ECcC z^MrZGS|)Sgoi+_%4^8CF!PLfLPd&-jvslf>U5bmd%y{h$Dq6RA+xhYK_#_c7`bM+| z`CE#xvr zvU?-0A-f+p0UaUUEw*&`2K%uj^q7fR5_;6Qt3vDL^8WZ*lK^_Vmk*JmGg%%w={)$^ zZNY%(?MUIX+o6jsEVqJ_tAHrpKYIne4=;>AQY;${tG?8Uq=yIMmzz0$ofG1%Ef5&5_P+Aq(&bPng3I4jxDw3e>6zQI0%C~S2j0(XE zH0qI(vnA@P(@lHRSb{~4j_<)Rml+hW;0SsQNUN8cU=@iYCWDC;K^vh)KBw|YpdtlW zD$n!?cdPQWO7Uv7d^ii#%<)&-*84keMs3rNIa?jg7W!kLTXKDJ7tb!}jU!LSh^C)* z54%G{hNM#!f+zk_4D*fEnCs_w%(dIVLrAq7gHYD<>VxbMW`?@?WxeeqXTli0< zCEw#vyINJ_et(;xC85tnM4CNmU0iUZKQlf493n3P%~x9{RbMNE*Tx8G@Px`DhAPjK zV5V;lf+OwZ*uNk&X6>`n5|M>g&r{}N_hu~0(e+{6YW7;*2Jo}>I~Ovwln%>X>%{v8t* zI|K)q7)v7XSja9&gnu#goTDCLY)e0tHn>e!n6;KW^F=}Q@8-;3jvEWFpZ%q%^Jsk5 zqfiMZNpkmi>5bh=GmH;qa*7AYh1LD{7M})P@M)!SK*SQ%9;xE~ioMvfV9*AZ1shBo z9Ajt$X0W<7JcJymwi7D~V3w>r%%;)TWIhMBe1KI_)xnfRK5OB|PReK9dwym%_C{^& z;tXxGf-IuzuF>wXrgg~1{>$mPIlTHWc4Ie7j0JoACy*HPdbI{~uZ|47fT?v*F(AL3 z_eMpTfX5fC&o9*?8?u|~MTo(6Z`eO8)->z2+*v3Z1G@dm)JK-inCdl$x5r)(DFo<` z-xBTq5kSDA402u?0Xus#j`$yOST7JK_eDTS?lv0i?kH8QTILuhF$`Mac~Lte)vANZ z<-R{L2cg!2ePY$SQUB$PTc#_tiUdNGstw!+B2b0YA)JdihXCz$3P=}YXAi!JVs~`o zoPbtTmuXhCd!9;RUsfX%hd;_i1lZ({C~jsxM>eC#Gny+@qB9+KSuu1!?}+D#ta{ImlW1rubU}f zPlVUlyxMTi1NkVEhMwhWc~kB1W~;d~_t9=YwCP%52hI}07?#^{sLPHM7;{PJVSG3; zuf^Gd<8n=>VGFrD%Ht3q$p$Tdpy@FThXk|b&H@imHt6NZaavT#QVzmFpghW zAl!TZY+=~I9x#0M$GYMTt1EyHc?O&6tZFnpg;HqU2QrvI?e;Nzj_=Hgc~CY+0*)`N z=CFkYu@T_N2BM4vR8~3j0?jH(^Gr<<$9$1VYuC`WM1mH5((kEC$O-;jZ+MN~JcOzD zJ&H^(AT2dEZ#^f_w{&I>`gP5~4kG1B-pS+bN?W2^2ZE{=H;yZRqvuAv@C9^8;R|t5 zjIIjJ5n$*8*|7a+XMo%_44ar6KyMjYEt6A|XLn{MtQ>s3jZ1LOlRh`$!(s>2ZZa;; zXGH#BLKfshn!J$iT*xg;=>nV0D_52kHH2Rp;N%&ab+GdO>%S$SMKJq)n}zx+`BKQO zxOlYy<^7)ZR(ak<*2@dECiWKVJ;w8X*Lo{F@6FbGoabF=z18yawEd0NJJ$1dS?>`z zux8mtv>p}){P*1x`lSgS<-hOF&>eh2+} zdK1Etcd7N($V(G$v)=8Dmb^=>_f@(X`t}+Sf9oTpLhY{G)(xGTc1V=pV$WCG)VZCTA#)UpAaE&8X|l`7Wgzm_(V~|gp z;a23lm~>h+FB5}SkkFue$1_3)cI9agvSW0QU6BaVXOc&^hzN$IWNO1T*N9jlV+1cE zQBYbVU;Gz#Q{cg>o!-RxcJGdW$&4^}3aiOu*B5G-wUE?iHA@Xf5SwteyOp;>TAK{k zJP_)~*;lLa3V>Y*L+h2rM`c>EsyF*x4Wr5t{qF5DhRa<>G%cwi*dXZb_@ho)C|%4( z!Q1Q-UYX_2?sWe=Q-}?SJAZ08d_8ZmVJTY&Rw}ThU_Zi=;@RAOG++CXgkc`GfW|c& zio6Ynucn9*MHIo?vEY<}Ep4C(Z%a~Bgl9-qQ-Ano?Md>=n4@B76Ra`Eru?=9+|n`S zv;%DVnxNBYAQ>t%6b1qqi)sy{Gt49jnj|eGAtGWU%$k+|xLm@^Eqqc+SE!qMOjhk- zd~gxE%2+7)Cr`}g(bNiBDA+zqY8#QScN=loK^RSFN9aP6sg4kukEF9Bbcrp-zOtCZ z^}q*FR}$qxILQC-i4q40GTg0sKzm*DXyroYnMN{l&8xI6^Nq-A{+>Aq>mg-6*1c?a zE?m8__X8|4+X-nbcV_`JZK4rSC_D3{oo8TMfWyg~%3PSBt%_~{hQ2B(iOFN^72KoV z@$?kv>AgY*C%B($>y45Ea}Y5Bi$dE}qjC?33N<`IGuBVKPkmp}6?l2`=7E@WLp z=?KH=I=+!7$7t zxsUuwl!EUDora=|O)5VV_<0B~CG}9Kz!~!7CA{nT!g(BLd`~PBIaxRG%+w#af2$W4 z7TQd_T&`3!RD}?bO52KG?l#ZWc;Pijxg+#X>(k)XId2Jpx4Lt8FkC>7uqQYmM;V*B zBxi(RRV2UMDqN8<)tjixl317` z;oK!Dc|-Uuu9=91AAEf*RuseITw2>sivDr&%>37bRGGO;F^SBBuODE0sOY$Jqf|Bm z$pv^3&Zue2_;hcd!24H52z0WHMa{xC_yL8WlpkoL+UU;QBJ9tW{0KsF&&FRAvy^Iemn}7yLi8y?bC>Rn`BUUP8mAOhAH>nPw2}~e`AO(UT3{XOlJ{rmdE40us3GHw?P#%ilBaajXDc2V9v7y{jT4+nJ zh(H0sdOsl|^#%p4^M1Z-pEH@HX=#1={V{XS*=L`9S$nOu*Is+Awat4XcYV|DO1$w* z*qklwWJJgo3qC07s35Jl;%hK5TYi0#>X@iX{7)easKWHvFcS-oxQ(7_jQZ7o5pQtP zOnvsVHm9g8CIOQQSP?OiyyQ3C0)xhqi7;H#G5ECe>9JGNs|hoN%2?9r&jN|nU=I`T zzK1B?3K+6RZ~`ncjya53K`P?`!NjM>LY46!wrml$>n!)_vE|oK0(gRBJ=lzn(lN^( z5~MdM$M{2JJ+ggY>mlnRXKYW6{#^{b*8lj2Kqy$s0}Z#H>b;j+;h14~PFn6<#k;7g z0~4%rm{Wn^+AMEi>xb3<&ukE6_W6{JLpVm0)jx!<3Eo<)N{IaB2Km#$=dGsa;NQ`? zSC+j|6vDZ%Y@rxRw`8vu9cU!PA&ST%AOZUTGWo7Zf$I-MF3z+IS$YsHAUR3_3@x0y z6)miDv`~%rebQ^JY7L291VA&Bxu--Q3V_z#VUT77iRqVSWNZXP4%#>kNFetE^+Z&` z(kCDsMmnGqQp7z1@=z{Lt`fZz2*nP&97rde#obRQzXKXZCm~e?9#H{Vs0Rt}9fL1o z22WtHfl-r-kXWzg7=`Jrjxy}wO+SfPpXb_KBuS+}hO8!Nwn$J`Ejl0^t$?@6a9Pcd z`p+`0x^aFHZLw251prm$Nsk7h_Z+7qcZ>Z zEMf#(k!5}M@ZO90IDFRVDLrmSzpIRG_5hk3+=CH?9_&?UPzbKf=Hcz1AJ8e)v%OBO zu`Rs-0xq+4N^qaxp`mT*&F z5N>9eVU$FH#VZBJ**0JJ!&oK+JOKhd@EiE^H8RC(xG@vT&9*y#0h}R-vFA)M%QX;F z#gGd2%MuRM>Om5bNirx{D&I1RNTSXV5)tuB%!aw#DOhyC*Bp)9*xw};UMXucECEe& z96~AKhee?Nnj5nz;?<-o{aTirnQOF%@`UZ@MLPSa3DH*y_Y~Z!xm?_8os7+wAyTZT z^vLYxmIt7it)j7Jg6-f*%wCU_;1n3?{GnyS6|AA|myu4qJ|WH7Cge!v(hZ~? zT~I;Lj|@bO*I>YEFh-@E64z| ze^v&r5u^DcQG2&7Oe39B46EvqgJ+vA4PPBXRNi3(DamUN1^5Tim?TpXc*I*j!lNi) zGw&wU{qmZl#Wy8UH5|TFv_Vo52bOs8C*Kt2IfTirP_G0;eAv^1i6((x=A@)c*E+w=L)%;DLcD{ z=6gT`DzRLLGW$38&r@;M)-*J*y09wP7Oq_TwpvMvgAj&xI)n)jFkR96x~ckEW`GZs z0rFZ+gX$4d(>{O04NTmi5s&e@Urhh1lqLuolQhFkQv7`cjqf06P@u4sX?POs<(acJ z{hxxEu{zwDZp^mC!gF!1{fESiWfC)5$n!6SAauJA#tfj2)&0x>(o_Re#SH}av@~a@ zK%~u10nyC*tc$VRy}N3LhKxS6>JNCr9sFt* z1#U|P%8hjX*$N#YDpPJ4!ij7Yi6)I9z#}5FpSL`24^|AJHDn0*gdm3%cEub+FjlwP zF$AmEP>e>Q3om57gd*e6IALRiI}`&v16_}tAhi$3vuIKe$i&WjSk+_LFj3|@b4}Z( zmOGi(9H=K&rJ1+f*4S_=Nz_iNN=G`SuM`C-XQZ=}C+soX@{!K(2=bt!ggp<8vf@b+zosE7Hf)G$q@Xr(-Oa84mtMy|dU#+jsfjJ^kSK%T zS7HlhmNb(rVjjw>`W<++JAnggkSl$$dJlU=D0GbDlT1YYjHA|}DF8|v?Lp^cGoo?` zZKzISKVqf#?tNg;_Fu|CTug5a0Ew^o&tFgXur~V;R>1K^1y-==46%Y!tvP{_N@Mnt zSTc8(8L6cIQeXv_kmr|T1x0d!vA=>`09gt`Gk{QW>qrt=Yr}ubuYq^RGSR*9gwQ0& z#r+GSiGC+ai(ciNwG82F4!;FU15VqnzA|pl`}2%b-Is8Jj4J9WeE8&Y&IL>20eR(z zp0VcK9y9$BwzX(Ap9?lFr&V!QLtw8Pr3JXPMP*1pEp;3LS9f}uVy6+)Oy|EXr;~Dg zkvAItm_$&HccU>Vv3+Gune)H<#}Os@@nwD2dgH5!x^|(0l+~@j@@Mw7bZPVgbh(;d z(IpJT1&iuF&VxMb#80@D$D_IHdy=Avjxc03--lyhM3 zxtL9RBf=(N05@WVzmHll!ud7E?NaCNmo#|{D6|5EL3YdihsTW? z+tYiUI=GzJP5Hd*?0dgYMq*2nxzXvb6V_-wOye?cbR^ij7EI!~_EAq+RNCVky>FG( z9)0DZ3GZk&i5d_0PtHvogA!_W(7#LmFan3lW%TdQ!`gpqAz}$D={KGRdS=fr%YLhT z>`MPDJW0Hg(S_>|8w2VTC-V&I6kXHU5^c8-v+DNG6s8%3TrlQ?2DV9Z715`p)mToj zxyHkvsYlW?<#T3pe9CSunayAO_Q;k@Pc*WKhxaY%eM?#rO=g}M-V(2SCSBT6wj!qeMtDFhW!!%-@&$vDCaf%YmTUR8z&>qir4_1jpIkK7)5sFuA05~=*Ac{?edq;e%??@MYT$lllFE*sosqr3QATC(?T;*z~jp|i60t+xO5`oFX~ zU$KNNite&}W(^hD`2*PnX7!w1&_qgh!F>Cdl}s|bKn5|{1wH&PpShm@Qqg{H<_2z` za?|O|6_#ZdR-WXa!zH`mcKe^_lIGjPLi_J_Nj>(k!v5F0qz(44(LMNFHVymY#m$gv z?$o2S?3z?b!QZaQF4$xl|L!twwuh1f?OSj=_~J)?1M=r?x}6V+Eqp2~ zBF#J8ev;HGa*X|XOLl>5nz=~Ns|$KwU7~hLkcp=gRN4~0&7JUVK5g1f1)g$EW3F^0 z;iPkCUfYtLd8lPwq+)?A|EagsrWAMC1#=BTN&fQ{kM(ZJcWVPQ*ZeYtl~t)7aE0uG zbIX-?5*8ZS1;?Nh%PvTuprq_pl9tbGq}mA3Up_O`TP~lOMhP{FG~iA*`~x+w=58t< zBOz!h9p1wwR2~{8{BxsvaUq$cJp~p=3kWmk3b+gQ;JfUC1FXqW{V&>w4=LMH8r6wK zleh=KBFOB5aY|ayWA{(k|1$euVgJYQ*1v%YZMvlxp2e@nWfyg7^l-6{4GJi3bmQj# zTafhD^grR+%5E!8!zHFODCF z0v{KKG3BON-JaU!|LG(Xf13T@x|?zSYwjlMzu<1l{1tYy&hN3SCw%pP>h6Wk{(N^Y zZ1?YQ_aX*=j=L8j`JL`wbY>pM`HF)fN19^kt9(hh76kuCO3|C9t==ew zH|!W_YVGH5p{!6i!}WWPMHe088YLndZ2x9dqEN~QTrAMJ9pll^Q~@O@y1Wl=Od^96B#rmmPftvBTZ-{W;$MT8ZmveH(qIM(H!dZC^--V;R&PpY zyBslc77bv8V@3MhkWva`Js{>WG9n9&)Ox;3ttiQ)%CPf{oBO(K;Uot&Z{Q>+@ecW@ zn&fEc#7McIM#?RAarH z^tIO0F?}+UqvxI0jCmOD5X+$axa@oK^)U;J=F_C3I9-oJdA1|8NE&Fy2HLrn_S@kqE)nx?<}&jM7zO2t&87IY z>IN;;xx}9+m~KjO(vbZ=!YOk5_h)h8oiKq*w|hr8NyTWr-Mth31e%`?ZWA`r-rpK? z#~vBclrZM43M{sBR}5>Z{ho%jy*?ayDsEEklJNH;%J&4cCbm3q!ac;#ORO}1!KHt> zaP1^0$a^MFx}J2IWStf1y3aktkow$lzqb7dx*47!0Vi@N5eIzwueRjFHxoxoemjZD{U%kE zuSgZWlvEkKl!NbM&E0BYydgu#Hf zm0U2`1@I3Z_3VWP@mgzj`zb+dh91Xbsk~6oc5!KJSgIgpr3yqtmm1mOQs211+Um`e zSRcnvt5o}jYO{uJ=+ZABV)u@<`C3I_MA^qCYU`-)gFguF8XW&ElOO=sM+u>ZXl_AjLZI0(~*F7pdJTV{tVGqT8*NsmRf zj#JU-VXirOKyyb8QS|L%D6~~gcC4njy<=S2R;XtSFiIXt!2{v2cHBk}k99&9Ep;oVpDgRRT{fCCK&s$u5@L4Gpi|@ zK^t{!?3&V&L8!25h+>6e+a!r+z8;{$5!)&C|8}<2$ziEA+bQ+7oh^0Wu+*crQ);YquUm{(E zIbr&BA#}_(W}SaOcC&;y?Ye_kX7e%5t7pHXp53FZrcq?vkR`+7f(aB%jQWk#sP)D| zRX}Xl9$m?+XvN{))=Vud_)b*9mO)Uul&k@pFYrqeOd5MYJpM0V3&~qbC0KF#t7ylc zOE;oKzbHMBz^BVNbYw;fM{xSVyD@K4q$;hsPKjX{NNyxW*Rk(wm%zix<8tNVUGP>5K^6e%q z0JlE_sYxq=lz-k$!%OP^7MW{j2|1r0?T-EGIj6LjbcNDh;(PIei#46P-*9q(0I?7O zXi+dV7dKyx)tCn(=n%m_`D`1d-jA_|gNqj@dvEh&&EA*ObE3Ml=1V;pP`U|()bbw8RLt+OMY_wribJRN*HBUW z7Nv`|Zt*wSScp0=VDOd$5#A+m(_OnV&e<#G)7)ktR>JjMU9s#*@tee+Lk~ZWz8=4R z;6du8*XS5oo$q~xzm*gH$SLx{Isjdk*3_aG|FXO3OYTl-*`#);Sb!dwRyl9s+9RbGNt5DYI;A%dl;ozX4lTeI@_i z?4lHmELpoqtK{@mG+^siYSiQ1R}XCE%%gX>mE&k-*rB@TU@&V9Ch}%cgCm_<2@P7^ ztF`{3HLULizDVc)kcH)n^Ip7ZGmVwg$wE>Wj|@7mhkV7!>~p|u_B~d~-{xeAU?^^B zz>=xSAiwx(a{4EHX@@)T?Vk_sK-hLSxP&Ei%u$uG?dM-OQA1Gr=@@7wVc$!R>?^ec zC^=>tUA5)55dpP^aSVbV`(c17-oGP>X=o~Zo9f1}@BZ@BlY0`G{3 zPSn`~3|kLP@DIH!pRZjo1kv0DTMvk)h(Kg;%5NOM0{u9R9w||O^HIg4xu&0J9^8s( z?h}S^1j1(xZ`}LdPwAm{ffNAJL%HFUTGJ8EV#HHMbe(_4pP?N-{)?V#7Z}xCIaJ#$ z=3+=SQaoBSPuuZk4yTy~s(BWwSu=oY(o^dGk^Wrf-^0@7MUzwSOJcJF6=gEJBCKj9Za0qtAS!PibR zI{4(VqJw7#(7~Fm=-_hV`upSV4C!D?KnI|b(ZN^Q#uNkw(m@$iJb(@gZoKCe4$chb zje$C`6azlCM@H;VaEJ0^lJhj2EbII>^HE9W9&r@H2?+;|A0Z0Cj1UiAbY&B=kC!od zNu1z3j*Ji3xoqN6pS@@Xs#)o0iZr8n_ zl1NMK#fPCGQojz&nv9g@(juKN0K349_*SQM&PnO)kHLJ{vLeugSr)V0rUPsI8HA&w zIF8KWRnp6;FF_&B#LvGzg7(>J!e&|XRismR7}zW`J5{97;=^ZTqPQHqS;*VS>|-pC zSqw9Hjk#RtULh-yM&tn*U^M2soUg^L62S^uY1J0#{6IbR*5Du#>3m4{hp$c_7_VC$ z>6G2l;!8BQYt;SOK(Ti4<8{lf9JTljKIp@TrpOu;wRC=vbvQDR z^O+okCu*)MKj*-@+j>!P0>sP>0QUz!hikDT>Piu63225aXy$1zE&#Is2l#(HHfSau zFoxnm(F@jr7P$jE^T5@mBQ{XK|6?>8*01#Lx(ttWolSBFzG>=Qr0Zlg(hcI+9+_hH zsOqo@sJ`_ano{a2sC^_pawe> zWq?2`XWAG+&`R>UL~RnCdiWMV+DHbDAN0*qL*CJezGJWpfGelS;J-0NO!OCnQhf&-s5L`4de=}$QX0o1h9Z8iJz_`w>3!?#-qRo&YS@_hZy^XG zPrdRbb5nBj2w?zL$LrQ<8nGe+{HeJAFs6~e+#WEuxc93_f-Q{(%48nl@b=xF+X9~E z^;E##ZDXki)eXjK^|c(h*4O>cIZWumzvgq`Fq3>rcDa*T3<^K}R#LsC8m##mpN?gs z_u|D|u)49;u*DnDG& zYX`(qYanh~Ll8@C4TGztjhyF|-unq|0OA`*0mR(sm$@vi8O1t*D<&Sio`UR(phz_OPO1BwY#~a>MHl@iK_3o zo1a!qwHrbiUuk&=t(N8n&KR_}pSypZ)`%tck3CTYFm#zO;K1V+^+2v^^#sA>To zeE&%4nZ6ES6mzeVsJ04Ez1m-O1g&;E@~46N`HC~2flUC58Ny4(Y${%aWE9y&y$$|t z&qzl4Jeh*8_T{U?m&PHTGdg%F9=5UZS^it7M$xzM95evhL;d z{u%(u0W{5j=%oN_Bb`69?|S%7h6z&(t_F&ayoQE(oBgZ*%?MTeFIk9B^_YuY`73Wp zJrl@ON_SB#y(MwN!rX1ocUxNtZK)&~e28phE|qSI!~A9DRhF*LSDZwVdSym$u0Z$b$umy( zDR*C^`*YoWweDr7MxLnu_y5*j^)%7rztgBY*ZHqu0HEt<$3RuWEqe45Igt#_5*N^1 z#}e6?R#o_7RyRB9$3wpI&C3qsK4R6nI5-`-yboNOdAN`cN(*ziOaQ2f(kM`J7&z zjwwJUly^mMJ!W_>a#eeY~lb{<}#_<*V_2ko-#QbA{aPKd8Y^;5B1!K;nmYL6$h;5mLT%|*f zZsT1pnU}%6fUp+u{rR&a*?hhfPnyxc2pEko|PEb2AsQ-Sucu<|}6Z0n@>Zo%Lu?&;Q9THas z6|1wQM7t_-gEkTK(HVyS`F)K6_?aYiM~S`J+rSLb(}^%H`nw z+DB%IWggO)E1mwgEu0vw~;Cr(XKR8 zhJ3}YE~^r27j=hOKkc%<6?IuvIQrNptyCq}E|OWZHQ--=wNhn6(O>GLE~^rqb>-IQ zOrp&+4ZdUnUvnxBNvMB7gJ7uiPrArIX zMu|f1c{y~*p71RQ{;xb>U$|JHkya-rSs3`PoHj1;bt zsTjW|?r|whrTF2Fl|mbonkv@v%cQqRJ!;Ha#~SMXF6-e_+WdzPQol}V_U~~wup*jo79ubCW1G}2S$AOsj#(hC zIyi)eWNdyqj)cu%F7wzd!yX+6@Tx)qg5fvIpxOmS()1(Osm$Xd-x8U9GnL;mU!7+C zJ4X{ykSCsbTy$H=(-Y>|+@I&b%;O^1k~FiU%8_-q%4yQ1Xd34lIp4IM>bfxKXgKNF z2Sp03rfd#FLm(@ANAh7W`avo2r2HtU&s|)KEM`V@&L0|GWcGn--g7yE%Y^I$&0P4X z#$Cp_ON=8~@%w+QsewPVbflgxy<R_yT8-pz<=MR<0|I6Vyi2+;-WUv(Rv6AG(7ngv&g4x!YZ|ASH1jm&WWvJ?^re z3yr>klgx)|G%}V8Ttwa1ALvx6s?BewqCnTse_$IebfS0CTSHArVC**&l>te8Hjo;L zz2zZay4y7wJUbK~rzl`ZCOKr`oHkJ&-QP{rJ(Qv@7F4@V zx1(O@l~lWvgllRdClOJE%h0Q+Z))HSa>etj{ly0&sC?=nIgZ3L{~CG4CxH70RWNJJ z^hbNiD%q9iE9U)F!ho}GRvp4hfx&05h0xiR$=rlW9DwqtM-d_f)dcDkDb~B;NhNhF z+V_fg{IjEtHMkBr>%E6Wu&@0zQoHD2`*=N#=T#!x<d0k@I;*9Vfp+C1V zugg~1SjXTa${fV6+UuH1#so{r0IWcu;}fq-5xQ#d`IYc`DmwtLVaj<8|xSd zEgDDjm>nI-7qODokMA%m`NX3dg4xDe3N5O8mR%VXXD(R{Y{yw8&>g!`h2Z@6kD`6G z#^A5~SmFJxTKM`azl?|CI69!_ZR9F1yXX85?i*r08@&(~0zC;+m?8!At9 zKpw62oPVG>5LtnoOTQ{Tio?R=?AK#(L?zwJnL3GoC*AwtHH6dEM9-kUHqP#?)B(Qb zYL;C6v)boN=8io5_rM{0*?cF8>ikaD!Rnu`^4<)N{Vg&of*hLoP2|^%w8}ZaaKVbN zE@#3QOP#?tuvByNnZvzpV@0)X5fycc-Wqk@8mHWzrjRc)NFYCPY?$%&QaNS8gH=K} z2vUObwIe_O#e``3+^QptUfA_<{(Qksj=I(zeE1nGY7@q(Vr>`~4bXpge# zFhK=-lp|lVZBXn{F8hz|QTBV#Ncu+yY}+2?xP2WZ_t0+tyVuAbr3$Kxbb0DX?o_|_ zKHIO@O<->F%a+@wl38=X5@Cx2tWk=#Fa*-T;^X|i9WZUg`(>)|%t?*BUP-1Zhu9=i znb9XAmC}3fS5s;i2&dC~!471cq6b5RYTgK6+qY+eqHTzx2Cdy|hZ}V5Lyj}6A$3ET zpn%>tbsM<|JoP^*wga&?3T(o>uYOJqF8%oaFs32xK$Khftu63gf(-gK(*sz0gY7_0 zy1!rt!Xnb)Y?EICuN&G92Gq)>6Hsw6(&4&7qsMi9aFy7_<3@M+oxAv4fX@4$ z08?{cd<{qb2Ja2C_LBa>f*YNyNjRmyNfNd-Alh>74z5qw)d}HR*Dd2&`8EaDX84sB zbn}9IO*{{^_W5K>23;9@2f2#x>uebqON^}X$lM3EiHJXJ z??M+?k_=jLuzf0Nq2JK4NJdCR`Z00Pazh;~CXIhE=(gOz_{4gq4816BOVnZ$`4W-D z#>U!*Tfrm|iACOYL_(^><@7b%YF()Na0-@x1{&mI4Q~ z(~+5rxiJa~q>#1#Utm`TGhsntu)HV>0cTSwWDG*t2DIl4&HZ2fDaa#favr%Noex@G zGc+({%2hm%3Reme3=N(IrG-+F*z}?r;ZK6 zL)TXuD>nzE9x7sT4#z?!_g}^_O24qL(<_+Kr!!J8TQ|!b^0+4nP3SkWiEKk*l2}@y z)6Ccn^^;n)ohE5FWg(z0SRm-Z{}&kR*aj8|=Z2i|52W@BbbH*hCC@%l$1<_Gt&eV5 zy}U#Az`PqcXPa(IA#~>18?;&Y0M`5xPW7qrW&Fx9R-1*Wl+sb>lO!Sua=M&pxM8w%z_d*ir>(stuQ51Sk0ZD}99* zI+#E^RZZxgcaacojFbs=BUPd_@NF^bUmUWhNT*I0(F^}BUt+r~-uY}jsitirSivt) z%d=q-!&&sI~&sLPG)Tk&|ahbkAG%H7B`=*A@N_A73 zTaFtusM9iXw22qgGR}BsKerBKCGy%7-&c%DJ>;vQr(Bh z*k9I0D~le=&fdEECU$;WcM~xoKrBSQpnZXKhd@~_=}rxyYcA5|pm*vft<3e$_h;N6 zk^=ivxdHS2h2W5Nw0#%0HBv~K?8$7W*zGlkm>5N-I!=MWQg0PL>8gT#L~JEPWPgA6 zU?nn-*2d2#+F;QdB-GIgk7w{+W?jc#_9_$m>v4z1m7sDoK;@WFIUy7t7of7t@B&mW zLSOAVc<+NDDSngqwI*vj#N6A*U_k1?b+eR7tOsUky8QJI3~tA;wPXB6rT(;C zhf7#efkpxX-o|?a;F+;;h;%g)GT*KW^U*wgz_xS^SCWc&=$= zqqhd^ik6W(KS$s6Luc0RsQJThiy%0sXJEG9nfXsJ8e$X1WNNI-L1`g)_YA>{riZVD zP(LpE+A0a9<9w4uS~rrBtacuHuOe?CFb8WmXRRh;nnR-?CY?*rD+)?}3dG~4Qe*{< zje1#3m9&7gnnYR?MOsOb6j!qraI-`aX+cZ{lY|DShZzKAz!E?H*e-nLxbn;=Z9Zru z7>3hoDhynWtRf2>dc88|DpsPh4oRwqBpCI<#&O36*u}|wW>p%SKyVucv0IftlL?~0 z@?!pl_Zapyjxc_szkTimYX{MZkh^E&d*mk*` ztR=u-hiEbXW221A(P2YeqN`E_dY7W;syjVK7yaV@-5CA$@f{tbG1`g>*j^8v+MzLG zx-1%_r+&1}FN^CMqVnEDJ6x4@v2M+qEgZg^LPfQgFveL1~|U3&}foY9Kd#Z|rcED9aq%T?AWZ zj#Ojr1m9?}ATGs>FGlTi&yRHelmg6DU#Dy}ddeOi$8?G>du#PK?oRI^-*i*LDGgiT zNavM&l&`q-jxG7#%d92tTaHCaACb)6*oMZ--+zi@;8sxG@@dbR4SZO1zT$AcCSd=7 zit}@{x}&~nbCO1a?pwPgyn95J2b1#rVUSPB)Q#*r+7?Gf{~Q)r(hjzX~zJsO4OZ33nzF)kZ zjI;o4JI0^#_Zt>6mCfKHlEy-z>G_3qT&PJW7Sj+mQH@v*SFpI5jHez_TfX9R-;=r0 z(S79&7rm-un<@^ngrm-PI`hF6NyYX^OJq&=S|jmJcWv-`TH>{3?W``AB#C`mn#}Ij z_sL{tB?>d5b+`O=LGry9lDX5+YH>iu$yAZdl6SCHzNpQWQt%_nl>UM9!?jw$0%Ti< zg8p`x^i(*g`!BU>yLkCxI0(#Pt*>>O;w+~xMwo^@U9Vjs^bu`f3mgIyI6H1eHg45U zmN@QN7SP^-ZPeOW_j<7l<5IaW4meu!fv{d3E%`O7R*zsan&30bYC?mhe$97L|IEk* z#-;6sX5p^4i7p}*u+SL>c8SsDOWQ|fex${CN#=38q%S~fib-@Dr$2&2@n2mMWYR;l zB;1*ccmF|JU!d@-e-7ii?Vx$zzs-W?mAXiJ^dYrXP&|$MK$|Oz%+ATmoN-B$I6vtw zMaYbFejJQWdf#(9Sa-P{tY6v=R_91*MOJGEYp=OT8rd;ZNa1q2yG(SKGq@zOW6t9u z`TWfHX?*S`S&wKkh!Lb;s>Bli6VLuTZvnS1z$8oc$f78Qg%+k+uG+s_wWBF0sP=zu zv1il%lc*JqFr6WpADeX7*!B_U38ysQ-B|Ekh83J*UD-%zZvz5&13~ z2TRj+v>pEz9@rxoXF%Dcow3oFo9QuM@v~b|mRiKuy1yl}i@&%( zrJYE1Ff(8+(9aKG1!_>&&xOIm)h5~8-K5Pqp><$KlFZzz6hM2Yy-~Ro4>&?y>F=VZ-KQ{A~SGOR;l@Y7kKp-OpTCLpk&ZGKIxYP0hbW2(CA zEJUzA_A;0)(ezac1S)Ex+43HWwZ_D%iFGeeKZP<1Q5%>6!jnE$sVb&61(n$F53!(= zV{*&d&Dsh_zao~*oo?a%Z@pQ5Q;JhUn!$p6XbepoLILb&tD6H8={6(L@90%75y-|C zw~76)qk|pGH2CMA*RO;NaH0n=L$G_UDd5CHOBsX{yRgk6$g~AG0j&+fiKfWxgX~Kj zPqvQ}PJ8Bh5$Wu;Q5}F2mx2nD(+U1t6_YMNhL36JL0tim(U^aMH-mqR)o4v$o z5K`ot)=%)3G*$W1;KacZkP{oG`l9V zT>(y8&$gV?)u;B=YGQ*t4&H32d$axMf~(ShzaxU&rmNCAPrJg;rN1m!rM{y~K>n-- zhQr9#HnOdcg_K;O+UyO6?)HXii6=#PV#B3eVB15G+RmthPx}?2*RV~vFZ-F%!HZJw zOnd|5-pg|Iis=taV+PzNp;os75e6VfX%aep`^_&8ns1&~blmCc7w;u#tnyEKTYYyB zlNV9JIN8nQ_;eNT6RB(FYvc$_dwnT9jEI+e8OsDB{y|>=k-`*zL`#Dve($0Nz(awFYc+=k2%RzXFR?#ps%PW5KLDrGxtviwu zpM#?nI#N@_+HDO{DIG_Y@I;~01aja zq+b=t82Znw3J2d+Li8=mXgB~sD&jxrhv`IZvz%e?B`OK7PT%0B`e*=TEIx|NA{0#8 zj+#24zXc`*QTR{)SA}a|5MfY-v$TW*g@Onuw$}d_pSc2FH#urRL&YwP?z~F(0|V(%aB8= z98v$c&91Wa36bhft0Ph!l|PKOwe*V?q$sSouh!H z@`_q1oGN;vP8DUjm8J{uUb6`p4}y zY)sIweXL=7nw%T;axCL&%s%8FPzyKiF>&oAAOocRw|7oS7?{ zXx{U7%GX4K26Z#OKzjv^VAwC^Xgj*1*a?i3#+`uzgj$gIV}J$quhC|l0s&|iik6JX z`zv~$!upk78#ca7;g7IPR zU!FowSn$jc`fz#|mwr{5^Op=_#?bq6+69&`ezMSebyJ&nDXy5V+A0b0;I;Z({rF_g z%>iS7&iYA)kyHJRQ~8pq)2Dyfhiu{k{!;=|TVqw)edT5v23x!mF}}<(+8>kCBYHq) z^Z4}MDsCK*su|Dcy+5=vkeRt!L7E0xJPeC>Tk!+RIj>O8uymwQj`H<=J@PZ=`0n96 zjCj3n!xZ=g1kH z4ikh$s_dJB^wY{hMiw#?Y`9(tq_^4*5A@N60Vqc0zmTUSR9MCUmtiJh_um zN$-uhSf#&*pphx^D+%WVmW;t!Y&C4TnBf*%Fm`?5brieA(eB zk5?i>a-#Dd@xI+T-!bWpXC=2svN3mJ-g^ZL9=DpU_}6p`@RHe_PnXp#Pmkm*$EsxJ z>SzfCpRR&WuguNedxlyD3m#r(hgTlb*AZ49))*hLlq%axvz!sZe zCj~2aLZ9s@INM@jDe9V!Js`_-ErEqgQU3wj7YE&jrT1#^&WdSo0pPFlUlcaL5=Ctc za;iu}P|$wHWO7KR#`k49e>(n?PMjH@a{JI zV+q1BGy`tfYV>-K#X+;=+eg@b&WY3H0>FxWbH1XEdr?Ij)F*mR<}0d6 z8vAx1>rR)9+z@1%N+$cNG)S1y|J7fw-jaWM7qx~`n5t~4#I7~lzEATinOTZ67H4k0 z4a;cev)m~ov|lbb^Fb@ADNOw-U;xBUqadIL2xX;9fVNGa@D;@-} zX5-6C)PmYYKkX{zw*@^PA=kQ(Y)ZFsNV>y}Na12ahapflTnD2iks#AUE~fH#{;x2V zYZ$b(=42T|A+}Fg>$b{a=tUw>wp zCtP$$CKPOxv9|vu(uqv~!@O5e+Uey1!Ao{BCn4JEpPey*hvhBXCP2I_nL(#k(!MuZ zuPt~HVl2~(+og@h7c=;LfN zHdVUbO&`_h?JLZg0jL^z3A;fy07*MZFvU3|M)hk+)=X$6jeQ*k&z=os!Pd{=hmFFb zskC@$9TBpo{9X-c%~y1)LEJX0x2>SoW#mx;^q5li<#mGUb@!VYOd!z}t%)Rn3PmL6 zS-%ZWY*d-*{@m)M+#Xu$q}(frWBc1dvYxGJf;r6TO5)N2F}_pACB1K;VY;xo(fdYJ zXR^M=`DzL8z1piPuWXA$QuW@*DhVV_`U5g-9`dvES2c-wFT>PHs1|Je&k?|YIY09} z1^pY26wf~=D-LfOkFK0Jfg zV!;Q-BEzsXnUEdtPvBJMK(h4yihMfubqOu${c721X)j-#cJj${yZqaqhk8Wsf~|RG zS7bBhl!EaFd)x!;C>1_iYITLr?hhM0Rs3jL_Q9$dj2;)E8(}+|WIvV7pkdM_WtRu0 za)H~;Q%-mEI2Z9m_AZ#pwQlt2$R?C`@hsD#aq5a!K)wd=Roqbx1)3Din?2EIBeN4C z#hhcO`HJ`2!AYLPRPzS36pkZciT?=bN`U-3(20yCk=xsK=3pv`dlGpol6X$- zyu(Tixw?1~WkHKpN3}5yD~tUTn2k!Qu6uUcrHweUG*4kO&V4CP)kKex(+x~S8^F&p zkv&vbW`vreI;R~W7fa<1zfR)S-Z{@2Vtks{F<$rPNaFi~KWC%P99sdJ*kaqNu=4%6 z8{C?ffJ122XB4_tsNUHGw`{g{WI@P^lh)-gS4f2D$WV`AmUmZSoz$v6X!sf9Y%L*d1n# zElHctQIHo|6FXavP_lsvHd+m(rz|K;Q0qxixEmQYp;v)vvR>rCfd&}~QMLY(_1^Do z&7g;r-}Vg-}|}8539Alt-3dFTj$qr0)yDQg$wG+jUo(M+zX6tSnu?=h20=8NnhPn9CBmNwB51Y_OtvBR zXD*5{GLBH^w}mEeO3W;43O82Z_XFElXdRs@@hATOYTYcGcvktRd`Rnd+h*(38YX~X zT@%wr2ROcAJSj> zRxza6Eo1c4lA)Hxiewu%$42`#S#yLK?El0{U{YX!f%C3LC(0p82MFnhc`1EOOLngY<1I_zFDzJp-*;J1+VJ*B$GG=tM*Ao$ zFuiB~8Q4%VUia0qD=z5s`isAE)YA$Z)pz26TH1ruBMX)7wN+&_rhQi|&4xdH6$OA( zhY0|WQ7Ig$A@fW$UiXQ}btCCRT+d4g4ZAd12Y4gby^O33K-$l;IYEB~JyJl?B7Ow+ z{z34|Ul7J=2fT=feKQsY>s$j31U&4Uv3T8<=@YjuJKp`gCU@=n6&1V)Mz)=T)5QfF zDh*ILNZ9=n~J$VJV;by>u_W_`!J#VlXyxW;YM;ZGM4ZEVvWG^MzZT|)^gr1Pn+?mw^nPx zXkTrE$EpGbfjDQDX2vSkAi)`;zT)ba#>Lw_ZI71YvyJ~nVaTzc6`TH!6|KpbX0?ei zO!bya{2nasyR)>V)PmZ*z1ny0`uWt|(Zgkj_0@5__t7?Ed|pLPS-X9H^zb)|`BA3m zq-ycjP(A3pL#a#B%jSU1R_2&dMsF7lEld$Pktvo0Ok`lFXuK^jjGLd4qs7Nq zsvb7r3u8LoS~5@O^^5_Tley6P;uU`vNJhI|Gswj{h+{x>zEAO*(Bf7gj9Fx2uXM>h z1$Jp$0XAo%_KKTvl!hr8+90x+@c)|9n$!90U~|Y4P%^?#;plLG*7;N8p+}FD_N>7J z_a5HHOh>HzHbDk!9(oj&?lwPX9MrEuYyLGO(k3qxrLVGIv)=-qF=|h2%tC6C_9`Gu_BI zn%S!eUey9<6UkcO(HOLmyh3flY&}4NU4wTQ8!%FQ&!7;6`>`R3%(}@wQGUsZHZ8L~ zFJ2Pn_%CvdeO-&)$n}dDho`k)qAHpRq1W9_PJi=xf*geiy~=ql=l3RtuepQQ;xL;2 zFd0H4JV!HbST>PkG*QhZ35k7z3if8ZZlJTi(3@MOPJ5jOjJoyh(cHwnhid=?9RF-+ zMe3tn`7X%gtgBU@)*2 zNnR?aSme4>0v*ygX^V<b$Q=LppFZ*YF z;LHKGZnm&Q(D$!jF8(~bO0=Uz!@FmIiJXbS;~+!FK-QgHV9J>NH+a4o^RdE|Ly)g2 z)p-BtWNzfOVDxkFjR{m>y9-DYnp0xTC`JASJ5p{7DWk-ZFpPpUA*YGo4y%(vja~z}&WH&ytI5vOB~)d-@J&$nQ~=^!9ltC^+fu z?T>m}l_uUP(+tcQV!kKuX#-jO+=8+#fLXYo0vkN#g%R8G%fcx|HdcGQD9r`)hX0kZ z!jX!@Nw9VHTK|~I5{XK8rH~|humuY(Zx!Ar1Dve(4NH-e)jz%<{IaoCLkA42>Cc%t z2H=YVGyJ9YwDKvai2E*LFCT0rRuE&6eDC*x)U#}TAoV=Xjier`*pRGSj_4~^IBDuJj+`2_oM%=G9}=)UXvGLE~5BAj#pF z+wSv8B$&80&%e;-$EDU(?a5%(x{ZEs%EY6?ym&MmEUQ8q(I`dhW#0QvlI>2BsI zJPiN&vV6r$7i`II%9NJklR<}9`EM`nZ~p+mI@wFk{VUlyY#-Ha%Y?RuPn9%!`*E&P z)dYsM?)&5RRoI3`?`vf|#Pl$7?8?5<{a0pQ&BMeFZS?kTth=QN*B<5iD!FcH)DrfBb1 zdHXZ&=DPpgLAeI{G6`<`0JnYGKO?xkAcfg5p!Evg3W{D+nfXq2Njv5m*M8lURQ`fz zhJ@aS!OlNP~xE9X+Xq~030cCI-1d?AEmOYIgpPgP7&-9cwEZI1Mt#+EFd|CYaovv4g z3Xsq9GFHeQvm`&hTtmyL%>%fmwNWcK^S6x#O~`x)t7ihPUq1HT+RMwYJX{=+;xflX zO48UT?-6lzG69BpiZ|6sWPD_Q&XvUYry59+%RCCS0*eJLirS4-V)>0Njp-o9t# z>8r{x;JB)+?w^sye+DBz`&@O+>5suv)MIPVeN3u~Y7-5+36?7yBaKdePkCTEeQBBZ zD^0Y`nrKs+Xj_YLXUO^1WC>(ZZ$++cM6P*wZtC8NT=U0TYQLcF>_>MJ{O{3H`{i`N znX!UB4eq+Wy|f{VVM9xuawh8bQ;+sbm$uY>xqWv+C!bW-H!|U!R2KI*Uu&P|8?vCN zl#8^CI|P{G`NZL|#?6qFHL(^5H7p|OD1^)QsY6r6-9tSALA;VL??c6X2qQZf>sGIZ zAhOt(hE;@fcaePYS-G%Gm1`xDO%GE2H741(NhDM|_Ro`N zWbh$RDd=RQh&5AIsO?yFV1G0EVjc#y9c{oVWeM*DRd$e7c5+!FJN|&;K42^FI$$DM z_LJ6&fgLbzqV;mPD-%D{?FLWiTG^Oug$Mc*BK5r{DaSJxvvzt76Pk+rD!0wuxQ0E! zh^UW!V!Bc-kRTfIKl|J0y@0c?5eWSFqccIhZBP z5(PQ*Uw_K&oA-+!!TxbL-)ddp=37NIcz-M-HRi3^_+-1<{yHIhk&Z8y{zQxJW0*vA z3Vi~XHbUl|++%t^^nNJrb@JLIeyz24T8!Fqf+NkB2Is;y)}MSU{&R@4LQRTXnN{m^ z@oP+K%H-)hk~sg znG(QuB=Iq}3)@$S@wNl79Za(+^gsSTANvnrwHrJ6A0>ag?y`PZ9c-M9ZI5{O3|OYq zVM|#W^%t=S4M{d$U~lRM(weciSG%Q8xXBI-%HFAq{|Dki>7(qO3wg}msmMs% z^&NoZ;JJd+y8NF|^+2Q>xGo!No_GeItB(?nU;aiv9Je=5e6yk-kY5P_c`C+s4vM!d zGAP<{N!dGf@#j4nLUE%(QRgac6N)F&ryYQz*O5R^JDAp$w!Gs2Y}7SlZjaWbnD*;v z>p-yYz?^duJ~pw5pLR^Pp(A6DC;^;LWKgQ}m_)r}BTZ~t^FEd5~NPGIR>|F=Vs98BvSOBC_j zUrOye4a=Wj_tC=gq?UeI5}6i>&*OfPGbfQStpoR0?HAD$zqoWME`?FKLqnG zhmr08RkIfCNDe{QO6#ZQ$fAx`n$%KE{Vmy>l~%~)b#wyh;vB1y1(a6EvYK)lcN


*^or~Ld+{(~{x6XT7Kl6PD`XPhw}!3y5yJKtgewbj480b;_n{qx?YS&12E$fq{S%AVp;P|`=J7h_4Uu;D5NY$b zN*j#(P4w13iw^Dd__W}{^iht_n_u7F_*_%aLG8WkfbqFjlNdTE`Vo%LQ4f5`_>6jR zhsMY4#U;HCIkZYMJUm(ZJ>BbctE_I&2BKi@D}8)8JBsMA(f1YE1rLVx3|8WP-~Imq ztUtg_;-iH1lykQS>wbOTk4FuFb--uTj}X=??)wl}fB*g+g7sinDPo5IG==XpUatN2 zM+>VH&e<_oUB$e=HQ!J_LRj4~|3hH)Ev$rhU^)qY>= zht@8eUV_+Wsiv^%kC9 z!WpgWw+}B)q$|d*5MJ~ogx6Po{2}n#>)!tqUQysRmg09BUdQ8a^ijfVG0`nUcx^}4 ze23L%NQ(Wk=38_l1lC^nn5@}@Jc+ESi+|8vp{%)r$LyU7M7~W~^VxfL2A19uIYf3- zKU3A5Dkcv9r(eVxN+v4(TN!Q**|9|LU1tBrt#WxC)w~`k4`gpvTCvP<#1MIuR-C71 zh&)Ow&U4fdd6ZV1XWS5ZlvbSQm?82gtvHXu`ws4x()#nT7C)4P!E1V@6*7@W@Ee>* zX~lUIdU|jkr4{n@@AVR!+M>9#D_R_jh)v0%wpfe5Q~ZFf;u~98*ja?GcbR*YA}n;Z zuzP5DQM7RwdAeinU_lODhSCb{E$D(TEBLoIu|4e~s@B}b`7uD@TE z654SF*RgM71Q)B%j^7yX?!?a_fuqE(>=V}DF5b60@9=OL{U(+;i)HO%_R^CB7exQj zJ7u1UMPa{lMKas(T+vn+IyinaR{MbMI__?IBkadchX!jOFo6mq0IwiWRR<5|LjJPf zz^pRQy#eJuOjofgFgaB4@JaPrvS$ngnX zKZY-Cnd&d5-Dy+*bFJc6?Wey;2!DmFJj6b6#tHu7@j)tvV`c{QqCfLEj1u+WfA1)n zC(gF|WTbl9;o8u@qw03Gh#)*%`rF$-Ru+qr>71cr)7zb^i&fP|nO1F3yr8K#4Pnyo z8qQ1jD3{~5w9&#aVT;ur`@-9}uM$02_P0}IUJZr!^~*(GYPCPh}g-e3QdrV!>RZhGmX_R__0|GG60GCGw)LGFwB&JP?2$Q z%u9`&DW`UWon&o~fKlZF~EEettSrx5eoi@nX+=0wM6|Av}VlH1U z&|E45E@!)iHI>G+$-n1B{H_yKN69W+?pH~`)FxP^tbEK6tmsA}qXbb+Rk9E#(z#Um zF*|G1JXF)Z3*|KTjpUz^b`_znS1m|;~~Xi=KG%IYE}tRdzl z6g>`_kyErcd4u%&3iZI$2XhH27Q~l zf8Yfn;|g}gjJg4m|M34hq=@K{QCeT*Db zi)9c$tU#*eg&*mZ_a~-9wA%l~EfA91LSx2@cy zK)N=KB6VRSjcs{?s9BMp$pEaP{4y+EK(nO(4Q+yqwE()* zExnRRXJ8L0VA?Z%AVle}a7jwwATFTc;7f5A5cE2kn{BY;QXz__E4G^rQMl5%e{;*6H z2Tpp=z*HD9@DLouP8)BzUVrM5Me!dBVNqiY!9gc61oA!?6N0Wjr$)xaDj?ry(Gpxte$$%JwrPOf zyAE5#puDu4qujAv=B|a~?Q`G6pIo+BmygR{9^;ba2bN#noV`4ny}T-Wd3E;kBeIv* zWG_D|`-q|;WgqF`Kbd`Gg*~j-L$1TOw2lp29_tW(=GR$z7SzKDOi{^02E^4*^$@bsIKiTH7^5)XbWz(=D zo902vxl>b#+zA92$bJip&~KOf2Y+US%2>$KT^E$mx}ZwZg?8!!L(_%zmo6w?lb$sz z$;mhb#+a%0wq$FFCzHFWnyT?Pi;^?REtiwH_>UhZ9tr>Io@#~8{EWR^pzOvNXlE1m z*+uhdZFbRv_Px3ATcn_4>K7$!EX(D?5Q-AftoN@F757eB^Ro_mWvqGw^eO+feIRQ z&dM3&2+I4-k=Bjzu7oOg8RIU8a-qD>aZxuut@0R~qy|D3*#pm6DcBLW1qbltzNe8& zW}DVKyLTvmGP?i>$ZwpWOX&$G22ta&vs~e?$Iv{PsViwe8#<4P(+nMsAl^Mu4#pI^ z)=$kFnj4baq=lQ}_b&vwoz6GOYsyWLy&}@%Jd$=Q_QnQuE%~mF>IP z364ISSIQj1I)t1Tvl^{>DI%5tb04@I~SMnFUFoFeY?aT8;+D4_IxaJ<4>s92_^-+;B&{GeIZM` zm)jF9wU3G|w$}w?&)Q@KzaHk0>#*aR;H@PB32qzRtSrX4)x|4Zs$p7De=}Q{#6?gU z08?jZIQ$_4^GsU7O-j>+Qf$FS>Q==(;);nZ${1^{+jQ-2i#tJ@mb&%Rk5f5eVWaREmkNq#Sn#l;|Duj=qOjHmpOtmpNw5o zS`vTq_rSRBxoIQop1meMps_z0qOoeL8XCaWdqvR-qW%K*FUnsNtoW|%6Jhtb@;Ep6q`PExIh5wJbcY%+qs`mKPM@oQ}36DZ}Pho&6 z52FD|2*?a1bjD5~KwE;m!lghIkSG%fQZRMWlHqiq^0?M}QLCU9MQ%|plu{%>X$z$f zL8OR4eclrS+=@I3BKd!RYo9ZZG(ge&|NKAyewx|mvG+cEuf6u#YpuQ3+6e#tKG%!j zorF@RZHQYnegtGwoX$hFh9 zY;;d%ehapN$dzrP+TP1SJg0dUJiv!+ypLk&g4G6;@5x%(;ad#g*zIO?hkl&%BKwwJbJ|+p%3&V)9$jlUQ;Q*i-i^ivu*I5X?-1q)Lgc zoUEUyzs3_nxtMX%^o47C4hd5^`HoVBw!G#bRtk*#AsUZGdcOj}RCqDH9hk|Dupw_O zLgN#G)`*yO!T9lRjeq_-#fCGgj+4yqd;XFDrfU_?T z-z_}6RuA{)Au2$QmLwP-49`zr(ZWK@(7?jUFIW#;;?-{@Cry%F6jgK+x8VQbCt<(!ZLx!{m?vXa-TlPyf zKBFKZk>+<@!xRv)5jE8#sYsJ_v^ZZ?bse3*^8HkPd^d0K7|D&rXOYiApp! z<(*J{L2hy?kINj~;=}$Z&=`c0@+`4r=v)wLEgBBdy&Iu>L{%!fqOVb~!1?q#5xF;i z0mVsgIiIvSa_^jT-Tj;kUHafm_xzUgT>71VbI*U)Zuj^7@NAdn&m;vRa@}bIC0jw# zWRoyf@wkY61im(VbJSR<=5`#+X;f1)*IWzzzy0lfq!Ks3Qu$lNsnI!Ok>~AGI_wXP zmdDngpeP&Z0wYw>-1uIk_crw>J2WQJ`)#gL-YpWp!wQA{K9Bt)PBOKUBQ6&a(k~dl zVU#5ROJbzLpqiP5@O)5N?Q%Vo7q6m*HC z=&4;#OPXIYMRuRN)nI*MlE8Yab#mZX08qMceEWY(8+ROy3x|IxrZ{wPjlV0?s@VR0 z$pQo=<pC-n2ve{poPhtmFP8+`X^IRolp-BawjsNT7I7wgSTDl{s<-v!zj z3X1qy>LJ3a5uq@nUWyX?ul={8_Z;wx>Hio)ZMu<1k=`HZL;Yc^)4AK-G0zb18j&Z` zXpl}O<+j!(hr6Vnq$zig9f_uNydK|ap<76H;Vz7-8B8}dO4Et}1;MK9PdR|IgM$w@ zak`}Hz#o=YE2G~|m%{dS?FR1HvKbU+yTJd{4-lRjF6q8ph^3dQ{PcFe5=)SjcXf5L z@gJF8;0t{p@~-sgZ;Zly{t~?YS~#PCO|F#ppebZ>KQsB8{6`~yPsod~t;tLtn)n}k zffu<$|2~f=xkG>Fk{4X^B1!I0UpLgfaW=@7eSb*qylcgi4Na`vTS!$o!>WT75OMI5 zV+XD!Eg)NpHFPADhHwOg|C(}QaeQ{GvHFdD)Bwk{G(N_XiHh3Y4g8wrAmOcLQtcUl zE<{qO=$SYEW61yGYiO~8HBpsl?e_i=X<8N&h4(l01pP(6<^bK@1*pasN{*`0xVBQJ zx$!MGq`L9*bFdrWO%HWw#03-gT2K5h^IEFrc`;+9*0>}E%+5&Vq4FluY(GisHu zzCYC5@Sx*>=c+wy({zfI)V%@~n-!Ziw(F}Uyf0`b!GgsU-cLWa_t&Yj2nl1P{fwtI z&>DX#8+I1E9%(Ks73bRv66jp}-fQ8Y!Z`Q?U*jg6o;sc0>B*!r?G!J(#_xJ9Xj!E9 zMDn&Yz8&d(O2h4~Q&7D3#T~M5pM7Ukq<1OLIoQ6O!#z>}%0DRDYSo4WhXV?7Ka&>O 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

tX zm@06em6lg*u{uQt#TF_Hkp=1Aq1gQX4#ieBV%UIT;{~Z!oo!+D*{4m%F^xkuJy7}o z;Pc~`53Ib>*Mz-(5TE&|dpnPdfg5UmJaNy%d*x>*M@B6g+hD-@4qn}NuUHee^p<+h z&TXZ`e+<*S?sz|7%<&r*wNp;yFO_<{tr>MF?v%%^uIGMI-(6$5!Z1IsXy?>!y`IhQ zy!7ewCy#GUs_)x=XWZhFn9n9QTb1oH_vXABuFq~pluloMyx1;(cEr)T=Vof=Hye_+ zq)w?zNz8A9PP%dZT~Do;{&SNp!;|8IR`fXa=HANQaaWfZ1P6J=zxZS0g>0Yn_p9dH z-F}dAckPPidyjr@ZKa&?_2ri<-r6=cQ~J$&I--8pJ!fyk6&DU$;MD(EOUL-Db6vw` zc=psH|r-^{VwX#S7KxkPGK) z-y43&XxsUB&9B#=x@^7qJG&#;@c(gTZ_$6~+vox2n z-t})<#a{h$`MW>6SZ`1);-VZqNA5FjFyiL?fF>yi=gypeEceoq1{*E=FD+TIaZ>Vl zi!VL)WDO?Q1sk3@e)Y<6e8XKiXTDt1#oKG~m0LqPT%^&7UCy4)Ikwa3t(7Ks|H=-V z4E(?3QkE>ZX}!jJTk9y(-wt;0&NiBY8RtY84rSve|6f#+2KuYUO69=JUQRZaH+9TY>Mf0+tI_0$zt`A zu<*uE%WFKgA&e|+uktVV>z3CU>-4FisQ>kYDbFZdLO(A3A-CT*S)Q5C7Ozf>pS`o* z?}H{#i@l=CNW^2me3F%Ib0dz^6su%O13yf5K+=utV?MuI~6E zdA6m;q`LhMnH2u`{*lx2)lMx8Z=d%%{cg;(x?bC@{o}4A9v*qa>2Bj>uXpW^9zJ`m z_qMGwGP?S^HLTfWqqp4j@=vdqhSWIm!_-a&Gq=XR-_r2aiN@-&wcerd(F+-_e|Y_`tC2>)ocMA6x%a?sz@wI0xp8zcEb_^!8)NE?KcG`qxa`%EjbsCglD?-T3sO^;+8Fj6=qeB0o|^h-(KC`bSD$Y$Tp zX!W>FwX+k7);k_({O#$v^j%Ar8sAj*cNP@IOB%#_B9_njenB8 ze6!2SIR##=vmTFC9J#o4Ysd?apC&qHYL=b&&~Ulh_sW}>ZkKny-q_=X^**JyW&9eO z$AtznznOLUW6pBlH9qF9FKT_(+hX0@Q8nki&HrW3DD9ygBM+Ot_{^@8p>~y-i(WOo5t4~8QkrV2iK#|SglMXnnwVdCu*;?{9Z@D|dKtzg1q|i~ALnOq-oiHf!e8 zSreycOrAJn#?11JNyQnn=FG^LHX|cv)R>IvGmDCQb?mrfHx<3d;c5LxkGyDx{pM8u zWX4Ir=Tx?xF%IzbqyHJ;qeosmnQ>nsK3|J>S7y1eP_w>);lUbxlXN zI2Ew4qg!79Skuwfr32P>bW3_Tw|o!hx&qy5hxjt7XcE_}yttwqe%Jn1)5)}}>J}se z+Vm=#SUwSiiWvUYf`@_D0ES#PD80&rG0+`pa3_PI4`9e;qnP!YHG9@%(1Nrg&2C2^ zSGC4hTsjksw;l<9*ueDxT-1VZ5UBs(ZG#1#tdYEXK;f+lO~gFKM=I>Au&ePY-1Mx- zS+DRhg-aAJR(P$#3Wbvt<|*u_aL1=b-Vq8Riq-zeWF3hNbaQ24UK=M_GtaJj-I3ab<@ zQ0UP9(tYuqz)uu@pzv*le^$6o;U5(~qwq0>4=enQ!X*lCRk%pu0)>|ou=h0S7Bd;=KqbhKYvr07V$T}?3tGY zS+-bVox*-)LeE!Nf0f`puNGLKaG}CFg(lZvZK3cR9)>nn^Fcfizmk5QE6K!AE97eW zog3(vF-7EL0{@Vg2VBLV5Z=!p2K=qfiru=TufB^*?)6SWF z$Q#F>{Ixsno|AVU&~)pAh5d)O9q>1IlLQ`RPePg#R9zzRu2++ZB+iEQ|3y!RC;=Z zUOiCw^KQ`i6<@D-zZ*54DuEqt64*zf#cQxSJ4yUXkH%k^EByU5f2@3@Z5Dc=!mQ5( zul-zL_Hcpu{}R|7u2Jwpg&8LZp84-Yz6Qm!zYuzJ#W_*%HA*+Ru`h+*sIXI$;Nump z^u*2$zQDo};y*4$aFdhXM(~9S>+^)Kww=9ximJ_!7m}pCs|89xeWBaxX}zpO&ANAGyj`s(j-{OZduTB)sXLnwt>HDiQ-LEl9FyyFD#+E4ivy8eQ%QkZ|d;PX!s*k_bLr?6iAmkbd4N^MVavIVbD zxNe}}YX>Fr8UMT?LbrGdh6}!0K5^>8Vzj zoiB1WDs0wkw93~4nw7-9Wy)8r_UJZ7!dZJ8i{M7z5;S`y<15to@)Tw%Y@;w5uGx+e zf1}r{p4kPW|5pm5a<&%ld2*s1qTyap|LT*a+%7p?_^n+rSgZ7m2w%UI(jI0!B5h1sV_xHZSfIIy|C zYddaudW6r?ZP54@juUxn7qxCD<2RV5{CUbhUt#_YnlFl1E8O(C^yihQN<3wYw=SMk ztE-*vs3xBV8+loN%>hZ#F^llx6o)Mwv{Y3ds zPvlSSr2G+jeplt!^qc(hgM?lYp<8~wjfrm;{2Gpxc!;;fZ+!^g8ThIM+;g!IzB~L2 zLwGvy>=3>e@Qe`N4Y*VM9o%=uuQp5KC%!*^%N3_SUGZBO@;@B-IK?;O{+KqN%Lw7^ zfj1l@^60+{ezhUI9q{T9z7z1W5Z(cJehA+Ict!}{5tF5cqvP^-g#RkV|Bm}q{Hhgy z7x(+(7gPK_+;_yUQ1N=)d-!E5{yy%zKvQMT~G0U4_ecvoOy(H<)G3!E7rJv#qIaDDcu?{$+fL^fB;1 zAO3W0vt8_-iNWm;{*Q4nlEH2c^qvh}b+u-TF^>T6xzLy?W61I?hWP$*jYNDETM?7k zkO~b#p3Ful({{_Lo6yW_v5i9dqPZGQtfgx-EHXEUZOgWh@TOH*+PB|7!-foQ+v6Gr zE0jA+lZF4b*jDG{ym{=P<44`!Y0ZgWu6QLa`>ShS_-CgL18*KU|D?mN`g6t94vl|W zQonxCvQJ+4;;)-amy{jc<Q`}_Tio_c8dE<>+A|H$)pd81G7Dbr87W%R-mM%|T>f5xkuhK}ks=a4@C zesR~lTT8DxYuV}pmn?0U@$sLoKJsP0pysWC>r)TskdglHE zcQ|vO$-95t|M5MpyQ$KDD)W&ib}HO=msu~o_Q=wscDv%1+jrXW-JhR+?H2`$pZK)% zghAKrcH7_i%mV|9hs`+V^VRR)vd6&d&+c`4 z=2L!(=dg%JThV5;9c`F?SWdy0`|XgO{!iJrE!;=i)qI7OuL-?M;c|sF3bU0jOJNU% z=?YU7HtsEQ>lM~1T(7W3;Tna@6)sg+rEr15n8GrJg$nZ(W-H86*h684!m@Reu2jXH z!iKJ*XPv?tg{u@+D_p2Brm#X`iNbt^*$Oiirm5X}nEe!H82>+1uT28$H!80FjeCiH zo{!btl$6x=JE!f^ai<;Hv~9Ozhh34MaMd^6bdRo!emvmC7w9$(xS-Q-hP`$E`~hSr ze(}YDPyW8)E0zKNxQD=X^8N5jPZ9a(vN4e0KXFUjwN9^6y6rSukV>Vu(eOquNkSi& zgr2MPw1}LHB=l6J>%L8M5*piz{!#iWrAPIwR(dqvg-PfoN$B}W=$T3AOFz^6MtZaN z)kFh~aRqK5#xFRI;X32Ty31dk-+I2(D4lx%bY}nMN{^;@VMLCFD@#JpPeRX9y4e{` zP2kd#(4EpvALC!|CFYmWmnWfDCZU%o-O972D_7}e7n9#32|ZouIK2`$<4;W@ztJV; zi^W^7^r(GmlhBtZp>uzwJ$_Z{Px(F$(Ht9Sm;7IewtKX93i$gcXAOKRRX+LKfIn*s z{1wVid$-*R{*n-XyH@lsRDX+hoZ?LHPHwj?>XWPd%;#NkZOJ}aA$>Y+g?-YLpY23$ zEBa(TDD~N3W0T;l+cEI>(1g_~ec7ktuVhyn;m=f$HA(oFE4`_yX+X@ibNibhg;Du2 zEf3Wwke9Zi&k~hq`dhzg{84?P{8e#%_PrD>R#cxB{HhQ4EiVg|hYFPwNscR2`kwH( zax3h=)cSq!)Bar}0;BfHR{7EPBO?htH9|M>4d2Au_2$MHp6it!ZCBPr_*vfRs+G?A zNN4R(OzGAS8@(_IeS({SKIJ^jkU009?9Rp=o#`1Mt^6~4wBi+z%r43N%|6NeP5$?_ zcW%Uf7GI{)qxMcydepA%StmBq%u_SVm^_R)|?-G?0)ju;L z-}2ujp|Af+(q;M?|0<1GF`7b-oPUzthhsY&Q{UnbTM(`!`{dQ}p7MH2eB zB=qbg^kns~hw``80%dkcOG0n>LedrGuT4T&r*zZ9+PV6FOM7Ox!I~uWRY~YoN{{LpOF}P9 zA}88En?BL@$I`K_{eP~;Yi*>-&s4g#8Ai`YqGw}c>-}4u(xZ0B$6EPRtP&Ssj8+C{ z&hpXpAw7I=`DXl4e=BFn{H?qt^S5%B%-`}Ong6OJc37B%UY3Nuz3N?l68V`*kLF8i z5_+=ng6W^k9@c**^EdsH`TyALxxMP0m80l*^ZVM<DI0py+Y|xyX7XK_edh&+PCPqHCZ{YPBMQoJ6QS&!|j#XJDGpR z7RI|yC5%u(xx(8{o3BZ#W2NigHlLhvIBhF6!e6 z?nKnq5vX&caGK^M)JpCzj>SXBr?_$MRCk&?-Hmr=xHGXzT!{KP2`j{GJ*J=yC_!6r z7S@YPQFCXYEhuy6pr-T8(HyiKb8#l)b+jz5AK_xm)CZ;cjp@Vn^#HceA_2Eq1?jx4PS0wY%Nj;eO?o zxI5il?ryi#-GfJre(jdI``mBb{cgEi;T~`gx|QxB_po~ePv}4De(QecR=eN3$K2z1 z;^+zYqV7uP@w}?ko3i z_cg9>a5b^(@#uUn#cS)e@!H{Pk1N&N(c8h>$?Jftqqj4zUA#10yW-jn*H64oxOT_2 z2d+K6bX=XiF1Yscy5ic~+XvUaUIwoHy#2icaCO7gJ-80^4#L#~*TH%n;vKrhtEbn~ zI}BGZ?{Hk1UT^ORTt|9+a2=I!9qk?CWd+x<9o|{BKd--cyf?th_6B-`@EeRP zC%A@qL%gB5hT+QfhBsd)cqe*!-Ux4`UZcEGUcPsdHyYO%uK?HBB-hE_Dc(3-r{X#d z*XiDP?+ouuZvw7DZz8Tq-ej-HE5)z1yYwy?IGVeZIzrl6Cw;aC}xE}Bx z)N7?D*F&CN4|@-Lk9e!RM{)fY*Y9wx#`SyeFlyDE?^#^b zy~ca4`Fh@a-unZt7rYm}KjL}`SFQIaTrUTg^`ruWV@{}8TWpF1fGlY$W3|&Cm1}PQj>8__DYe zMr8XzyyWJ*kN?}@Vw_9~`56OsrH_Pb{l8d&`--N4NF`=6B&4K{=_LpCqrd4!Ozy=l zlo!9+sV&od|3S1i4>w1%mz#t86Pl$xfEE+y z`7w$aqo+MMKEkPfjFC7h!aH2NWf&7Yg;7D=wezkB#v8xDIE15*pJV)C?l#+u{qOJ&Zx)b?JHZx$bD+xx&QW3^#$#t- zWC*=sVV(%;AMo9WF_z@>(-?0K0iCWGKaTdqy$A3j##=V>s=?C|C#PnjK~kdT{=d44r6=pV_eO*C$L_< z8H`ys;_e@qXMK#3Y6E73arZt(zkhHs5V$sgSvf{jw5zzgaerWN%Q4G&UN**JqcA!H zx3`Bo3?sixjPS^C97ckDG5)9uFpkh=d~PH1PTp_8)rgr2$DVi+2jkE#-Z0R{U~GLl z#?y4`G4kGk5%)aI5f%c!9OGkgJuo6UG??*B!wBwtjEj&r7!!`c*sVN>)442+K{=MZ zIl%AHkPc)2$1o2Ncdz3}S?))>{k(UYx!wrw*5Usy7z-byJe3%CP1O4-7}epNEJmgr zU&`2VGRBFMJf1mn?g;N_jBy=iA9n@#@9_We;Lf={F-l*Kxxr@4xBrb=Q-^uR>+pLG zbDl%oMF=%dW4Q|OYK%smn~hN>UI&FA$JKwsoQ5+R&So5DH^0XJr!had0RAYU!T*c# z|2&M6NtucfF5i6hja!3x$*1l@j3+P0xbjkrGGl@L$Tb6_Rg@jv?StGY^iIHtb|yx& zWuWehIp-H-!dgNHjCS!3GyHfu`0x0if!_h4Q(T+;xoE{YxnBM+{Wtt0+;9Eg`G4~_ z`hWL#cYC-6-Ue@f{{Vka_Zu(W_4PUjGts+3bI~qXhv2N}Yv_DbXtujQW`6aUzwYcm z7tFOrq4$vaC+9vT!F+E|k2BFW-czoN7oLwk>PBGn`nh+E-{_s-^1Xk1UwB`7UwL19 z-+0;nJpXRL$>Z$zZ*B+7vv%^v_#M2He9p6WL6^p{s*F?9kosL=8Q;ImpYIR%=et8O zZnxR4^ZwuthgIi$gZ&(Ti2phA?15mOajMtOZ||r2S9tsQ`}*BcwzE-xZ}a})9qymw zAK^E6AA6k1{~7JkFT6wj8@#^<^R{(fu|LJX(VOa*_*LFY|1AG(|7QOt@2}n}|3!bg zf3x=scZ+wBf2x0-ztBJ3AMc;xABX;tGv#;CUJUczb$5DqVFbU_TZdY+9(Cg?lupiT zZOy>u-z%GfSxCA@_=6?4D8K(jl*gPI%5#xHz{wkN@NN6dGK9q%0g zo)<9xaxt8M47k5(a@)$Ti_Vz{2<6)GP@va8#{KxR?o^poQJ>_2Si{><0+MY@I z9RAdhn)if1Ue*GcPoeIF^>DG5yjQ&UQJPm^t)K=xD}XUZ7yBv*VJZI$SabwG2m z-2vbC){36~-hPIEDf}7w67K-S(4D`O8c5vFKNVx7#5n1PQ-y(UuVWO3cL8}l{T1FR zft8s~xhz!olyo1xSZpNLavoL<%V2fk=sRhPDq-PeE2UjoUCP&0*Y zVUP3ii~=}a>|^-MbdN!6%-v$`++V%J)F;>fv?<&FuxYFt=QBOsQ!pNgeXXUVd&)t6 z7ypdrvSQYv%)%cy{m}{gzld`w! z;9~Cr{}+Cv(9TfSTKG^~UWcJxVKfljyV!fpcch?%_}x?X^Y`@z z`2+pk5sKHj3Q>;H*1Fha$b2ZJ7S!hgAE{&GgZsz5_Wq^H{{Z;JZ#TaV_t*Itvq0WL zzq8v%d5F(&OH&s4?_!335n9x%aM4z*FB1O> zqwClwLHpFc>A(OAUH%s|o%an!ZwSZh`9QBS;6KH9cpTv2kW|uC-Ncl0HMh6L4 zJ0tbAfvk(Yy_)_JvW4kzcFHG8y;mTT;9NJ%8cxURXs)-H{}E;$x!+}RG&*Q-)^a;j}i6LDDhLg_Sk(G;2y%d0O#&c`L+i!)8~p> zJ6Pfw|7ib6jBrpc{_18M#OYv&mGhT21 zXZ}Ep#8+TE-lRU|{;#0b61TVaq5F-Wp=;&cFjwIkc^P~!@Rq>3hj@L^Y9Hoxgthv) zJghvf@F!u`x1-L{hi!k%zLUa zbG^-<2+Q{Oc5}z8mUp=Our6JV{VMJ|jrQJhll&!KlY85p=-=+&;s3$^m4CN;!N1t& zs`XNLJyvn=aX-Tv?f~e2xqq*#_DlUI9oN6Plf_-H&faU@udznc+i`{cb@2V%tMdl> zyR_KVsrUW{sUsnE@1`REXWmB4wMIAbdI%-@VfTUek@tuzL=HUT_HJ4g>~wvA{hyK8 z?|K$9&_BAi(DreEr1v~(RsO$rU4s?# zE3m@C(k}6Qh8dv5bBt&8f$&)G443csMSdLT_w)Pv$9c#5!@U7oQ?Bv;_05@XkU!L) zfc%(*8Q#A!qhmbLH14Ll$u8MQ*WUa5n~`p^_t`gX{BwgHl98_5i=n5#7Ngip{ENJQ zy34&v|9|L97kbzF*JDke`7zRQkBB=&xA-q(=i?Qu z+F$Ff_h_HLcyD-r_C`C;ALHKi-tu*5~>Ir|}pSWbWK zzvCU7kPo^337QYXn%j#4f2@D9e~Q1_e=dk=od3Lcnm^iIikQyyC-^h`^ZeQVneJMD z4(xNje*t=?C4QAp`}{np55K_J;8y<{FPswt{W~?Ldzxdq9&s=&kN8jcYZ1fG5JS|$ zuOKG!ASYZ6c-H%)f|&m5*ZFTHq~%igj>hm_a}59VKTP2Hv;Pm}NonS}1~Gh$nf?U# zp!avIwB#YjnUt7gX@hAUE|8egz|4sid z{@ecOAT{s$OZ~3UbO)s7VE=vZQGb)S*x%rpI%-!gPx(4_7;cRcO~wCL|F_Wu+#d+mbtl)s_{e$BfbYbaRN#LCo8 zXv@0dZWq@DYtpkY!`~VAX}ISabSIn>*#kard0p^-FSNs5+1u~bKFL6GU6QJ zedg_i7P<)QH)o>VncPC3L$S8gQp-+Q$D9Q{_6p+fjd_opcDSbbv_pxWhqxT)3p(SZ zz-8c-6A~XH%)Q?JSi5J>GS40DAL?I<(+2%vr(=++Zk;rh&3hK}a_gEd9pTl}Lyzr(v8{}06o<|Dw}p#$OC;6Lw%xo5G8{2X>! zkM$+o)rjd}td;R3#GP1|pMdNBgh|!vD?#- z{j4j6-}7!JR{Rcix&Hp(y9GTH&t~ux2v?l1!aC}m7}c!^O51#_7r)IB0dg-|!WU!j z98!@xU4kgBN%HoVAV$?%c-1~yt{lUrxzpjaw=zk#MIfX$Lb#A5$-)v3gSAw>s^J> z0PD~x7$N`D`_OwF<366s;n|_lh81?MJN7^vhv3&! z!%jxYD{xq=K;Lo=E|JK1qG?>Ee$rwb?axHWV^KEuLTn%5KkC1K7DgV!&|7qNLy?zx z{?E~Vj`H90$GOq|+vtIRjeKR>a1GMWTt3x*79n{i=S<|k*k&^BMqu~vEaYnEARqQd z%)Q;7*sth}Q#{WgbUE%=W;&wGTn{q&@w1-9Pe+{(4zbUekbVAw zn%Twu5;c`M@e%eCuSZPxAYIQw9_@4u>~o*r1^I9o?AHa9{=w-e&Y(U9_cf>+R_7$g z_Xdx|^igw6MeZezBq34K@&N9l7Vd(W$itlI4=p|d4|9Sw#7c(5un1Bl23lY2#=a(; zUd{%D=Qp15j6*-oeVS9yPA$efuY->|h!~#3OlD_4&!3Ds`xA_P9&|s!*z-J;!CT!G z{_$9sIMY3j5ye#R9*h?LgfYYPK-0JVnEyIz$OB$y%uRlYvEHrT6o0+H${p_C=hHq% zAuZ8#-r|kdwnkEOI)+vRMjLh&dbP_jhDXVTJ0-{o-ZeE*Q@Lxx zngsi{J+arplaYI&H`}|}Pk7>|>f&K|7mdBCiD~JA&@EFVA?Zh+j)2k7-9VGN*VJ?f z?t8Ydh{gV&g4EPuky*~e7AnkFn5i&bp;K7@r0~}&T&}QMVWq+fg(V8dDa=xsp)gfp z{SzuzVU5By3R$x0lIdHme5QAWg-fEh>079L*$Oi(oI=w#nLZ6`L~jgn0#_Ho*F^B; z5xgpbS4QwM#eGO;9EB18e8tb070^>9ceT{#Jf0 zd{rcTWh8uA1kaD~XGZ+fBmSuoyzwzfkLg>dxam_9!B;76>92}}xB6k>%Od=R5j-~% zJ~M)+DUQ95Ab%TwFZvo@7r|>3H~khy{3{~<<0Af95xj@umY#IQ&0eVyync0Jd9RJ& z%Om*02woP!3nO@T1h;x>`t^wTTRUR*NRRk8{w`79I>n8@CW0@G@K;6fiU?j9!L8jh zeX}F}nGrlqanq;aw~6|$kKk(}`0@x|6~QYaczy)WQrz-8J>u^oc>SY^`qf78H4(fz zf>%cH3dJq{!U&!p!LuWH55>)XsS&(>mFR2!Ya)161TRtC@-IJvXDV*`rbogzJ|gj% ze~sc+pQ|HyMT9?Jaf?4If=Aomw21%uhZFOsMsZ93@(6DIn#H#;5>wfchxDef$p})Q{;~+6xV)-)OI_j_&e{i6P^p`*kRYS-Gq(}9dTH> zg2fCY{7+IOKHvAl3P1x;GyznIF3ixZA=v1^;(G`X+$v);kIE6Ci3<=DY{Hx4XpXCO zO5iQx@m|n`c@lRoj>T?F{5csa&yrGv-?zPE6y7LP@?+BZO9}m$pO&XALpWW5(uVgb z<98!|58=ntXP@G?D+J->2TGg63Ka-&0OveMV0CW@cJ1=9!Y5Ro z@5{$L+AxO@CnV5@!PciH_$T582$3K1xAc}wl=tdwS|fU{)$hrS>nG_i94K&JFSW<9 z0=xAWSTaoDCWUKr1@F*;sApTohUZUZn<;ClpNh2nul#Z@5e7(egWgsn8n~E*~iR#`X~CzN0;= z)Gk&I%pR-MZbtvH+oMeFVD?}?lJ9a7`VyAqG1y-^BGSi@o?7(X%2VbLvHy}>fo8vw z9Klx)7WiYgUrCJY5QgU ze*H|Lmroa%Q!21P>Ep@-uT=Pz!VDeH6xp~)p|y)9-}*Zl{|&<)&RC2MaW2v9rTW!g zCh-i#-hL^btSVOj0_^V2X~y_0&v5LC^$EtBWHEe>@^^<{34C!{6!pIZVdHlh&9uG= zcjW2?%CUgmv2P=CGXqJ}g7BFkS#~cGc1Kzy9?ER(UKLY79%`6eF12h;PFOy*%?$KS zlumnW5BYJaly}s2()UQ%H|n;J{J7MnHy(e-Ps3|~-?;6~rZ?WikMOoPFMi{;ryjrQ zwhNoyz<$b?S7u`y$OHW;?yjU9foIL$xa~IJ{Arjs-yHC#+a~gtvTOCgopxP2FbIqA z;C{28EjPl{KJK> zAWPs%g*GnPe1On<94Byoroc|e3e4&yuw3yaDsQF9?IZqc)IYng;B{J0>r}p_qy8+> zzo&jTE1CX9>R)i6$lKUmpnYG>+Q}@PFRj$?y=~HPX0J6G-(r=MEWYxCM84T;$)SR8 z=qb?VA!e_9^*4L1JWTk^UJKN2QG2b^cx?QXtNP_>I*cBL73y#EtHu2!KEq2Dw{S)` zX!a(W5wU}GJCDh5qh%xv2tqpVzAKS zQMp-)&sTh{!m8<_=i-MFzt3m+zW5Z0zuP#0mY?RIf4a~&>-R&W{>EqdS1~iOyhPKV z+VPTLd}Zm+)%;JE{-Qw=zopxt#n&(+F+M9FW^b$a-PF#@25Wj0nmj9?X7BOJZ~hiv zn#Px1mT0f^3k2^vQDBEjiT)d=3ZBfKOJ<7yCWU6#WN@j*Xa1(2D-(NcR{tdzirhMd z^J9WryJ&F1#mc8}k@7Fpa#L}R$Su4?_^K4 z*?%hi<&p9Fl*o9#J4V{aV1#eud*Zz@!Zb?v;H`4_?tt1cFDC1SYu^!Aqu(LTFPCzb zGg0ibpitoY2?DLYmCY8u?9Ebst-agQ`jNGxt9B82mLIvh3cjd=!X)dT$<~joz57q) zN9x6i^>JI%Z}q1+{hx^)%|6>&9{2JL7`=x*B z*NN$0`IX?C75>=MU-muIU)Dac{#UdUe7V9Od;06=eZTzA+95Ih{dN?*Bvs&#J^ksL zervC+J^N~LEEt~{o^yq)KdstL(l!2Mf#$#Y6v3B_6PSOhz`_XZQy}y;3bV%w-aLM~ zK=PwNjpem84-ZT8AlJpc3m zj`n-p_e_7+wu$8>Cq?ju3V-b7rS`nbLB9;osKw)#8il*FoD6)2~NFzw$q9 zn|||N_+j;{nwx09^)E?$U9ErELjHF8)ArRbXZOVXO^xW+=j9)l{VL8)v|qnhwoSj1 zb=%i|(ehV6CsDurSGQ5W*M3<2#zpjNd|l#Ow3Y2kpEtIze$nz*qw{>L?>+y#ZT8Fj z%l6eTn!l@bejPnuwem2Dx5J?Vlbx@s-B0{&e3E{E;8}YKOx8dB*v?m3znZD`uyy23 zf0cC9=y|NtHw91DU!|-6*7gURHGj)DXgmsSyj`dISoulwWSxD}AmOh_6+D?fJs`z1!Vc}w&9 zv+ieAMD|M-DsJodw!dWS_6DuLF1$3+J~kg1uX-7t%s%G7z3fvN(IXWW%ypVXcrxBNhre~`e`g9WZvy!Hys*UUuzbPeC*utfe`<$oc<-$(I6 zg(iR1r0;f2D?7rRl3UO6Vm=3S4!W z@LPRf+ezrLE2LbP9w2zM{H)tu=xY^b?J4+rg-aAh=lgYCg|FY<0t*#d`(yRQ%6FFP zm#z9&m5E+mX9;XPM_{(%J?9GEZMMLLid%n?dXdu47Pv^mXPO+9KfYA_?L1@IObw^| zM|tXBf3eUDV*l$QvO(bmf0@1U4}cTT~52h+VyOAFdrldT%10r-LdTsZ}#Z} zesUXM?{-7l9SzD*rSt)Jj}YD)QhUI!C-@G6oZ%YVp#jecz!I+toVz(1CyS2N2%_N* zLi{<95|6(}yAu$nq`{=(>2Jgur%Nb?IjY^jcD)gL2+~X4Nz2E{eY$}Pc|QjGH~f;v zES#yDh-X~P4FzRdh*l7swc>X_68TQSPEQfu0Z|hxk_HV!Ypl{`@Ku-;_+b z#rSp!-d7ZGfCwk?w4_VCGn=_3etzvJQG)0*2dSo(qEBhaexjf4f{A{#?m(o5mSq~~ zMDNM4t~k-3XX2Qicz#HF;?(Ytz~?bW;=ElRE^|yT_vC0LYF1g9*j^SiNPS)Xfxxbt z1xDLTTOW0wi2wHLZ>_z|{i*0R{wGqujh>jx+1ujRABM&(;`jI37} zJqjzX5qWj_BCq5If%8rhXyt0rBEjwa@JjVBRC>j=BByMO@D(Yv_zZ8<_|~g`pOb~( z#v{hxrdXe=QoaL`7iGw+*})TGeBb&x$Ps>7jZcUXpW1vc_(bGanflV7^;vj>0Q!&l zLRYmi{@g3^1NjfGQt534)f~k0Xc7MX)xSjP*6}c3>BdFqLUm}j%5jz9n+1pCnvJ%$ zBxoxq;=UJBFb$MhLAqz6T`C7{GO+0Z?>R^lPXf63Go{nGC8WZTwIxOGIo826x z_zyu{XTQN7bv86$Un*`C==@qAEqy-x*(cDkzm_lc31xK9N)!Z~#i3S%8qdbafG`?{ zauUN0N4!%4UHKJ1#%r3eeVG)LX-bOsTha zE%}BZe0dAIwd4~GdEUGj7u!vSGuM(o@k`7t{pBl%E$Ic2UePR>-&350G|KlBCkN#?E;o^{0=i5_D9fqV z`9_0lZlGaN5EpF{mP7wZ-|EjgDzXP5HjZwr9G;A@EMZnsDo|2OgFNpGE0HcPP8Zzj zN6|$JVnZK$NJ22#5Rv% zIV`pLLFwU_Gii59HD@`ISZY{*s6D^z-C7-v=SQ3`v1FM1;jk4;M>+m;Y-i&~(P#=Z z;%I>1^<>$IOSAA&s%9a4q93hTj4!PuOPQ5Si-%T-k5*Z4*{iWEixWG@w@BGq%!YKv zYHlR(*}&OSXu5$;!vA71EQ{jkoVy{Xw9ErH8Porn$phF?oLNsQ*jZS+FV-ry;hFc%7S<#-7J5s zqs5wPv7W>$<9TYzl$;DXY&GKLE}6fTtWkkvk)MYY)53J&6taF#!H=3+T^fjZrXeTsh8p|Cevo1-!pv-Wa(wcv`O_A@%GIgwpR+?JMEed)}mXcCfi+zsR zJKCblI5+zB*_QGKqvVf8lA`+YnRmJ>If(FYF=MwwEEcWc|FAvK&ZcKGE*hrZUEO`IRw1vie+r*yMY{CQEJWRa>X2E2^VXLPgIW7rFiR_ zXm_T+3{q!7y2WI2)^_&U@qEt+)=sE-xStFAGi0|R5y+9go;oMeS!P7jaQ=l`h}QZt%CYh%Hndd7d$6If7u$z$c@6jT7Q*Z# z<(~R5%!~k9y&HzoNjD7bB;63qyXf+io~QJY3hBo%EKjyZM&2+^8DX3ixTyb7^fYwzr;P_AG#yh#+Gxf3Rc!k6 zJvMY>5l;?cH+(QShbW!_D&G-AesekSXWUW0#Bhw2F^#iez${#%A4?|V9vzVw){Aw7 zn$RA+8;;ajKE>s>&XcH@q?BnI7+A#t#^VobmKcuQwBm@s8Z7DIa4mgVt}MN+`Lf*z z+nH|?8U@-Agc}?9nBn4bTIWfWQ-H9;QRi8!q@2dXxAbEi%p;bTu|Y1d91jF`BHHtT zkieQFZYcB{-GYkeSbi?+hTr#j)%*u#9nqeb{NB&2>VAEe>bLqTk#Fmv&FhrI0j}@5S zSKxAm_B>$KLeaBvd7_?aO0QWV^up0%kIL(Wf05cPW4zECbv?RX>6xbrz4`{>x93Ui zIp<}=L?26UzoCM!QCKuw@aXf8se^^?P8Qfrp_TiJNPKqgr?9{9TYNo^7u@W(E?e+q z@!4~0R<4}J<1~L`zmRk$D<|1ciXHP5);}z`({NT!#;Jd7k;u!?a#yuh_zXbwdpCi#zm#z0N?&!5(DRkvrnBHtd07VveWAiw7s0K*)TloFG`!i%>|HcX>{71K z{7cJ(9<49tABFQvg@65Yft51^=FJpn_Aa?i(wVFFvU+FwG*$?I>^y-M&*lpRPo~d; zB1v~Ym0M6Q{8i@)Oq(mPQlaUy{#MZ^L&IA+GJUK)sfbB2RiDL^B|UA`u4d_tW4`uF zOBJRrlJKPpP2UF1&seGGxmoqH@|S*x=xfi%+kU6%o9y}c+_}>KC(}3je0<3{!oPf$ zz>3)d3(EzXzBxBZIw~U1>zCfF^xH+>GHrLQJ&Ed@o+on6{y&tyF@2xJvRsL8;fVrE zP7v6rX}Xk3Y#8p6wgb6rnj<$FxS823%NMqd=-5V>4+3{z(Wd?v*q&ba~OT%?6=E;QwS z0o`<@%pCV0xpvFd5w1>hwVvxqoCGI_+2fer|#x#(}(k1D!Q%yyI*7TRtP&_j+9hbT3LCR#+ z@4Qevyidd}HoUV{)6bGYo6s?p#JP%8qI!`ot8v`92vbSt`3ok}jDy71SDeWcUl)|smM!SXY~6Gs zEY31xxU9fS8$-E9=Wf;%T;`0<6}0erJKx`(9a`t?r2%Aq%Ne-1X!$dIB1)#!HF8Qh z<_?#v@L6jnR%FhIW4YlGm9uYXV=W_yo==X!> zy&&<_C>;Ny;C4Q{T=5MGd;C%S8x;1`_hXkRwDFR`==(uC{6WH}s$JIJq~l;+7qWaZ z*h&2>e=T>e-^$1jlbFcwL&ks zN9?mPVxMI1vx%0^+zlcpYM)H42U}~OTz#K+w7&k(LvwbqO-fV68{lBtLme#*${obJZSKlS&r{}Mv{MhNb(z=a&Mlz1UDK_*b_I+>*Vm-M98)@e)aw)uSJJ zd{ezd?6OqjHM@=PEc$1t|F}CvuhI;mSN%%DMeXf;@i+UXD__xFiS<2Mdu;EguUso~ zIy@uL>}&61uX+tb*}%Eedl66#hHDv8pP&YJO|8EKAe-&kLTPtqq6Zn z=an4s%eer4b6HMz*nHI1D@-m=Yj7+tCpzONh&gkg63hT(7R~vFoXZe}h|Bo~!R2&v zaiAM#i*{DqRv=_$g0VBC%u?h$l!WJ;m$B2A&q+{go@|nHT=DfAo|g-sgrr=qf7odk zIgKPI4LMsAy&U{$5zbLLlRrP;xAP6ufL7&sS)1X>s*s(Y;93I1@m!(MWF95wEojTL zLFWv0N}#!%-Qj8EsJ+Dw@pDMgIj*FK_T!ooXJF!ZPK5F~|E7-Q3(vpHpxwFZ#}It# zf%dZ%8P2)G>7`_zeIw-B4Ck>-JySVJOAlvzJP{&m08BCSg*hmpSn_0L$RRFn^}Hx_8Xo* zvwktk*VmM=mM1iTc@kiEy#p${A~0f0+wSSbpL)N;su9 z@~ISYT(vtl(4MV_tgkUQxjG?u`0e+!8(R#i5t4HO8z?O2v^8Tr534q`2(_0pY-~^E z)V-7(s{w3xrF>CxeBI0Pi~7c`8826HX`-jtf2Jsd|I|io!qRE29P>kXxIQTslOXId zc)re@^#{Z!X=}jxYtHID;|=R)dKsV916v=Ojrf_9v@sp^44<=;HB5OHmHxC1EyOib zJ}+aA_DMVgExJX^v6Uy5eR)DlB(P0qewj%Fq%>G7 z%5olmeuO+?C-%pbXstKxLHopeII*+!!fY24^`xE`-(}U~!@z$K>SMr^!k95*b z$L%WZz4YqzXJ5ejYi=syvob`Qt@oNg%lj;ZITt@V<`e5A9ou$u@g77dvab;@r|dhJ zQnr|Mv?poiq#xrdtdv>eEbqb>1ck(wTkOv(YBuIz)d` zO8*#DC;fZ^5;c*jbVS9viWiJz7rDglbQ|siIjy5N5Ri=ky z3v83gyJYLu z#?KVWcvD6$mR6}R@ph8sg{7nQUYd568o(T)qYW58L(xe*@$qdy#6LcZVQ1Azqm=mQ zkK;z!zcc=`ATewo)=O!b<8hH!>{JRU{judg`)A5G$DL8OLb7{By+vQCUmPV0uj$XY z?Kzhw2oZg`uO)oUMXRffLvZFryiFkepx}!sS>Wb(V)*TpmUl;hMn6K~3RBD{8MG&4 z85^F%T`u#===<0=+$rBR%05uw5`}dN7aSz?)duyw>$ZPi(L?+j6)snp*G=e~RZb@j z-*t)5ZJwB+dTrGA#M`=pt$W#fdJIiYtpL0a#Zg=6^ zR{NWMw$=XQ&zJbj{w%-J3$lz(2wDyHPHbW6=pP=-On{#~sU!QYlEQD}GdbaSxL?h_ z&Romz))R7MnAnz>yr^E`CtO;li?b%1Rq#AK&-I>&6!Ubk>@xDScX+Rl@yNa@`yO%9 z4>^Rh?+u5aI1{c+)K_!dCFKZVgr3=DdrikZS2{V#&3;v$s|bkrXYIA&`Os|`&SLjy z_BlB4VwxCR++Qg4<>fB@Q2YoP`*6s}gYCI<&lB`KJxxvMHwMB_1mCIZ&u@N> zfX@WLG2pW2GpIxS1buQ@zzqRtQHQ@%sHnbJ%@-S5}Y`c?@($UB#d0Iml27z}JN(s|BdMoOGOMZsr zvoCyNWdy85dyYi>1+W><=||<;vkg{mlIij7{!)6Rys_R%J;)2nI`dfS2y01B5CNaa zm=Kg%^RY4|@h2-sQnr(ovv|(79=>Hxw$9fw=cEP?fgM?&c^XI3F%&7aCqb;H^4Xwh zJ1y;))k^9w&q+`&O9(@pilkE?K64dq>Fs?*5=Tppfyixs3z}_7_{p3xpz#@=2`zG7 za?Iqmo_}l`hvPfk@%k<4WeYbHI`Zs^JfW0WI+zZ&GHm~(Z4_&&!({+GG`|QC5&&pLsYYsAsI@aV|bD&ZoPq)uL5L1@?@#cZu?3l#-uR-*{RQ!^KOC<>v(C7N3wD zj`n9bY-{O{`-jg#ns0cVBPD@jhq(1v|JXJ&>~Q$RQxop5<60)lvpk_4!~AjW6X~s$ z?{K)*%CoJr+d3-aqT_xBS82GOA}b6%amUpWS%u+xiLKm>4Bj>-;p9Xicf-VyJN#U} zykkQ4^vEISEi(eCVLsXSi*n08&@`R7al~(H@?7^wT#w_fTzH*}_p*;zj(91Vup55M9&K-=KZuXsqW&^3lsSgQ6>eFr-{CkQ-qTKi zo(#iLy|{SF<1J&$)=&CtwwJ>ojdtRb%>}qvPX<9={9H1h{v93IDLj&6S!VlB+3a5_ zi?xe(qmz8FQAj*wxE51G%H~YNS~M9k(e`2sKBvuRnVFw-QGaQ-1LzFnE)TIVoyN5 zo)ok|@fBt9XDv)TK`r#~YPzii&ko786X5Z6p71*H1n3gqz1fyIm%}4TCL&yfIT0}n~Yo8 zKCuR{En*$x)8MBB<%{o62;;4Daa|=IIu}yoBXFjY?OS5IksV1fbs>kfD>6EYKDEGc zue6kwURwu=j*Ft{mAaK5q>1`i3fZ2pJ;)E@j`#ECPhPt4Y=~U68{?2xg89pSf&EiO zLdvp(S|Iy>;k;zIj-Q*CcLwoIhne{GM2#{h`N#3nAUrj|5u=Q=%)fGltjBKtQr3l6 zekHI*;mU7xz4&W^JryojSn_~`Uwp8vm*yNIuu)<8p@KIkT+>VNvcmi&BMu^+f{hJqYWRzUcy?o1BFg3O-Kx z=dBYx3tttuM&Y721Yi7TfsHD!!w!k^YX2hsM(?J0SLMr5I9_3crqj~j_{9Hq`pf>u z(_g>le>?vR|Hsq6{_+3q{LlX%Pk+s0|J(V${`dbK>F@A>^!wJ&*DAhQ;i?D4e_Q+i z-2d_PuUY-yk^eu`_%G{!JpIdm_urBKb=M}=|GMi0xAA}4!fmVnwZD~gFF9SFXUx#& zdu@JMtMqK;+g|gdY)!}Zo*$)NBk4D2^Q|h4uipak&r!auogXcKbo-W%|F-n!uiC!p z|Doo`*$+wnTL0MQVZp6_bW?m=`^O&t-Mx8W1Ya%HW4%%5H z8O~hhbFkb|vR!UI_c0rC)(yVmK? z0vrA+P-1m%`BTDY{a@{?;=kr(fs6D#t@eGlMx`5E_L}ffZ`J{MKFp*$m-=*Ke_-p& zQMkURj4OcIO zV9z>%*;wfCFXbRIZ3~j zqwiY(ma82Xys7DZS>WngftBj-wA@*FHJDRcI(XuYu`^0%PAnQZb1rrV`GieA+AY@X zBJAi53))ORm&9}OOP?3LSG_0lO^!k9w|hkRHY$IIdI@KIOVtitm0qE6V}wuMffhf5 z5I(iW@|5T=n4El*9a`>`w&XhnyQgxJh5NjAdSi48d8c6CPtNrPLR#_v_V9_Z@SXQO z8^sf!<`VU9$&u(Uv9;ui+97`WCNVru&SeErC(?}?l|z2+@!CTS3ZJ-Q56cqIzMPKF)yP{G*z0runmhDI zLTWFRG5Z<>&WX$%JgazOdGWA0(}F>X;lpRlE}uAKvJJ1mS1@t**&~Xl4=gR6iN^q& z@zKQ-g%U&)rw^S~%)n#HXHAr) zXBQ_@dG2KtP6HL_o9BnP@i;5M6P`RDV1A@=%*nA9pVg7?nza5^LhgHW|C{5NaB@XT+KYvsNWG8l>!yDybZZBf{^8sCW6Hl!Va68t zH%8=75Vc?fetVJcEgXZINS%8jkBji_$Ch^)&9uI)+-2Z9ru|_NraA+sJUAAzvxwq% zeBfJz7`h{d@c)i(N7bi$uOo^MZ~m9TyS~l;GWz$==sr8+*T&K8&>$<=2S1IhH;j7dhee^v(H9fyy ze48}h+Cy89ujVDOU-Wsxl04zx*5?WB9K^Ps2U$Ks;bC&eG0x5 z{#6RQekHh-e~UjEtav$5-wr#9em|7H{o0BAbqY({C)U?>Z3K_C6=>zm-YZ{ts+8{@ zJ0$vBeMw)Jm>##2@QpuB!liZ)JZgWdFWb93ERE>XL*xIU?7OA%uvXu9yI$c}3bS_; zyO@1fy()J6>I*4P)=sZ~Ez!Q2J4?79Dm~w|y!6{8F+H6+3U1}e%1c%xJ*(1woatG+ zYhrpTfZq z1(@+n!%8>TnR(`#tKjlBk!=Y#2w}KF&8K(xM!&?cEK?_fD$njP9)A6sZ++nk_*CFy z0pq&^Ekkc9d^m+tf}`o=^BD5{U$PW_d$?!}Cm;o!EygYR?P+MqpD3{)*jI?=7SHGN zc`B~K%X0{lYl&g0c^>%q9vgo3fwq+V9E{mNSLiuko7_sSBo7xaF=CfI$SKDxI4(Jn zV+i8l`>MimhdBl!_xawAWP0QxmGUmkxvlD1fRyp84cs>5_ZNw^-rygGkg{tav9-*vp@F`9)}Xc2@cY25rL?A` zcTBJw#dNfu{v5;~=jJNstRMuRy|c0q&X3`UnQwriAEic12U9Q$^;yF5tIf>YVm$32 zU(rakGM|Ivms)0_Hd}m&7L+$&@tLATTZ}*q)P(P+ikF?CSYP8x4&QHZELPN`q4>Os zyfZEyCQwtAxThme4l?!Mo@ZmgDeoF=N?$=x$CexD{Up8*tGQUnGKd7Y9vpDwv4&8aEW%{+x}XX!oi3~p1ZWz!l9h2 z{)_Zq<4=|TtB2wXh6%o0`?od2)nD<3k&2HJ=*|!reV!%vOreic|BZ?#d!D6Q{4Gu~$p9)I1FpY>=MF#3Yq@_&-^it1N4SotMh*U*2(?Ry;Z${$~b zo@*fbO{Ld85%AT`q&)b%89<0$Lmcp_08~De9YFaP0|@_smSsK1Q?elhE;SqfAnL;bqsQco89V!_isycJ#GpIQ z{$loRAKd$v2hZ8(luj-_r>swAud<>^z`v`btY%l+!8P>rTn&E79DP#z$Nkeo_dyuQ zFvq;(eKvlS8+KtVhA<_NlO2^63Xp>PSja#3c+XV>Zw%2w>~0)nS{z|LYLf8#2wWHP zOC~!jN%}INPiv0UtdL(+U#6XL(}new3jA>8~Xf$y|{B zkbed4Tg!h3StcbMKjnvA7|TMK8u(X7c*6Wa`a}MWxNj~0Da&Ms5;Q&v)jVd2@PBT3FxT@8o>n_rBlr zzTf?NCX%GDo#|hK^yBd&m43nRg4?b9iKS7be&S1#zI9AL`27wUDX-Em_yxG#%AZ&o zTk0piBL4QEyPf_S`$=}8KHJKWB>1mhA*qe%V4mn3}#;tYY`=a7-| z)ITEl7Tj+7iKVfne&V|kLnC6`a@LU!;AxV0K@o?1i9U=tJ>aJtG8%_(&X4*9zpe%K z8Gf(%QNKsJEP)~MRs9F1CNFH-s$?N3(?|OyNnh|q)PG>d1iqA|Th0FjzW{eX91#tA<8$c$@puu_mlFI@xHEXX(ia7$Mw9tGATXpZ z+ME|WFKpWCmOk1qN&1EmC$bbFd_0KhiwXV^+$lU>>C1SeuSZ}=RkXQZ@Vu~Tt6Tb% z{Q^*?WD;@u5>>u2fv-iST-{5xz9{7Uc)W=DU9Y{WcW#w$)FC6~iCG63O;Na=eI9wl(o!;ii7!d|8b)h<8SvX2GE$!T zyH4ML*xP`|iX9UU1BhdRpLfVedD`KFUQJzaPiIFDFtxPIXG36UEWT-TO7Og}X{%fM zXul-s8%CUAVD}4rDN8po#{|Csw_80Xmd2LpBEBT)D0rCrv7pe3Meiz)67w#=j zEFCKK6JL__gi&coEZ+6#RC$$An+U zBbG*y`iU<|`hu@w{{#F!hm2ExMDU%uiJ?jAC9WjtYe1an7qI@p<3&ujA^0h{M}=R< zBbG*y`iU<|`cjB92!4-4#wkB6_)gu#&?NN|SCaH)5GQgGLil(PIWfUc3OAz=LzC32 za5V#OsiEh!T3`RARlY6<7R9C90I-K4)9)gup;<0tf?t5U3)oH~mJXG65?_+^jUtY5 zG5S9|UPS#V!S90GO+T?TiqubhNmG2tr(y8>9Wqj0rC;z1aJ%XE0ZU^`{lu3feNn_Q zE5d0CiN4{9)i(Y|#5sw!UTg`DHAnl<(NzzyM zdabVwm<5Ln<)z#tum>R*x?G0Zs4^r2xemw}E^^ui+Snub$yAkZfPTE)s12B!Bhxh^ zFl0Q|Lrd_yu%p1$Byl4icF=~Hz27Z@6wZ|3W;;CW%wR=4^< z`z1-Ag*efxF#pBlMNFR|`0a3e*+2|py4gWJlBBQhSD62U-{+8V%8v;Cm~c~$7@B0h z5?7M+u??}k_`f7WZD|=219lr^qAqe8oB7ls_-@CEl*6he4-vn($|hSW8e=t zWTZSX3xXfK+T8|XX>6Ha#Fr#}eTb6+UIQL4qW&(y@AJ@4ER7=d6JL__@$Mh*`3*T_ zC{MZJQpAp5qh5a*>r)T8l9*4+`625@44sX~5d7hGjNkAF@$SIG^>;?_-EbJz51UA| zQKq-CgKqagIS)xQR$$&F}JQt)K@-Q+Eg@?9q|WIWn3 zD0n(=r3~FHv+7cy%tw~DBpu%^)&C0p}dr19b|p8_94eM$MzMxM#i?a%aA;5oxB$P-#+B} zAZJ{M^WS~Q#UM8bnI0E8op#obVZpcHj==_JK5BVly44TraU;q`fTzg|I|W=VCCe!& z;u1s4&^?Jbec-n{WXRK`>c8N3Am4`J58>@bECbDvcCcLBNY#IV<%P{M(-aHXYBXubI)R~O`DR`X3Z54>ZFS36+Am4^`Vgn?2K4_987a^7MIoap z3Aa~UpbRnH?4TY=(l>}W{or>wWTZUp7!v$ZxTmv&m~M7Zk0j|UAWozMA$&ZDm@&a0 zfV)ljb+i#+X_Dofagn7QHLeppCnjyvR!KZ%uU1sT(O%=Xn8)9Ub+f?LJpE>Rf{@V^ zf!nE@yb!Rol+<5vU~3u1VIDBONrBIBl9cNJc0XjgT;yzNyB!P(e&{BoOZc@M)2wNV zoi4JJqa8tDX>wxHHqDiIv{#b!twWp+U>X8f%F@kz?-Bfdx>FLxjzKIPD)kdzlJs#; zi~Co@4jIZzxnW?}El2xzk<-|;GYT0^2Hb9U5{RXxq@BcXZVIBg0heJlnv)vC0 zek6@@ryuEaqk@MW1%V;ssrnC0Oedte3Tjw?|fc)W<%EEAHnhx#N*Uq9kxfZrzc zNm;sS&pN@+@25S)cC&~2BuU>e;skHT810ae^0X%c8BIyJ_a}dd?Pd@4Ns_)v#OVjW z%ONA>Y0r@0kHNh^_7L069_o`MeRcnZeS%xC|AWViXpbTI9dPfDJ;Zjihx#N*Ukq{b z;IDJYNO{^bD*0XeXAiO6?4dqM($|hSN#IBDcoFSs7yQ2cw1?Pk_E4WB>FYzBG4O{R zGE$!Q6a+tnw!S~*MQk^Fs85pg4Ixek@C`g(M9dz+-SF zryaqsRboZq_8J2ikC<+DP>-Z3zTcz&18$qpBW3BP9qR;tXdia?fazuj^+=MwDB}2U z#r~f|M#|HU5M(sP;GQl&i0Nhr^+=Mw9>iIPF{a%iLwPCJ2Du@~^ts4sY}z{__>*u? zXD>0`?4=$_(l>}WG1yx-&A3R+Ho^BAN11j_a{Od|xDi7K15Jb;?Z77(l?4Y z!P_wYIb@_f^ECn)O$OZ4)C2H495Pa#b_@#s2;9@zK}L>X9UUDa087KjV;*^0Xr__+xNSX9qFe?4TY= z(#JV8=ga=vWvDGJLwbPS2AQafoW`cT9fIEnw^!R>9AdiJOFfdLk9Pxj4`9e4LwPAT z25f%@{hy1R#^yK~f{dmCxD7nh*-Y6%54$@Amd50p`O+hJ`_e(%8HXg>xnE$ASFs%P z`#+!@!5?wRP)-xm8(dw9)d2UtY++ntyV*m1lB6$+I6c5m34KzQZesQeejaYGy?M$L z)2+Txk0j|!B2Mt@=>HrtPWcFAG&Kk}!-%0tmIrYqNgwM7>qE*RLwPCJ1?)k{^ti}r zZ06Ij;9GD{S4WBImQU0pN&51LV{~KxGb=-FX&JH(aw*6(xX5X2>h2Q!KDtv9#g-(N z4wd;zd`Z%0Ax;e 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

y7G_IUC57@~sb0@^ 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 r}7?P?nL1kV0;eM}o~gb5L&0#{BA;2`P-) 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

?(G8maFKgM z_xJ4h3~GN6{=2(J(BJ;M**5lX5p{->i{HWAo!f0;|Hr_>ecR*Sf&Fdf4w7N8-$cZ8 zWmV$q=k#NLBe#aAm?@B$R4_JZ>hMP`U9VPTCpXb=1;BV5y`iZIj}BbHTD@;3bv^~^U9q&OdL$C zaV;ImZyzV^FkOC)9h|X<$J7B>yL0N-eB#b2zR(9Flz#}>uf?n^t>DNew>!@yfY27e z_k=rn*a9i;8pm^M0tMDJXPaZj)g_7=T#agD|71EtybS;~fMpu7z0IFSFFGe8w=&hb zNU9KnZ~^wVJufo=jfC$5JER9DvkRq+USY# zAA1jCN%%|xwZLIo?XLm(dg5;thQ`vlH9VP{?`3ad+!&&1P)T`^Q<4JGJWr8YX4t=7 z_zCt>X&&qLf^)%pOur&=mMLK=`ipWY>KftphlV@n`1mho7UJ&Dk zNG~t2+Bto#pl$JB?nI7UOsW(nC4+@vYNarhI8@{GbDA;L8ZU%8m&el!ov{#Bx5#(M zC;Za4;Ft5mA7Z1ff*+mw~{O_F- zurhTgsgYGvXWd@&;<_8oitI^6diKMst&a3K=SPaRMZUH}NE!)jms2{?`@f1M$kJhv z1Rg>9c`iM4cHJ~c2TOo7V?~S8*xyLV3SiTpNBrRv zI*kxfBc&sA^I&&IE7&O^f`vbIU(4Z->x$BpTlJ-Xghu7z&auybHtxK@U>MvHO)@vX z$lg3)Zor+6Y|7Wo%|F4NJIUnX&i|Of_+R19``Gum1APJI7=-Dl(VdG$r*Zqg#ht$) zNpOq&fcE6$&J9Sh+&3@rCbi8pSGaTE!ux-8!V@3iIn#G*wJUe}S1@Q@`u~bSAQMP) zC3qx?DAJe1pp(Ftff)4U4FfS~+y54W3entp6zE_KI<)Pk7mKGnED<96fc+S5#xujP z&ug@Ih2@s@zLDJg!MaPE-S~lFv0DN!FR|hW1~2_m{D6OHS^Plh(n~_WmELu)39Kt3bSHLo|?DaDgX;duq&ZUz@A8Aw-H!kLj4tH?BA?C^^M*&MdaqsjEoE z3MSOG)hQgmHxmvx^L|^sg9@#?-Zt$hv6A26Ch&4>c064eyH!8U`Z+>BSL$bS`~XS~ z`L{{-vPe-<&|djd?|^FY1H)rqNY=T^;V+V*H85Gh2r@Zr)-(+Jf_hd!bwfYhm^B1o?2Qo< zySRiS>%)l!1e94&#&tATY(f@PMG}L#)F@c&?uNi_96Wz(PC1Yio{;)%Uoc)X2<|A4+s_~ zmjduI>D0UG4@a>AYNlBz04KH%iOZxxG}=TBQu?hAteY5Xz5T#iHklP}cQ`@hqumO4 z+o1PV7#G5pc4tO?rA%7F)+03^o*KziVPuTxHgy7{4yTln z1NW%sYK*vf&%6>HX8AJVyyVt>6-{WiW}JNt*GTdn(==Dfa~;L1hCWo;lVEe)^C!i1 z^)5i7hwrX+`vayUR~H{=N*TY)x?KyV3U*HnfKdI`6qzQ18Ar^Rj@MhW%qf~Z&gFCh zjcRNptK-$(Sa7W8X4V?MDoRHvW!A7>)9A`ws=voMRh{NkKonQQ9^sAWL|l9~_w$PR zcINvkX%{6aZ0oEKD5;u?i!!6mvkZ_f;I6$+EsJmJH-

N4@78@oY-#6o58-eqx(h2PmVvUkt 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 z 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 literal 0 HcmV?d00001 diff --git a/Disco.Web/_bin_deployableAssemblies/amd64/sqlcese40.dll b/Disco.Web/_bin_deployableAssemblies/amd64/sqlcese40.dll new file mode 100644 index 0000000000000000000000000000000000000000..af2de5ec908ecff44965194fd70e4b782bcf69cf GIT binary patch literal 561888 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
*26q1BahRIMlD<&~hDz_cU|(Q45DPZ5;OBz+vo0 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
`abot#2_g5 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

iD@8tL6 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

4)%uf4r}KLLvD>@q&X9kz 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 z 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

G9xBJ(C=qmwiMTKTO0<5t0h%!YZo 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 z�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 literal 0 HcmV?d00001 diff --git a/Disco.Web/_bin_deployableAssemblies/x86/sqlceer40EN.dll b/Disco.Web/_bin_deployableAssemblies/x86/sqlceer40EN.dll new file mode 100644 index 0000000000000000000000000000000000000000..a40154fd37cd155c6a242050c9f299de25ca1424 GIT binary patch literal 154336 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 &PV0IlZbl3hk~0r#!>|&5}bC6dE21 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�g=9orKnsa;1j90E(Y{TLTTuui zOEjLqx|oT=-e8GHl%I)OC{om-odrLA!_*Sy$7EN*V0wr^i-ni2CG2b_(WTtfpNmDp zye)}dzw#(Pj9|g6fq`Shc()m2v(_ocXm;?cko~vr5HZqAk1;P(0%_g3p z-e`A1yyLA0VHnh_ZEm*h_`6x*qWHVnxS8PHoN$J7Avqs?7@RkdB^NA_!Wb_ZxHgS8 zz5+b#F@(Mg0xX*}yu|m&}PDDb~JzAJiik^ln6IB(A2J zY=MuFZ4+BRdL%}hw7HJvxEYDal!)FId5}QrjA^yN?#N-KEr71*Hzo-;G8Zh9Cas59 zccgQ`X@w!eg@)Bw7!==w!ls{*jgv^<23`V0ZqV59RQc=IkQB2pM+W%n74ED=kPGa0c&}ys^ zV-W?jsY0waySMTisp&N!xpv4suDgkc&$*th!pYit2oH=zZdD_Jj#Zzej-8Ka)hN!x zVapiX+MT%VEfh%Ii8n4l2gV%~H%fn>Gn{T7`?5vkq9XTYg+HpNMNbH8X#rPb-CNNl zg&&S5x>nLW^9+7ln708j*p#gNJ<8BC_;>WfS7E?}b^FpBnd$3M+ot2#1X+&s3u_1L z9o@_abZ2rsqeNkJ`$gSpLkIMMmdSY$8Eet*I-3i1pRS=lo5heIgFbC#MSbBmQ6~>z zT82dzw0g#xZuKx4PB)5%q#*??bb{%4qh*Krov9lXz99l6RW5 zKcn4aVSvTM7N4)3U!CQ^0oDK0fDXwO$N3ni`LUPPc6}LNxc)C}*V!G@D|O8605MYd zI`N9_J0@F(p1R=uB6U4ToqcyKBTQO*%H1(-`bwh+iwxJANGY27P&!2)Bh&}%Qj|_k zQZK9<=SOQ7*0FrIN#rV^t%7t&OrG@d1rw+%m>~2TH_%mVkx&_-!(oHi z$8PRbom)d#AJJ~&(mRbKvCf^DxLkwbA$Th=u+FXf&N5gs6RC{FBF!dTd9M6AN4Ut;;~(pCO?G@c0my48$uZ8*bBJ5|dJ3cW?9t#h!bs3ENo$AJ=Itag!Tv`qGq$tAu(Ot5eX!wK~4` zpTc}xr7Pjlpev(>@0(iWAD9om3(`a#s{xmR_>L@qAa4_RAvh z&RDb(>*weU*gCW*TfIQ3qP${3Pgk~oh6EVO_6HiGvQxI*j3qseOC@9~TU1zOexJ9} z)qg{!yC0{s`WII&?qAOCAJX=mNu|*Jb(P>tUeI5h$)vuTBh(64a%P+^8{z>Lp7@&4 zFy}a2{$I$0ynZP*1F+{mh3}Nw0;1YtPhu*yR2bn++I#3!ILk54E5W&52+dcbZsTy5 zu2m%%(EgkoJc0m-556#xA+SABbJ@h6`htJmKqNmllVwGImZ5 z-=rUfL!|mqxa5agU>o?fHf)@zIpWZ*$g`QEByLUQmuo()0vrfO&T)ru#BH-9lm+li zbCY(2Bx_rYv~x6v?^~9$tDW&F?~^OTcMgv9-x8n7?!P%c}v#@he z7e9AxRkB);5ohPM$q!?h^Y+ebk{|5MPJSS+6@+i#pXG6_D)NRT#fP-%-(_Ri0E!>;n)V%g$E&~Xbi^mTudgk1y&fop506|GXuDp>c9tLm|PFpq~G8vH*W$EH8_GQ8r&jrFi)hjGBCt_~+oi}XWwINOim z93RF))ozKG-x$e~?lY(Ez>UTHtMN_;G~k=Xy=vTqa)qAb*AB#r~eL z_vd*QM3MgK1v=`J>K9marLW=rvC?0Bbd9zGJ2&yEYa)xW_4kA`TUj?P_WO#H_r|BL zioBl}3@XhfDlVskC4|fAY6B{6sjDqet5+zsg^?TMTZ$dYYgV$O;@ZUK70Jc%sjD&B z!6kOJy~>x^tkik;RD6{+(wE?|OdP&3k5}S4iv5LQw4JRJ-fZbMsUa|94*UI`_(iRC zmL+g>_f=ez*4Cl?n2<`eP%Fa009>)6HetTuh3;!iBpB4#(y~U0cB}r7675Pg6{=?{ ze(f1P4kT8mV8PO4BG?^jOs(nFL-!$6iT0I8yL)b%$yJDs-Ur4$o$*O9mPd=j3sS*8 zHP}}X?0)oRHP~Gq?2CLzZ!JISHM^!~5Qn=k7Imbsq_XA_jv;6`uIuw0Is9=Sy1Q17jlI&54lW;UQ3eMXI=BsgTSD4x2$IqmKjuef+Tk`M zsbQqHr7`taJQJp;_-A|*xlRZiWsng7Ae0bq5ZXK%jBO>`Vq`R|i+zc-IB1cp6X=SjZ(ChuF>aO?`n;nrHrFyg4*dbI!wo=_8 zwMO((E)6`f8FS;0svqXr0%-Q_RqKa>)A(jN6ymo%(}_*EHt3fdaz;X2Uew?Cf=T?- z`o5?~y&KtE({Th8M?2{(!G#D#oZp7sf{x9PMMBMQS*C8|0bg|}fO5sU-O$bWiq4PN@p;S4 zkZX%^Y?o`{g+_q5@gM6ck+naVqo@Ub+%?Iw-kN8#gR~4--XklQ{`=L&%j|O8TtVSe7uc`hN(vE zN8lbsSZki)zh)TJ0Z!0S7hIq&z#Ufz>-#J}Vt>o{i2Z$6p{#I_*ZSeqKl@?p=HpUE zd>AmT->4?OTWfRmRDd0yT;T9;erF)(ICsbUxfAC}+~ZW7i`4x1<`NVDuCTbE)R%bG ztD(B$#{;PbcjRYSf92#+%mjI@0ClBV4#NEA`g-%B7*da0`^tlXp4(@R*u24jJNV`& z82-$#{e=J&4|ND9T@`0~Zn2k)JcKo=jMN55CD(A;^!!%Fnh3@x?R2(Q_=`S>>8l$n*x8xk)l9$cvTfHW7M6X%9X9c>$?d%TLj&j=_dPm8b)lqIm$lM);xoOe9 zxb6SDqb!m-%0hG!x7 zZ3%erKL@n=;z0{`UgVui*QE9)IdzaZF9Q2iF()HYoSFQ$5%q!vAFmXhSG* zk%GQY(-V6-xQa69(z?_B&B)CHE~USu+!N4l!dv{o0*7*sKY0hoVh&$Rd1|;w#ksC~ zN>m*1x~B~P0|&<_qFyO3uNKfTS*cNd=M(_*L)s^oqS$W2heli#*S+pHz4!?8~g)$0=9p^dYyS^Jk7UJM#tfY@zpUjv2IMOAgRti}>g z8TMJj4G6D?E|{gta1mXE{x3)9SCVcJh`TQlp0}JY( z@zVb>@bupudw21Z)zVPlMuG8k_IEv^HR8J`@2F!ZN)yuo9J12?rJC0?jymzeRI8rU zBW~?8`20c7IA*6Io=n#o|2oToHI5rp4|f0P0}EmXm-ZpS5%G1xQX~V`A6(jpw&SJ` zXu^wOZocDxLBWPJ`aX`GWd^Q|UOlxrBDJ1@jVR#l4Zfi|=k^Bws3V4S57p(4-^1RV zkt#Bzezu5t^b8a+nEC7i|If$A7lY0WBHEw-BhTTt08)R|_MDq0SENN|9!9t0-c4|~-u?A0aws2A(7-+zXmhGBf4eF1(0v?z@8d|{m9*k{n4u}1k}rrkNwJRO^dnMgHZ>cj+kp}AF{W%J%fLVUWNvpvAN$syG!w zeBnW3+u4srZX7QBJj)eIZ96U?6YoP}xs9huYN)#xtJ}yC>%Gc>6XPRQVs2+JvYuu$ z;!9(bacJ9ovalQRQYxdhB2Qw|{C}}p_~99u@iQ|wNSV3ozcQJ@>`%|k_4xi+9Cu0& z*<2YaM9bYe(Te1x?-@UX0#T2siSzgsGrj}NsnT##O=$2^aNE|EYK+a0Uo12nP}&YD zZ6iwC*ihRmn64F7yyY2KkI870cslB!9ECoGN;#>%r(O9hbYvOAdGhNd>|P~$OkBMm zKrLhR#q}BLsPy^s_vUlY<50y>&%phdqNpz)`S)ymS*H!(ENnW)CO-XaJGiC%+VHK! z#BOo$uzoAFn3o=GdJ#-_{{oq;*J@YvPkhKTg$JFtXDrLlHI_(rOI1fg`R;y2qP)#cBW5z z@2Ako+_l-C2)@EmVLvZ^{@BYrq{E^KGuL^DeP}&)XpUE1nWg3pt-lHxMsni8gT?rc z7IAw%_b76ySDvW3Poj!=1$zEG{>KE*z?YfiG3`p&drEL*oV_o-(iS|O2>ue)_cLtG z!6fgTzk%QK4!rfv1a2A$#w^u`MTHm)^0Cq2z*d4{gJ2CdVwu=c(riFnOXtWJQr|Ns z=KB!@IIO#&98Y#ELK!!wx?Nfk^pE&31?^RB7^!&C{KTmr<$p*Un3pXIqVF%zp_SlR zdGJ^d%;7`GHMrS)wQoG9msMZAD3mb-p=~^RPK_K+i8cU6^4*48RG3UG(lp?^L9D!p zPz0qyMIrzbs}VJL028~mk@B`f;cIZKK-;k%d_j0fbsxyw&s|#)Iriv(ff-)8+Gh@A zp*|03WBJsG3DH%t0nKH(r?5A;^(SYM^~?~$;VnK9FwWwA ze~`gK^>StAf@k7ZRoK zO5iH(Lp2d6#L7T0lIYcd?W5e3wiYo1*d`&E1ZOxIi@mhv zc}gp7X=_{Ba$8?$>kIgjV6}>tT3S)DV!LVZ-dL%|N}cEX+vl9gBw+u~{r6MJoPGA$ zXP^DD_ImlPwSqzOjS_+)jZ4P%w^d^|K6hrQ^(5@Z(`Qaxg)P?IfkVy}!RWx`+{@5F zIQJ5OFM)JWj-~NQb#Ksk1i#EoV!!yV$IkJ-vh9D-E9Wk|fj>@owuW@v%wLjkiL2`HH63o~|Sr7j4pJ`V<3HM6E>ayvQ@)GB|Cb?f_ z)luP|d$`@$ay&cR3f3n;c@8*sY9)$D(9b}9tlYRl(LYpjESh6mvH;t;)wcYAzSS>T zY32qji>>IH7dLX4#M$kEfD>8^{korn412ksInX1&-Ixflk|*<*dQ*`qIRA(`S! z?I*y@SQRLP_?eo2A(GLvGX+FM8tLHk}SfJhQ6VFc4;`k=m9 zKJ5{zjAUtPvdK#{Wm8JIs!pYAenba(9%@9(s5rmSniBU(#D#yLElSz@=u=*GSB7`% zPF|OJKnok+X}#<&9XytA^;V0=bt3ZN89G0}XJ+TxE7PZsE(;!|OfDUx>q%cdx=c6( zzpU%_VmI!SeS2}v9hBX+tmMeDyJa6bO7YaA7f&BqtcZ`v)#ViWofwvP55v)l**$yA z=!rq!@Yb}KDi;P?XTUjCPF{}EB9IPjBNJQH5giOV5hSdg8C+lksp4(3t1eykGH#yc zkNGr3*hMrhIid}6GBb3HS^PsK=L?L8`s?1yNtBSwb^8yV?>*@2c5dS}QumCgtBhSi zGe%XjfrV{m&6ZBq5|(jP%{eiWb8>4Y*N`cY1EI|RtAS0e(Kx2oXzY_~rtojNwzOq6 z?bN%8L;9?#E<5cYK1CPq$s8k(rF1$J&xU)Xf z7|Fqesk?3){e{t!M+8&18;SAtiLNCo!`JPPL%mBBMJm#}EN(YQ%yS@|8)?C1vm497%+$G5Lb+Vh!F|F1R`Nfb|=kVia(z?J_ z!*-eT$$s}z#{`xYh$6V*>Z-@v{${CPDs&HfOiTDAp2`%W%q3*Gt2xXXUEoewMp1da zNWu(cNVRNgkpC>L{NKM;*WzSO`6P*cehbXDO zvT8@$e@jU?2Osn~cOLc^eFu+g(WfqTwSzt~%&s!!mCUZPYp6Mr(u%KAkCn`QHvHK! zO=h8DyDY>PS*d3xng$LbsUM5je9*VrOoNdwo^{{%c{0GdIe$|Bh(-5p6vuOxZZ|5DJvk z>FGzb551xv*rL^a+7H08NO*>?seM&WZblRe)(BxUWM#p#i&I2(t}9N}m89xQQ*~v@ zy7FY*`Kh|8sk-UIi?pgHx=fyzh0c{hkk~%OWOHRni1U`E0>tPM)JS=dBJ6!_%pBcc zZuRt<>%KOuWxDeKa{D1?;;KbQzK+f4f>V9WO zRV)9HY9pLSr@BKx5agN)atxN)yn|E8JD94OnXIW!)s&=aN|QB3shZ;cnk)F694srj zOMBsjp6xHZf{q*9Ds!UM`mU<%nn32(nQs22clTU(>h|lZ{SHeR!;NoC0hi-e0iOiGC^d z33g+YpP?^Rr*1`j0gX}{%wH%VG@J4=UI|r`CE40TvgAV_($Fa27ZH>WS1t@CW;h)I zi{=C&S%xpeJluC4&t$5KZd){}cqPTiwS9qt{8QnS3I21)axs>>J}upQ`gRnwp^!;sK;)PUTnE%&B;qInxUX zeM<~n2Ru}r&6?_44qO}Fd}l#$?bX-9GTmC-2Hb%V7tR= z2YT54MIZ{AJASW(de<{U1USs(uZ?ALgc&AA3v1eTK9Qwyru;)}u54mmnK=T_>@+X( zp^QS*e&s7Ry#l+4luVf$E0mZiJIewQBEXoB@|<`fq>KhNfte$FzVSj zOA~P*vrv~{`WN;qa!@W!F5U&#{$J3MclRthW&6Spwu6cu(WKuP64ct+pl5QLbpC*T zFbkUTfiz8K$%i*5CS?Nq;VH%OilV(FFown3;9|!}oGXTv1#yOMx`Ee2+uRD~A$PFc zCGo0;XIR6iVD5gyw5qAgwp&8GAMI?9<|jVlwO*q0IkYXOmZf~ua~t0`qVeIDC)%OU z*S~oEP<@Km;As>QSxBx;5gNA9&9kk&p39`UlTF08r`Ae?R zlum=eb!tkariIE#_x8Go}6?KX=5*^s48#RFnjC0U}sV*(J z6!{qS%o$d-ppbcP#NIt1KI++4?0j>>Ce)i9P0q?7+8}QQLYjeZH8dn+hZKbceOz9H zrtlEDhI)4u0=hv*VdDr{P#4$sg1!18*jqO0N1RnOnfSSr82T5lfB7CZHbh4{qLCm+ z=b(E+Ig0OGjEG$CvSGRTak0JTJG=3-u^@gz{kR17Y>$?t)~>%XJLqNK1EgUFTcQ9 z5Op|zc0h6qb~&e{iYo|8dkRruoah)GUi=7*sYxvjRn3hqdm*PMTlm`gmH_;cnakVZ z{D8U_Ylw=>nGi9nh^sB8*I5MCNiJ89zRro2h$~eXh7w)5r(ZUR#{zdFy;=1eF`}%7 zNQxi^fvP7lm&pewn7W0?4#ivpGkE`RIzw+M*4n=%y1b-8o2htP)yu6Dh@bdVmVbl! zz3NzU{HN==&4V1ikEu}X?{BOQ<2sa1>5l0{${FX>)zzoM=3A;z`O(CGIdi8jQeRBv z*D+__GIe3IFG$-x6m?H(8g|1ST8vwah=+m199MH`=k5y(Q~i=Ub2`n6QRbwW_l`eM zBz#O9YuC{M>7T)HNLhJF4{V&(SAR{@TI+8)@A$pzS9Z%a36w#oCNzSD4mkM30Ophs zhx3Gux4K^^gn3;z|Gx_yw! zhqQ^U83d;&L=PSqBssSpV9Dn~xa^ozOI-o{eA-J&?uc?2H3czW4?Ij?Xg3wx!*Hcy zds!0F;-zBykknkIYkzD%l^7xbO|^`btk?sCcFf4Lz6YH*+TPd@i&{9sp@avjIG=~~ z5$SpL<}Ps@U_`3+gnLh*T<3U2?fI?CIkUrSHfVqu9o7kl_EoG9$%^6L0m`lJKB%KT zVS~NE+jZT%o5=sWuwm`Q9>G)T_;zBv)8{ApW6!Vw@|;kz$rNPU`HtGhN=*V$_{3ih zoQLa-S|kj;eJPnf^?;3TDrm~`;mR))C98Fkow_FT4Mkj3g#`oioG%IB*|iEKdSgjn zES%@0g!N3t2h;H|n#4n73Prdlv?|~vIZ35AXxbaIU`S=jTLUv4V5LoE(Bc@uWe&;P-h+t{r?4gnXz!)DE{gXL_ncL?{0 zKbSG^f(v5BG@>#k`E@V@`_ky0C49V&j$j`N#%y3F|NIDzRmeqKls!}2GREi2zp-Zs zWXLNbUZ8czT}AJcu_2c~;%?V=_}fFnyjRXE+@EYLdq6QAO{U5=n>f3(eTXQHFYtbm zzs?dCOl3iM%?=ePispd_`GwH}a|y+0%GfOo&yaJK;)@l;`OTp-*kt~JN426y;^?g> z9rVlXBz8Yc6UzOxcHXtbC4})!#`p6qHUtzm$A$=sX(1>YnEh-s@B1@}eX2dQ+P$Wc-FCFipzQRhfx9}Q z`Or-$Cbp~93}?>CeEgfxOkcvS%h7dxZ-5@N^<@{cnCJsZo`i?VEI+{)al5i2ZvV0Y z8mV)hs~Wn^1|Yj42|U_?U=$Ezn=RaRQxd{b8?C9U+PUl%?diGE9e){9(2w5_frG_0 zDZAHBbJ^YOSn8LKqq?9S*d}81#o8wLl03Y)P;QOZ>}f1TeC+xMRH@+M@euCfz|lL~ zBl$Lq+w1EnRhocdp-M`%vaZF&;C!V1pt?*H8T?e8x#e8>`qH^mb1$ZQ^*+i>WtPu0 zoBs+0>@Sq&Cs(6wzRvBeQg4+i9id%*m4K?*DmRR-QUi#0jPkt&T8Sq1I0sG+GvQ97 z81g3f{9~Bx`FDV+OJHUN_&e2}e-WL3k;>+Xucob&8Ui0UbGOc9S&z>l=Cb&qXU)%X zvGm7rJs)75k%P0U7Dkutn}&-d$XVdH5%W`CV_8^)jqHFj4=lO_z>=nHgP+Q2@Q;3j zi`)j?Z}BggA8>KJKD z=vdI4_+cGGGfZXat- z)Hh(WyD-;%Sll=?3MCN7Ah@z*zN+NIA;uys%06<;&&F4F+V-5mk~WagiXfKGk^Ta8 zD-cL&sEhb7nyJ4588Fm!Ssu*qa(tT;NW3EiUinEd*rcw8=ZbL7P21iCv%~4Y(PQr6 zL~?l*B`;6UyU`~51D7|=*K?o1K;Z;qe)$&`47m{w^*j~s{uPxo7dM%g5L(>F6{Mzf zRa;)`LjS?N3|jpX;`Hz!TXe#bC_8ukES*NVQKVa!H5tO?yV~{7V6;>~o}sHV7t>p! zzXa60Fyli)vE%7Fp~+kze_|ES%*DZd*1iuvJ@R-8h_lb0uY*B^JUKk%>5cdvhNfp`Bj+mu@R(xqMz*bFT6%uRUkeHzbDjq%>%wG%kzt{e6UDqnh@vdby7!II zWR0C*-6Q=(oa)F%wvGm*4S_g<)WMdLj9{jVZKb>&-!aXS=4_@zSzm6hO{+G~rXF3v z{$tuld$Zf!0IWMRW7mmX9#=$^J89PVtK&Z_Zn@84KH2Oi@edLHinJwN>3PxpEs?%AZ$ zi>-mj_0rJv!@R}_zHog}GY%y;?hrGSV-=KD;q zY|HzccA|jij^EP~E%b@$GpU^&!-!ocxnuYNO?YFNd&+3GUB&%-{bEDqgGC+^o0dU2 zQcm`Ur*+&J(+>Q}yI*;0G%;AegsGIDy*9+_0&3WeDoNUT?m!oRI@>1^%-uRqFxO(d zK4)7~YMQbxQ_vc&OI**IskTX8>IY^zmlC}Kjhy(8pgD_A8#sZod5V2UAci@iH~vlHs1n1ZbT-%9*(}Xg0qF4anh4x(-$^sZPhX%Uy0BPmuD9he%I) zI;SCfiq(JKPUmmHGK=%k&dp8T@Gy?saK~1i&qqt~0C8|%Hk?$fCMcs%!$mJuT^>xF z0aY#pzHb4s^_gWDr~>B4m~Qo|?TIlz&sR<^&t5Rfsy6*YtZKtvJx&3`!PmPC3i=|P zdn}W(k8iD)ow<9Tt4He}R$3JkPJ8)DoB`$od`aMr*H%wX2EuUgfn^7d#hQgp zOcTfI3utA_WHBy)mDC$=bN<5b?0s=&D72~adS@YaYfi4j^F zSld`Gh4I=&zy)zzOE!lql93W17omz|l)s6<&*kRvQbls2S9*dib)7#h`9tEwOLh=+ zbwP0c{LHeYxMH-71NJp=#wE`uE~toyTZ5PUp>-BjF3YVFq>6P5s3&X9VY8XoL<7yL zJ&D>UQ2T7BvCJ-`l>;a8j<*JOI89{(Z&ucqB?_=(JJqFCI}&d}Rvo_jm8y4_jd5P} z>Q8j)%c@>%4OIOeN9SwH+^Pe^(>pu{($2@&SkBUw$`p1;I{B@60H>Xf(u#%UtzQ@( zelNP&r@t=~+t9!b6^qJSuR)*gsp!4ipWt=_A4IF3&V3MiH3$wZ_k`deCq0aH2ju+F z1^f1M*lAcrQD;>tiuO&;@=|)!bDQY=>Dv7bnOm1yg+HfI%dre!{d_U3OOm2tu|p%& z?en`zOL20&p%m5M7gu6j{N#eh&Q;}ktsiwhKix^x4UmK+P*od9l!;D>Mx|pc-0xz! zb?HFFSzZV4{0BM%lH`ej)1~3a+~#&bQ#@WBXh>aAI^7rmXbYR6d%;E54;zxj+H>4! zcoA!yl`HK*eHdhL_bx`bk)fme-spMS))Fi-&Wh=buboL3i~8M{-F^KDA}dMR?S@;FLTFYSrApvH=Xj%j>G%PJkA4&xj!%xtfx2&y|{sas9C&2|2U|Ak(s5 z3-?haHna#eg>PtezrJYNc8=R<*B6U$wMsCw7qV^4B?y7)uhzRW=5pNpl4e8#uG-`NY`D z+FXmSc2J;&MIvVWLQqgA7Hj0AIa!h512aXfx zbQxc)tu>gLK{IR_DQV4Q@b?(9 z4Q^;v;QZ3mu;rcW#fn$eg~E5t*V0=+4sgCXAC};9sV8G4=OKSaQwxywb=`p?J(7p6 zsn`kS)8DFNTaU|-8}PAECGUA_U@Q_gd40AAGVx&I*|i+g@nR(ISkc-z2c9~9%{ooZ z9y5o(=xFW1k+m5$U^KGkT4*IlyK^9QLn#3RS}QBBElYg7;@a}oKt|CFpv;da21u74 z9n*n-=q+N)r7W4KqWq3y8=c>n4(+NTYswS10dZTt^ijcwMcj^ow%}8~u8VKp>l5qr zXG_Q>hxESFJVKZ z*XT^EPtT3a$K{vM8*n3;#7eUWPFeJ#E!_J!jk7|{{PbOusLK}mZ2FOj{KDm5>l+3J zALJJBVtR1O@PjEHtoWuqGq0^Uy>%wL!qQcs<3w$#H}Q8ox(c*6zH%fbFZ3vRo7r>+ z-&>=X@(iy^*P?3r6RIYz2Tq|~SX}Oz?7cpF&rqtOOrpiyM+t{P+rsO+o?M!PVwP}e zbso$)_QvWmRQ-pmE-$mmsK~CGms#o#zkV;tYZSI|<5UIbxx+G{uL*y|UB(DJio4~d5|)01== zv?cHOC1Oj(2cII{aZXC7z&^BZ&0bLP)X@Gz=FiZ?{906cW6 zCX}j)xB?e=JBz(51CW=j5g;!~B&C{}sha9!%@wJdy7cXHNG-TykuN)eDcDYT-f`}_ z!PQ2Oryt0O1h#4mf|Ka_Ahb+ilI-C;{6NcxJWw&}0q3pGj;VP~eYIEQC8lRk8_cwy z%Hk=)OS#yYz@2<^!Hb;Pb7zvKx0GM!^^=}u;37TPTCQiRbDuedYx~f9zvH0^JTu6T z^M+C#b&EzQX{0;)=y&tcwQr`geQRcNyyqcGdS6d~w{2yopoD)RaZKN8-OP7(wI~GO zlFX9K)m8{KEj*t^CtVq!ALvZw>EtJ4_mNA(_vA(H#wGUe*=UXeQ=MCrM{nAADY=Tg z-sB7}t*cgmS}=vc&!f1JQd#2fa9h-vM2)OQ?5i(~)`)T5fCF1HCcSV@Gsn&Ns^=`X z)vyxA=kY*1@g|}UMW*nJNO_ks?py`U&=lh%e zoV~zCS^HI~G}%b$HMu%Yat+U$GrzvUd=oEGR`61{UfN>w9ZwOeO7*IAyIbih*Yo#u z;+N&MPDsx#=GI5uO*oZXWTZGFFV&=uBJ)lrv?S`4`m)sQGCs|s%8u>oF9Fc@s`N&< z0%hk(Cx?a0ganm@@K!Dg;D9L{5iBDqHv^7vF&OjK<|R2@<_SLyPQ_{j%Lr=%gRoqt zzPbQ6BHj&RxWOX?25v}AcIF96J*D!xK|y=FJdm8+J}q5aVq1S7t&b(&Z69-H7pvQ)WL{cWl3ZBo z%r2q*{V+B-E}$=Zse3zDT!Gn5gsBEa4oxJOQq%GqSk(w=N|W>gJ^ zyQlIK@o>Mu7&2S|Eud{0T4PWRc==Ar{!Z*8EHV_qJ%a4@-~fu2ZOK z3;l3o$ds!eS1F<=dhwrV8HIbA)gTblZI*z9yRDI12oZFQ`^kSxn3CrGCWFOxNq!nD zwyyV?2`lpRDi?_l4d3+_5gwwN5-}=}bguQZJkb5ICU2L7G>e+b1^j;XSsj9C^t=Bt z{A?)6>La8nc?W>9hI{|aEu}96>wAlPmf9wN{G86xYDUb=qZ!Yda8Qh+C-z~d40nG^ z4U@5V`Wk)go80!A)yfgKBovKqo%m5}X<{}y;|IAo##AlGjpt@%Of+1NHRo}?Q0py6vJ_F2Oj3kN z3i2w}LuSAZzC`M;vuGXaB*jg;SMA z_L#ofsrd)~zz8-um*N;X&#u+!9CgRIIKVdt0;+=btYT4%I|&twJ{|5B@TX#7MYu9J!f)2p0YwTrE|jhf7R z?ko1Wkh#QtP9IwTsQ00wD%mH(cw*Z44s(8^Hj!baC-6obE_rB#%EYQGqFM{6gRpOt z!&ur&>!t#oixhkzfaG*#;_npZtkQ9|H%Gt)zwtB+e-C5oVgXzq+5H-den|#|wl$x{ z@QeZWiBM%numkY7u%wQ>mgj<1a&|758V7j=g?YG!VVP@9|qkVSy8~4UBA}ajvca0V|JM_l%2Ov%}bnD zd3#ao6dispG_2l=d~TByTJEDU8w+R+OW6h%%{E{sC(`I#h?C2Lp{l=yyT8r1H@K+} zQPu^Ot|m}fA84J&iKM@?J=zITy)tn1)u6Uq@M}QB0cjpYc08QreIF6YB_}Ic12*TdPvW0FCDV$|Q z0`4Y4P--#ReQS;3uMC_!qWf+nEaDjv{cL+teanCP{lAH~s{e3QJ1o%K&`eN8^ETNw3**L!E9T9JyC{pV4?PqVZ{ zQ$A$RPH6cFgJ6MGXNx+;hjajqHT|DgmK7ApISY08T)4H^Js6}JU+WGBS?`7CLN6I$ z=E|}v$^Zt`=gg*$DU1DI`Mu6nQ}a;|xLpVH8txH?UAd?z+%3QXJg1Z2 zXi*i6vt_x!wL{(Xm1C*EVUD?544KAUY!nkFo^deTE2sy`hE_uE!tQFS69*d`h8M!8 z92AzIp0h{hCsg|+Ri(9qv?j%qH@yN~_jOK($;szee`f{1e#|h~wqe`r-FBzicel-Q z$M8GOyy@`Eg2`KIwc&F}knzLjpZpcKdWQ~WHq50**@v(S83q>Eob1aLLZaIIJ+ZvNINHI=;SXodgy-S z4P7`pawzPGCrbD^Oa8viFtKH(y@RbgXnylq#tZA=E8(82#PeA!#aQzI#iHB_{*xu$ zmP(Xa-fTzbN>F*YRl?;f#N*dkFychN#9w%akIAlssw(&^MYozG_XgnQ25A*p(^qJU+TV}l1Qv(5Bjd8GP~FDd+*(G>%p?=D-RRUf1XXevDh zmpY6@wSe4uKHoq15t@eF!fc6q*<{|r@Cv)p{gj%Lv(mmS+H{}ip2T@-YqQcl7ZLXw zc<;}>r#;ZAFRbXK-RnCy$vWdfVTYQ`YWqZMb9Q}7K$&3YfYC`W*dscJzn7(fq|k-j zXcf`vrG9EjaGl!PZy|CiCiqzT~0U|d+=gj{=a;6yi0C!sC*^x^OW9tvxCaS|vh z$gr$FxDxu24HR|AF32Y5;XF!(X-&uPOSRvdYTjbLE5ul#;`!9Fj=QbDK+>t5o{IH4 zwbiNSt*O|$RP*Lk^ZHctCMUMZxuK^s)x5E4a^hI&v%=j^(stFtYX9;9Eo1ye_Oy2g)=Unf0hdH#qJ00<{qV3HMa$buJOv%u->UaGY)t!)!a!zF8;sL{-W*O_=tM z>b%y|Pz-5>t-qQkZG!20?IH{J2>qX4I8#`XViMsUwa&M+`(_8cU6i<&0X1I$sOi02 z-O}?X=RBWYa38O7Uy``ViQVf*lKstg$+r^5&F3G@%D1t*q1v8&yH!->C%n?_rwOc= z9AiK8IZA6vbE)+1sYM8ANYVZ;lwv{%m>ZBf6vc5qkS`@2m_dkZPZrk z?w(6QSN}|~rhT#R=b=`^n&7UiUJfc0Y!PlHW8ZIu(i0;`k6Nvp9sKTddAcbb z+lZ#_i<32ho3wsUrL?pC`}v6qsUVWf?|QRhvF6?0KCJnTB@qUp2PZ%|?)81_ci9{u zp@Al67LoAl@>_zZCfc+2Q&-(+7O%AZ$9JD%-n!(1Y_s2`SwUtAJ{xc@!`ZmL0lIiK zho^n3T?0P;g(>%z?Y4)q%l0nKi??hyGHvx)4YY7$dfOY+u+6nqIkAm>ouw>%rd9(0 ze&zc&@qGI_OZUP(U$yIULs$ETF$6v1Vj$Wd+vHl^)w-`WNn7|?Y?HeXrT`FF{p40Y zWz<4wu?wMykN!MLB_wrv-%R;Snodx@U|0aGxH#hSK>e$Em4n297tMr28 z)#;jQ2QL^v!<}%EE}Oo{sm&erb?&UB=H6%qm(!?*d|kaPAb&6CL-A0AdoD{AFo~aW z+B=)D2(2jAyLzoi5H|bq;;KtA(RzFS!13NW<;1(S^1iZNX4~%0iu}aQXb0@B>|ipy zc`5moofm0F-syD{vguXQjP%-_c_KzWa(^bBosA|9+hX6_KG7M^*utf9_C^>7&|U@J zJUMAQV6k3zq#ydDMq0X_oB+d?Ln@Z;q*k7S922B5*sn9CeMkU9xTW^NaL?6D1Llr= z$*b%Jl*rXp{o(EtDNeN?l#Q#cXa7J8R5l$ygv~93mfLw&xCwIsE5WjJ;okq^-PU<( zW>@<`1S$#l^$nyTnp^BlWZ~j4E3G#vn7s!c<^gP7!;41(pCyxt^%*oC?FYv!yTe%+ zJnGVZwlDS>xD-nPPl5t&97O^7ihLie z_vv3`H^umESz`5CipH$Vg7mempK_k9h<%;xy1vm&jSh^{o0nvugy!6}?#tT{laq)n z-F<5;^+E=)6g^}O-j@%D-(7FH)%7}J$1n*4=UCP2K#5hoj8u9}vD_pIqr2I(PI{9@ z1aD6T3~c$ys|Ac0l-b#Up?a0$2$m4YPgG|bj3Um7dR`DwzftkOc0Xrk82q05I zOQz~D)2EXWF|QL-C#!Smy5Rh=A(j-eIfWMIyU5mKrab0abb@UsppH%)(6@w*7HkbqY6pNc)s$cEvojW6{!0P8dD@}-b zx57OAx>IMC<*#Pd5psRSBG$FVy57yuNq2tn{S09r?yL{0rpS34_zU`k{yed%GO;O9 z?mApp3BY^!8t>uv?z0cS*vJGloy9io_nW^+HC)rnZnu&q=~m%2{4*Z5?z@h*VezA5 zcy&QPykX6z{O}QQ=2$i$kpFt1ixxnKAYgE6n$Qp8don573h# ztS=d{4l6jhoY;Cd1d($47uFD5IxLD+N2}J99zO;2RANA!?ShBA|eZPZDhV{V?_f%sLyr97FT! zgVz+~Z1i2)cs=|0*W(KJ^AoN{$U#`byYCz>{$Z{nkuQIlKXElgF>K;o(nmfckZ(^5M_a?pM^VgaTb8x$uRw&;QJ&5Yhj% zOR`Ap7+&Hp3Y&*43^WBz}R;XXdDeo2w(`H3AvYn{IM zD5Lf#J8I?g)ANe8`W8=jM=jj@Q{9+dBFE=RIxEeJi~L&>O}hHaB)^8a)nt}=w~id^ z>ufhF%m+WtF54Yj|HW9>jUMYWKm8$N{T*>I!(;uEhX41mz6Dd;|75JYZtfNnqDAYi zSC*2$SXVH>irif6exU~XN0t6Sce@)sDemgPk9a=(z`RmcD175iV`gaKLkk$T-1T|3 zZLz}qdP{c9(!_kpu1~hQZ4kqbw?eNOJ!%L4{fJTPwkz~=Kr`(-y(PNhY7JXAI~)V4 z#8BioR%caqeZqjd%yA`ly#MK-c?A9F19vF{R==dwy#6EmnMHP&djzw|63qAaa28pD zsd4l|$%rG&tf=eiFVYxZay*ODiYYymj~K>R7(Q+DF4~vpc58_GSAfmo`{CBwla=jB z-&Ol6eu5OrL)%hM zF~Y}zD0jEKFK+w=quc*vL^;|mv1IWHn)|SZRib2bw}p577vHJz{Er{H%Vr7esoD1X z+#%%5ahKx#8Z5qQN6`{c*E`MI5pOAmdpmUtFm9Gye$}>HVXC}#ss6zhz9r}6ahKzj zA3BK5H|H)#jN~wUEXSwKEBAZLk?=e5&eZA7I0TnbL)i0@WvQMvPtVJapuZ?LKXsHL zgm*Cib$d>>j4eMHiF71B0d@Kdr-SRlcdlD0afyW4Gpd@iV=b=6(_ZL)D!l%&t{a1S z{dsz#Kkp{CTe2>cst*hsBBX|y8|*LCJ*NK{^V)p43L;gzuj#K1a0>bni7j9gw5Pf7 z4WW^mmRI<=A#w9c(lSG zV#5({ABXUAL}3t_`G~^1k5==KN2{5_aom5Lka8X{cG?G-On>1PW=4qEtUT`D{%uCL z4~@PpfjTQsdjW;l-pd|Ckuo~u?&;rm(MN~naqot_lBA0>%;sVp$&6-B&=J@;QeCR#M@)p z=RAE_QobcnfYq z`N6Z|)S+G5!V7d#BJm2h1)T)x4SH(5o?2hoyxs*k`Sri8`mXeQh5LxO#Mho@WIXA& z7n}ZVPJ6Pee-5hR>f*5y$~hKZRvp-qaPQCf8YjM9a%6A4sr(+If-NU10p;t`vGw(4 z%(tm6a&CKBZhKi_o+tkRs95!Kz4dc|%^RLc!vRaEx9WHI`!bOG?e2UJ^w$=kq?n z&G`D17_q6pP}N#(WY%EEi8zq~=o{{o6+r(=l0dWNJG{!mdTia0>dHxM zMBPvub)%+Jbw_1SM5Kn)c>|C_7 z{nUK6GkCX}B4-9DzewBj7NA$;r#8}XT*L;+4o6V$9YLPvTR6Vrt)R|(le})z%Be~{GWp)fEQn3x{Bs&3slZw(rsqZ~%U6fHZ{-`S zEnMAw@0ISu|NSlh;m`hyho_HvIOIP3v+Tnw|HZ@aLKSk~{2cwI+llPM-Pwmj1U$Cg z4uSfz-TtNfFlc+X+h2AcuE;*T?q59I?mtY1n16a1V&=OIyt~Q&?v4MVfth{-Ps)!W z>*32<@iGWr!^7fOeoJ#B7mc+EmC6U!_0>mrjKTq9kcS-Fn@a3U5i~7fQVBxO9jtmb zagGlUBMN0XeD-lIkHYgRIp?=nY}RG`fDvULUwL7;dmq0V2+oJwS7t>hvqG!h>_(eZ z)fevFA<~8-G*Y=V8!sDe3DJ3oR004x?HBxKviGcH9&AGV^KT}ggYM3 zt%ym%Bh(eNFzPC5kwklBw2W>!S>5n=lg?PF5Y>{iW< zxYNkaf2UGm9pCFHA!iVT1BgtdF*ALup8VUDka178159`*rkp%-`8+W_Lxn=VdWWM%A>0etH3>3Q0f$DI`#Sz<5c|#=RqFdHBUF(33BbuV(>n!M1%e}OjjiY!( zqnF!86RqUu;`^NVmVzA>*PfBMsp8r*6C`YRnXJ!!gXQYtYr-2X2cs4H2EayFh`(39 zoog83OyWKT)!n=#)6mdlK7Nbq+_|kyoD2$gP)9a1t{|A(2sjnntk=djcg41pR|Ug& zJPCPpu%*ups=f&^!<;ZMOc$r)nvwuPA3#bnS1D484RQ68Pf#?xMWE73`V%1r3~px^ zrHJrelGk-+Ugp+_DZRXq1P-~rUYU4gng%!9e2 zd&0&MOr;jOa6IumRlOI6>ZdN^;{t)_1#Cj`V%E1 zUR@LE`eekQ?i4Z9kSV z5sG9E_KU4GI6GC6Z56|of6dTowy$B^*JIqiW^TN3uPj#lqr|&TO}X!BZ21|Y z=Ge3mN(_!GiS?VRTo_^CH16)mu@LZ71nS{N6+munUo!AzQoKO5}$q&-N%T@bob5i_uHUrwVqmJ?#7Sg1$9 zXCCx|F%J;y1(=;BK#A9Lx;0mAEBu7pvv{zkihzvqVB0+w5IrgotBvoXAVLZ?1Wj=M zfOAx;;=pU__wXBCc({G*-+{6T7V(g32vv9(JtlGBo&_XizI`cOx{7!vhgf@uVG~)} z>U9)1gL8!OxhiO0*?=c>=TuH%{tqoYjHB%`S69rt2mYOoWFUx#bLw0bq|O9?c$1iw z2P$2*#yZZ$zUHzufBg!FgzGq$r)Wgd^v()Wa+SqJK)M4Uy{r0})V3mx+`HkPlf=6r zc+syqh`j4#HtY%9ez+3%EJ(wI_Aq@ob>Mj4o9*{phAM9lVB(z3SL41cym{{Mx_-i* zuU`bqh87p#7_w`kcxl9XD8wN$jta|NH4B#w=7;peUgCKk%1@LFs$4cPPxQ?Ppa?eY zL#CgBb!f@}K#BZsL^3H(hE-B_xt9njMKsvFgrbXo#_|@jbrNdCMP#qJhO%7XyQm8h zYNpCu2S>D@^&{i_TTECN(D`t;#kOA?0JLsl=E=AlQ*Rh69`yN%V3S#Jn>dJYk5ypA zBGrU8Rffc_Z_^yR6#g_$s_e&Q+}h(5fH}pFb4TmS%Bupcx52m&tSAYnY?gKWItU6a z%T}0?nDjT7={QJh$IXiJ4E8>Yso(c69{-7bytTxOG_D+uH?lg!?Z+ZErQ;ir z@qw}t+??l5Hz{*lC^N0)jGJIpCFzuG@X+fddCaOTbT(K5-r!s(e_TPRcQOVRW5Yl+ z55f7s4%yT_!wF=bk>X2f5Y47*7^1=OgSAsCXGh>xg`f6Ff_ya=JDtVsDbf~9aj#0a z8n_yun_3J%xUh@}J$_o6<+K`p@TCTty^>}ZJJnO{gKp)Vig7Bc)>&??GP+5{GC*$l z5V>E`Q$r77V7BMRPhvgU7!FE2_8ywZhOZD`7bE5&aa+gXq{uCoz_`$j<;Rm0ux~4SRaXjE3KCtTf*5G+$8C#sHo1!p_yIl~!KhQh+ z^X^5Ub&i|)gqzC!xN3fM-5AO1x-puE8puBkU;)T;PE|AeoWO7(gWudeS_<|xyO$V+ zvPCOGNQ7iF24D{j%8K)K=m`pQ%R2;1dwg97* zh<1@4y;?#cw3LNB)_ms6P&UZZlHkZZuzB=QW7v8^%R?PsY=;k60^K-_!Y$Pt9SC&Y z93@UYk)^UhtedpyZ5UwN?j*H~F?ZX#tRUE@wJnM%K`{HAOzlXX=0p% zDV+9HO=Vr+Ho|)AeddQ>!t1>KaNc!CCY<*|bZ0py+1vx{kJSg;7@(|xJEYO;32J=5 zqLITMEc6ew;9(8AvMBUuT@h%2IP^|W3BU0Gd8#RMe@MmSQ*pw`FpcaFSs5NEQ7D`6ir!m_NLv0(7&uo3ry-)UF?ho>{pm!`5GTeJS zWt>K)7$lg29mEE^R<;Hbm2A$3)q&;cD|fqI&7=g^#o4J2d4aR%FbmS-zm>KJ z|AbV90%xxrPI6oTf8d!VafAKMIm% z{2T5$R)t9s>8iAy#rV2#`rmnjvsJX(j;LG%yb)dLk;Px@93FD$6SA@px>m-wjs_14 z_m!Ne8ku6fN~ z5pR{Nd(Cg{Rmfg#GEZ_P>&ti)3GUe52Lu;2LP7kX{CvQ8CpM$6$Rsvq5?gIvbx!|# zGl@<0V&dMsY|khw{(i=*10>dM7_)pCt}d~XhkzIiVi zM~!p)!Nu4v7N_P^OtA%vQ>_(cPHcZ=Y~PAwZAsr16=&vmx-$^&{y-bLAcHHfNW@^l zbLOq=Yo65Pdad$QY5oBzhO}O6w!Vt&F%GCYfEzc?Yef00!6BhOza{T9nPd*NtmcvW z)chOGqFR=u91;%E0t4&h_rrx-7XEi$|X5^}HY+GZJjNHq_#x%T%3^6`_^Hp?i8igsC7e|f=9JO?V{`@?s9 zDT5UO@J z({wRDGc5JMBe4F_GjRU*6mey4n^sHRq$Kt`AtwipS1ByXTv!n8e@vDPb$HEdnmFiT z{E77R;Ah?`CqoFaKFnDBPdith0c$LrlS`%SQG4%NXq2nO`b5eFQa~I_z+w89zg=Rj zW$g<;NE|`hvlF84zD>34cXzAN_?~oZmtDX;mw6Jx=NZ?PEI0L`-~+P?tC}jX@z-m% zc(!d0Rq6t2I}>|iaq5Z-z2)r04>EyM%ewl?ai6e0t_P(JJCBXX+_2KCdPJkbcl=Zw z+jz6*99oRi+pLOU^v3DQ-~%R<3p}4)F+NVp0CB>%m8q_<}MA>bLQ|A z^>paGTT9Lxta@cx*qK4$UnsPfNZQhf3zZFv6=YJp`T60U93y=e-`siK@cc;izqGMI z4sg=cyrNrz?A9Xj2`}o)r7Pg-?2YqfqI)HL2l52lsFa>$5+$fZMk_=1$&5ZYLhIti zvM$N9pznb}cO;IY=*S;dbf5sS3PPy``Av#zl!g4JMy_H|?mDj0OmU9dBSa8Au0AuP z!E`fEsGjh0k@9E)IyeeH?-rhGReUInWTKENufeQw??}H!8JQ<2TSnOtsy$a%1zQV4 z>&67Xz#l5F^&1iMQ7xZj7mTY_`O-%b?p=EUVVhCNx{kG%x-W(282!M)oCla60vLE& zvG`vklMJg-m4Ma#4p(E?G9#-oBzdX6#pVe#^|rj#9HB4dOLH}L+m5wbFp@Is*>MY- z5B%~HYc3h){800a)YSbS_nDL2XCn5d*WI6udN^0%cBlIoF;w-c!i5L^s>&l~_vq@j zn~vz?%kFEAP_{LVe#LwC6~ovT=hjHm0lU9)Nc^%<98S+ut7bUcEGuJ0QDEIs5)%7F zcv$)z;xrcA?pe%fohwTT$u}HQ2C{6)GvsqZODPhy_0^u1WKZ`Goa`TDIAlI!HO%22 z4lATGkm0@nm~my#i(VQ~ZV~g`-`qpZ%;&8hKh3-ZBFxSw8!B8DmCK+VxtTTMzE;ciJ8bNaGpSg2MTlqxR_A#`YwJldbW9y`Q;oCg()MW6DurNiK+Mj&Ke2&(;sAsCON zO0~MdLL6)2Y6XEd&NCj-&PK;8678QQY1W>Do4Q<)Gj>N-rCZg49d9bQyF zJ#V#H2+fF~|Iy96B!a$i62TjEvc2FGdQ#`WizD9d>D+>&)ob-uy>=DxP3-f4nh+(k zdO24Ghqf(Zeu+WnL$qzb`Cp#4?b|(CkfXJ2$ZzjCDIoq?+ zsO<61SMn%wdUQM^jq2>@xRyX_CH=RYw4~MfS7+|mah-}iU<)p!^<`l}4t9?&u z!A`_V1V$8oy@$p2>IPD!S0o22@t{b8J0*&$DV+ajdbfXVZx7!wcYr|i?)^lqA(5`V zLlWtBbY*s7&E^{=1Rg{@M10@TN|GF;bksb3)gi*(qtYlK&^#)QeHJzS@Aehjl{)gQ z(}1|RU7fGSI|%<)83W$1i@b&5yTrPZesQ3{Y2W1qP_u61J)cr#!UW~WcB$BX;hs;Z z+=_S3f}O5NCvURQT7(*Fi5TnLUPdVFD~rv$b(U+1-RJ64D>d@fn2mOG6oX|TeD&`6 z8Tjd)nX6&(?P&glI-L(&EsNy6EuOsRRD1H?79<_hZm(Q^^<-N`3ID4fqvB}sblevtq^5ngJ z<}G{W%6l8k>-Nf(_Z~98;|l4{iQgw|6S-m|9BAyj>g#aMN9}z2&LcE+_Ux zRgC5SJN7bs^44PMhW6!&7vARa!lgu>%;kl@a=XV1+l?37=Q6`nFnF(i@*rD6%&-=N zR#{yL!3wfCQCf%HAj5FE){1D`q(x~3$V;;Vqyl^TLf2SHl4m)!u3x(=M(%G}P4o5g zYcHx`^Gb}|Pdl_IF>>p$7&+S&Be(iX&J`owID&|gTM;9d5gsT|kl3qkjSwT72ZqJS zebVDRWBU)Q69L5VxRFga-z%K=7o9nr#8ftr6xD!8li_bE9Y_iYgc#L$k%QDY?X-%l> zlOf;UYu#ck2F7P>#TjQATLpw=W{$$AK2SQ$*pA>+zq@xNpL(Sl3}XWgm?t^cIflmI zrZh7DvCqd-^LX^bk<3&{Cciq{zP!i-3|XGt2Mq1vUXCsKN+=xTmi%J9xrS@u!4KT7TxU2zN<&PVV(9u<@`wEn9BK4YqaMJ zVHQI~MZlb!jA%|_iH3z7CF;S57@0YyHH0-kIJ2Nt8B@n>&G#F0xi^FkHw2s{2N@9Bzh+=UoFsnT6-(SZCP4{e`;8T0O?R ziVj>J5CEJxB*)jAQhL(0I0R(T3P!nBmbpNVkD*HS2FIpi0!24=vnTAjcl z+Ld|af3L6#0ilk*k0XFHm_o~t80X67<*d=7qb-tRS;M9h2fOfG&9t?>ucd^}?M%fcT^0sA2m9!r1)vq*~R(q9L(((ul>A=6G zW8>@7vm?N+pVcXZZK(Z}&i3(n37ly3h+BJR%VgxKfpXRE>W`A5VUu6`3|sru+}aab zK1OY#-3874U+^MjH4ksMBe>14EI)$VRMPlT&_)7-w3i@3<3$V`3xO3f;4RodY!Gx7 zUQu64nP-ErWjY+CK!I7b7@`Oj;1%5mp4NiT)#O~tY>5$kJz-~!xB+hFD6xUAb5V-$ zc0QWF*FKJJ>BwDvJq!eNL%9b}I{_wtPt_}JH{wb3PAU%bcMoxdbErFxb$^7B&PtOh=QC55oA%%0d9js#r$8>_)#g_GRw9V{AvjHQkgw z9Y#LXl3iX_=amEJVYAweS_F3Y576oheOi5%&WfW=H_SESTD+TPGkvYH7|35~<>*4Sa4yL{rd5&Fd%%yJO!;oV=T z^5OA3np>A0xlzVpEAuq8x&&%ySyrQ5h) z>%lEs0VARG`npKu`F&&d)F)w6aZ5spF;j{af7(Ozm#m!Ns{ zWC#aQ8l*!J;h6e42*;Eo2?wY-DT+bO>CZ?$%Pu+i(~~g=LhGM77572bk_r ziW@$w5>B9FwohUpFcg*`WbE-i5)M{gsqO0#k*346x^XdYX^8zc% zbU)|rz1(FO3dsD1U>b{71Im!5@~6(J+UTa; zjQE16AZqE4@*e#hat2K&7tYYy+0jdgL3s%=g4qaXIJHG^i>DAzHgk0lj`vK(6@*#xU^{<(Nju^&UUZ4Wl?fuq z9;c`1q8NnmnlD?vMV&HlUZ5HEbyZ(iTdpzi<1{BOmewZ8n&-Iz?h|AGsI)<~MQabiK^uoQhT4`r`Uce$mrS`Hn#|B|c#|#fp*-iK!gnlXj5s#qhb+ue z$yZ4n16LF7{WrZSe%NhgcfI)%Tiw0GTZpa}s`|ilINC>l<^A6CSvw39=y%=cHQdZ4 zFjy>*A1F?a)Kg3H9@)#;CUcoV40B^_qnoN(>G$w;F<--Qq;A`Go%slDGbVC9xsE;) zXjfP!MM@jgu-wa2jSc3?OaTLc`Hucu-$&b!-BMMyp@`Y{8QaN`ETA{S`!VNz63W(K zs>fRz{YqPt(>#b8q#lNEF5i?|6u_MaH46qinUjKM2I?Bi2A=Q4cBKI65elzDQEOv+ z9qi<>z2qpW!jUgw!o63(Q4jd}xDPF42_9q4#+q%z)hW##9F+KRS;M(0XUIGMo#t%< z30+N}s4EsimetC|WiKLJZI0I7?yWh_0@p>0<5CADNeek7Q=BHjRD4j0OvacmKSQh5 zmRuXq?kN_+0OV=*Ftzv2`k4WL*^W6XydoB%^(@T zK6&hTEkE*2$Y4zYV8}u9!7a9I1!ZdqxV~rYtSEs8^DhC&vyIi01a<%p>bR{99qj}; zCc3dX;~iydNzCZ{;#v75nVc2%@9tS!3-7Qe8QTqN%KYQ+wi>Z>&mv&+R{EiUhUCzo z_3#6=(Ry>q309z<5Po15SLOC9QR?2CX|KZFKco-t{d2vN4Yowj-*=IochhaSb-ry& z5-Syp98yN6$E%83mue^cQsib9bPc$He)_a6;#>vlLQ%&ptxL=jt(!G`T`}tZS-Pn( zi|O`5O%izsyy%YpWSX_%8MU?LEsP*{(5VweE$(VRl$Wp=D8amu$UF?xU)lQ-ilm)3 z`2*3;j?%o=V>`cC%2*kEGx!&j*IBlVf4!u%YirNMGile_+B1@|XV%u1D5kR;`LVCzH`M8QTsvWo_+g$r$*bht}2>gL#o@A$D+WbrkrM zyn=Ayy|^CC0QiU!;!9l_D2VT;&vL&AntQALwT51bRU9R25GMWD{&FISvyM1ZnmH80 zcl5HQ*;@8QdZCbq3RCSRFmwwzk6_2p7ssO0UU20>X_P1MBJ|58(l3`02H9il3gRp% zGFSmca|ih$CVv`W3s7(LuPYW6Q}+|VBb_Tld94@m66aEa;w&!%KLGvwRvBp62dY^s z$*JyI`2`K=aXzk}M>!+3t?e$oSg-07sFK~(zI>oz?e$Ssw9NvW80viggZbh0J3e^o z%%{VTJmrMa!D~9&yLN=;&-}nG-Wh&mhZE?r#oI&mEsD5dSvu%T&^#y-MW32WEqf9) zSA-#Oa3?p3D`r{%dU%0udlfk*8DV8J-U>Wm+^WYO%GLqG<;ks~q~903Wd zz{!G9GDk^dV48@x&^CF*4H>!sB4X$gz9(zw+RTV$BL<{moo+-x0-2CjwZmN0l} zVsQS)vCt13K)kSCTn(*T{qGiw#D&ZkZid9UZuRSU6(Iz(ZuK7MuwI+f3mI^ao^sFr zn&Age0&OrNYJiQd$_eu&S<&ko<}>eMJ{(_psqGpRrl!%HT_M(&jJCbM)yj=;z&(F` zy*V4-47d0p6?-q9V!K;no(3RCcaO7KddegYc_-q!s;9%+B(0Qz{r?hU={%tu8 zy-c^o0^H#?q+>e9$wk~mefP%7=8fU*|Iqk)QH1hN7jVswghwoa@11UYh0(!|W7@V? zXD%9U?^7*muUGA18&XV!n4;!2nrq(W(6>E$&A!3)5WLE^5HW**o%pngq!_z4kh<1d z{!%f;P;A~**}N&?O~?22D03V%FY+FR2W&J|1=@}JRO#9X3y5O6X!)7=u_LNw7N^>R zQz+zu%^U>(x9Re(9pzP#W&51=UPbX^eooQx9otB9AwqHW+ru4~#*NGg@%{+XOS}Yl zphi=p1B+L+5h;5k0fS$I$FbKFiB;nUQf@TYt7mYd8~FBU)%(QkGvj4Bu&i5z<;Y6l zmM0O&-!;zs4PURLZLTH%4FnlX1!wPNY_d#;d=JHD9KVPc*${x*n8IRxAJhENLIA?N zL*S5+l0_W#_<;)voFc!jm!IPxdAC!|dr3YP?%v3%P1oIMD&h5Xn)PyR(MIowyI1j> zOd8?t<@}J#Qn>rG`UR&!l!I`O#f^k3uZxCzPN2N=_F^K?kLOp{?L{2A`TQ~+JGDRt z<@u>=IdPNr){S`@y@2IU!p?B-i>zAm$X3#$H9zJzHsI!6m==HJw8O0pr5EhG8XqP6 z#L1|><1b^J&^RaGJ<6_i8~6$jRW|PncQ^Ax(m`lkgSi*brZxBJk`dfsuXj5US!u5T zvrJ^?#6(j3I+sUNtBdI#fL?+kBB(6|B=u=k-)f8FyBo~EajCk;R$Lb%eGkm}G0e;y zU5)Fj3FW7*!{J4YIRw}FwV8#>uiH1kmc-lzDeCTl*`Ly`EHMXfw0mGOyYdYwu6B~Q zEWQWf;E-&kL34n@frk~*{h&tveOeKmaLJe@V;ar(YW<=6x-HM}+(9f$kV()7rg;ddY7OXE9%6kx839y3)Vy;x8Hi@bKG)1E~`2mN)?lZdoN?l@x_dosuH^-_0(!>o3 zq&8&UU4)X!!`DSUeBFNzA1@eU;BB%NgMiGnBTktW@9C5&hNg`=ejetO$s#W9)?0Ex zGqTU(-I|B@ZXh)Vb1kF<%^2cxj;hmIId^saX~@}m-mia_|H7Z>4N0mOzVkvd8qC%c zg3Ubu%~%#s_MNAVerGA=PgO+Ev6amSTgU72X5x+K?op9_ zhU)b#C{P9x>DUJh;2;xQtR5Zm6nqEZZ*4TirwB!p9g4B~_CRv- zz(!IVA19b|ydL~xVM3OjcgVuSa=OMId<1Rcl?K#1H*r~!^H;G5Bjy^&to#v3jqK! zEmrBefDiXt670%O>5EKhWxEM?D_IkSE!_PCKhm*DYAD$}i58^B5cNHgH+qjhrG>yu zg$n;KY3~9bRdqFdPcoBa2m>cT(5O+PMnywxG-wkCG!Q2QG?);RfRdoCrWmc4a3;Z; zfrOJlCWoomY9H;z+E!az?c19IQi=)C1cWM}tstOOsh)ADV&##blzIPapP6KW_W7Ro z_t}y;XPP))zUru=v|8uWs`kO4@AcSjf(i{GzIIywjpq;5gEmZKp&FE8vgj#oGES?n zmu7vLG8K-bs8|>s^!oN|%m2zQ5JkUDvwlntX3Zw)v5up~cqm~Q6?+n2BraAgpQz8L z&~Z+K^CbipH^9Eb$|w1sVl-bNO14?!G1Fmf5IbUQR;M&DK^U-wcn8?Mo~S08X3I6^ z>`Yt{nMJdz=3)yOt;@Dq#+|aqi^gTOtV`Boj-9^FPOr7n*u^3x+~|(@{J4DPXiCX( z+@h-xf3X^u4t-K$GmrHLYOpK)I-hVlm87k(4QYoa$|vKTlUW&>9zE5M+#B;m*=CUW zjIqEXGbC@w69T`YRn?W&&$;YoH!_H2?#n1H%WS!tX@Y`6Vz9vc5%OGY3uLR$2#U+~ zZY~w<{>VwiHjXuXmW!}IXuaYFtHM(b1`Y}mK2#sii&_j*amXys5b`LbjqkF;Cb3pz zB{j%)fwlF*46RdGkOVwzLsbEQkkYKQN72YajoNf1r-8!+^#?gRa@n~WB zUFzkq;Kr2%x3F4n#z?lBCj{=+9U?rCqJ?G+Qa(>pQgAlmGBf5@1{*xqOuk0Op=HV! z8j_^4yJ7{BajXNsauqA_5@5+*mVrr}2&ZvH)(v(Gh0Odn{bYOMJI=$Jk!THCXEHFN zb^;vzLQ_cT@H$64G5jve;zN|?h+ZpvQaqPpqT(;2)0&{I!a5NPRhTcC6omNg>tt)e zu^yt|6Iz$V<&f2bHGSuAc`jZGhyM#6B)GTM`6GFXlhW0^RGa4%KM0F&@ZA1jc9I?l z1~Mqr;B1)QvZtl^{1;8 zm+^IOE-MCYzvP*qxviSbKBgE*c*%m8O*bfO-qIlIIU^;i26uudGpo~+^$;$c*Dgy_GHyFw`x^W^h0bpD|H zPo8SWTy&F=r*%@%bQEn zbqWlM>z~m&_wgWQeVb|X`R@A7(J7q4e@piqDB;D5O_1(Y>?DI&iB&v9Tw33A!I~|_ z^*gi`?NWnpU9o4UK6(a;-kKfFA4Tqq59f8dEk~{gs)xwQo=*fM8)RqPfbyw;@Lp*F z&FGpfA$=z%#3F5?314T(*Dl8{XPvc+Tb5XV3^nEr!BirxP)7uGrRa{ncbrk*j-V$Q zA4$O*l3mPdR5VU^dVNo7%in+!h$`k-Yw?RhotSPQ$N*4rhu>JowS-xA0>PBD{uGg$ zc|x7EB%`{T=($@EJX!11-NREd*LtiggEIQq%!L`EI063lTs72m@dWVvGANknRr`J@ zGxs2E5vcho@s#xWI-6^e`A?|jXR4MWtK6E`?;b;!Dz+jyLaMSyq9{CuxuUphs|mr*@$n;{XADp2fRxiFse6|-Us zdlw?)N36dz0xbnRqM^{N*SAAkE;^`ytOaIhl{#OF^dwFSE4K0?H1|oo|JgDbdHarf zdnz&GbBQlZ|8Nz*O?U~cgBeDMw1eZxnW0t}YUV1kcC0Pr*Q^y>d|}{t{YfFd zTGvd<6;}-E6QrrJfMCEO-4P%Zs4Mzy_#7%Pr!SE`!@x2QPld$R750V#kjX92hA;-G z-+|yrK~D^H_H!CmrwW+FL-rBEF9cL1TXzfDR7Z%fB@)mYm8=NpY#yz3F9`Anb^VAZ;Y6H- zIf+T6fVb8qcjcVDUa>x4qfY!FqBkk9ThbK*sBD{g^{Q8`vy3d#{2tZ3M7E{*kgLO6 zpmm-pZ$-v3I>L#hONr^0Wv6N@MJy-#;J1d`Ghdadzqi_Ilr$t=m}^#78~tro4GD5y z;cR#sAGnUci1l?XsgkG!YjB7x7p-%VYTjx}3U8KK{3`zIq=pFzHHdpZIigWhb>u}V z`V>Ka;+XH?qZ~x71M(rUBRfclcchwbAfmObwIqI_9|u((k!vt2tvG7;;h}`W(g%^P z3Daz~d|3rQrh;n9TJui%x>JTp1Q2$y9a`rS9umZSx6ZNmoRo^8J?G?mf<>|0Ia{h% zDup;fC%oCbIBHY5(*!H%Bzz7y)7 z_`ZeRA@QA^XaB-mL_WCRdgFSp z@4FoRsltb*@ll$J`x0JfK{*DJm~h9ybeAJTe%x2^7M$+EC0*=-4AoF9*IUk`0k^~* zGj}!R?E0Xg(W}>;^p7(7P6pBGY<)K|tWFgpjd(&R+~d{D3f{;~-Zc*YM-B61RU*hV zaj~#XZ^jX<%ZVDUp{rqZC&sTB;noj-JxzdU8uL9 zys>!L5999%KCf_d3^1RN?{(((fmG?Jwc>f|{XbHJ`4{T}dHJ?fZhe!;1tE-K{tO!w z+9>Tp9sWL#pE=^`BaU?2Egxkldd+arD=2C%%TQBeJw6NUk&4==XklnhC60E(zlFE3 z(PtEO3Fk2Qx0BKM)urO(5$H<)f(>#I3^rth=41sMGOcqd+1*ecY`B3sgAE)UZ|ZKC z7i?HyWlKlrv{}jcQ3|b)4#zLOn1tZGjL-@NG`R@tp63p&P(X`ai-lGQP~!QKQr{Bq z3lOt5(dLj$d0V-xhW=rfMoNzDX)ku@X&4X4*I3y;Q7sdNSGcEmb;{H90~k3JehPTp z<{Nz>dq`EiR>J*t1kTiESquue=1A=#azRUlm6z53U}9`R)5NPH1X5nN;V&Gb-S*f z5qXOh7&kbw&6hK<24HcuVydhcDRs@XBt#mv{x9(F`_NfgR%`ut8Aqs@au%I%-c0v- zGhHg+wCxZJQ;AnC@!k;mXqdr?ndKAYQ>>gl-kEN_u&cM_toCah*m{&vlde@-+o;xP zWMZ+mn2!a57;(9++n|T`X_`2*jHqRT%uuC7H*RrRZCo^qFh)$D6KrkNdL&f0yYQcX zNa~8VTp(8AHCDrwN>$TS1Cg1_Gn;Oj&-+pH-?4Vu2QGYxVYbLd&5wIh%?8n}r$*^v zw=ZgKV~j!EIrX+(SiIEToKv_>q20g`{%l?B>B+=;f;mo_9(jka;~>Uk&~O2ttF3)L zMf*KU@)5IX3QO497}%=Jq-hL&ncsaNrI+P8e{;~4yU&$NV5^w3sr_TNqWK(K69=Ye z**I$FHg|PgEv5C-4$R0p5PtjMr(3RjF#W(D3oq8u{WD^DnPTpS?D<^`^lR%Xn{KyG zqi4*>n5JYl=zZ`Wc92CeL$RG@oTZGlvH;>4?~25Vtwt>35OT2gK8?jmY}n251-VXK z|6jJI5&tG`QNf2Z;u)a+8I_4SEHnaQlq)e=Jx|;)var%276A%+=rNbl)wR)yTiLv( zJ;SEuKX>C}h_XrALXzMc^BR+Tqv9Ar5p3vHOzbE2$_~4&G3c4eMUiOKB?mDLLu?YW za?sWSJ7chX*~NMeI8bK{j$K+~3~Ea&jKPV7%NQ*2mm0kXBGbzw*ECI>7b%|B4jpX! z$~1$Yr58-=l%Mmat(2dPPYDVuPkugT^qY<~!`@M+M*cu&Pqlm@KnoQ$x z4)@{Szu_al&Ou0~e1?as6%U=Mu3J{2U)hv=OWtNgSZ}8HVN3cMc>I zV$czOPUYuP#1Z}pkMzUc-}8c5zRrS75> z)8;)%C=h>^KRtXk2|VdFiL-a%A7%Dnd}6aVQR#?Y3w&Oc7~!1NYO5oeUr21itVzve z=sHJo_!WA@?UX!zB9C}j?AMdcf{^P4+H{29Qi)kOf$w~Q$3~-Qlz*xd|0azTI8c1_<1KWZjbiM!33Of+O0(I4y*%Xd8dL?^n&`vcC+ z;c{uEKBKWX;Kpq|=UtlPCY*zf_oUW2l_&38`a~En$xl5&Czlw3EUbu7jMX|hs7VI2 zMI&R#v|l`k*JRFj_8Ps(;cPw*O@W>%6SWl3>vxvxGdMe!LtSD`Yh42jIo7;-RLyg+ zp?3V5^PAX(@DEjP0Omi9$8l`^gn#QQ#8;wl?NuSwROcnl;Mu5{_bkmR>=nNcO&Rm^wsLv%+QADepC#v>vwDy1 zF?!F5>>)97V0hCP=RbrJic#YSxsI|?`pCNFGED3O{0nTUHyei$O= zLS@O`fz~W2LoM#rzt@oB*!3a%ya-!dtr(bdfA2@QB9tsN^JFEOP0f<$qgbBnmY!Tl zdv34<6Kq0&4mqEZs|B&8j&~x%&job7hqFo`i;I}~=H_F6pId2NXR&+vvtc}pld5Mq zv7TMewZP!NTh9%ZCwpI^gZ@l8!q-}#)GJ0rb+93V3*{Ux<6|8xJ1KeUtXIi1G>q$7 zPqOvHxNO^$9gnCYR-p+y7!D8EG{xFAqt5zHVqsTn!@?2P9ynDN6KoDg+A6uJa&R8DHoaIE2$+HZ(`)Hj81vN zdVw;|!ErT%!KqJ(CrwPHxrI2hWbn#`dIXYqqwxT^@D#-6ywpr*-zW z9yY$2IZ6wPSdm35*F%{O{2wK^NB%X8W5!`bWZ8wgIoA*e!n=uGI-|HIQ~UOAMl6!X zI)*61KnV}6ppaz@rZ>x*fB+A$t}Yq8_~{II+OKuD;vE^exo9s{Ra!+dV6L6_qQWFY zX1L;`r*K=}N69xXxm>J~5d`jDfV|YRv2dTWZ^CORyHXYmIzg&95ZlW|UJ%7E*T%>W z)rO-bQ--^k0+0Fm=;L~-EjSby$ao%tS;c3I&}$hZ!c^cf0;jq5>)IXj z2q;`>OpXF0r*(!EFs`V>aKd+@(YU6-pMGOm88>M#OA?pzY{^eQkbZe6io%GCs;O7*6D%6V}$IMaFvlZq4`s^s$Wmt&*QlA5a4O zAW|W=o{1q>tF{&!h!g%?<9I&W_-jj&V*nCbX&iKxa1)wY5=;tLQHDHRD<04DyCW%7 zzxa&Asy~dRt0pH&la0pI)&l(_)!OMKXlt`u%L;dcnqXJOpk!Pr?4*c?VzV*b*o-9k zaN)k{rgU{be$={9F77K1JGV}F(~CC8@-38T9p$Y!sx24IZq~4>H^^NrfcOJ{TE9Y# z0w$T?boEs}eITDQIniVopXXpxh<)^K?}D8R_{U%;g1>skkjY|&+{H#bi( zK8r>?9imUz-kjPxt7~_wPqGMFA8N2&H@?}&-nmy7Ro;H(2=RVAmt$0#&%~Idc2YBt!5H%ly%kq@p%rDl-f&-3Zq%DHZFC zik&!&RMuoWLN6dJ;7;^)F*mW9^E`H_rhDr`UGk;U`ZagvY*F5~^@9Lan78?;d`S8I z-oPQv5XlLs^&klIlze30zC-I0X3MyvmwzYFyg698=x!)==(-05ubv?rHR7Czbp(GG zjS%RkWV1=9>26?uNPjRHCRjBktgkVc(|T!TZKz9E9hypqhO4v_m`jQS=7f_!HR=q2ut!MIP^AOZYr2(LbCRl zoBQ6)7`=H{_>*TRY-{}F+0c|)14EtgziFuHviXg{v1MhE^hVP|O*~37{|X=E30n zPSa(8Ew!vnl0qJWp-QsLL=a!ED#%hFrj&tVi<4$v5;!E0pAJz~2u!QBitJWMq649N zw3c=-Z4PsD-jQ7=3ADxJ!*!ln?AxKIheCqL-o1+_G#cI<6dWrKm6ozFihYOtZ%K|! z8`Zsgn$y>POOB^JCSt$Ch-ozD=nooWrcItB2s=)B$KOF>k`O?$n7_4 zt3IG7N_${G7eXyrLFu6*?YEM zibCtyOY3)DTEDfsA*pklUj*}J#kwFG`j`<}Yq_dsn#C1!#gW^C+&eoYe%~!-NQhD4 zU#t!?bo^Q9R|2yrY8wX?VH4ssq_&~1RYL_NnO))m8n5!HP~ZG=&!lW))Z+ z3_KF@Kj!7EF1m-t=Swt0&b`%@p{}R+t+dXi+2Dq=<%J&+0%#k%o|d0Af09I@WP^cG zf^NZzM8iwFf6YHi5h-V=I@t(3;s{Jsi!XV`4AymHkl(29 z5&tJu>L_zoWapvAg~o-SvyQ>+kHYZ|bhUiv`{Hz7rpI-SzKs zJ@4D!OgjGbmEi3 zM9jB-P7fTuclA_ljqlxvlTl$g(w$UP|1K7i)A5dthDycVHsVYqukq*m5`^it*6I+# zoT%>Myv*6Erz}~BO2A_O?)QDmFU}@uzgxIwLc9AwmGwl{TY# z_2$JsV4$tpUYEDEs>u`beZ)wQR9b}}Grj@bPI9q}n->&#%blQ0B6oob`KYG zjVug)%ipL5<9_{yIx5TSt1HJsZm72Xc5T~iz2`%y?j(GC$^Q5pn$7xZBXB6Cxu+?q zE{w4h+TNDZi%?Z2R){0sXm|lR;)_X?6nk)`s$h}Y(~#8d8+~;j=h-^U7yM(jjjw5I z2EA`+ogvV`taXmAO~Z$4?dZ|9nqRxRuXVg^h23LSbe!&r=+#>nJGoepeaf0IC{q)i ze|631#bsA-4&17(35?d(?9Tg4+lZOuYk9l8Z?s*1^`5}}mu`0WMr#{4H#r2D8ESXy zPtCC2`$*Bp&_BSy@K`!P=Idg$P)FVy+Q!e#y?JkY-|VSBx%36TL`n7@52R7O_p`R2 zb@m3*wKX-P^NxEzTl%QY!u3;`_U-TRw`c36+Z`373n|pAZIqd$(YoS5rrtP9b)&&q zjiss>Qj5z~HknmHiiLcr45N|FWFXkFiqxmJW+`{A5g1HqE@m3kr;Ako+vLS6{anV< zc70Fk)jm(lX=<9{W3`Tw5v;k4yCjeqh_(|ML}9uoqKOk7^*mZ(eRnFe(_JQl{1IW3 z6oz|{sw2lmIUd{LlgOYwF!3oRj`r{jz*p>_>_^ibwq&wdQ-Ji{jbeS!S77ce_D_*7 z{|@@56#FO1BWm0zTulaArf*7rGPjgGObQnC_y{}cclP*ldMa?rt8ENqX>0a+-(H3| zpx1mm0-;1~^hw^aygl;dJ)*6YGnw~oZKVigA)~NWXCmNJ6;eM7*RDS){5Tm9POvOF zl4av1%~37a8@1N!9}1^KY?n5WHIu&6vrD&kyL&3KF5TW9$T_<^-9OrhdRk@@`N`oQ zN7BW9uMy2?xvE`!)fRMaYeD`azSryujd+Ct4tXbB5~3sddjkRkf`8{pEG>D8{fgs5PH3v{j$Sdicazcb-{BYr{nWu zaTZ}&sw+7*Wpe9<(bB6)W6i;$EdRS$#JEMq7k8^fz ziG(43k@xH+j4+n#;Z3ToB^=s~<7vyL>V>mr>D9CJ3uoz>v-FE*`4<#ddY09-%`L8U zFRqMSzxTsE^W1WuHr+oXGL6K5H*(e95BJY=N5V!JzcEJGsZWqUqh`(WpIcPvjvOee zbViW)^SE1_{iC=IKI_iH-E8b}Id1GiX6u+kz%pq}mwFY(6H!WVxyHBHkCIJ{^$YUQMIG}kR5IRH;>Mrzkf_S z<*Y|30D6bYqK~8DaSY$q8D{^+-*Jod(sSQ-IA#Q^vK~Kn()<^aFUfNZpBm<8ERp%4 znMsdte1U!O7|R${YX42=;ec`A@r}g#B+dL+s5U8Bg|WtoQ08~<+I@zzCL@%&I#`9( zJt$LBT;tKb#!0WgU|@O%tOJ@bp0oLhRGR$>^->M3zNG4uIsaAU=f=sYZAo*=VD$!5 zA|7*khIdLAqPM`(Q6-4%QKM;#keD~6YYK_M`(+EH!L;BwJg-H@KHfAHVSR8Mg9=V} zi-XZ%m8;~Ii0c6I_mN_+>PB(DU)N}Se!I3@WKH%hfp?F#($?AXl(RTSYb!-_xA4=l zPd7XLS7>Xus~drZ$D&*aj7_`{@K2Q6gtLQww_g*P44ReZ-y#_jjfq8y)AxLSMOBkCLXfm4>@=CS~TL^#O$-q_W3gQU-=9WFZSj7GdlXddgp(0UdkZ( zt-eS`M_6!?_Xm>q9()s#cg3UwXUNiIAF1Dzn?Tm^9Vo)`9L(LgAH$7~GMiK8Ro{SH ztKXDpH3pct(h#aqVuT;iC(ZJgiFs~?d)Ehz#jYwsNE4W_fEuc-x8Fy!lP~vy>5+>n z-GsnqMVPXddGZ7?aH>VQIkjULvZ`ZFRk*eC8$G4^wH@I6yt0rXIiA>`2X|SJW ziwBYGu{S4ta_lYE(fuw&)1-2HI8NBoDwln|FwEF>9PXt2Fv|obFTJh6y2EYA3cz)h97J^PZ&juBi_#Rd z*L|z%DyrRnOSQPH@h2)x{+h;aq%I8iX(;hIPd7XhV zO?TbW-gfpXhwi-I|Ea0EW7f1Afli0Ein}>S&)D|knc7P6Smf7?&quf5OJ=k~>k?K> zhLP#__smJ|+@=HAGzHjZ0jx9H+Juy1K8a*(Z+5rdLZYL!hQ#a4IZm@S?bu#px8vBG zxIM3QMM{m&-HS1xl>yYDyu}LkLrRTkK&hrzxVOCxCW!(P#5M{ z%yBQi6A^Os7S|l~j|z2R!$aahOm66nF^J0hpT8mxZmn~JdKja1{(*;2y9UXStmm_f zA=K>J!CQU@UDn5z`?F$VWoK_Bwc45lAcI}6lL14mgGLVGl|xMYpLUWmw&k?w3-Vy) zvbvE%3&wpTGhTm^{SGt)Cx>w z?&ezW9YtizB2+QCJ}c24`uYV@*~R=dJ{zq)^k>Q3`3L^ao~?C0E5BOj%l6NA%{yDP;?0NUZf`&8A7%4UrLt8GkF9cpOJ;1 z59}Z5uVJNVo!ixW*B$4v=dEKh*T1YP)mA>j2d#54fAcFy(mD~@Nd;^PaWI@`r*u$E zpz@xo)2Vf3QQ1J6(5XNX6M_SfDPptyUWJaKMUIAaU{`6Q<6Tf=#v>(vA ze#Nw($WPw1r{pJh+8+72VOoY{@l6}YkG5iL4g;DXk1L%#a=R2%y@0c2`yI;%p2q6Q zh?w_bGIBx;mJX$qaH{_?$ZcOnk?|i?9b3}neo?s5FSfOD?A5Dvh3ty~rw;2oI6)sp z7OiWE2>#dh+AT(YsHVG>niS^Vt{%YL$viNvr?UdX3(u8_6Cg^{Fk#%09~^K1eMk6% zv2YDs=?wzP@K@>iKpNMf!@bBrljba>i`JPQZY>5MIy5gsq&VqbDe@r9~NX~uL4^B8te zMqiqrM-q!R*7MqO-CM5bmFwry`8+xw>qXUG=U$O(I;5&hstRg*o#AfAV-Jd#hlgHj zn-LWF&H&;Ze^8~71h&L)RaR*RQDO6k~IE8xmT z!i1>(4kKW-uVN%=eex#N;9)Y>|JY)U*KlOGh7Tc$vRX~Gxf=&jo>7&=N?6Z8PW`Y!KFm`eRKJHxtdkGd@}X%0%L{a?wE|yNtY?2&k_4mRTEHLl{4yQ$i0&??C*HS{Iz)C?=N-!VwH*2wz4Q6DDg2 zTF*)U+n^WuDCE=45627jqleF^hg7Yzk1;4p{4Mn`1+7&mkzt{fyXOpK3>}QLvDn_T zx<(0)s2IxdMLg=a=gVrLlGCIJYRtc(Z2q}mrR`F)T)(1RKZB8ns4A#IjNuUX`8FIl zCwxBRuqS;eb?-T0&xq92@Cg=Z3^&;dM3X}XR6+w^pd?(E6IZ(_Wzp0N$a0ooh-*=S zJZn6w#=~xfg0g68?dqPA>OSV(M%YHk^P_xL+YO~0;RoqJ{;!1k-czpMQVuzgAz^Hr z!ukgz>~cc5pOmV8uBuX0g`^)!(sxHBJtj%*DhbFbivI{nk^5o`fKrFq*&??NSG-ET zSH8HJTG>vO9_u!gofrF%C(<7}YYtdUJ*tHVE3=>om>2c6XW4X|8B-Yy;dO>6*m3vH70!~8Au zS%0ux|5~{|OYyAwWcv6GPN~q+t|g}<+i=<&pgSy_ioNOgIJ;BB$?8?seqnEsQ+uSh z98M{Gm|Z504{9h&q{9V@L@KD;&FhkS<}l&3Q}2^h7pWk_M(5*7Suy;5YMk~kBv4y< zfF`G{mPg|!Jg#qKdCFp!&45jSzw2KEKP5@s?{_}IezU$Rmb6V^-6@12e+Ee)i`Mx* zZ?TP|nY^-bTxKtbHdYLKhuyKerDJzNREJU)Ny>b+F$f4^`EHlgQc_RhaW=}N_JTI? z(}U7vGPWRAJ7v2?YeAhatgP4BDhDCWBcOS!H1H0o`EwZpRD!k@xoDPtEPQ}aDQX%sa)d>7br+2Aix3{$Qcw~e{*aS|3H7W zP6@`7|0ZKo=fPtfttUKFSh^k*>AQ za4kt76i>fW;FM*}n@#A#lj2`v@5#K!L9PheP14A{G;+!?sV|f9<=;a8;qH)k4R3g> z3KAhaUPqFw*ksqSJ&`nlF?6hvU9TxQ{HTJA!XaT;E2Xt0T3atd2f<_;E+YKO{{~6M z;5cpN+Y=OALN;9P7>0{faf4K`kzsUr>EAMK#oJ(Z_#hPscgtypohE!8#M1_m>D=c; zXc9UX;;|=Xve4s99wo2+;RtF>`%?z9`S1@OW5AJ?%B7{7Xep7CHd<&dqOVV4ol5`z z50ilnI)9B#|B{3Q0)K_M`R@trI=e|I7YfP#beOwTR-x8)g8k1Xu`!lm*?Dbl6fl|S z*3*r_Xxn)0p%3W}N|@~&UyOHnR=Wb^!V$g$fDTW`zb{LijtTfGWW)iP42AHD0cmoD z)4zbroboRp!kKtK9#{Pk`Rzl}j~?xzPE;CfWzg^+c+8hoqTgMv->OD(g&GNbhS+V% z0kdhWD7t|Lww<7Ghv&DYusbe3tG~?IE+-1}dKV{Kv`5Q`;N}U7w=_O+*btS1QWq)( z;pL7{yWTDT)`i0;Nc}%8eB;)?_x-;+&4yBmU20qj%Tb< zU<)d-;^{|~2|g+Xyl*u7?0h(7edg zr|^1sh#*o1C8fn_)gnH1JSdy{GHv-Syl5*cAajN{s;#(z*YLGM^v<4X6OCW9-)NmU zY;de!U1lfEhhpLF4C3oly8aTJ4(JLx190h7O2u%dr6$i zir8$Tf3gu+%?-{w_{Lb4E?SD(^1ty+YP2~+TlunjUIiZX@`Mi|vB_B-o(US*1Ywah z@&RM~lDQ}kZ<2N51UIzK9A@3HMsc|Lfa=9Y^Y6?c2LT~dTIVG!JxJBF$R=!J@Wr#; zm9R1~AxIwWk2v3z$R>9$XlI6GOE!)tFGja3P653h^*SW~pF3f7;!az-9VMIdIX z;TX}|Tbxa|FO+-b{jsiDqc^kiMLjrwEFG}-8d@9=rzq?|*F4w(yV@^KTKn*YPYY-s zD)SgQjvpxN0^F)qhRV|Uhdb1=RQ{ocScXrRML8gqI+fcN2e`<2)o; zHetB2Q8YFJL#7IbRIuHJd>djygKF!oeS%WYIeUX?hPqbb+GfEqa67@8`=Ui+4?JWJ zd^+Cfn4euAi37e3)yNR!Gah$GCJz~QdwtLOvz)zR!>3TQb+q7%ry%@|I4>mFAa{Eh zMuq1N@orxn-IZ}p{}kCqkx;k<*~VDv7$Mt`4B@$8%=%x&DEHgI0{e+fm@UeIZwA zj0$yAWn5stRa)K)745{hWPug`39vtj7d{0iC);2dlDB;;R`Za&O)`WxqTUxrrqgX?x){7+ z94;xZNN0TZ<(_xzu5eI$CP^PtE^k5`W$lcB;DiyBt7;=yF*$xitL|SfiC1W&)0qj- zet(P18cRuA^)if+sV*J7X^T-Li4pZsrh{wr8W_s`tRJ~91@hree(kfP*4eI}spR?6 z(zu~W3Wg$)b3)}WVK$P|nwGK+rZ6%#RQ_Z2UX}7o-YL*~(AAx)&bNF-Kn!@ zmtmBt?#+OVJZ^#x7)2b{{>{Fa_to&H{7n14THU_~6{h__J&Jbvv>&TSIc-dPS{_%3 z_jsQ&)s;yW4GK5c^v>3;ySdQ>F*~si2 z{>utKJY0C@mlVDU-T{>$F*#HF!;q=jG{J<{8M1cJ38=Jo=7_D?^C&Ov36*=QLgnfF zbMr5ie=hzdS5>NQMsmlE(5A4@#I_lAXn4f!pNNyfVT(kZ`ahD!1Y?bnhCw;L>Wf#%$ zECFAIv(12`6^_@#uW-C>ekGldA&TSW^0h2o;uMD;QQPaOj37EIEruUpT^FwS2AL;T4)9!E=R>T_b1IT-eVzsW?|iMOuUh}D7=y-0ti2)CVH9`&IjZlwK9YUg zwKV(#sm!+@rITcHv&{*FZai6q!P`tbr#Z08a`wv3e?!4Zvu1zSZu4dGZV%nyK8gE- zWb@5gkql8G#(Gju5k=zB)2Dl1Zay5oN;MKAdf`dDy?D(m`;2uB8<*Cp@i+fB zvP3)I2H{}QO5YYODT1}LQpk)zG{5>sh%#GkgH3R{9}8% zWLB=GIgs1 zQn!iB@NO;SW$PZWp$pF1W&&jbQrp{{PKSSV2};UspM=L!CBAIJ-=x^(4t?XK>9T% zASRtv`c1OCSl4YB8re$OHhqUg!l1S);Vr`dq*B6gqn$fdx|J?}-0~+?{v>wwnNz!3 zPFIaBlfw7d!}=eJ-g;`$F{)^8xR9cVU3@!4?&8}Sej3`(EjJn{Kj2A;JAFIC5Ake# z;L)ego~>WVztd;ynX~o3&(^x0XTMhEl`9=Y(B!_2+~y~tz!o{1i*Agps6cOc7U>*0 zw+N4CQ=RZtBn=&f$DXB@&?(37wU=zq09L#11|Le-SCaASw>g7k;n) zN@lD3b(o2BBr`rIY*RXxM#Cf9Db%5uQz3cHk+wJQ& zReORiUC#pm>834fqo-#e4KkhxBo|DuxE;=z=&HE0KpDc!-0@_*e{U@N= zsF5i%Tu=M4vnIZSqxX5NacYF93Gawb%pi-+tXtPXS6DiXd`qSE%U9G3h9Qtd;jbgl z5r37CNUJh;DMX$eT^JNDyJkPBzW3Hk5k6w}Wfj zDA2Q+puN5wT-bgz^sY*U-{##GR!MJbt)wiqSi*&ZRn|CtS-F0Hx&D`O{XEF{?^R(4 zi=+CbjElvYl7ASBf5 zoEfP};~HGyIjRlTuOmEOjRn{^dVD*$Vl3p7>Z|RnbbMp+8U8V1IX?Mx{54&~!BS0Q z{CJ3TVO}Vtj)yqgohrTEVfIy8=a3uKU7_cl)8sRL1LTLPk~1RPMR?o4q0{X&taZLY zSLDX_P9=c&Eg#|n2*uF=WZ0Qr(4GC$R(s-*>IknSBQy2?!q~u!g)1r6uNH%=zw3A4 zytBVc2t#sz*B|U3SszLLT`$-_LOOU`YyXHO+0oziqW!bp{`sT*qZUwq*PraSjrPw= z@?+ew0aB2GWFQn6hsG}|zdgSGZr_FNfdL0}q}z9qz~6UqkMA$tzDYg4SGs+d^!Q%w z_FdZJ+u7~Q>+$XC_D$~b?e6yF_xN7x_FdNF+uH5>N{??_w-5WUm%DwJ_xQGV`>rtV zD0DR4x-e9K1+>RuR6G}rOzOb|Fm6fv$V8z#wlVDlZB1v2dL2YVJLP)JigDNQ9ERBD z=1@g$ULQ_fe9vK!{LRqJXv|L9+{A+uYg?>5YKv<&_|FisbTPzhLZx*Px0cL1OtPTV zN#7ei+e5zGOSfW)+FgNtgBXJ~WsvvcN=siiw7Xsc2N1JNeLxoAp9GToy5w)7ed;{6 zLO9$6`_xq0>#2VunN5mr`jciFfej9Qy!2>--O3}Gsz;ss^b~E)X4{z0m)p5dB79z$ zw9cfPsB-M2CB3N0oyhyp@k(os&ASdURv~|GOmYop#pW26%gfMAr&-a9QN9$Zwa&Af z48P9_3<^LTk)SqAF1?!rX~A>DS0S!3uPs(`rY{N-ljp>@taBr9Ba_W5?zic{bSP?`+u&(WY%jsmXmqd06< z)L7OUtWO=R&mY@)w$;cvi3WKwH^-rOT1ouL6QU{`rv60;4TNbTG6j0%MGimq551;l zpT_h0LYbFqYn9Gt-gfHTI2h?DBK1 zN5?DhD0O(dW9Vc)OvhsFYMq_ZOKIEX$2XD?y~1t9747=H#cuyy#UUMh)6Xz%om6#3 zFuRrr4k}IbqS!`~w^=_M>9)&Ei;OX^4b6-lCl+S~Rgp-Bd9Bx;%G99xwFSZm72B=x zb{CC6w?oI74*E-va3eWiuCdy%$vkM{YDpi50|>0c2c3GF@{|&pj8_e;;0Y|1bRL(l zPJd?XVh7_=lHR^B81VjJj1yD-Exd>YHL?HDu2`5>7!QP(Ayfgn}0$6{gi*tzF?Ov;`ysQ*Yg`M zD~-BRsAU7{CN~UOHp2Qh;des%E+RemMT}I zac{SMI8Ab6d=f0@uLmE}IFJsOX9df%gXKBF^4wtgq+t2vV0l4z`IP>WE0em*uL_nI z#XSwjUC80U*d&OqM}-Fo)ts=SIcB1xH^C(QE^etLf(`~(63QSO^Vhh6s+dnExWpw! zOY?)(Y>FvO>9<6jp==OcA_+-~wVz?(l@+_An{iF|j<&k**xu1wtE~G!vVDGwXR{M3 z$kbK1$GwZVxzVfYtUEM}Z@BQ@p0|~xyS90%oC8gmvgDHG5+;t=gLs_1u(ONu`$M|HurafD5F;j=E2&*o{oyQ5_;T)qws zG+x)JFV=;(YrEe6ZCwBjh_mYF#QaYxbFALFqU$~Sop|Cc9^JCcyx!eD6}!J1#T>3S zD>Su(&^cpGPlq`@)0nzE8OLH0Um6K0PcIWJv`BLY0Xd z`S;{1DtXltt7Ot}CE0c*xu;h0J5|XfsbsmTBsW$`PrQ=J{;Bbvyg`@g$rmcQTU9cd zWk21V6R%)ayn+H^k;exAz5h@_o~ob#DiL#2`IX^%lI(hn2X&V|E_D5^*4`u))G=Ty!=o-Av%dYl}* zXOh*$BN1zY_e?Inr$E0PdU;Q7%QnsXLL zTW~Bd@fuiH$XC5c>!G_#mL-sID7eYv+7>~GxtTwY~5vo-OLDZHTU)>;ZlN0w%pPIG&-(hcFtMvmZ) zF7{MfxBUnorE{{4-ZbOjVDS2kq_S)~8}!ZQo`~00T$a(i)P|!6JBk<_k!26@f*Dj5gHc=Q&MMRo_8GFfE=sD@}DdldVqx=mdajbJ^*ZUVE%0DF~FLR0!p+9_o&Vx;JyhF9EaOK3uJP@ssGNwpw^P*YA4s0Z?~o7trnGqp zO%U(E&Nq-GxvWl^wO1O#*v}?ddrRC3Q`L$Y_wlHHkpx~92cS4|VWGSdtt^^07QWff z=E7c@7VE+Ac58&&!k3SVRSEk$E4%%HEQkM?Iem)Vncv0(986z;4|_L(!-lE7EYQQu z%}@k|mG1+E#0UzC(@^W{1nY}^!Th++{G&K?hJcIDMNo#=L}fYsWz3n#Kw&xV1ePE~ z=BW$oABA1zP-nI& z?yz`fZp-Ox|Ho8F6Ws}pmKc35@66oh!_WXl+=m@WN|aYmHCzHNU4i896d1+X%V1Gy zuD=QIStp9ia$9axoCNMpulGRhkGbRqz@cAe&Y4u~()<^hWs?=<57i9X3?uM43T|XW zl5v|E^rQ(fj0&kc;VsK;{zHFhE`DAH7XtTqKy}~Ik=qVbG&Z|ELZ&2!VWTL&LIn6od z%mfg+V;~IkbMysOPEdtiMnWu+j^Dd9{z928Oz|?1rmg3YY)FGkeI{nn*pLQ ziJ7!5H>BGoCvH$>jTjH+A`lg?fh-U6Mh~z!=91bStSJ3{^LiGVI(y}`FM+0}m?cwC zU@6bG9zp1WH(5td2~pw*(~XWDo`*|#g5#VdF}kKEN!K+bL5F3Nj#kZ6?YB+E8-;_= zn(Cwau)zLs0dZiX^a5WkrMcSjyVxyQ!qkiMQYFv*Gog13rUihAbB)SqRn`zVNBUY* z3{fIL@g>aKcN*?!`vc$?QCg{_Qh_ywf&znKkhc8;kP1_6Jm5~!(_RvQf-Z^BR53fg zCZ1aah%M8F9l-y>tQZVsc@d7R2E1Xd;#eB5Of`d2Ls8Y-%4prKs{D8yGEtBLH^0Oh z>MuzcVx0_-m}@qJoVc>8s$>*ue0AnVMMEnF;fIG&#e6$9tX(69_4FZzwb33{vY!4& zg(v@q_mLypgZk4dF@{inX?leyL*?&;v@*P7t`0?ts>~Zf4$zwL$)_MkD@se^J0^x4 zL}CxPll*5x`_3?Df*dC#b|;WfXnDIybC7P|38?r9**E?Rpim;Yxf5I%0g`G3l07O+ zPQsZ%e7t+OZ^y~IdEELH>;>eo2waKxYm$w$#lMv0i(o-A!dT=;OyKz>O3ak3(2bL= zvGhDKs20q%psUa^Jx|uB!W;ZB$%0fM_7^TX4mnt)5?G8guz8D|3tte!HwqzP3|&9j zngDaEqTK{WH#t>G7n&?k$wbFn1pbN@tgS<5fR2XlpG=gP3lY@|#^A8TX?Ne6DWxSk z%n)i2#REXt1z!7Nfz#pzh7Mc8{Zt_)9pZk1Z=K5h2vmvQBY&+rE@Ob~nbDR-fUo6N z>+EN2*kwv+tKC$T&>3|u0dOCiD@36v#MuU%W{Z~Dsyc%+$1zAHr=y-0dqfr zGA(z9mX=3bbaQ(p*D~(t+(`=OrbQw3Y37m~Nes=IYAx)*%0aO4f+&mx$2<58HId1| zB1N?jQl1E|5Dqw^nf^f)a+)#x3B8gSPR2R%sG18VuPruPw<8@tWdc`F?8_%m05cwR zIi)~Nyuk1TQo9J6UPsGT*s(>yvb%$2_XW%JVA+y^)D4PBA7;-}6WMdXV&|~FyI)QK z_gSX;)h&Zx*hAsf|4PL%xg!D*LMsqtj^mSNrdHVli&oyi?3`}1=&UL`oL;k9g8_nr zC1U6QzWh}5rK$Ey%B%Vr@fMY%?fg^vV)w&irrP;Hp6oC5Ayd9(DxA)=Mx$o~PHU&s zL!tOo_Hk%H%;}OdRz|Kr&|l(?o^rYx5?@Tuw2vIhc~pGp_RA0x96wk|7^#8O>!@+W zaU=fuH9i}2a`=}^wk0F8v0z5-mRYrXpBDJz#8-sxG*;sh|&oCP1!G1SYb ztjeK9LyWJ)Rg(#iW1h|mZCPOSvud);S8=hd=jO0%fXXoHF$vE@WQJ%*#i>2`ADj90 z&r~zAI8`%~{zEfDMidpPaEmXjI`c)f-_@TeZdlTCgE*=*HG-#?-7O5UY)2!c$a(ml zi#EGVttlzuYKk_&KnP1#|{&}DczPhI3TL{r9KihjL)j^#O3M}~Fkw)E4VvMs?Q zZnavz4^Re;Wf`24b?$>^Uc^N|AI&2?qb^RE593-#tE=$SND9&flf5joG>atj75{f5 z$s#gGlgX`+e%P6#oM2V_1_>c8oS%@&n21vyamW&sk*7%*Bmz@W$L=*}V9HcgbEdEnUQ6RHW^iM)md$ipNzIIInRN2S8fB6>Z%!oiO1VH3k=^8SI~u%X7@~Q zaWg7D_6a-fKQ{RNH>AN^r9nd)oU=#{zD!)D_3$xzS&CT2u46M@GnX#;l1|sEI_{P_ zu9Z4sjeh4p7PwFqxK9d*r`ULb+x}yLqkofL>QX>#5;-IpcO0>K@@rwqcalc93HXz* zJ!V5j>wH@B#d_kV;>tywXfOJgK4Ewi zGv8ZBD2)WP{ML`@b--Oqe@rJaLZg+}nMd${wdzv^ERVUp&ib_gUnTyXMBx`yaxyHd zo&2%@ahZpke3vS~fr|R{52a(EJ5iFc=`aRWF zh(u-r?#BA*Z(=oF#L2VY3qk9^ODTMXn#otp%_(kz*jBz zu9MM)5)Cu~h(fivCn=29;c8a>2c@5r&4LQmy5=%-Zv6aW1e}``Y{*I^TGJgMSLQ7n60h*%dMCp!)?lmrQ#N~xb1o<4B5j!P2WD+}M_sC1ZVfo{%97yl2 z*~7j9Ax0{E6s%0JA*cPNCjqsb5tZ1W&iV!y@QQQhR?r!mlU=1I-)%F~;}{=3N;i|3 z?F^$)uKpwu6-F4-zGSRn~Jr6Ru>9P^Zjo*7!F_7q&D#<*6< z?-6=5ZxVr$xK-zP{m>6j${IHJ2)Q0XZ-<4>DX)VV-Y+3ukMAC$xbFi;Ihe+7LU+IR zABr?m1V7|ux5{PG?xA&Y;;5H z3@8A|zMv*3+a$WKYqVK^bf(vdl~G4q?8$Sj@>XZ;D*Pt0pU2@(5wkfrd0&mMgW%Ge;z;LV(9;=f zT^0YUs|z)hR|~dnwQi;wFM&)vZClvOxMc_`EU2Al&YDEvZv?%OKgK!jMD{F!06qYF zP$?Jp!i988acdG*3?orZaZ82!1ksBca{c3_bwN}6kcCYb;-!G6Kh4p;^md2;ZjL$L zvdRA2jip7&`t1T=Xwo)0d#FR1>^bdhNNWC7RdOIJw?B6CF=?xD5IfdKE zY?c*GXLlQgINM!JR}nE!4$dixI2prGk6=yB&54wdnHFLg@L;jBd4y{1lgTTV_;XWr<+op(q=#e4{bf^p|-I7kOTfL;yVp0lZ{KbM5c zCbOzNa*}@eju;jo0(B3gfXxTn-Av$5zqFr3kz+P6FqY}CX)1J?*uj(WTu|gV1?jNMWE^26O>Euv_8@Ya5hQL_}u{*vs#YKG*uIMZIX8jp#r)nQzg_HCT zV5uvjw&a2RvWO4Z5)UQ^mrjn215dlLg5QJhk-b9ZMI?Q53WDhnpON&YO0bY1dLK)Z z)*q35!V zBzp7E>5N%KMk<0E8|Sa1aE>IXfY2)ubCIBl943}@5OGSP=0*G%`V91(tmA}Q=%dx9 z_lk7^IG8X2%pV)zK&ov2Y{h4@q-8H{$&xUxYIlxte6l+$kN9J`-6E&NR-e9=!$xBk z;oM!;4`^&4wIGWt#rQpF=nHTLYyPe?cL|zXz+$ua$95PMGi6RhC%&w8XoFTmi)ndKAiKIB6DyJ7w zsJd&roU!F-A#e5a7MfFT{R6?5ApP2}f%M2s#1X+TCAaqTI&?^$q^js22|Vjw;5n2f z<-?SVk$h4r?K1M?Qm+e% zUZp=)T2WTejB3Cm z77z>3viW0c3u6lrPJu2`$xAu4wOZPN4zi}80of$dOr+)6ZDe==Z9!$k{FpkB6|-c? zRbhx%r^o>o_@m_;B$j-x!gYnI$6|G17b(r(5dM5ayt0UC4KgItvl@zI2gF)y!_ms1 zD^#wE78naeu3z?Q*d1L+ru)i*SXDvdEG6eJS>hLRq+E;B-+l-pwF;$cVXP|MCGaBm zos6^uR^}vpNbc>-px~}L(FOaAx`J5s2SlC`YRLT%>*kGN5L)4Ch*g`)-o{ zmEA5o135siFj}o%=C4M#-@>MI*_c7rCi5cY{K2)XVQibp7ui#CbD^8C=t%3O+be^M zE}#?2&-UxYTdu-=#<)&2G#L#VIFI6eXu zLQN|!Nl-0&?ne_7y};2BFW(M0w6D9$fjPFl(>5@u%OvBm7~% zI>Of(YYGKOcboe~c#ut${EC8XtW5^6I7 zv1)5@eTc!W-|IBi`{T3THfpgV{8kqEjcNr2WY>CQlM~k%_ZAkvL2kk+GQNreGB>rC zKto+0?Qs+P<|AWHksu>15ymPRUmZ*3O9p)aS9+5yI;y)0QmP!RqR>MIYCv^U7cyCStOQ`IiA9?BMF&+(olF%UtcplHMb#&%;q=@S|5z2GMHdmQH{8-c(? z?74xy1#aV}z3Q+B8K4~b_+s~>QLm~j35bZ$) ztg~{G!uF;@H#hcJPITGfHRQCdZOJnq{W7Rx-pVm)>Q>BuXr$g)Nd(Xlr9I|KN@sI3 zXEKYPZ6wTrRXp0_T1HT~wYMh=JNHgl7co9cENSsJCF)vyiR0jS5;0v#byhJRnm;B1 zCj{Z^Hg6PK{cz&47I)&!7JuUPmZF5dPTb}_yh{9u1lOczGC%$jbq{B+b#h-H71Z3c zN!^nZ1HZ4~ub4l1x0Js|{%*7W?&Nco_1D2?2IQzS%H<7)z#Fg9C8sfH zzA8M+D9j-6n_5pH1H=$=&E=&{?$9NcH6$R9Y0=hFf5@9$v4`{rQ5cNe1Ew% zgG^gI(oFO^Qb0#ZS`nIPiXKJm*Zy-m^jL~+q>#Cn7b&vpr}FxgnwGN=FZJb?T!?C? zvcQp1q^} z#QZ7&sZ#C#sOO)p!Pl5qU+ynQ%|~kvFyj#>TBNbi9T;P;SzutBrSza6u~>c{M-`WY zqU=6)@qEK2R|&cmr#9;onXoEbnxChgP;ARA|ElNW+kOnO5IfImc)5@Q0q?Z!lFKSE zP}=AXol6!wk;ph*bTLUOaLu3gU`+(>3@~X`?SB`MeAs*smW>qz(kiTs`HICSC-bg!qZ8RTi5wU>$!0!IWb+} z=q0YQCC*jYEx2yLS&wI(Z$wOU3M}C=8)+pgT=DC(663L311U#ub2%!?`r3{p-b?q1 zUPeg;g#DUuh7kcau$k9_i3_sb1tZ(CMR1{6Z z15jR+whjI6N1I=abG4hy;h3d+9;kxO?cVq+N+WRX3LFxJ!EVx=3CcNo9#0W>dsIG9 z(fhrc+#(Ij%P`)i`ei~YZ+?vbL769e-I+D5my(}3 z3H1kIQ{#hZ5{lV;7FSrQ+j_5%KVm1m<{}}1eWyZ%Qw1j=Km|JVG~-+K6_!CuouI2Lged$|PgCKmR+%^7Qx zIVq9sCCtg#iIKr*1KMA|D6(xSl&9Lo-)y3QJFXL7KcKA^#3Uv~Z$oB4W@BztA>YLI zS15&8R;q-cI1F{=Zi->_5r9U+=tBlle4v3OdO7CzWP{pfoI=n(Lk*^g9LpV&hYR_S z3`L?i>YSk(i3Wo$KJ&;6$eVYByfJ@li8Hpu6vv@Jf)}^U~^<6U^dpp@H)O(~kZ7ocab1C2} ztDMo=PEswA{U8HEdFO?Uka8>WXoRS3e5t^(RXITYJ$=hZ+h#c0&WpAcIYMWOth^E& zww1GxW6nf+guB9w*2HoV+=x&o^V*e)`YLI=R8=p`tS%y-CcA-&G6AANPPabirIfjI{%gHC0641$kjc&3YW^IF7s`!Q zZ(9a}TwXs=BMxD*)RKh~5{1%8CjjfR7U2D=;0q=Gh8Kc_SUiCJwp`U5{OX}n_Zi_P zIceL0?%%LH!4|)H$5!r&1Ayb?k>D6x;!_Y=BdT7=GA?oP3Q_)Y{R(SCw7K&HnkIZp z;92AeD4da3pcGvRd)!{0?FcOwWlFW%yz?MSlS15>GlLWr!;-S)#!OYLnGr^K>&!dv z1(H`H@!X0<5tZmr6s9Di9dbm@rhImv!uFb^^gYZG zCPZH$V(U}dqNxs>$_fA z>bCxsQprkJZx$>e(xg@1;HwdK>ms3Nd$9A}sDkm%!MUSq>1K5YtE$qCs@FXnexkzhO7WLGpJdx;Nckp2h-_8B=n$z z^7!Uw7(s)X`y~YvW4o&hyEY5SrVw>W${LTo-7JIZ%bk9a61(FHhXx!{%%-u@4<4f& zlW{_od!yULei0vkwi}{w%>|l5f(4TU<551?W37E(gw0Kxf7QX{7O7)?;g^D`^#IN9 zW1uZa+k3iYA(&x0Fvn$GwkhUsj%&mg)oR~e(To@mDB|V_cOEE}QJ${V2P_HZ-Jk-U zhYuLH-?)Z5m6Li*%Xt$ zMGEBdIBryl)EPXd#l9A)@ezTxjprUyi#;H>jnYJeoRQSV!tci#562o0bu~hOa7=D} z7R;+CU*TXrNO3S9q&S$w&p9zwFn6AgAHbeS&ho|&gyvl?zx4It>9|&Y;48>xcshSV z-(vX}##BU32KlL@>(*s4m#5FWTKE!-X_(iCY5!8yO0uC z1%5z*#ClCoD!j4K8pgmgnZpq68zi|5;}F9*#4x@oO|x=qoONasy>|!k7CdA$e$Z9R zoP=KQ4!FDK6vXZ+#Bd1Fw;q8AzFp>@e`}4P^+F^3zPim|AJ@3%vbOAzknP{+&gl*$ zyHs{qrUpdXY)S3QsA0NWhjj zH5&wblzPLsK`+@M8n~8hTMPI9QkhCp8R`25*>%r1dZImE`})y`%q6bI!aRrE;%?mX zTO~#-Z+}sECP%oqeVc}tOA(<`l7LC8SN_H~(b+CxufEZP2k9p$vw{tEra`p${$>G% zjXhLtUw2`a=A655uMq~3*<_IqS~RG2=JQalnmLk0z%~~PvZymZ{0#^~@zpBRAie6b z?S5H}&7;}=(v>ABsw%F|imMAq&N?v~-I`go+3WobMEO#y$;D6EfFq4ZG8(YB?1yO} zjZ7w`JJ76ftMX>C*lgi}pA#cwMge)W(`K_9(iACdHr_8%{tAKc&9col_QCE15sKoq zgSz!|(-rp$D-&=h=Q~CJ-o+WT{9H!n+l?ObLc(D5%T1-_M3EtO3EF6zK$zzn+p{6V z2Uza1zBQ9||D~n)AO;3-L7X4{s5CMV&LjQUYUCn{QLud3U-_xvf;-GF|3q2*Ol-*q z70gr@(uMh3D-;z-A^8H!7dTFn&M&4>-}-{wm*1JVrG z5!c3{bTh9Ba9EWqRb{W4_%Rp~TbmFz*DcxR*Y3<>Xp@kB+ zu;Ef*T+DM2kBF%x@503I88ka@(EYT&UM#NbNc`q&Dj{0_up@M}vJG}WES5W}6LlS` z9$FtA-PCNmsSd2H{j0V{)kZpqHlWB9)zr!Dcs4Bp@gx(k$KzsUIThRSLro zu#&Q?k36kV>x7muY)2C^FGTRj)v*-q2!r&B56tCm6)DoAs=YeaGtb!F|2N(-dEpJ~ z&8XE?BnJph2vIK!G-!Uodfuuo3{{8-Qd$gHu>rq)HZ!(iau7y|VO0 zg={Y|q6*oTgz-U=l~GOpjunxWS+ASi+ESc&I^*?=*6UmC9?zr43p0BRZ7xn$8P7fj z@Dp-phB0@v4f}hmS-tQOo&s93P|+gGF2=cH-5kBopB0{O%vG{Z!D*V?6B&eeeOV&B@Bb{Mqq;()rP#KYdDp`Zy78ypFA;fC#!pe=JYf4+SNO3oWt6 z&g2#W5iQR^ol$@=L!}mw<@XpK20zv^qPbASe?VX|hPSpqggJp|G`$G)gs~V0|MW5gj`9^Ae@J4N-Tj(8{IJP)kCyp%_7z$ z3?7us$U|t&1L+>3N8}-*(a1+~R#}j}L#|z%oDpa|FL6U;n3@M^y_{iIMR&N%+VWSu z)&9I(q+;U-Appx&fq`hW~FR6?TP2z82R|t{o_^0(=wXFJRZ#T%_D_a{3 z>NbBCT@QA;PAu@k4VpmA3SSjnkAct?VqAkBdoEgjQ40vM!G0G28Uxx70OPf!kk_jA znaPEIPfU!tn4b(TdY9kPe-poxRep>Q%I4;`)(O&>AFJ}G=rAI3N)66Pyn3J(=XCpk zSS*BF-s*dMnBL6Y;3y6X@ydCjjLk5fF?JF^D*KgaDcOStLKhpGd)US91s58Ni7j!z z;qBN3wdC2divu`dx1T66>g05(P=peY(6Pw)rkpN_+SU2u7VmZ?XNk~IDvg!B+s-jS z#9)mKt|S?~E8o%I$`?y=tfaEw`2l=c4htL|XL-l0MgYU2D;#?S=`Zsk2l>m2^l&4X zd1(BU@{-E!%Z`o4Po2MWDSY^eaheI0yG$6BL-_hl@6sPm}poKY)HS+x&6p)Z7o zbnOYu>+4unBP(E!~eLOX@&>Y9S2W# zyIuFcSTddqKtS(bFCq3-o1znddRh)I+r?KQEb7FeXD0>NYjJP2k)gT+J)3$d#tI9m zF=RT_;EH?74tq8!^@6B1S%IPUdoRoiUs1L%e0ph>e@%{o!3(vBX7hXnGlUg%o2zEa zePrK2Q^dv=ulRv`K#D558-kJDN0SSVl5qPn7|A+Mr2O9?=^_4{GEID=VtXgKF9&ix-EU*By`kcW3765nOtnt)>Mr?jmq zoYeNQWv6KSkMc01ZHCtW4$std_J625EbhtZSm+b>%5^|=%BXT9xjKv8yKK%fwES7Q zn6+fC0w)DoSl)rW(WNg_r4Lj&jVc76ne9xLHxevvWJ?DF+LuPf2Za?j5!59Q2J&lb z<5f;Vh6csbwo5%LlxJ@J%x#9`S(X3YYTxpAEByzX{QEyV*i=C4g&C5pgMmUdRLuAe z-okxwgqAU_HgL$KanL?o+7e9{N|&75dVG*hW+#ZGOzm$f4vl>V2q$jgnY- zceKEPJl(yjpQ}>zk`h|Nx!;sw-(2YDkEzL5S8t^|OMxE4+|fKft$c~TKujAtbZjMlR1ImE?r)NB;JcQ15M0W z9cPTNU)bC7dtA`$e^klc@m62iw5febCF$oy)R{XE!3TDXURYjcs23X}9K4H<)_jYHuxF~@*!X9CDIxB^|~X+P6? zi}r}m5gIFHoZUMTV`lakXAtv4(3?2RB^MD4q4jKeJzkoSfRD)qPSLxA6>9vezDdx( zv`uER)|eAIFbCI28`zgx2W!qc>&pgFJn8T4_lgmap{&vH($4R#@Mnz>HAfHKy8pwv z`h$&+L3*{I&VC9a@(5&~dAlf?b1{!V1RpFy{HEO#rXRq29xDuS&a_8h?54h1&CPqT z@hKMNU)8r~jLLODMl7(^+y#gpZ0yT_=8ELF~U##)nSR=C0 z4`Pj`F-4HSEFc{(DpZ8pmBt!xNt0ODR*IOlCf`&stHVAi8n1p#ihHdK^hzY7VwoVc zt}vU|T&kH(2;GyM%rEC&i;}}4x&o7z+^s<4NR15WVJ1aV7D8R$9j&whHbj|{Qlq5D z@g@8wgu!Z^#o*f!1Ig%T=+TdVY#5DJ=&VtX2XNu+t8ltl6k(4u4h#S+*6dXnv@1F3 z#ov=l+-JV_9Yq4*@+88Q3jk`x!&6_DJg~7mt&0VkUe(Z*a=_cXZRepXvves$ z3Sm&9%oV-W zPnb8SC{E^!rVy7)s5wHha=r*vaIuWtml0=3mZQc`$N=7CvMYXDeGe2^Q3YgV5>?>d zZ;t{8F*?&uTEW!2Rb#`|~nbs6pQNV6h0kkTNg+981SyX1VYazes&9dLV zRw%@-|IzIB6uX_wRw6HmaIMv++M1Xo>e(9ShF+!ZC-ncxtS#(o27XXf{$k7|#5$rf zAE6aK1ULy)7GYb{mwPiX0}{$O`?Yn8jk^gg0^y) zAidx2^n9)7*uL?E*#CEBcMzJ~JYk5?%kd@77I$5&#C&21_k^YbNvYF^rIE64sizMG zfIG1W008qx17IUp)s~}-9=MhWs(&xA-YJ6N3Eb0`|Px==v7X2jca!ELq*D>G0 zXv>zqlvcoZLkn>Pj_w!}Dr{&jV0iJiq2x6!L^J>Txx>k$JBTgSVEX8DDd;dU+5GlP zSggv^dUN=j`sk%xmki~7T~nY}kbw|J$ov)vF}k7vm4l3Ve9-Kpn&{S-if+~ghPDVN zhG8D()=FXeN3Hfp99&CCE)b@c>H7>V*fPVcq_Cj+(D|~{sIB3n#e886cM{&t1rkW< z@3P~AVCSUx%)h97=9PAqJ1Q9_z6T~qDCH4GJC(oSVv#I++b#uR8X`>2h$Cfb8e_}3 z*a$P>d<5CCxAkosR7HE649-xkc-T?#Qje8Lq$uKqt21_*uSNd*ZF4$8(}DC-w+_)cu-V^Y>1^lYcQ{; zvJ_kzeg_jNmyKUBPA8#amy^A%kGVIQ8!N*qtqxfqrB*bihV_c$dQ zVZ<9dqt`JUTRaq-T=w@+Q|TE5tJ|m=3%C(gU=Wf=YZ!QX`RGEEB*QB8637wRf*fzb zjaaG*Zk%Lnk*-nN{XM*;bny@Z!12t$764w5l3=BPS!hH})s{55JRP0%L@?XXeIh_R zcTF?bA4=2gzHV1?rL+C`aB`&!5$5nK=kN7wd&O`o?<`}IkUK2cO?ggemkC`{twmu$<&>1|Q+E%Z|NIGM7zIQiHVu^Z&8dquRQ0`*Zin><@AblEZTOR-RO z#yK()@L_3*r&ELhE27s`5Ok`NQf^d5P|5*Ucf}Gs#=8P&oDsOlFyFL>2_r6ZvlD0r*8T%D% z&S#Y7Cl9f)NJr#$*9O=Kj0=FgNpe*UNr(y{6y1939fDc%nm5ocDJA!)<-=S@;9XXG zqg#FP#Wso&RCgf1OMyL*5>s%`6@lIJM%m2LDrYz+hI7SO>;qyySC7!|t#w5(;Sd># zEx2W3PyyiH`x)g@7NBX_@(k}h!4U&O^J2kj8Ld`2dn;X8X_8Y#!MH;aMa~g%qBMwh zr-(S301JuXD<2sG5h$>-Io^m^jNuw4QJaL^9f6}&a6=uw0IOS|O~vRBm1+7)>3jYv ztBm~|O!4U0u&rNJOz|?x*=Br+8L>7WB3MYOQ!&Oh-qwCG0!GA&tB3i+eX;?{!es=7 zBH>frD27-i*lgkz*EnM}K4lv@SbC!~6tu=CMu#^rzF_kh_QpK)po|B}Mrt_yJK6H) zcK#z3v)X^$e0IwIWB>88SCY+j3B*U+ypD#@^}1PgTYbdbj5hBnL;)LBFNgxLg0At} z*ZSuOy#kbI!u?{QCPk2$Ix$6D`C^k@iO1SjN9bBbPVVoX>*~UlOa>8!8tNwAF;q zvP#yrET$0K0+d*G){`NLz4mU%X=LF>2d}e55Z*Q=g1CaQ3n6`K5rnsOga|@N4lTg& zwoR3pAK|1)pQ^UPU?N4(H2v>0xjc0-NdOte?Ul{-hMY5dAO!3XL4%sDpT}IPx+`6? z=eok5QCq&={fxGlL|oa3Vr#b$ zFA_$y(%W{9Oz6kDN!TN~0{p3_{=@>NVg<;ZiMEIJKOplf;s=JT1W479j*a)UqxWZ; zr{8Hs&u!$OC9Y^t0udnf?Dp2e{H(A7*xB^RqZGi3xJVo*-CK2VinN467EZCuXUa$= zdysWevC`w!O8-UnX9tUIQ$=dY(sg!A2uL-vSp=T7>d3XdBZHC}Rp;BOIwk+-IxA9j z%Kv#C0YiTK8GVV`h1s>E>1DY6-ZhF!dJhk?N)j5fPqd zVG!HA(CsjHi#fYccD5Q}hQ>hes@3aAyp^U}Mh>mn9@-|=g22W+2{pY``dg=-We&Gh z#wxEG)lkx#J9@YlstjL#(paVTd83C*G-N@T`(?PEO(HB#{HJ}a)L}+g&~^d*M308% z_s|@1KrCo3C?{jGn(3cp&o%vgEIsAuAvj8}WXl24Vt!za{0WU%7h<0{h<#$)4Kk>1 z(MF+-$y7~apNpo?vhG_vSoS7LVJIyznpVi&e2jDoiJTbC4XOcbu~3YxA>jsyywm6o zpPhP`gQKpBWIvyURPRw2W`%DTiNB8cf%Ne(l<#!pUyAF!q+9qdx4FAZxrmHMxb=aU zUG9V$*o8t4?|cZT0mai!C78(Jp!xfl_K6#4W!gvwk&iLF(#C-ZtifT1ZmY!`4{MdX z%M4rz|AO8Hj5kqaiRLVMAP#pUwdU#wDdDoW?Gjlu2}H_9_!VyU13tF*`l6dsDCQlu zBz4&3a0okNku4>#e)^Cs6$7wbniGp-trL?2tu%$=wlCtvB4z1wmePtT^{vaS5^N#w zP&5xY6nD6V$XSY-v#l7lZab5IksG4Mi#7JHwrjzXd|YK8geay|Vw9G7nr>z;lcQzm z%he|DOCY%RMW;HJiQqCdwTwo^rIkk2^)*u(9C3Z!np&C>*O$h=C{iT6rRLy-ExuS5 z=5L})^ol#Wy~vAhp_TDOd<;p{N^k4_(du`N?uy?KYHkj*^S3jBYh=?NqcL!ex@x}8 zcj4q^x;|NNOSVjq3S$p$j{2H?dD(K~rA$GMYWxjOQoXkg9(cETlWtRC@Cs=&bvm0f z+W9YOCVk&zf|I(Xa!1s>JGD+DZmG;#Y7TpF5um?Oo8cu#wxo z?#!(4=@6N{6=zD|z^)~J_5WFkGuzjll|=|Wc?R~f-t< z{59KO0~?)you({C4XLsNp|=Ft#udR~pPsu+mC>az002I$`YynU1y0B&OV5?eCheLN@0zKdmpBR(fvu ztkR|4wmb=NqwE3dL^Kl1HUCvC`IS<|UL0kaltP=})B&)h{ZgZsl)_K#>ca=-+w8>_xUFYYXSmRr<#(iD3YN&iTEKWTASb$>Q?j2^5I*J7= zkFjjnEx|0bBqfF=_=IQb+9Iak<8VNfoJ$92;&nM$2JEW*U0JiSs-GfznpZEI#Wgd) z{bDnI{YM!hX($ml_*ho@BWGg+RJ-!x@@#^EL6MKiOMJ0wQ9bfw>-lfgb7jW2N1m5k z&;Kp`d{CbIt>;P#SbezOeDv#9+u|W65%`m}s4P@NCf2Hh(g!qw{cgs!mqBrcu1){0 zkl&Z3f8Qp*&q@DolHU{1G`4b!`FkB%2>`+0g#(%N#tzUSZzDPSX~19N5090M0=aa} zP{b4sS@~h}*861Y^3&RHxhK{Br{DoAK%oe<@Bo__u z?5@UPIP5H1qvm|og;n+AuD~a)=bY*#ijvMC5=f>$JO#+SNJNyb>fjxiA&ta$d+d`m`}k-iHO&;=>%}q9`TUR@-~XM zM~*u@@k{uY3?DbYGEJG$b38sazofp4v)6I6T|d80o`>}JneyDZK+1>lBmdYOoUgv0 zC4Lpa_+dcM#I?w+d+k)c9(T0Prk*}+Qt96?1ZA2R8iB(I9kTJB7W*j%e_W{F9%m4N zz7YJ3JVHphj~%U7Q_Ze_+`LQIpPH&~TJ=AMt8Xy(36U&y#}bD==f#`~M>}A(Jk8|W zaSpNQ>NtV8La*E*wQ|QyjMV)@0oO|0ro=mom-%y$)2Kd_SnLY4;8P|CGbz&tTawZAg_IN}NrHJuF=!`#jrHlAG-mcuV z=eVf%ltSt#o;IGJA-N6vLK6|GveQ2EDF%=j&sUc@)ffIJ;_c67KGxv#Z|OU6IpOnbYE}jaM?lKJ@TNSb8gS zkuKVtx{@vqUZP^`qVlza&`V4ZYpOI~{KmAGB%Sy8`QbDAva$in5PL30n4k=*Wzft zwJ02EIju!St}=JAmCMsjvwq#xu4l4lS9`3vkiYvElhp=7P zJ|a9`e|jtGh1H&8`zP->#`TK1tvu$23)Z1ByW>|n>{-5NlO%m1U{L`vc;an&*dYed zOSA07yW)Wp-QF&rXU_cSaaZervAe4&honb7^YqU+!9aKiM+n!1m3B{8Wo~yBUIL9S zIbK4wKN~=HCN7DsS9e!AXIDB`PctNOl%2&VU&~V_Hp}hSAW5SptjF3Q7iWA&A{!kO zl9E6^Qo~Vk;kp~)UFyk^HP~^W^^Eotxt`6EE~EW~tL@_U6O%lf<^Jspcooi2MzTPA zD&Lh?+Jh*Npj?eEq2Ta`6kz7Ut;;@Y-gJqKT4ZcHj7Wj7kS-C(*T)-Nxtf#GEZ4Tmj#Y?Ktp8RXDI$hK z@-R`)H6Pg{7?E&J-W!h{IP1Xhj_BYd&jY`eOQf*#ghOuZxINg|7UV1$qzQT z|8ag;?^H7Aucd!K0@{exyZhIx@*yn75@Ys%xWCc6Kj7U@a{0T`MOoMb0q?;kSN|d& zl79QxzO#ESl&toN=Yb>uh|~mRI-hL*4%BV+XY5u8rfarr41yBRCQ*KPwgd<+C~p9@ z`Eyh6Og7)MrOIi&IaZo_vzs^lJNVCPH@X5Khizu~>am)ubH<8?nIIBH{vX#@>4Xk( z^ounxq>@3tS6L9dQ1l;JYw}wPmUy1qXYAPiC-3+j@f(tR`{QlnK6-lct`#3WEv?L} zcg3Bj_5TR8V67&RU}Xl51iApfv5q!LrtbO14#M!l>C})Yr`Ft!#+eh?b;~t*$fyZ= z^}2bGFfd}RdoD|({QD;vxj=S~5}h`+D1w`F|R z@pp{BDg1tczh=I_&)*vUt^&SYVIoz(Aqwy|p>f<1<&GR-OE|u}>}dVZx&HZvSuZ_}+Nr zExpizo8#e|i<61`hL&-Q>danNuzmZCWc8jEFbuIqwql~OucoFnvSt5w7`~BKnRFRj5OQdd1U5(kLYcs;E%<2RH3haqS_GE{9sY$&x+iGfBrYC-0 z8rd0g)wEnzvxG*C-gxy})3)y&Y^hi_ZJ)s!RiG5vS+)=3t-xzK=ePpI?b+Ku$9QS`AHCyW+S_jd78UBned}fO zdAX+oJ4tC;7!kGnZ*LiiST`Kn zl)1S>I2H?c0C~>60Gf(*h6G;)^20g%E1Ze!gB5tF6wX)HwV^ZS$5oE>P+oJvrQt~8 zv}Uh-jBj@Gp73PGboY*|!4olAd@jB+% zo0uApi{W;yo}gBSa!oKvP73psDFXj8#c!iH-}O>~ZPvg=DH9>SK)8f}1B4quKU<^? zG2o>kXSe|1`(Q53cWPyjXo-FwxgHt7-soSQTg5fj*cUqchR~!NLU}K|v;r7C{RO$V z67Cm-`AX!xAjrLVmjpa-XyB%RBwBbLhTuY{Hoi2=8i|!eN5uu`bGTV?sF##&n~H?? zTO?*s=3`4LbM>`4LJT8W2gYIS_yX9Oxi|G+)#}h~BLi}pS0X~>>dG-su$v=@kh+-% z;6oy!6S|&YdBb60P)hig3>_j+#~gRPXIt3i`B`s+XIq4@Awl!L&nX($+r9C-&^NOm zkpEYWc{Xc#_m0tN1u!m6p#`iI#9pI-_0Eq~KgCrWz1NAPKjPy4Ppea6;ioe1f0d1J z!dmYCY<2&KlzV}BUk%dUDJ_oYA>15TX;(i{y9nde>L1rijsYV5 zwl+bbr7hT;2Y%Xead1Vf`o~(A%d3_MC?jxGn?}e`ghcys5JQLP;600W>X#l+DCQ(L<#6QOCryC0EoLgijibjVasi>AVVlg&`y9 z(ga!|zdc*p-@biaqya*$mrq36;D7NaG`F2i?}OQq0ueci!pbLBX)bfaxhdM`zW@`F zk*tPLh)`h~B5sT}SLN4CCSTjNQ|A)@Bb%M(O!z!ojUrYiT;zy{Mj2 z5W&c80|l{_&i+;!ro%e3ltGB4%^-uy9yTwPF%jK|+mA>h&g{m5vcszvs*VXd?VY5$ zC!SzEYdwZup#E^|nAXeqvp*t@7kYPovqRCBiSgj<_t6h6Opx+#@Us6-p^zi)JZZ@7 z!qVvdVd51)V4BZLU9ku%Fc$meW*`>oDyL`TUT7{=BPcaOH)Qu^A4}vCU^hIjqO5n- z(f(&B0GjH{5*lO#s6#1 za$WwsLRvo5Ur!;mN|VpZT%}mVWoGe&Yl$QaTs|z5`PxsjZ94Znsxelq+DOLR-j?g= z3VhIAnbQ^cGel?$($K#|d-LJ}vp(1x_-}{#LR{@uJn{kU$yJt|$|fAvJ3u(tVreVn zoOU>SSf0xM$#O<@H6X^Sc7q;4|6?q}>UT1L<<)7uG(q$}qFKb9=LXFpT{STopM1XR zo~HG(=-JlB%NfJm?^~l89lfIA3R;)Q=Wsazuf#o1vpN5a{Yi5@_ueC2VkBjAcgsa7 zjIma}1bwal+`7n&+tx*%ymejVW)2LKk$+jNslzcQJ1Z;8rfuy2YH&%}^<3fLxZ&PA*>w)~>CIVF`@Yl@0@)z-F*X{sk})`?92W=l5u?XH-Cq1 zX4@ff^A+XpR@f>pjCI%?W6uS9XYUP!ZmVc;QP?0YsJ}sHG*!Ur? zL)_kP`%wzjgay@{z@YUlnfnPM)c!zy@rG_jrV?7%e!>&FfxFYwN$d>=M1|Q!O0;s^ zZ*h#&KC2?e5SdFVCpaYhJSCw(v@?^V(3dBqofVL%fcp}b1zDtc`A0wIjU_%2z1T@@ zc{;_iGL3ux$dT&r;gMSSz<@}g#qVIRS+;Yvgvc5TDOEOaA)%qIW-Fa!4U}E73a3Ok z@hbQZ6+kS@%PKDgXx2vH=^68P@Q2Foo2HwT-`+a1Khf%~3`l>ImRoI%+DTF%bit+aE z8Y_0G5}?vs4)}ZyaGAZ&(}DSh@fFOxhSXY(Z<*r{AL zzqS#kN#sD0!c-<=OUTwpSIyOcoEQqParJlRNwp84_}?mip(zX5 z5xGTn-6=x#>u7!KW zW&VLf+dp3V%MO1|sPhX-Yh2;6r8VxbWJt{}?x}zX7AezKnxA@I|2WFFpBU%qERyqp z`mnlSYUC{lX1RLixMfplw=b|$HXZSe;}0L_m{)T}_CLu|mFI<=<*snG5Z&`3oTpYp z<@lynzbn*9-XsY$FV*AK`^?Y(*xFXlrf*V{QMZgYKY*Rf4ixY{X#TYw+!0JSx|U&u zSD~ISK9G^-V7rw$#Tt>;F6-ch#zJTIu3Edto#w7eF)9L-JevrJ=`beDK&~nztY`-5 zwS{r*sU<%`hr-9)4gEtPFy`bgcZFQ#6Fr@ixklPg@MRodGPdjZQr|?6T=mU>hB5{|WJU(>|-pweKRA#r? z?BnjNLipk9|13|H&q+$HT_fdGM|R`$XPxTU8$WxN6@ zIWTx+7jy+ccaj?j0y5ew zei$zEtHt1>(^c1QGAC6zy8`c`Yv>|dPW3=Ma4|T@nxz202NGS3#1&>3C$%CMqjPug z4e7>Yk#$TISqF=h?dkkAJHic6&gK;GwLv$>8utb+c9?&^M1ohTmU=+c43Po3%_qtf z{fTz0&it%TzMHT+$?*Fax+KHzlF;c@Atl7nrChlTSq3oBb%jQ*Jl1)h;?;-5Bf5|o zL&=)|F)C)4Q;wKe+E;U=ZqG)I)EwCV+3cC~$m=qM}}UN{VV&yr$)HYwAyfkOkA9 zzKMpHE`>$(gFHw|rR1|Qmttlb`X!2;Y@VQVX4^*!SB9HsAR_<7$fVDGLHpLnK3g>t4FO}PB_)AKq zEgCt5!HHW(ogoVy<#UxM&a}{m0u>*kBZaAk4=Wf*UE5tnUr zofczhy-*KhOUXu;7=b%tfp^gkLGy`jNVK(xHNP8=Jo@z0Pp^0y=DE4}Xw-y`+-Fp` z#;V_ng?}6iKjZ1Z{>?FeK4DJf)6?+>jvPrPJRN0x;rF@vV;j9eyfKGn^Rq;lYmeML zj3UaSyYEJ&GHi?&>U);bnOe`ATj1JzjB@pCtH_gsoQr3Iwa7>V-{nL=4K|yrTykdi zsobjwVZ$$bo~x8I!@=QTnm?CY{IJAxgZqT>uYLyFGUke}bLuwU<))t3#;H(c#!;qa zj8I6cx2v_{9Ey4EKr0v z7@-zKZGa;aTsF?HG_mpj6BbXrZ6)Axn6GZ(ykWCqT$-@VT}?6+T)ri#p8 z723~t@;rgqz&+g%HNUV|P%Xb!F&Opqzx8{s`Ix*HV;J6h%|-GaY{QQV z^Vute9BZA#wB-S@^3;RKOg6F40kx#1e!*>`@3DA_N=DEeP;4wBzb`a_$BKCbrVP{_ z+o#*z#dvvenf0K^+{%L%K;jA@?6sgd^(*>k6+fY5Pva+I&Gty8Bbp2E8| zi<13dlZFf8+dUG{xVqC(9n|GGER=oa}Yb|8IE~29h08JZ^`?HhW<_bIyl!A5Bw@< z5hw4mEq#GswUhf2Ylz-JkFPhdeVqB~c{W6Bu^Yg@jh+1!$MWtLaM`<@TJsC2#`_;e zsX+h|#q|>J~3u9(cA)j!j}SVwjttf3=h=Cs1^a(7;+OdWe9g=3U_A z=!J^C*XB&o+bB)eoD4fI?cO~Bha{B-^=BN1ixGEa zGH3`tD6CEq@(yvfNSqa0?ksI`Nqhz*!RnneCK0Jqa!OPz%ToditAoC*m)Wa~p+(6U zE}r4goa?Yk5>vCZ7gUWaZNW#L6FlVK!FNx>LD-Y9LQSNUo=6`E$wLUffU9k)QA>KE zkgKwc;l0v&gpUZ`4sM(gwu;p#F;|GPxY!*Vhqb=F0Nd-0J@J*UL=N$0R=LQS6+Wt> zvR@hF*Hl)@HY?MSEW`mpR_IcOCCj56g3eJt!~joj&16tKfyN?+i}|0;N?<+eA{qjj z?Xbqq68cV+@g;M+_ce8k_BZ7qnsPClc_2ZCA36Z$)=Kh4a>U|VhY{|2S(FbF`Lc{* zC(TQKW423W7n1?`yZ0@ZW>XVPqS{4_!y2Apjal5l#GDr{=Whu#wo=^Qp_2+bKdo^6 zvsoircFx|B(elg#>6W?VRmt-hu4G13A6fE$GUx{B=IQbLA!S-WNDT?TfXRRmIG7iPUa3l%AT=J}N34W;{GGLlVz-`T+d)= zkcMuNP+oju%4~R2~DXJFQBg~FUH7NzW$xB#Ya`R z+Y$H$AvLMa>I}cQ@tAE)%h-*>TM^@bL5Pkza@3f2@tE7Oq519G9S)4KU1rWFpCtP| zT(7b(lEoee1~G&i;xdd9s4<2_pV$yRPGbfl4`C1<=>fE>50iJa3)QWpf^cSU?_T0F z*7>^{56#9|rGS!d%kRzwXm|nJ3d=!)-(n?WIaf%)XGzV1X?^%Apc8rO5Ip)JF`Sms zO@B?;1P0XlW!`WxMgxa66nHvCO`BMfViGMg#{n%!ulOfAzV^sqN{l{u3NgAe7P$|V z+(|Ba+!kDRDyS`yaJlS^BW+8#idbX3*Eqa~xiup0$UJ$a14B!ChV8X_n^y#tpW#Hk zy*eEgB6PT2Y2hkqK|chzTYtl$!SP|d#ILn)FL93)kAJvLE!LL|dm}yGl{j5=;8_A~ zaL@ZO*>!k2iOKBXE>m}oj@W@4r8cpEsv|DJd>EllHoUuP3F5h5{{(G=16pY^(b9mJ)?yiRSTYupEC$a zQEc6go=zd-=ofFhAY+Wm7#A*Cv}jRR^`HtHtHvl}szq}^G)Uc>3ht5mjxA2&GBv_E zYJ?=Qa;lCgp9)$skTF>O6^vsAF`=k^_MPePDD2Uz% ziE0{IMHeZbTaAyt+WSH`mqyN+|qUiEZ5p%zLliVE|=&Pf6l@znaV_@jkClL3^|7iyr~TWtg7JP=w2 zQ04-YSJa8ODC&T})W9hrj~72Vm-&lYc0`&55C_G=B`^pb*OACkas10pM9xv}Z(|`h z#Sl#+ZSTQ)x-~814dONw?zv*XV&3$w2!;_UT#Y zjI9$_8+Cg62*fUQ%tRFsi6ASiBarKjU8nuwv8}&}*OSDCXPqlnD&!;n^7sa3B@WuU zDm{qHB&1OId`Kd0*o!28GURo=Q>bLlsSwKMYCI_+_=fcsy`J!Z+s3P)V!O=--bn;A z`&!^UDql6I3QvbXvO1Jd2lX$)f(?hi$i7>k?h4(?)u1kh2bpWIrO=#ple!r2JU2sl zkN~U_n3w2f)iS!-c$HyBGed%=V~44TVGL7T9HzT}4T2Wml(TX84Y)+*az6f)dc^IC z9JNlC^uA7yX+Th<;6~Op>89j3g6BTG0`>#%_Z`>y#QVq#9t5Q zD$82E5c>NIJ=3{q$kI~b?`nXU3(ao-2PPhphWZteTx!p~_IvSqD6l=w?T}1zhny+w zI^vQ5#$}vO!XDxK)LFniBJ>iT7inZWphAk+&;jM%lMwP#F*oudImD$U(s!2mlW0Qs5PWUQzIr|BWtxTK7Uf#k&`t*;R99_rkNfYR(!# z(CgOafB7?WIieu%NQe%*B0w^_ojPUy4BZ2_TzvHZ$ z`Pv9#&8lk4YXb`OA;FdAE2GNQH^f&K#GjWgw1`n^d7m&Jr(DKP-YfwDSLMeyNWn!E zamQvDtHdJBTt~@FzRvLTkZ-NwPi16;| zYAD$Kr(nQHo-~wO)KH2{VpYpfP6vMQ^x*C$l(PBg$>Z5i7oR#FA$C=SQ7il=?CB8` z%Li^D;fO2bR4cm{tT3zGC_$if-=Xth3r=kD`?4}aN!FSz0l7bM*9u>N^OS_t;7l-1 zf+>E5R{~YU0wcB~NLQFtH@RlZx&1H%U>ouj*B7qH2t#$Z>dIwKqBiY77ThgTJ#xGT zhUAhYm9eC*`I?1H7snxB9_4l7ku)JCOt(CCK!bYT#K^n{jgozn zo`fau|A(676rv9*gdHa^^9sMyVUOR&cSfA$j=?!o-ZHf12IslH7IqZvNoW0 zDGU9DhtM3%(FqfqLc1rUkTcmap*pwCNrA%6nTX>eMB-KXLYjPs$DEV#*!Mof=sz7Y zPTKFUQAMv$KI@Zj-mBJY^!h;1yBj1%Fejn6$~D%!SoK6On%)9dR(2Un{0!`@KoEQ> zf*B2h1x!TZwk{Polu)gI{do!uHKPnD+2A8w$nmZ!KYe+`iTZrun8R*KXmti(36JJJRfF174=|9SyU3*V9>lp3Mo;Kz+8OZ*<*yBBBmww(IPH-+1)Zjyu#*6 zHVG_C_9oD5#MkD-bTz`55iC%%6y-9)7g&?!#?2Q=T_00PM6F@YYKv9&T_dz@>!*r={t zY`bn0!InfF0d}X{@8H+K2sF`GneP^Gvk?Kezb0?flEfy~Kw`XP(;l!tp=B66E;-{z z;qgDw=%=6741#D0g@qtuB9{}2a77V^X}Y7YvOq?|txUpg#8E|pXi4XuNhsO0jF45Q z{jaU)Mx3J?If=x%m&r+-@Qxp%YQhGbbp3S zePP*2$AwXqXN+n#ruzYnr?&@hG(H~iyVV)&B$;$h`W@=ZQ6q=DzMu)@gfz@Z(vABtj%I=nEW{Jy#*3hRkuCXM1FxjxzxcHM(*AuTVxQ7WC*oVN`O8AJ?tP z=t{Vg(pBGMS6DR}U7fs8qtjFZqZ^-yWHk1S)!5>6W8c8WGTqoi>Bbh}bE{;nfyC^L z*?mzpF~dA9-9!&$RJw^8n&_?cXMv~3VuW!*^vN?KZWa<9k50H?$zi?X&(!_Rb&>z% zZ^F0mGSgoDrHt|_Pt4U%(<$i1liLp3S<4e=4_0$)`aL6=8bG4|>5HvVU zce=AyyR*^BOBy77<4QWqq!~||!RhH4Ja=_!2DNshr<_5s9Z>nd%z&dQEGHC<(3)xz zPcrgg%PjK--I>7Ed}kKR$Fw+Roj5IZRVDw zo^Es5r?#2>zqDDR+EjD@9rn!D+<*9~Z5AOz%AEU25c4NSXTf}Dy3vVtqo;(Jw>JFW zA%+B5^&;pOo>*!cEO>|xWezxM#_cMRYtA?;xa|Z=we*SSL5E0FV zX!OxL0PRf@ODG=j5lxE{Rg~cMO{v!?v#ZKcT1$Y_TtUPuWXLMRmTD2>2w3-aBoN;ro`69rJbR z0&^(wO6v#G!CKX0c!2mKV`4KTUBE;AP0TdS4rwDRBNyc}%H^_v7poAmj=EwKMH{Sw z@SR_}#E)%y1px%xrpR8oWv`~Rjf)QEthZzFX}z&e%>HAI%$5k5=Ap-u%1JmT#_isC zK%#HC%uf1O4lJ#^O3n+9PeM{e++$i_OT19p=nvm)kT9rX8Z&)8Xg*B?#1NpC3IpT; z8g6FXOnIRO_JUy!`luwd)#C8Z=0D1tJ_H1?ogMv4Y|0}(zpw<{Dc{-m29OdyJ zQ;+BIGdh?@4!YgynU0z(nxwC_Q#i5E+`@C2nra0@+5v#+?u-NQ>XmW;+~&#|N^dEc zed7g~|7x!}6r!((DzRi72%6njiaS3*-#Q1FDtku)A(NC|az)4)F~7B6^o;~UjtogS zTF<80^qjzuQRjBR$^{@2nNxIQxG#dRk z>BK?6uptSvU@cZ$O~fD<19&z2?fRJ4yaK)_L;t0@bm6E)&>({SJEkdx=GDf7`Lr0T zS!X;bI?h;4tMQ=BJhoY&%Xm;$Beq%87si9qcWko|RhjpYFcW|Ou7t6|KHtA0woyzg zVjESn8&#VdRf8K=>~;^1YYxfl+amR-uq z9Wi$^1_54|XVdo>Vt2q-iXqIkl1iektJ3wNVEWKG&Fy^1%~k0qso^_OGE6XTl{kdB zO==3!h!>r$RnQw(^T{lG7Nbsx->sgi=ea<>o-XJwre=(M=~L&7e*qHslp<3@mq5B` zIP#6-+Ib-j@?N%Hq+YGK4oUWub9D9;1yfG-LY+@Q=2%FwP{;*rhjdZEo~Vcq8oYz2J4&u6~i*+ zi+nYx&o))EtPBKoBjK{JxF0=6s4(9o(@ruY*!KwCZT5FSRM>-vMcR*mBGUZGVl7sy z60hqc2XfZ7^nc^jX!BHVIKiSz5EDnn=~wqfFPfM%`fM>tWVp z)U?*kYftR|IN>+)WWt_~Ujc-wHQ4~x89ispG|XiU2>Qfpn}m5A%x|fx;bv70BQV*X zOp7wNU5#U7e{C>t)3s*mTB$yudeUvDOBY+iJBQ(=QmGUl=qGKPO&ZBzhd@+XLqcwG z#~*2c@-zb+`{Dx3EE@LcbaSHJm6|JK6LtJ(dRZXSoW*DyV70){v@Z zFZBo*%A7}oxmwi)$Qgq4Ts>qrk%IE*c3EtK4F&uE3}j&-ug4c!z)qAdafaq#@rMpe zDiX*Vz+8|vOpH~hMmjjM=i@ngW1pc-d*m8IGiFNLq$CogZ-GfHfAz)3J+ju`;X=Lt_zXnk72nKM#Yn5pV# z8uqO=I#nB(I%8`~aQp_@mX<8$AozT{pBl^oO;&9RiwJ#f8JW5p%z&zI8{sI1Go@)( z?2V-NFs>CVD)C3<`s5e)lxm~F{GqNj9gaWx|FQNi@KIIQ0(X*`BtsZD zgA5WiYEVQps9;bNf;Nbg#7ANvl0X%(RVhYqMVx`4dEq3G$;p7W>Xp`7ZEb6-ZEdRp zRUrXOKrG;+77F;P+A|K<3zjPZV&?m=ea@MgBv{+;`}{fNJoeeowbx$nMKXXwMQ>`Y zm&^K*m~6YTW;`s;DmfntT}%Fp(=EENd4n92sl4}_$~%9)UVzEu1-f!2aKfbqGJ;K> z6ml$>Pw1B?*p!_X$SQRBGl+tb5+$LFn{dE5a|u&IOGM*4W3oh}LB+3iyv&k|y@%HE zd#>Q*jy$L+9&)`%uosiAA>E%uSkYQVEXy=3d$!cgJ7N=Lk6o4N)zw3NJCv>QoA{exeP(uwe}etecqsmcB#cCS2+!&fLwjN}sP5K} z5CfGSDn z;MlC?h`9alS#o~#h(DAxU>T%K2<4sxLj=9!E>a|KpeVRrdYrQKVtu)g4%PbaWH!Z; zj%<5OW^`Wh!(W9v~{g-yC zT*AiZSO`cEYlyCXo5q|mW$lBwNDO}blMB}ffftw{S=9q4hgC0i4^h>ep@Qhij&~&f zU)ZF7(u%qp2_6?pgE5wnW|fbMI21*4+=3g54&_{MgIXDXjjrhGBFMkMwM+_;{XIpi z6a_Wa+#BQyEyjYkG2?3f297ZwW&#>hmLRg^z$wZ^mu&)%iU4e93{sL{pCmYly{Jf2 zwN>hrk?$TF$)Ve}Df6uGvtw_9d0BoyV%*rS)2&Z1WqRv#{9C2}=vn?$>o2V1kIZiP zc`icb516c{!(>K%Eup|eTI(@hDV9T`Jci3V__Yzw&v0y>4=|(sr@x1I=a#H&6>sWf^~`XT)t-o8@$(Y8YVjefP+B#2UN?6?`<&WA;S zjL}Q|g+&|G9v^3I%s?hyw`G-4O@C1~<8laSWD{7KY&TB2jD8F>53#CNqY!Z-)0u7@ zrt@OqvIf_0raV&_Yl&l?cve~onGeWnWgtNmw5$S=i4A_}GNX(pWyfkAif$8(Eyn*i z?|M1&&eJoS>vB^3V-SU;lG)6}B3tW+1~hvF88OAU7p;rV+58`6v{!}MGHd~fE=|fPE z1a-M*z+-LgRj%=-;KgzzNKVsZg0+Ou66B3%VpQA&iVFO=$1Cgh*h`B3_%wQ*zR0PY zax2A=n@xulM{bHKLW&DFrz51ebCEVM*59D-v4jrXy(!usTrajIpiqQlUGIvz+?_vA z+GRA~on%??f2R(Va}84T96L=QSZR+QqqHC+CK{9whhST=d8*nYy;0tXT5zbPaIJLZ ze<8;K#>nCUlMoC@H`is$Mi(}NKcY%QM0dmBPIn<`iVNq82X$INR`@_Kq>{kHp&DZo z@j28ff%@3pjYgQNvBbq2!%xmPPn!R%BpOM#(ohahq@jEVfVUPn>AX`SnuPt)yYxit z2ZE=>C#L=nNn3lgnvr^fAe=y3nOHAH^+4aUF>u61nGom^pDK0oX9iA&CQM~er8z|< zIY3s4r>K-jv*O?uy*7B8o4OmPSK&qkflHiO!`mh!*YmN;=6+{z%UC0oN6?RwN%mx@ z2M<~eNEnFqqB2i?w@{g}lpB?UR+5D$y%K8*cz717N+IbFbU`v`skDwiu@h^=YsGkK zC8A>TnceX&HH!7e;6 z3A7}^?kLh{7a`PAXCn6OjLL<#Fx^T*>IJ7n?x$)~;(8x($qAfs3%e6UD{`#FA1OCvdg@226(g-=kQF_M-zg#{76a7=bPdNNqJ_geQRn3ypFTiYSyTteOPy|L(rdT*`TP5lo38R-tlrg;L1KkcR-AjhMFVPR0k(( z&QR6wF{-Nf&pKEmh$Me+G;RNGI1WB^;13$E-~ayp(HM2yqi66O>cEM&&#iI4xwOFS zescM1%wrJ_U%#pg*M5JY$vuRfZNUPfU_h=ahC$rm&R|%3eLW2s`_g-I0u6f%!JB(J z-~D{gw*6<4F~!*LJGgJOxD!naWD*N2lTJ<#9#7LczR3Y5o0k(Q;NngCI!p(4zoCly zN9^CT=QHaj;M~7Q29%(6MO%nHzG-d1xaS@gM0nKr;r(I@rSHTt;Q=ne!M5XI8u_8@ zYo{N>E;Cesgu&pA3LC(+yx9wy4;tc9o8li==0Cg4Kdj7uN}2!UvcP#VwkokvmNmT} znkt$lkM^f~ynzN8i+{)-~nqGxzV12Kx0m^FtLm2{FC+OHK3M zL$D9epv3TUP-`RPgcfz27%UDxp)YDqI-wswX&_mlI8|NL*y20rG0y%#k-I~MbPq1b zMioe3zWSgI5UN=Y+Ec06qCl4Ye$YWXk~RI>gO&r$jej!d>~@63<{7Ijp3e&22Xp>~ zK3$!&pUF8p-4pmkPFQjUHw}$Tq3whAnP%p(N59NGXt&Ej`zVjpLAx{Qpd~$|bRb(h2H5ycK}boAih?tQPQ*6YlfSJ^=+}@dcwde)G?%EbJ#7*mc3()s zNgZ~vE}`;|wAMS3H(N-f3#2iX3Bv+RpYExdG0-~X&mQpAK}jED5Jjlv6;4FTDNI#u z`~)SIV5>pVH+YDtbzZ}6{W86zjw88c1D|jtBU+NzCWMP&L6h88c!?<8 zx@`$L06n_O5EiU+kq0_>G!+dr&k~9Myqt>DNF2AtH!_ukJz3yaonX-WwfF4}wtap$k_E=iY?%AuTEP3L2}5^t0=E3k;FCw|#w z(xkkMH()hN$Fo$&lbURQR9e!TrQvXS41vJm8I^5w4;l-QWm$BQn1>S0FmN_02m@!( zO;uWF!F-3e_zrTIj!Yrs0Hwr>fWUxa+XokvZam0xR4#m)x{Z8Ifw@SimfcB7dQ2py zkh4%GeH7mk)lf3)3Y|juB|N4!EQ$9(vKK}t1sm&Fm(#hn)g<7^tw8|xIX`jlA?DS zeR{c}yML#13a*iP(pn$k-}bo&r>v20wN`u{Qi998DO3TfG1E{ks|(yyG_5}H-IAiu z>o@eDmV22CYg%%Kt7#Fx@NeHCgr`2IYaE4k;!Se=loZ|L5pyNO*g8zGTKPxH zU)nw_O;KR~{F@RhVG#8IuY5oNP7x75V+Of@y+9LQEjH zr6RQ z$tm$JISZ_o%#a{QNT$dIkdftB@MbQ@lB20oTE;b@U+~x(FLD~ zvC2mmi7eoNd1&{ebV;0!Cs;3%Q5*}QaZ8-IR|t~9t|U=z>28h9M5WqmPSAbc#XF$xdrjY3^VB88_H{UZ zJKK;=3p-XEpN+(uVh^EjuoQ~u4%hAyVfiI z(q4bjV&QKa3;8lEi)gf6|VEPBa(7zf$GTbgp9a=O8KMsy@&A%Q~OwqIlWXV z^zh8d@g3bSue=fqiTp(mO1|%EmH;{c8wavw`dor3pbg2=EGI*7D$#dN5@h3s_94jG zRFT2e-yEZW&s9|7UHrD~L3kbuA++?43=@~*ZpneVgOfn$47Gi1iQa|GS$nlp?+I>M z)K=*dd3|N*dco&a#=EB}>UUs>j(&PEqO))isu+n94bk`w(^XlUZB)@T^E$daC3mtN zeJ3=VFi@Vh*2hY_XVNfSh1;=X-kdR5y2xq?p;zNC zsnTAY?W{6x!D9?k^HS!lzi`A1V5=|!2*LyFR^o{*T4a1ag|Ig9PSK7LuZ6Ds=dVAbWQ}m+ow52M6{{z zwX=3<8#YzxIhK3|q@<6mn_Q>B1j!&pxE$!k9@}4BxYWC(s7f{s!83E7 zgXtb8nQZcus=|M&T%Rc_ow$@C*TRq`MN7SlyRi;bSR>9WsupTsQB?~ku6&15R+yD< z5^tq=On}KaM$_=Uj3!L~vowIzQ1Cb{LzWJ=JV}iY=-!)5#W- zXpk40Mb9v&pUpX3ZO(WcO!di!ShpHy$|o@P_BqIq2uLj`pxjH|RnEK`IkdL7 zSa^R4+s`yInP$8lm+>u{5!@#~&N~#YRuZ)#VB!h548aqk9 zK0CQFT1cX~)Pl_Z6G2NY&wz_8#( zQL8w%__S0%!gwvE@E&>klJzvEp2lEEHMD{HQg5i?qi7bQ1imK%04bOdD7hT>ctdlI zXljXh!iNIboq)(cP8CEh#Gt+<$=~F@6bL_Ym~Z(Xsl<0!c$V6fYU74nb;_%@?$H}Q zA{^{|2wlm+aldlzu^b8*(t(h3l~AD1P(#djV0zJf2wf&l^#}7$gKuYhmwXdeB|LQn z+-8;Wjeb>xGNBI_Q4n5sdeLm};=R!eWX?<@8}Y>R&+PUckYPrDl{}ed%l=DHB7uI@ zIKN~-7VGolm_tNQ!hC*uKv*A3p+P{%WajfC!1i#h1Cyq^Y~C}6A{dULcT+@^@IwdL zq@oQ85l+^B79*N_c!^hcKc2+%OfQ;yc=3U1Vj{{@9&PEu}$39hx5jJhhKmW^FhKqN`s2zeQr;ez%|j+()CCk!e+@e(c% z^Nf>NIiiEdYK-6aIdG77(MJ`Xb*SygxWI{Q)x^Md?5q=ou@!FS-wtCtHBmSb-s@l0 zE|k@v+AZo#4uGLx+RuK4{)z!8rtbr8;!*4r(P$Uzwu%iNruy*d#D@}#HMLm3nlA%A z<_yqO4mwb04DJJU9ik6;`9C~P*U97u-IX94?8TIG<*4ynCK*{etECtV1(n}n%1_|! z^<}R^%+W%QWOk}RA8xZ{JJH<>Ll*O&&G9}G)wiDNc*iu+ve>39LM4*~7M=ckiY|bf zv*AOKof#fbj;Hmwd@vvt8(Uyy;1MKDkn~^mckP$-7oVV;=pb9@B-^LFJ4K)=ZU}Li zDB~?GNU_spQQ%1R>tzYf5@`N0lc8c21xBk$&!-n=L@9Coln{Yd)V~S}CPx@jM>O;; zDH@47+D)j%1e)w>PH9imhrq>>5=nTWIq{oHL6qT|5Sc0fhi3Kh!P`96mQ>I!i% zVrm|Lnme{ua>Na$j!?YDfmL6|qUQ;Z$JC#YrK8yRO5?L{QiY0v_g4RjHI>|l#LUNK zTvJOaAsM@!@_<1#-yQk>SiJai_Ia zoW>y+CkO=&`3RI~#qTwkD2cieKBksav{1JP=t_TEnbj=8*9qg%FN^d@cpNOupeTI3 zf|iYC|0V0pQKNNS!vn|`rT(09JFSpej6ZUZ&wz0**OG4;a04UzujSfSKe`ecO5kUb z>BS;8iQ0?Rr^!E(mg(S3c%`eXw%(;}%qdAl!xW~u`$LF^X6%9$443zKp9rfiB@n>l2au zjsYPsOhc$}N@@1MNPdWxzWK5s&w6x1^-yG6O6s7;mWflYO?!hij80_OaSHMN9y!kj z(5zy{pZ`U*;yH|}@371k>1^snl^C%?X{*h1`L?5gpy_d+Nqt}o1%-f|4TZKak`$Pw zr(jk`reV>j&!a0+Tf-QW)Q%rl2*Egt``N5u7!{f*)`tnnBPhK6sxESTNp2gzD7@3x zJus!QA%VTCH>@LvAQ6XtK>ks@`N5{k``+i#ocd4gh*rzT1Jv;eTG$MTDMoUzXO!g@ zC5DbTy{^jPJE9o5aF`0MlFUeLtE4Kde-hhOPU`RmDXDAS8LzV{thmc~;m0i0xhdfd z@|luxTi%j9oG(G5{=}>&OH1&%ja8PRsU00&A+^D9X}0P$2bdTT0-sY0$_LXMOFvn9 zhr%u1unQwDi`vLjyq$DPGW?0(- zrfsN+!2gF(#+#o@jqe9J-9_qZiba$~dv{6}5TJr*_lBLV0zXXl6{d;1J`s~TaRBMT zN}vbU&4VMMvb`5RjvLg$>fW07<8PS;qe#I(U|IFgkiP+e7}oa$(@Z|jO|%}5+4+4& zEE_}X*hpuBKbJA{M~0Q6AXHhW4)ol!;4{2ZiUXA*6d9#US_LIub(wR=_M8&jsH*Z` zhlQla7DYWy-X0+grXN;&SoB?U{=pF`aws+TkPntpVM1)JRG@FIG8*u`R2U%}M>U>> zR>;5YD`jcS1u|`h<0~JhsD%F_0{~Joz|>_-vJcQ|lPLz;#b(Hz8t`E&No~l3IOUripT(d2kXb~f#4I8e5MfBVaqI^ojOd4l zO%sf4IW@%LT|ze;HjdpahgJP4`spboodnrOcmNS_ZP8{NB;cTRYa|RK)2K!iD}Z*n z7(&(OR#jE9&DM+E(ZVuL)ETTcX&; zZw$v3wx~^6n8Llp#=w0Azm@R3Y}<7uc8Q-Aw(x;@P5lN^Pd3sR>}vQ>#Dx4`=QJ5& zu{#N5G&f=TfMCXD_QRO+6kSqn-^(XYR?2)9KwyO*myJ$RshE-@1-mBz&M>D+a-_D5 zHK^EV^K+HRcqn#p&?79SnlZ8IxlkV(yzKyv93s`{tUsXU8xcFgW*M@BX2QM$LcKg# z0BTVOT8h>ZWwGK*p|$RlTZi84k%5&TESh!$y!+Ladd_mu?)I3Y5fan*j*^FJtHhT! z9Q0B?gsxM~df0c6b?7lZ!pz)ky;Z7(NvC(rk1IeV?t{h;=iyt^7q|uqE7Fhy?f7BT zU(O3YB}H%BG*?)6Q?2n=Q$uyK4C`=wSVDj4J^u3$Sg7a+FI`3xs`(fR`g{jm#-9+R z7W#U$js?QJm_g-V@*0_dXFdsl;-{<6up|+hISFy9 zaQwTA-m4FY>CMohouJnQ`}KqWHP3)=eD)RWmxL?1n9O1-BL6Hg$CkRzi;gk{9WLWk z5pT=0QDOwQ#8q@8u-uCEUi4nW+2XsiGp^B>BH(|C1|fm^4}n{(aQO);&mLVc7oJin zNBi0I8}zht;Y3;M_Wy|!pPNM)X-BybWw@M-UN{q+y=Ow8K+&!sVyKjR>q%rjBKP-2Bw}GTX-TJE|5p6 zLIh~R?y<(NrMmJS!Je_v;NR)?PI4PfyecFt&H6Z&fT&j%c7nT4jX#Axv!4dU{y9~d zKPMANLYcz1tFEvKN7<5Sp#zK$AT8NoBgN(%1%Zbi%Hs*QAU;a+kP^y6M13Y8#jC5K zzLSNCx4-MAIzc`4*=8Jk88y|aI!~oe%*>J(*p%GGxq4|u$(BXgq{t*#8BD{m$=+dn z7vU(=I@J;j@}!rDA@sdS`ffsyYA9BD15eKh7Nz*ljo}lx!^r2;LZ7GpRVles=q4HC zF#4lNNvbdRlI<&c$l@E~bQbCdkG=;rj{vIvk^+U8zfARLr?C(5DLpE*d$iN2HG6c4 z>JDs#v=ghmiSC?5ZZZGq(w&{gQ+y}g>6Q|bT*PIZV)rG^Pav$Y<{(au-%LFxgBJuz z%8#J5A5-0rzAfWO@CRzWEsVBht zw_A*_gV|zyTukUC`VO47-uqMyYP>zDyUga!R7)SL^wY{noe{0293$GzaDHG_ZWFSD zt1eJgx0qGO=gVtWoitx{_I%ATYq#d>F1z>r=F0?6N&GGBnLyhW95ljI5wkhzurL{^ zB>C7@BYr;A{v&=q{FLL}7Ebt0$B?CpCiz#v@nJ=KekBr?I%Mqi9N92j&Ge=_W8Wo+ zTUOi;%%t{XL=PF?N_Oz^(t-Zc7GZCH0$xQ&b?G4Ipx@RdNosa~GU!|2(}++dx}SN~ zMh69;<%n>49la4^`lrIYiuUFYbkf);C993w;>B*Yi@j_W>yToPn#Hb&7pu36b*f_i z+l_!()IUuLwLhdUsD@Yoqs6RHL{N{3DA*E&+A`xClo!xz%Rq&K;-^F> zs|ub}6|_kO(-RdC_99+^f1~O&#_>(&&a5vSt zg9WL9g~2+fGw|)8xOd-FoA%AZ%ACLr!Mcelfr`S)$$_hbb!4rdURZfu;EKY^TLXoK zmGyzi!F4i+nf`Io{`rf?Qs=k}1E=fC$QC#0k-?*mrs2VLV*Hbt$Y5flSVj`;xn=3d zV9%tc%=BF-z@u5|cgi0J8Yp{gG9W!Q|4pL0`N!d#?edS7=E#T=>=_amiU?Uxy;4HH z{XJNSL{r}sbp*F2NzDKSHhocpw_$QM%NU-#4#lF12|ouiD*#pGR+`4xs1_s@qFzFV z!s>bJ-{7BlG_zIoF5UCvR8i};20FO8Iy`Oin%Z0E9qH>jnl_JgqF1JN^`tqv@-~@! zZ+X`q{N}#sas+a#^{(1m*HCgEj_Skpt~Kjr+Z{P7ZtDznGqsr%$dKi@6~qV*(6wem z=e?ekBYhI2tY%|n2@La8jP!VMBsRa+!M}RfdL=xn&R%omsQ#LIaz|&@ocW>Z9C@-; z-?S!g(;GdGu24yCk`~5{0y=zoM7n2G(_U*QmXZD}ZKJbwS0Q-NC09>yRaoL`bYN+c z^tIYq1-5UxuU8HaLcn4_qB2&$-R;|z%W~sB=|1uvHxs!DH9#gJbJ@2rWlEr-R>Lo9 zxA9+K8U${#8Mij&>wnGL)%s@RB;B`5@6*;E)VFkf;u*R{f9;LPKc5-7ZNWdE(S5Je zP}o@+58q z{SamPX$23$fDXU%N`bA0;R`~;OG=8hwOI>bfj(V;uF<(5bVYIh8NeJwh~EL`Ad0yB z5c`(7{mek{v=Ig#Lw^FJEI%qqs2jz*N+dNA5eHN)?~=^bEPBnF4gUpT=zXm2QGNIA zopP7ggQG`7uhEJoJg;XNVI#4gLmAV1E!bv}sK*<6^Lpw&!xBFnlr`12lUJa$+vk!c zGy;@ZFUtzfb|8|~HjZGtnR&;GwT<58MaP={ub4=5X<(WKp+=|fG9eH++o%9AX2Bk1 zG6n5<<0QB)Ft3UYN-dTL5h9cBG4_hr#aKwp}8Nsn*Q)U4`C~P#6sq2Sug&e(f zy0*6S_D*R%l%cJ?-nAfjv}oyt+S+ZmZ%O^?0;;Ec?KUCVF}2O1)^wux{|0 znqY}AQkDPaOVWiS|E$f*fAhvWIvv5z^dtY2iY`yNUr$|}0Y;9MIJJ#uhJ)u~B6azt zxx~P@Z+X<5P9v+AS>As8Hdziw7pZ#aZJPdF5N(fp=?(mwy10VHkYdmdyz>u14*t6A zrA#g!<3ih5mge{~Ss=BwO*E9Et^I4!uBL1VBBTQ&!Yw0w7t*c(2O4AS6bM2g{g+^5 zWIvcYCoya6K*c{C66Fj=3I-0lC>z0B4d;n$Q;9AsO~*vf!g54`g5pS1{^|#&LPrc6 z*dxjMUFx*L&dG_DQFHk!XG+TAGxbJiFgCPlG>863y_zh`jc#pY&MQ3yfrg^D8uRSN zHb_q^Egxj9RfJCqFQQ!)qosmYqk#(oR9Jh)nj4QCUl5%7@OWkB3^>@K! zDnYr{0aF#jKX8D|b(&Lj7HW=bn#^404HHbwumqdwKM0XxCY-55?=y&|^p3+wo!(q8 zT|IJWqjd0&&NKAakX{H{4)&bh=%_t?wzk&WDnrnFZjU|A+TS-F)8fye#3;O}=xc;ypj%gCJCont#2)_5Q?hsqeBz2?`R4K^A z9W0I>t7{rBI&pnktN2MQyub#oL+>Jy{vnS{6e?ItA5o6^Y z6bwq(P*-Y$OEBn#BHIeM@(zMQ8{8%a4MF$y;H{PZ5_q{bbIqJ1M@y(;DQH_E)liMc zIGyiqJP~63+(fLOH~k+u)I&=}dnH!w$?HZoa_I8KUSiMmjjm}txBp;mXa2hrb2o%> zM!$9Y7YZp((yz=8_7pX3yS-E4!-FB7;67c{wD$H+g$jAH{N7xcg_NeJ^qIL>alfhk zsPm3D9c97yzX10+Hm#}6ntvqb*b+)LF<|TZmdcFbQne zIF1eDHc^b)G3GL#qwtK{@ALN4)lmUr@I~DulG(*a4d7dMXqs2Vdi^D^$d(WSLa0N3 z`>>rYu(R6NX3mZd*Vdj{L9C0nN`s%~2C`efX!@)|pXCZok!0={Tk62p-N z@fxk=fcfVG^N)m841PLPYxy%5Rk2aeL*Su?(ptnvO;}Oi8DU?}g3#O?{q%a?5ovOc zWx)}>NL!m(Q3|oqQyTx!KOfqnhtG2OObR1Dx?@|GqYGVS$mgYluT_X(n8e=jBL$3& zkP$v_tt&LmHJc?^bq#nac+Al_CV0#V8G9_l?<(4*wdV7GE@2t zSu|DBXMWMtS%EBogWqL!HE>>S+QM}s8yjlV!llG7?nJ>P(u`Wj29FFO(grq@K6VF* zzT{sVY=B!hX;7nBHuly+40*%kZ#|NC2o4%AKdB1$o9G|x@~2sy^q(Y!(cSb`8|A88 z!)`j38aQb|u&M6`4AHY1u=n?5`8F+@&6h9?Bz zfe8o{3HzkfYem7HEN$flKtXJ5YufR;hOqB#k-ZxCDN}sW*N8#|_rXXOf9Q?=l;`slBQIVpxXaNM`9;##$FMy% zRW>9xtxTenEbT#Rwj_iS;n$f@&GWO&2flv8^?IvJkt}LVPZV zlv12M#%oqQ?0ZVR*b{#dlo!6I@_f4@Z>l*mzg!nD@a_Iz{y6^PYW3yYYib?Lk6!*% zUimIe3iGz=zNgn5>2vVc8*)X?rj*^CTjJji>tE?L@fTudYP0d+&zUzz zF}`=~&0eoa@k9AB~5vo)~tUbU0BbegVBuTeRp=9oYHtv}!-&Wv z-Y)NZ=!yv2|0IP56JCD#Gm`tDh$dSCQw|^nkMkGR?bUvv^`EPENGl?$!^DDd5 zJR>#UrP1F?kuC|{KA=l>DZ2DHZuW>)3(7#ix3fms;z9 zO%_Vj>d$Vb=;GGB_7rVivp(gfap`J`9KpWqrpeTC`xo-e@lWijZe&YHEQJOGE3A>` zgbnz{Xm~xYP&dg+Q=uN%WRWf?(=UC8bMp5ORD+Ek;P)}VIlYPBom~Gnzw^GVYuL>1 z9Ilf$)kMxrNOj!mgMH~WdJ!QTF|pBBPiL-!eGVK4E_*q5fQ{-(gQ z7(nbIfx~v=-Ym>>rVj+53anAuub{)URturmuS2`EjyXJ|dDY-a0~&mdv&Cv~meeQ_CQUX; zYrTpGYH2uyA{TKJ?90$PE>sso8ZQaW6Uf0Kp%(I!^&n&5|D1UEtW)n7uW%Lo&4b*OwdR~ZCJ;Ez*6KddD!UAe)ZtWfy@{X=Dr`A=M0@;{Eh`J+FXB<^&SE4KhQ@MZEi?c?+5Z3%MXZs zm9T)z8?x_bfoj+@{$bn*siY!kq&=6~2H_9ghOo)!dBX_5up4Rv2~~b981woI#iK`b zN@K%5Jfd=|vCDkD(wGRW28~Srm1Pihh9lsXOdFZqzU)RS4sLOmMmL?1!q-~&4^`ax z!b!KW1G>4Pc1XWe_}!4tz`z5O6*dqAS*vuUvfHZ_|r7TuEWM1&-N!rSQ zZ14teTHqYhbg4f#8?f4$A??iPhBGVle7e-BcX1tVQP)`Qo$&KZtwufeY6q=}o&jeE>*CaM!C#))pE(&?X!YZliFWg8~QjH%PV1WZ7evvCQQK4Sr$AGG`<6YPf5xqXdoE{OMR7GCo4lW_E2`|uC z;AN|Se-N2p(yGxvt@S2ZfJ)~za2&-L_g)ilamYnMRJQ^`kvrsVd9T^@GEwA7T!U5s zCRH9Q;0iR>x+{&ap=4Mc(`oudkd$Y2uv*4EN(vFd*kOUEaXnuHltARtp9(aREQZb| z08BDZP7E6E!fdVe`!Wm?c+C1}M&uJ_sMc9&XnY^+8L6%O1TfdP%Jg-p>Cp+qUM>7fk;_S`VyjqjurMPqhIgS!T3F|8Qq!*B(F}Ytj;2S+vct!B_In*H zNDq+1M@Exsk7hagpjx80j9j`fsU8`ESt3-vi}ID2d|JI0?rcD>i={KOc1wSb!zm={ zp+T+nH9iPUjBMslaYW3f;;T_F>>|>z3c1`LZ(N?4EXoW1S?vFK z6uVnmHm1-ppGp9omd`}+%;dT4$-9b|tXB9h<_l>{fuGj$3!WHlDB&YNu|CSMKhpTf zgdc6?`gCfX+smLVOjTCF3^MR0vs#Bs> z!tS*6aEZ9he+5g__(-s4RMUgWHJxq`gaC8`9X3`TSX;L*$00rSNw5&&*GktP;0b>| z0rm6eEc4Hk=CCAw-id~F2eT@}nk~bc#Z9p1uBKZ^2O;y=vw&&gLRSXLzwje#_P3h5`(JcgW+I{%si#is_`a%knYQYvx@h!QU%s3I+NyiGzdR_H ztM3}n*zvzxjotXQjWGi$kv)8G!IM~cU}obs_I_xZiH+o4=mjrBj4YLAti2?9+lTCC z4x4x(*nsnvbwt{Wv0G~udMo*}x%OwTn4iU-S73m&(EQdIMFD%0Y-7P9pVG_YX+wF`z}5a#zPdaW}sE9J0ij&CfD!-yM|*3HwFz% zElbig+-aA7{Y0f@8g5`3Kut#nk>NjI!r7jXPTb5c5j-_f z@RYL0o$f;04*$eyy5`8yYl8PVGaw02r^^}m+xKJ^QvJ1zG?ZWKj-D?)uu+z=me;l9 z)f>6=Qt5+9?FunczDu3?c28GR4xVx>ADgt&!yHINr!0^Mib|?9?oeg$pcr&$1V%`Y zZoQyxTSQJqpe17?PN*x)?NGypY*~${)T)ly2=;=yYh-0 zTlX^|HTo;B%e(TIL%wFeX1)mWqHXR=Vg&k9YJTU!UP>UN?hN}jRaF{4ME$1wn)ULR z(TRt$!@iEnnu576;XiNyBu-L+Iz}kj2HLca=Q-LbC}oVh8KvH;&dZ)#wbeEBHpoTG zB6V?!w(?K1Kx13ioxF^=LJ!pT)m~Iw87}WM_Q+Io7YjTT_WL^F%DUAPtS>tv`{W$$ ztG$qGDf?@)?1ieJ?}6e-b%uN|lONeiHKFL9P@v6neE20zC)9uKuR{1d!Xrkidspbb zmus_XbLSfys7WSl^0eAMHNF@JDrSk#n&niXu&>j2#O%g|#GL%$UHUM&q-Hj%`jV1p zr#Xcem{a%&FJ%ysbwCOiOn{oMM)Ubak=NC8X;DW09rYM)L7w)?*wy1ov-AZK(LwfG zqD##;NlP@=e8LQM&?{D9BoE}u_XNV7`eFHdr;GB3WGRQEl4-(G>z-YkRy#!&%-F9w zIVBc&%KY}P<^w8w+I+Bu2fFu1qFUfVZ5lH9Eyn${5P1heMktKcX8=}Oi^!OQoj(LA zXe)2)i^YJi+|kP#ivFp!RC7CER*R{jHVun#8_?!S!%iMpgQ(y>JXHoExwPH&LrcD5 z5Ic>tRngMI9|^?!^Mh*3-ReJ|*_VM~ZJR2UtGlPeQ%iYpa32r8WD%a_KANE*Knm{W zx$b>IjW(xLjdru~kks#-9>KCwHUM=#AxrnH)L}MZZI&OXC)E0M7;eL zQ=arjp6FG7o{~S-)}!+4t>TIO@@L+%_te&yWWK$y-+sw4ANJobnLLc|7p>*>UVA0t z``|@NSo@$i@=xB&ib-zS3&o*77W< zCurQIwTNLEl&?sg%lwmwmp73%`NE#wa;Y68WIlQdU@bDMoD%s40LNn+C!8%MZJeOB z7{~3t$H(|4B^YCEuL)n%sO+=9C0bLvWRydP-M8BJ)(#8EedMoSGAqV1t>rY?HU>enMXwn&oc@VS#W@Ut zEovjrEBVA~m0^RcY4$>%fiQBT`LbSzkEsuG=c^qB{Ah_!bZ={?C#?v zJ8LhD-Xhy5x+n=JPNmG?md2@?6ey^cPPS`)!fZLizPDQXVz>0{LiLgsj8C|?FoF91 z9qz-<68(j@Ss1o?Ue_Bv;fh#Mm%h6`P2UrqdKz}A5~-*qHmVNYuI_7b5E+dFI{3=_ ze3H5#lo>cD*cbEX7QNe$Q=5xP$*#PA>YKVg^bFmk?}*#PIo{=HClq#A(GR{h)4=Ty zdmN-Ud6kN`ZOTcxZ^W{O)3jv`SMyuS?_qww;WTue~q6o{#9Hs1KQA)jIZIvLohr{FIrhDZqnT98N0aPY+=FZRpDUMLlqk>(o8OHDbN;h70C+twfnWw^yBaay?)+6DZzwG>Kkqz1cx=hav#sD7Z{X5`iaN2==SWP6o>NefgVjP3m{;pZ!(!iz%Jb&D97j%yqzb!FlLSHP8&(bFMQl-ydHcp^)xk~|dA?tEkVU<4sXKtWRz>&RLW>_# zm1M+ONs}1r5H{w{Y%`Xj&lPoq0@>D<-b7a3!{|;k~jebKWo+{U3BI8-U)FJ9spPK{Mo24olvibCl|E)2{{}Mb<1$N@5A3VN5PSwlri?6rspa0*2 ze>fEX&e;_Gk&O@pcHJ!EyAcW2&i3#$6Gl4F*xXb{aIx+T1&^mTH!V|l3LxFhP4}kw zM|5WhMCNynDZzla#1);cXA&(;{O@<`*E${BX6UO`Z@XOK64#7M%ULO&K_sz8AeKRq6-<+MiZ%)Rg zRsnXMOMg*(T0)E5A=mt`*+Sclx8P?_{fmao z=|5!5mzMBf$$zt;#v8bzpgMsJE-0u@AcNe3>I561VQm}Fo<8S-o?RY<`* ze*jis*Qy{s=+tYft61<%$R{%$)l56s!|%w(s#oMxO4J%-#_t^|VYPyxRG^wbxNa47 zajagQBmNnw0+K_pUj=jta=A>j+&R7jXjs)7?H+XSlS#gbFv2pOFaV`lSr*v(%o z&8rp}jM<6Tf0wj>;$0|=mlDJf-ybguxM46vhelUg_=2qx+~TS>9)9D*{ldB*uoC3G z9~BKwoB&?_-h$cQz|4YqvIZg#Oo?7zFi+MXQ^Ehlf_btAnF=AF9ain@E)s+WNDCSr zLOAF}PPIpO8q<$5$}^=>3#zk21<){^Hx35txzc_dtfwZ!T3#}&oskS{Bl^SIzW_AJ zR|vwEu^u&s(k%`*Ex09jdAER&0BU|`(#gg#iEq(!3Xa!XCFH2}{LIMU!nZq${}6XE_#p9{@h7n=LLil}?jb8-sZYNY;_Q)sh)cx^gPXj`rU1Noli6q<`D<=K$$ z3Cd<|lnoXU@fNVBwKk}WWm>CWUEE7zl_q!5aa@495oo@y^~w)vXdd@WCoCE`TL*TI9hn|zhFq034qM9SYs2}1E$ zWzE7gDi8Z!wi^~6VB zTtd(ei7Kph{7v<`Hnt$t`Z7aB3d*>o3E@@#_8rz)6%!9fEZ{hm)k3_*L{-*$jJjW| zg-{V*pVzn6W*Eb!v&F?C)wfP&QWWT{UUW+GbU$o;J;nTbMAbrmA|MQJT`1J&r z6sO?_xx&7}c&s>G^Jxy;DNd33=)1DgX;d4s#|i# z8IDBV_YAIk4`%JHRu>Y{`U(#7Crs%bay2lT$TLNAGhjo{$ zx*wG}`QKl~`+fATLGwN8Kd<``owfS?{Y2fJgX{i;!}mYz_rt1gg}N{MmvwuZ@gIgjUJF$tRZhKS@{%bz(iz%-gUt zs}%{lJ5bbI=T7lo5-yieJ?Z2OAczh|62%^T`O<^i2ydlV*X!;F zM~V3_BX+jgZKy$*EtM=1l0D&HA=Ys?H0bw>9J9G@a*Cc(9S*pvXA;ghq zdqSAvlJ=DkF=P6nwiW8{O4<0K74mQUO4%cdB5zZ2i1w8s9<;5He~s6Fs`gxESnVMK z76yh`iAkd;OXR}vBLYei9LWO%3|x#0s~u*Q6nIOCo+KrgZ;=~C1yVA3?*RqGW>g?a zY(~j*%0^4XVGM7O4^I@FvHmA+)hKbQ73**^BC(c)YQ{|B> zdV2gOm@5GarHH)hPI1y!erFtL@tY~crQClS|GNC6a1wVC3txQ22@QuglA|_lc3k>3 z!)dxfmpF?yHMs*BdPY&|QexUgF#+xG>nkG32@-B^JZ7K$eSTfWyCA^)y`nxHZ`sCI zc#F0tWeg(|i@8+&o)*q_W6%1y%wzQYesA4k$^3Vb|Sm;y|h?tkD;=TY}vnizU~_@$Yy+sC1n}3r%IoaJ@o_~Fd{#R z?jqUB&i&ECOnLf{%udjH58;WOE8Wr+Hf|RbO!$}e}8M%1ulGp{_ zh>$jtWaR3fik!h)Im0;cr11Ar4Xn{bimCVK$@{HjeHoMx?`2h9`ar>WZk|O{CLy%p zUBX?8&o`HGw&bdKbrqAkN}3Q@a%%GIIi3jw4K>F{!kFkddH$#>E7ij^5FIX&v`9f| zua(v5X|!O+y{BJ*Sp{m>Kk(3!zYVKu}PUvYNl zOPNNm6}`VZDSH1ad_$xUwP4A~iRM}pK(?NaPBj6tvZZ=Z4cnP%j-SEnx*A-!osZ@W z{c-hxlr$q8yU`|*1H);`a)%HKPA&R+d$h^IoEe-iPz?Edt83ckqPlcwEt0y9WTN^N z!5DWb!h>#@(q=2Aotnp2{!cJQ?R z4RfNRo6XgEcaO@%ssWJA%i7^9%xNj87E$AMk(E=vcY?+G~Ri z?pV{l=x|x$t^iA%DKnh3m_sjK*6<07a-82tuJ7k}9=|L2l~}({{>r-_@_UZoSxmqD zyh*>L#Wek$$R;*V!k&8xsgC=Gb;dXcCWCnnivctV^0-Q}n|j!~#sx}{h4;A~O~<6a z-DqB?II8{MVs`=?ek2Mxd0YJxuD;rT%GFl~CRKAvs_%aRvH8XBQ#<=QqdD=1!$9cK zVKbR+RVGN8=7!wVKsxCvAMVWGHWgZBtoBeBlnkDJW4lF`1l0odp0EkCgB1xgK?wQ7 zQpC9PjlLM6vdf9h*=y>(Fyt>xQB-G2UY$>jI5E*tZbwX^^M1Pnr}!F+gWtb zKT^hJJTrp<){`+2!HYZ93_QYc<@u$0rtlRU z2j&~$E9ChZ1NjP5mnCe)vA>IGN81*JJ;e1||+@u2g=7)Adu zXljy4tV`ZQNEM`WgK2qR0G2ukJeB?GqZnvPpj;T-RhbE}Nf6(AnUt901*7f;I~657^PI=yI) zckv!89iGpdOU=B{Z%u%tW^p93WXI zB*Pb<9FV0v8_zMt3J#Oj%MTjgMG6K>ALxNHYB;Uru$8LbYYdE~vs5V+2 z723{b3e9|>uO-lwVwz39QYm!UyowYcXg4uDBqM~MsDz~LGVgl?_LN*ZS}yLKjc(bK zdPZ#;g3!uAXl+jh-89jf#2>53kvM4 z@M0wxQY`+++OXMQNq}!*lvd8#h5sEVz<(pt)?e(I`?caj1*a0|nyEHpT^}Y8Tet6^ z!g4F%>qX^>2O!~@dxb7j>6TpxoVUT{;lrYE+}y)eY+i-q2$ZXJtYeY$W2KbW6uAd^ z+U+w0Z5W>iWs=-vsL|c)p;G7eR3QUM%EQoPQs&|EgEO=j6`M1|#(wSs?L~>4EsAMWkXLg*o+U}_I?Va@zLgu0?8>R;slO~u7<-(61qIVrc8-~E)Uq~@_<5@ zN=&0RxQitd8O^UBHkYoJ{bekk#8*m+{}D#olp~nQL8VcVh~Bo6@z0MqQmRD_a5vuy zR`ZX-?89kfR|wJ^0n&_}Z`ZRgxsrDTRg{0k1mw&1J1AtuCZ0+DYp@XBjD@AF)e0%5 zu#uz@JFGH^^%jXaLKQ7br+Xd($8YfuQ#k$=Ff``Z_=^(QzvbugkJT{8s4qOm7QRqj zMUun@H(o=nU?TV``f39#W`cZP4T3*>alD65Ne`P;F6UBEivl{V1bR5~!4hm9=06A&`{G(lB*m>|XejB29-+S-&{aWhTbsLwM=X+f9u?m1Nwxtf{Kyf!t`3=~^sC~XxB*~Qd3c^`Mk1Gh(O z5+%OVuf!a)1Xkm?C`I2gi^=%orMQ_aH`}8lXoI_P$*)dPH_VgPayC1ZvpJI|knKM%

s7luL&`!2%;64)SdB^2*VV!|E=#?%>K&NRyCGr3X>Y@3k->x z!YRL738(z&2&QCb+QKR5QDj%CektvQh)je+v;@6yXq;!ZsX#BSC_%5*@rWRf(i~H; zZExvgbVqnYaKzm^Gk-bBAR~g|4O@3LViYCA8Q8o-S1r3**0|T*!rmi!7 z)F{G5!kB{r9^@JckjIkx=v$MM`p%qS(c~ic`NzRNGqvv@ztUlInW7xr6qAIiIW`tM*Jj~Y%Q1a0ZJOfi-AX_kpikBS*>wBENSFqsf#d8 z)Rig3K?w&)niN;7&1Tng+9cw0NAJYic|3dy6 zuVKI`cOQ=6`<=%3c&L0?CAx@3bpk36s;DOGVuYBNu0Uy9omsMMU`Lk1vHz=%)L$o^ zIN$2TS*jE7BMFmE%r!ePjE8{Q8Hx6P5G7#an9OMAm^0&@U^|JWj534k&vqe07g}Eq z8wt5U&O@&{EDx`eixyRE|2VF2>M>*vkpPIz8)1^E?MjdJuZR+@?Ilig}Sn3tRFLOp*Gt25ZUTb zMIv249w_P0QHo~H<|u!szVR5kdrdW1>yB9B5gCkRpi418EnE201^+0e~&)l?|n+3q6^ab0_qY0~rCU<2;dJJp|LD~| z;_#IK=Gm&uz3!H(`%}SG;g43m788d*68?Np|0wD6k3J$Uq z9Qq!S)QF{XZM(Vkw2(Sfhu3DZ>~D{iU1Q@M(I6iX>A~*=+gm5z#p*kc@z*x>-T3w@ zXY(;~3d;1qrft}!d&4e_t_aw$$vv}HQgPjIhRv!#!`m{ViNfs&r}jVNxPZgaI!@MER9EBhscwJu1Z`@Xwo=7)u)6UK-4+I^QguUXaY`4jb;pRcwY4_O z_|@s$_CyXcg|t#*th8GRD|@S*k+n%fns3$RG>0^bdbAg>cFw33O5l2Yv&=@vz!`GL8f$Zy=98r*t<}XxrY!Cq zIxIG0vgnq0PK`mPesR1J;dNPHL2s&wa;u5YSEz9fBTLjUSxIRE5*ay1Tv&I#TE%m% zs_KgsYsFyMpd1}zL<%5Mxf!~{wgQk)0BWC@^191RdEJP}@Z=5CU@I{*R^LEhg+3eL6h@$1|T#JPj0$~&1m%b;wyIYwFQMMCKHrz%f^ zF8G&JC9Fg+mnpW{29*`q_!2U@JENt)b`$z@hHOMgPe#eLs8 zsx_7ID%i5eYvz*3dq9mh3*lEP1hB_Ui+f|jeh&0&yvsbrWuix0`pZPur4$7k%s}ev zT!~9h;xZ?3IWcir5WlSTY?+pkx@DSk+?HwSDZ#GHg_2ijhEe^LQk9r>t3oM*3r$Kc zgiW(sFU#Fhd`@b2s)%Q{6pxd&vWYc$jc*F?(WT~!F?w7pVSZVSGmm^78bLYm^thDv ztDX5@OnJ@kZ`l^m_^7+s$!2Scyg=>EN7Di$c(y*)BvfjdGa^pP%iD-q(CIT|L^9ejU@WXSOrCu=%JvkVWSW(fCB?G#|}^*(}Zt zmbqfx#cpXcdR6n$O#e5UkGlL*nvZJ!OPY^*{1cmxj_~I-A06sPS$v`(vBMJ%)rIT= z*(&|!qb&E|8ng^7@_h23Q<`HKyE14Y+>-{K5(%pZ_Mm4oLK*bEi9uIdgZ@r@(5K6w zXUm{vlE*A^F=nad|MQrA?1U4HIRPSiWp4hqwz6@dEE;Aw{lP_r;a!vs*;baL4?(X< zKAPg(<#h@O0w)g3J96QI+pI9$-E6+7BUbDj)P>?)s`TB|)zp|pT+^T*Hh`_&X z_Bb1CCr;T88P31}u~`C$S$jU?R@S3LCVwapS7r1#nEgv-_J^vnuF!0^7#}FkToDU*9twAq$m(_9=#+7LKmE4JiY`q z={FqyF@giPSL&oq5v`t^a-c<}2AlB9G@(;$oxi=E&DIpLh~825}D=%}ZTc@Feb{ z)h&BjdMV;8Ds@IZ&BxOMBe`F|g9SX%!coqWXjSv^R4`ssF7)gao(BISPcLsio~sw0MF? zb|a(2&`rVk#&^wD?&qzvqOHYOLhM42TtE0H_UD}tVIpXI5`Q03lnkECL8cpjQqC% zZD0l1m#($H#481OzgJ719vIsX@LK+^wLi+6B)AKyg2`|jB*olz) z6+?odRB`0I!0?IOH|5F-{1199Lc4DYrr}+;Pnh`yZgDX#W z>~(bew#pOsdd9x=o*c41@1MJChE*SgU&hSHUfxf2YpuWJ?>cp;m3Ow4ceR!OWk$IC zqi)|vQo;X2+55m%Ro{>QAQ!yq)qAsBQ8B}!vZAtK1z`=-3siz23Yem7p<~oG(t8mL zl)7jf54YLYHn&=9TWf8#t!=H?`UhHq>B==%I<;JL+neD&qsfdGb$`#-`{w?EePYdC^6WtY|{D_A3GE5?n2P@1J zOHVd_c}@S)b^1_HhXUWw!hsURSM>k2d6X?o8_M35f0Yfx8(xndZUT_Z;#ta&sgKORS^V-<#CPVlax+jp7XZuq*5LQ#Y~4O}uc&^T z+<5A|I&cZ!ENDLYH~xfgZsr?_KS>B^Nm#z`o?XjU`K9<#YQ+Sp>gD0wgKQ<%?`FompWMXqQOTD|5Js&E1YU=&1Q z7?XH4_grb-E_ii3SRg)4s9EJqU2$=nH=c+ZSA;V^AafkePJe*Q=wZ<_M?_Rtv~`8n_&8cik?EA(97`uM@3oxOGR>QiZDM~!^#1Mwmq1T zRS^70y^Y|U84nhRSEVOu=L!CXfy<;#Mq#?6R6P`gc(8Lcka*zc1Xt?SYuE*c*`H7! z#%!vq^bv9dj|lm)r1ck-l)a5U1o)U9Vmui3b^r=4T3imNCswboJQ%u)tg=@3Tn>LeVQI6lBkNlPQ~l@`IW|o%a`hIvLniy8=+%+JW-ak`vzGU)_PWXG)#~=wxUJwv`pKQN8pD)Vx?Yr5ISO?d(ZrCo?DH}b-*p|DsG$Z zMBiAF(p~1?b%*1B}0&_~Gc#nE2@H6G3bko!}gB#M#s>WW|eX!6d zynV(M+63op6?$b?h!flmAgPc5_1!fL-Z0BTJE6>l5MvXlWJ1dtGSvr-F%{wP`;@a) zgpQBgxkV6hqPZ%RBx%+9NwH!WGY8y`+R!#dB+f?oDDG#L4G>~0hL=GS%yS-Jeh*b2 zxLvBQQ*BhOEuqsbGCPmm|Gj-@cZUyu816nz97AWqe=vIqQErOH+pdz=f%FZMBp3fZ zdloCz7scv_(aGC+j!;J1GxZC)MxUDE)Oel=xfO3lsQajDPnT-%O+~=aj$23BYwly+ zh_<{;T{^`9zD>p+AEKj48Uj8A#bWO~uKlWHNJVM?@Rzk;6^kU74I~Ai+W66at?)i2 zoV{~svIS4u1YT7|zriMOt87Zw2$|8_(kRa;t7CWTc_-B-gg`aeAX>hxKhYc1HgPl> z#2_`I9gT#V+HrUokp@AT=^-^8ORx-px`0OFf9>ekx03+TEKx$W*^h1;8R5>+#4qPA zW&yX9@Xu4Ih{pp@*@n9lw9)?ue6;UOhT8I_7^*G0Cyr`CE1dgfoNqr#`<~O?F(<2I z&iTfi8RiYy`F%v2CP!;svAtDmteo5#%^FyX2VWFwCeoFE<56|J$#RZy|E+kZTg?X0 z47&qD`TlhrF1MRAJUa@rIttG>3TGIF*;sL5dJ+PdpgNl9$O#3)$yKP|vw)01I%{=q zTdVJ*D)0T>AN8FZ@OfY8HfL`XQ<>u-w2z@+Y5Oh2_m!#O7h!b^GgpA#=W>jJkO7ot zVBaLp@!(x}Ri>ER(mDO~61hOtME7Y^6DNa@92 zh#PKaBR_m-qf5sSkU4uYJ zEGl(V#p6PBslbO8cwxHUE>Gc}c}VzN8}Jev34RMd2I&c-4ip`+o&8R;!&MSR0;j^` z^5{YzB%&paC6HX|9>aE9?&-DyU0?*^fx<8Og<@E%18HL8>rH3K5MwUmWbI0G7RMG4 zTy|sVKXKELRcsnX^hjUQN3mprPJ+oU5<8Ko<;KwejV+y?0CW{lR~c8#nR8=kC|(X| zgyjV}eA*S9!T|xn36hUm#|eWt&baG!he1xRoJ+ts!YZl^!5}Ay2*h+H33B!($=p~Y z*&wUktsZB=IH1Do3X<3*=FB7~!JJveavO3Pb7pNf=FChOeoe&9cR3VwH3xhPfpy_e z*WkL@+@8RmtIva3oMFi_J4Kt@iJ||8JTrF;?5c`h6}?pF(Ur~dfplpmr{WfGCwdOw{D^DL|GU@Y zMmOZ&t4{3okUSgR>tP|by4RH_G$hJ?lD95hCW0h)1n?De7fLnect|!h$35y*es9zD zqaK*$>6Q6!a*A@fFA}_aByU|od_v9g0$xopZ^(_zy9*vMGVksYbBf_!zQXEecwM@l zeyi3?1ewdzi#Y(?ZQj7C)^`o0L|k{9Nhik^t9XH3Jom)nnm&iu`|!*W#1mV=&lrV) z0-}V)=Xk9kc8+Wo9#8{(*uq=AUlcMk^r+Asy^1VlZna7n>$LDH4qqOxQ(ldxK<<2u zsgZd}eI?n=ewr&)} zZ%UPUjWN5=Bye|8pG%s@CYac%(Zlw|Pi)_Uk85B1$F+}%hLSQNMw%)_UXGN`R@ZSA z6a1NTCbN#3r_H%}w}io7;O1r;xuSg$#x%eR^}bg2(YEc}c;{#0O>` zJ|0t;<40HqRq7A7ut4Sx`~Zc@`uQ6CYyn@8KfLA~vv9sO`}2rz*P-nbU~2l*O+UqN zd*HQb(>!%QpGTWKs#Cxa__Wknwe-rY^vQYl4#w@5p~D2`H>V(3P1RU}RkhX{Gw;Bg zLgmdQ!?pQDBr!`RM@tOU`OuPqE6hqic^UQysHx*5H{%l)sB}Pqa(ZHW^u+d@WMWwd zRT``esbqpd{Mtzj`4s*vb>(ZTR~y(1LLj!-zu zEG@9+R1*-*Q@|J6D8hG=@^7YU=R4=2?Wt|C6EG86K_*8V4~w2gVzj?UY0fINIUpOz zZ1tH0AUyQQu4eH@czQ>j35J~rAFYj>7{V(b7MEfOR$7(0zy4v7Kk(BLw!+()AuMZ- zd7YY?uE!^OhV@)~$EDRjII8f!7{h3edi@NX#*2gJ^Gh!ddWu8Uy@7}8&*jkc1^khD zF@F^D$NhZE$(m{PTSfu-i2zwcW8#hYCXY@iCju&!t)w#2r)n-YczbjWQNMgm$~H2w z8-d5jHfIE$BuSbPcuI~Q?G1Eg@}VN)1u+6W5w1|5Hq)M!Hi!VByWNs$2A${|bh!kSP5Q|zx z^eXcl)qT2*=xfna<*}T;D1>6vO5V37GjSzvHQiN8GW5v@67(>4;MLKjWn;I9dZ7vR zPf}ylH?V5)^H1>CVyU{N`Xq!XgB4^^3QxqfPvFmmxKQ|#xdX48D=BQCKh;OSzINJ$4I_QX~ zlrCMaoy(^*EP$rU3Ab=;lGD&FjDO$=q0P2qq)yWpB_ZGldvJA?x{^g?4w96;^ZPWJ z+H@536&kEhy-}mV>I{7&IGwIgw;qFBY88>fnf-CXDavSznk0L<2D8)xLwhx(ztb?$ z33b|#@ZpGF0i;?rz_E0;vPp9N)i4$UO?Auura_5zmln})4eCJ~)Eo=csfPmT<>iMm zvKl@|pSxnvh6I||fwnpZO{=a18U+yKOKoV!mgz16&1XTo1!xU1Xu|@nN0z3vEz5@1 z(yZIXOCY&yNIwRWG(31Vfoi6N-TKQ^^Jy%phR;IAuZY1M6qsKWn5}M!$9R>kKt60a zm-)@B$>f-7R8*O~X?NZ*k6DDR)?k1fQMXbN%Y4{QIOu*3+W0MeLG@8eYYE!)JVrDlV>XU!Ng6L%+TlBOi zeUOx*T60hMo#fzW9vc_ThqEx*l12a z2S)$90@##*aCWKF@)pzuPuIuF-%o63SRM~t5Z+Li6v`yqP{_p|I3bKr;?(vYSdm@o z+XExf@DHSz1|DpT0UlUs7S*$5J(e6yM`|^zZZpa8kX}x>U4=vhLu1w*4-Aj9-!{hI z-e$dB%3D|P9QpQ}%~W6)2=@k2S62kBLKt~G7(@b=K3+OYP{b?AuwRD5s0jreI|`NaU4Zt7@g?L}Q! zOJ*k&Wm83QB@wI=i6QS<7p1lGa42p()6Z)YRA_q{jIsv5TDL^2&`#@3+RLCA%`T(a zZ8YP6>a$E)GD7Iw##?b^(}0YFpXJSS5!``GnpkgXe&wGq3?f4dcj z1&`_Gkrif7;1Wu`lPSp5L0|GE9&=D7}HI?T`g-dk;7&%wSR=4 zvN&0~jfr_B9x@gzc6Uq!b#SK)rIJ@{pcF2#!u#}cUsYLog_*#-1Y&{ z2BJgVE-F-yr9#DvunFHISBfO;Mwxh1GxR3l55FXxS&A$a4_$#})k()J(xT)M${cP-R`gHiZq~N7Uu>Acg7@zsWF2-cCrFuj< zsvCAmA}ZJFzeKN62dWqY$EC#5-~A$SjGmSEW5=l6Tr7Sha!4*F^K|2!j(i*#Yy|A1#t zMWn=wb-}kI;1wmdTZ#JzRO5`cR&R1>62WCI2`<|+fSSs`BRL5sB(8$8EzkH`UMJ~( zl0s+1)K*$GeB%mID%}88Au?Y&Wm&5pW9UvEdzoL!8w@@YF6Y+aa^p2g@>@AHDwGEY z1#p9{UeXm35vnBC7*Z{~nsx|mr4^TJ2R@ikx6o-#qrDrqLOk^d*6W9i;xX20|6M|u zIr0)xGDZ6&NV2dGwib9$h`^ z(H^4c2eL*z`eQziP8s#+`?+EhBe8?b%Nazqf{>14KkHd5En0ttDqSqd7I16hd~9}Q z-R@zBia_Z+KI`d-YC4yD6BII8$nb@F5xTDZ(Kj_!}x;#zeS^w zIlQi(g#6|W^$nk16b=MYv$Qe(iXNzM4lws@1k;HSkE{RH&k`41;h1*Xj$ArM5eJp4@ER7`4K$YI z(lC@m%5$rxLF9E7=T5;JF)?Co1OLlo?{sic$k)~yO%BZ_@1<*BxZ71Gu5~(%1(7M* z8shETEa*}~nvocsxoV;YgPTV8z?ZCSpYZyrs)xqfp(?j%?^kVD3BV#*d!^snE3Nb; zSBiG{baTBsvgnoJs_-_~!V0#5Ggniagpr&stW$ukvn&>jsz{xuCQYnY*K<^x0wJP3|5y@e0xa7K}7M)GP# zf-AA;3T9GgvrD}^^~309$-y(yfnZjUj*`__mjxXqE?@}~>ut0|G6Izx1*J#GFgbq} z+3KV-EhH5hB)%|8qe+0p--WgLZtvZw)uWOhYDiloVJ>z#%tcHYG)`=Ff1VF7xN_z|FeYjcjXPnw*Y=MA10 z9-bVWh9LvKyOr-JnRD@!6B;_;HP*O{HExD$u16m5P2S8&FBZ*#P>z9RL2o%xl{RvjuNj!OIWRICAVh$=XHQx0oqfuNNg`7qUnIe(i;yJZ z-g_76`Dtq%`N&ANf>4QUlrU6}4nx&T)8Y!7($$q1sM+?}{usxE1ax4edi9+VZQrkD zrvu;gme<&umI+ab?RpJoR3~hIW}*E)(URB5QkVS+Un{gzrM31}6}MTE-<=4m>GmNZ|C>)bl1We=eO~FVXYho zZmzFmyu-OkO$Cq==%)~@(%azoqqFYgv@lRei67CWs7UMvOUP~%p918l5_dRoG#!t$ zeD~@dZR_g=DzhKhC&{}8Z|zQxmh6knb1U43&705y44M@_B%fh^`*4#!$OM_WNU&8b zZao;bfF>=YO*F3Q@{_gZai=vct70v&TJd{ljIx8+3zJMHv|u*pMztPk z%3uN`t|#+ygO9gOUpRc+a?CO1RH;yvHS1_wgRLTz$uTd~z)~-cumgFQXnxW-61>d6{e487v)_MoQ@Ra z@6z%H4AXFBWo7+$0MF`it4;Xe4Y)XIPUnA&i@6L22MU;NBgLWC*z7nDhsQkRJd`I- zd{jN=k%%-`6$i76gXd~n!IWZcsh`nRTZ-aldRMhv&gv?Y%c)((a`AK($R)KamrG(Z zirF{Ut|i^;{El_4UDXRHbZb|!T2g`n<(5lv*RX(_)1~BcP1ioT z_SDRdXUCnZt&{Z!NWDc5QM*n!vy4HjI{=)Ac{NCj^ z%rD9>jb=^e=jV4ezjOIr#BV0QtNC5WFQ#V-4^LQILSO#L!>)bO&^cXuTDawVzv%I~NAp5pf`zis?>^4r7jO@43j`zybr{EqSa zFTZ5Q#m&#lFJYLIoH6!vbubtVZjeiCa4oGN3LFt&#C2{EO`$~+*^1zLmuT~5USOn& z7`YLVx3nAGdvBe6Jp8xRLhsK*BZb(PD zE;x|x8Tcz(k{r>#^Zl3GMtIA%VC9Xm)%!lAE2#%RRZKC z{jW+%+vWKdU8hgEdBg5>s#q8N*kI07-`Ot}4~w6%jNEXN{dkI6t{EK z1b*u;`2*VCbgnp?d)vPb2sEPFv01vsJIUqiS6|Z#h5Qd%DehNarVSP93(}JQ)7e2R zoYKO%45^r!rt=cPG1kq?)YJQ{ZX!Gm=hX~5o&34o$T6J+Iy)Bx{LzmE(6^S)o1==}e~N79UM^93`kZD&J_ z_F3w3njvHl<}!bWw>?8MO(SKXhS~)N(1ed#&P2kH@j}oWR2!YAAO>vZkh)#BBIcMp zg@(pmn4ftKr)4WWj^iP{6vsW z+|FNpo6Zk%xCK_oWdK4Kl~TbYnr%o48q^ZG%1b#oY8T{TOC|Q$E zLg#(fN#L6oR9gWSAazGchRhR69KRhsAu3KCM^RCw9zI8hP}~t)sfdz1?$!1@YC*8` z_g^dcn{eE~vot{luC_oAoVEhWI=xK&=Z}IO;Ev?jvD^PV?XOZ_eamitB_B!qv9|Z; z3t$V6+)B=_*Xe0kJ_4vygy`9pXEDi%Zrcx$%e&gUX+V#zk7*3A_>v-K3+1gdG*x9N%Rfr=W9N%G{#2Q{z|=*3&kC>6QustWy04 z?P0wYP$}k8Q4QE5cp2x`(@#6E-gxib>3TlWH62t>Iv+A0LrE)^#*=j)$2l1mU6dZc z>;~q*vq05emw?_ofJo@n@rsmv4NUFfkAdIVT3}I0)-9w%Oy8f*E22SsopU3I*4i z48Qg=K;~?jQj~w)>NmtPz(gA9GA z+3>mpWp^CJhiQP298slUt>tm>4|ya$0#YnhU2Fq>Z8m_#vY$>TE253_)#JE9lr@~o znA{u#jalDm-Pat@#{?g>GeesLT8gEr*J!J(_23xLW$G3U`aD2Ku{2tJ7ncRQ;}^i9>xk)gFuMV^Du7k7O*QSgM+4 zL*1UQp`LC*okLbG0eil>ItF%c9Bi!vc0iC#k3)$AR*I#nUK%OmaNB6Ggdhmm3)JB~ z&KT^AgZ%(+9X)gR$G|FiB(0TVsjATidzuCI6h0H@jZo+dt-&mcfnDl= zm13#tJR59Z-l(n<9V~NniJBb)do&I<)d4%mrf+rq->|Zl&B>2XPs2lgUe@NnZ-+(8#y4KrXr+H@dYnBo9 z7KTI9KibbuF{PoNA^zQ7*{blxo?he0t3he}h&06h;tKnVH*)R0s)y^JMyl9w-UCyhit%eEx@O0jGhffFHzqc1w8nJD%E0xYxzY2gk?5_bY3DP;txqzaMu_}8#JWq z7$n#q7!PFFB01AfKdxdbe6Xgsyu|iZ;;HKYJG(#l3gW4M2_8tkzrSfTgilZh?ML3u zmndfjGIue|M#^MdVqX`Ap`xL|qPzhynSK|jF_%iDgB_2g>(t=yfh@Ah$5!`)`b0Yh%vR2~yE1@KCA`N1>oy*Q)1nQAFTI=&# z>m9oEDOvaSci+?B`Bb6x-6>V|TPg^1Uc}dbdc`4?)j)j7EU7P3t$&ai%74$>xlb17 zT#gapC6sK54dWSDV1x8@L zd{US2iP!$*Dd&?iK3Nz0q}B*5l25LXPgfH^h;O)BsA9t5I9yjzN7gAMthhPu{ zZ>FH!Owt`(BzNb^U4b~N=p|v6)K=n237S|mL=M3kxZUzW@eqQ%DpImr?LCU$-^w}- z?VWA%J!h;E7896Z2AacNB7KaDEUsG^S-cz9Dp>v?TwX^YTO3)eB%S9|k8D15YO-Bb z%T$3V(0>B-xt73I;<#oMb>mOMyL)*zu-YsskdJHC9vA^l9#)tov%@PFvFf9t0`(i` zaWN!z9; zO$Wj+-s?2W*reci1Gd?+B@%Zyv;Gkt8lmiCk4FL>m1S`Hp=Cy>&Ir{S zoGpGE_IL&WErVAB7r)7*=0l?X3Fc94f<6buPS*qTR*!s_AC;pEvxT( zC)8R$&WFrNi85W{1~7v80o$t7%OZdZs96}=%s?H!?UBWc7LudByjnlU^i^k;G-HUj ztY-l}ZArL8n>4`+#$*U7n|NPm29_n>FUt#6i;n{1DNeQ8pCtTpeS$$)8`K>y5OL;} zycy!oS*A6X!-(nXQ?h);V`X(-XatkLoP`QmP8#?eT&L!D#$O?nD^opjxn>0<>h|C- z!NFKM1j}B@ z=hTMWL{Rj1@;(lXDZ#QgLox+0$Z@wPro&bwh?^Hx;I~ER=ZmW5##jwYk`f0VSmC2S zN%B!iq6hWj5&D8MqN#v8`R*R4bMvd@{V{o8nk^Ael`|WXBJ2GU`g~3U6u=V+4Wi~4 zDJx$n`V72J__~nyLS!q@LWHabwjm=anAUcu{A)F{?asO+jL=h(+wNRxJ*1&n*5eatW2#PJ zgD=S+MJ+FbHCMNybiOK-;V!DhV|bcIIFO58S%s!WimHi5t5(x>p?VxHHy7c9Qn$Hi zWk=!4F$l;!liyWGsAme|*q(B6l$k2Jcd5KuylW!s1#2K9QyB;SxFFn`l@uhPJd3A4 z`wLH7XAr759ePdk&JyZC>x!M$okE_xYPE@S;Z^lXg4eo12}?e61Aw6$iqOdD+w?I_is*H6_ zpY5gtpi2uTyb`dT5Y`Nfj0B{A7-uMY(8GHhZ5w5>Q?CzC8%u&iABNYy1Y`nnv~6+qqxf zmJBBLa~I!Q{hUripu?EM@fI6OZ1li|_%+e@Eyc0Eb1QxS&f-|#TP@hSch!IbC1924 zZ@Ak>C@v~xh$B13GzOYNsfsX9RY)XGEFEZy}wgCHRB2~BLC1<N`B)?9I^(DU%(~4w*kk zl6bZRl@Gh7~(YYQx5H-MN0jNukPO>){h(;ls zUocO9$eARVe-l3Z%*TAV_dNMffZI9R&a%J%Dc@5oBhNNKvfP9r`KJ zh;erl*&azukaK`QUZ^anJrT{-GET`bmV5G+rw6YVY*_AZI-hia)^2v%m>rN8oG>rP zWUf9C#aH%Rsbz&(ngOu!4JoQf7{I1X3_Ual<1CWb zSV=h}r85%qa#G~`6gfbYb3D22q13I6#)^YG_wPJd;y+lJerS2R{4rVJ94st2w7dY^ zPYmg#8=2CL&ARF?l^4+KuE2Ql3v zXrR6_EJu$#!F#q%XJ2K8uuqGH4#x#S76J&_(gPVtfgB?Rc61ctB#EMoutqrgZG^n4TLtj zh;Tc=c?3jKc{fS07yGApDwv+F!Vvha4IIQp==OHL#iX-x;2;d%2k`jLK%xw}Q(jZw zBN2yPs!K{$qOkIt$tiCxluEftsXngxCtbqR4S8IA`0#=PH?S=Q=HUcfKMON%>&CfP63ZjCC^ zqXhT2o2Ln?u<+uR`Qn@dLg4Ub8!}y6&0MP=y)ASDqCX^@l4mRVFbXpdW$fc$vo!sX zYoF=)*4#tiYGaxi*VWs>`ebqS67A5iI)_@8gj;b$uwq(<)MR<0P4+SW4_R_yww&Iy zmqsr+d2xt&BDL>{FK&Rdi+N!`gF62N9v6MU=70!yq&E~lnwU!9awJ(c4Y@PV^SRURV}PgC4!9NVs{EG#TY40T&_k_SZIOOUVJce9g=W} zhDd|%&d^HsGj+7H&uAu!MnprSIn!v)vh-&8?>T{FS4#^dY$bZTA1`X~inZxSD+$9x zOu?T8nI-O;+@u+axk+vLH8z7|S)RAA*1Xk)R&S=pN517#nzJCDPT`xb8?34|r$0NYHXg!JANMz{#C~iVKb=U2D3oww|Tz zNK1~VbCV$H$h{)F^rnqSn}twCN^6(*zjDV%cI`T;I4S;ohNKgBFBYLN(-0|ehEu&Y zBN>9upqXEc1e&|;B=VJZaZqZa`xHnB&AkzuMbV)D!x}IFgBMM3}Y(J(>?LkC-ZwWB4H*Zc8SR{kt6Yj>? zG)$K<_%kxus(IZ<(H)yaCr|WjObKX3Uua5jE?bSeti5#8I>9w*OSE-*#IiUeABL~WCAM2%kArl5e zlB&Rfmu4_qj7dA^f|5F}W4Xsz?lYGAjpgZT?Gu8Gjq3Rik!2ndKX4ExF%OmcHJ$5C z%Vs=x=$$h;5u-q7gMo>4ep~vO&XbdgCJ0x;Ukt2;LGah=LpWlPNX?~Y3%k@oh+z29 zK^bF93lYu~MTC}a69PF9(c|jcZ|mj-X&&v0>+Yyj&E^%pr<)!Io}o{&H#R+~|9*;p z84v3t3qKoNiBVwc>iU$VSg($rF{W2h+XnO?o4j!8RguVTRHpuj@jT~1B(j_7F=~oC zYF4PzrJE%O)f9c5sYYI9y+<-AZPZk&;h%`$*=)A980kC4qwgTM%zRjT5yY#?;l4I7 z-$7BBUD|1Hdcgj*Q z0B8k(Sf@xPD1VHaTJ`&MT+Zluq@+z9`K&Zmcjju!4O}YrgMt=}O}yo?T3ib=R8q$S z!z~{KxQ_;EiB^^%uMa}6b<`Nryni31d05LMtTCbChm zs!aXlOzMP9pLZZIFD^AX;)yP#sa(lH0Vjae0~$)E1EC%WcsI!RQRhez`F?Q$U!+^5 z#)7B@#Gyce8K^xt`S7Ws)&qgsc;)+huMC0yMS;sHkXKV1(puIODy9x&4hIj7 z!M*1WfqQ-GJ6+?zAgvx1BdnCI7kd%kVLQSOiA^am?}V?{%hyaR4H5eh_+_c_u$o6h z^F&M5sAk8JSlIr&|%1(4U2Z$%8JZxLyMFNlDZ zPXy>a@wWka8>r@c(B{fWF_t*8nXKo8ZM0tJ%Nwzwj#gY%gAy00i~gbM%m9YgW+OLp zPolo?H8n}UZE0IS14GPVhSx02l5q7u@~4bTWu_RM{}5b20P;BVMi;p=)-~rhH^Y;z zYsqhJL81DacFN{=$-f+RXtc>)hy07ue4#u4522U%-Yb(+Kw7R^Cg8^d>$HCX#`Q>G zHvoR__!Y-){9C6m(EDG}$FB>J;9aB{D{Cm8#1!hSsOYnM^*#KS00zyS|;D zS5qgdzh+zY_j`FdO~~G<8hn?UBv)$}$e|{T)iB9p?9Y}DQ5&;qTRvF9MyT4TsZ$T| zO(Y^a7Ik;j+@jukMD~qN^@hF{sF(U659>1{5rpulB#l|7p5>Kz48Sh~V^LmpmUrVZ zXjT3P-u3~mSYU=2lgXcbgzX2tK-{LS4_T*&&mkq9+|5oyR)@w0)PF zU!{dUt8YEr=2iQfINi*LR|8_B202f^{MXd6FGp2yPOO3*c0mqw1PWCR;1#+ox8_!F z`zufeVK0M`k^)utN^Gn8CC}y2?q0^Sq`E@=^>4I)>|WKmUsk;ARRz{wr2!pO=MouY z?+9OrS1_np|7C1c5f!e7b`fC#K?<_v_vAyg>G=AM%d<%EWi9 z*o6zwj==lLYO%D3y_@~%7B(Y62lk~!_8wKn^!mMwi{uJ>-W%gYR!q?(@>H|RWv^h76Nj@s z+uD!LH<|xF^+m8HwqG=hNG6*FY4F%Amg&s`50vT?u%}eM279c{qS@kXqoHN&7qVFd zmDfQdd_lzBCuVQcZ0@V7>4>av(a6%fFK}a)EYg&SRCo}FMK&dBu_;lJJcSY!DB~p| zbTial`g%}3@f#rz78x4lzhwCoa1an0`gct&<%lOt&Q97Vc_ui$!;oV)N)f^e_&Un`=~9nKshdP`Kspn*O7RIbkQk_9 z^CpqA_0xZP<>??#Kb@c+dUUd&MHc{6u_va=xQKby8YZ#P#FZJJ*?h0?1?CGf!(
_<;JQR;x`Oi=cXtByqVRYMJI{IqTRG+f=Z$f`lOtap`7D|JW8un z|JEmD3|cpT)i-h+HBw|H$vmTyWX)%ayh@Tao^Th=v`$}2@D@Wl&;sdhOCYr}NEBw# zXO7hR+9VMyN@oDWu`%Pmk$8u!`eAm=U~Z{}WZqhRRiL??xs`UI7N7H}ML$xHd$dC1 z;_&(zNkOzXGf0;qWi1QQsp0k6N#r%dOCr)@ltN%sLKO4GiA?qi}`HAxI=0TC6MRS3KtHz4Ow%odhx0c*m zqEsfv9fa1Bt!$qiHJ=x;^s^5N^HHo8bhA-H^GaG^nUPSFkx*+zJiRJXvP#6$wUX?m zk@K2r)~bilsfaI%w=teve&?X`!dl6V#phZ7s2YXq|=E=BZn)l&2Ty$$bNDyDbYwLVKE{3j`bUq0DKo5y@4MC=Qo zbBu^RlzK8EhGk&1qF)+tyG3><;Fz%a2GMoWnnbgpsTGoV;8p4*Y3wL-G;sP_h-??{ zYdNeL=Z@gibuvvS{2aPP^>y6c6ZYY0Y2a;*$F|ld8lHaPk}cGDL3UpJgY59!i^OJ+ z!5$kG2iO@82@O(RKVyO613ReImYcJzR868|Oz?w{A<9l1qC2VJ1ltJ;e>-=kl_gq} zk#+P}bg0w#0*U2JQqvjLKBF2Xw9LLyo!L=6BgRJB7LZwSttu(hY{e=mg+#Loj|#=j z|KJ1z!&v2NBGEmKRb&(0@S|EsY|Y6DD#;%+E8#~UW@Mnw8O+)kW$IG2Rxv~grJOJd zmh1Ub&>)+9x2a!$LumDE^@HEa+L);xkZVK~$*S}3s8%DHjI7FkQkX#$jg8nr5g1$W zuF`RIC>+U4hx|An@~?;V0*2D2%zfidpv)c3mKUB3F)U98q8Lf-(6cFip z=RRtN1aE-k9@eB+WGK&X_)`>xGO95}q18fhKg+9G6v~XrL6Lyl(vv+Va*!6AUaw7% ztRjKK*88^D`(N^29P;PXCkN)6bLzscL@(Ksx460~EnHF^9Y{$IRI3VUT3R%)NVk-} zbN4#3iq8totWpg`JvsGRHtTS8R z1+fH&9`E7_+h=jM**wcEm}#K?l5MnD{YnB5$Ijo)uju*XO9p3lIh$sSg@Msfv85q9 zOJdCQG!o{HV?i5>&6zi(VD1`Kg@hyOG7=xbQ?2@wtnqXH>b&`g38RC|skk|st#w9G zojv^|jSbAl{p4NyrBPHL*(l3EfJeR}N(wb2hE2cLfUMwy(F&wGHAEDk=)}NqD>H1Q zWRLo<7)m(n816u;q&{6oOK5HD)JRE&n*59`zC9|JQUmOmwOFT{qci0LUHZSPtkNy7 z$8|^%s=<8>9d+917Sw8S?@RK!rdFW;{AmmNpRge?F1$`v3wX`Gsf*6Fih?%!c9ySC^%29Dlq zVS06zLTpV!SH#GVc=Eoa(I&641k=7jRrqu|(>->X)_o*LMZ*+&+qcW4Sc_S5`of8M z)YVwENx%G(c&uyRg)f`;Xo=6Y75++RO%c2B*@9qwYE7n$vxuqR(-VxCiZL0ks|@_b zK}j7G46tQYeT+uSosJ0jA+NLuNDJmtm)Sa;zi;(@2|J>Po|M%;24qeE8kb}n+0R91 zttHbMpOF%mOwTj%y;*=L+DpD`dg7qzByQX)NlT$rO%f1MLbg%4PW0&s&a_M7r-9lQ z2fwYbK~A1;yKOY=h>Xrcny~~?l;o~>B?=Q|C9H;D(sPv{h%!;2;)#ON-54XNa}UV8A1AU za%Y5@aYiA*{90j|U;igB1Z%_I2g=wR_F?tpW0t(Ng>4s2FT0U?_g>k<3)I`c6uLWF z-dZN|)|HWx&yAJ0F1yTDihDbkKrkJF>vNXCRVXwxE^d`GQ1+&N?7ytXKCo`8*!>DK zIBfVg?}B{^;#N%ECR!Co;3^OzefqCs+SE7blr(z1G+K0Hh+8p3%KUIIM_%ep151TO z7mnRD&VNa78W=o8(F$2*o7F~@`OqiUNTd42Zd+g1@+A}=jTjz>R9YYf`%0$BT=~hu zP@F5U*{0E#mTb}6w52c=Y3Z;nDOsk2i?pKj4lO3>Q{joft8>n1c<>fGd-@093DSwJ zf9scEMVqW1;%^v(F_wT{d8+kq6Mi97I$I^{>tU7sC>=~R0|2(7LQ7qZNO)GGzA5Tr zEq3MaVo%#Cf|s*_iRiV3kzkuwn`ob{^ZhIf0C~)jzZMa2Y`@XooPp+!heQZFQTWP` z&K&EX&gXiqvWi^EEUDhKHdcUmfTp}ZdO7v~*l(}v{{7BhCc2xP*E!75arWro<5fmk zrqLnpo{74fxo0KCx!E5LkA`hZBp8PL45Gm@keJaW;zGx{=7>T3t3qdjz!LG2UEfA` zqH8lEg_$Qy_n0Y|UX*EUlIpFvn#62SsDH?3ze`0-**rORl5<-R$kDBiW%J)vG1Kt9pHEwj7J>H)OJg^qWNva+2d}|?1EmvEyqcRbIzUX2pY zN2zm;Gm3dNN968^I>ovhlDi?5V%-hP-LU%4e`E$qBoTr5N?$MIQnJr-=a&aM)Ekbc z<3ZZ2?wKgkGkJe9Fr(s0`jP~5U&C6HBvkC>t5E+C9AM7w2(P3_(F}7zR(@a8II|}& zkg?|4ypoJHoO^4QWawZha}qyXjf^cJUyqwY#I_sgA%Ck=CxqBdt$L>S5ecpOr;#)ZA~N_$ztPsCn2Z zdBiAr%qZDw&e|evt(?J0-o1gtg1<7Qi~I6>yqk{6{Ae~$pYZ)YV`Q$+I*Chv=aBGq zsQkU{P2zr1n&mkB*7;%SGziDx_g5barBFjr0%hiCDAQt4sNVt903h)kPXBn%;h|%C zEljJQ%EGHMa>?c2kj{ZV8R{s(B@8ymD(L|aGK>ca!~Ts6h2PG+(itc8{X^PjuAgy| zzHgxpkY8GT2cM&Zclus0wzyG!f97MM+^C@(5h$}pLpe7Fh5DVoe+fYUkG>C+kOn$% zlD-dC*?r$9ecwml_tE#~k-2krnk?OtgO{+P_uzAz6TO6GUD9m?o-+$knr7h}ZsBqM zus8ew=#l^annHM3PnWs4+icyVy`wcZIotM){vu#WaAPih&MKB1@&7i(IaVj#E>ujR z{Pi=|Tu(?~G_)rk=i)%QP@r%KWy!GV>Jq`6I+#Xr*2uv1$p({5siJUTPkMhTi$#WB zFV`|wJ)F{_+`XW=d~qt^EN*6P?3BO zpA(^&=A%id>o~V6g@yi@D@eeGUhI##^`8t}Qrmh?R>ig~^DKuYL_>$)+jn+%Wbwo2 zZG$s88VTG#a8tPTD4A39N{)tny@8|hnVchVROp5oI9wc@P+T0EV3Zsd%sR}JWw9PC zU`H)r_iJE>BY}tC+kf`X^ZH~aajRFaJ)BH?wM+hDpoQ0GB{y9}Pm`NC!@zeS;EQkK z(6ocaZne$_dl=X&`B(Rf_kGFUWSvwq1D~9x3ne)WnUt8|p~&nG?MdQnCFej#h0qpe zt=@0cP<)0IAGV7Re{As?tM|*!g1T6#m;c3n!O0P_x$xkKddhlmMC#?ikotl3fMk!u z@?cnf)p{^&?J^VDR1Ur;T;@SG8nzvIuuDH+^K>?vX&^2Hzf05az{5u1eu=BA*=^MH zu>*MTb|a6n8TUUsjN_)2;ZCS~&HepP@I(_ITm?kZ#a+OY0H(i__i-ssLQ6_!h>;XV zO_kma`xNq%`m$Z-LN;$4ehPg(YTRRN+jDrvN#c?bZzO4d&5+nxb_C9lsDgsoc&HL- znAs(&;7nQgE8J!3M?Z*0z0Y)mMd{`)CR{}>lGzrb*_j43;nNE;P(VYlZjF?j0Y5Kh zTtxl~kxkW|GA>r}Hw9B$&qxZ+-A|lA>xi0-JAt&2h>u_m2{2vz|8L-2Hs=F^Ob*}2 zaZADn9&qm8djHUJ_rPUV&j{ehM_!yrd=&$su|*GZ%IFm85H<-`v6~a?OR~&f*hC*} z;_a@D-SB@L-qxy-H0DERaheROk=#2+^M!|&I9%tFf`L;LDiz`WS_#ew3}ZOmnUIPB z=GaM9@DNIa-n2*9$4^i+7m+?CCM9S8Qy7^sQZj=ma2Uxdz`&dJradW;+{V2lGW;d! z7T- zN5?i+id_B&QJjmvEsFE!tRCBryQ!lbcaerD_y`Rq2mE7l=}j9pj`ruN||q7_YK=ZNJztfVyA@X7mb|xyEu#X%@ape6*30t-}(8g^kY5u;Tae za;{Zh5vkCkTwB zE=$@|ufJ%+ZCM&A^r2*Qhr83u1Wj?N_o+$8qB!gCQgbF#=W8m`qdf%A5~gO1pGhE- zL_`CZh(c&rm0nNT2y42@t*6Nn^)h2_)enU5g-N!p?f`eJB8`wSGZbP+_-IfD^Ib`c zg+tp>Iqi$=*vj{Pk%&8W?3qF%s3suZ;0dqOh53y9NNXoY-VgE{;uo!wdC*cE@&MV*T zt`_dbiYlgCf(5uwckU6kkk*MjMywiR{{9~JQ}`uXL$Z)caIR_Ai|vBUP1z}&P>t~% z^6Xa2p10fR?K~#P5A;Fvl$2gxVk&h<7iQ@mcsu_nZzt&>aAM_Nd6u;(M}eqJ&{iVR zxAUHpj7yHH?@kmF1OG6Lf;>kmd4fZPZ7}z0FnYx6`BFw4mNR9vmYgZ@wi9_8Rr90_ z)6g&Jy5jp+IT|+{fC@9gYBnl#%+?}DJFVs8>-q&#U@?-^;lFFXSUfW#SRqDfb9Lgv zftlvhqF!Jjq>@sF0>>*I<*uM-A2v?u#8+=*Q-C(KdQHI?M;m)ylATX3(a8pur6N*| zi*3AVvWRrszOSThPYM>#i?{78r){l1gMe7a@H#X4v=C_X8$!3m`-wOUSSZh3JA{NS zl!MB|@#(R$SleWAJ8iqrYTM{&@h~T}a8#kC)Aw7+7)Tx9PUv1Xd6Jwb1XBGejW=JvSz-d z?}i4hVIlxJhJbGlda3eT|$JCHtYLCUKc6cdn>uOLI7O1=UT5P8<_=pjV{>1yzb)fbW^$Q{1Vu#+um1jKtJMM6A7g5JJ9`AgY&PWUq1pWR=tk=kprW`_ao290yU@fj(>_l(e$qQx6m?- zH?OT&-XHFB;7SCZ;x0ZoOa3x?a0o=x0Fwl70oZK;v~us1xy66xD{kJY=C9BYfxgaZ zHOJ%1Ah|m3a>>UWmdgpd_X(hIW|F$Nh(p0`vPCHm@8vjqzbT{dG49K>%RLRaZHanU z%PL62CDG`CDnh`FV)9qLw|-@ zkmYYX3w%XBD|Pk!Iip!=xwY+dXNWmNzXlp+c>op-aS)JA$Q7 z>ZMGwl(7y%NZet_sAF55I@C4V#H3WqR^dzJSU5Q=&?v3PYAgAaAztW=FMfy7AtU)~ zhsF6>WK{A}tE>-gmZ(r{6ZQagGC(>SOsV7tfXNiL+$p|tUy>T&Z^s&ZW=X7@_N!Np zmk0jl9qN@|LU!cqYt7PniN=pEj8wXHV!lY_ZCr=q>1H^0l7bRrF0P!7Ff8?uc`?>P zUM(tm)iaukN=w#$Q~1xl>dX4tp}yUD(qSTjJcop8)%l9skOxRC7vzk=67nJZf=)^h z#Jz3$k8#19IS(*+d3f06-S~ALF?3pD_&4KaTZZp{TT2XUbTaqL-uo~*u*xa5TS_(5 ztJ|$2!ftF8VSO;X%RLZqN=~IGE$2d4y)TR(t~dEK|zsCht*G|oM0fycyO?6gtkjlRCfMHQ8tRwMtq~xo!7|?e`$vG zRduM<{)ko#B`sxvGb9qx{o)r`$0bAd-7n-0;+Np-Alv12+Znk>A7Fhhvr+0T^I>_I);nIxAR$gHQzHk)B{73b^gj9H*$#^WKA3G{>jAvZftc5r8%%3! zzA7nrW!noHc#zzSV}-2QKOBilUgN1GfNE==o&+<#N$O;0AZEwam5>}WRzqH~1NoG; z-&l~{=3VwzbKH)*L&L;Tx{r$!IfSd}#Ap;q^jN%Qn~aXIAB>K0AHtkCC*_R_uzm@k zIXfepgnQ^s6TSj{5Px^vE9`=S8Q9fP?A}o@A-SV?qEU>j>Hk<*-v?IsQDGSX<*y!F zs{~TNAa6~t^_m%uaWEGqMXVqX5nd9Wt`I)*!{eh^r6&^y;<7(|(m?zbnK7a}#Ic~X zNG-jO?Q7IvNcIEivAR%RQQLK+Yr~~6zVf>FkF8BBNI3q(47nj&ZLOXp6BYBIPRess z{G?j@jMm*o>z*Bfy{Jw08LbD=m;~>@e?h&vg&H?)VZ0Egpt}WSp~Q1IiS8lp^e?p-H^9eLzG!S<1#S8ctI+FPZC&j zV>K3gH;Rh~bX^m9FT-eWalatRI6gFpy$ZHgw6K!Od^oRlIIa_W2=L+Ujb?rX(>xMP z(b#2i{`Xn73z`km=PU@Ct)yr-I2yE<6v3tGNUy?o%w0>B*rr92`%58BNztd*3P(UL zT(mygH1KIb7*rC&Xfcw*-Hqb3KU7hves+`SOLP&h6yXpwNRGi7XM@%>csFXMa+54+ z^QOkCDx)};s}Qq3slXaNZ|A>wA6_4Halr6g{7=VrWZC!V2nR_u3H=OBuOf!GvCEGU zsH&=}{@q*1rC3Qb)UQyW_dfzC(GTAE&k<3GwBIjPTMby+$mwAxDg{4!ctrF=W(s<} zXjvvgqqbjDlOZJ()oY2AuPT=rW(|@<=zc25OjL@8d{Ozm%Il3X9I;SBQ(-0IG z8WY*}IR09rgYZwUIT|c9YfP}SC$-pdg~3raIthJvin#IWUpxBFglx^ zdLLkITEHo&ldg%?xgK1xm~pMHHWL^8D#yM*rBv4M@>Wv*K#kwtlAL3(+3yHE1@KM>S-IxJ4~Bl85+ zeBo|CIS%gCBGLQws`q0LUv$-3MFg8!2{YlE)wg?5z%(ZYvvcjV$vlP!G77oSkhcyQIAXTDy zvJeR`RrSUowZQ9mJK=&vp<&l6O#)Pjxx9ex&DBYmgI=NDutY+V{ahqM?%^k*-Rk z(Fcz@5T5{ItQi`MHjvuMYQ`4cSy4a9;X6MOllq&+AdrX<M&L@EI{-I_^ss+q3PrXFDInkI(j{vJ5Pt*oU^=BZPp{tF8jUgcI$9DulPs z7hcoe-Y1)Ew({zy36`9fQEcdkTdnz%bI*$E!Ykp$*;@`YT?a)5xa9PGj^h!~^$|`EViHMC!wjVL9<{M()uA+-@y{ebP)~wf4sd5cvRKZ_&vD*0}f1ppi!d+8F822E&9X1cQMDDmNA4G^Q3|2C-y9;v_ML!yvY{wXH?0ms<6GORWl4#UPr5ViAxk z7Sw2IyQf1nwiKd9=Kov!oVg^>e&6>z|L4QU%*;7^uYFs4?X}lca_}sF9Xi@aDal(z z{m*^Q4d8%!h7TnDJG7ubEx0R+D$|N7Z0-;;FwLu1kV{2lhb&oDg+&3-E~&{+#8ywN zgy=wMy>w|-ux&=U8f6GuA?PUh7u=Cm5z=1#a_$mT74E!T-FKa)M*YY^__2PAm?ex2 z65;?t9?_xzft==+y*)XPEFq5$;(OFMS8YM*d)#wWM>MV=D-7~l)H)pRVMGifOeKo% ztt`EHt~pu!p{d@uLnODyJV!Gs{KKN}MJG^AErwD@Qlsx_o9AqG-7i^qu3RHRk4Rxy zE2}ywI629l%JAcK*TX(j*gc%RUAd0!$xU&;D7t4EtF%863KBW0I%^{5&Rug8LSF;G){g9R!xrQ~|VYw`j7et1N zK|t)L_#Vm{A!F(s4NR=VjyOpAXgSw8Oyf=J^v-j9k+kjG_(gbKeYtAX-mP^e78B=pP@J*Grb zh!W-y?ocn;J}H!#-B@K5h=fjJQIK7a6oPH5^m=Gq*hJ}ZWysWoFxBqwZZ%hT&3~gH zx}{cmTOHLLFm2V<(91zwil3*HB+|7PG}ffB8E>m6KaR%D*Jx$l&>_h(~r$rg;7Pdkasvn}kSkToN{v)wnT3WwB!+YH*pZ(0#A)l8DO_RV5)G zd75e-H(%3h6!rgJOhdjev#ob-jEQ(pqE3cL1}X!x_><=zk@ZK2$NB@E^&e@MHu7b| zX3?$4Ijjh@*(GbLHs~z~D_=KCzfOUW&!j43O$L!-pYMe{lFbNqTl(6I<-s?YUrT2l z&sQv`4LKZ7J&wzz*jPUzCFOz{cUeH35SlqgeR#KK2h_WK5^#;;wxA-v zO_#_p1|p6VIXcnPUbq(uo{(g4$Aoia-r${rTYFgrjN{*TH;Wr?aCN4`ecwm2G8{u< zT-#3z{IdsPYNsRa%To*C7|AfxyjkjT##NcCT_Ei=9yhnu7fHMr@z2T7fnnAP$QHrP zw3Y_``s)fxR{8HXOX>H0GG@MSoh%rsefQeHiTJJ-k)2 z6R#F?*ivCFO?R1FWFk;9pyZX%gD=$$R<35j5AeqOLuv}7x9WT;h*+vU2XJj8E+7U!8I zSz>dWBE!g#^)H{OFS9tJWktttwdE*BBpRl;Rj^d9X@wfx^51BhwV?lno^!oGoF|CJ zhpO(Vd;LeW2L@;7@4Vxf3*?q<$YnZvxLNL$zeO%1JEdSj4%VOxvg-$9_eex3!F6tQ z4RRMQm_N|zZfRs~D?+Y;Iv_V)C$|z^$C5Uw>$c>k)~?+uLV^l44-+XWpd8DrkjVdc z5?3(t4XQ`SKO~(gN>Af1Cd-}9IBghmYmE1xxR5R^Z9@6(^KAnMa6XRJ@l+T(o^^p5wSZ=dAqBYj#qSI<$k1-{@v%@I=e#PD6Q zrUt~CB4U~hRDfE|Je_|q3Pq5`J4!_DU^^I|#ag=8T?%WzQ1F{=oy;-VyZI5>%~%Ys z2imnRMML#cmt~vM>F?}5*<`D`RF3lUM}aM z^@7nI11E_fcHe4=h->H&2UaXrD~^-Vq6N=dAZ@hB3K}gkJflT$#AuP_Hd@Bw;6v+ybi#V@2mL_HdLWMC8PYA}alLfS ze(;fgAicC7?3M?*s}>Byf+4-OOI$57jrB4l{UAjZK$oluQX9X=>5m}#mZ$oNy|1Q3 ze0W!Bh{>cxv}o$0rxE5H46T;1n`}oOqKj4MLiVZ&b7EQ8{o%|(g ztW~lP(-hpMi&!sxmqQ^7>a*~fZIQ?1LkLcE_?*!^b&2!49@ExrH@w*vXwyTskJj=dnl zV+&}J4fJjSipx)KGSI%s0#ayzZFYvY_=S6{WC6L7ET9*=hFBYV<1t(MtPmxw%W6jV zJJW9BzvLs>_*$ytWywV#?Nr!qMPztH@c%<;23@LNRyhP^RoY}uwN*+|JI~Tj8OncY zX9De<+{6{hO=z;y=DX!2@MZtc;NRPJD)8@oBR&GSIZbR~)zIm?#5Oka9oU0{jdD7y zycNzYdUvL&i6KWs+Aj57P#VrG+&&2WnY6+TQK1j{#a zoNNztoZuC|9x{=%N>6IySm2zphdkDW$BI)vsTX$)x zZxw2;h%5%Ix19_70_M2fD|AP7ysGCzEH$RWr|C5m%S$_x_+wIWPG;x^t^`+bAz1E; zE_X(k_(rVBhy)y3t z=xV3>>z9dUea8Qn#=dPghAnDedrxLbwS3N5EChY$>tm8U_ZyEi&!FVkF2ZG zy+-;2MfQe?1lMFbR#sW8L}=q7!LnV;+0fJ2rovumc6q1I-larulMb(TI##-@_Z4d4 zimy>yvCas$HYEy5R$`7SPcL~O-7P@?GjTx@Q_7X^h)ogTTS<|k(r~-(GRwLu)Q^7E zDsAx76DUO4Rmkgktm zZvHVl+`N{cU7*6O<7j^mKG=f#F`1SXk$$(@#oPR2l1s#LAAaK{7zSGw^=sb6go=;x zU4)83bpI0B%nH@vRHi(a$YyV;x0Z>iT7x>iRJPfvDBMI5EZeNO6#?aaY}~jtt0&7- zfYGV;|3ik870hvz#=uzep{2iAvq6vbtj+&ZR)e(@8T*zXC7z;d)}hPvIr9A2HA0#u`Y?^jDyJ zpf0-F80i#hhtmN7q`>i)EW+qsx0UC8#6&S|*}of^8A&oPniq0=5*QM%>P0fIvImjA z%OkTpE}$Y>b+T}3wA>F%)2q$ORjhfnG22OE_)PP9c~U1o#{dIqRnXHjPE`U5iPiEa z#5+w3tzy>xHEDFXR|c<|n)%8EbDB&VuHYvU3~;Uq1) zLoo|6waAY1hbh94LNgtY5U>0cg2*ekSj>`;0H==3FXlmJhXl;w!leeGQU_4XDR|zg zp?vltrBHRrA+DiBP^lS!Ty0KpPeRr54AGd!3F?hGs?-CQh|)i_l6=mm@VP zp%sMS^=C@@A@wd8%4t&&a0%uf5%;!CwOv2N3r!?@=KSUZ6b)n*6uMi63%&9j7DMgB z!2qYn0M4n%U?JB2ksMv{TpU3}vo~i9M_Tw&)RR>d=Wg^?J<7Psy_1+Q^`qbF85Ps0 zS`u%GX%yCrLi&3g?j{N3FR@4l!5o^)bXbyJUvG465h9hI%2v-2d`v8L=zVddc}BK3 zB44Dut=Y0BngJ-b7F9Rzm*%-go@KQ?jJES6_Dm;-Lu3GwNvYv(5{6bNZcn)yM_jZB zrsI~V?DlWljn!Q@t+3F2?@{DHNI;p3R8cv34!hTNiVoR-l(X$TaTy#4VoN+Ocq9?1 zp2k_a{N@v!ap`QReDajqH2 zZMatA7UL<5IX*_p64l&koZCK#RkHLrIS$+NGV*|Zch`4-8PdMyUCrML4+SyhMzG)T zck2^y&GjkhGPlKnf?3Fyyop6Y+}c#h?LvJ>g!rPY}YgT;&AZU!x8|8N$#eHco8alUfu9lisF7w0kq*=EP>N(heE?rhNfnu z<6q$fWlK^xL%QLaXhejmge7Bxs>86iW)EP*gyd4)R4>AW8VE5dVb{q^c_V0xY7~DS zPNU~JiuX&vG^g6ByD25~yfz$rAq^2)5x^RJgLpP zO9E5kJII-6$~E7dbHsEFG28DrR-X1-xjEm_mYWt7{;|9gQv!sH+=0k_`+T`{pi7_h zGsMP9PjuZ)yss2X#ct`mIwEH%^ILbd&fyEjAJx&4t@RgZJ%zi))QiY3KxLYL*Gvt+ zD)f^)PqN%a@F#d)JR;%$)H;SJEjJJdwKmh!sXHODo20 zeAUd^es$(Fki)Vhu@CSM2DF{$4`6Z=T|>y5DNbWbx-lignBu~r`~6Qpn3t0z;TPQ= zk*u`9?hQU|l8HM>pY{*`BdOw% zzk&4K>cMJQeDbea9{EJ$LRl8P*0Hh_?gfqBg+zKXv%~=TBnrN6RWG4BJJqerdU4P% zy0Flb!TnWp*@c6aOWJ6yp^attlU0=ld%cKj4~h*3gj#Ge<>9T;3lEoJjJ}-{v;0MB zxvW`#*N`)5(sB*yCJAv4d>P3~5j1N*A@!>Uq36Bf4+L4yQ+XDIeo9Qynwt79NV}&1 zvcv+y$+k`$H_&XHw{jVI7gRQ3k|Zp~sV8F%UH+hDEcNm6REK*@ zS(f1xK=1I2m&B8az2B~%WSN7DF_JDkZ}|q!?uJ#Uq=st66v2Kn+oxpXC5Ey)vvtZj zGGjZIXjzM9lwvw232KLZrC8dy^4qE~ALcON+Ev1}OB4yhkj~6hH%W6^Z42QSuJxqE zj=xzcB-vHyTya&ul#f5=jj++3>W({QoTV2QmSy+{v;JcWJx6^5V2mZqP*1;Vi!Fc! zP6GN{7($=!trcu987Heg-D%d#ty+CAsMo#Us^v(1jF5=dHj^|=4<_ z$K({&v*GPGENmg{*;w$MlV-zd&jvkZ;w8b)``Bgzh+pKMqUoLbxBWJ>DqU@r2X2rc zX_BThNo(;8mzBriMT|I-EouoI_)6oEZboBo=?t~~R=FdNQ7`fNz6zD4f3P4&Jp#7pN&EYI0AqaL_MM!JmiVTQW2PIl8`*$C~Lomdw2&xV0k z=f6q$X>umbpcTVIHr1sf6wpO~CPh8Vf^DvH>B5ZLz|t~Scs4f=l?LPfUhoraX~zEk zxs-jMIAyo1*2Yt<_@(eWNKc|wRiWuF*{Af@+U%(L>E0`JPh{nb-Rmx*&8UB3NDS;| zh_|u&2Ajj~&=7gKg4zh%W~d>F7oS6V3RdU1TOJS$2`pyZRhU<*bAKXwJqhQYp?2NE zOnQi)P?DYIS*-p_Qi^Z4J~zkb`8GckXkgySlhGm-dnJEJ-dfH`NGaYH(E zAk8yd1YFl)Td<^Iq64wwN++>&93+}4$!S=1fx~}?1f9e(1bafVES6^M4IkT{;>We+ zEQkL_(?3J3-+d)wX8OQ3J&QyxstvYh!5m~8ff)xqGZKlyvu|7Qj>sG%uJ(fVqsMe(*lcn4TFDg)~GX$na)r3M;djTTe4DBk#?pq;7z<=Bx+e{pe2UHD+ zz@C&%H(!oMz0G(-(4fQ{NiD#=N2yPxTV+QyzJxIa7Bm5L8g=HvM@(-OMMK$DOa|#Md2?yS4F%gbuMt zZm1ic((q@gn+k-IZsM1k##fUa_>f#Mh&XC2C{m4UMb2|T-6Nl&A}RLPO%w~%5jwQp zQ{o`AW4mXXLw&tk_xz^dSJ)l~>oXnx^tI@?u4sedE-4Q+OI7v^sTOp?pmKGgXfm|t zfCPYR2$ZDw2LmZ3{3BWykX(wwVumGAqJJ@;5!or1fx?<*tJ?*Wxat;u#IL{*wUjbp z#g0*(e3PaiMjz3wli9##_yBCL!2fJbruD!Ql)7AvxLbyujh(U^ScM-UjR!DX8`Bc? z7fF=qRwLGbAFr%%j+^1{ppLuL0BW(WgK6O@^#pWfnrL|fo0oS*{a({E7eYvYYa<14 zAdt*HA2LM}5Qmtk(!k8#SOY}Fb7=IDf}vMs=|Cc8fe@-9Oi&a2v7*G*Kzu)?psdJ` zH02O|APA#5XSQ)2o)ulzPvbhTQ8tMp?v`gLPDetp_?|qXqHDKpWG%~}&QMf|d+YIz zg*|a0LZHD=kHK*;*#GO=K-1xg}ef5J+f6BY>=-;z*`WYW9P8vgG-k=8n!iq0?42X0+Za$$N9>X z9#)rN;3Yv<{>p>3o@uR~MRMeYJj==n4kH$sGBu%QnJ*@ERmii5CkJ>UbH|fO@L{tn z)iTk{XdL{6_Ds)%2R#oayi=IJgEECNZQXktzMkx)lXK$8VTq|ydQX&?TO5n2;M#8kljj(M$fXOC6;M6JmVRfUg%cO z&1S$mjmarwa_;@Jpn8cLBjlFj1tBq zSSAE*mBDRle6VeQEiNY{_3H z+8RW!5m=&J^17=mfR;pqT1>(mwh_J~w06?x|*jd;?qu8<=Y z(8bp#x763H;AtwuFrDT7+w=DX%;S}C`ZcvxMxJ^sozp%rKQdsnf4+G<7?_XfPcE;) z6IfGNzKHR5w$gP*G*gC@Y!X?fdsZ$z`vp~#hSH*IXe)~33fWW;$&hcPwxX!4DX&sz z>5eQG5#(Y-kc%BYgz)jECkr6Uav}k!?+`mS>LF%n%LzTeTp8f&X)?gs0(Ul%GiRen zh)?`|(5>LoxyYtg=31&*AD82Lu78FH{?fg!ngUVJ++as;fq(AuL#BTTw)^VoPuYWH zQ1}I(vdfB)Oyr6Ut#3prx_f~?gB8MS8ivyd%te#ca<^Wx`39_UnXlm`O$FOMYq0u3 zRMm{Qk7*M~!Bx3X$HKr2ck_68SR`C8N2z{tK2NMX%SEWIA$g>D73#-^Bz*;hv8rO0 zSvFA}gbvyxcwAT6!wK7gV>xAjhbGzoNTHGHFc|{SBeO9-*j` zo6`MYTWc^ExIs@*Ewptm;?H~Uhm6Ql%_L@Q5?%e?7)f0zG~=}agf<{pgx89$zDkn~ z++v;T=b&7~o0K1Aj|?U>JwYuqWHkQqghjvOSZ!K&uzs;)<(Z)pA&@@XA7jy7_R#9i zZFpHa=kSjTwr6q~p~OS{R9%0SZOvR3_z6GCf~apkj2NxJZ)d+aTYfQoHA22ffcM?L z(?e5w3-XXRr_`iHGa^|2{rhLS&SHVESp7|YNiIfYkeK-WY_H&{7gjU)W>R)VJot@9 zQNj<<-aM8z83k6{*gql4;ns*`gwSNz8}yhZ$kLA@AF4uXlYh`o4Q+d!ez`>Z0QY_P z7aodUU?RCD+b1%3k+mXpRYR|4TchYg{(v`(y5l>RXO**Vv8axSHnu<~NM?U=$#+Fg z6aCghx&`z#1z9VvfOnsmJvIIwLbQe|5Kfd@{(sIS6W65z1OoR^cxCZm3xjwG^7_}sVF3D@IjAW+- zp~MMF!Xgb@6PM76DPt$BLENPBFgmf5TsPDoxy#1`P1IUVTH@atcOpE4Zg~@kA)zLu z6eq`!a`gZpY1#@kam|-s$E3s3c6)N$-jmt}le9U2nB8JPYpxfxlQk!9dOT9%gd{yt z*-t?XD}Bjl4{5qC0pYKr74raUxPy2Xj*G=R>}xTEZJyIiBcjbNo#qmxmvC`JD=*5B zcyqz_jLMiDz$O@R9mcQjW#hcaz8HsK>Q44Gj-gOgbUvEZmbs)7Z4{Y4Y#QIMae_|cf?seiVB}ZgsX!>F` zpKGnOShogdSF?vkF&wYu>CNu5h+m~q>{ZjhZ5N%*ox;en9nEaZm0gir^eil5=yt}B zlpn`tAvwn)Vk!=_-bmVLxNL2jF~RbuMci#U2Sy+rAgAqY_5r_iIh+Ca%J-N?gvqN? zshG#A-Y*l00spLMo;^`-Q{S448yBl`xsmGG|E^$X zS*9h>A`T5w0Wr-X%%!N#O1+hqX~*3BM6!>rokMCx&ZxG%&q`#A0lrb#zL7adN1^e0ZA%7U+x%n{lCR{ zJrPlb%{t38WYp|g@fAnLhf2zYAQayqH6M{Vi23{$J_uIOU3grw1G6kHGq0jbO_tYo z)*{fjoA1PGz)6VbR4+U(9&hr5!%Ng-g|@j#JQ!Fd1{ETfY8}%XJt)@I15<+~V^R+d zbr4(N(10FEfKiflKuGSPk|OAHaxfU`NkgKdM8w0WwFXb$lcVc!ojQn~`g4lBB2FYW>w;$8c90;%^3(<6XM;q1jpUGg`D7s2UP|G0HKt=$S0f}QW8BbfE zSt?i0P%XLpi+3it$^SPfj741=qefP&vcpf83M&X5gZPRnOsoNl!d{>=UekNc&&>2?q?j`ZEhNbg>E6Yow!e9LGA#4p$= zZ3+6@yWmutpgXY%vWLev!56Z-uL=)M+63m21!3}N#n@rJDA@RePn*?_(Q@<2Rxk4@ zvbXG{!&p#N&S3Nb?f;OQB-VVH!S)&A8{}L$O>`Th0$R^;B?`zH%Bg?&#{j2zoOYi) z1+emQT=h3AKLBwfaxQ;~d(T0!B95`Hi9Uopn+4bGZjg_cIhKNXzo6q1VfTsRE*d=uTV1>)v3Q4u z>ex8fJp12+5*2d^>9!9lF=~vilU2|h{i7!Qb%02q%tuwadAF4(Anwv|eQc-4gI9h3 zRv3eLSp6n`aZ*`Yt5_&2%Umh`OU^1QmK6q!H%eThRX3@A=nGFGgDQfXp(fRI+V~pm~Q)cx}MTpN4QYvd=?UVs@wj7siNiV zKrIP4^VY(6t&!APJ1yH{z6%yjmGDvubWJH(RQg{+O@&2dtrt|dr}+P)YVrL?K-Pz& z40*DoKHitzEi${PaMxCV4M~U7%Fjk8~IfZbC=~0L`QWp zj{LT2LvsefH!?&t5tj?uLJS4V7>xr7Y4_F`6mM%EC@$ovTt#wl$P$t38yOuXa$j)> z*aTZ_^+nwx3kl=jF|YwBlH|ihS-S>ToMbVHTyM5J4QIdm3)%X(8Gf!#*Ej*B%rg^^ zs79Ve@ESZEO=yUXc=QlWe}Uz&r)dCtiduQj~7F$EHn5Uqn!g_7?GKmrf+| z%WYqak#{Rbw|chw&aH`MrrVOamh^bR?w zr>53CsiO;$>+WmmI|Fhxp4`Avu5dR@YX11F`ap)yiddB-10{hZVMAMmbQ-OKhOMoF z6h^C{jL|A1Yi$*TsK#O{wx!_!1OX9IMn@fzU?94gmFHn=E?!#B@@*1w(GoaMrJVQG z+fWu8kyI0N68&Y#V&Cm@FAAk!3+d8C%ZaxSXEr9(Ga92ZZ7avdI;V$& zlAzZb62f|GNV=UuTX!wjhwQOmZo}Xa1o+|KGtLsJ)))v%g{>W8ugdQ zIjyGVX0h+`+loZmthM$Q(Z{E>xA?7(m3%nbTke*Rm|40V zGXV^-)2e2yvqJtn8|;rNm9d?Ss6a1aWzz8=_faMcXAncj*bU~`bY6CheQqQOJd)p; z=^X>JX)7*2$Ou-a6TM!tIa`+n9ymD(r9*a5p^lVs{J{N*GWG>Iw$+3(3IU9x`jLB2 z>OVzVKZm~-!t|up!367aT{JNjsD>uz9omPTE<5}e;rq#RJ?KzLmL74r%I|>-dLvUG ziL&VG3@h~+G^u>l~sFrmn* zARbvLyA(=^En|C?@a%JX>c`aN%&RVRRrsCP74G2y(SO?OM}}q;pQy=MR9#r$A5?Pv z^@ZJapO0-H`#OSAElAP|{6)+Seg}lEu1`tU;m=b4Tmu0tBg`7*;(_Teg5j-* z&IqMXz-cX`ZWtn8_yW~}o*tsh3*?c@i*!Nlf{f<`Je&m zAZ#SZ{o?N-4coiYw||u2!8BN+xd=K80<<5Du?g%Qr|Fm{8FFv;>;Rn zFvF`Xqblyp{Uqje0= zTAdw5vK3(xrb2j))>8gf8yjZmALIBN!!B8r47_8c7n5|X_Q;UxV0}6r47NL~hzKQ1 z@k_M7EJbtMnm>aI!_9$vKdTN-TIKK$biY=ju{(znzwI?T-h zx4tVKj_&9MG`{AvfnY^ijMLrVzsnujdatBFEh%3=iKf@t;oq*=FX51fZGjX0eJS z1$V^DyRrTeBycmHAiHq{YCoWKS%gIcXKIK7#3zYsmK3hWH5S>{_J3e zBgdG>FX9ImbCXsS$(t;PefAIb$TDy z1^iAGy+DVuIt8F%-lt){G=q zm+V1NKg0hHJRyd#2N$m0adU#_uDIf0aI#}|eZWy)(D2m>j8RT>p1;Grt<6ktcJdh9 z6+IL=5D|CB8GPT+6O`FeI6!LFb;Q5=(;9X~1%BerZT_?QSpCqkooh2@a``A~KDOrH z_Ng9Y;v{0@Kkn&!LPs0rAQQ40(#Km6oBC8EBcx9`Q<$z)gS%<0o#3N#`Z+=m$Wdsf zazkz0t^o`e!sIm0;KI5nR#*4dJqGKe#))d_<^oN^*Gr zKK!2L&db(~98cheWN`Ilvl!xHE&+N8(&{!-Dz)wf;}2q2#===HH3w_BD3Qkp_Pv`1ok^kTtLahh6Aqn#K%=I zFtz-2*+o6sK?&Sw?$82K5!~gsP4r~dq_Whd!LG0Ir7Evf1q(5tl#q2llYs9i({uPs z{vu35k4m>Op0RB9YFQ}h?r^#bZiwP&i0*DIk%{!h-82J~OK$6j(pDM`?O9+ogxjUw z#=X)W!5ei8xFOi8L24 ztKzTz0^ZWTZrLp@TOnM2!|lgb%>BK=a&iV8(6*s|i#7kWpu7avzw)Vf2DoM{Jjr<1t0JF17jXE12Oh!>RyCIN;_OQo4O)QHB zisPQ$!|!NlIch`#+FhsH@w9Lyc8i>q1<9IKlTtH4Jj?IB&FWO(QU;!+DAa0~WR&II zX>pV_vTW^o+yF^yCz!mf{5C|;&Pp*2CYE~vxukUJ91sZ4U&P0pP)(o8_~9qnE`(Dh z5DXiUQ`p@!jMXs*BCyquy5-SVQr3>$bw8sL)|Z5 z+LWb#BQv&*vikDo`Ju8SdeOvq=MT5&wj($`OR-}p8U{jY2uf>pGq!GJN9c3x_Pg{5 zgOE7Z@dw>JkbFXRaS0n-cY!c=V)~L~${_J&d2*h5039^MN8*0t*v+Fj5zEp9$+{Nw z5Ac!MZzB^CyH{@~f+y>ZymUo;Bd@MbY~-Y!G$OW|-A9@LAYV*4`FNU`>1uk6df8Hs&K zU?_C+?8{8qm*jl0D90b^mSFDp642gY>B*&9H@}Am;4>%!#l=B`vE^={+*IYg|*po^ILYt9` z$rfE&w&-q_8;kdi7(e#~iyxMYUuYo`GRNZFlelrpx~c+IFf| zB*3}Y=;8knDzQM;LQlmG#xEG*U8a}8jR_n$+erLn2$s;CUaZx79f=TgfmlsL*W~=O zYU=Y3*=LLjCTd(`4vH=#xngfQq;S$*0-3h!&J*Q!lFUn+*Vv0`Tt%9=I4$YJwpam~ z;`y<(@Iu%sI1l6{I*C)SmYIawW#mJfZ&29D@r}aiG zL?xe6j)sTDA2wqJf!Rci5iklbhk~Qa4;+Kf~vREruTPqa<6< zvYwkUJG03p(;%cKoN$7MJp;|lonT_}vO>m)J$Fz;Vt zIJuO)qXp6NB@iLyWgjJlbDef)UoJhC5j7)~X32;u+B0^lNbp`?t|fRKgG4VEm*Z)* zM00o~O~@8(Y75H5bqB2CY^lIjNDRnG5B{V;B#pg*16tg|#QQ+B*Osr$RA-;%`O zkyO(eYLt1FTim~pXJfxFKa($HpPMao!BN=4wsO>+Srl!V%@;#I43>;f<@Oa8{lsL+ zCsuc7&5%&bGUS@&A+0pvYPyOW+}2dal%heH>jhAXRUhY&F9!Gv%=ID)4YhEYc6dcH zQLZ*cqERgduxshMlO^ijiXkF7T2}(4Mx!cyb8oSJozyq?mhDE1mlClxY?R{FX44d@ zT+KZ)-9JR@bdgoaL6kIbYg>K}0X@bICD?=9C|Z&itRC-(L`)4d*c0_l2=-j;A6j!6 z#U5dZ5cs*lZPMap{x@qb=Bc5d`nHPk&6E0j;MvH8=z5vN=z8f6lX$|~{+vkqbOOpS z?_;s;U(Mb&+og916&k_)o9co=?^(Jax08R)}w7V)(7(68?xV>h-COB<#843)+R4U=(;o=nmX-7 zq&VJ>YgkH&-8g=0&mcW6-RZzl_2D`i84)!O(qr%m!O)`qf$iUyUHXAH+W)!Epn_4MO(u|t;T4~m&la|Vm(!dM?M0oUpupzLiICqg z3Na~aklQeQZ#aKnwUK#agQiVmo=(F~QFx{|byjq7=>8s8-RS+UzSwI+zp(|fHO@!Ox0k|*x2^H#6L2r zob+ck1)?u9Yn&4*&uYM@?PvxiuYxSW*sp@0x%NiWqQ>g<0#CQ^E_)h9p6M0yfG`|p zG!zv2&Q<(gp~%veZhkw|2pS51)u({Iz{U%FPJpWLFzO^Al=I83AC~Vg$($0OhQM(h znsf(yPOB%cou0H{J^G-L@^(;1iKyrx26`6c(e2R}yJSlf)Fa^BtE$RF#jbL-pIa9i zUm_R#F0-NZMW=i4rYx@^y2(<_NiXeixMb>kA`489GBAuNnP^ONtu0P(ot7Scj8`D3 zOuT<9%~VBKr0ZtRv!^vH*pucTnct@8Et>Crf{6>i&Xgnri!34)g%lBKMkV{RV~}pM z0-GM$FgFRvS-6dvS4p1&=T)g^max4NV4sYyM=sR`Yr)r5SR84L#j7kcm;=i8gq9vc zdJa#S{|9w-Q>r7*OkzI}dNx-=j5Hn*q8cOV&0^ASHn+*&&@226F5M)-9A41&|DJ~- z@Kxrk;u27k`mM3A8=fYM)Q3Ee8=eQ?E?12d`V+`|wc&Xjvsc5jDdc$)Frng9W6lP{^APyDjq8$Zj8%sP%TvT?!s#0# zmofIlKtCk5HR#!pIzTY8!1Iv%zWe!N!w-5Mf-t5P7bkilT^LOlp0JC!w^&^;%N~S; z(uvDGn}VJPQzK2mrJJse`Zr*PqK9xb0@ePzMSAFIjpmI#5RAC?ewB7m9QyPM&Qgzp z5aO#VAqFG~$U0x4>Dd$=-@Gi3^NcZ;J&vlg2Lf+yM_CP>eM4iDOT0V9i`xhgE;$A$94ZF(NE zG?b?eIG+dfAIW@VjE%SD+OR~E5&K~H*d+(U!?As;hUgDBt96a3j>b2i<##g9 ziWA(J7_O2%PV*cZ=c;PX=hSZZd`VP~uRyj#gy|f}PqOm{dv5lp^EAcgP7c`IiLNKn zJdHVB5iD|Umb-7)0-B5rbZ-G2yCh4_0#|M&l+$yBcN}CN$+6?RNFVUEy1xIcnxOz&q<{D>)NgLGew-OQ`oj#Z zkyy(#@YGwtm%w2p zrD;SKi!n?^b_6TgFjqgZ2-qQ2Qy%7KWMW-b-ZB z!%V5P8mgOeB61o1sJ{f3Y^%k~9abG!0hxy|o5gvcszTKR&SHx8s?eljR;u5@ckjQf z`EMo`C_WcV?Le7Y|IOk{f*{~3Yd4jvqkonq2$V!FkM(V6;Q`;^3N>E(7f0Xze9ieo z`tmh8)FdcVb`%4Q-}}#!CT*><-7*K668zBkbYr^x)U{QXq_C49-qX^p#f|ze=ud5K z(*L}_jFWz1UBHOh%XBaETrlU5&!rh=BQ31O%CU9RF>CK*mH^hy2$t#!?FA=VOO-?THQwRNN4f zw*Z*C3wxH2RBp;@R#zZt8DKI_M#jWj%SiO&U^o5f-)K7z<=ktq+iUNS4r9Nnam^e1 zg)nPo2NJa6bOchqESm+7Gi(;6jocn=J5i4PzI8l>im|0ZCBWSWk&{|+jY!(eIc!5Q z?INi2tn|8bgR9e1>xe0Z*`Z#wDSFi=Zp~w8k&ARYFgQ=e(9tI8!v^))6QaBCW3ynvI^XtGCDNyOIZ!1LWoq-_@?q%rEocguL3xtq`y~G4S^Xqc z+_PPsfayO5ZJWVd_$TXTO+a#k8)wZhZ9JwQFu(vA!!a4u_o~Ri4xu6r_iN~u@2Py`Uy;qWZam6gb@BVQ)X6xtyvbPT>L}3?Nv7gvj1FwgwakRMUb>Qh zuo!XMzzX#i0xWaA43Xc2jITgPw_dtwz5eAsc`akKejoVyD>w1zHVk@!8@^p#I+XU?Wk*~z@xMVR#)VK*5CACJ$GNZ(2 zl&msJ>ev_z2A7y7J~{^0!K;H+F^RFYxva+p3zzuLF=sA8OkLtd?ti*&hCo0j1h|42|;$7^MoXVZR%q2gsUjVIl$etQU4lH zKP=cYsD4SXXRy0z3y(BH%PFRw6T9y~FGY7sQ51ddW^sTHAL&zU2C{nY{=qLOxQRDn zx+774gI^$&%A1O9viAXlK z^Z5H`?`-^d;IOZwX`RN*T&?{{%3~#%_8>ya_$KsMoNCqol3e7blZuGW+Z755(I?ic zZwSHTwjKgSBeOz5IRoMkKa_`)Les}I6gYerVr*2$Y4uyktm6s(skiqsPsOE1@g%c& z+@kj4F^+|iVWHwlIJaYzrsdX2mU<$N=|XV0^`YS$A?IL-6T9X%XG22G<}v&=JauOC zIQi1tz`9g~nq}8xz!Pe2WgQ6oh8n!8y?G34A&@(@^+9Wns*?iMKm1zA)NkXm(p{c`9 z6nN&l?=`7odN9Bt-sF5S$Soqu;MRL(x=Vq#ZNc)z^M* z4-1x+c)cx9)J$L#8Sb{ci-)=fa7lVPhC;X$LFEsEy zq^F1In+((-idtZw%#~HWoBZ!{-LJVki|6|TkpVBg!?U!{8&90h z)VuF{LV%=CaKE-;Q@uY>xYx3ob-&iIY$fVCPdPWq(#cla>nJKRuW|wQ)NQ;jo6)?p z{&aIYgEap&7IS+EZV(F83d)pD-bO?2`_7sSPng?$+4k=Rd}WhA1)P9W46{CP(=xhh5w4$5?m+P=;LM)I^j7Yk?5;CoZEp837qbOI0 zHr#y`-CMC4QE^SmUR6#{ix11^impnyh)us|rdD*B-ReqOi{`6K`LFHXYp~J?q z-0*#Xv3mHzA?cxAk#%^(x^@#3Spxi@rAx z$)fdjMVIx9A<1$STq3R+{>21dZP*H#5#)N01)*cuS59nYO`KNNl!0 z#o?TlfOEwsu)4Nopnp8eqQ>wNWEjoIym?7`!rlA`tt6q`-Og~UZr5rmzQPh0YqzSA z$elgbq8gip-4@`xW@zAV@G);*_#E5^tPU~3xFaH>J`*E{%k;vAv1(8Zu%D>n!KW3OF_Ie=yvSWIb3utp* z;fe5;e6abIQ-RtBD8azUUIyUpyr4c{?Naq~PIYUOW(g1>2jc|WSq2H*7^gsyIE91) zDK>_+o=_mIMw>y)W?7x8JHT|-WT;Iy=(!wT5t`mDhD#Vku%NYK$yLkgRSVTlx2R2c z1VfOjQ|zist*Yhu%QFtJ{u=JYOPxOAAnw$xk4O^Y?|3g2N5ez*F~doq+P^~dY=P^7Kp z(v?J8bEPezteu#vsb3CGL%HQ%_Y)uq_2{Ht@U||;yzp6Zmemn8ntG0!fem#xuiT8(z*f&EHuteUHDOV0xEt{7Fb~d7N5;1b>#TrD-`xAS5(A z?Q)QyxC^0ccER*+-x>Yt@AF5X>il) z+%H;V|A41r6TOYk@IBH4O*~)uW4x&kruA*=X^2LjraD=wQ1ND&$!wrlt*W0)m9Jg$ z^cVW8p6b{5D$VWU6B<27n!%Cs9;=N}q3Lb2+%HbwBp93dnrxK}*(w=ql?+aeh0>B_ zr`WA-1weSG>^4m(T{fUR3y`a##sP@E+bld~ahrci+3^3$DWWSJ+%GM=RJ0_H)uXV7 zNMLpIJ77aNAQkkCJS`QxMGz0Q%c>*Hig!h9GGx-X!MfDouf1C>ljjnrFZ7ITC`?Ty z{9HKqGR;3t@0Kn1?=8H_hb?##c$(s@zJl>g#~Pa?(bBMX8wtM?@56r;A1F&p*WW^}E99 z6?Xv!6*1s|^|-puhE<(_<>?D6jQT57wuvNoc-=i01JG&#Sf^5K02d?xr1u5zlm^f$ z0Mf#D%A{DGuzb{{AI;(kqqgj`hIJ61N`!4f`F{7iKEqllkV2&t7GRF>=p#eWx$5;To7!6JRM}xoyXKwk!_JC&13JflWyO%jpa3jib^tsV2Y%hecHu zo2t#$R6VcW-D?f-%i{O|-+!sk00RQ1Y_q@^pzj{B4i&{aG*vpZ&W5x(0qOp}kn(kh zq?!O57(OQZ!e0ChR)-!`9vjTJ6JSdFf;ocjkKpVAV^H`xfe}N)HZ{nuJvLE$NZ;E3 zt82Fj8al(|>(zT(Uy3XyZrOgVFmw{*Cfqm{9DiFqw@3E9IN7RquG7;*GGUPo*El3S z^N_ZF2fBYv5)awu$^vJ-g?-2#(wCLd0-qgcHBUmv-Rkpqr1`o=nk`H;JKt^=TA>@3 zW`FQnzh->~T;2jo&WpB4@528hTXcFC8l-K}SJS0Q;&2*)(Bm624f=j&)I*MH^ zj$zZgbWbPoT6l=Z1kI(dKuPp<7=4wu%>vHj4G*PV>l~`sEtBg~cXP7npzh+MV&)6m zUn}P5wFQA%ck>daCj5Cf4Dx2-YFF$L(|TFZBrbW3G|N;kDfd1sg_xp|T+wBUNI-&S z%$laiIhKlV#UAUjFa;VfBj6mm7>P8n)#>zQUic6c!yaj9#U685xtbJ~n1WvXQ?K-~ z2;uYT6&Q?H)7ysMYxu{h=08}Y`PH?cO1q|*uU!#Cm2rjb?xvqH*+li#Jn3tsUEtZe z@5-+9j0V3k9=$LWiG`z~AJbQXTYXah40b>Np5NsOzxbr4Z5)W+>uJE`N zs!~IA5%;rNORE#4)d76#vlwmGV)$;c7b5n1mc0nE-&5=b zi2c6Yp8VMF(fP+L%vsUaZv*zIU;XW?Xylsy{cn>&mLj~e(6K8wKBd>B<1Z4Z(-E7k z-Axdv6>Z^vK`DZ(yI||i5fo>0C+@KB<{LpjYicKIe61~aznE4N)nx2y<~aNwa{RT^ z_cVMlsBTBY7tZ=A4PUr?r?1^U&OIsR?%$Zj*b3D@J-O&SZYC4>73{gNzTX|m-TZeN z_TC^f`Hpl!>bTc0XTB$Ia>H-le>-18b82rYpB1^UVfAL0yLpZ*#`HbGFD_gIQ`cR% zz5d+(J^!Hqoi0G@`9}5aUCx`*wnIO|*Gg?}&uKe_0_CZT3ZbVYS@sR9l>6?Fz80@d zp{V}a0KW9E{sd%hgLpw9xE1opQz>>L$J!2ZMMePLe!Y+JhgE4n549w7LL<-{ry zlklHMBhi#;eUfRt6G+_qfjv~i&Q_Oe*l5~51-mfQdK-lD$hB?0LFfrz*DF z4dysR%#pYQPSEYi74Y7PT$6KT1#CIb3p_BpMZ9&o%*ymGlzXBvo<&x!U?F$xrJ_1M zExbx7B{TcmHyNWhQ?9-Hwbin3BuiA$eUosZi~cu>3uQXhA&Sfk=gJIG_wGd9hpf7p zf}j)>F5~>ZmG`JeC?i0AEI=Y#1;UjH2$ek5J7u^zvQoGH@&8z@%bsSE7E878d0cs= z=2vgT`<=}TcDC+!m#+CsyQY@HaX^HNt=$qrhBdIgL5yBg)JqzISfi^yP0$eB()&u) z)~9xUc%W5Tkl%~ZoV1%GwH~LIusjA_mA8}Alc?3+SqSAc^Yc1T!r$hV^tLQf>rUMk zX>(XZU5ox9Jgk^y*IO&~UgG7W>#o4!7#en^r8Dq8>btyNbO&pvp*Yy8#q$#Sd8-_g z?~2|)z7WgW`tJ8usR5%zGVg9`h9A(i_Qz}O?^|n0tk#k$^>(IJ>*v(6*{7M~$IdLG z?%wbeQsU*6!)SSrLZ`JZsY>ld04(PbE+xq8wp__VX5dXH1Z`vyyC{k-#O>A&^;R=y|3_zocEaR&&^n2=&jG^QWs zG$=$-tM!5IrVPkfG(UVRM`-;1+M}lF{^Y1TsB9lazuzC@p0!l>Q|!sf38nqPMU3(% z0(e@xc^j01e3?L z*WENc4FVB4O_Tbm4P#q=ytC)@g)v2Uwm|@-hi3vRGg6`Qd%s8e?! zxL~2d!_XJZNAMblZXF8UHO@=9n=SzW#!H>*-M>be0!v*h~HLzX&m|XPxADPW`(A2K)!8iu^f|d`BQ>&xgz4uMZ}G+ zzG<~|!ILXs*J!X>g1(ur;e*+6tnM!7O0E(5*;i~_3cbQ>HjlgMwJcDH*bDBa7vx(? zxKWODOVrlvjZ=bJp#=M1l@8{pp3CA({`t;6c(%HW4(V*0Y-C}XI03igpB!$IvrDsq z_iG?7_1grHo#)4Z$i{A(01!*@v@6fjGs!p^<7{2ksaEN#?xu3qO-@OepicGl6C8C# zvXaGJQ9>a)wWey{UtsCROLg7&2)pqKK+pmd*(*0Bniu)hmXEkX+8VeU=zvIez62BL zz&o$V1f;9um)gRu(}=+9St6pBB?W;cEC_We_lz#*Qg2)3Muy6kU}E4JL2~3n zKfpf-Hevc6efNaCb%10{!Me55Uh$sr2xybl^SJ`jJ4slpdw^pevDTT778xwcy9OHmJ%t{T*u*f?ZbU* zCvzS1tlBf8SITkR>bZ?p?6cis5S+pwq`xf7c`}2Lb%{8yEMXy<$DG9i91lPC0n?^M z0p_W=m!HS%GTiOZg$o*gaY(1Tp+>$J>?Jn&O)E9<75HdO&jFUo!)IYgST}% z!cFo^m#fv~oN9wz&MW7^^sZUq*;2&nM#=cGB}L}UyuGT3h?wAzmTv6$gd_emjth%V z&$*mQM6EQJRS$bvOAh9ubZL5vY<5ewQJ;hT-!J+7RF1pp5qaKEx^lrGuqqrIqS$<# z1BD6?<8cCn@9h57K0QdazfmpHAzbT^Uy{K){|{+rAJ|lRHvE*f5TKGGRf|^FX{T(m z$yU_X;w+PtsuTmIA54O{RhLz^b(&zs23yi#4~Hl^aLj?j4L7!-G6#yvM^S7+ouYFS zC!1{YY$r>fiOQsEXWrj+-{&N0L7(S+-#<=r&i(y)-Pd*9*N64g`D*o!cIXgCOe1>M zcvW@$pK1?dq}#r4NA%`VwN3DDNnVC%F0{`XgSZqM02u*`y5ce3*nyw7Ypc<;HC;t=5Jq0^{ajs1~rx|s!^nDK{XY_7zwYqlIkq0dX_o|If#^yiH)Xhgmn zI;vjTV^I~TFCWaDz-u&9Nf|4U{1$hS@v~$oRrTLb7jzE=vCZ>k7ejMhLNUUWP-KV} z2KWbeKyf$C(RnYln?6@(RDG__$%GFF|D*6sJ#Vm=Y?I{ zz*`&i-h_3=E|qatWC21-AG!zZyTU^1Vmd+>GUi(!*F*RE=T*Z!S`{He6Na?=vQwET zA8i>lhld2#ye@ONPgW|6P_OitdaH_{kX%-slpp94YH5+KLZJ7-S2Q@4RsG1{IU<*d zq`Y}mPP6OfI6Fh;_!mE;z$5XW2ob9b)ro4_dMg*?O4%PgCS@y1>~vkWU}kH6N(N_v zcH#tFp!G|Fhn77h?_i?VsU(kt1FpHA*gEnyY^Ya66*{A}KJNmtt?-Kidi6_}F6;`f(1)LdGAlR?y(ZdIAo z+}@`%$=teLPS0(zWErMKk&F&|j@1m;$H#x{l=J0uIkVH{Y}=nM=fG=Hb>cDI_eg6I z(C^`Kth$R?9n0l@5X;Rka%33cV(V{PQp+Nn;;=*{thbK!f{CSXTsk``vpxLHv7rUc zW6||<%Zi%D{i2y4t0@LOiPanwgN4c2K0ziPV&#{Ii$kS@mj7P`tcG4j^O@=008@Vr(ai@81X&&N6>E?}5&2xt?9@MViCZj8tQ&4%h0RQxv z&Ao*Vs{HXgW!=1J4Lq7^?wRT4{`meu&0YTo$_^DEaI(1pnrOYCR(Cy47_Ud-|Au_k zEBO&AjC1byC4xjKLi~ENE+5_H7QS2jYh%H@QP@(`RK_%&Y4f{(PGguV&t2=(i<+)7 zrmM{QfNMXyn|Xt#i@m<$TK0t)%?*to)X95f3`1pcB~kLCHQsL3rRi3^^eU~YDZ@8N zOmHNE`wBeHXb$&vil zXUQkL;^-Wt5&@3&X4|f)4^x?K2XY|2M=J-X7Ey?ZX zUzl!wJ^2&`6FeZ5$a3;o(>cMAgGQr5*}3@|F;*i9MbuYy#*)sgf;=^*7b#OE#b!4B zMd4#zTM9AIN(2G2aCoB5B=NHbw3u!}I$JKD2qw?b_8-3RKji9lI(6m2Kp zW+z`s44AZ_mc%ZyWA9V3!O_jd%-bE5AgGa)eio;=bN)+f;>Sj(Mj9cD_p7E2Gk4B` zLPia+s`6#)eC+78oxf9*HLdY>;g{;d$2wTkd6X{{JXm!TXj~Hjtd)CCbD8AAdJLED z`u6H>P6GjSo`b|9axc8YGLSq#yr=WK(h&HIp3WwD(~@{|Q?28KRhn5$I6fl zyTXmI-D_tl1lqG=pY%>8qexQ;aTwl~__%Z_a49#Yi+HieDPomV#4;(uyHWCcHzjuK zMM&k|HR)_WOl9*s*{)XE)~IZ26U%irbD1cKDjrFGx!Q!DXglB$!-#qIcPD;))N0-S zYrPB(ovF_H@hpL>4zUJexMyJH35vUG4M}C2caE3KSg&GKeSU+zZw|@6IZt}3R>DFl zPa~W$iew22GX9T|e$%a$=Pwl!Uu11Ai z51u3-_DX6KT3lZ^T>KIvTxwk?f#p5RknHLSE-I}C~|JB>XD9yab}(QBUzgI7FwWgwGjVgnwie@Ju)#m<5UK+ z?YAt(Su!aqk%0KUDa7Pdl}~YyF4p-3#Xjj@gBU(fa;2Z*AgN-7;d32{WbwZzBf>bH zO@4-Y6d1Ffu_u2iE1<~w%NcsQ)OG4*f7V6I-u(vU_Ee5{^;Djo)l*sMikE>T(;KYq zFOj@~Ryjj{VrLhU*E-z9g{|89jg|=6^2u6o!7{^}}vVXrlx@i@FBJxMuS$VQ` zyCkJ`%XPpxOe&-P;7C*)(GnGf9DZt#_gf8Il}h(6rx{$u&h^~+XF43;FB88_*D^%e z;B?XCQ7tkJsR#Q&T^#|sk~q_r+c>_KcetjcmiTQHs~3pCo?X%nu#5eAZH3C58tv~1 zHoZc9sz<4sfZ_sC?p>fDexf>EMi6^uTGiv`{fW~DmlrHf#T^OA5U9bBaR3@xGgTA! zTbG>9(!cGnYwi+t7k56NbEWBj`km~Ip<{eMO^B~PLa#2*2^>msZ(5+1Of11v9Pz}O zMh@OE&K;n0AeN@j!{@l=WQ}clp4_bZ#$U(^E4JFk>wV(sy!J1|jIKZS`mFfmH+7;? zm1u(1kV=QZS`&7f}T7ZRG!J!Uh>#L ztmojMD}QX0(?BI85&xs~N5enK7Z9e06-#GLilLb_{M$$B%a7J-5d{d8uG$<5YbNT8@q!S2wqUBihv)XEDqFT zae$U(V%h>6een`m!_Z`##dnoP2_Jb-8n14`_n)TvEhO^@8ZqRY-T53O1IxLliM5Q; zEhPHt(S);g@EWYQ$wE^&BY#UdbCrQ;=l)KK#tCQhC@8Y-oY7j+oZVRNtqzS9ZB9?; zu@M=XtkqA5E+#sxo?SU!Q4GbL(gl^5iZ16Z=Vf=_5ZNYboLQkWYzLB#|#RF6Vi6fdR}({G90)Ni6F(8>IJ&kMzo^s`um7y*%P& z8Q1ym#WYsa(=L;o6+d5kVVCf|bO|eU39soAvXD4c)7V>?LwZ-dA5NtC=An*w~@V3}HLMDm!9yi8+V(FEXQqiII3KRX$NVr5J;Vhci=-l9W%RQgV#D z;`1^Sz|V5UuOtMeP>2<7v5jS710s&}g3H(@x{Prc9JZdBmA4w83kbHq&EH6Zn0LF+ z>i;o|7b^hX?HE9a_cM0t^7?IFY^|^OTfA$C++f{D^7t!~N~tw=DYeF)_FE`AD>2Rq z4D#92zDNRPuJAP62v>DG||SozQq;4MH0Pd-_ysxoz7Bw zMDzDn?atjuW z*;+i*`5dREL+wvb^r??&X|!D`Y8QFWtoSceA-$Edm&B@^N)TC4EUQNlTol0PnHU3z z6T!~Iz7;IO(l@aD$?M1mCg#+kP zGAW^4B~0SOWg19kll3CUkrD(^UpI7-wp6`d!z)q+BH!vxUTi&ovcNfD+lbgSBtb4e z%FWYzoGFZN{NDdaE-tM$_HqvpUZ}jCI4e}Rp>VQQOSl2DN7HP#!&PgaBivAke0-NA z+0jlPkVko32yAnV_13$f*FxW!cS$y%uRe9XxF=`gZBh;hA&8|5t45LdZ#rQ&*o|})_ zO=mE=Bv*;BSUw6Uf02;V_eC@zPx|$AzBK*j zBM2vSt`SnP)Oth(mBtM|$tBP^evAW>_hNZZ2rYK`k#s%U(-=+3Y{&x^TzmIpE zY{l=U91Qx3t1wLrVd`>zN!v|WS~O=?n)}ax`PR|GaflT#UWtodj&Ez1q#sn^7sKpt zNG_TZi%OKurl|Xun2EuiXjlR%gp1CXt=dW-vSK=6ZLMzz8MlrbQ#e%^3o@%pl-s`8 zgKZF+*yk~0Mf4lfrWAB;8WJr5>s8@6_{CzTYP8CDFmMU$BV<4tz8^8cqGngSLXlkh`VH6I)6Ry_wzXOeeV6NS)PqN&bm3#TKXID`Rmhb z=L+7X&GUJr58vWn`XS#p^T@aSOPsXrC!`<#fPQzvoc|)ixAI7SXDt56_jy0nV_@)q zfU=zN82T^e-1jqG*VFuG_Fvv5-U*YoIQ{&ujI?KOU_J3X$Me+(bsEVd>A%bO4jw5- z@_xX3>CYF3U*M56@6a~+AGtGKPsuM9hbQvAg8w&pq#Svq45yEhXVymjwDZ4}=RZ6W z?mSB=V>QnscG+M2<>K(yc(Q)AIQ%Nl?Y~|e{w2?4n-+&R^Hh=7+0)J*m$G`vFVFag zbvvAYrygnBdg6Y^bH=X4;pLC8FE;D6_u2p3`1cVP;5o{>eWh$0W_x9B-^!kj$vA0$r7+HC*J`@ea=W-IOCk?-$3rpxWJ|0SP<%l`qw{=-xJ z_~LLUkAyqVX|z?|pC;VtgM42~cTJ$$5??Fy-VZHqSL2msM~&af$ZX zkz!X}B&^J5G9<7cA0f=DH6+1W$10^w*}QWjhGFV!ar0rjb;0g7B7AGCi^6bP>O062|gcAEvKDv@^@vv_w0C$Xqj~`s-bFZRzjkTZP<`bUeF;64FM+rn+zJE;QRaktGw8 zP3;rz4~1>(dPAcorlXW~^#EKfMi)XmJ-VPEW^_HjwdT4_{MEx5F{6T>H3(@F6S?yy-lWjw$BJn!0MI}DmFqTz21qSg|6hRV)%7Q z(FDB?RtJi-$hjDbUNBcH)C~({B3>CtJ}MPq?xaO4j($ZrBMNEGk9Y$)5tXOqrhO*8 za?^s=**J!9uTxn{be5!Ith5r1M8m9n9r!yHsPnW)p7x()=6PP{sg0@D%#N+@q}8(< znn(1ix?OZa8DW{GOIs_+RSbsB#o>!r(rcS%fmT&=ig)bkyi^q~9h3%5(M8N1QX{%( z4b54)I%a85bze*s(3~SmYfyS5Jqyy{*l;CobS8sRA^w*%<;UBo>v-ffh9c>PjOtDiGi+zF!THid`@$wozgqO~>}L zX?-?}dQ`wCv7#+*mpm;a?|jVDQD>kmBWy&Vn6Je3c2wb@s2qv9(vBKX>+Fv}6|TTn zLb-6+ZV{HaAaF?jCfGGjT$OImh`<4f8lj_nI-e#oG>}2~&78zu(lNCdVXL(L!XoIV z1JN4|Rl)~Oo~ozM$80m&smZ9D$J}L~cp;SNw9PqlYh&t?s6G~ItZ$fQD2f;|EIHd= zp&v?z#+uoK1}Nj`C$r)7+@#lo~J)5|lpLqlH)?4>uV*Xj1knW1;IJ#p!N7AA@Y z#bmAkCjWoavg(YM&7@_6RzMRgVAzRQ01_Lh)ha{OYHsEBuaZq*dRrWTmuO&y)47vA z8YGbpY*UbC1n|RNDld^8Q6Iaw5Z)G=%DoGNMVDr?+Hm5jGLyVe)@$%*@nuZEE?%TG zRH{&sf~R`$hKxqybAzj2Eek+8m~KIh>Hs_Ef0)i08G|Og%!*^-b2>iGt#q|}q9dgY z)rU)ed7X?=Kh3n4x&*6Pan}j}Wq6YzWF;H``eHg|<~|J2$WeAjC50H_a^OGT;y&9O z&@BdZY!|?g8`#WW<^cRJ0m7VA&)P1REF2YbRy4|xw|$w#K?vV!3b0=H0T_VlHxha2 zJ|p>-U5f^`^tBbi!jY=UZX?{v3}k+{R2-v{wh?B{0wXIiim2f_DR>KWF8=()SH=Ra z^TAsP8Ek8Pma?9YkBoeHdkBho8iFI9YH(q|;`4~JiTBA7VvVCg8X^wx#t|ys&=BL4xx8|Z@U$?-|0-}nUTI34zlANz)5eUrW-w%Ges1?UW*!wA?8}c zyPcC``PGfh@Lzq+SzR?-xCskwF}&N7A&C-k*U-^+nc$l3rgvNR z?&dGey`jP#YKb)tlZ27}({E|Q>hqrFGt!u(*g5Nds-5b~vx8ruLcH#D)ofGxjwF@y zO8~yS$<@A8i<<2zsG5n%-{wlzIU6GkNFxKY#pPt|}66GqqvPvuQNXc)3`GIkkRi@i%OwYM}#8axNqgAmhR9n@2 z53=SzOD!>$Og<{>7$)wAnMpq-KknKFq=fhpnkR*HsX}l^TT{45B4r`Qe@|qsxn?Eh zN8boZa5hjP{uIGt&I`GkWsmUA8ZO`p*ZTJmJ&AREZ+?Zh-?OwH4lJBU@4&VDQZ8)qpKwK< zGv#Jw{_el#)MxKb;##)FZJkY*xB~TAH*)pciBsd3|CMP7o2g;)t?%9gEFZoJyePwn zHJ6@_p>HvLoO`3ol`?(2_`@v7n+#L?%HZ|-$1;*MoG{7W3o?>S9+G66z;MTZAa&(r zQE~6^e%d8A-E)T|H+SQuRNSeR?(20mu7@zG&NHgH5-Y&Dnp2GS6L7^78P)FiU~uEx zZ!KgAFcOG&4L7DvN{lqGD5|%Rib(>KQtkv2*#t}4(6QyTt!rwfQ%6ROa!@(7m_IkR zXj8j(cf_3(eT7K1JE;e?w7Y9+p)obz$m*I(S-H5uFs9}iQ;WK$7CR}*l`qKKN0xU4 zIPY)Is!Yv?J#UY#WN%KxQ)^X0@9-u@K&Hfj6h_!rsEp#l z2=6?eJLM)4EmM5&pfT6#hHl3ac_`Ps)}5#{@j>P7e?$D8hld}`?Jo+2U$-KC`G0xG zsOkSRE}TwF=W;an8-=y3}cg;vkPK5 zOEHTSnrGs=%=Yelgx-lM%+<$KFALHZ8S@#pp2|F1Bq(^hd3C-Nmp4k6W#lZE3afLn z#OC;_-A1Fkt2!?+0R;a8dek*DFL6pcp5sENYFEzgif0y$?y1TXsF;PriKMq*@_PsJ za3kkgI-6A`Lnb3b93C8xa!XWEmFHO@hD{R~VD6K#zLs6yhkM>k;H|(R176s^q|nvC zXjV;1;FGP$dhA24(ZcRXYtBeUI@F}*^<#SKYc8;U_P*-zC{Y<2$$gAc2niJ^SJq$F zRz(1eQfE@xHy-2D-W5^Dx|1DuoWpgFrF~BqvQ%Kh+^6a&v@X+ioRka|iTL{00n{1Q z1b<}Kur0;OYqxoa+yJwa%*u)8sYXFp;vt7+BrbWXOZVaJGq3!rR#{0k1FQ(oo$r$a z1L$G5QIluh+@icym)GQRZdK)A(mr@9*aynX05LhKl#zSEP9y#Kp~CW+#i4Pc?p$(! zn;h>^j`R0VlzJG-R6_%_YT?7ZQo*j%3{i&l??UAYCstVX2r}-^33uj@7d13 zDyHo+F)ojI9|+Bj|ISj&aBd{ruY&rmMitZ#l)R{PU&T9~=v7R75|kyJH_WqC#X9Hf5hG=jLZJ&K1LXGfz}ru;CsBxI^{P)(OvIGQ-G-fYQ-7^%wf0T}YR z%Y7CLxa{Q-J?(P3WQihs=+J!Jv!=^p`*!rn5r)s?X3XbrYz==uKztUB2r)5#X<@&CasLgN?L@_aJ}`UT+~YJ`1bJkaAX&-!KbzIVkVc)-u+H-);E&6+@v!9A$e}aKf|4 zP_%HHV_6nr_n3V$yG6&Y$&9TfJU?-!BiuDf@gDf{1t+QOL>Edn32M8NAmze=YWwla zVvZ$xnnZ_pCZ?Hg)sG~OfYPF3p)b-xst-JLok+UV#l>_nahmB)&YGmCztCuN5#}4} zL6n6U0x~~{2R?`fCf)liG~ zC&Ry|+`rwkOlZ^QQ7~p>;m&}tA>aEoZY^Jkd0)i6;ubFCsX;BU7sNOQ0~&*Qoeb^i z^>%hhfsE!ovITU>?Yx!y*9WH={_b-B%0*Lj6UnrRXB!#24L@*ik2$t^7&*Z*R8D5e zyRE{zC0GRE0-aLfU3t@plCy$}F8z$|gRG-T-+(PL z+WEFAS*c+}Jy{@eR<4lIIiRT*2OMcv)>Amj++bR-sHrpR_Qb+_;ivT~>TmmJQzQYS;(N$Wa!?>;fHijzj@;mjq%}Ee2zMc^*TY zYvmtdOlL0i2}zn~?rtucd+e|1UwKyU)_xP${VNNA0m{V*eT`e05sSXz>6B46v$+NF z<;VB(E(&CkB@10kYGRE!%|)@x2Ly!89y81p6E}Mh-ABd2-W>u-S#X@Sp(y#uHTE%-ym2mje0ed6RGJN zwreeTeuHKia`CcL9QW|qsd%2akM& zO_JcZ%Ukk-O${L66(0w$(HxRm=uWedadYF^LCI=&c?->K;aPBd!)~$JBLZ5Tceat+ znvWilq7QC&qnG_e0x9MK^LguM=eS(gT#MtX`DxY-t0YaIO6O*=6NFT7Lv|Py`lL}i zpn*+_lk@?7##Hp;FRQIYwio;zwvKFJ7+w=~1U|9`aQ-M9xE$#_@Zy>jME4d9W>3is z)j{W&K#TKS$hOOXRYEIIFel%Qg-^UT07CNXDV<6I9d6@d&WfauqH({K0W5_2y)lwO zK(-|Y6Oh{7aX;8VN1w=Xrp^yRugs{RV9@ktRET-Dxfv}~FMG{s2`{y!Z*Wid0zP>7 z;4ZXSMQ$wZR)8Kb53V}Qe5aNhwXQDzKMnt3kTAo4$nbCCwBdv>{J1OyVjnd82MquI zF8^l3zrygZH2iD3{E06AG3%aDoDklPUEoqLuxkzfdc(iQ@UJoo4gaeZ9|gy1znj)? zfATRdWV_jtGX9nMhIdQZI*}v}ea^g7NWqx5kJI6WWaw4pqkh0T?;3ijj;pta%YuBN zyfAnhRly+Q!xSt51X-Y$O7t9w1fw8oQrY}MAz>!4Vugf3v)6=unWFF}AE*HEa*R zvATcGj@7Ni`6-DQX z*6PZMqkgzTg;M`lRhC4s#Pn`4-LbkYv)Nbkba7`Bcg(wmnO7L;W`ybc&8%4625A8< za%CRunvdlGeRe2ub5q=O9}eYI@~irvr~F8V;+ph6-2ys36U=ATHReD@Lv&+b2hg}r z94bE_8l{*F@t;#5K7H%0IZQ`i^N$$<0FV7cj=Akr z^Qc*OxZ?MVPKtG@{Wm`Q#VbQ_5jRLrWKl{t8j`bfbces3?nS5`-^0QM?)`SRl&>`U zVw2s0ev_-9W#VVqVeRkbY(i3cPyW?67*&17k|SO7k9N)fch~&)yXNqH?*;nVp zmJDm~JoeS*tXlq-{6~J0^7FC$d?Y^~%1>5S2A6p%V`qH~(EtlW4|u%t3nFo}v8}&*NoC8tFZloK$ap zsf})^&G&B>t?9+m^;&3r^|A^EoO)RUOU^0(yLS2GboriSsFNx#?t|m(J%FVn|ABJ< z0kkW?=ggXIvf2*Wt4*{-R81x|mHQ8QmMKB^MR^tP1#`?Eu)mX~Y}0$F8D8MmGnT_I z{);XiF+zJP-t%;>lajrMb{`sscR6cGt`c`BO;X^Zuc>XL$DxPz$zgt@M( zuU^%cXMJ>7k9)6cg77jM-GVf5zfkdvr}J+@+tu{P^6oUp8a}r%UVOpV91sFgCi~$H z&Rl$(I`m{$c-P@YQJhm6-i{;YhINx-b8!*QUfgRvCZ(NijNkBooRcV zVepmiYtGB`!_A`Ko#VL&clV?5FF#ec{FFfDYm37Tv6h_Xyn3U|nsSA*zV*J0{b%Vw zGPFrm%IGKn;*5(h@#qYyrN;MB2O2P@7MK}xdyzDtx!QW;Ej2!(TR7UnLNTLbhF&m+ z%lKfjP*%P=AgumHdNkUuHOIuf2YuER|KPab^?=XH|0e^@|cF7TFeXX8bza)g|l~iw1J$x8JN!-R+^n%6W=n~bi zWzru&IA!9r`As?Kx@A$J`TmT>^7qq`?X2am0My_fp54)-QHH(d7?N=*AYMC+v+Ub| zn!TZaaC>FF|2MFZa{r#-7ZLDg4W9`aX69`s$4L|%qhJDzqRmwmp+h&l1vO{wksPoU zGYKz+qS%DjqG3XK32MLZ=_2PUM_dP%Fj5_T^EebzsLcTYCQ?R+`GY97_-lwQyMe5w z$-r6=c_ZA3ESHVVs}Ke^6Pv$42psoL;ZK0stg=t4>nVYRf&3=9eZhwBci0{As|ju2 zDT*?#;Dt8b5Spk95X0vg1qenJ80X~v9cw2(R^|S_ygz`t>aJ^8{`JPrwdJUb&>V*TWW||ymK;!H<2Bi*|dC_RN3W)X32})FRO4?qKL7bz}POo zQ{tQv?y8YAFw-Dt_C2RiLvA5nrD~E7H%D+=&B@h2h_{Hi-NKT!9esjII_uxN!1T5l z(Mb%a=?y~NEHt9RK!Py`QP^Na^Y{RKhkUW{9Nc0;@$cHe!XT!Em{@cTqloBTOwb8K zd08~J787G^%~!t#>bFS!3j5U9D)fc1^{DzitbT=sYHU5CenrF7*t$y2qzxZuu^FS4 zgo|+B6#lK1gqbm^IcQO3uzeTOY^ck(LcMTqtdRxhu;(i1u$ygUx6}vh=}ZXmF!ue za};PAl<&cGzSEl^BYMo3ED>{-JMv+{i82J!8P1Umt1F%kg>c#1b|I{mCHPezx#avv z|L7%WMEb{tK8qwRHCKE;KQznSx>3CraF4lly?V_HRlM(QEB17LhC;bEt(;g9?Iy<4 zIfj5)x<95`i+YM`t>t|*u0Q^-5z;GBaB~H}Q1Nu|+~a%pJW1>k`Ns7q48=)os`cOe zg}E`cBx5^d5x)1J`JCy?Ggeni3SYjldWL!_Fk(1gNgAtt{6;=-2hWInFq%u94@L&Z zMzHyx*BfmjhF$GSjEFoa?=I;MF3T$?CPs7h7+pvh+KNUrz)Q^Q^I4A`l3Oo~=*cNF zXeQ2}y~_Evn!8`W$=taK@;v6f7Q4XS`SRnJpLz0gjr@FFe&)(gqtElWw_bkcfO)Y{ zWs?LpgRuFmhi=72Vt-`MWLc|Qg&f|hw!(0&3O)zad2XwC*3mGf&`vO36S1dDIZ?u&% zBwiO_ju}+M6BJ=a_p>$(mC#f`f`J@vMg<1EuT1(qlt3GzeblWO??<{o^Gm~F~UYXjeiUeNJV0JVB_mfD<8}#>6facd~2pI=?rN1 zYD6&Hy{sOak@mPU}%@sau&{pb*&;Z*3(Y85u!`cgq-|?SCx%tzD$gs zc0Df$rm>{T4+0DxBg)={5MJyQeJGS-fGA>R8$0@_)!5;t(Lq%8LxsIj31L;YWd~1|WRaL;N$%pgJ%K=>`r_S;V!0t{u0AZkTMzMDvDb{@`vZP#`Bo`9 zlwZDDQit3XA3*9*wy}Bz;pXaTgc{LKdB5CkY!#oTMr?~+wCd(2)etF^{cA+$NV!oQ5K%{?df%en=c)H?>V3iB$`o>APEv;4 z)V8-P^JP|6ml{*XGk6w*bD0_KQ^l=PMT;?UBf5rnq()WD`BAC*N7?Fc+-hC7BsNw{ zGCdMBI-}oCQxq4~20|xlO|QTs2V5l;Hl-1Y6vWyfDbz6icyQV@7zVDbw^M~HI+81) zNgU)sE-lp(OvAH~4GioXF&5q(Y%6YVzl#5L8GSXeY7S%&futGzVsNuQp*t*LQ&}Bx z4xY$gvq;Uk)0mDL9{DR^8NTNX}YC-YkX zN9MQM`x)tFGiS!j?#=ubxWIR=)!W8gZ>i?*N-A1y1vY0HSYNpp3xpBtbWi7f1c|W)tS$UT(qL%g)|{*!m9<#V z5%0$M8Y0B5dUILKJ3;Q!hD&WCDo_^b$-#Y?5t>u_J{9+RC(;3GoX5FwHpHOPZE3)e zOkK%rEq#IP@7>!;qbxWyPr*Pt_&ug%e)}#(B0PxWg|U*G8?L z6+e}BO46WWT(=2U+-k=yBMz;e@=%*+S(Iv?>fnczTF4!1BwA$xQ}L8QB_&`$Er!3* z@K4aBfL)Hds-nt$=~9LZ%*d-oCfQo&FYG2bP{26 zWR<;bH?>1uF&>T#b12Brm3vz}ov%yVoIy&4N>CbNbh-(ppGv}02Dy3yjseMgN$#}B! z2CuE)f|AXqI7?<_vkb?;iA~h4TgFVpE%v2kl&6*CM~Yn{K`NY@IVJ9T^DDDpq}MN;pOzC) z(lH`zsAb*J7o!XgWb+-hIk>(Ny+VBr5ZFkZFSawEsX>8C2?kq*)EwDU6bTn{`6R-@ z#t7qnq@Y}$W$%)l%gK&jSySphnQfUT+j5x{A&gz2Y1O5@XT=^#&GlzhjxNU+yF&n~ zR4*zj7}!AL1Vky{m_88MDTt{{24qC?F=QrP*6DHRfChKu?DQ({nm!_9p=Zs8E$dd& z$Ne%-{cUyS%UYzNt9N%@omIZ9(s>_NzRc&mXO}OlcHVQ!mrdinXZmodIq4nfnvO90 zKu51YPO)#aR4`13xl&;B7i~4iHMq)238>1%ly*C_uq~?+sbGg6Ijtm5$7Tvfeu7?r z_}}^e(hIn8lfa|UZ9{YdZp_dLxOS*cfQWxRCEXe70O^wz0&-L}!7+|HKxHZF0Ntnq zj5vWhz{`DEnLA$umxrhW2mwA+9Y7lNf3FU}b?~RD18kB)|KHUCrs{Scrw*_|we^2i z2gpk27twyjoqdOOuhaolAw$#wUL_KBfQ^)&sSY4VYUFw(T2TiOSwG|ylsdrQ|BJm| z+T|UmuKOHafSPfpw~)=&{sEc*Pj}tvVRe7}+}ST1%LIJ>Kj;HIXXeF}K0pKd0PaEh z0C}IF4^T)Gls-TmJL(hl0c6gH>I0lipOikpHH%K94hpW14RgDu zV(7eLX5LM2tLA13W!XwgB6VWEqp=SJ%7>%=DNX(vMRP%t5*mMsHYqLh*lk&v*I%=& znbHW9mxNobWTz9O;VI`e_^h`v6$scH!a)`h7$w5YCARrG`EsrK6pmP{8YdAC@#Z;q z3R7TsBgAvpJs)AAsYv9xs3|y-D=S&?N=*v7drZ049m+P4)dX?__Vds&q6OB+J2)w7 z+{V>;stqYPnK@Zwr68Fs(Nm}@649Mek#59?Pg&2jJ9-Vop7@Nsx1DX0c}#+Sv{Gb8 zpPLgPg?@C(!4_T1uLw@A|&MrZbd7dm(n*BaxPlw-cCea{A~s-b$`3{ z8aKNsQJARI8;dUG7rDpnM8#B);hn%jfwOJ+n?QGay%Re~qJ#zd_cDdrko0}MGT`k5 z11{P`;5~j1RU7_b`MM3fc$VG9ujy|!J#z7i6~0M^w+tx`aNP+U$3a`}+3>c>)lj`8 z9<3YTtGDEK*^Ze)Oe9=QtQ^5pb0XnM&N~7xZsZN^Tol+vL+xz2QlO5;Q800W7uj(f z-%M%~Cd$wt36)`<(%L$}4a2^Q-K4B)Z*htW(ENEczm*;|52IKS z=d_DeBJ-ooE5M>!1mSw$L+`y;n`9nW_0opC=Y+o}yw?-8QT63iC~_yQ}Ru~ABg z*Dar((^ZwTe0pwI6<0|tc4Yet(3e?0y|AmQFnNn0O_JkVTyd%#7qF6U#7{!B-9bllaT`ShVzy3h1?S>o0jZ+5qZnFd}H6`tGijTAeY*Aa%l)w-_M^A zzXSZY-(KhfYC6LpH{#DS#BTnU1| zCL>}Y5yCgA#3FE~3t_&s++J#?udm1ZE0+kfDyGQ?vaG#pMZ~C6M2xC+u;Q$#A)RJc z7MPWVX3d)O_i|?}caX0%7hH4fz0x;IU&%d6_KM%%er;P$#ok-yMqjzTuFc)?!HhGp zuX&Y8YX8a#@0vx6@mLB&&&4prYBnIV8CqX!#U7S@xB=!(Fo)5+S)Wxn_dXfTSpk3a zHLElkKTldXoRW?&;>uJJp3c9sZ-hJf7yhN@nhoVs3-Pj0RYV8m&Xo(-RX%IU2A4|= z;>U%2a)J>&vKV6`g2Ne|ti&0*v8=vOSFQCY8l;Eic?xe2|4KE@(g+;S}U9A?+EKP#Pt(xwbnVmkx+tiiAh+4s=k)0 z3B?-fFG&p(YDS_sb*RVD)RlqaVs}ZAj8=R2*J3kY)vB-3lZ%SM(Xb;tH+f*&~FcuAJp;GV_hGCh{(`WStpPbD#>G z(_HDXxuM^bj3G#{a54s|OGWyoAX^Do^A{|_qeLhlStE?E2Qi#RBRJp z9yU3!au4nild}Y#oo?2=V9dnW`ypc{@-hdFF_%Yr@+$lVH*Hr(t1V96tn_fzZ$Tgn zQ9%GoA;uCoNvo^VEmD|z^!-I&rDJ*0?$TGj)?k(!W#+9p1}bv5x{cO6^VYm`J~Ub< z@E`fdu$SL9S|=L5vdHfIT%j&!hF%(^&&$2^`i?%|7&%}YFzm7i4*^)R!#-WTuk;PB zl6kXM9}*HY52G&bxv}shBQ#O0y0jXTV6mLvV}u%w(7fOk)lZ7XZ1A+|;0W_i@i{Uz zH9=8spPC;WX8s9C?RngF1FV?SO7~5@0VB7b=990zp`t&OYt%F*NKx?@&x$k2)_lsf zTs}+9Tv|OG3R}Z~W=41-MtmD$Shdh`u{xw~X+c1nikV`BCL5u$UT-CP1}0Rs5t<>^ zVh%{DPr?^Nc!x6v*S2O|0CTyfC<3%4AC(FKDJ?qT-6X_33?^dQayr5RA7$P2($2m| zu&x$MUP(=F|^+le^FxEVPCRghQPZLTi9IxeM{bL- zUT&zUIvTn{RSU}jSzS+C2VUa^4 zq^bRe*EghB#ZnZ*kafag04Ewc3~x(Y$dGfw3^~VV*lA}NcESwB$7hJy8Qdq#P%<<_ z+X87${s|LLI4*Ii>VJa>&NE<*3S0V2q^CGm)pu#(qu9P(x*D_#OAn(YVNEMWB|O5* z6oz)DO^3*{3q*m`QTqgk2`bv*z^DuyMzB0HD%^7ei@b_v5F$bo4GT5VfKe--8Qnx0 z$cKptb-+B0MYkcnCBpInW8D^Bt<`TR_y_a@2L`eC7sbNGfWYCgnmM!T75{pkv96tw zgAy?OE%4B=xAC55#p415y*{H*(=g{FXK0ejhLpEd2d}RVUL^4H-S`TXbfM?*>Pa^s zfOpOf=mrPRY<2@7KR~&!u`CFkIFE)R!C=12w&z~q@#^9erkx;Z8waJuxKu@TzSN|$ z%BLHs{I0ZeELE2#r^lkw+43ENO@|7bN6xSJ1!PjJ2 zuiq}RdXvm>YlCAMMwJw+gYYc20d%idOb!8;iwyrn!(V3jrzl%qQojIQY>ZKD^|1qI zbVm;5M!H8D{#HzT1?yto!;o}BO|?nO+ajucStuKJN#hd3%`Rz-8EvO{Q?x4=fV-hi zs3zbdiiVEhumYk3)fePoYUQSFCJO>CMO_f(yG#RKG)5%!IjV?;F*?hh$5#Ygd4uF= zLWq6=xq7`#gr#k{kn=eLO1mpD=CZ(}ZjVwqv=OjcO!1J5ZYpRZ7GTJ=id^OX#^9N@ zAt2^8*)oBP4eK9ZP9pa|bx`H4vuiQxbbReINQKQ0;8n@4P?$!v2GN#kE99fxKQB05 zbUdZ#GAVk6UG(3jF?!^5f5oO4jS}e&JA9IE7pKNx3sjx-UWDNKlFELRGD1a8NR(7g zIba9n;+q^t2Iu$zIrOAr%U%v|U2&wQHK_nG9aajR0Y%YQ8~#eek2+UQ+X7~ zZIko^be&)aZmV=($VkWeQ7!4P&0aljNIEq`(RM;HkA+DrJVW7(u5A{{VQ+9StI`fi zE|n@>tNR4CZjp5Ma%*AX*cRbveu*wf5OnY;wH^adH~KDvI@*}97GxEjn=3zuL7<@- zBB)ZDo^N<7bpr;CM_ZLWaZISJV6pu3o>=~oCC#^3{z01hOLF1qSpE^2MO)t$twhkk zq$s-%tvi_6mSDwux*jq9<5R|e(yFmB0lkj#pKtzA@bVReWRTq4ilFF^e1cr-q1~Ae z-$?{2FTmiVKLfI-k_{h}%snI-2f#uOj%{V9a8c2L7)*+g6&q2&etv}!6Wz#*90F@q z0G16m@q*Z?ItDiL9%#y!q-}Ub!h?()0!mL^{$OTIwTOd|b4ZqDfBF;r{%swJEP`?}z53nNi5#i}H zX6Y{QwN9o zOdTA}w4{0bd%8 zx+gpl3io>D29fg<23%3bTto@p4o|HPPM?&?LS`6~k4kl{XdBf38Nxl{ZM9MN zR^b)i^n%Hx3!o1i59l8vy*ivS0sU=4{VQXDMpU>>+d8N(7877+L|cRmiOGB#YNlm7 z#_AeVCqg42co1yAlG0KqLY}Tq=g_7V)rrtJ^h78iVY$CDSQ1mG2smR?vZXp1sk*_HmX`a=#2VrDO`thM#=5=ac7hS${DqO@QL%= zK{=&I$K_PrB;@rf?{F z8~9}AY4<*T(p9N6ljSJb-s_!AF9w}tRvA2=|sanG12~XA~-Pipx8(DLOHS*%8~tQ`pAAtQhD1{TjtHKBodCm zJb;VS%5;GOJ?u~xS0{ZqZiz^sEUtrtmx%E6g<&)a(z9DSG(l#_s#Hp`wx_JjaXnWx zN)G4PYFTx%O@*Vc7r#3l3*&<*CFr1b@PA7pC|p4ZilvS|!M3CA1RMU6%qpIdlq!N+ zYQ-$ak#tXgo{Ahg30UTER&qxwkt%@*jaDpVI2peRCAH#NDm?RY|D2FVqudqVDW0W2 z6RtQ+`V2fKSni*O;aGBA>d#n$tuV!}AZe$O3n zmR*YJmMn>WX2NY@&R2EPFK|x!R!(}~36X?GK@t?ac8~;}wKA1;FwP()eG1Mn2;I;n zrEmuI=?0B`H<7zjScF1h2;S8^N>B&sw=b|C9Kbpq zNp=pL2`x_w>M)62!bq285|sjcv3nt+dj2-EF15!&9fHY6r8-uzjXHdWw33bAR#9Xe1U8=6MsDzVoaAb1c`@F)Q(q#&4?N$-D! z6sYS)wTEpov5kamt&AhMHQCY#N6qTSd#xY^pC^S)^*c@1^o9*p9D3s`s!C07%mAd! zYSo|y2YQSldvk_o*hHmNgZdZ^&h_N?GUM8RE@GV-%=laVo-go;Aj9aV;qvG$z`vhDi;mO@tam|1V+iz+f1B^`M;6|Kp&y z1Pb(a56*dt21{Rvz!u5ilk#4ZQMaj3LKxHz)8^dy;NidmG^Z4tN>p`9D^0!8J?wOU{ga0 zIhYLsd}Z}gnoSN~{(nynF3beJ3sb;%j3x)iDz(hSAPYSLOC1F$a(ilEhku6o3t+7shIQ89@5q3P?8!zfXv{ zK?U1=*5S7_Y!}SB*Q*F~lLaovl7{WFr38lCyrht-Qp5IX8L-_? zxX@+(X`W@Hc^BCJs>r`^iKJost3sMN(%G*n*nXgcPO3A=hV8hz9C8NHPRKx?HN|e{ zdgj>XQY+%JH8d&`J~&Jt29a=Umi-;Qo`jGG$`Zp|-lH6R?6>&DlUWRDc1<;4yPG?i^xxg3hyD$(q91mMTjQc zioMA1@c|=PjtBUPZ57^Wo~8c=>K}hR%s3u5-zPBl({b~m+`>=B%^Qbu3o~)^3%S@& zr zW^@a0g1t{OquY2@2SXd=+q%ts;k_hq5cV8QDLEeY!!#EhexBh6cyL01%mcRqo>fY; z!dUkL39N7LP8|+#`le(Y4)0Q=>76ErgLqK^$Czhd1f_Xd3gOImh<%$(VrC()ZFI;Nv3L83Pjt?%DkVd+VUj;j`K(qZXg`O80{S379|!h?*b zfc%HR+|q8{0QNjuElBT=;!+1g6&R=l`XeO(KSZu~TI_amyCZFs+Z}0)Fb?HvCzx@y z^D~M?6pZzblo(vUAXhsJZrbj^M-Zx^S3BP)hdQFtXnT09Ue=!I93tbFNQz6v!36M! zq=LuG&AQz8ERcc9M9I%4u?F^YJkd9a&B&7h?iUQ@@BPzB3Lw{<$>SJzy-pHHWRZ9P zpxIdZL&PY+InT4~8s6nFI|L+ucc+5n3W&>oLR&-gF6$0z_N4$-qoxlH4D5#)Uaaf{ zVv0|1)C>ahGbl6?K0FM+!Ys3LzfX=ODbZ(o8x^>pV%7XvA4`bWvNjZgqWW$-7qDS3 zra)YJIzyNxX*DOQ#>t7L?vh?phV3Dwlht*Rs3k`s~Iy z3#yjoRGAD$H&&7I6&X3grGn)hVnoH?jwDM#nfHLLH;npw!XRK6*rggo*H z%g&3brj{T}`sg5H;tZmDy}@lZF%jHg6BEHz@&YjtZ0AK7NG&0c?t|ViBN8WNe!3Y< zxz^U>8dSrhyaR}S(~R0djl#yRwk91rqnS?_VgoC%W4XR-p$AV2YJWq<0-cqI`iPN^r z>97Wvbi%tNc3{R`(%)eoobWDb@Rif9A<4K)3J5jSx1U9y;sePwt>*r4k`zHv@GU0^ zf1D)qI7xVulca=`gjaQv0Gngsel3>lKPqR4kKvaygwq4!0)_>5;l+X!+gC;lI8Tgq zGe~6>!>+WcjK)~aWRWwNle#s!5FVB3Em3C)wSAgk!6=m!Kf|9USTK=g=^QD{|EH1> zWrNZxS|&wC%#+X5{m@-*muu%n?&RvN5cnIMu^D1&=@@n4P0jl1lL}^SEBq~Y)ay3W zk6`Y$uB~#=%xM1X{CY&;-LK0!gb`ze`^|7;is-02D%VITKOPm243yXFbxk5Cw@K1E z!=G>X3sNW02-=}9=kR8B+)Ywb@=<94%i5+i4shn{o1`WvjaE^m5_V9L!cgV%e~8Gy zMs{i@U;7OAk&Az%x;_V~@lncfXZ#l8>`SGX%yq9?7ah`YFTD4?4|rsD z7l7qYQ~0nPKhtQ%pyNjzn(5elI8xg3_j941=J^7t*>dI z{!3DT7RWF&L=NNFSO zEyR}lCrVosEQXt{3S-7mQC zAW4OHw17u?1>Kt}TR7qR_Cw?twu+w>lG#k2 z?~x2UXyF&KoXY~a+24AYMAhoPpwj7eI!^_8BuD5%r}5xLa|HfpD8|mA6zjM~E74|U zxW{KrS|=j+g&T8%BO`}CitNR36nLo`O5NN-X^GelNLSqr+|~OuG|`N^hK2Np*;~0qo014XKU9>Lmh14 z^E4~Dbqf8E!z5 zm3dPafQ`}%q3{)frdMRTL!y=n2knUn19d~i-cTM5TA&j95@k-UwNKn(M{~*Hlj9*# z)I1tzOnZ?v_WKf^=Hcq&d}3KV4j9lEkUptjcs%J!;rH32cv9$mJz$DPS6e!dq`lr& zsYNe%4F*N5$-W2gER=VDA9@?!gF?-F4~Zu7D)qWXUEp!aklb3P`f-Ab5|>(lwCd{X`qRj}CQU?VWQhj&CYKoZIN|N}11i_TA-P0o zf?U-n&h?3W>`8)-Hi2?hcqe$4ZUaXfijJ21i-l1k$1XEvW28O(|0APfC^`xmnijEI zAYu;K_?}_?>26MKxpCoZj`f0krFh(kJe3S(VhDohFt=N<k5^0@90FX^5~{qwT%Es*wSobQ2PX~+PDe`(ylPiGM+U&5Agho=eIoD zdG6woa0zqLN}6YRG&g8>q}UZ%;CA&^=74*;QZA1$!aeQm3?tmf?qX6iT~Of@67wM^ zqkNHLHIeet@nf*Uf|bw=bw-@SWQDUqyiBwyZzYiv2m2!B+-a)qXDK7hoLX$oD#>Vz zQp`HV%KI#P6YVW!*|ULNBHEcV-2{x%Ry!j%xLuCgt8&{b0H>ob$evD7CyM2`+C@<0 zdW+{E&jC^35^5Af1}MvJ9bhO>V5(2_K(SUH^?RI5$1 z8(vFk#NZ?(8@pb(Nrs!FjCrY;aIuMIoluwJ@d4Yuhfu+?#MbpDbS#q>CrV6@@}1?@ zLrJr)D6;P3u)>K%D7T_+Rj?q5Ta&}4+iIgTtg!gwQaPobVU9*E=KvReN`RvD4Y3z# zp;0oVMz{g0#!IM?k|@q?O`X-J#*%C)}(#EY_|r6WzEBt+;y0(t;TtHK|@pD=wb-kbo4iN0Di{ zMqADlzeeVCtY?aP-hk3sopz_-4E^P2g%+33cZa@cl@j1UT(YdHCo(c)2AjwV1nT(^r9BysRmy*7M$PzbEq385=sjxGbvNy}C#I@0> zk;OT#&?OkW5OdupqoXBz2_wid?59adKFYzcyzN_Z07JgNrIYY(MEiMa-iaWTqdX?= z>STovKm1H6Og9|`wHxwNyLDPg4qD_xHKLWDyB+MN_t8$v63zDSnM2?Z8BtafgQMtp z87S(dRlvlY2(J8)Vbz`xP%h5F`9XQBd(k;8fXbZYWMoY9k}03GL9`2VrbnKcSkdaf z=}oBR+)50K+1lm#^flioOT6u{(N*bMBXd9mWkY#4zCSU$C5I)JAGypG{1TRoug%e< zM&;a!12>Pu(m~)?*9nRL2bK(801{tLUR0aB*a~uFnhizKSAu0&=LepB*{muopI&(L zS?Mf4Rapv~S*rueb3$>V!Z&NSHSJf5Gr;x~kA}E~lO=?LdcIjzU`#JCtBQ^3fQt#n zbhNe$jp>DERf#dZB;Boae~>X|;yIYG_-e};x8U9T@tpkPGXxMNubS= zZ%o=bOh#Uuc4R2jV=W<8C2K^CB?#O@y?11D77D(aAVFgh;_*(v}| z2@%7PUAypAOq(b}Xn|9j=pd|D>ypxslJS|8+B`}$2c>zas65To?d=hZgpN3oL?}B6 z3u1Nsv&A)4xZm*8(VSkdoRk`YFV?O67|K9(fX)n-0aBfKQ$-_10VgYo3=o0gvpbTq zyF5`PQ7fK6v{bz(I)l{l%XAjXtAwpH4WVbr#U;*Jkh^GSiqIl znKC##l^L8Jm1`!s%KS@$cvx!1FN?m$K-#a%JAq?uf-Sn6wAt>$Ea7}@(%*R1OMi)t8xizKKfTniVgsAq_RTM1Lyquf72u&HD( z!2iMMsg^8ODdkeX4E2;5y3wk+MKl-H0QQ9P^sOv?`D_+ZI?M^6*(2;`-@`!mcyEWj zJ1^#K@zvT%oSu{NbGI>=s^VfQhR5#dY?LiAC#KjLvi=(p@&Gtn4?HL+Knr@=U^jHJ z5wSki59z9s!c^rPAiLeY)sjzQ)p4d`pH#7XaLzK>p|fSROwnx+sY0i5y02!eUDm?b zdhz+IWvy$)30kGjaHGo5NfKvp24_$)?4NXwa%n(R6^cJAz+iw~L<{T!MdnM?VN)q` zB2VXwf>AmN?ir6ul1CCaH%=)c^JQZA;ql6XdXe*;G#f}X$tkosH=Po&E-7EHEY`90 zuZyIr^(t@&73-rCY znvn@Ay-X{sY;rQxh(Z7Bl|h@#{1YWVJT5(O%_GzGSu#I%c)cxpr3!wD2)XeYjYT`_ z=r#b2zopE7yO6PSOz)fuZ?$LXQNehI$ikNS!$QUiAfXoJ&d$^MN3qDDU_-UQ|uiskV||lgzR`g_V^4oIB?0BL}Em4ahHUV6y@k$S;5r;+HzW% zjX4#637uPCk3r1(sY_zQFp!8RA}C=FCj;+ujI^fVh{*i;GZ;TSZ| zlwa$uT@0*$POZAF_O{E)m8vFCRhbc_XXe2U3+>@GIQcKf*POgo$8!{9U_u(TGKH8WT;p#}ekw08lEtGpBc2N+;t z#>~WwaWrUfMa3qqD6xV=m0SjhI%Eg}i3!ARBTdn5V=|LOWg>BaayX3DuD0&3TDw2n z?R{<6nzUL=yg*`X60KW7AjUSkJ#<)$l}(7E^ZR_?b7mOO?*9JIKhG29T;B8E-|zjx zWqP1R?$i8s^_W^gYvrpSmzBSrm72BkTR_o!#+)c@QY-&puB`my^7o-1@mKt}p5#|q zZ9KsR>kpU^EllxH3x)+tRhC2Jy&r1lAxwrW0DOBTp^&I>L~n%Ntz3B;m0>C0=f6Iq zt8sN#;|=|OLnb{%r@W~!+)|590cO|*uGI=LLP8x#k=tkQ0M^v_@u%1U-%_8hO2fll zexS{=EhqLvGAbNwUWSX37#Q{VDx<7P(Vmw`r$~~nnl1=$P?XSWD4_xx4+teR+6uD4 znuHeQFk7|fv2m>0)#a?(k2R{=v%4CvkAJ(icJ#BV4km>O0%WG?wG>EuQ?P?LP<;}K z(=9KjL6fWFP9BWjZhk_2`H(mu0!W;tXp?w6gT%Rq2PTPALr68#E^%c|%-JHQg$}=PF}pqexhqlpxYU<0B5@)RT5oSu{EB6aAf*nndaSo~)XzLUuvW#SNs#h~9k)>(9 z=$T1|%;!}}*RGzqR4<#C1iggLxsfyQ?X5)IVFHCtVpM_@%Z#^vDoC*`L8L8zq0hh6 zb#Fglo{^*@mGY9t8w4N9uA9b(-xr1aC*VV08a}*ScE+dV^NZOYAH#=kHUQ5}e0Vd+ zVs^u{nck5S36PhD?YuG$@K~8~4&%^c3MyI9tPKqk@?HRtKr`e2e1(%hFqgzM7aARN zGr7c)L1XWCbF8}>&*3kG;W#Jy5;f5Pl&!M?ibEeaHeLciImt|loF^7IhwQ_~$Ts?* zY-Pj`xuo%&@cDnGj)u{Hq(rh&GR)+W{E;?=(aMY;js+4@Uo2Ih7@n6jCPK%}PfFL7 zg>O|MZ{5ts1|m{gIUoh*e85in;MWBJodz?{Biz``jE}dkm*W-~rcRp8WU$Zu#RvOsB66{U#*+Y!4r^8Jq+}HV$(}I-K%wH< z!0ZYM@T?Zz_udcpy|NIzDpa>V5bMZePYE$Fg%JUnF}0t2d0_kiZ4@h|NCK|}xPi8b ziM4@=6+UY9Tl2Ej89oz{g70wHAp}AEEd5aF)&eNBb$Jj8%{{eGe}JSn?x()fp;u=4CXH7CUJCV_H2ECRmMRbN(T z@}t&&76H~ePm5icVHs6$%PlfvjVFwKLWB7yqrK>R-QClXTqTUFy+g&2EGKSzJ|9Jm z+|adEp-*9)cy(3iqNw2r5g@*RH}N9Z(<_U#jzX@vx`Mnl^7K4i9!df2=jHNXLFz$& zhdhv#VwLd)#)MG%MVdXvDUKyt_<$DKr;#;SG7i5YC8wzsSI=)0pdf&fCnkJb z`&N2f(f#V>Byrl6xR6xL~)r}ipu7%Vl zf2e=BJNJ{KH)oI=fNHb+;{Z)Fn{Iu*#a}_aEu&&-HEWPvGu2`rY#fvQGPag2!In`} zldET5suWbZS?stJJ5I4AH%4WDWJ(6#(H9MDu)lTuU>LLnu?K zNG#1~cClp>Z547EOj+vP?RsPBZsok9>Bty{Z@a2T( zVQ!ZhH0HQI0;aTjh_^<}uk!S2H!@GVo`Vjk!d^vqzH9{1@l1_gk{dP!uFS+xTcH<|1TO?NHr!S& zsE`O@NfRZZ^I_*2z#uAr3MSkw98^)^3WWQWGQ4@|{bZh}K(CTP-BikVo)Bx?dy z@n{JjX^$4DzeVbAA%D9by-r={slURi8jnJ|2qaXR;=y-fO4C00s7FdDiw5F=a~)Gz zp=v;FIrZA3O4F-M*tAE*+)aB_Y!&*I*+82>02GFbw|GC)AGWg>t*J_W7^@Nq- zeXGOwUO0D)NCV;r z*sbPVS=qfLu^c?%>+qrLCCF_yxs~Hbbd}e}Oe5pkTfGo^tF+1)eg-IX!i=N3b{p!c4%unEv68l8+6habJu2%@IIe}R=y!Rdt7SE-)XijRGKG@+osD<|gXQp#)~XnZBD?k-jLI^N30*OeKe#lPzh z$z$x6eZQ4NE^-o+)224u71+77WY#3=1$%tZy4-qc?ncM7WUKX3^NfN%7A92Ipr~3B zXQ{ez-P_FeM)vK|f9|D;nb|DOo*VaVWjJaI)!XwTbnM9f(L8Wd)`6_kB5=tG52*0Zb}P~t#HZ#k2~Q|at;(ZSc`ZP$=+dR<3SCMG zr}^4?2Uf9yRTB-F5bE56Iq8P4pJVY4^g2lF(OG$CFJ}vD6>f@HF{+8=y8rFW8jNCd zWLz&gRoAAmq{OgwN(@`kjiOPiccN(hZ1jsBG~jOiWxmzz8K}^dN_H1IG`Cik5&a?x zQPH5GU-O!89MRn#o3`6aVCdbHLIa1|l>kBZM1>t@4$@z8 zN*#JXHN3kCd+275P15fYP;ZCZn2IqI=yaKll!=6VE+IXadm8jRX;>7{Qd_pR%MD2i zL6@2wH3#>njp!y6uPYq-TF4s82c5*QsPUq~%+^*oxL)o_8#~q{vg`C6ZZkgl_y3OF zH{A=h91Ro_Mz8@g<6BZ#Cenc-JFQKX++K*HdIWn@K~ZkMYdp@Ol5nf7XG+%C!^RK! zIDz2=g#W?mK8P|H`asB|C4jkrqOBVA-JaM+Me(+=UY zllzy(>ZP~nzXu{Y%z(NQ_ z-Ay!Z0A*-3cM|(wfz=f(3$g#*v*GF+Uy`lpnTD(9LaAGT^~Z!90F-djsdBdoU{m%U zrsah|Zp1jU4U@Ju1N2bR?nS5>lyy$a=Joxy@8u;$6xuqsw$7vW1G_R8L`{So#SV@B zOwf0=U2>kY#XuSYzpKF?4*3PaxJ#Sdp(=ChD;nx{Y3mb4l|kFG-6V*4xrbgnVvPzn zi#Jf*%BZsSTslIH#NXOYrB1!t11K%cbAY=VC0p-|qWp+j!irT~pkPkj2!buqwL=B@DuR0+I8N>6`51Q5+muC5o~=oLVMEGl zV|6|@`==A(+=7k6s3kRPzyP5YFismM^rxf|sYTEs9p>6O?^v7q(Lsd0iDnT1AOgv20U+&cmFXzKSa{ z`YQ@CDzPb>rBt+CInC82W+CSKOub?m)|^;!wn@?1C#SEX0QpGM=pZiSY0Cio#Afkb zeGS%KdBnVy_{h#aKS=`J#OuNU6jkFw6huL-qA=!91RlwGgOe@#aNRwMG z*}&-Uq^ne!>R&LNomiU}&q}OS7Ur&=UrCAP!sH0NHL?19N}7~+PR1}mmnZ^lI{*_DMwua9laBok)2Kiq4~*+`bmtyDgVcdRkC`>&dfBkR zeE($Deg)?J7jl#)yDL3tmx0vAC6}pmSC{I63H=^#ac|q5MWQGz4drlKQnquT{Dh*8SSgY3=Xs(t#uhqHH5UcUK^g5@$){#{=*;aN2 z(I50Ww{CZ<@h7fSGr$DoDMqt|ZyA5o@3t?eMqglxSPHbO8jS_UU>RswWf^aU9vq8) zq0pwS%#WXqI8fh^r)Qy%z-R^@FOsQGVn=U04BNGSgUPZc)px?|M#sD=A7a1&Whb|c zaD5fdhCcsX*a6tP=q9xZP-4y81YRmdfjPYiE>i2}uGIn_PHRXH&i6K zk%wiSRN6&ldB@sFikCf7u+a^e{wzz5woPA&MfWZ};MMJWM3KZ&%$dCipVl|16@Ya; zDz!E`mE(ee_`2p6wM_Fu7cfT|a%j$$*G&G*nMYe&h5qq>#9x z5YkYv+E@w+v&e#eWiFDZKa54W`1K@qcOL0wB_NqWBa!tN_)& z5y&$y$o*!8htCqwmebIZ#kMnd%51Qr;20vM6u7rY^gOFy(g~|y4aPkjsTm9b-_0xT z^;O$3yA!(cu<=h5N>hXIOs{vSE^1}niJbJWn2V%vVVVlhV%CB!Wybe5D5h?{7}+q= z1IA;-$k!)f=Mosl`#unXhC`ed;+G1Qb%bfsu7#@WYO+Ip8=VA07GD!b>VR}Ch=A`;@Ini^4 z!@>?ldQ#9=Vdpwus6gd5!LD_1NarT|qq4!#p~mNznuM~VyWynO3_6S(XlRqF^?Iy_lbv?KE zU`b#Z$zhgDjNlXc5v&~HuQr;n`)<0K@DJ?qpO6mk@xLxJpaYU42P)~X?^@Trw+J?G z1U&-!UsQ>($0QLps!aj@*YKHoHKtzm$}5Y`SS+u?lZsJdj-_HwxU2Iaxte5lwa6=K zcK0xU!Ir$)>wXTDb@55)AYWgS4thmCJ#yQ@yqfx;F^ayAdG&p?d!>CUn^*3Kva$saFlq?$9d1n7vwVMYKQ97k;Jn1$s)nn~Ho0o#^g7 zcE*obZ;e!JvR04l{#P{r6QoimO*y%daEE)k>I^NgPp|T1p#up#n>Gi>alm^-<{@9< zu|;i>WiW=swh>D+oc-YcYK^am8S*6l(P`qBTaU95#?l{*LGex4#4&fmD6R+mL?ec} zHH-rDc39mG8)uuhTT-?Xt(h$tRnNe}m+~*bEA`e(am`8`1?0er)?swPN2Pqs`CutM<;;@b$?6((9JqzXfG_#1)dI0GzFl6v#MPVjlnhGZ*r{=^$!W}KkvV{?7;a{5@ z%8pJtz<3o)qrD$tu(BP?7bM$`SB;o`IT2J6_~32IQ~EO|2VC;sacX{4vm@MIO|h^EH2$7JfK-+U08h14lJ_Ix9R6 zYA>j=<&FMAJvuY&l1DP*SmNR+LgL@h8NbfJ_hKRAKxJP6qh-kk?8I5&qN~++d?bk3yh8K$1?R{v9*Giw?6xC z>6QQC4F4m(7q*=z4&4ve)W!n)Os{Tgj{Iu$RmxCxBFvem9zOPt3UhLDWnq4cb3LoH zQkJaMkvW9^IY^1-^1=^ltkCh8zBhzTJ@(?$H8|YvKE&V;+6VJUy|% z<4+j>fHg(;$}6t%e*>IEfC()bOZEd7x_EE=Do^B|P_~s~c$R#+b%FKtiWau! z6Fk1(n2TY7&hotoi=yTh2t?Pj{5^7biuHL+Z@EC22LULl5L0S{Shk!`-66J|&$25H zrU*3Cq1)=DU9A!%3nuN3h1&P|l{` zSORMHh?!aR50fYjO8w4lzXn|>aGT;h7(HqoYm&nBFtNjH{GIyEGj8QqV1W=Al1>=0 z)mk2{M>)a?%Q3~e{W(=k@Qi7dIi>ApbRW$`&KYPfZFGme$gBn2uDvh7&{wHYj3~4YQH^&Y1yfWzt4^C$ z{1L4yT}e@;3tm1UWgO{7(JJXk|`N~y||tm^tvMSR zey2Gda|c&Cj9t9q31qG0)M)ngZ@-8}*_cZvW6NH4?ZpI%eKTM))|drJ*SaPg7jTN^ zz_DqA?jJ{akPeTG=5+G!?HfLU{Hw9DzKgtyjPo2!!b=Fl zis0h{v~Vn}%5<2(-<;!6^-JrWFMidY55z(b?w8$64Tj77{PWdT5wG>R_34ot&F2x9 zJ~M=hB|=UY%GLlmU`w3BsG^lZlvZ-1FcM|P2qI3vsz`Qb$P$2X#sLZHt;}^9nrX3X zN;N7(nt+jz7z`9>S0hO1tF+tnoLb@2O;G|#ZrRkp9bII@2jZLal14R#jy3=Y#JE_pQGht1cXA za`fk{0|#j6vYR|zP2R4ibGw?()0*GGDxozk>uM_LYAOW zSHB3_?S2Nsyde-8c77rdo@(bjI47|EQ5VVF>hDZc@#^6 z28!`+X2NI*yumO`KO>aOn9 zUVUNL^_1>jeXd-c3oqb65IED4VqThE#RY_Y>D`d(azZE^S}nZ*7bk2&&c}|XsbI%K zJx6!$=?05b#S%-2 zA=2PdtHBcWe5uu-!*FmfHXfzak!&zEt2h3Y2H##~HYkMtq!L%xPq+N^W*Mr8^=7vG zoO+&Y*=gLzJv6`ZYbsMMJ5x(eWf)9p6-ArC%L3(Rpd^JnMdt&c#q#1^UsL{02he)- z|1jkzU&syRz%fK$0AtEP6w-<^x&~{1ypSfJ^wPGlg3}z!=fwqzv|suQr`}#0G%kAw z8It5$o@%i*7(-u>p%pMRFyG%`9A{1HAJp?anN;Z89RQME)NkA$bxyW?t!Of-ph(52`+{YY1%3stu$5hh$cN+BO`x0Pmu&S;Cc zGD7w%d*hi;W^`r5s&6zNdS49xb_ez9BGEpdBLsH!QdkQ?UQ#24YNCB5I0xZohpu8= zDo60S7LzgRZ(WW4^b_hvOx1R6MtDhS<7AjvHl`m|yi^g!Q;09f6b6BFH50F@iDY(N z0A&MMvJ7#65D@z5_do)7i8nl-P(V229K!xj?4y)!WI`dsB&<&2XGAq(=F0YvwqiGU zjHhBke){&a()c*Z*{wjqgNa?hjVHp6Djd9ET%=@P4-1MabG185)O4Dgh+E`QFMf?6 zQyH!YpI?F5CTz@VF~m!NEJdA1KzXOrSLNLHOxr!@+Cuiem3bK_E8Q8Pi(@z3SQFb> zSa1C7^aqLPJ)Vs4St2~fko5ZtKN9Oz5POz(_msHT z*6)!H{Xl{MDgY9VOxhxaDsr92SS-?T31VmUUUW*r*{Od24gH4do}6K`lRQG}%pUeEOuD;c+ zf0o(7wJmhxj0Z#{%MO>SN9Ar^MN5NRC=k-9AaREn+(J(o?;ZS58Fxd@%bZPHtEo2g zl7eX^bw=uw2bv{1)ey!bFz>7~>LaC5nk1OE(i_AA6Y6+F<8h#YFZyCs-a{fakK_zz zPhyKY9D(@L4@0+#6X}^aY|1$T2GqJuL(lQn4FXWYE3xs!PTD^aznEBl9PSDJE3yh?!}EbA;ung0`8{taK4s9R}loFfb{2a;^)me z?g7L@zC#<58wcj>;PdG-FoI|-gY%Wo6j;=&#Fs=@!{KQ?-?U>sY&=MSQ0~vv>kAMT z=vQc0MlZCX(oC-ka4h&o&k`+29`U9oTwmRZR750k?&w{48LqExky}z3ouMy4J+ihy zFE6OquWZmux&j};=1J`ph5F0BqdPP81Eqnv_FKj4G5zET z{u?%JRri!$>6ugE8AT^y)8AA>7?6H5fH}S!AD(h`KEj*m?tD@|G*LO$co{MpwntOJ zcJa1!J}icqo_v2|Wm_a+3;(frDDLq!6>dLU(Ur5_{%7=_0^1HZ9F(%(#Ej-61ZWGQ z_Y~T8oGG13J(kJ@oymlqkltAnGYRHmZZh@#7}*H3W$Z!oY-%Tao>2u0Aq9O0WHoRD z-c_b=a_aR?!aeQ>v-|Sg+dri*%sQ%{r`>GV>+Pv4N9xL%_55mG%=Yhmk*%>@b$Je5 zUdWW$yH#K3N?+?`4(;8d=dfW&02QIx=VKxwt?^>MOdIxYyYh;CExXKajEeuAVFC1BSd@bPri|-+i&1&0qp3T+qO+jT8ozr%w z+;(w$<-yS?Khb++ZJy_<6d&H-0WbjytP=3%Ts4OaW-b!zw(WmeqtxmU+Oxf#8l|4m zu)t#3NTEV~A$zDm&mG-|xA0Fh;E)hW=~;Lxa%z;RuZg*p2%G(QslL2`DGC<&f`#gG zM>aPA0B*~j*ZVy8qe|>rUV`MpKanmp1tAz`V=a+V!>vb&I#Uftk?8IM1nk25hb{ve zm+sCJrltU<#zHp#1^|Ky$`huhz&Km#*aR&E7J;kDky``^O{3Sn`$5VqT&Q&uizvJ} z$0u0CZv3QF;YCNkZ7a>0qH^j9Xa8F0=Nafh5h*6|YWd9!s;Zu&JwdTwFspK^ptLrj z8l^fQnwCSkCCZpvp@K6&^Y2}2#(+)X&+O|G3DZ;%gm{C@`B@f3HjZp(p+w%aU&qR5 zD%xzffy_9TN75}9JkeVxlt5YVh>)NGcV9+E^dcMEr2$#$c%Ofg<348dt#Iye^kvva zKP`{|k7iL!KgxbXWWecr{oV}RRpw-b%S1=m;JEFeGwXU_r*D2ZEb^b#c6Q8pO!Y$P zBeHf|IESh;;+1U>3-Rmtn-MS7FOWIv7}{}}=$}_R^b!a&UnwmB(q9X?OKa@J3t=$( zouHy^|Di|5`9&NaN_ryXn8tLFY<@Q`H2m#$v>~mztBru5=%FheZM(98D6r*0XE>`X zFeYy|D%qV$`&`U|1Y63Dm#dUf~ zhTX1Cv3LcEVGDPW&A6W6A96MyR}aTbYA#lH5z0I-m}W((c(X$j_HFR;k5WeF2$Vw^pD8*EWpNuK)h58q1@AaRR zt?f1byiASEDLR}3#sZ(YyP-zC3g}o)rQ)mU(GN7#8ebQfFDlLh`Be>5T63WNP8#kP|j7d;**WVmk}h0=-Li z>1tPdHaDw7=W+D`B-mh_Ue< zYe&0!elDd_uMQZ?r(gZ!j90H4mrTF9hgbE|`85niIL5jGCv{dv=BX8a_SW2Z+RF;6$NB4~1jbA?b~?y>A~`u?)*zXZ>_+W!ok_W``bQ$*McY+fC% zhx{KksjZYKmaVkRc;d}tiT2;1EQS~#dE$%Z#mC!Y zg>2D}GDF1fQtK-Nb=Wh*xfG99dCKLhfT3;8mkTChbt~Fsxx}>Qgu3kaAD2q{%k!k~ zEOuK7J|DuFC{rX8BQ9W#1tab&Qfn>lwB7#+L`VzaVq!$-wlUOFI0qQLFoPx*_?)0} z;SJC=m@0I!>Jn^`VmgmE7`Oc~S^ms!|3_W8Px$kRx+rWkR>7vC$ixI9?ihvEm*er^ zA5Fm0qkf+?+WAf5)tT&_N1)OqQgY1I;W~>?8h1!p_`!&?>)hzCWgl{U3}&P4*GX`~ z4JfbD1Dy&ew?%i!344jB`u*yJ-QUJnt`1T63Zu6c?{Jjttv*WKBhUO0Oc_ax^BZPQ zW^vo)saaelnlZJvTZF&^ zA8)ky`Vr%Pxx?#~Q{n8dP^ZEgEg)C;Cvzi<0EIHhrSs`ro_<4t7TUw2O0RwN`rhjy zG-L;P@%u^!&3+0F0!sv7Fx%-+0AQB@prYsK>mC28oE`2l z$yZhyX^TyiUh&)0V8bcc0om1$EKTi)FaLgeKP0_TOX;x%8NT}$+4S%w=j&L2XW)!z zWeGV`k?gFzM-#7f>(I*>e*6cS^%KT-__fs9DH*Wvh96>%o#G8YM^9$*hGJZ$crPX4 zL2e^QIWH5A2Z>q49bOEln|z4CwgGjl!}t$H#>(CeN3XSoTlBfzH6`t@LH*{I1WUq~ zwZo1`>INu#yOtCGGOrft=d|6${Q_a**E_^6AtPL?;S?RO(a#Z%_h#XL7YY2`fNVft z9?tJ+UcCvIY23ADO+=fx0(&+lP>gR!W?PHF?I9514TpW<2~S9tt(!KQZHRyL#-1=YP8l z_kz@0aWnwcgHz0tAYpTa4;-Fa|}e@anjX( zj9=&sDB)P3U8riK`&lXzuOz}W0p!P`kuh7S64)-0Xs?oZ>Ro=k0ARY6J*xomBaWrGDF_tlcif7J62K?aA%hjULJ7m%>6`y8Hy8V zw$f4I+v?o*1`beSR7Ls^sVM@4e%%;(i_0*h4PPU~vuM8(m?${)L-+~hTZ29&C^Pl8 zK~dLv*1I9zsiEGiXyf((j}7A!BsGc`jt)u?jp5P@N8n#&35CXu7t(XM%G&{ZQFkTf#k6ZOV7N<<^1 zswv?^3Bw;~H~!^AWxBOgj}*3e*2lu_?|nz)<7xU6P#_u?a*0OVns@YNIidmlpxcAS zZRWRUDLTp3{;%>XV^ke)f4*+(t~wVg1!;Br!SDrbcb#hs-@+BSFWj$=p4?CRb^Utl zs!HUo;R{8VaoBu!wtjg3Xr`2!ODXH}!jt7Fy{x~w>?8#%qFq9rlqNusU3A-sY)xbb1?jQ_>=XzlA!_F*#XL#GUu!%9e#wn35{|$W z=5-iXt_D68>CSF#Zt5;t&~1zQY~gY-yN0yB0yjLwBB1jl(Y^xX=0Crm2pZ47`5{)3 zy{M5PZ7Ssv8#l4gG>l&&R2AEySU(apj$EtgF0hS9zsC;b%EMEtOr=~pf+yw# zi9n4*WOK^EeWoIP#P1kB`4;?nOjt+8eUQBLjokPm0WP@ksW* z)QjbJsTVi;c#&g%nTpVY6o8~I8vzfe1{U?Mzc{#tw{V-@td0DN)^bl$1X>$H5);XHZR>*AJ~gQqC;quos$p`1Ihx z;qxE1N-PhbJ2GHm!R)(oM+QfaO3{JQgZvDZyNRy7?F~CDrzb ze_X{g9ce^Th#~2S7|u=(oE|=ZKuzkff0FsRDI8&DLO(f}GQlz}jRx8F=TC2Y``|nA z$e#VO3H6L2@dV5n$XeMsB3kM0F8gQhSKXy8P zxp{BuNM#s|fr2syT9q+KJVzy8HSWYoVX#r2&ped~bVZxpDIIDMiTN9XBkn8W*3@2s z0fzh&wbLCHLY2-+h`G*BQOp$;(8MP1ltU4FPR;-y>0bTNlB!jq&H8;(H=$wo4=*OD z+k38mePPLg*+--oZP^eGfd`YP!`xHLLlA0%`vHu4m(Y4cZSr@z)UkKXv*Ox&pL9h8 z@4fbDKhSsruX5MDI|1J#1JdKP?oLoe>^VtXV-9;r4SsrngN+k|{)xfff$(J7Dug!Z zxr4n!n6M^S?AYm%Y&m$AsdT7>m6KIy9Aks2?KGyg6YCHHEeuD-j5{#{pcFp-i;chI z+BdLcRlIy;K+jFDcpxx&>|G4YL*-P7J^ z@Bz_V$8FKSvCOL^F<5V(f5H}v{Pz!IH{>?|F#7i74=}Qsuji~?atPvTLL7Y16Cgsv z5NF)XF!#*0;;d!~mT|r%Hy9Qc;WMI&{lU!WBE3qyX`M^<>j(HHpGOIexSb>o7Nd7MP=*sz?o6o!h4uFL^i_LO;qyNEb^c70BLPuhC=kP9aZRtMYLt^y z@enRblVXcYAS);>1f)|cYD}RDWO)%RutK6mpHseQeoy#Jj1dsaN_1gjdnwY5EO|*> zE1&x@r9c;}MTy(y2LZ7F3 z$t9?*O9hzIItBMq)C!@xhtCt?Rmk&=n}3;X`gR_Y)~mE}m8HuHZAy}O-s^z@P7Y=o))x-zm-QAxejS=xAe_{?ZzGZs|6U7ZiJQ`75F z1MH!SEqJMg%t`n?olS%vG>(4OW-H5Oo?Jbm!6|d>{!*DU^x3j`uKPs!T{hqKwXeyP z&@Ic3GRy=7TO7uDID)ZKTlB!g{k8|aP%?FCrPf%bCKjnuE4l-Zch^1AZ)>AqSJ2*7 zl}*H~=}Pmh;xC!S7f|V|qy4tqDJ?NR{aZ0vZQQDoLczf-cOV^zM@Z( z)?q6oP%RSa(nfJ)tqrQn7e)H1uEtVV`>ZSZkx4jo6>wi&Z&7jSgZxW`TLCB+0bR`r z`>7xjwZ^i={I~bn9U0}M@Adgtx$c$F<5q`)ve>E|286gK+T%{8q#lh>0b8|G@^7S# z{1T?o{8TSRz(3o?_^I;%h@D=wwOsAr2Jl*i=iGL18Bvvt4)oe)du$ikTizXCQadF% zLvw~{+WBZ=rp}Inbp|G8C>FN)$ z)N=J4V{0Zc9&Q&d<-Q!AirHT(W8s73^qEN1z+t<3o}#3%`^Hz!WmKeYb@fQ(AKfK6 ztfr7-fFZG8b@k}-blSqaoHYzuO^^?2MsR{x&yg)I=vAQSKGF4$-pJ?30~$#yph%(Z zC9(U25+iibNXGu(XA#b4FfUVAUk%zbqx&5Lo%^U^@G<%8+WQSzpwc?Ww!?a78J9!q z?=-O^w4*Ulr%3VayM&H}3yWtB);V=Gdqe8)jPj|{5apEDJ4>in5x9<;n!$|)_969T z`Ww;%=!Z=rbr7QI85GM%Rdj}tTmR=@@wmkL?MZKNTad5|Z*q#j$p(IH~8^_)? zYmn3f`h7A=<}F)Y_+vvmpPCTw|JKGdEMd3ql!D~th zoJ87*5l=F#Gd2re#Ki7cc&fgo44ZF>A;B(27?4Jg%rc08W(?=a95QzzPZ3RYmAMiIJo%6S0Uzl7aYFQCQ>k&|1ipyBZTl6KX#N zqGL~_mL}YswjdKVax$&e0Ki_aR$^k-O7P-}l1AKJpZ|pAFyjrSFU4^$=H5fFG3k`s zgh{zsQWG&VmwYLM5M~ zWIOwywM`Zr=EH#rs_YbGHA@Mu-wa+cw?Z*7`kkZo+$(uKaut=s*BIj zF)jC;dUs`tyMndy4QxBq7QwJB;?Xr|@D+=DJdKvHc9+y9{zXm|GUF6KXu!x5ggNn=E&REzM8h)LtMT10gB=<2YOlB~{= z38PDP@wo4ltLJB&3ig|?ACo~YyUUkC1N-w_JwIle(%DZjBNX;i1!G!i1`>_h%u;?zb=O?cEd>?(2`L>E_R}i7g;D0S%N%TiUaU5(`Tts9g5d7W_tTk?%N`HqjAC^Y~5m&)2l zMnRZ|3EvS{`!aTx1ZglGOOl>rd9}t{l$8#VP87QZzZd7&2oWx(jGL$rgInW9^=lZb z_ywTBcKVK_cr2+rbprv=pAzjv#)&1xy+uh`x#Uti%;deE6I4q?FgOdeR7wVl`>VraHH5pRU9TVlMl%%sQk{ zp7DpL)QAeqa+T2+micx$wjJahs!8J%R4n7oNhlFBSbPRjFv(S@5?L)Gs+dhFEN-nJS1M-j=p}Nm1cItq)#$I~l&Ma|suChqZ~u3mh>|+wHx&g-0+UMsQ2Rqy z30EY6wu~*9TnYR8wtVat4sE*g!)F#k3=KD`Fd@tD`kc@t_XxSKERnv;7YMHPZ^)*I znUujupYb7PiUPs=02vVS)zZx!7@f)%vUcmnG5M0Mt;a%6?qMlLNrYf z@Y({UuEmX1R*phhim{wvI=(It(t5j%x8e_wML4Z*2&v4TFq6F}Ke4k^jW4EZ9b~=o20cS?VUO=Y*;^{7k>Pa#4Dno9*dE$+^@Fv~eBLN9< zj{j#WUEiN0p`R?CK=gLS2S?TwiB!1?eDKRv60o!CQC zlpj+Gwmh7TC8&_TN&ZywS)fcpM`H`QbZlGgT4wYXr>$?fGh-I;RS_U0Xe(+h=RWNY#MBI= zVPmxvC9>FJRybex+#CH{C-nUt4uXK@RBLxQfXMUpWk1uF-K$<}E1Zed;1Eebn9AlM zwS=>ZdtXp%YVI@QpxB4c7tOm;C*M^`oZP(j-q!2NvUYpRvO~_YoN)0-c90z#KVu}j zN`66)!#5Rp%n#hd8w;%HOu4d;93um0{W7oYecrOorUj?8Vp<+xHaN&@%po?KHDup? zRmvv8d^32^Qe0zU_$C&H1BfGy;mrjeYroztxx$p)0_~+J51AWx-wJ$z_SWFDdq+M_ zyIR>dqWQMw#PR}MxviZcuU&hemlFD_&Z+C0wVHw??_MM7O?=SE)VVw_Uf6bLi;b{d zw;-IT$s-w<{9WOYS8h2DBzn?oyv($=+}nqd6z$xUY(*_qP_n-1#6hibs1#z?BkU!h zpM0w-Ew@K^Ing->iOyvZ2O<&UTuOG1%h?XdN|4rORNR#6IZ4g1QgTYpQ&c(#ZbO-R zM(WI}myW;kQkhW*9Vuiaa%A$nb!)yV9|5 z$TMOvYZ<9C0E?tIKg4SFXX@ zidDk0Pg4%~!@)B`4Tu=CS&QaZ5*&YV{H(HN%M}5DOOzX zaPw&J9nIgXcZgpI5o{g&z~z&Hmy7xlul{pbW1hT7za;z~%4Lab8$>wL?{5>=qkez; zT=moCR6jjus-OGkshgQpH`gvrI`guG@{XCJYeni_yEk8o3h&$Soi1cWY2m6Go z>i0j3+!}(DAtb3(hs#NY;bhKz?OKX~gAu;Ek&Ima^fQ&@xgPVICdsyj-EaHAJhFmeXsVM7%7 z`YC}J`h>4vvMKuUK!XDe4;%lOEQNDcsuUsz*H@)Ye5Fk0j}VoC*Q2){wY9j{LB~*$ zh8?zlV9Ajs{n7)8WJ!zx)@@ZsTlY2jm28U`EKv`ehbxEcYxkkwUzDb+iVLR523zwT-$Pf{EX$csH(&80(NY`(esPC+`Y3 z@}(*IR)wV;UyIfK=xMdN$Zd%itsSO|^~DySr?d8HHG7O#RK%CGhM${SfOYh1(A<1(8# z!7lIk>Wm@PebSJIWk?IthjhjJ){y>vQih}s)Jsy4HI(5QLpc$pm*I2%%21+_aht10 zM7Mh)$CJx+Tn%I(XmkRSWXA>YG`P_k$iVD@9G8KJna}^SHUlz{0A1$bn`^U$QK_|Y zs)2Cs#jnnUA>UV1YUmqSn*r6Iu^_%a?1ke|diuW%=r+EFTdO-k*9UuxhX(f(^JegQ z{dwQ3p!xk+a{I=&&j(J#7t-KeVl+^~Cm=Hl5W;0rkG!rm9`!X&ZZFas2W0ENr}r;; ztJ@LtWL@LD5^FYZaY0MRGjdS z4IjcaBG>gat`4ubo_=|Vp#5^;EIRh$uyuFr1)f5-96a{?J-I8(X>{A;*f?9p%#M*a zu?Zf)TzSZP(V8}Mzoo0G#V91wyw+sz%Sog~7nKNK#%8n*DW3fyBCOBg*-fPe zY%{9tcNeMxpR4} zX)6*g6n2M=UA#_O0f)_QQAy&2&H(ExJ(6uk)aVdQPOiS$NDdSH(zzzg& zBD6O2g%`$IxVNG=SK}L38q^!aQL{I6O>zw4xG7_|`hTVB|D@{wB>kV5+5hdBAVjfw zmEMS`=s5m{GC`6LCA863;SJ}s?QXG!YV_;GA4g`Sc4h;watnD%a1q)_46ZS%Df z5ybUC>&Sd9aQqh{Ug8V@H+BCO*nr!$06D^zVnWzfD#DPhSiEYDb_|_J1l!eEs5KU0 z%&Ik(bT!_DgHSn~*hsk}z8orGge_F===YBa#YlXXZd+}a>``>V`k7C{SJbX;$zgs4 zQ(mf1nQng|27y-?oL3-3KiXD8gm8N}Tk0&Q%R3ykRBP4Qy%23}SKU;sZftF^)~YmB zj=Rqu88k29 zt$Vb7| z>!z8uXFkaFrHu!Z@)gB^*T`1L7Y<)4^>PSQ?Ri|-sTmd&me{G^V2_q&)i=1>zaz^j zxkv2Lk}Oxd%!D4nSkoT8hFc*o^jb&vS;3kv(w>^uL`ID`tuc&u@C_ykOFfp^_L)Uq zQbj^Huk~_gkj>mD* z7O{1lDD8|3<|gI7eSbFfT)_X&@SlFlzl;p_n=LbwUke3@;HBEzfQ-bg-|0Z}b_*6A z`Vj&cl9EZRJ}L^fFCyNWBm!{mp_pjr$|!?T2LW{dgB*{>;GYF{S4$8@%a{|~U^wum z-%|4$)(4p_9?(e8xMU~aVJr51DLCj;Hg5Q*7o%b9DDjS=+LWUkTTkWlNwz+FP+U z{NywUPuw9=U8jOTD$j7x_~w$Sl*y6h#3S<1?ur&9vC=F3z-w1sY+vcR@ZCOJ^bEjl_evckMn9|Q<1K6L}`_)^iC0i zU^84At$voJDfYi@sGwCARpj^vlEa@pGCkxc1fuv4P3l zkoDW!Ui0XlD>Wj>*ROT$-5pFm$@+k$&^%YmbM;JfUg_Ffy_QMqTg9Zw;15z&a&hwE z`1yWq)(5z<@oCmadT#WVGF$W($|A*K!}ph$%T7&HY~C_8a)sS8g6!xf!RWr0DC|U-Xq;Vw0kN2PQSXf`+;MdCebAhvx;lF67_0>x4OBM7EH%>N?)pQR>DmjsA> zzySi+!A|sudS@iN1pF5@UAaaoi)BRf2+)So84`giS1` z5TlZELw*>rKjnI#ZqJcNnqman3D~dn| z6|0WDJyfwOt>XWuud3v$s{e0a9eaCPG^yP8O`$sINkTp96=j0&#M`;FvW%d&C`$Cd zmm`_=_v(b!snMkbr7Vj~w3_j({mc(OMIg!H;lS%3n=F~BabktcT7VCL@Reo5x4xcL zS=(r>tN}Q3OY^RVz^}hgE71rL>4Mw!4r+N|0G&99XB4 zrMh}<0(|h1H3eT`=${Z0 zJlhbr00PHg%8wwxqlAf)f>)fhoZ$NU?M+mnJgSzeDm=!ke-z9A86G1rfkKPm^Metj z1gn0EJ#aN0msl1IU9851;{kNvM@%2EOFiR|BuD=&;b{W-TE#8)Hr;f?O*fzE zCfgii(_stRf;c|h9*3h$=Ge143!6pzK+#Ix|8?#=AB6&Y-uLw<&7G5TpU>-D=lZ^K zB|VIA&&xzD?zJxq&u=iWOLnX_at$CXKDuy&k z`+GRton}JKY^`iYj3_z<`dcq!bu08@?3T3O`KgeIE|{`VfIR3F7>tV(<^I;xA{Mds^?oatu!erdnKaR=PHdjoz1bL%9hVPr;ebw7i_UG4_CTrd=FDd@rV*O9}DfRy=PPN^G2K7hHZ0GF^ES2nyY;~YWF^{Qsu@im32cWZ|lt{)Hn;dXCsaNjG^C3pXq<_zzbD7Fa~RNgTpAwfcha;08c!It(m`XRS_8j>ItFOC zb{#*~hRbB?F8>(nd|83d6X|uxtV67)wrx#gT94XWMk1D$KVw#twt|)CB08$Lb}Ub< zGjf~8V2^E^F}h{Mj4`XT{nmvsOK9uR`vyli^Kx9r<%p}=B1#t3r{P@<3;9Hyr-!do zt55igP!kK6)aq}%uc)zHsIhO72~5wGUuyNAq>78AxNpBI{${H9YAJrtC|;c^en5&h z8^sN&;t!EAN)>lVakEi;L8=(Hg}A=VD7L4H$4K!FM)CjrIXRuD zq><@H@t;%0NCx8i1f#eoRXixgBaPzqsp2!Bp!JXGi#2&FRXkaWdyV1;Q^i+H@ta2R zmr}(qOYu*Q;u}-N64gQfmQg%2Rs6gZw;IKhC?+0h;4J@HeoonLKM#yBuEFxv6h%hU=DjA~vc*#*_?eMx1HvQSrE{fCM`W<7Hx0ai4t>b6I zqdY2V$h4Y2keUsmve!MTa$sd>oru`+tm?_g;D|%iTVr>G1{_Ua4h=Y4zJNR}cw1Tv zx0-$B7_Uz^JQ8}!tfIk>smMd-T&^^0_Vy~k7;V%f3b^zjtOvm{f<#;z6v|mdZQD?+ zqzq~x4sgXfh8?(L!(1yivpD=?4t{Lw`5u)>%(1Ccvl@Qgl7DPLWtu&>NWo+mTAN9) z&{hY3-r;eHX8w8}XDG>ebD`tW?Mxg;PuqTlBy0h3Gjh6ZxF zJ>w^>zB4qC-F#+9&j{312Ci4pV6UnS2KkK`RY}D~wlB<% zdMV>IR}A(3`0Q90e=V_B`8zW9OG%eI0mySaDonM1h6*YM~ipR;!FJ7 z#J_j=$4+D*FU!od@R607m6esyN=o9mg3z+b8Sq<$prxba?id~KshI5Kl~@jRjVqiJ znm;+4h~5QSF1}nu2`BtywXj51)Jx_gQh}CS>Saj`@i_!cwVFSWbz(~EYO6hH@0ew6 zubA2~E4#g7nvq8?;h<5DO(MgPBmtdeV(RA%S4`(U3EsO9al?%G?Sko&VYlW*JrDR0z9N^cmr=?SiFX94FS+ z`E!a7FGb7}9CSQJ5HMnRqYlp~>NY|FRtA~{X*t@?1yNQK$67K2!#d-{g9i^;j5(aF zKxuc=2nm5F@#ga+!d*^}#l;pT)GUQOk;oaVwVDFQua;XeeR#J^cXa*35!#;_`XJM? zV_A5fwRCgvH(gOj=r5W0t*np!Ts7cwY~VF~>o$~GE%^LuT^A~&wh!X`oVS_0HGHcX+Mnu=Y~@v0j~n}=`VQYBP_usp}qL zSS!?>uugTg`mR*P60hCS_5?o>+Z(v>2R(#tTd4Dz(CAqEE-Nfv9DX*(+>_NvssGys>doWkFjLir|oKOUxf`K_Tu-M8?goBqi9Z=)zhADQP< z$Q;NAjw!lK$7A;c1Dr#F1f2)2=?u>0Ciw`=<7A365kMo?W0kE4Tk`wtWAC+xt8L*G zc4Pg~aNK7nYna}Qij9?D`!`;Rudv6NVy)hw3Q4EpbuLp-=w4Q|3LB3HtYksw-(2f5 zj_fiH=;2+LZY8RxW9{?O(8}z>Ek)P$swF?4q<$B74OiN!olu6w^%u#qJmdi z^&}2*;vNQsRKDjoTqon zf&5{$I*>U%IdYQaL^hpE>`#wVVJdg;Ew+7&CH&_}adSePYg!VSHv=G790&Rk*E=5j zHH++MtLJYK9?$#f2gutf9|5@&e##FK5As-$6T1}$>YC9UgD9Om^Pt~>hF3)SBvurM zwi3v>wm#l>Y~UKTL?;MtZ5GgVynch#@j7NNFO$`NS$KsN({O8mI|B$T-5SVWhPBeN zBfAoicqsu;ewN8dAQ8#PGiDhSZ zpo#TkK=DxwGB|YPbF8vQmHQ_E3sJKSaF`_^^*T80^=(fbIjZek#~C%T3~D7W{{z+?}vM}@>r9Z9)h2m~NF$y|=7 z)N-t@tdkqHBzex&G!ioQB)#+~4#{GgM#_Yoo($Ook+_RK37oAjnE+4db^7!g9(;QK zbTWf@3w`=ySk=eg6FQ~Fz@KtE&Lfr0f4~_krABE82r)3wE^HC^AIQ9dI zl?=pvzAEI@#vYS)R86CzoI9aD{=d!f$GK=>yHgu|_8RMtA$#Imb0aJ6ByZ~{_G zf;x2Y21Kvy#?lf@ZH;{;G0-3?Q`uOjzIOZ|)Nj@+BvfE9_t)Y@feZ-4Np=}0YIp4GJobp7B}1THfyuoBCdE~@ z;`O)O;eN~73-7o)nYW#P%-1uQ4)DC(lhzkfWcS@d#`?t&5xj7R{6N{(Lgi9^mb>n1RuDD#l#O>4Dt^-W=%N)7pa6>OZ3(&2jKGivDQSA z5*xcOd(~CJX6Shxp^9CaS%QhiqJ8!DMSK@y8j!lM;$qx@Wk5;2tGS#2hh|Lh8l$=3 z`2;qvA5aDkjg=oEZw%7>s;0hZ&$dOqckk~#Z!!WO89`?7m%Z7mCSl|I z6RdP|jPa{g2wp_*;}TeKlWVkfSUu)L+e|&?&;UnO#_f}08zm}=qwP5sRLgHaXvNr zf3ckjrdG{}<`GZG0to|)Y{+0>MP?>Uz)~nOvV~wsHdLAISj+92#|zB??9VLA;WXt*$o?bxY?9M3Xx!3CW;gs zW`(ax3}gobfoG0wHV_+HWD#t^4x2W2C0j%k?bQF=r9{zZOju=|u!<-gPSWspm)YfF z=`@_$<*re2lVi>fQgzqbLY3A`=#BQuA=%&^8_KOn&aFQE{J&rdl?W`5EG-_k^zOSq zN!As)yV;6Uo_+jr>EFV(FlD-dz#Y=d7SeNTh2NRQLtt8EU|eNjEE0b=Q!Y*2+VT~azBKl0}=f}0$V!N_n8{f56n_&?1jw~*Yym4REhg*Zwnq*1!V zvGyYhX7aDqvG(tLgwH-Hvt(HIz$^te56dh;1aT`MK>9V2dGXZPirKv4vSTkD*< zvENe#8s{+Ig~WM7@K>2t^&fagY6+q9Q%Z%e?s;!NjBf0EMVkY+flM83v!LZp#o`Lh zXt2093NeUWiF7~K$X89V{B!yXa|h$m>-p`-d->hkACK$_UuPo@NVG(%8>}mx?ptV! zevXn9y`^MzwZ-ogqi@beM2sg7i!3O-Xfu%s`DBs5E+2urS!BZ^!Nkm^Zw0Sb6AWHC z6k>+4nL3y40hmp8ON^&PCsw+-DQES_(zjORFzn5&QjOafcdVB|r>}V6nPsJ$pKQ*e z4&0Tj#45 zUrhQLr;&?Dgb_ZPLUJ2esP;)@eC*SO!_L>S_FR58wkek--hn*30#2iz3Fb5J;#)J=+TQ+a=aiXb-Nh8id*~!qIy{5e14GHZO zqTlh@o9v#W4K=0`Ro$zE&L!+6M;KkEO$CW=I+N^AosBB&(wMb}SLZeHbwxI2PI47J zWs+fX_OLNVTGiR2s^%eKh3I~!Yp&L%D5xi?(TbFl7=S|Vgr$o{(8AioEtayF)$vSc zC3H$GK!A_;>i0A0n*Bw9+1i9AgDgz)3(lG2BHY zuUW1w6dm!11TQ1FRhwnSvdZIb%#Xds#Z?N%?@#>rVtnFn=SZI(7onc(3k22N%WHgJ zMr^P80(FlpF-lZ{U?8!65bFXP6%^_MFWFU~3rgRU*9030(C~eqd>3>n!{HH222%|X z73q+acw9t{nrD@!uw$yWk(hLrmAs45zsa_9DbyF>iKGptSk#Us%1lKt5j&U><-{vf zz+fJM|8h4z>);BoGVwCBt-QVaUsyl53}cI5eEpNScn@I*z-mON2x*`^u)rhP`X#?K z%#z+g+kl0Sm?dRh$wicw-5YNR$ux6q2BM~sazeVS9&N-3INi|3DRYWDH3k$-pd?@si!H^-{&HE0 zIZc(izL+Y7i?Er$V7^k1e^J6}e&{db9_1a=o<3SbkOkF~@F4m$_Hq#caMv9DPx1gX zW^XK+$_m2CkmVbr{+^6WM`UIU;ZB4vv1tyi>#l9{;X$6-^c*UzBggLQe31rhv$hXF5~krgPIkr{B$umoH) zastj7BZ=Xd9k5|tYbIPy2rM)euB76}kZd_mFmEI-hTVT;jhtoUd1Gc7nLra9BPNRb zve*3{p=}{?=`bNo*$J~%%G<)Qo_-TWg0Eo}&FEiTua26yI(Bdvm9z!-6>)b=NLwbc zj4qV2xq8>n5q66_X0)FWKUAyJ_pAd*@FB+DKoaDRRQa%dHp1vjqP8LO584LaeByC+=Vo?iSYs}2H2#4$BQ9kP+KcP)$}km6usXNb+a4lOhr)Q!=d3e|!Bgg2NDi!Xnwi?5{uhPOv$V znHd18)AKoJtYD6~?Z&R|n6t2YXfwQ&db>02ZJE!z5hOs(5Xj>88_yKLMBY~oJ-#1% zF>%gw5_ekAw|7AQ!Fi&v8E8j>msm3_fChApa&mjMtp!I(qhG#E<&qzTbjlLQW!mlT z*mAyP2bRgti;)8YpyeI3<8`%X&aelu1ty>>nn=5rDe;6=$IY&xo8VKX)U2DN3bsyS z8&u#C3Fu+dkKH6{CQO^e2vYVZBS&(*+#=J#=lrX<~z2NMRE~CqZOL$?$bG4jCuR zRlFCh8Xni~7T4HnREzpEHO5M~9glRXl^E1-87m+pX(rMaWl*oAe8#cBeXY%|?7)|} zH}%Wa90J$jCD5J=h%DlgRPZ78jV6e=o5u{DlrQF$YGrmTH!iNs)^d(@;isYHV22-b zr@+Of??nD4%Er9zTpXCy`ivdgRPxCGy;fGp-F)`Yqt082wK4KrCDsP?E0)zxDBTTqe*DL9_7vw z-YDKJ%Bkga?N-ZO0%VbeA(8)4+GQcnrBNo%LQ3+-gs%(j$-G|`_m!9kmBn2!v5@Na zJ>|u4a6#f?xFh{y5OuQtL$`v^iSqnyc^(;1n(9a8c{Ijlls_oXqqv#W{Q%aRb`qHS zj~ls0{_VRX?WDOlY1|t`8w-z@ljg?l_X=~=*yxFp@Pv^cJX?(%gyYut^Q;ig3yc7S z!>w_4W{h*}*56G0^rHI7Fbrs~Kbtcy{oqUfyDDRO=t$I%Cv+4tIvOXftxUAG^z(8V z1V^wESt>DhqP;A=In`chxb}*T_P}j!{d0--97cNvZflxee|8-TkZO_z=F&ua4!I8N z&!(jE!dv>{@oe$*@i{i+D53j5w;3+{gU!>2?u+_0zJROHk#?KQJ)St?gj`bS&%_n~ z8v1?`SG-CavEAviA|uJY(j-V2UUu)&y-)}_FcSvVaV7}O5;0JRN&uGV}=vUKk3U6n9EB)lAp5Ez3=A$X@I4ls!UcX!e%ztERo{lo17AnTS0dhsdWx@~xcEw7o1YpB6O*sRyZN5+ zwO76p2Iq0(>+j?%mh0+WV{{cnK1)10abd&GM-33Q2CO8BX#yZx{FcLgEvnuCwVxVjI>cvsu-)~ z3{0CbCU6OU^%t>nc*#M%#{+j!6+|Z>9jm8pghE=)pmv?LY_}epB~hG>uL1a)*wnQMcFou>KswE&>T2iPzpUS^9S}Wa(OI%m@TB}<9lv5S84bMFX*|Ev!vqOI> zU#@XyJKG6?oym>PcI6}}hXHk1(j5n}C!sorM{G=l?gf4owLl_4=*~D4Zo9j5yQ8g> zHPGMup)wgFTa&B^?iBTI{b!UR|Nc@!pfQ?q{b>p-k$41W^34d%0;a%XOz6jcBgK`m zVG^cLvKXq3x)owe)o3~&WDz)zm*XC{KA+ZTtm)|vPkaV`1?}U*<6;*x!|LiX-!Qzu zj`Myd z@Fi{Xa+smh1BG0;)?v=zb@M)nN0Ia+6eK{EEaE~DJhqPuURJHY!H>{5W2*H4vQ>zX z+}9P#JBKuQ#!rrFeUb4~_UnRITR*i2&sCA0Mrl1=1GY7PkJEN+q(n3GpRtr6-lE?p zj40+N}p1NOzEqmW$lAkfrLZr3Ym092OfgXc5>|rn+3AWm%FV${cdYI zgBlUy{pkPsch*2LCB%j$rP=m`gDXH;Qa{kl4BaO%BdtX0A)`HuV4&XwJ92ue_b|+- z>`y^cSvpCl#3AcPsfnCS9I|~bM|oV5-2L|`TH;GZ9##JC?T=(+BqQXmKwNi1gk0q^ zE|-Q=o8MID&(L36$J&r3dQJfanj5P0$5O)AGOORRsKmxOl(f18Ep2v1Zm^P&GQPr! z4MKIK(yCADQDztHSvHXXV&^3-$HCLi(7#$G1>+!IRr;*&%Sswl-%t-s7+w|n*2rir zfsN<~p#=a`yLA*lxcxBqNIcngmU10c4(&wM40s)ROzq8<4EFK0sWjO zo1P`2d6lp1kl;AgI2*hByR=0^bFC#}TW&;NFdCEdNPdBc=NK(X_+bo5X-%(FDS3>x zMEDYFac4C)m@Q`MtEELX8r3d3CY#aBXEcFBCbA;4nXjNDRvUR|sM(f<<${qr29DC9Xmz%ASZK6snL_hA?D)eRcZnw-5qLzyfB95Y&XM%VZOM z`p*$I#)y%RCwV+GNSy0_{cbMlMMSn!U;FeW#@El(*8%+o`MP#*^LS%C27!?dS&XF} zGFKT>Z5tvIg=R>cqvFmwAM_E(i};_q{}~p=I8l(VeVAAcxeE%6cn%gMfd*4jChiDg z_2dk#c4u<3XsYopP9s}3PTIObyhhn^HZF9hodtHLcAW(Vx}DYfXoP??$w|CjqQ3ExJ)=U5Z#JD`t3R)=cWnSsPhoOMhhEphmr(oqE+F-Jvq4LO{m&J%aH8=A;9 z&+?%L(u7NC3%6#lBgim zX_aG)yI`&Ee1rD{R?d~9=^YFeW=L=jPBZGU0rG|KZ62GBS4M|EY^@_G8u7{=edZ)P ze`CsEf!jND=SImS>k_OQ_PnIhVnNi$ePsw#Mlgr6u;-N+Q9xc1^_pxfkx9P8s6eu6 zin7&V&w72TS(w1Q)^J|zi(2zb{_zp-Youad56Z36Yu*=}yOAB4EYUjS!B<2l7C&WzX1GjzLK>AnX12U|_N@Dn>T5@4tqv!@LO}v5Xv?k zg(=xkfKvKv*MkY;27Rws6Wn&X zrd+9})O+47XBr+D zv+ox!&Nxh|HJ8H^6*H*h+n<6KdV_sYjlxro1&7}REXZS>-nm?@5EpA|g`TCg*sN2v z^Xk34OokEB)Df8R0izKVE2&0&G?F|3ix$N$Wc=CaRnt-3m;~)GAh_-~-x8coP@91i zh7){s;>i$ueXiov$v7Z~;D3KI`ctbRk9GRb?^CNWm-{pcFMt1)+8H)Rx!9;kDQi2K z+M{o-OnWIw71_ph?y9dr;c5s19j~1 zz!PL_0MKh2=n`qmsk{6`s!Mrf|L;{Z9yg@RKqT4hKAMeHpK2PfuA-q7EPTai@RIZf zaW0t-;hSuxc$^!hQdG*=n{)nY2qIG z4-h*7Duqg?s_P5>qj% z5IH2yNaCvtnSPg>jBUhUa)!woIAl$+OOjMACi%yr4#52=rUz+J zpMK%jnXO3$8keWKo@`N3N5fqSW92=VBn}UMjp~ZE@mp>x8I!onqV#X@Cv1no+@x3~ z_Q$6G5px?;mV)J+@HZBY0t8Ez{(Wf^g0svzgr}v4 zR!@z1`;bY;tE#Ib*I#k0s0(_&KQjB?V+JP)$70ieUQP0Lk$g30$Hv3mi7FjQeqZEz z(%cxkh1%2=Cgijm4R~NQ5=_~xe*GtpvRfjgC_HYvoI>ItI2jO1^#CxH5LBc?uEJ^w z(2a|IM6)oLWUeC&z25maGsL=QZhZZ_k#L6pAG-tJXk{8otq<2!*wz1Mg~ zf6Oiz+SsX&B|-Wf44T23Xg5bHtzlG_)d1-_U+wD(qN^21%er_cF#-YVr5eG--|zO= zbBT>DDV^a!g?*H47HXqDkM>F1Q~G|>l`@8fY7BvFn3ouIeIM)!E1~!7rP5Y^*1{ss zfMx6MqsG#Pr=xF;mo%Fzx|k8d5fXiTbV>7otnz?9N6JdyZ=P`6B4Y@tgbXY+tK9On z6OM#|9-#i6ngwfRLOXy;2(LY_sg~W=mpsP&3@iZwy|9G17zUOgx1GdK6zZxrX1={OtodwM``cBfE~I?qRC^O zev$G1SK2-K3>X^yZ3Tvc__RUU{Whdp$aId%W*Ri2SrWqGXAE&jAsEZ2pF}?Re-4Suk zPGU-*z69uuSg$D}^3s;w1D4L%C7gaM{ia9Qo#9Zquz8?zvf3(K4g_ZE zmq_I_M6QI7&R9UZS0o?`iwklvu{h_&&WVM|KbVjmpFt)X9|uB_g|}EUxct>wcSt-q z1Et=CKL;X<0TEfG-G9zdtW|PmDTMkTAOz+)U_haPjq(vi$*BS#^&@mSSgY^Fo0Ve@ zEB+m|HyQ{Blq8q$!ztzvX`e8|tUD4Pa%u^F5Fvm_HD+qe*Ax~FfrBdnU20VufFSaL ze%&dRQ+}``uB3jOv2s~Bx5VQlwJrU72MJKNl{PR{UUO8{pUT4PV9KIyvUknpB?cLp zF-Po;0Ri%+A)OeIux62hS!SFKlS`BkPlFM=+HWP=SuAYtP~4&Nm7lQsgZk^?ldQhT zI$7LmL``r3vbvd~z``1@#cJ&Ius06j$G=mcr6$8HjuBNcJ*T?{~Z$ z>{kmj!GZqZxnDnM66@EA)?|Fcmi@W1-UB8M41x!3Bp?X5Id4Y z{b_suSqdLsvi0^Seso%zrPlj($5!l6>TZA^cfwk{1(i`fMt7RcI7e6 ztMkQPbgXEgE@CbB>1UY3E6j-4uaGcWNpZ&a~$=j?$80#g*-U{&6q+J1HWGM z2*OD$Neu542@WesGlWoa;5 zs?~qxBk+va+n+>_Stko{E)9voaH!l?sclmmXUuz0=6$2mQ406ZwJMu_s>Xi{GiGQb zkE5(<8jTBvM3usjD`tFIa2Dr!$J%yYsuU?Q&2et0nLX_h zjw!!uKLm|ko1JNu9w85io0sUX=@z3ed_ThWtPTR7uCS|Zgg_)hGg1zeWJXGw1P}_T zsBTr8z6aAsgK9e`HikS#(I(NCCZJmphQl)33EFTa#+3ljFfb~SgzXT(Y7ymVpc5P{ zndNT0o*~H;=dWQg(X{l*jWWC4O0IivzcINT$;o|QlpIsp&|~BlnjIGkXpqcU z%U}6l4E5~?(}&t|gH>B1EPcm(qG_V=t8K?VX6QN@{5I5wO<#}wBWOSNWIFyxDm^7F zQ5LzH?QEjZMk`vG8uvWf%DEuwo0vJ!l9I*ziF(}D)?fv<^#XmiR5w(|@&>wWBt*VQ zbDwa2k%c;_KwBrPr!aQon z*>^&7oN2VtOqdK;Xu36+RlFB$A+!iA0w;SW{le@PcZN_!iM^}DaLpDOtEAW33(h)T zeMYZJS^dQ|!=8OmR!U76x>K?aDjlIHikzZl*I(pCh(U*F?H;g3f(OMF2lSA0OcXh{r$(yq6>ACD&;n^fw`<7*TW zV&&8|Vg&v;b&ap@J6(;>PTR}ZKR8_*ubsA+6{j8PH7L+dJ(o96TjRHXKV2JJ{&Bh* z(bLwr1P=GqBfXcf#iy?E3IU`~U1KUzwo})*7=h`jYjhAI`_wh+a9%uhjpt8WV>NmF zPTfX1L4QtNBTBC8Q`cxEBipHKoH=m18l|VL(RkV#Pai#9FZJZ=JoQMwh_z{24XnoW zby!#@?ZsxTg3G{FG3CW5PDzFuKV>iW$o&SIheb2(#qO7q6jPkA7i&;VnaDU6B`O&7 zd*FQu=B$j#5@FRLlcDFe#a2v4u`JVnh6OD52Xd9un3WxTK<>8$6PA8Y6%c<9N|r2u zB8&Cg7Zx8zBHJGhaw{LuyT8hq4axTixvSDIsu5YVNrs3TX9sDyXIbS!x@uRTG7{{^ zbj%V79*~O@;kTtq#J%?R8YS^HXkCNE;I^;R?-R>Q6%Fh=+$7L6B1VCvL4s(=c*(gV zdi9hx+Z6g5GFtOX!_6tht~}Q1D{7QH@;tD*qIH~%MG-gnE`GR?cpPWa=x}1nVVi#> zCGM2RI^A`O=Dok6dDLqEe)9#X(aU3<{!5%;P?n!N-01)LDqgHN{o6y=Q$v@>I(?DR z_N3w3{=sjd@g%w$B7M2>5vhuz80pQ}^oxD85&|kg^y6O@5ugf|mQF1jp&b=y=>l2; zSHZy^&we3<^t)Fo+EOT3LsN#RtUo2)y@{<6cw&wTvA?NMR-0&(-l0fMo%gGQOe>}I zyuVs4o%I(d751l$AzocS zJpsN#rXw6^+Z(u|_j2)3uBz%CwI2}ya*H7fYf0^qO-bxr6|50fSV)!Fyxz;DcJC;8 z7n@w9JtR3a>2)Zf{XVhdP7vx+?)2x>>C?;sH07oCsvv!@917|O)n@&5rn<2A6}XK|ZEKHboxyKBr&|IH#;}W2`hx0q&&G&nU1FcA zMK`)J9_-YkBV^R2pE@2H3uYHBoM#;}Nbf5s>$3&dd!Gw?H2I7 zY>T$?rUdKswPOR=dRR2Aj6&+E#u`E!{4X~0yeSnKYshti05^*GTSAW?D`(hldZUrw%0%1UjIzE z`R#D?0o`|*%whW^@v7fGDP}q5+1}yVZU9)j2M3|o+da=POmLF1)Nf<|?RgTjA9F$z z&4D%DWW>68fnOOFoxbh!vjClXt~szKtf^lTYgvWN7|<&UFb?>tr9s{?s{cOMm}%1p z&GSmwUHYl$emfJgBk?l=#9tCKH^zWm=D`&LDT4yRlJQkX4>pw5B4`mYpaEJ#$%DVP z%0j!#fY(1L7nlR#`aOc_(Cdh@rtCh(&1M7CKDe~kBl+X@6o;@NwjY{|>&C`qHc157~N7v(n`l;at=i2FShLLdw;yqs-N>3;MR<#4HgwsvGjG-`IJ<;8U36@fN8Nt z=kS_VL6FAL!R)7sHt!xlsEJ^+Uksyh{`ezA1-^W+{r$l#>|s59VleI)9ck`=k(Mco zuZfG6rZGP?5kY9tKBi$BIcy=q&AfY1$k*wIzAO@fgGNSd71Ac!qbl}tz=+pXB|1bK zZaOo^qGZA5gH1pmKuZTSTck!`z_1R=?1FvRN|QTV)j%-E0o0iwzp5F2=Mi~FXOc47 z;H|rL$pdmd3QLb3Lya~-lI;_e8j0mY+b*+50j&QKn$1|jy2xzaCY%qusk->fb?FLV zWcy)UPY$Sd#g5w+u0K#xe^8XB2lWe?Hg+h3ILi>54S?9g*{GJe?gzum?cg|Dq~k+r z@uW7Y<{n^3oDYiPLs?QlkF z{b!#Y6(voif=H^3wupC+oV!OBCSkt^*uUXRV&EeOSU+@^3TPlvXYQnN6;lR>xy)2N zgURv6*)$(-EUSt)&QJ|bk2hWxZ=71?*f4)eRs0Ix{qSZEyLXTNUv+e(9AuJV1?v2> z7ZrC-P}xUcx8YCs@rz5N&xO;qPM}$r#Hq;)-Ra7xi`2Lf0XhvN754>{NW2hA0{aQ9 zKb`tVi|IssdGf@ZWweC6LCvau&o!go$QV*G_e_<*Phu;@eQvE!zDcxKoC4AMaU_LJ zHpfe`RiA?d8E`cN7Hjcp5?{^~SHO&xE8!4YKQ*HYZ^5BZvnvk}W!piTG5Y=&l?+tC>C9UpV3`N90Tmut+Lpi*QNt$2$%^IbNAEJ@7&*j3Qt-|gKoz|b z!h-v`eBaa2>s?7&QY}*(53jcG#))qJIr*pJ>-(lC1(j^;R(*f>r*VwK8_@*@-xfyT z8ZFm+XU!JDEb^wd(|nh_k@C`uycC1?5SgkBAij&#8cq)a{E?HP*$s83UO067ApZji{Unf+Ar*GBW z+DviqP_`7dj=2jh-Tus{lrW)avp;k9K)d%3n4y5Ax%XX~bqx@K(lYGX6aS+b_6Yo) zc-|w6IL`A4c94Nd&5%Q`GVV8`zy)3NOM(Ymo~oArXriH9ZbiYs?2s5QS~sGny_0Bm zxLzJu5UJVEzh3?wEnavvlIuo_0*EYgS{%o1lJ(TJD}$| z@!zag-cd!OPY{(s!qRQPkl|l0EBUM2%_QtaoP^liSRAVFIz_)jX<8z5pc%R zGM2cW0a&NPwCurHwTLpe0QX6;iRxz%xLp_UL4+4+heTU;z)Z#_wzUKk(r?F2%-jmh z#h7?JI8nB@A@E;H<*#O=Haan-=?lAnj?ReO3B7yhZX_@H2a3glasaxU(du5$97|x7C(W zR+_UMCc+@_%s7Nfg@oM<=53)8Be*+ZX9pVR8xl?^Ly4nRa{*+XyW@t1X!v}-cCSrb zI+e^a5rr)!s=dD zTijWEcGp1z(GRrDTKU&_O-0SKZp-#1{i~osAG2VzF zfrb^7e7uy^i32B)dr3IChFM%jrbFU}S`d7a65MM<$R=O!qX$rI0BNb6m#00dph=ru6;9fnmV8G2JO@M}Uc{b85<5PGi~yMdMiYHnCaIm>jbGB52fq}bG66%`O!9BF&cL4c zdNdyvrZrz&R&AD@`kWG3w0;(CA@`bih>E#Rht+~X0H>neIuh<~8RrUaFn1Eq+!xEj zH|I_c^^j~jOu0pNwr!;-Etk<}(%TqY|H zwh5kO_>*ekU5SN%P!?WH@oXi+WV#k_aiB0epvCfU5nTH04~wc{ZXO5i8*`rBs-t!c*^Pn(B%3zw^kBsIYG zDv<+?wYwF3Yk^Yfn1>+Kdr(LM>=dg&_*g|k9UvSBFZBE4b^OPR`ZtjY8m~?gI2X*& zKZT2i=tsDu*ve4KLF;nqw6Ty|xw8Rzpf<%fv98+^Jc@A6Lm-%#{dI5Ri(`5@S=Kihj$Zs<`0sX1y;*4SkYPx2F0^pNrE z+5B3IwPlsB;g0H-W_`gvgbV|iT4up4!hc(Ydsi%Xg6%ISj4vFvc2*tY<;}~pv`^~d z_el<)0$nt5vRqfIr81Rqp}7-bxe*hE%UzO*wA>ypcZSQ|;qro>OgoTk?qecrk#N7upgPh`Ll&v&>h+rDJ=R& zhKN+gu0J45ZUtOaa9p*C^ukN*`ePI?3NLXcaEwh732 zMrW$8FG*i@20MLXPZu87lilp8AH^GclipM4;LSr+I${(jA}9ZBR3Z`2#yXBfxcRwo z^DFu{c{|+v5)I%a(7gUd&4PlCDXfnNUxM9sNvh=aP1k4^e`dt{3QUD>s!=pW^Sl-& zWSd9yAL?Fyi2I6x2l*(B;(a=sEyclbD*RGc`{~^ty*JFZ8ceu10!TWxe}u{9S;MvWySkE~g z5uQy*Y3L}HU<^E?9E{3$$YVkX=-}oF<*kWgt)Y|3A9iJMoDi+IV=nNWqg_4iU>m?1xxU<|yi~ zGa5Q!uNp+SC;G2Kj@L%{^1pcJAi!e2ldzy*w$<9r6J51+V0L%d5_!P2NkC03AA4pA zfM)c}nw+aX>@I;D1R(aM;aSclJ+r1*Rk`&nK8iaRr`!Y8%^@wiw4*&0ld;Ip&~kYX zG{9W#;hdfd)mTr3%`Ht-OpyzMqrf3fzf;gXh|k^mkkJE18poUS>g`lzN+rz>*e+l{3o>HOVx5j+KI6Fb5emqa5U4qsHS1fdve-XARA_W%XU&!3K(-me4Ewl4H1w^y7r@}gtUxb=ZU^~$QAp9?W=h~7QchK2W zW|JB{WeOQ_KhL#=ZsC2x86YJP)0ePsde}Dwgi_p@lvkQEHg;0zMkGfDzsP~iLXiLo zH$HT=#nJYf?1*B)6*_q42ENXB`5YTaYi#6%v>+QSp3m5GsgV@k+$P{7;(Y@OJ~d;x z4mQozuEg6;FtP+ZfZ!rHm~%lxhLcMQPe-*IaA?p{F2;hRxHHpcIV39Lozuw`OlGxZ z;T-wu*61)W!l(bmD+Jhh;{_SKQevCes>yw&@?OZ=)!-CRv@3A&b%8Ul3l<~a7IGzv z!RkK;3CAXwC5RL4`VDd}k@`vhbFnfIL;`OI?91{iv5o$i z90Cb5fW5$=Tpy5FT;+mIg@hchX3#sJa&`{tlBX)h5pim&l((csOd_i-_-C~JNO6n4ZhPfKu z(1qkvi9lO@vi-+v-$jl$T1;!XlCXU!x5x4X;DNv_1**y0NyRZxUdnaaQ5bM;!D;Ey zqLu07RYpAIjmmv=YhyN%jbnLhw*_;1t`%k&R8kAEQ-i^fDS%OETYTt~wr5th(GuMt<5H>CK4Qm|PqoTGXA4gOrM# zuN_inti){f&)2C|$MUKR8y&6ITDqIa&uDLY=vOCvdvor$6dvF=_@wZ=m2AjCc>0)*KAxM{4>?H#gczBd9q^P*yr7@K2SPYneo=QOXZc3 z$-d$&eet$ACD%{1H`!O`@M&8vuBI$?s52hg9oKdVc7Cgv3R-tDWK7XpW4o8E?OeHd zIib%~zg26FssT<29lc|PJ#6JPSg2vw%%HAj=9jQ$Py zocYm17i2gdev!xJc6!O^`idj;jQpVUXQfwl?R@?ZD{x%PS~*dDJ&MksYc4~cdjUy=^jD9M&)(O=cg) z^Hnvjl@{`TXkOxlJ2nJKH}y`@M~)3Ot~$qtW@phSrALT7{^!+M+WRQfvbG#Ur8Z+y zqoq4*QfrBPW=?W!$Z~8Lv$SYS>E^pQ00idaX71}3#+`zI~N zPiqey*^1sR+D!##0QRqS9*vs>?qyI66}OWRGlnshw(^=k%Ej0HzjazH6v`B6A)$o`0Igvc@C zCW_S3gBXNM2}j&3^xzjoBxUKz-;Ly<+lu$U_DOI*5(8`a>bM0;XJ}4oy`3!;EYYIP1#_0@|$2&)gwVDDV z2#^mq%lwW)f2!swB+%gZK{Q0jABP4S{WsIL=}*e-OMBEn`5$ei1}D++a0e$%O|6d5 ziTYyE_R+zJaLumbcPu3A+LixS*t1+jqsQl9$WP(RL{i3(({Kg zHT#vhS})cQKK({%rcZi8ggup;_m2$L@r}+h#_B25cH`W^qEmzZD+(3Ki4A!oW%}J}5==ANNo67jmw0UfC$m(3p86|F|6->vZEKO&RW5OY zx#F}zt)?(M<3U84UZ-V8evhxJwob=GL?k<<-HjJ;5x5|jyH#%tn=5vrHao-}TPRL8 zKb2-_2-;e_Vlg%Z!=sQ#C={`-Q8o>Qk=c(UFd86$z~KrA8&n-Ekx$P&HXlOBI!va;v5V30$=TltGU5z&vZxi0A zE`C`^Kc5!?982GrnmufB#M-VgtE{-u*OBSor172^1RbIE%Lxy*m~dWa)Y>Z)r9A^WPPU9#ax~I5W7olICQb zXh~CJyHYaUdJ8pcC}RH_$*T`bNV5@^uKag7svdhjaYofJjGkpzRkzzx-Foerw$R-J z*3jKL7y|7)IKJNk(sP8|fT0PI;`yZkEgl#4N`>JZy_SMdb6;lT1PQK>C8_~izo6JG zkc#>b_^w#0bUe#;iFV6g1Q0+ra}7XK5+%zP-*{G5ZtGC21XtTpo=5(*j&eMF|EHsT zRJ-SJNBQV>&ykLD2bn-R%5h&h+EG5H-SbID`5En=Pdm!<+ezV3jx)k%9pz`XdyaLK zpG7F4jW1kZIDytlV;&JL zq10@#8VI#c-*+objxIhd+q9PDX+CGoC)NvkI#!Nao;wqp7(%l6^JBmDyJEjarn+74 zqZz`BFHZEB&{UDCyxEzB4BjRD-1y+F7_gLn>}XrZkW0on9(htemslN-JSKBUF?Mg1 z8>H-AWt^rhfzd{$s`iD}c5-qF1Chqt)pd*}BMRQ$q(g~S3TG0Wt-1-!EE(4%I)H@q z=pM7x{FAmC__1n?UQ|S$A*?n8GE}w8u|dU?v4yKhjZ>D5Vus*6ENkc%7fi473?_mq zB&i~UJQ4dP{I=1q6cf$L?f8``ymUE!)v2&d(gNXk3`{8a<<}@$drXJdZqB?iF>?iu z!bBwafwViaqe`+#TCeh1gZ7TO*;iF&2d(QfV_7HKHaZaiz#uxnxA{I!FO$j^^W+7v z(&gFm#|nkcrYaf73}X!y>vFL<#GO~GA-X!e`Lg<6M`ECAe^h$L)DVZB7mPb_6CA`< z{5{8pdDhad=3;RdGwff``(%qW))dc*jk+P8C3NMQYmqBha#-P|F$>9PL09mn=}R3l z;*~3fGqNSoIfE|-B27=`qQ~&qxd)Y`NuF}Q@0n;Cz3w3$?zk^LRWN-(BF#{;#ZhzX)ViCgAWg0B?Ev1}iV z+`LhZ$yx2wpFm-))I*>tF)DHDH_IqN;r%5w{VN^It)+b{5M~_AWbQGmN-V*2kbZ}$ zTPx~rn%xH9@rE7p$9r&2D2_=)f77?}4lM@u2vxBFG>2zripiE$CN!OCu$MNMv1%@8 zp@*{mn2fS-)y3}+&@yi`si_CT@Mn{cUmLT%W-~4|YqK4QiQVnDE=Bqfxi25Ev(@_a zXHm^FS|ixl!D{_WG6}D(crPgD_r`TbKJIT&$~`IX_-exh9m7VZ=74?&FN@%=zK>Kc(9x{rUlL|X_|#-IZ4bz1z`ESxw=NW7IpWzvlW$>!&6q^?@_#rxANVG# z>;I=s+6Ed(fL5zks9F#O9j>6QDX#oU+D(fowJnGRw<+s7w_!;NY751*nDikGH@C0b z)ai7a+uV0iimDt^bdr%R`0c2cAxzxTP%lQc!$cfYSMNuNLWx&QCE z=bU@a=hTTPW#kPbR*V`h*g1xJrmlIH!y%GOfuPyMtiA1CR$q_%P*Zw)rz}^gyg}ie zFF@8|vcU++ccB^!eq`%PnHb7hf2seX8L#guINVccn}sE@{$PgA%Hs zZ$cSfuAb3>RHMYGoEduyK6H1iOKtBFi7Q7WF3chKIk%p)z9I6?&kaq0LkOja$|PZ-ZE6J7xhjWGyWNKjb@6c1(%>m2 zSS^cpn=>+tabo`wDXK#MNEyN}#bt4`Cc_sS!zhU5)*fGzSB;9W;TOY8!Y2x-(my2C z`(vV>;Hfv8t@Upj8CTn!TZa%E-)a6yy{jVP&G6~3a(c|@Mi<3qKW~3s6yJ6op!#?| zzaSquvRc0hwh@5yb%NT4fG|5^BQcB(1AgaoD$MCb_9+WoXY+8{>WN+6^pxl-xo$W| zJ)fj(2T6S~t5#LA34>E_+Kk>xJ(t!kMYmk6+U1f)os($PJ&E)eNP}{c>Umq@Rl2I< z4(Q@1ED{67kDw`7Q1m^E<@kGVc^qBdG)wRPF0XCcJ4fF-^x>|wJJSyxrPk0--GBp& zWrr~Oz*m;;c`I!e&5c8M-T9gLY#2>Goo(qz4kMG|v1075KVTdas9y{3DrTt)V%L#z z)4TAQoda3Yzxr- zx6&TIA%V{}@6NDcTvNJXN-}NxsP7~I^B`usgG$kpT5fAi*CHqU^)z5L$Q1?erdw^ z{jd5>Lj#FS2k*fqf9nufmB&#HtxF^RmZb}dbc=L5tE%CW#Cl4lA6tZ@oWMc!xDCK* z-uj308&uR|Szps4#ReU?iayr=NF!C^aazWH9nRfISb!8VWZ^J}b%c%o9&-AgEGYd} zm3b_M84+;CXWJZns+1oi#*1fez|?$50Cq4UI&RQD>nk-<`#Y|PJ0-tpZ0pUVwsqy2 zys!x7DP5Q+<=qfGIc@#R^q_O={?tzEYr&6*dvLnRB{V#paE{ZWT&6V3WlA(H^%Z;@ zf!&+Ov~Bk|sc`Vrn5MDYWrqt!$3(|ywg-hC795V0J4~b}{S@q@Nnn3Ssf_!}(W>Uk z;HeYq$G)h(>>LxF7_mJl^2;+ay=U}jMPy-kM#?k}s?LB$Hx=;tOZ(pk-}u}eXzo0* zcF*ZVWk`7u%aet!!f*x7RRr~tg?QjiMu-l&wj zODIMTM3DDad;a9VfL-=a>|*sP>|%KPB3D_FZ_R}7lUaMIN;pdrMw)f8Cs_HDq%R%= zw}a03gWB3u_RsJY>d6xrxqFTT#$#3NL2vM!^S%yrNs$GH?)`CK^*GapGh&ky2V&jI zt7N^k)W}kJuVA`<|h1<#Kg^7XSc$qgs2V+jCI5T#tZOgpfOl=9WK4 zgJ^Cf@OZfVxoA4Iiv;d3I1u*q6jdE*EQFz2U7&)irCU!1s}3Ue${Eg#lfl}97Ic2i z2T_l7$0ng8v7w=yA1*)Wt~%1tQ}2oedgwrWPcZ{%_v}R;Y4`kz?N56pv>;9Y_ETy? ziohO)NqSD6rt1w%IF!zC;X9PL6W=9a%A#RZy&B46k_EIGLxVA_gkU zPT@Sb_A+sYfEzN`bR`qFWqrD(UbKcS>$tEuzuQr8;OZXdeLH0mAs*;ICe)yq*JV&ld6seJp(p()zLK*kd!)CXBHebwPew>g2NZoqTvc> zz!+Fxn^b-@R;~wrq3z7<@TY~(<{<{THei#9SbqoGABvu_OjY;E#tgK|MH&8oa5v** zM=Z4zb1JR*n0v_CDhDaf$QGG^F^Ji-ikNjPV)lG8F*`?K-jz@OpjtQjRej9MSYS8h z*_`(rA_J&tQFFiW1fCf5jIIoM(^-i0pW-<0lMAPeFnquJETqXv%f6CS0ayVgd5#vMZ&q^@ zwc}p>Y9sN-m`Y>AbGBUy0T_`zucr(J^pEINxFVhIC|u63F-@7`xay`cUBgv+q{@j8 z9TtLW(#veeRXg;Tgd^F0`c$RnDgo~Mxeo8+26fDd!MitFI6S%R4-pJ{tU)~&VcIdrHTm_|GYMPMAGZtdJY z%s-h|Pf>{hc`Hu!Qs5O(Kc-Vrt*+)3+jY{slGMlai&SBbPwH*c(W!h$nP@d*&7vLO z|Gxg#uc02bNCLJLVO}_*$&M_%>-5TCVO}8P`m!>n^#}Yb_%vo;_QJ}#&!WyzC;2&7 zFffnvY{7!-R|egA{uBIO266^MMRcs}-`vj#Sb0sPgXkFUW(6{=z1O>k)_mX|3Y=9x zYw1dNX24s2Ie)KB4a|ME5DtQBr3GUbH$t~Z`z0DG8)w@bnI584Qni>hi&|XBBbB|K z?1M3muh<=`Fk4-BqjQ^eL8NTof|bFOW7bqTw?T!Vltk+@C59ZZ=1k82h|G^|sFREt z@eNk1`DQ0?u<@AheuG?_o>0)6#i44Pp3*GQl9j=s%LD9b0JW!~Q;GiZlWQJWU$>K^ zoIb)H$J%$E?qOsvB@!R(*m9eMzjpAP*^&F-YAxsB;bM_a^y2}Yqh>)aX`@%mbN_5( z9(!_S9>3CFiva)HjQ#F?&P`pg8!+-l6Yf#W5n@e~HMCrGZAw~<9~2s!N8SjJg#GUR z!ubR&b+F1{Qtc+o6Ilpofe`P)d9wcGw#akT&shS0IH!+XHzuZaM5jBq&QIfL^Y*kE zT{VGAw0~$P#T>o!9ofmTFfIoXyhrQ6s-S#Wut~1N96|O&*r56p_WJ3O2AjbTJ$9nk zCw$OJ5de20knr{?;eU=gf3zc-AGtlA4j|5Bn2&1z&>t{TZ8lOpq$(M`&oGZxXPxSp zbD=#JO($Y%Agv5J?ZX)z9HNcv$jUk(dk!aAnb;eH$In1Xf5)-lH}H3XXQ zCFr-6bzHKQ z7-oI4qS}zT;sz=Ush=`X(Wf(c&ood`b^SjWsJusOMZNtUGEEq$sLcKo0~O*oa@brn z&n6N;!U%(Uf1=sS-DX)A8)bch*-BEu|JH1!g3v=ED`K@MYHC)s7{+_-{&SUbPl8Om z0lTH*)s=GdvhZGVh(-AN&+dqx?IYAcO|Xjq4okgimpsucEfDc8d6!egDBqq>FXx-d z<$OuXsU6lj-L>`x@bv8?1r2yqK}>wn|BpeLU29+SPeZRbs!)!uluU`GGHPPO-~M>) z4OXu-bAbb}Gt8B)lu1xNJkKZRw!9hCI_guGo_LpIIMX+`LVs}@^DiBVrZvjMQfMh+ zyz0}xn1*@;Th=#{b3AtO=o}r1936=qzb-k7&yTZJj)_#3E|ukYm1WlGEbsjfvOHI1 zDLx9HSJ`pAObuVONey#o_A+cgm$Hg*AGT?o7*7_HDRH?=i6WTfiCm%YpDK0ZJV@-= z3?J{WsvL9J;lD|Ka=`C(DG-XRc29oDo7?Uw3wbYU_e>9Y&u{n440$KFduD~aQ`$YV zL*Bf0PhrS=LA$3o$ zu#J-@Bou8?P7PAbS)+{Gl)3D8>B)BQMFM`rh_`$5<#^J2p&VX%FTi;%Qag;9Bq3f0 zaCL9@=D}KM)edc)oiM!c7wz6DM9>Apr`BSr`9-rSG}yMrU` zUJf>UF+jjCfZ(__fT6rXSL-2}vSKysTB&(y%YteAozCCs%a~sywsRt;oUuC8fe~!r zNyEnkxod4ciclJ1xE0|Mpbq+s8QaSEFm46ABdb$x)VdNrU8CH0T3)K4mpX8-5f7cAlQqM`!K zL5?C6Zywx%4TW+7mm_4kxyrbWT~(>KQz(_mcrvB$kBklZR_eb}c{$sJb8v1eoyNnW zd0EblzvZ6FSp4%Tg#r+Wd`eGfuM_XZL>X!43YQ~~M#@#sFs(ROmFK_6%-5%nn?|e4 zT^l;&qYAAow^ARb{1AG5qiE;0HPe0iU#5}_M4O90ihb?FnJgFUDjOz{l7`hy4Sjki zN$|(mqYE2xy5~bh=FH=aBzPVnr4S1LSfBp%h0v*KsI$GYCh_EZOdeou%oEeM@7wAL zzI~uy8EIP76O@*5=MvmHj_Z%X03~n;YDw}jZ$F}BQ?OVd;WybWrn*;3vhX!U>+Jr3 zc}y(M&!rbJc?2IQdV$b1T!IpI#EW>$3YX()#2t}V`M9yLQd{oQIyeO?D$W6XJdhSH z&WWChYasJmoVcI2)qtRKsbLwy1~nvy}#e%r|Qz_jdC`o!WPpBOJY0lPNQuzgj z6WYb{9$us#Q_CBZmezABIX-F5Rv|OeGq>X3feEWtMkSqCh%v0e{Oz#4Sm9{ZS?$+l zW`!JQ!=1$Z)*MFIxz$$a(^nqEk8+VKYy=>~^DEKbv=pba5@r2Mhhw=`f=91Ivpoqy2eE^}vrh{aS%F-sv9;fDZdQda zRK@lsJD6U*eprO$apWCK^~wNU)$l8GfJR)d(B#;e*?*>1SP0{1Nfn*kj9Bg)Ot=_i z7eV)7I0J(HyFRap(`)-`0&~DOJ5KaY+H>L%=jyC)IZPEC;6T>;d`aY5eLnV7u)Tp{ z;NWG47JDU0&nZN>Jd14olSqwywI|mI&Dpn`Y$|K8ox#aUv<3Q;^q}^p`)xUY9qZiG z!h3gDLz8?vO_K4?p=%^^zuvTRy^VJ_b2WecjdNME>l=%r6;i@X$%~{}`pqgSYzFdB z(;W4|XZRp<{Uw;e$R}$!i6(NuP<=`@XT(>KJjK&Li5je*D2?i0jjfJZ+h{IL!(q_V zPqW@WaafsR<%r3Voj8OmmSOxjVx%qINuLQ&LAhfRc4nCLeF5YFM?ra3bvX3}8rE{r zo`M~j9az%Lw-sQ?xcj26%pM@>;^mDprZiO`n}>o!vA}ruUjNt% zV*>-TC|K@_5tM2*20YgQ`WJ5Q$I1_6NmOARG9pC{I73?*MOu&6DmB=AjP0Q?a7F!1 zOIAYBnrien9{iW=CJoMQ-9bIi*?JABgL_a-a($>~Zp_L^g%p_qPtj+xAa6CL<`vae4EvUJGrmI77EW+Hp; zt)I1IMn^PVHD}iMiIku|tyEfZ^=U@p(?FFl=T^gt1a+!Xtr}EzK88JcC&IfHN%q&Cx=AzQPLcWh%uEUM)GEoyb-O8aIcX37BY?g%r1 zSQnY=ZNSqQYWHAI?E5KR`-Eyo-#2;7@DyMO8SBuepmRl)(@d;p9a;cs*eeuI$25@> zCV7l6$6);N01K9y>B^{hK<~I3OgMqDe3M^dpX}0q%@b|Ncx^r9gHN8cPkU3ppU0+g zv!@4DumO&OgZ*W}TMw$!S0RbGd{d=JbMG&IN$tcilye|vmX3Yz zJYY2O^UXXID2^|Jj~#9b8ni0@E2?;172mJQHf$U06y>nA9ax{$#I#sF{=_@M11wwz zv%zxW&9>d^b9laE^+bScY8}q|I#2Wl_gmn@+u{}QBzCW(9-Ol)lZP7s=7EDK(7@TpCU<(P9Ay6*I zOM$YY+TP{`f|4-KeMiIKh`fC<8K$hupN8e%6EB#hWQ@$d;5xcKo`7se_g$)vR2Q5fW zR|Z~3%D#@pjiKE@ILFyGpXDz4YiNq_1&b~qv`%wB=+2k$f-9>+On0_EO9K%(+^_h@ z>f;GIg|Vvtvx)(?L!On--Aty}S>(ghx*JXMw92l(doFxsEnu@}lOtKk5~vt|lEoJkPpXB%Av@OE(EGm`5A~cjblBznp$rDBc%0u>JRW_uNR8+!ji}jizwk*? z?o}h@X2i?=kz^&nxCZDjHFs|QC9?@HYUk#M)J2-}TP{+8r{L3na*H~&Y5g5<+B1qB z&bGbMc8;8tLvsS!r;HEiAX`Wv>~g?L4Aq{EcwT~S!r(MSv1oOBS(=Issz*F$Goz03 zFNc4FzRLQs1UOQRrLHgegK-c+PyCZ2lhTNSgGkF;M-s?UscOC9T3vy|xhUs8#33D% z+q2utbK0v0F|7y*_|1S}av@mX15iiW-*yq-_qpLqeEO3=5I8UYc$%0(x26Ve2u+D* zs~&iOZJt*PT0WQVzosiAorjh6DV0=xhoO|)ST>b4;Q73&zRuP^)3HX_F5S7+Sy4X`ss5M(=d0FbR`hj|fNDLXs`d7ZCu7w0 zCUx_^adSO4#hHGNzu)_kR5~!FQmQK20cMd3nFxPs*E31pcQ3iMe2xKKNe>tU3f+=^ zsp3K3MXayH)4utVMs2)jPPFp67gr`W-$%}7hjxpD;T{OM;a;d#(m(#&9M+}_qvye` zqxCD#4W~5Wlj>~UP7imr2)JO1IHFDfEb&Z$!GSXX27wfc>+w-;0pi+MXSM@nx9ukkfs0JAk$D$;ni=6C^(l7Jh&uv)+k)#HY~ zWeB7WP)wIDO~}H+rweDQ0^jC{v#ilm>=#@Qb!M z3Xhm-rdHwvfoyOX(4L}m8ZSa+^--k35t(P7ak4!t1E;IAaK%}GJ{Yi4_c;ww5jaPL zavNs+cI3HmO1OfZsquV4Nyv)KbF^oj2>FJ!8&2S@2?3aHXrtim!^Uz% zrf_hByIhftc|7adC;%-f;qM8|Q0RLyk-{$b%LtCRBLix- zE1hCk12c`vX=X)b*m#=PwXu$?6!s^nr)d8R>05d-2b7&R$4i@TBLQzRl$&pKhJja( ziA5ntrcUj9^1915A!VN1-gLZcHPTg3j%$1mO#qdHNgT|Yzqga>yf@H0W{dqB|Wz^@~r&%;3wjUq43DU zL1}QiYHTPdO*Xc|6{^V|C-f|~Rpx>ImvOW?Xtp__2rSVy%Uh_XCV$&@uRBlMEQ#73 zcI`WI5puXn+(CKS^yjXi>VCXVIK+oqbeP&^sd#t#0PB$%k^t>CJKPUH z(Mn~OLW^bun&XQBq63WqX_G*u^KHSk_O!q>tz<3jpVA(Zp1OLo{01g;wMa9;ua??% z*)lBJVtXlQJ-Zb+Oq>KM9Y_^%Nq&1j$zb)+4i(;Wx8&f6+$+r}O!YfMz!T)KN6GF~ z5qn)gp%Z#5A*O0DWk{ei_PPxen*fz#TEVOUEvE*6^K{jbA%$+QKf_53Sk>SW_UDB+ z7E&6p)F?C+x^;MCvGD*IBUfyJ1Nq^NB|H-MG=-5L-nfuk{k^Zj=Xs`wH%b#U4>SD% zE~w-5q!W`0+)#2c3kgZ~^nN(!LzN6%18^Zr4E{7j|HgO#3ww>(2I8dM{g4c4V;%%ap%fRUKM%3aKQ^RssjeeQrsV1xNsLs}($*{
0NmEg&2$0s0 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 lNKF0Lf z?$~29PwQa5eKM!@w7W7->n~xT0Lp{zo40$X^&r{)bXqqW*6RPoY5nh0bXtvBY3<4B z(@M(Wk?f5UgMS!%V-xUNwfxBYc$B%G?9I;J%t+>3KYFJ(*CNemd(@k2!tv&stGQMb zqN@Bq@8V9TyaYnK3XHW9vzogq@+Hg=ILSZ3uu(Zs z#he_EX~L+MtI!i>Uk%kXk_9x89&IvXaIJMAT~L_jek?~}h0bPS3GM^@%ykbj7fApf zDl~H%-vpiRUXOCk8uMWKXI=9xn7vLcN$R#{r)H6x^ZR6~wt;gVbf5Yi{=eJGHv?x| zE-kx4(xurRVKfMRX$T{OE?SDLW!esR@h?SfiFYHD6!eJ#=;9?aeF=bism%67lzip; zB2j#TC7~zfjPr?2OdXIs0xZl-&eu#n~5>{?|lt4_4|bH=Vl5O{cD^pc`x#r6Z6Efo)ONRRO&^E- zwd+Ld^h-?Jk21eME8MQk&XUkG#^yksTk~epW`F7@6k|F8RO0qxsK+g{iWpD}TtHXg ztEd_Jp`KnpS1m$ng*WWi;3Vr0Y9T74q=a&n5^6fa5Z^HB2Tay3$B{X?W-wG1vGN8j zh2}*YS_eZWrq?0*8NaQiv{l=*%nb~i;&m{@Fvl5*tuA*eSI}o2hj!%~f)`3)^^pbM zxLc+;l{ciPq)$2ilnAcNEXoU3-Ki9nCV2vtIS(0xqT!FyR3kC<(?;me{S^2ikE~>awQi!ge%2rJ;%#NPqYzC+jw6HEU z4G__inkE^K+p$o1US7MiC|@32wG;U0WRtGN{*T+GWEduAM380Vva!&ZLe4F578EA( z@3h5Jt8buWiYPIwqbgq_0o3Yd<#TlBV?rqDg2~$8UVZj^Dg0x}5AzOL5LOesWw0yo zC^=q2PS7e=Kn{`0^4P#Cg0~F1A3cr>TGkkBCFEtunLrUV6e^N9nYP_WW(jv6X};=I z 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 literal 0 HcmV?d00001 diff --git a/Disco.Web/_bin_deployableAssemblies/x86/sqlcese40.dll b/Disco.Web/_bin_deployableAssemblies/x86/sqlcese40.dll new file mode 100644 index 0000000000000000000000000000000000000000..cc37e3b549840b291085673d62e76de162c60244 GIT binary patch literal 406240 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

oR&)KBrm$5cyGJ5z7dC}8di(`wVF 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 literal 0 HcmV?d00001 diff --git a/Disco.Web/packages.config b/Disco.Web/packages.config new file mode 100644 index 00000000..5c51710d --- /dev/null +++ b/Disco.Web/packages.config @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Disco.sln b/Disco.sln new file mode 100644 index 00000000..6c894fca --- /dev/null +++ b/Disco.sln @@ -0,0 +1,125 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Disco.ClientBootstrapper", "Disco.ClientBootstrapper\Disco.ClientBootstrapper.csproj", "{15BD9561-A3C7-4608-9F7E-F1A1CFB60055}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Disco.BI", "Disco.BI\Disco.BI.csproj", "{095E6F94-3C34-47AE-BB83-46203535E0F6}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Disco.Models", "Disco.Models\Disco.Models.csproj", "{FBC05512-FCCA-4B16-9E76-8C413C5DE6C9}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Disco.Web.Extensions", "Disco.Web.Extensions\Disco.Web.Extensions.csproj", "{C433EFBA-8608-4451-874B-AF32C8536792}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Disco.Data", "Disco.Data\Disco.Data.csproj", "{85A6BD19-2C64-4746-8F2C-A68A86E8C2D7}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Disco.Services", "Disco.Services\Disco.Services.csproj", "{B80A737F-BD6A-4986-9182-DD7B932BD950}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Disco.Web", "Disco.Web\Disco.Web.csproj", "{241F4F43-6ACB-482D-8CBF-8F4E4B4DB0FE}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Disco.Client", "Disco.Client\Disco.Client.csproj", "{D6B85A86-0FAA-4B04-BC9E-D01A08C03387}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|Mixed Platforms = Debug|Mixed Platforms + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|Mixed Platforms = Release|Mixed Platforms + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {15BD9561-A3C7-4608-9F7E-F1A1CFB60055}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {15BD9561-A3C7-4608-9F7E-F1A1CFB60055}.Debug|Any CPU.Build.0 = Debug|Any CPU + {15BD9561-A3C7-4608-9F7E-F1A1CFB60055}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {15BD9561-A3C7-4608-9F7E-F1A1CFB60055}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {15BD9561-A3C7-4608-9F7E-F1A1CFB60055}.Debug|x86.ActiveCfg = Debug|x86 + {15BD9561-A3C7-4608-9F7E-F1A1CFB60055}.Debug|x86.Build.0 = Debug|x86 + {15BD9561-A3C7-4608-9F7E-F1A1CFB60055}.Release|Any CPU.ActiveCfg = Release|Any CPU + {15BD9561-A3C7-4608-9F7E-F1A1CFB60055}.Release|Any CPU.Build.0 = Release|Any CPU + {15BD9561-A3C7-4608-9F7E-F1A1CFB60055}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {15BD9561-A3C7-4608-9F7E-F1A1CFB60055}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {15BD9561-A3C7-4608-9F7E-F1A1CFB60055}.Release|x86.ActiveCfg = Release|x86 + {15BD9561-A3C7-4608-9F7E-F1A1CFB60055}.Release|x86.Build.0 = Release|x86 + {095E6F94-3C34-47AE-BB83-46203535E0F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {095E6F94-3C34-47AE-BB83-46203535E0F6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {095E6F94-3C34-47AE-BB83-46203535E0F6}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {095E6F94-3C34-47AE-BB83-46203535E0F6}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {095E6F94-3C34-47AE-BB83-46203535E0F6}.Debug|x86.ActiveCfg = Debug|Any CPU + {095E6F94-3C34-47AE-BB83-46203535E0F6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {095E6F94-3C34-47AE-BB83-46203535E0F6}.Release|Any CPU.Build.0 = Release|Any CPU + {095E6F94-3C34-47AE-BB83-46203535E0F6}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {095E6F94-3C34-47AE-BB83-46203535E0F6}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {095E6F94-3C34-47AE-BB83-46203535E0F6}.Release|x86.ActiveCfg = Release|Any CPU + {FBC05512-FCCA-4B16-9E76-8C413C5DE6C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FBC05512-FCCA-4B16-9E76-8C413C5DE6C9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FBC05512-FCCA-4B16-9E76-8C413C5DE6C9}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {FBC05512-FCCA-4B16-9E76-8C413C5DE6C9}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {FBC05512-FCCA-4B16-9E76-8C413C5DE6C9}.Debug|x86.ActiveCfg = Debug|Any CPU + {FBC05512-FCCA-4B16-9E76-8C413C5DE6C9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FBC05512-FCCA-4B16-9E76-8C413C5DE6C9}.Release|Any CPU.Build.0 = Release|Any CPU + {FBC05512-FCCA-4B16-9E76-8C413C5DE6C9}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {FBC05512-FCCA-4B16-9E76-8C413C5DE6C9}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {FBC05512-FCCA-4B16-9E76-8C413C5DE6C9}.Release|x86.ActiveCfg = Release|Any CPU + {C433EFBA-8608-4451-874B-AF32C8536792}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C433EFBA-8608-4451-874B-AF32C8536792}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C433EFBA-8608-4451-874B-AF32C8536792}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {C433EFBA-8608-4451-874B-AF32C8536792}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {C433EFBA-8608-4451-874B-AF32C8536792}.Debug|x86.ActiveCfg = Debug|Any CPU + {C433EFBA-8608-4451-874B-AF32C8536792}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C433EFBA-8608-4451-874B-AF32C8536792}.Release|Any CPU.Build.0 = Release|Any CPU + {C433EFBA-8608-4451-874B-AF32C8536792}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {C433EFBA-8608-4451-874B-AF32C8536792}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {C433EFBA-8608-4451-874B-AF32C8536792}.Release|x86.ActiveCfg = Release|Any CPU + {85A6BD19-2C64-4746-8F2C-A68A86E8C2D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {85A6BD19-2C64-4746-8F2C-A68A86E8C2D7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {85A6BD19-2C64-4746-8F2C-A68A86E8C2D7}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {85A6BD19-2C64-4746-8F2C-A68A86E8C2D7}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {85A6BD19-2C64-4746-8F2C-A68A86E8C2D7}.Debug|x86.ActiveCfg = Debug|Any CPU + {85A6BD19-2C64-4746-8F2C-A68A86E8C2D7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {85A6BD19-2C64-4746-8F2C-A68A86E8C2D7}.Release|Any CPU.Build.0 = Release|Any CPU + {85A6BD19-2C64-4746-8F2C-A68A86E8C2D7}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {85A6BD19-2C64-4746-8F2C-A68A86E8C2D7}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {85A6BD19-2C64-4746-8F2C-A68A86E8C2D7}.Release|x86.ActiveCfg = Release|Any CPU + {B80A737F-BD6A-4986-9182-DD7B932BD950}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B80A737F-BD6A-4986-9182-DD7B932BD950}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B80A737F-BD6A-4986-9182-DD7B932BD950}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {B80A737F-BD6A-4986-9182-DD7B932BD950}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {B80A737F-BD6A-4986-9182-DD7B932BD950}.Debug|x86.ActiveCfg = Debug|Any CPU + {B80A737F-BD6A-4986-9182-DD7B932BD950}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B80A737F-BD6A-4986-9182-DD7B932BD950}.Release|Any CPU.Build.0 = Release|Any CPU + {B80A737F-BD6A-4986-9182-DD7B932BD950}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {B80A737F-BD6A-4986-9182-DD7B932BD950}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {B80A737F-BD6A-4986-9182-DD7B932BD950}.Release|x86.ActiveCfg = Release|Any CPU + {241F4F43-6ACB-482D-8CBF-8F4E4B4DB0FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {241F4F43-6ACB-482D-8CBF-8F4E4B4DB0FE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {241F4F43-6ACB-482D-8CBF-8F4E4B4DB0FE}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {241F4F43-6ACB-482D-8CBF-8F4E4B4DB0FE}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {241F4F43-6ACB-482D-8CBF-8F4E4B4DB0FE}.Debug|x86.ActiveCfg = Debug|Any CPU + {241F4F43-6ACB-482D-8CBF-8F4E4B4DB0FE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {241F4F43-6ACB-482D-8CBF-8F4E4B4DB0FE}.Release|Any CPU.Build.0 = Release|Any CPU + {241F4F43-6ACB-482D-8CBF-8F4E4B4DB0FE}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {241F4F43-6ACB-482D-8CBF-8F4E4B4DB0FE}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {241F4F43-6ACB-482D-8CBF-8F4E4B4DB0FE}.Release|x86.ActiveCfg = Release|Any CPU + {D6B85A86-0FAA-4B04-BC9E-D01A08C03387}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D6B85A86-0FAA-4B04-BC9E-D01A08C03387}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D6B85A86-0FAA-4B04-BC9E-D01A08C03387}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {D6B85A86-0FAA-4B04-BC9E-D01A08C03387}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {D6B85A86-0FAA-4B04-BC9E-D01A08C03387}.Debug|x86.ActiveCfg = Debug|Any CPU + {D6B85A86-0FAA-4B04-BC9E-D01A08C03387}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D6B85A86-0FAA-4B04-BC9E-D01A08C03387}.Release|Any CPU.Build.0 = Release|Any CPU + {D6B85A86-0FAA-4B04-BC9E-D01A08C03387}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {D6B85A86-0FAA-4B04-BC9E-D01A08C03387}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {D6B85A86-0FAA-4B04-BC9E-D01A08C03387}.Release|x86.ActiveCfg = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + BuildVersion_BuildAction = ReBuild + BuildVersion_StartDate = 2001/1/1 + BuildVersion_BuildVersioningStyle = None.None.None.None + BuildVersion_UpdateAssemblyVersion = False + BuildVersion_UpdateFileVersion = False + BuildVersion_DetectChanges = False + BuildVersion_UseGlobalSettings = False + EndGlobalSection +EndGlobal

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 z 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Ȉy*`fMd|7XQKS<(vlGI29q2 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 literal 0 HcmV?d00001 diff --git a/Disco.Web/_bin_deployableAssemblies/x86/Microsoft.VC90.CRT/Microsoft.VC90.CRT.manifest b/Disco.Web/_bin_deployableAssemblies/x86/Microsoft.VC90.CRT/Microsoft.VC90.CRT.manifest new file mode 100644 index 00000000..9090f295 --- /dev/null +++ b/Disco.Web/_bin_deployableAssemblies/x86/Microsoft.VC90.CRT/Microsoft.VC90.CRT.manifest @@ -0,0 +1,6 @@ + + + + + +CXED+6HzJlSphyMNOn27ujadC0= MyKED+9DyS+1XcMeaC0Zlw2vFZ0= EeyDE7og6WoPd2oBhYbMEnpFHhY= + \ No newline at end of file diff --git a/Disco.Web/_bin_deployableAssemblies/x86/Microsoft.VC90.CRT/README_ENU.txt b/Disco.Web/_bin_deployableAssemblies/x86/Microsoft.VC90.CRT/README_ENU.txt new file mode 100644 index 0000000000000000000000000000000000000000..fc38b3684fbe06e056c123e9ff6f576f842c8b69 GIT binary patch literal 406 zcma)&K?=e!6hvn&c!wT9ih?%~T)7dwK#Z*hVp`guw^wI=tHqt0<|l9dpZR?~kGP^j zff@mkRnI!2frmrp{mgqn;x|(njMwCmq(aAc$FC+NzGj{W?6I>`{64BSq&Kuwds9t* zCA9_Sm|;teCd#*?T3HQlnOqreI$l7`C9(|izJDrmx~ESXlT7=Tmf;N($w#&T literal 0 HcmV?d00001 diff --git a/Disco.Web/_bin_deployableAssemblies/x86/Microsoft.VC90.CRT/msvcr90.dll b/Disco.Web/_bin_deployableAssemblies/x86/Microsoft.VC90.CRT/msvcr90.dll new file mode 100644 index 0000000000000000000000000000000000000000..e2e66019c07514d4c2d53e07b23335bbe49d21a4 GIT binary patch literal 653120 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�W$eHBnsLqrcbRD?)m|uAJ!W`}+&w3I zKu`vM{61J=sC_zok||#xjyh|h*bfIUh6hg=X`7SFe{$fB>;OcnF1NaKF)-)T*MYO9 z!f9ub^@z_4LaO?UX@oPDwMQA6HYXngLVb&D-NIm+4w zN$dKagV3Sh3W~0YayCvh7A2dU2lZ>Cjqi&@IgK=Kev4aQ0M*7;pAQ6#$_bwo>sD%% z4~0F0-rjQ+os#CFQ@U+PL2tvfj79l&=lhT6KS_@mRdM7x_-*Q%c*aeh z^8|~T~;8&71H(~I2{@0B`tCvi^2`lfmcbn)pB&T-FM9=zRw}8av&ufGI^VXsV z2f8}khJAJ`dS}EY@q{V>L+gUrl$^R{`$iW%Edg14_EEvQN&LeW zsxG&umV(EYQ@78R#^lVI5ZJ77*T-<|X%pV${lPiQ1P$je-TxSxoSG&ckUAr$>6}Az zmpDIxHIqiQ-ne@xe?i7-Q_~wyV9Owj&S|2_{8Ptee$v3FaN@w(6#2d|{@A>gTN3bh zd18yY+tQ9D=gc|6+d?v)fiA!CgJuh3_`^Dl{x~E3Im}EA3Osr%Cg<+x;yv?}FF<7T zxM#jgVooiAS+3F0GKgQ;F1ORhSpLQ-19}uUDTng=3;O?YE{*?Y<1w@M_emglwHot6q7XDs&1b3HI#r4W* z6lEdJ?NbQ`oq4?nX_w@f4BB$K#rR5C{dnEAlYJBUJG-5CU!7eEvRY%j8UOkGo|WJ3 zY91lXA}AIHkJ&^#9`QPvEiW{y%-B3=D?Hp-F(WoUgf^QS(ei$GD|C-sbwwlVLb6?p$;rgK zt?**qklY2&&L#)Shu@z2$J&(*bF1pl456Yso!@riR9 z+d-|wsM||DIC+Vgu`oui1MJ?*I`_OhpFIBSwFn>G4tSM*`fhj7NqSvtjOj|t4p^Bv zWb@0Y^K`}Mrm!7*I?(s#XU06Z>`ZUgzIte=cLy}>s#t2WEi`$-^SjIM-sphH^t_=e z2A;|BtrIV;N$!9U4WqP*0|)8ZYs}ZJDei!yb7xq-E4fTBDsC$+Yw7^_FyeLfvvu^h zlK$J;e{`Vs4qqJO0%^UiRX$byI^njaV!)=$Yw7#SW>I0PosfJ!BxOQzDBZd#+qhY; z6Jj5lJXXDXm3BQLOn+>0kZD}V=ebUnJ+UJ1eF?~dXZR$J0Xw9R!tu06B zJ!^)~-t(msbcT(R`~BQLdG@i~`Bz1qFz{GN_QLx|>1j?yha@CK@a0SMtnkfOlfQIU z$vu)2L9~thAf@S{$?lmSy)y@iKyXc9lBjouHoBs>%xr`RV)&_pr}&>p{{7?Y`@R!I z@bSdOomJc2=-Fp>zMNzzg8NPCK0#7flJ{?Zd+Vi{2uih&MmL`FPBwc{J6p{{1Wr+l zLiAk&lRYIS=d4^Sf|mX*x8nMrqn(u+4hC-#fl`=^=EF0g^zDTY0~PE=kdo&R@bjl1 z?J;XaSN2{JbnhO0Ft+JD{b0SV{5v-hNIr{Ei`;ybcH8zdeUG~cHY%v2 zK7Ad&BKG@JnmX4NfAME1^w;z_?45oOz3lSN)0IENpmu-7L9G=LG~YkCdi$?%h_o{C zS#ltU=0De2ukz~}3becF=MVa(PD`Qro;w2;blrhyp_|{R67-y|QlmpbKkmZ! zRqby+COoF8=QF;)7DWNSEJ4-!J$f$WHNV3HMbXe_&l+2)+B}*+G%RdpXAG#gy|Hw5 z*hBMge15g8;~uP1y)i4JE0gB`)PB6KJr?RN(`z0%y`=fe)FMNF#KAaoNvorWp3%HX zGK_;L9!3T!%`2^aLh~1TO&QjCA9M}AMI7s$MDtf3RtRf<0QCp184k2dp#>M5ZGW~V zK)_a;5*a_V|B7PssVxs-OYhSOmQ&Dk2^W2QHB0yiQo=X9Rj<55Q{Q`!9s2b#3=9n` z(;ON@Q{Ap+8K0iOm>9X!Q-?gK1+NO0n|w%wGbJ)vNjD?p;9)@OB&%g@^uRId1$t-Bl%{2Zt7xEISv7j@-MaimhZ0|a+G+EChxE_W8X>0| zcE@Ew=%J&RXB>#9HBQ=pxP2=diVH)fEBD@}t*7#aj}CbW6ZS@Yi_8rDFIu60!6}pGeZK6gyel7`n)fyeHRZ?%EPa3v1t*4C^Qd7jI9W3Hk1{@WGZv)@2p2@P7J< zteq*e#_)wRmfWv|?)e5ug^wQ6igrupl%eN@t!SRNczS_=7LLw+_H}DD@Z83P`8j0M z*6VMnou63)9?N`< z*+##H$%mAFtSic=6_r=?d(C?TvBo2I>gh0amTryzQS{ua_(sWxV+Iw_w~M=jH;kzV zweN40#*~KAaldM#`qkCL_Q4yEuMcKuU0>ZbzLy%H);xdUmdarIi9x=qaL!xMXb_Dx z)kva+mqVYx_qQ-^>Vmb0I|OuH=-BJ$uDk>96~8R>=10&&`_Vzi#x5?G8;aDk+>FJwJ!mo$HzrNxcW9Wj80~>`kSurff*D zJNF)3Bm!i1@v`apUV|PN4r>NOoA|G08qa9q_tn4K!AJAlUmR;cq5I6aOK?v0&kyb9(*BRJH2=|LDm{Z$x=+a(pTDD7t&@H)c z*_`!Rbnfz@^YSkUA)RV?@MEV39TL7y`&9!fis85RD!FpO76;z!; z*U9}TQ(N>M@aQ&B5E!yQjs{W~rYp)Ia(Tz8(_R* z+6--h4}~fj3g^>l&6zh>esgRA4{Pjp_)qOhLa_{jK>)POX^cS7TcL!;? z_uY$!pKOC^!H?ps?-tNE&TQ*Zyw?V+q&_FrY2Bjbf&$ZAOWNRVROXu72KQ*?v9=%2 zcC>*hwaPebY!3azY*3fykapFpr%AZgnA`Pb}iKk z$NA^yE292usnRlwh;|s-a5bwi-IY$RR(U?KupL$#Y-_$(_n2NWf6So0Kic8l!sNz} z`I+?TiFY#lsCU4X<#H)~Ywyyoi)GE0m~_BdC;d+YU2ot726Vvl{PtRr&vV*dpxc}j*8%FX;pbjT<KWv)+i0;|;@KDApl)l}w*U9m>=;lqcrOydF;J3y(-xIs?Y5ys_A950CocL|& zto|x5=ZO_DiXy9b+1373s*>fSYp}<33S(bW$!$? zwBL>5r1hOJ%_(nUiwFAM4SH&ptxG3pZrxTnsaFJTK@HYUIn#-rC$n9&a!4-iry2wO zuXe(b?&n9G4b$kt92KAI_d4OmG#=3bJ2NgnNbQ7+vmCV@(DgszYKFs}yiVxR z-uy*9Q1=7^mcCW*YmXNpzsMN-*>{ju<3*Bm*&x)?LWdbT03D}uw<1( zNERKE?kLmzvlC_ooBMZn7SPX6jaO=sM&q{gSAA6{zoc)>sP(Z_5<&J?iLQAo1hmXB z^fOBp5!@053=5n3oF13qwclct2t10fB+QVDrLEibY%HgUV1UF`N-+Hf?btuz%WY#3 zxOd06@K!&gcMKi#D{!F*T(9ZL1zvbbs|K9XTDwvNUh&?}o>#KyWOt)dT!OR$d~g+*N2~CLK&yeuy5L zeoh4AjC$HkdU9yd7rUAqe-SL}Gi`NmA!<*FA`nG3 zSVqo#PSdAW{*;Ok!ONJ>?~}svaDVvk<5K(_7v6tA$K@aWCpYZm8 ziAnz7EyPRsc=^8(hyS1P-}#Uw`NHFKSpi7_kH>%it^aK~S?~X8oX&0EpUvz{LM0zAy26iO);?UE=E!KbQEp#J?rJE%9rKPfPq+;>!|0 zmiVy5eF#J?oICGjhXPf7eq;!6@glK7Cse z3yDui{6XRi5u&TKaco$#J?lH9r5dkPe=SY;>!^~j`(oI zecM*KD6s}Vnq_-MpGBfc5&%ZN`#{4wH-5kHLhV8s6-z8CSkh|fj*E#hkt zKa2QS#J?iG74fTxPeuGG;!6=fiuh2(et@26XKf?zhvZ;-cn6BMR2*48Q&8vf_^o3S1x@Zg3*z2kzG$j zU|&|YX;><{9$GJ=Q`3<@H0r6oLe@!113EQOkeH=P~7KvSV5ozZ1uIN$>a*pZcvQ@Sw*_ z$eVR+duVu*IIjQN8}GjktPW`U=jx?_$&f*I{ABceKD7V(439tYQ$9^W5B5gG^=k^_ zw+DY@<8`_nGjRHKur$Q)nD)Y}OneIe`+dXDY@8ooxBt)f`_|6cwofLNnR|9>ft}wM zar#ZGUH)u8Nff<*O85<^o|L)DB>4wrdpB)uNfW^_>M*Y`%%NA7Zob zPuybin*Q6a1v6vE6kR`yp6iPC&+9mH8t-4g>VJIxb6qD3@%Hd9+cS9o@Gtvk@bNSM za{LU=Km1Gn8C-twFXhMJ@@M{~{26@yn14Bc3_kzNznp&t*B|(o`orM*2mez47+inh zU+OP|>p%QU{bz9dfq!W~3~qn$FYS-P?HB%~{W9b{|KAk;y*;}=+x~I=68^n^HqN&H zKk>hgpN+Ha|4;m{{EO2^?f*~wukvH#Z2M0}L?7Yb2ai37NXgY?tndO`Yia(y7z0Yb8ztVgyZ>5z2Ee#m~waggI8$4QQxTvu`Wf5s7b|9{3E`1t-@C-L$Bxh~@T{kaa}{Qns@;d1yh&cfyJ zXIzHM;mlEhz^e=bhAll5f%uNWMusAo(WkfaIIB1Cnpj4oJR9 zJ0STc^&FjfJ~{g=WA$up6W>qWNAcL_H76e6V!}WD7U{3J<#i1Ae6pKx{KqI0ZW(V8 z$AA7S{LLxhZ}i(M@&EsaTttA^;1ub%3}^rHn7D1;pw&D=it74hs&f(uXU+;u4(e1j zB5af?ig!_ThqX7hqeII8{+G{VSFgMYhw9m$?+x1SzduX%NhmOfVrXmr0plQTiW=Bq zJ8fC95AAYdP)Xbx^sdybrp-$`t?8`beM9G*qA2@A$2Z&xx}bmv}>X)o##EVEf|d53nh zJVHNl?nN=n2ZGNTZ+c(Oo=@wp_o6mUo@w0qIf%ZSxMRwx(q7crXSd8u_IT0dJ~pRk z_32Id-@g6!r|)Ij&}QFmH^bgk%X{^JiSzjM>%$G(=GgV7rbNj))OUK&^|k8lS3`SK z5BkbEdl-1r{UqMqI#Jx4dK4A6WZ#nG^q|L6`u^%8K`j)OY?$%-9Q}Ln*84KF1U3H1 z&|II%*XWmbW*S5~Nl@M!z4wkUj-)%n8ue=;B`Al*6C&q_ouEhQ4_JJwR)UhcaCOYw zC%5VGI-Mi?4wj?_M5kMS*)p4+bY`=)%u-3}pv1N6`rO@gA)WRx;-n-M7wh&k-)}#y zHDP*LH6uyMP8b)Qdpw-JrG0h({U4H)^!vMMak4jQck`>OChAL3z7;=*N=>^+S8F|- zK5vf{CA&hkp?-@WJ$}Xf*V0i^)HK1?iA_`e>G>mL2JLw-MfLR&26_$%r#)BBj615? zhwAfcFLg>7NNbK->0xNohjLmOF2Ce#Ae}3||LjAZoR@zxapFx{M`as*|4kn%N`8;V z1&!o z38szFGL+e-)-}gF4$;#O3<|vWU528^^$AI`zD~c($cr;DkfrY0{LmuIpP$$h>qPqruX~(-E=#581X<}j1k+m^Hyqk7*O%f4JPA6ib%|a-#`wO(%D&Wt zwR?Aa?)0RYp9fdkh4!UR>E&EFpyETvl&lR5Ywk;3R-5!{yJiI4HOTx)gkC@Dp46py z9i?mZ+>PBW`;Yab@?LN1Tk+e4E>2tIHzKzm^*}CG_ulTkbjY$3uY-rlQPFE;i_X<~ z(u;~#>wLGBqjn6tV6SawOYiji_DbWi9Q7dZ&2(AEi}ay0(hDa^%TtlkMz>B}ccD++ z=zcZSN}h_okXB}~)|WmpwML@pjy!eY%0kt>PXp+U!H4v&^vF{sr)OGAK60Tu!27+9 zg#tBpf$RmXJ?H5vzZ(&;Hxwutjk_kv&wOdEwVS^V?^2+?o+z4fXR8;@o3ne}evAIp z)x7gdW}P`eSNeszr$zS1jh|fag~v#5z>SN(VXgRQJ+2=R0@vP!U@30b-{FwB{eB0o zoqk92$!vRU0j}M(0N1`+AxGSfT7hdXt-!U5HsI=i8+eH8c{_0RxgAc3>um?VE_8s4 zxE^-GDRF&6-?tLiD-m$@M+A-Hdh!Ff`tSobh|hZ$aObxR=84Z^H*n{x2e|Xn16=w4 zgiYdd{t4CM^85u{x&6ldq!0?48>BLO3!$%S^+_KoAsqkK<*{5w2u$+YE|q>lXs=WF z(jYGcr4;RTQHnx%_%PedWuOqI>2=>R8jQX#d9B<_dYBLr9G%`54Hv?nb@LGFb$;C(rk9M6&HRB24#IfDYgJugMk+D>|Gvp?P!&PgBsd6oSo=9xdq=La=jvnp(5!PyK*9N1m)T5R7jNvjI2~~r&#%=6F}`u) zigSp4E}K4lig;^T>ELF>Ce?aZWmK-J9Xo1xh{12{j2#f4R)4q_h{#>+P=8Bx>bk$ErR&NZU3Kt z$#RbWDUbhNPLwXb&mjDBy+5`xLtZvuK{^Z^p@9-FVD=p;TavLdgNYOm9Liw1+sS~y zz-&+zCsoJ%pZoI=`)CwJD1$ZO1+h;@QH1FIE#hdriXt?{ny^yr6QYYZrt@D^ zz?v}n6PG^WQmhGE#J(g&5e8sQXo@xA=MP+Zgh5yn&c~XtOYDoHArK~duZcLngf>_c z4#k=fz2`){KA{)ZgmbYb?2R>Hy4bg+C_)dc2~Dvk?1MGo%SLYhguYl4uELsd1lEL2 zVqck}2;;CObiZJtO=)MO*jB+!q0VFeh6P;O?V4yLQkv-ZLlUZ z#hOq9YeMuEd9EKI_F#AsU4e%)R9xBzB%j~-T_j@FMm^g;4wA(+YSZ1UGd#~YAyPj!0{ zc<+*yqf{rM_a=Vpb{}61fjxJQxWx`Z>D4DUd?<&9Lv@qRGzVj3}8`)KIzt1p8NX)@bOVHu5sUJxd&a9Ipb}P3 z9wEKG1C@`p#5l=?RbXc46PNrR9sdrdZS?mlQ0KJ_(l~>DJIAky>Itj{rR%3Qg)}Rn z_v9)czG7AbHR#>&`n%Bi7^)ST_pt^ngHP4$_CoI^lzCeI_`)klw?Fke?3W_i{+XY` z^w&_{-^{8;TOXb8dda(`ui>YPaFS)^RFs~pO|eTYB(L`WGAHpDdat{VeSgI_P}yp5 z^+3KhI{u)Ltmrpj|3X1g-gq!NU)eW3#?*mNeZW$C?NLV5E8cnqXY~Fhh@)H@PBn5AXXKkGHKx@3ky_QlhuA9-fuN-Bt}i_2ovtq(@il zVMoM`6IQkpQF-pMebZDAcaJB!Ct0EQGA5^1#_2Y|q3!c`_vt~~)7c|J4>Z8R;AwmH zmZ9=d_53lOX@JjSSBN@OR)jK_Rhx4|g-U`Zmqi-@#VT&Wm@;WS{BSF{(G( zzeu&>ynQ2t?w(#0dkDSvRdU8Ui>OBE+On;~%?7>Ka;WBAkFSl8I=5QRus2HYuki{u zLix{lN8Bd}YPkLak&Jr?QJjyqIrfLHVHN|;O2F#D0QD)~Q2&5G{~7sk|3{W{{Qo}w z=_O7;c#Kdk#?g87nQ6QxT6L@JMHxX=lI2~`>@kAr(=Wg3y{iX4Wak_SiyF+E5r5!S zi(3mLW1_>@yRF6j;eQ_$r{49wEpZrzcUn#|ltTRjRr~1bYHyIz?fxZehsvLSx%Qr; zKd9B8mvilzf#Sx#I@Lj-;5Yf47;A z+P~o2nh`@Hp=Lz^sHC9!PQB>uXM7hcgJ+ZUrpAD}S(T{94Q(G@?x-{_ z4)$Bbj`MCs+WPxv^^kZdUAcS&)S=@OZ2LKU&;z(+>m$i;K>d|<24Cx90<_+=$%}qI z86EG3jeDgYLD-RNqYIv){waLn*#mZu!EJZ=fMyBwo>;-VrTxmEfXCvcxs4Rc4^MMc zf?g6#TWzcF_?_(^B3C@R^b}q!-LJV(0llZR?nCdfACn;`N5^A)(I@mCcl)#i(^UAd zsfcyA5gW?#`0-!Pk20Mj@Jm( z-dzU4lQby(eewISe(1fxh2~PfEYm@7U>r|28ub@-ZK}GR>0q)&MgB!Qs_zyD`#btS zgRRag2jK&%Z{Z2cUB*8L{YA+cviWRz{OZzt`5Y{FG?~uUK;v;;*#Y}(GGNk>yAM9U zLEBRuDk?1*FmSW+q~YICe@XcbjyRhMg@KoQwEfY0S*daMRvIrLZw1fhwg&1yEL4AA zN_YVodgpg&_d@v#&)*&aSr9h*)XB6=4b)$+l2gddf;Zs>*Am{M@+y4)?ai8OXsr9~ z)?0(U{uR$t|BwwDnl1JUdZ>QzB)o6zehJ6cO-zjbg!*scvW&+R`rYT(mGYq9 z<$LFA^ihAN_%muvSRU-PuSgz!2pymG(Pc)1^Woh^otB+f(e)s__bct7d^q*p-LL%< ziu?KRw^A`-|(cN_5M z7eeNM#KeocP<^~Ta@CYmg>bKxIa0kD9p95(YEGGjFf~p0?7|NyzqgC?s(u#&|LXS+ zg=wh1yQZg3=Ar9n(kN368Xb?{&S6*FiXd?Pq>%?(Q2n=x)^&SW1V=r8+ZY$1@^~_H zP>rw%-YCe8*0Dm@!}+G>3S*1mhx(0iibn^b^ptMd*r4~Y50leTi5p-H1dI52~4egG%WA}YR~^y|MidlPuwS1;{Fg* z*jz2{KM3pioF){gbDA(bwMx7`A%6p>2`wZzO{j54{5=wiux=%%3CI0LzpF(bLhD#g z69#PJG+|+XP80HCUpEG)RsJsyg%?mnjpE01!T zaQ;$G6FyPnG+{WZpX~V{JpGK*gpQXvO=z`~(}Yie(}dvzI88`>C={npSeedgLc>5# z6DscIG@;`HP7?~oa+)xJ;xu7h0_qRYhmgOA(}WrmI87*cmoHwQ&^nCMgw$G26Z#G3 zG@)*Jo_Kpg!4*yuTCCwTVVw%639aAeink{e-rzK$qXVZ2smYus+(;q;Pmse=|_&%XMhbK4N-YITB*O%a-5Ky$f*Ld~lgb42PQ-yS=v{Tznte~`Ayd=AZu-j+TaGoXC^ zn0cD*8PI(&d16mD!}xw4yRdIrDs%kq_KFelDa@T^O~WSmB{SKpoQhPPpE9)@H%)C` zmBjedJ#|Nn6B)~EZSrwOMz2bE|^S<}C-0f9yOw_k4CAVT@nH90@{$d!nF(a;OJdR?Dm4s1O((W*C zEH^1T7Dh7hmygzEnS1U*2vd67M(tVe zKt?;Yk7ml6OU(WTGwTgc&NB@wTn%K5d>A(;s~6}-jG6eQksTj0vo;;7uzPR!KlMPN zaqOT&IW=&*s<*7f#v1VQ^U{0OS`GZ^2Yu^&s$osArp4!R)o|{|ue8@Ms-V~)QsvUl zD&W^mTGu9D1xF=e@|%Q8u>1L;VCKe3u!?`t{6)4BB9iAGt9x7l z1eFTd{IKHH>ilx>8geh%(X$*XEtVayq08a7gyECn9c7U4(?7#Iz6@Ub>phFuT?W+> z(=S_2DubAYM^$IOl)~I}{ZgaYQt0q|;$ZDu3bvmk$2Lwcg^e}S`U`r{b@J*qrtw(` zdjFcg`68bZm^ka0Wz)(M$k0y7j@BrFs#_7`FMTeC+St!yhm;F zf>p(^L?XnX5?!y?TdyD0+*t%}^7}S5XBWYk^ZcBmkRq5h;F;G|M|8b^5i2!kP7%mv zU29BJDT0QA=Sm9S3*mF#gy_*(g)n7Fzy3eN3gLI}2`~L!3t`T$&Ebufg>Z88@)I8? z7J^^S}K0b~`tEij)}0B_FcG?#zN2d66k8-7vwQ1RVm z?7kg{gI|>$9-9v$pDXLa8}lH?ZfIEL%{<8Hdi89CZ60LZ=o)K3J`aK-GuJ15&IPS! z!8#K0x$tcM(*WN7To^4iKg*uZ1qfI(%tImk z9`tY4hi2FNPk&N~=YhHFDC&v-r=C6f*d2FUa1M4)cU1`X2!k`Pr*>GmM8c+xN&?-! zvGAgF_~iV ze&UknkascCQTKNSWLGKnJ`?oLeX9uzzx>ts1-6g=&ym{9@QaUQcoA1h#ph}oOWTdM9yedd| zrLSbOvzR$-zjjL?Q^Z8R)$;HiQp7A-v&7oasgRj=|AD<~U;*=d!290{%k!Bz>$kNS zDCRM_6|)Ra73MHQUwP4AF1}<={_c3Sc5OEE?waMcw9#3NzQaE60m4j1XuQIX$7C>S z33|tk&Oc|&FAR$7+4hWSN?S0&$taz1Xkz!5#weE8%sAi7Fb0b}w`fJCFwPrd&Svd; z%FJH6X2V9kM8@RV$G#=hW99^3V}nvj0^>hm-VMpS_n8Gop$`L2#4*kfUgz!2iDqh} z!<6s(-)4epCY9dXeuJSGyg#$SB%JYjnl*0Bf&eCJ(?zRQ8h*^0_ow#_QsncpL znlBN#tBc&ffsFcLVVd+euzf6ynsWXtj1YgmLXCUkerx2{tCgCdzc0`)SmMko17ke%FB=X%;x9qb1hWvJw8z$)QBUGWM z@A)EsoqO-|2dMi{-V=xX^sb>H=hA*O!`)W9{)xyxA9`{#`a=|dnxReVh{-18lV{y< zbzhA9@wr1bxD?HK5038r*4H6Foco?u6AanmK6rOf{g&mWxrFbIW zIb7R)Nq2SwgbsK&-URu~)3n^5SnO?p3z`eiUjw*yk92>m-T;p3X-6bG(eHQNBVzg# z)WhXNDw`7{>tVo9ccr23^&qdcZ_|i%^`MkB4gDdCKlR`j(qz|;{NP#D$>vVkbr7kz zqpv&ie?1jVWkw?3x986H;w8xMRg^SAe{~=u+1s7>KmP9j_BY&o7dv0@|F6FhqBvRu zJ+DPvpYXg8-;C1&RG-AlbH9qoL-mT)yww~jJTD|@{32e?$MZsh1DqD1`o^v=kmJb1 z^Fo3fpSk6z{;_dBaHR0O5brgf2a4gyKZ1$pg?JiRqxvb{J_FAK1!6jI6rlRb#sz~p z^6|WoAf1~B;s@gSASaFjGA}d|YgC`v?Wq!u0x~ajiqm{lzu7RK#_N%Jp*C)whll5d zcrjSxc_D!EyyUY&1Wxnt zypZ5D)~MaG>GL*XqV_A+`WywQ9gB58judLotft;#qINBgKjkPu?OUwMz*M`MNkx`VB=K|1&?tuJ!k)cyrs&lhD~wHMb`e%?D6!Q^qu1h8pEnTNPjq(ig7S zs9b~c>7^CxFDyY?J-pXb^!$;U87>^k7w#Adx8}yQgCBm^^5??&5k)OsBR3v6T z1*@^!Oq(C0{qtYdJ3FVs`Ut(zcXUwt0tJr>9|82~ouHI4oAqP$W}bVM28&%BqI}k% z^?9*cZWEtD{HSd|uSFrhi*i}KYX5U^JQu7P_6!}rwcpnHf(+O(ebdp>4CL2ayMDVN z{Q^WyYHL28G)Mb;*0pAF793a@Z&|W_HcCHw*Gk`PQ2e^8=(H;G`|Bo3=oY+$ZReR< zJp<%FTHhNuRX!KKG9VD0yxV)t0GW>O$glFdKPDgf1C2>@`m3Hm5A;T4_)z+|2F0*C3BAFQtZc=zd|5@#+3sk0bw#?_v9vDTB2~ zJ{qmxw*cwA{zom#;koV1QRBSO`BeONL93x0X80Xd&@@N>9#wR#(y0P!c9%?v^%{fx z#qoCDR3+@Mdg=2-3i*N7H?3y+R>B)6oz=guAV1P#C-Tv&z&5kvo$*t2J`_`<*4?gx z^81_n2AyVg&Zc6$YA8ReUA4~&oe%45-^r=fa6GrcZ^{9b-$G-pZS!luT0K;D;X{-^ zMOTHRg*9kgDX*H&&R;3+PO@I}3VylgTuwX*omo$q3_gAMMrvx0LVeevDg;@-t2K>bYuWd4RcjyX4#yD(>yQK7*Yp5}bOL~pEQ^_2!JX@fV zydZ@VSTehHE1Anu^LLNUnv+8L9g~{*q=K1aU>4TdHZ6q;?=iS#Qo+a%6^6Bq;iXW# zyYB;Y%9#mNWZBw@CMi_m^5*sxnq%%vp1lBFvErFTFt(5{Se zexEc&pf)3gqKnLUB-dj}c&}xXbpFPt0cqudG;MAZsA$7?VPu?q0v6Pu0**uQk zH3+TW=iTwECCnUmp!|i$ zv@9rQ%r8IuCF?o?ZSQB#t14oq3L=dw=A!(?nU_r4S;XA%Jgc8+ITGz3X3BOKGB;<- zQqj>9QTo+BRz8KywKuNj+An6K?c01tsTDFNjRUischaaloQ~ezRKTPy%h1?A$Ox66 zk?hfv`HZ0Fck8V^(^38%epy84F|r!xo_cOY>G6%514?q48Ce(J<+V$tP<89n*7xKv zh7U~@{5-XgKHeQZHivn}zBgq%c*YZ^k{F&(d@E(O& z>t!;kX-9{Q`L2iJcE4k`WH8T0`AZwfEJ5|-x5v#(&zZJR$AK49Q2huWKju;9GiE(= z*(0vl6dhmjF4rIF%;@R!(@$H@N};S>dbdtWXN)#jq`#f7i;i#B3ZKnsOwsU1*UO)v zBQ8@$I^4+=M{>DURUPa*jE-iF^`QauPOCK{U?{+4O zzAi=EU%X2%eZ;&p9wAYDcM6JsES{H{z&tizuk?KOCsdyz{3n_|V1~Z6ow;B*$`5aC z!M@~p=F0KVf%lJ~}~9CrN02}k8*W*E_;B{{E)XQX$xDv|JR4RKj8i5?gMzgFn?n9V0L46VgA4rVRmA6 zV76nnVYXtnV1CCGVt&K?iunceGv+7EkC-1Yn=#*GHeohmzQcTr*??J(S%>)svljC; z<}1t^%xcUkOzwB96t4p7a?CQ!Qp^&L{9?=^%tFip%zVr|%v{VI%$Jzim|2)FFf%bT zFrQ;S!%W9a<4B?Jp|Z6?&>!C?V)8I4Oo0N9WAZR5Oab~{E1M1Q~!W5wI$%^BcJWL8x zfWCJtj$`sL|M`0^HvZoq{^9W!BVpxc-40pVkwz$1H&IU?)Y_)j`B=&#EwBzt1u&Q; zw>mi+jfW`f>jpRHz{yyx&D0n)oOY9aw`GnA9bsIE(qjU#n2Ux%anHcTQZfHD9 zDQ@k3csZmly0b#-4H`eA0p+qytKhS;&6P7kG(MsnHzt{`0k6`oUu|>7A}x@gF?Ky1 zYkPAlXDR#r49B{B*-h{!W{%C&4JJs7KBaV6gX)0CW!pzDK)S9gY=;e)PxTuz-x|%w zQ{h+7R&RlAQ?ESU{A&u*!qStAx53m@52p7rH2$Olu6d_!2a^sxm9v}Bco==*EJSw) ztV=#Vb>}v7q~m@*j@Svcs#Bc9rP$*Q_kE*m2cG=vp83}&AuV`3;FLWizx$DUdL0_i zQ-udDe>i|~{D{M=4cX&6T^4M&2hxoPIK94)#(Pw0qiDAyxM}oqI3&;R-{s!;aZaG< zpxwUw7aGq|)Ew)2CphnaWShDKTVADiLV}zj{K(On+pFdvZSlHx`Ced(-jt2?Wz#Qw zGgjUOw8sjAJYKQ;kBfK7bb-cgMF~rNdF=YjvySb9jgGKK{{nk|B9k$4#(wy!w7U5Y zu*XA7ySMCzi6=+<&0E7B&wQ1pr~}|6J)3{#8N2=IUl!Y3L3cpEu{9Ua_>{6rNE>kw zGI~FJZb+f|dP07Nr!P7L#aCNC&XHx) z_fJoiJPZd?^-fQD&(^PmON&zv10&j~Xf=sF{{eK}fg_-+>K8il1Y7>$j}J~c3WrBM zkL|W(>yxJRuun%Jsnzbxc4_wbJSV2!I0hj@l5CEzWb2>b1^vleFCZ{!B@u}T-7J;HArX6*KqV6Z+A%BR`TuY zc2)}yFKc#(MN)ffpPXU!igd#{9uQ)rsGQh^?k6d~){zk&;MG1}=E|FSNS7-r{Puv+ za}_F2$+PukmCDa`$KhE0mD1S*JJ9{wOvP_cj)UEgRo~h=+2eWC@^+9XbhQi-m91gR zPn1^U>CV_$Zt6s|5K;6O0`dbL6YdURrqM6^;1jFoPgOc zU)g<5XX7@el}#t$c}w&hHAl8QOcQEnp9HO_sjkE9(DyH>-pbA4Cn5LA>XpGNZ2kFr zypVhTWz2qN(c{c@;n&dki3*ulV7Z^!rs-|pHJlx9)cF>-?_&xNhL)b|nUA!OZE4^> z=CIF`7uUxuK-#~k)My`*dLJbE%w2@EFt?=Mg;}n3(@A!u2D|>6q7yF6fW?M~!w0b2 zZ#|GV-i5gvygzufG&?@EADfl8mvQfP$JpyQJ01$yp60Zdu|3-P!r;U>q$>>)2km8i zE>D-bzHbiFyMOoX7FHk5S$!U9`K)__ z$?W*CZnW7nN5=ejRKa9DRttx1yuXK0_K;hUdT%7s*78%jb~BR75oYnT+2fNL)ys4@ zb7tSLz8gofx^Q*=83*R|kJL$%^3Zsg3b+?gWY2gmP59K}$d30c###@vXD)Q|mC^&z z_?~J`)!b~y+<9<1a%r3r(uS^0w|6o3*C|NKPeS8e%5d3D;ZEkD*S({6N3i9awRp4P zPG;S?s%W>l?0B%yR)xQVv7=i{c!uoxn18+Sg)MW$;CS_g&ts65`F*^95|-{JQ#R!N8yFcy{QJhR|)ykwo(wNw-aqHZ1XJ+RC(UTA%FWu>@(0Sbd$X z%;0AaZmUdZ&lfMMYTp(nuvW5j>Ib$yh%yhQ*f4J&u1H^tEc~sR?|HK_Zz{0cJHE|-yotH9U*RLopTx#jcFf(# zl(i*X_MXA+Kd#Tv^7TxLx779A2=V!8*W0#^IsN)+q@6LkpQJQKFKk=GD36tqdNqkX zJ`3Nq$E_HLUzPeN7O?jdJcDfmRx_$E&3}eROlH$l+jVUv6P&Oh(EcZzo}bB1-4%@c zYNvj8_p!$l9$~{QW8M!w?9e=uEl&Y&)ly3a4$n(Z-O8R%YlG8C=8R!NzJ6sZdp`Kv zttuBY5pF(}rUvZ!4OdX>Sim^yj~e6sgRTG8lgkIrV@hVW_kFgSP2W1}_!Ki{a-!70 zvm@C!uWF3B36q#;(lTQd8|OcBt)iKI6FyEKwY4xA>2zOZ14hDCX5PCu;{3#(HJ`%V z4>2ECFbmzEQGBIO%390`!)324{n`9bvxW^C!u*=xJ#|CL5LW;F;msS=$&MQYb2#$M zI8w7Y@=dVjVQtKjXT(u33+tI!8*=0uaHOVVt&g=H)>An0bU6xiu%3kVM2`Fk9I5eG zYhgW>qd=1*Z#32;vDUzP1V_FaM@kiI6|9GG6b#|W8;rFw)&sFt;>cIzNcG2B9&0&{ zg1#JivRF%F-G?J3#gQ+8b#JUGtbe2DPqOFZCr4fn)?HZt;7Ex$@;k6@$GVjxuZ5#P zi1jzDzhM2DBlU?R{{z;|ST}LxHF6ZZ#kv9OI*$A|9I0BYUtwK?brnZmB}YLy)@4|i zaO4+rq>8XEz&f9!AeSRA2kUICv#`$O$j{(NJ;yp7>okr6h9fT(>tw8-a-@+4*-6GU+2Ve+rx<>9zqV)DW`%@4)#t2mCy3&G2S z@p4RF5U2TpI39rGn7k`Eei<*voWyZV-U%G{#PQ=ej>-4H%iZyEOdg-p{9`zN6vr`n zNAU8)csVBT5U2TWIDQbvF?p^yegMb!bL3(2_u=I(94SoRUQY9!aoh>VF?o)7`5wF+ zlee4Gd=WIVNv2r}@@6 zz6r-Mc^h$j1742FTaTBo<0x2*buWb= zviCpK6KO$%M|^V;jHDH~wnu{VNsFkLomz zka5}i;fXk|DbE)fm;S7ukzZ-f#&Z>@E@RVVjipb5#Bm=*ez$S@u8^_Ee~R~~JV4N6 zTqnuT)49&xzoI*4-Y;V*Yx|4N3F7jT87%m1Jks}Dv;AJypP-cG!YPQ#HB2iQ(udW* zc>aEJ*Qc$e8SR=((ynX2)>pt+wp{Joj zR=mE&5DjUVX0E<J+sxQ>E?{zQvWWsJgL0!-nE~v~~u`^bzBQ&i0!I?#2W!|^N=i7Odh8#4R zIo`K+8py7{ShG$JdRmTVcT|YWOMh&*JlvOmS})ZkUcXd}rvL??N{4t}71y8A@l=1% zvJgrgd)dw&U+qLef7srxpB}$OoWJhDJVkI?Em5@l5PN@3y&2-C2;XdHYlQA({S&HV zs8A7xDp^%6x*$$pS;ayL=FN&%XkIpojT;P)Q-W~Ae0M#1F{?MLDh>eoJI-^9PcLHi zMm6gJ@NJXS%4~J<`SKqj7y#+Bj;-*jN53aQH!$iN1EDlXDYGT#1ABZ*Bl!ctDPZ-4 z(GueNIBHbkK)ALmv9HH^v34A-s|<%17_1%LAwFNvH2sueW8(0p&1MVP^wh=*l|h(p ztgSUge7vSwyg@L~eP-yyrQ-S^2Je9Q@4xPg+slcG)`Q`| z#g+PSrWc!DkG5bin0Vvf~i29Y1c}VJr0e9Mt}% z6b^xCW7}0fL~5+An5sJz2AbEJ=844HPtfNN1sjX=k|v_#Y<@GQ)eQxAg_v!To@joZ zqP83GhQZ-=hdho>5SORIjPPOb>*lbgszmYmbeSm}2J<$QH~c&!K7U%Yg$m>za(KFL zq`186jp9^*-*^A|0)aTaYoItBZhk0fs@^RrPT$0FIP@Gch#grbKAt91!EpFFJgOu*u^^XpWhqJ2;5PapC5{JlU|4Hm4> zGb&(QSbvSGTq0BhU6;Zuyo&=uq9`f~h!V$Xf`}pt3L;6#IfH^E*_xT|d7hW|&whK(o;|x~ zKl|uhZdZ5J?W)_is%~}NpW=6(1&GJi=oL?cxlbM{GH$cqZ`(ye(;>ER+Bp@K8r1$y z5sMd1ho4IJ`RC$T{ywLIC5NVi3;>DYMvwCSL8y{O#o zBFi2)AtbBmz?(~-J-Cp4|7B2CfuFNN{Hvna<=v#OR)P7t6I}^07Vq?FnY{|wZn&t< z@5$1CC)pKIDxk(ZrDuAImjBvGfBobcU~3w=$u5W0KRVsruzCihUY5~NFJsvsC*Do=Gr;8>Q^~Mf zlf`Rn4xa(L7mL1GI$kEj9L=q7iTqQG`#S0hS znn+~H^K5;P&RXxpG7HTn5)5J58@VF(^$uUPCK4%8qWz!tt!JgrFB+LZ9L$K5`8I{+ zZ^D|3@+J^Eu?iCkh zL;EQ^-L6Dw0x|#KjD-!6?DA%ocE}Rzy+f8By+&tUUr#jaa-!g`*7dQfA2>{f#Vt4ECvFqYR;9XLh9I z7Q1|#N+lU0(#vi3oR!L~bkV8~X+opf_>zN}0*jBTBBY5Hh2d6`}RJasWrM4WM8$9Efc{rJ>5N)em4OYZGG!!A#?exnp2C6hQV)3uvb9|&?x zipXTPRUFP`-%oGokR;YVS=8>ZREL#+ZUZ4n(9>rR^Dkr9r*Y#gN#f4KqJ?sk*!mFH zcwCbBIIcN5d>gyH7B_(;G1InwATCambwAN0AxZFEG8{U+gnhkRAt6EJhzqv~JX*s_ zzxmZng7EyYPVA!*yMDcjM#KsI*K`-{iERDz`W7ZmJXCel99}iZlJ{mYh!YpxbhqT( zV*5AUN-D&NX%3q6W%K%3>FT9nVnk(v>qX~l>~zI45F=JiKXOcjhQ41w3kKyCqJ*1z zMf!8^jVyks+)^c9yL_4?7(B2%{#uMYp%GuQ%*e;v-i5 zHaqfSt{Ut9>P~`}cs}Py>+(`|{X2A-@ewGulzF%BbHwOv9~yp{eDIL z1dLcX+k8#GFI!)CHxnbwgw@MmD^6Izy578HoGhM4Q~UL0Mro&A2-w!;upcEa7cv*LMK`Mv9K9AqXPy7TSh zcDDXRbrJ*2?ST<*-vzMW57(}de&!jkt9!ZS3|v^b2~KO;eUBeo$lAPvtM-7xR2w ztW{pr29`X&y(2%F7u@uc(gBCPcRZ2o{_Co`(H>4xyYTo!-g zmtzO>QaN+GsWQ91CignFGYd06e+WusKaXVJNGsF%O7O^uB({G4?sIHm9{avXa&R6y zzx>}LP0U#l*B{m&W6K}j@7Tx;tgj8}EM@D%p@ETl=GvxqQ|&aieN!HEtYhYeoqUtu zti&q+-QY+K^V!*^uGdv<#uH0=+}ZkH7&w{2nDBd0$j+04}6)mN(avFif` zno4IrlwMVwc98vi^pTN7rrDux;EaHw)aQ z=WPz{E{dmSF>kW{>f2=8Nfal|qI`|!!vMT*)u}n&xhO8$#_EaXie6+KN)&(WLe{KF zOX&F2fkV((f{!w&_;rhe4Hipg`7v_mS*N{L?}F?|>v-8$n;DhtIF(&+ zcVSl$q2>2qkU}qNyKW$GwLU+cgxOcYKza=m8y3As_ z&EUkj>;_-gHJ5F(J#fGBi?@xGx}h!7*Z0z6XEN?(H=Gj4PPl|{RpH@_jh{Am!-Jnc zncLH^lW{P+p`?i(sQcO(zijoZs=~D!E{eg;CF_D1RD8be($8WVrQL9^lG1#~q;9w` zx2ULGWEq1KC$k$0mz8Z>#p{I|YtbIZw047w%GZ?=IVZ`unLSYJJnzeqpKkcP;&nqO zruBdW|76dGkn3a|%^rv}UFbS(mJi+)=53Z`+yk=>H|%cTeS<;81FULZPBbs^V;m?J zIQINz4>0%xagRH98GY|qd%c5vutu3Q2N+weyvj;NO_UQc{xyzv92&UfcloBqz zj>|hm^RFD}fu4TjewBQGhB`YA=TETr)|NlqvzOr?wW;LSJcR3e&aCEp_GJbYe=yIf zga3T+YJ3N#(6;QzPdIyh-{-ZyA!M9RgxhQBm2f}(H2$ODTc`Scgr~;*+++D6kc`{; z6RMZD#`v$eh>Lw64t!CLaDVNOFv?m3@JH-8o(OMkhv^sLcwffy19=gp6MsRw&+Efi z&fa2B@eZT$I0fc;Cx(Rgo}34pe?d@PTSv$t4+baB=P!u%QQ(=I8i)^P`xi=k{DKCB zpj}mWoXNPKD1DWoz&ag2Jkikf`poygAj0kN<*93NG7ji3*i-MM-TyEc7cM`WTqV#8 zt9}>yjuh#(Q?0(LN|R zHgAWisuu(H{MdNdsSn{U^NJ)L2*9a0kXnKK?RFDf87OWAPg{B)d|f~B^E&A;G7f1U zTsk))g?G;hTw0E{Z5ID;Q1?G(>E__gpyEe<)0t4Hur8GGEL+7;ZWY48{kZJDYtc1E z8#_+vZ%FAa4F3H#j1hR?dPz3I7hCemp(n#Pkc?aU8)mL`Gwy2g!*3eAny8ca8=llO z>FoV_g29Pnif~x`Ya(QFui$S-Zjaw3+Yc%;Of=6Gg)*pkm8q9rUCuT;$dK6b?t{V3 zepuWY>F2QaEMpTp&S^j7UzzH#YjP+fMKI??S9m|@)PK7D`t)rE73Y%KeKOY2!2w5e z?kQG{{a~}M-abdw9^cQ7gE{~@U*-20nffqvHP*BSYY)KFh2q#R?ejl!DO7&0hl-3C;ooG3qRjeKpf2+fPCwQocZ3j7*t%%%ei~z zf4t|9A4u>}6BHi=)mo=@zkUQW2H9~`2SMhqrHv-Gj5Xu#X~#wmf~MLw@q(ed3{ITYL2$jRaXw$)85dUkwkxB15Ke_0g`DBL z3@VQ2_tl%+_e);J&*zVrJ*5wU$Xl06y_Laa9M&O-##fK5zvhj~>ns zh(1ZiWgUVtqo&Uv_-yfk%st!3R}8_aQ0J{ni#-?)>^QB%5OV(93Oz;$quX6f=&IH* z*j))dd0}-ZgNhqEPH)#Y-Zp1Ez~%kK8mD1stZ2KDu6UcliQ_s9Iz-Y;3hnSa1f_Wb2p3H}ISn-%Bv58TRq?Bsse z1$SAOJ-GS&AE@#W&6)ny8>ixw`pgcQq!MzM(RI*MV|CsixcN-#Wsgq?gA)h#55y)s zaQm4ZiuPzJ^Q5E6eXXn^92 zMI;3bv#O6F~b- zu=;xg@6o;zEdP$;JhXoVn?0*=8QLd;iC#Y0kM@IL@BGvSgG&gEL5KuI6%*LpJl-(0 zj{|$R|BwXQuYtw3ca@`k8Q7aoF9y;63#>JBk~!LEfpwm!`7@`0z;b2gd^Gxkc&n{x zXnzDYbVuydjeG*5k9%B<_B&wo+Jfn5Uju5TM+edV1#I^ESH7Ea2rP|N-a7&d&z@(F z_8nlcBWmSne*so0x_=PuBfu6t&3K0P3t&R^H*5UU2n_3KlpD_^F!Kbt#ce6*{yaba zqC|Axp+DwXF9~cD_E0A^4&AS$^csDKkC~Ue_dWdx(X84e*Lz3~CAan!{siVE5pe;1 zCr|1FmvG|9_QCpS+qOL^z0kmWB5{FbFRZQY(~J@A1u-}i9G(0NvU$yir4IjsRWIJP zzmfX|2{+EVMSuDUk9i&R<6M8jz8hUd4E!gUOnPjT(%S=n;K|cFFA$YjuY{lI0h8p9 z>A_k((6Uc2_uaxX>`HOPIm)wG;Y=4^)-rm-wC|m+#L1>cEYv=R{Lfh z=>)wu>D~QHJ7EH^(4~*)du{J8{dT(O`|uMht40I!=O6l~Aj-F-TsXTOp6}WF zBG0xR6iN>^=+A723O;(+s^T{IW9E3d@#F23xr0SXd6#$feE3>w)FC5 zP*%E`xc)BMcmCtN`dN!+n5y!{=*5g?_(L2h9B6KW)WZ+oua0YiFO8oL+_7(h+A<^6 zQhF2Ul&i-}iZnsXpN|7Ng^lnh&v)Wdgiox_m$p^qXd^f+*r!#m*9cMz?6+MKXoU7X zgMsx04KOcWhez&y1EilAjF&mx0J-(^`0`dXka2{`{kdGNKsa9P`1b$%#kE%38?7|| z{v&wl57KOV-;c!v7Tog_hh1*5p zcu}}s6wVig`$ge^QMh0v<>H1>IBDd4T%0j7UoH+ASuPi+jFgLuV@Ar&#W|yJ@hBWL zZqu{>_=^um)eBWmqwwXp^-9(AD116@yHM>!w*UX{@!?o=o)NSk|Nk5(4lTw@&b{_? zAIop`KOg!T_1kM^I+JnKkbh~^QF(EKxc;$YWSp|}|4Og1owIUb=?;)jxi>ZC-qZg| z=VaG8#(4}2He0d51@3Uu4Lxn}<}<-uUdnb?snxS95IkO`+{88+uIYW4DI{|Zt{4rS zeXm{wDMG1sR~&3%nyqSr;-WYZoiyF_&IVi1SZ#RK#W4f4cL_+{uGt65RtIRp_4lEs zv`MUj#|p;fC@4LTih&4?T{lw~CPQT3wG9FnO~`(?6H4~@L{)!x;mSc(%l*5vb_&ja z!aYB*Ut`5qo=04s*HF&AgD(_*N6sxOvCBd0RA%w}Bm7~&L}$h3ykZb8x%H~%+AV07 zx8vCsmjRwy#yvZ3T|;>5v(qH>vZ1p-QF+}@CulmfV%n361hAUyK0D#%Ip|E)nB@5( z0Zis?ul!~E9%LKAwBVN}SKduoKlu2TKj6wi$xGWR>yzb){F3C6zwn9h&jRGHB#+@) zFUvPAj)TVD&EU4+ z60{)h@TS3RQ+GPl%}DnvX{(0fRNkE@cQZkG?n1Xjp;BmDV6b+1K{DK?8?AjURRTGj;h^lz1g#q^ILNs7XFUybn zp9fDJU#>*gKRAdh8y^@fO+fxu@(6o&NbkX^GRTq7*H0d<1F6{x4_}-rf$`5)8u!~Z z!P9t|{QEb*fo%VH!n>;$v>UdrH%Is%nAZ)^4Xgzrt)yyookCa;wa~N*#pwx_e;YR# z{{;lxR(0InUj?o6g{CCRRYCKNgpX^DJ-PK;GwD=p*J@6jYDyLs%{Q7mC*(&rSH1wo z_L(NM9xflDba+J5zXx7h&2PHe)(+v4;({-J^}qwKZ$BkP(YmhZhH$xUKcOJ^$Rf0+ z4c`x_PoMVcCtR|7JbjW-H`uHR-*RixFPMit`K~vu8ypH(8Sps#0tLqqMJbu_>z`(;?iHd_=l49KHR=0}=khzdANf}6 zNzgx7Sgv*L{{_;;p*v%rNYN)_nP(z@4M0ufT*n)KWatCiJpar;Jq#WeVh2U$H{@kfMKjbZdrBo8 zJ5SaxMo(I)TQjo``L{(QS+VI3lLj{ViAbK*ow(Up`JJ^GZooIY+>tiZ0=33QJAT}9{E->GE2|7CBf z^03iILDK4t{mr`E=QwWCC)%8(%xwoL_Zj&;DI!EuSgp#031>i1pGo`%awp z;?zB0te=tks-TMLxwOBmEZdbBZ}n1OpYBK6qh~?ws*BHnzw?@N$%%6+Z>Tm`!vD`u*&|OpNu{cQ}oW3%qQhDOyg|+O;wa7Io)t zp0xEVGdfxCXZu6qUApZ*Q9p1kpgd}^JHbqPRrtiP?-X&bgZH-ctteWa8l!Z! z^Fc_8arZX<>BVe&sdVOkk0D`o!0|Eh@*E9D+;dKpEo7~$Mai_M5mjp=^uunjzyD*) zd)WG;)G*I~%j>^(f*j9LDXzTQXP0Xbt9ZEbzEfV5T)3~AIXTrj_2yGw!h5~PwHwCy zGzW>(=D~3RAT=0QyQ%*L^GsOY^pDey5)V6J&0V7~+9#Je!{46lgP7A7tQ=OmFy&0A z*LkNQn8rqvd(W5H&<3;`>$F03kh}|v99Jb1j4v4({d;9t-&e5@mAK*V1Fxv@)Ia*W z?}OYM4+89WBdaO6-y# zf7n`Gp;h1z$vm!mV8;^&3nJ4%*t}@N9op|Fl@AQxT0+Q+TSxELoM8&{uPfiuuS@K& z83}IXv7#B=bxS&sr3DzhvdS_ymT>es%EJhe;>tTvoLnF8_}}tAoF231o7zt%CEvXk|RwW9F0OrIZED;`)VY~#bc>~nlm z<8-v|z3|uv^q~`N{tt!({*&m^_`Z?@}}^*P$L!MyDOj6T=`wJ1pUH8fk|_b z{^r=oz6mF8e!cinViW6oe$FxYF5*h1*?-GRrBjqC-Z$sgkzTI6)Om_J&NL_zn4Ll6 z#2xnI>J61{dAst>i(?+NgA;fdM~p50D}DE!b4nXZchJUn%=fW-J?FpDseCy0{lDcU z>z6Cv81+jd>lenTUm97zFh>2-$ohpb>KDlR7IBl|ZPqkjXkf8)wKR{uthAGq?4F@6AY`~YK&A86$G0mc|V(8%!vj4^%ya{R!R zcdYRPIX>gcJI447$nhDBF+QV_<1-jzd`2V3XE4V249M}>Ys#LDH9jN9ziHHUV~l^P z^t3U?ziH(7H*JjZZyGuNO&eqUOHk#Lls<~*vgG_CjXE*L{34BVAZAjtUzIo}+6enHOPxX(An{EZ;zZ^Rh$H-enM5o65X2y*^Lj4^*B$oU(0 zzB$(Xjhr8I(15{FtoYP8e%`O!^^gj?|_#X(;|G=%^vHTCDe}^mY82%lC^zRU3_;(1>ze9}S z-yul<4l#y*hamks-1;5MzeD=ZxblwSKO;#088L?cj3E7I#2EfFg7lveWBAVq(tpOS z-?98>q<@kt?->3`g7i-kWB4Zt(mzRz;h!W(|0FSnf07{mlU#Yn@=vQzQWEm?W`1fS;hrX{3Z zbc)esUq|*=lz*Yq5p8c{FL6=!lSBVm|KjlBq+a~zRV+Usb>=_E$7qu~`}oJ-JlelZ z`E409H)o~JLU`|_f0*(MQ~qGe4@~)gDZejOF6B>E?^T>E8PUo0+fx2o%1=xAXDPod z<&UNEq5PZ)>Pgd^?7O)BRLYM^`A;doDdjJv{G?PqIvqoS=bVxM@fweACbOIC=cN3b zlwXtbXHtGl%701aL-_^!ugF{D-aoniN6PO=`5P%eBjsPD{EAdQl)p|#Yqw;AY9H4x zNcjUPKOp7*qx^o9zmLj?@}qfc>aI$7I{=iwj`Gt{{yEAoNBQF@KOB`0hjR6XPM+ub z&nUkcEN}pkrKEo(|hSB;=zF#ov{en^N7mRwpVD$S%zV9&VeTPx+JB)hY zVf6dX(VtFgJU}P)DUI^qQ}dQl_9tz${UPlkG0GkiqwFCu${wbTwuhvBCPvw3Vw8O* zM%ia#w0$P~3u07%L5%7zh*A9oF}lAX`!8Zt|3!@Izlc%&7csj3BKuQfRDVj0>Q9ML z{V6fJKPCHjVpRW5jOyQsQT;nHx_>9f8^oyb1~F>9L5v!25TnN%NMD>tone#E#Y;cv z`+M5{vyQ)-H9qS@+f>%GE>Jtb9+&+>e>$;va@@vBU(4ZHzuf*1{Z0QD-wA1m!^W|G zFxFU$rMGnSKMnmy2io_+Ip~u$SmQxqk~Wd&mFb*hMf#U%x{eMdyyUpDmb#C;ohrW* zbon`_C`w+yB_o2|KmYxQ)4!R2o@cE5sP|8s9M@8HgFcEFl|SeEtAFtADY+<0mP?gS z(SM7Rc8O=xGIRocaItEc(dkX6j$7?Nefsz*!~GU#Y)|dqbZYEF+CP0&HCjwv@{FHGGk_bw~U3rxr#>*4z=Uh zw8?8mB4Xi<^Zsq~+N*FZbl$n?HL)-tdH&|mqy`*QkW4aEi34MgiD4NQtvIIoPQ=6o?&CR-R#k^0OGHU>cnQd+4nx zW*0+ntk-5;d}|5}GD3n@2{UjkM|7TqMk-j8H#y#$jpW@fn`eD26%KC`ZiCxMzob&t zbDyPxaZR53w}Av4v(sCx(Vhy=CVH6cGJJ_+IQs+ioug0ElB?aPTF<72D2SewE>;)am;UpLeo4Z z%<|%WJ5a!bV@5At?LNhX&uz~Qa`~;0{`t_pykJ6h)6=3a>8L&J)EP!SOn4FLV>3$? zwO3`TPNpsa=O0B#59yWQ*e;KUv@-+<7;7v$T!{25vu-NmB>{rwFATO>BKZ`>{FnYB zV5?NvHBEPH`aKOsDd<>(Mlr8$F}A zSv*e%v+0#9(*B_Gtxfjwbfkl4ObA`zF~R}!x{x2Kl>w?zizavPMRD);9BSWiA_FYt z87AttMsTbr^8HY320WI(=x>(C#IcmOr(?P@pf5$}M9!I?IOcxn&jFoGNQ_W@#bb=@ z)sOiXR8D8Y_FM1z4~n4Y7pNMnjn9O@L?yepcqHE%P4A~aGr=f)%1+T<^!)108|@an zfwrr|nshHzzEiv5YJ|hKLAb2Wtp~j?Nz>dF6W>6Mz!BnAZx4yiGrs1*@W~jw{x5BK>x2dX|y}nfCh)-}RyVYZ~Li z2D6}WRsYDgQluZDJ@fqWw_sc^TcKrAu^~=+a(&=ml%Zzf96{#$r-kw zyP*0I=tu}3c?%EawIjX#(s3+2H#df!4fkZl8s;gW@~d@w-(1cH*Cltn zGqNGn=uXtNpU6IauK38q{|@?#vV{|CKI2&0k$Y+@-@!)NKQE)x{~-MnE!g4q4t4}+ zf8Vc$p4ZdU_Gb1w_!HsVAhPWpjy?VmoGtVozUHMr0QcXheV>^KuXzvC1UGHeTReng zf3%3rH{Qdqr3y_Z576_h*;5^!`yPy!>|avY)s50Of9(~^fsP%=qRP#YJ+)l=bnC_( zn7?h`q*)J9dy1IYC3@vRzLV(>J|2{x?C*8czvRHazT%VGVT#$SAPQHC5y5D%Ct>ceen6}kF z)5!#tCt)e2q5Kh6yjbEbScUXIP12#-;v+17j>p8R4&qqDh4*3iKf)Z7=EvJtq5kPu zvDkiu=S12ZBY9zj^Fj6^%FD+-*Bkin~m%@<3X}!9=Ons%N>bE@2h64S?q~Cn76evJ}@0U zf0D_)m=}25_pLuXx)BZ*I1e88Qcig_I`4H;%TjuozOdp%C{OtF- ze31I!Xgn=zoIYmB^GW4aK6rHU$k7i9>tl+d5*DBHVO5<3?}PJ*zqaRXEZQH;;};&f z@T!GLEwSdo{^~&qa4;p$NyEZxLvd>`AVxC*{4e85$ zv&k_EUqH#?yYTbSH?L_{{}{;LrCh^YuPd-jqU#R{KI|oNh76y$q$(2M${? z3gOX=Tf2TP7ShM6rDD2A3gPG$$pS+U)PLtMGzePp6|%xa%A?KDcxOS>t({lD!n=F! zM+MZ;_1E)$>wfqO9_n-K56?#ZSKO+`nG!{ilYL6W`W(MLwxl*&cWV)xm*Nw-dSn>c zgCyQv{zVWMIO}p<3DUo%(*#1xia_v?Ynabll%L}}d_d_NxCi$vkqJTR&*CPZ-uDf} z?@wygjYajJ4#Gl@zrlr&X~$BRBYTb0oRZtVLC|>h$pJd3ee;?+uj&+o)%uU;j<1r? z$Bg^)PTLj3qP2>NH&l^5;(z3Gkx>jQ8u+ZEMv#8zCC5kdlt9-lKMlSIWvIWq^|;lr z1m54d`LyZ+vcHY0om*~}K>773wdEg>`~fQbC7(+md!Qvfb293`I~uJVCzS#yNBz0< z8R=W3_btOcrN9V%H1k!pIKl-K7S_673XA9a%BHPE<4q9TwzvuL>L146QbYM!L+^gA zG8kUIFl3q`lGj$-?v-sBTw5R5;^&3h_vumd*^Dx{T|N@uDvjQ+`L6l|Z#k?zaf6RH zolhTIH9h3KQ8}nGFK)A2fb3tPr06cMa;SLX^n8*ffn(R#Dp`Chhp85Zyn4x~evQSB zcqo1c-)%ASLFbS?*izwKx&J$?-=oo*zaNbURHJxzJ^K#2HFukz^&xv!mFhbD^E-t6 z+`RL6EvkQ;)`#!#A23ft#HiQ49LEj>3BPvz0Rl$P681bo@?Lqnu`Krow0$VGSGx6Pp)@%O9`t^g9^~(+ zfbl=Jezp=v_RsR-xRI%qAQ<>cwe%@UU;6yBH@y-z8h9q(R-3Aig$;M=@2`X_+yeCMO-cUI~Uat3NI?MdJtg>G#W?S3)}3Q}i*lEsdM&E1|VB{sObB3yp8r z5h2=D(B+-DJzoL!k23qJHe9HJGH@zi0 zqR9KsElA(2cU5-psRqSd)vS=ilKPmPR{Xvv)xi9%khH=D$rm*H{l>m(uytn4tNqU6 zuV^J1)PR7ra>|sM3i?>$Rpkip8aVuC#k}!*kUT37kCU#d0h5RNvIh$gzsdKKsCF%w z3NCHxszdd!puES=u@)4s-+z2;7`2~VXza_pTJTv`x9G+>)c%!vZ>^QZN*d6CAr} zB>3e5%HQ$#{!I&-Va~wCokkLfuipGJ*ryqO?L9u(YAJdjd1pyY?P&%P+m~9Ws!)9n zC;nM!Pt1_uSt%mzDrf|k6vnp zU4cU3!gA<+4X)<@S=$O{mn(=3KKhDd3wy7rtZ##EAF0l1rO1AWC`!sEw!ulW-*!?e zXgrnbUs^T29lpc`Mr^4??~`+!Ote=!9G#*cqqG8*C!M(b4%PvZ*DB3Ia*#c;&H9pg zssp;ueUrWQ5Iw(vU7{tz&l{RO*Ivp7=`%ik>SitEUl>V0IdoD@A8WdKe7AKc{7@T= ztlKsdtrO{4bU#77q}zmb0_goJ0*8eyoiH4GB{UV`_^I47*tr3Y8M|OT)(->&*#b`>O1K{@vYVlSntv4#Di#pr~QnR2OZn{&g!89m|Iu;{ zqVKL*4#p$Azc$;C8y|X~+GQ$09Z8`I_7Ri0#;&mNEMBfkndKroE|IB&`X#tTc+==g4L=M{t>I3abpOL%Sv9Cp|*nvC!R-L3`Q z$V2#neO)iHT7(~X$KvYIUW6ZLHL>=?I7ChALZ(f~?tn#$U96`e9Ki$9hoa}8I1#bq z9Z(xIbB@N#4zTl|Ro)ke^q|Udb4pAHl&?DBe&$&R zbUo2=p7|8X)7!r|KdJ+kPw9Ss@*&cP5vUM(&;e(!@w^Yd*8$Pa>yN00bwES7Zu)}| zl<#TA2l=255VdT°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 Oz@5 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°h+VCinm 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 literal 0 HcmV?d00001 diff --git a/Disco.Web/_bin_deployableAssemblies/amd64/sqlcecompact40.dll b/Disco.Web/_bin_deployableAssemblies/amd64/sqlcecompact40.dll new file mode 100644 index 0000000000000000000000000000000000000000..ed061adee6683c2c5beb3fba60603617fc143275 GIT binary patch literal 106720 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%0D_CG^6M{BJ9WSq8U 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 literal 0 HcmV?d00001 diff --git a/Disco.Web/_bin_deployableAssemblies/amd64/sqlceer40EN.dll b/Disco.Web/_bin_deployableAssemblies/amd64/sqlceer40EN.dll new file mode 100644 index 0000000000000000000000000000000000000000..e19eed9bda9a4230b54d4e182426970e9985a03f GIT binary patch literal 154848 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êsM@8Uk(|SB!x5Gv$YnJB$A`DWEFbk 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

vVv=EmC~@?OG=mzBrd)iD3NzXFooHNeI9efwH7) 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 AQvd(} literal 0 HcmV?d00001 diff --git a/Disco.Client/Package Creation/7z.exe b/Disco.Client/Package Creation/7z.exe new file mode 100644 index 0000000000000000000000000000000000000000..101884c3226054769c1b2bcf6450219082f1c263 GIT binary patch literal 163840 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