Skip to content

Commit

Permalink
Merge pull request #392 from SMI/release/v1.12.0
Browse files Browse the repository at this point in the history
Release v1.12.0
  • Loading branch information
rkm authored Sep 14, 2020
2 parents e44036d + ee4765f commit d6d67d7
Show file tree
Hide file tree
Showing 178 changed files with 3,982 additions and 1,026 deletions.
49 changes: 48 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,52 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),

## [Unreleased]

## [1.12.0] - 2020-09-14

### Added

- [breaking] Add identifiable extraction support
- New service "FileCopier" which sits in place of CTP for identifiable extractions and copies source files to their output dirs
- Changes to MongoDB extraction schema, but backwards compatibility has been tested
- RabbitMQ extraction config has been refactored. Queues and service config files need to be updated
- Add [SecurityCodeScan](https://security-code-scan.github.io/) tool to build chain for .NET code
- Add "no filters" extraction support. If specified when running ExtractorCLI, no file rejection filters will be applied by CohortExtractor. True by default for identifiable extractions
- Added caching of values looked up in NLP/rulesbase for IsIdentifiable tool
- Added new rejector that throws out values (e.g. patient IDs) whose IDs are stored in a database table. Set `RejectColumnInfos` option in yaml to enable this
- Added a check to QueryToExecuteResult for RejectReason being null when Reject is true.

### Changed

- [breaking] Environment variables are no longer required. Previous settings now appear in configuration file
- Environment variable `SMI_LOGS_ROOT` is now `GlobalOptions.LogsRoot`
- Environment variable `MONGO_SERVICE_PASSWORD` is now `MongoDbOptions.Password`
- Removed `ISIDENTIFIABLE_NUMTHREADS` as it didn't work correctly anyway
- Extraction report: Group PixelData separately and sort by length
- IsIdentifiable Reviewer 'Symbols' rule factory now supports digits only or characters only mode (e.g. use `\d` for digits but leave characters verbatim)
- IsIdentifiable Reviewer 'symbols' option when building Regex now builds capture groups and matches only the failing parts of the input string not the full ProblemValue. For example `MR Head 12-11-20` would return `(\d\d-\d\d-\d\d)$`

### Fixed

- Fix the extraction output directory to be `<projId>/extractions/<extractname>`

### Dependencies

- Bump fo-dicom.Drawing from 4.0.5 to 4.0.6
- Bump fo-dicom.NetCore from 4.0.5 to 4.0.6
- Bump HIC.BadMedicine.Dicom from 0.0.6 to 0.0.7
- Bump HIC.DicomTypeTranslation from 2.3.0 to 2.3.1
- Bump HIC.FAnsiSql from 1.0.2 to 1.0.5
- Bump HIC.RDMP.Dicom from 2.1.6 to 2.1.10
- Bump HIC.RDMP.Plugin from 4.1.6 to 4.1.8
- Bump HIC.RDMP.Plugin.Test from 4.1.6 to 4.1.8
- Bump Microsoft.CodeAnalysis.CSharp.Scripting from 3.6.0 to 3.7.0
- Bump Microsoft.Extensions.Caching.Memory from 3.1.6 to 3.1.8
- Bump Microsoft.NET.Test.Sdk from 16.6.1 to 16.7.1
- Bump MongoDB.Driver from 2.11.0 to 2.11.2
- Bump System.IO.Abstractions from 12.1.1 to 12.1.9
- Bump System.IO.Abstractions.TestingHelpers from 12.1.1 to 12.1.9
- Bump Terminal.Gui from 0.81.0 to 0.89.4

## [1.11.1] - 2020-08-12

- Set PublishTrimmed to false to fix bug with missing assemblies in prod.
Expand Down Expand Up @@ -366,7 +412,8 @@ First stable release after importing the repository from the private [SMIPlugin]
- Anonymous `MappingTableName` must now be fully specified to pass validation (e.g. `mydb.mytbl`). Previously skipping database portion was supported.


[Unreleased]: https://github.com/SMI/SmiServices/compare/v1.11.1...develop
[Unreleased]: https://github.com/SMI/SmiServices/compare/v1.12.0...develop
[1.12.0]: https://github.com/SMI/SmiServices/compare/v1.11.1...v1.12.0
[1.11.1]: https://github.com/SMI/SmiServices/compare/v1.11.0...v1.11.1
[1.11.0]: https://github.com/SMI/SmiServices/compare/v1.10.0...v1.11.0
[1.10.0]: https://github.com/SMI/SmiServices/compare/v1.9.0...v1.10.0
Expand Down
59 changes: 30 additions & 29 deletions PACKAGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,32 +7,33 @@
2. This package is widely used and is actively maintained.
3. It is open source.

| Package | Source Code | Version | License | Purpose | Additional Risk Assessment |
| ------- | ------------| --------| ------- | ------- | -------------------------- |
| CommandLineParser | [GitHub](https://github.com/commandlineparser/commandline) | [2.8.0](https://www.nuget.org/packages/CommandLineParser/2.8.0) | [MIT](https://opensource.org/licenses/MIT)| Command line argument parsing | |
| CsvHelper | [GitHub](https://github.com/JoshClose/CsvHelper) | [15.0.5](https://www.nuget.org/packages/CsvHelper/15.0.5) | [MS-PL and Apache 2.0](https://github.com/JoshClose/CsvHelper/blob/master/LICENSE.txt)| Writting reports out to CSV reports | |
| fo-dicom.NetCore | [GitHub](https://github.com/fo-dicom/fo-dicom) | [4.0.5](https://www.nuget.org/packages/fo-dicom.NetCore/4.0.5) | [MS-PL](https://opensource.org/licenses/MS-PL) | | |
| HIC.DicomTypeTranslation | [GitHub](https://github.com/HicServices/DicomTypeTranslation) | [2.3.0](https://www.nuget.org/packages/HIC.DicomTypeTranslation/2.3.0) | [GPL 3.0](https://www.gnu.org/licenses/gpl-3.0.html) | Translate dicom types into C# / database types | |
| HIC.FAnsiSql | [GitHub](https://github.com/HicServices/FansiSql) | [1.0.2](https://www.nuget.org/packages/HIC.FAnsiSql/1.0.2) | [GPL 3.0](https://www.gnu.org/licenses/gpl-3.0.html) | Database abstraction layer | |
| HIC.RDMP.Dicom | [GitHub](https://github.com/HicServices/RdmpDicom) | [2.1.6](https://www.nuget.org/packages/HIC.RDMP.Dicom/2.1.6) | [GPL 3.0](https://www.gnu.org/licenses/gpl-3.0.html) | RDMP Plugin containing data load / pipeline components for imaging, reading dicom files etc | |
| HIC.RDMP.Plugin | [GitHub](https://github.com/HicServices/RDMP) | [4.1.6](https://www.nuget.org/packages/HIC.RDMP.Plugin/4.1.6) | [GPL 3.0](https://www.gnu.org/licenses/gpl-3.0.html) | Interact with RDMP objects, base classes for plugin components etc | |
| JetBrains.Annotations | | [2020.1.0](https://www.nuget.org/packages/JetBrains.Annotations/2020.1.0) |[MIT](https://opensource.org/licenses/MIT) | Static analysis tool | |
| Magick.NET-Q16-AnyCPU | [GitHub](https://github.com/dlemstra/Magick.NET) | [7.21.1](https://www.nuget.org/packages/Magick.NET-Q16-AnyCPU/7.21.1) | [Apache License v2](https://github.com/dlemstra/Magick.NET/blob/master/License.txt) | The .NET library for [ImageMagick](https://imagemagick.org/index.php) | |
| Microsoft.CodeAnalysis.CSharp.Scripting | [GitHub](https://github.com/dotnet/roslyn) | [3.6.0](https://www.nuget.org/packages/Microsoft.CodeAnalysis.CSharp.Scripting/3.6.0) | [MIT](https://opensource.org/licenses/MIT) | Supports dynamic rules for cohort extraction logic | |
| Microsoft.Extensions.Caching.Memory | [GitHub](https://github.com/dotnet/extensions) | [3.1.6](https://www.nuget.org/packages/Microsoft.Extensions.Caching.Memory/3.1.6) | [Apache 2.0](https://www.nuget.org/packages/Microsoft.Extensions.Caching.Memory/3.1.6/License) | Caching ID mappings retrieved from Redis/MySQL |
| MongoDB.Driver | [GitHub](https://github.com/mongodb/mongo-csharp-driver) |[2.11.0](https://www.nuget.org/packages/MongoDB.Driver/2.11.0)| [Apache 2.0](https://www.nuget.org/packages/MongoDB.Driver/2.11.0/License) | For writting/reading dicom tags into MongoDb databases|
| NLog | [GitHub](https://github.com/NLog/NLog) | [4.6.4](https://www.nuget.org/packages/NLog/4.6.4) | [BSD 3-Clause](https://github.com/NLog/NLog/blob/dev/LICENSE.txt) | Flexible user configurable logging | |
| Newtonsoft.Json | [GitHub](https://github.com/JamesNK/Newtonsoft.Json) | [12.0.3](https://www.nuget.org/packages/Newtonsoft.Json/12.0.3) | [MIT](https://opensource.org/licenses/MIT) | Serialization of objects for sharing/transmission |
| RabbitMQ.Client | [GitHub](https://github.com/rabbitmq/rabbitmq-dotnet-client) | [5.1.2](https://www.nuget.org/packages/RabbitMQ.Client/5.1.2) | [Apache License v2 / MPL 1.1](https://github.com/rabbitmq/rabbitmq-dotnet-client/blob/master/LICENSE) | Handles messaging between microservices | |
| StackExchange.Redis | [GitHub](https://github.com/StackExchange/StackExchange.Redis) | [2.1.58](https://www.nuget.org/packages/StackExchange.Redis/2.1.58) |[MIT](https://opensource.org/licenses/MIT) | Required for RedisSwapper | |
| Stanford.NLP.CoreNLP | [GitHub Pages](https://sergey-tihon.github.io/Stanford.NLP.NET/) | [3.9.2](https://www.nuget.org/packages/Stanford.NLP.CoreNLP/3.9.2) | [GNU v2](https://github.com/sergey-tihon/Stanford.NLP.NET/blob/master/LICENSE.txt)| Name / Organisation detection in text | |
| System.Drawing.Common | [GitHub](https://github.com/dotnet/corefx) | [4.7.0](https://www.nuget.org/packages/System.Drawing.Common/4.7.0) | [MIT](https://opensource.org/licenses/MIT) | Supports reading pixel data | |
| System.IO.Abstractions | [GitHub](https://github.com/System-IO-Abstractions/System.IO.Abstractions) | [12.1.1](https://www.nuget.org/packages/System.IO.Abstractions/12.1.1) | [MIT](https://opensource.org/licenses/MIT) | Makes file system injectable in tests | |
| System.IO.FileSystem | [GitHub](https://github.com/dotnet/corefx) | [4.3.0](https://www.nuget.org/packages/System.IO.FileSystem/4.3.0) |[MIT](https://opensource.org/licenses/MIT) | File I/O | |
| System.Security.AccessControl | [GitHub](https://github.com/dotnet/corefx) | [4.7.0](https://www.nuget.org/packages/System.Security.AccessControl/4.7.0) |[MIT](https://opensource.org/licenses/MIT) | File access perimssions| |
| Terminal.Gui | [GitHub](https://github.com/migueldeicaza/gui.cs/) | [0.81.0](https://www.nuget.org/packages/Terminal.Gui/0.81.0) |[MIT](https://opensource.org/licenses/MIT) | Console GUI library | |
| Tesseract | [GitHub](https://github.com/charlesw/tesseract/) | [4.1.0-beta1](https://www.nuget.org/packages/Tesseract/4.1.0-beta1) |[Apache License v2](https://github.com/charlesw/tesseract/blob/master/LICENSE.txt) | Optical Character Recognition in Dicom Pixel data| |
| YamlDotNet | [GitHub](https://github.com/aaubry/YamlDotNet) | [8.1.2](https://www.nuget.org/packages/YamlDotNet/8.1.2) | [MIT](https://opensource.org/licenses/MIT) |Loading configuration files|
| fo-dicom.Drawing | [GitHub](https://github.com/fo-dicom/fo-dicom) | [4.0.5](https://www.nuget.org/packages/fo-Dicom.Drawing/4.0.5) | [MS-PL](https://opensource.org/licenses/MS-PL)| Support library for reading DICOM pixel data | |
| coveralls.io | [GitHub](https://github.com/coveralls-net/coveralls.net) | [1.4.2](https://www.nuget.org/packages/coveralls.io/1.4.2) | [GNU](https://github.com/coveralls-net/coveralls.net#license)| Uploader for dot net coverage reports to Coveralls.io | |
| OpenCover | [GitHub](https://github.com/OpenCover/opencover) | [4.7.922](https://www.nuget.org/packages/OpenCover/4.7.922) |[MIT Compatible](https://github.com/OpenCover/opencover/blob/master/LICENSE) | Calculates code coverage for tests| |
| Package | Source Code | License | Purpose
| ------- | ------------| ------- | ------- |
| CommandLineParser | [GitHub](https://github.com/commandlineparser/commandline) | [MIT](https://opensource.org/licenses/MIT)| Command line argument parsing |
| CsvHelper | [GitHub](https://github.com/JoshClose/CsvHelper) | [MS-PL and Apache 2.0](https://github.com/JoshClose/CsvHelper/blob/master/LICENSE.txt)| Writting reports out to CSV reports |
| fo-dicom.NetCore | [GitHub](https://github.com/fo-dicom/fo-dicom) | [MS-PL](https://opensource.org/licenses/MS-PL) | |
| HIC.DicomTypeTranslation | [GitHub](https://github.com/HicServices/DicomTypeTranslation) | [GPL 3.0](https://www.gnu.org/licenses/gpl-3.0.html) | Translate dicom types into C# / database types |
| HIC.FAnsiSql | [GitHub](https://github.com/HicServices/FansiSql) | [GPL 3.0](https://www.gnu.org/licenses/gpl-3.0.html) | Database abstraction layer |
| HIC.RDMP.Dicom | [GitHub](https://github.com/HicServices/RdmpDicom) | [GPL 3.0](https://www.gnu.org/licenses/gpl-3.0.html) | RDMP Plugin containing data load / pipeline components for imaging, reading dicom files etc |
| HIC.RDMP.Plugin | [GitHub](https://github.com/HicServices/RDMP) | [GPL 3.0](https://www.gnu.org/licenses/gpl-3.0.html) | Interact with RDMP objects, base classes for plugin components etc |
| JetBrains.Annotations | |[MIT](https://opensource.org/licenses/MIT) | Static analysis tool |
| Magick.NET-Q16-AnyCPU | [GitHub](https://github.com/dlemstra/Magick.NET) | [Apache License v2](https://github.com/dlemstra/Magick.NET/blob/master/License.txt) | The .NET library for [ImageMagick](https://imagemagick.org/index.php) |
| Microsoft.CodeAnalysis.CSharp.Scripting | [GitHub](https://github.com/dotnet/roslyn) | [MIT](https://opensource.org/licenses/MIT) | Supports dynamic rules for cohort extraction logic |
| Microsoft.Extensions.Caching.Memory | [GitHub](https://github.com/dotnet/extensions) | [Apache 2.0](https://www.nuget.org/packages/Microsoft.Extensions.Caching.Memory/3.1.7/License) | Caching ID mappings retrieved from Redis/MySQL
| MongoDB.Driver | [GitHub](https://github.com/mongodb/mongo-csharp-driver) | [Apache 2.0](https://www.nuget.org/packages/MongoDB.Driver/2.11.1/License) | For writting/reading dicom tags into MongoDb databases
| NLog | [GitHub](https://github.com/NLog/NLog) | [BSD 3-Clause](https://github.com/NLog/NLog/blob/dev/LICENSE.txt) | Flexible user configurable logging |
| Newtonsoft.Json | [GitHub](https://github.com/JamesNK/Newtonsoft.Json) | [MIT](https://opensource.org/licenses/MIT) | Serialization of objects for sharing/transmission
| RabbitMQ.Client | [GitHub](https://github.com/rabbitmq/rabbitmq-dotnet-client) | [Apache License v2 / MPL 1.1](https://github.com/rabbitmq/rabbitmq-dotnet-client/blob/master/LICENSE) | Handles messaging between microservices |
| SecurityCodeScan | [GitHub](https://security-code-scan.github.io/) | [LGPL 3.0](https://opensource.org/licenses/lgpl-3.0.html) | Scans code for security issues during build |
| StackExchange.Redis | [GitHub](https://github.com/StackExchange/StackExchange.Redis) |[MIT](https://opensource.org/licenses/MIT) | Required for RedisSwapper |
| Stanford.NLP.CoreNLP | [GitHub Pages](https://sergey-tihon.github.io/Stanford.NLP.NET/) | [GNU v2](https://github.com/sergey-tihon/Stanford.NLP.NET/blob/master/LICENSE.txt)| Name / Organisation detection in text |
| System.Drawing.Common | [GitHub](https://github.com/dotnet/corefx) | [MIT](https://opensource.org/licenses/MIT) | Supports reading pixel data |
| System.IO.Abstractions | [GitHub](https://github.com/System-IO-Abstractions/System.IO.Abstractions) | [MIT](https://opensource.org/licenses/MIT) | Makes file system injectable in tests |
| System.IO.FileSystem | [GitHub](https://github.com/dotnet/corefx) |[MIT](https://opensource.org/licenses/MIT) | File I/O |
| System.Security.AccessControl | [GitHub](https://github.com/dotnet/corefx) |[MIT](https://opensource.org/licenses/MIT) | File access perimssions|
| Terminal.Gui | [GitHub](https://github.com/migueldeicaza/gui.cs/) |[MIT](https://opensource.org/licenses/MIT) | Console GUI library |
| Tesseract | [GitHub](https://github.com/charlesw/tesseract/) |[Apache License v2](https://github.com/charlesw/tesseract/blob/master/LICENSE.txt) | Optical Character Recognition in Dicom Pixel data|
| YamlDotNet | [GitHub](https://github.com/aaubry/YamlDotNet) | [MIT](https://opensource.org/licenses/MIT) |Loading configuration files
| fo-dicom.Drawing | [GitHub](https://github.com/fo-dicom/fo-dicom) | [MS-PL](https://opensource.org/licenses/MS-PL)| Support library for reading DICOM pixel data |
| coveralls.io | [GitHub](https://github.com/coveralls-net/coveralls.net) | [GNU](https://github.com/coveralls-net/coveralls.net#license)| Uploader for dot net coverage reports to Coveralls.io |
| OpenCover | [GitHub](https://github.com/OpenCover/opencover) |[MIT Compatible](https://github.com/OpenCover/opencover/blob/master/LICENSE) | Calculates code coverage for tests|
16 changes: 1 addition & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
[![Total alerts](https://img.shields.io/lgtm/alerts/g/SMI/SmiServices.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/SMI/SmiServices/alerts/)
[![Coverage Status](https://coveralls.io/repos/github/SMI/SmiServices/badge.svg)](https://coveralls.io/github/SMI/SmiServices)

Version: `1.11.1`
Version: `1.12.0`

# SMI Services

Expand All @@ -21,7 +21,6 @@ The latest binaries can be downloaded from the [releases section](https://github
1. [Microservices](#microservices)
1. [Data Load Microservices](#data-load-microservices)
2. [Image Extraction Microservices](#image-extraction-microservices)
1. [Environment Variables](#environment-variables)
2. [Solution Overivew](#solution-overview)
3. [Building](#building)
4. [Testing](#testing)
Expand Down Expand Up @@ -74,19 +73,6 @@ A control queue is provided for controlling Microservices during runtime. It su
| Fatal Error Logging | All Microservices that crash or log a fatal error are shut down and log a message to the Fatal Error Logging Exchange. TODO: Nobody listens to this currently.|
| Quarantine | TODO: Doesn't exist yet.|

## Environment Variables

The following environment variables are expected by the program:

>TODO can we move `ISIDENTIFIABLE_NUMTHREADS` to config yaml/CLI?
| Name | Purpose | Example |
|------|---------|---------|
| SMI_LOGS_ROOT | Required to be set if `ForceSmiLogsRoot` is set to `true` in the service config. Determines where log files are written to | `/var/log/smi` |
| MONGO_SERVICE_PASSWORD | Password that should be used to access the MongoDb database used by ETL pipeline services | MyPassword|
| ISIDENTIFIABLE_NUMTHREADS | Optional (defaults to 1). The number of threads to use when looking for identifiable data in extraction pipeline | 1|
| CI | When running tests in a CI, this ensures that integration tests are failed instead of skipped | 1|

## Solution Overview

Appart from the Microservices (documented above) the following library classes are also included in the solution:
Expand Down
16 changes: 15 additions & 1 deletion SmiServices.sln
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@


Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29411.108
Expand Down Expand Up @@ -75,6 +75,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microservices.IsIdentifiabl
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IsIdentifiableReviewer", "src\applications\IsIdentifiableReviewer\IsIdentifiableReviewer.csproj", "{C2031E86-81B4-405A-A923-9B82E0CE196F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microservices.FileCopier", "src\microservices\Microservices.FileCopier\Microservices.FileCopier.csproj", "{D4E52707-FFF7-41E6-8057-C6DB344B8CD7}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microservices.FileCopier.Tests", "tests\microservices\Microservices.FileCopier.Tests\Microservices.FileCopier.Tests.csproj", "{D61F6BF9-E857-457C-B745-40489A8CFE65}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
Expand Down Expand Up @@ -181,6 +185,14 @@ Global
{C2031E86-81B4-405A-A923-9B82E0CE196F}.Debug|x64.Build.0 = Debug|x64
{C2031E86-81B4-405A-A923-9B82E0CE196F}.Release|x64.ActiveCfg = Release|x64
{C2031E86-81B4-405A-A923-9B82E0CE196F}.Release|x64.Build.0 = Release|x64
{D4E52707-FFF7-41E6-8057-C6DB344B8CD7}.Debug|x64.ActiveCfg = Debug|x64
{D4E52707-FFF7-41E6-8057-C6DB344B8CD7}.Debug|x64.Build.0 = Debug|x64
{D4E52707-FFF7-41E6-8057-C6DB344B8CD7}.Release|x64.ActiveCfg = Release|x64
{D4E52707-FFF7-41E6-8057-C6DB344B8CD7}.Release|x64.Build.0 = Release|x64
{D61F6BF9-E857-457C-B745-40489A8CFE65}.Debug|x64.ActiveCfg = Debug|x64
{D61F6BF9-E857-457C-B745-40489A8CFE65}.Debug|x64.Build.0 = Debug|x64
{D61F6BF9-E857-457C-B745-40489A8CFE65}.Release|x64.ActiveCfg = Release|x64
{D61F6BF9-E857-457C-B745-40489A8CFE65}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down Expand Up @@ -211,6 +223,8 @@ Global
{1A27E9E8-F16E-43F9-927E-5FE92E2F97D8} = {421CCD37-3817-4748-B184-A134E19DD75C}
{E632E673-0766-4A4D-ABE3-4B6D4F5BEFE2} = {421CCD37-3817-4748-B184-A134E19DD75C}
{C2031E86-81B4-405A-A923-9B82E0CE196F} = {8B943F2C-835B-484A-86D2-3F1462970605}
{D4E52707-FFF7-41E6-8057-C6DB344B8CD7} = {421CCD37-3817-4748-B184-A134E19DD75C}
{D61F6BF9-E857-457C-B745-40489A8CFE65} = {421CCD37-3817-4748-B184-A134E19DD75C}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {11CDEA53-71E8-4A9B-BC0D-74F4EB54F740}
Expand Down
Loading

0 comments on commit d6d67d7

Please sign in to comment.