From 2a1cd4fda8a4a8e649910d16b4dfa1ce7ae63543 Mon Sep 17 00:00:00 2001
From: chai <215380520@qq.com>
Date: Fri, 12 May 2023 09:24:40 +0800
Subject: *misc
---
.../CsvHelper-master/src/CsvHelper/ArrayHelper.cs | 78 ++
.../src/CsvHelper/BadDataException.cs | 67 +
.../Attributes/AllowCommentsAttribute.cs | 35 +
.../Attributes/BooleanFalseValuesAttribute.cs | 52 +
.../Attributes/BooleanTrueValuesAttribute.cs | 52 +
.../Attributes/BufferSizeAttribute.cs | 36 +
.../Attributes/CacheFieldsAttribute.cs | 36 +
.../Configuration/Attributes/CommentAttribute.cs | 36 +
.../Configuration/Attributes/ConstantAttribute.cs | 47 +
.../Attributes/CountBytesAttribute.cs | 45 +
.../Attributes/CultureInfoAttribute.cs | 46 +
.../Attributes/DateTimeStylesAttribute.cs | 44 +
.../Configuration/Attributes/DefaultAttribute.cs | 45 +
.../Configuration/Attributes/DelimiterAttribute.cs | 35 +
.../DetectColumnCountChangesAttribute.cs | 40 +
.../Attributes/DetectDelimiterAttribute.cs | 35 +
.../Attributes/DetectDelimiterValuesAttribute.cs | 37 +
.../Configuration/Attributes/EncodingAttribute.cs | 36 +
.../Attributes/EnumIgnoreCaseAttribute.cs | 41 +
.../Configuration/Attributes/EscapeAttribute.cs | 35 +
.../ExceptionMessagesContainRawDataAttribute.cs | 39 +
.../Configuration/Attributes/FormatAttribute.cs | 50 +
.../Attributes/HasHeaderRecordAttribute.cs | 35 +
.../Attributes/HeaderPrefixAttribute.cs | 73 +
.../Configuration/Attributes/IClassMapper.cs | 19 +
.../Configuration/Attributes/IMemberMapper.cs | 20 +
.../Attributes/IMemberReferenceMapper.cs | 20 +
.../Configuration/Attributes/IParameterMapper.cs | 24 +
.../Attributes/IParameterReferenceMapper.cs | 24 +
.../Configuration/Attributes/IgnoreAttribute.cs | 41 +
.../Attributes/IgnoreBaseAttribute.cs | 20 +
.../Attributes/IgnoreBlankLinesAttribute.cs | 35 +
.../Attributes/IgnoreReferencesAttribute.cs | 41 +
.../Attributes/IncludePrivateMembersAttribute.cs | 35 +
.../Configuration/Attributes/IndexAttribute.cs | 57 +
.../Attributes/InjectionCharactersAttribute.cs | 37 +
.../InjectionEscapeCharacterAttribute.cs | 35 +
.../Attributes/InjectionOptionsAttribute.cs | 35 +
.../LineBreakInQuotedFieldIsBadDataAttribute.cs | 39 +
.../Attributes/MaxFieldSizeAttribute.cs | 40 +
.../Attributes/MemberTypesAttribute.cs | 40 +
.../Configuration/Attributes/ModeAttribute.cs | 38 +
.../Configuration/Attributes/NameAttribute.cs | 77 ++
.../Configuration/Attributes/NameIndexAttribute.cs | 45 +
.../Configuration/Attributes/NewLineAttribute.cs | 39 +
.../Attributes/NullValuesAttribute.cs | 52 +
.../Attributes/NumberStylesAttribute.cs | 44 +
.../Configuration/Attributes/OptionalAttribute.cs | 27 +
.../Attributes/ProcessFieldBufferSizeAttribute.cs | 36 +
.../Configuration/Attributes/QuoteAttribute.cs | 35 +
.../Attributes/TrimOptionsAttribute.cs | 35 +
.../Attributes/TypeConverterAttribute.cs | 57 +
...UseNewObjectForNullReferenceMembersAttribute.cs | 47 +
.../Attributes/WhiteSpaceCharsAttribute.cs | 41 +
.../src/CsvHelper/Configuration/ClassMap.cs | 648 +++++++++
.../src/CsvHelper/Configuration/ClassMapBuilder.cs | 432 ++++++
.../CsvHelper/Configuration/ClassMapCollection.cs | 188 +++
.../src/CsvHelper/Configuration/ClassMap`1.cs | 112 ++
.../Configuration/ConfigurationException.cs | 36 +
.../Configuration/ConfigurationFunctions.cs | 267 ++++
.../CsvHelper/Configuration/CsvConfiguration.cs | 240 ++++
.../CsvHelper/Configuration/DefaultClassMap`1.cs | 15 +
.../Configuration/IParserConfiguration.cs | 176 +++
.../Configuration/IReaderConfiguration.cs | 111 ++
.../Configuration/IWriterConfiguration.cs | 168 +++
.../CsvHelper/Configuration/InjectionOptions.cs | 31 +
.../src/CsvHelper/Configuration/MemberMap.cs | 244 ++++
.../CsvHelper/Configuration/MemberMapCollection.cs | 247 ++++
.../CsvHelper/Configuration/MemberMapComparer.cs | 74 +
.../src/CsvHelper/Configuration/MemberMapData.cs | 167 +++
.../Configuration/MemberMapTypeConverterOption.cs | 167 +++
.../src/CsvHelper/Configuration/MemberMap`1.cs | 270 ++++
.../Configuration/MemberNameCollection.cs | 98 ++
.../CsvHelper/Configuration/MemberReferenceMap.cs | 68 +
.../Configuration/MemberReferenceMapCollection.cs | 164 +++
.../Configuration/MemberReferenceMapData.cs | 68 +
.../src/CsvHelper/Configuration/MemberTypes.cs | 32 +
.../src/CsvHelper/Configuration/ParameterMap.cs | 212 +++
.../CsvHelper/Configuration/ParameterMapData.cs | 106 ++
.../ParameterMapTypeConverterOption.cs | 160 +++
.../Configuration/ParameterReferenceMap.cs | 66 +
.../Configuration/ParameterReferenceMapData.cs | 70 +
.../src/CsvHelper/Configuration/TrimOptions.cs | 30 +
.../CsvHelper-master/src/CsvHelper/CsvContext.cs | 202 +++
.../src/CsvHelper/CsvDataReader.cs | 387 ++++++
.../src/CsvHelper/CsvHelper.csproj | 92 ++
.../CsvHelper/CsvHelper.net45.v3.ncrunchproject | 5 +
.../CsvHelper/CsvHelper.net47.v3.ncrunchproject | 5 +
.../CsvHelper/CsvHelper.net5.0.v3.ncrunchproject | 5 +
.../CsvHelper/CsvHelper.net50.v3.ncrunchproject | 5 +
.../CsvHelper/CsvHelper.net6.0.v3.ncrunchproject | 5 +
.../CsvHelper/CsvHelper.net60.v3.ncrunchproject | 5 +
.../CsvHelper.netstandard2.0.v3.ncrunchproject | 5 +
.../CsvHelper.netstandard2.1.v3.ncrunchproject | 5 +
.../CsvHelper-master/src/CsvHelper/CsvHelper.snk | Bin 0 -> 596 bytes
.../src/CsvHelper/CsvHelperException.cs | 144 ++
.../CsvHelper-master/src/CsvHelper/CsvMode.cs | 43 +
.../CsvHelper-master/src/CsvHelper/CsvParser.cs | 1194 ++++++++++++++++
.../CsvHelper-master/src/CsvHelper/CsvReader.cs | 1419 ++++++++++++++++++++
.../CsvHelper-master/src/CsvHelper/CsvWriter.cs | 842 ++++++++++++
.../src/CsvHelper/Delegates/BadDataFound.cs | 52 +
.../src/CsvHelper/Delegates/ConvertFromString.cs | 40 +
.../src/CsvHelper/Delegates/ConvertToString.cs | 41 +
.../src/CsvHelper/Delegates/GetConstructor.cs | 38 +
.../src/CsvHelper/Delegates/GetDelimiter.cs | 44 +
.../CsvHelper/Delegates/GetDynamicPropertyName.cs | 44 +
.../src/CsvHelper/Delegates/HeaderValidated.cs | 46 +
.../src/CsvHelper/Delegates/MissingFieldFound.cs | 53 +
.../CsvHelper/Delegates/PrepareHeaderForMatch.cs | 47 +
.../Delegates/ReadingExceptionOccurred.cs | 40 +
.../CsvHelper/Delegates/ReferenceHeaderPrefix.cs | 44 +
.../src/CsvHelper/Delegates/ShouldQuote.cs | 51 +
.../src/CsvHelper/Delegates/ShouldSkipRecord.cs | 37 +
.../Delegates/ShouldUseConstructorParameters.cs | 38 +
.../src/CsvHelper/Delegates/Validate.cs | 53 +
.../src/CsvHelper/EnumerableExtensions.cs | 27 +
.../CsvHelper/Expressions/DynamicRecordCreator.cs | 61 +
.../CsvHelper/Expressions/DynamicRecordWriter.cs | 75 ++
.../Expressions/ExpandoObjectRecordWriter.cs | 49 +
.../src/CsvHelper/Expressions/ExpressionManager.cs | 490 +++++++
.../CsvHelper/Expressions/ObjectRecordCreator.cs | 66 +
.../CsvHelper/Expressions/ObjectRecordWriter.cs | 124 ++
.../Expressions/PrimitiveRecordCreator.cs | 49 +
.../CsvHelper/Expressions/PrimitiveRecordWriter.cs | 57 +
.../src/CsvHelper/Expressions/RecordCreator.cs | 107 ++
.../CsvHelper/Expressions/RecordCreatorFactory.cs | 51 +
.../src/CsvHelper/Expressions/RecordHydrator.cs | 126 ++
.../src/CsvHelper/Expressions/RecordManager.cs | 80 ++
.../src/CsvHelper/Expressions/RecordWriter.cs | 109 ++
.../CsvHelper/Expressions/RecordWriterFactory.cs | 61 +
.../CsvHelper-master/src/CsvHelper/Factory.cs | 108 ++
.../CsvHelper-master/src/CsvHelper/FieldCache.cs | 137 ++
.../src/CsvHelper/FieldValidationException.cs | 55 +
.../src/CsvHelper/HeaderValidationException.cs | 55 +
.../CsvHelper-master/src/CsvHelper/IFactory.cs | 85 ++
.../src/CsvHelper/IObjectResolver.cs | 57 +
.../CsvHelper-master/src/CsvHelper/IParser.cs | 89 ++
.../CsvHelper-master/src/CsvHelper/IReader.cs | 126 ++
.../CsvHelper-master/src/CsvHelper/IReaderRow.cs | 428 ++++++
.../CsvHelper-master/src/CsvHelper/IWriter.cs | 86 ++
.../CsvHelper-master/src/CsvHelper/IWriterRow.cs | 135 ++
ThirdParty/CsvHelper-master/src/CsvHelper/Icon.png | Bin 0 -> 728 bytes
.../src/CsvHelper/InvalidHeader.cs | 28 +
.../src/CsvHelper/LinkedListExtensions.cs | 29 +
.../src/CsvHelper/MaxFieldSizeException.cs | 39 +
.../src/CsvHelper/MissingFieldException.cs | 40 +
.../src/CsvHelper/ObjectCreator.cs | 218 +++
.../src/CsvHelper/ObjectResolver.cs | 143 ++
.../src/CsvHelper/ParserException.cs | 39 +
.../src/CsvHelper/Properties/AssemblyInfo.cs | 13 +
.../src/CsvHelper/ReaderException.cs | 39 +
.../src/CsvHelper/ReflectionExtensions.cs | 155 +++
.../src/CsvHelper/ReflectionHelper.cs | 204 +++
.../src/CsvHelper/TypeConversion/ArrayConverter.cs | 73 +
.../TypeConversion/BigIntegerConverter.cs | 57 +
.../CsvHelper/TypeConversion/BooleanConverter.cs | 72 +
.../CsvHelper/TypeConversion/ByteArrayConverter.cs | 126 ++
.../TypeConversion/ByteArrayConverterOptions.cs | 44 +
.../src/CsvHelper/TypeConversion/ByteConverter.cs | 34 +
.../src/CsvHelper/TypeConversion/CharConverter.cs | 36 +
.../TypeConversion/CollectionConverterFactory.cs | 175 +++
.../TypeConversion/CollectionGenericConverter.cs | 64 +
.../CsvHelper/TypeConversion/DateOnlyConverter.cs | 40 +
.../CsvHelper/TypeConversion/DateTimeConverter.cs | 43 +
.../TypeConversion/DateTimeOffsetConverter.cs | 43 +
.../CsvHelper/TypeConversion/DecimalConverter.cs | 34 +
.../TypeConversion/DefaultTypeConverter.cs | 62 +
.../CsvHelper/TypeConversion/DoubleConverter.cs | 57 +
.../src/CsvHelper/TypeConversion/EnumConverter.cs | 121 ++
.../TypeConversion/EnumConverterFactory.cs | 35 +
.../TypeConversion/EnumerableConverter.cs | 48 +
.../src/CsvHelper/TypeConversion/GuidConverter.cs | 32 +
.../TypeConversion/IDictionaryConverter.cs | 65 +
.../TypeConversion/IDictionaryGenericConverter.cs | 46 +
.../TypeConversion/IEnumerableConverter.cs | 85 ++
.../TypeConversion/IEnumerableGenericConverter.cs | 65 +
.../src/CsvHelper/TypeConversion/ITypeConverter.cs | 32 +
.../TypeConversion/ITypeConverterFactory.cs | 33 +
.../src/CsvHelper/TypeConversion/Int16Converter.cs | 34 +
.../src/CsvHelper/TypeConversion/Int32Converter.cs | 34 +
.../src/CsvHelper/TypeConversion/Int64Converter.cs | 34 +
.../CsvHelper/TypeConversion/NullableConverter.cs | 94 ++
.../TypeConversion/NullableConverterFactory.cs | 28 +
.../src/CsvHelper/TypeConversion/SByteConverter.cs | 34 +
.../CsvHelper/TypeConversion/SingleConverter.cs | 57 +
.../CsvHelper/TypeConversion/StringConverter.cs | 39 +
.../CsvHelper/TypeConversion/TimeOnlyConverter.cs | 40 +
.../CsvHelper/TypeConversion/TimeSpanConverter.cs | 41 +
.../src/CsvHelper/TypeConversion/TypeConverter.cs | 52 +
.../CsvHelper/TypeConversion/TypeConverterCache.cs | 242 ++++
.../TypeConversion/TypeConverterException.cs | 132 ++
.../TypeConversion/TypeConverterOptions.cs | 157 +++
.../TypeConversion/TypeConverterOptionsCache.cs | 108 ++
.../CsvHelper/TypeConversion/UInt16Converter.cs | 34 +
.../CsvHelper/TypeConversion/UInt32Converter.cs | 34 +
.../CsvHelper/TypeConversion/UInt64Converter.cs | 34 +
.../src/CsvHelper/TypeConversion/UriConverter.cs | 40 +
.../src/CsvHelper/ValidationException.cs | 39 +
.../src/CsvHelper/WriterException.cs | 39 +
199 files changed, 18616 insertions(+)
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/ArrayHelper.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/BadDataException.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/AllowCommentsAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/BooleanFalseValuesAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/BooleanTrueValuesAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/BufferSizeAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/CacheFieldsAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/CommentAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/ConstantAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/CountBytesAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/CultureInfoAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/DateTimeStylesAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/DefaultAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/DelimiterAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/DetectColumnCountChangesAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/DetectDelimiterAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/DetectDelimiterValuesAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/EncodingAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/EnumIgnoreCaseAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/EscapeAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/ExceptionMessagesContainRawDataAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/FormatAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/HasHeaderRecordAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/HeaderPrefixAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/IClassMapper.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/IMemberMapper.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/IMemberReferenceMapper.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/IParameterMapper.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/IParameterReferenceMapper.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/IgnoreAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/IgnoreBaseAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/IgnoreBlankLinesAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/IgnoreReferencesAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/IncludePrivateMembersAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/IndexAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/InjectionCharactersAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/InjectionEscapeCharacterAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/InjectionOptionsAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/LineBreakInQuotedFieldIsBadDataAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/MaxFieldSizeAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/MemberTypesAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/ModeAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/NameAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/NameIndexAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/NewLineAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/NullValuesAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/NumberStylesAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/OptionalAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/ProcessFieldBufferSizeAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/QuoteAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/TrimOptionsAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/TypeConverterAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/UseNewObjectForNullReferenceMembersAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/WhiteSpaceCharsAttribute.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/ClassMap.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/ClassMapBuilder.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/ClassMapCollection.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/ClassMap`1.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/ConfigurationException.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/ConfigurationFunctions.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/CsvConfiguration.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/DefaultClassMap`1.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/IParserConfiguration.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/IReaderConfiguration.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/IWriterConfiguration.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/InjectionOptions.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/MemberMap.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/MemberMapCollection.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/MemberMapComparer.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/MemberMapData.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/MemberMapTypeConverterOption.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/MemberMap`1.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/MemberNameCollection.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/MemberReferenceMap.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/MemberReferenceMapCollection.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/MemberReferenceMapData.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/MemberTypes.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/ParameterMap.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/ParameterMapData.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/ParameterMapTypeConverterOption.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/ParameterReferenceMap.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/ParameterReferenceMapData.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/TrimOptions.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/CsvContext.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/CsvDataReader.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/CsvHelper.csproj
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/CsvHelper.net45.v3.ncrunchproject
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/CsvHelper.net47.v3.ncrunchproject
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/CsvHelper.net5.0.v3.ncrunchproject
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/CsvHelper.net50.v3.ncrunchproject
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/CsvHelper.net6.0.v3.ncrunchproject
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/CsvHelper.net60.v3.ncrunchproject
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/CsvHelper.netstandard2.0.v3.ncrunchproject
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/CsvHelper.netstandard2.1.v3.ncrunchproject
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/CsvHelper.snk
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/CsvHelperException.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/CsvMode.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/CsvParser.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/CsvReader.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/CsvWriter.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Delegates/BadDataFound.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Delegates/ConvertFromString.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Delegates/ConvertToString.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Delegates/GetConstructor.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Delegates/GetDelimiter.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Delegates/GetDynamicPropertyName.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Delegates/HeaderValidated.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Delegates/MissingFieldFound.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Delegates/PrepareHeaderForMatch.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Delegates/ReadingExceptionOccurred.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Delegates/ReferenceHeaderPrefix.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Delegates/ShouldQuote.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Delegates/ShouldSkipRecord.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Delegates/ShouldUseConstructorParameters.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Delegates/Validate.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/EnumerableExtensions.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Expressions/DynamicRecordCreator.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Expressions/DynamicRecordWriter.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Expressions/ExpandoObjectRecordWriter.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Expressions/ExpressionManager.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Expressions/ObjectRecordCreator.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Expressions/ObjectRecordWriter.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Expressions/PrimitiveRecordCreator.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Expressions/PrimitiveRecordWriter.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Expressions/RecordCreator.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Expressions/RecordCreatorFactory.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Expressions/RecordHydrator.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Expressions/RecordManager.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Expressions/RecordWriter.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Expressions/RecordWriterFactory.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Factory.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/FieldCache.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/FieldValidationException.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/HeaderValidationException.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/IFactory.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/IObjectResolver.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/IParser.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/IReader.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/IReaderRow.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/IWriter.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/IWriterRow.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Icon.png
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/InvalidHeader.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/LinkedListExtensions.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/MaxFieldSizeException.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/MissingFieldException.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/ObjectCreator.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/ObjectResolver.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/ParserException.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/Properties/AssemblyInfo.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/ReaderException.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/ReflectionExtensions.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/ReflectionHelper.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/TypeConversion/ArrayConverter.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/TypeConversion/BigIntegerConverter.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/TypeConversion/BooleanConverter.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/TypeConversion/ByteArrayConverter.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/TypeConversion/ByteArrayConverterOptions.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/TypeConversion/ByteConverter.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/TypeConversion/CharConverter.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/TypeConversion/CollectionConverterFactory.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/TypeConversion/CollectionGenericConverter.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/TypeConversion/DateOnlyConverter.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/TypeConversion/DateTimeConverter.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/TypeConversion/DateTimeOffsetConverter.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/TypeConversion/DecimalConverter.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/TypeConversion/DefaultTypeConverter.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/TypeConversion/DoubleConverter.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/TypeConversion/EnumConverter.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/TypeConversion/EnumConverterFactory.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/TypeConversion/EnumerableConverter.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/TypeConversion/GuidConverter.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/TypeConversion/IDictionaryConverter.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/TypeConversion/IDictionaryGenericConverter.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/TypeConversion/IEnumerableConverter.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/TypeConversion/IEnumerableGenericConverter.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/TypeConversion/ITypeConverter.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/TypeConversion/ITypeConverterFactory.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/TypeConversion/Int16Converter.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/TypeConversion/Int32Converter.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/TypeConversion/Int64Converter.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/TypeConversion/NullableConverter.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/TypeConversion/NullableConverterFactory.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/TypeConversion/SByteConverter.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/TypeConversion/SingleConverter.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/TypeConversion/StringConverter.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/TypeConversion/TimeOnlyConverter.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/TypeConversion/TimeSpanConverter.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/TypeConversion/TypeConverter.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/TypeConversion/TypeConverterCache.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/TypeConversion/TypeConverterException.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/TypeConversion/TypeConverterOptions.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/TypeConversion/TypeConverterOptionsCache.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/TypeConversion/UInt16Converter.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/TypeConversion/UInt32Converter.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/TypeConversion/UInt64Converter.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/TypeConversion/UriConverter.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/ValidationException.cs
create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/WriterException.cs
(limited to 'ThirdParty/CsvHelper-master/src/CsvHelper')
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/ArrayHelper.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/ArrayHelper.cs
new file mode 100644
index 0000000..16b15db
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/ArrayHelper.cs
@@ -0,0 +1,78 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Runtime.CompilerServices;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace CsvHelper
+{
+ ///
+ /// Methods to help with arrays.
+ ///
+ public static class ArrayHelper
+ {
+ ///
+ /// Trims the characters off the start and end of the buffer
+ /// by updating the start and length arguments.
+ ///
+ /// The buffer.
+ /// The start.
+ /// The length.
+ /// The characters to trim.
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static void Trim(char[] buffer, ref int start, ref int length, char[] trimChars)
+ {
+ // Trim start.
+ for (var i = start; i < start + length; i++)
+ {
+ var c = buffer[i];
+ if (!Contains(trimChars, c))
+ {
+ break;
+ }
+
+ start++;
+ length--;
+ }
+
+ // Trim end.
+ for (var i = start + length - 1; i > start; i--)
+ {
+ var c = buffer[i];
+ if (!Contains(trimChars, c))
+ {
+ break;
+ }
+
+ length--;
+ }
+ }
+
+ ///
+ /// Determines whether this given array contains the given character.
+ ///
+ /// The array to search.
+ /// The character to look for.
+ ///
+ /// true if the array contains the characters, otherwise false.
+ ///
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static bool Contains(char[] array, in char c)
+ {
+ for (var i = 0; i < array.Length; i++)
+ {
+ if (array[i] == c)
+ {
+ return true;
+ }
+ }
+
+ return false;
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/BadDataException.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/BadDataException.cs
new file mode 100644
index 0000000..9aecd38
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/BadDataException.cs
@@ -0,0 +1,67 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+
+namespace CsvHelper
+{
+ ///
+ /// Represents errors that occur due to bad data.
+ ///
+ [Serializable]
+ public class BadDataException : CsvHelperException
+ {
+ ///
+ /// The full field unedited.
+ ///
+ public readonly string Field;
+
+ ///
+ /// The full row unedited.
+ ///
+ public readonly string RawRecord;
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The full field unedited.
+ /// The full row unedited.
+ /// The reading context.
+ public BadDataException(string field, string rawRecord, CsvContext context) : base(context)
+ {
+ Field = field;
+ RawRecord = rawRecord;
+ }
+
+ ///
+ /// Initializes a new instance of the class
+ /// with a specified error message.
+ ///
+ /// The full field unedited.
+ /// The full row unedited.
+ /// The reading context.
+ /// The message that describes the error.
+ public BadDataException(string field, string rawRecord, CsvContext context, string message) : base(context, message)
+ {
+ Field = field;
+ RawRecord = rawRecord;
+ }
+
+ ///
+ /// Initializes a new instance of the class
+ /// with a specified error message and a reference to the inner exception that
+ /// is the cause of this exception.
+ ///
+ /// The full field unedited.
+ /// The full row unedited.
+ /// The reading context.
+ /// The error message that explains the reason for the exception.
+ /// The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
+ public BadDataException(string field, string rawRecord, CsvContext context, string message, Exception innerException) : base(context, message, innerException)
+ {
+ Field = field;
+ RawRecord = rawRecord;
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/AllowCommentsAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/AllowCommentsAttribute.cs
new file mode 100644
index 0000000..1490cc9
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/AllowCommentsAttribute.cs
@@ -0,0 +1,35 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// A value indicating if comments are allowed.
+ ///
+ [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
+ public class AllowCommentsAttribute : Attribute, IClassMapper
+ {
+ ///
+ /// Gets a value indicating if comments are allowed.
+ ///
+ public bool AllowComments { get; private set; }
+
+ ///
+ /// A value indicating if comments are allowed.
+ ///
+ /// The value indicating id comments are allowed.
+ public AllowCommentsAttribute(bool allowComments)
+ {
+ AllowComments = allowComments;
+ }
+
+ ///
+ public void ApplyTo(CsvConfiguration configuration)
+ {
+ configuration.AllowComments = AllowComments;
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/BooleanFalseValuesAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/BooleanFalseValuesAttribute.cs
new file mode 100644
index 0000000..b26315b
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/BooleanFalseValuesAttribute.cs
@@ -0,0 +1,52 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// The string values used to represent a boolean false when converting.
+ ///
+ [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = false, Inherited = true)]
+ public class BooleanFalseValuesAttribute : Attribute, IMemberMapper, IParameterMapper
+ {
+ ///
+ /// Gets the false values.
+ ///
+ public string[] FalseValues { get; private set; }
+
+ ///
+ /// The string values used to represent a boolean false when converting.
+ ///
+ /// The false values.
+ public BooleanFalseValuesAttribute(string falseValue)
+ {
+ FalseValues = new string[] { falseValue };
+ }
+
+ ///
+ /// The string values used to represent a boolean false when converting.
+ ///
+ /// The false values.
+ public BooleanFalseValuesAttribute(params string[] falseValues)
+ {
+ FalseValues = falseValues;
+ }
+
+ ///
+ public void ApplyTo(MemberMap memberMap)
+ {
+ memberMap.Data.TypeConverterOptions.BooleanFalseValues.Clear();
+ memberMap.Data.TypeConverterOptions.BooleanFalseValues.AddRange(FalseValues);
+ }
+
+ ///
+ public void ApplyTo(ParameterMap parameterMap)
+ {
+ parameterMap.Data.TypeConverterOptions.BooleanFalseValues.Clear();
+ parameterMap.Data.TypeConverterOptions.BooleanFalseValues.AddRange(FalseValues);
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/BooleanTrueValuesAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/BooleanTrueValuesAttribute.cs
new file mode 100644
index 0000000..3a9b591
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/BooleanTrueValuesAttribute.cs
@@ -0,0 +1,52 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// The string values used to represent a boolean true when converting.
+ ///
+ [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = false, Inherited = true)]
+ public class BooleanTrueValuesAttribute : Attribute, IMemberMapper, IParameterMapper
+ {
+ ///
+ /// Gets the true values.
+ ///
+ public string[] TrueValues { get; private set; }
+
+ ///
+ /// The string values used to represent a boolean true when converting.
+ ///
+ ///
+ public BooleanTrueValuesAttribute(string trueValue)
+ {
+ TrueValues = new string[] { trueValue };
+ }
+
+ ///
+ /// The string values used to represent a boolean true when converting.
+ ///
+ ///
+ public BooleanTrueValuesAttribute(params string[] trueValues)
+ {
+ TrueValues = trueValues;
+ }
+
+ ///
+ public void ApplyTo(MemberMap memberMap)
+ {
+ memberMap.Data.TypeConverterOptions.BooleanTrueValues.Clear();
+ memberMap.Data.TypeConverterOptions.BooleanTrueValues.AddRange(TrueValues);
+ }
+
+ ///
+ public void ApplyTo(ParameterMap parameterMap)
+ {
+ parameterMap.Data.TypeConverterOptions.BooleanTrueValues.Clear();
+ parameterMap.Data.TypeConverterOptions.BooleanTrueValues.AddRange(TrueValues);
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/BufferSizeAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/BufferSizeAttribute.cs
new file mode 100644
index 0000000..f74e98e
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/BufferSizeAttribute.cs
@@ -0,0 +1,36 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// The size of the buffer used for parsing and writing CSV files.
+ /// Default is 0x1000.
+ ///
+ [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
+ public class BufferSizeAttribute : Attribute, IClassMapper
+ {
+ ///
+ /// The buffer size.
+ ///
+ public int BufferSize { get; private set; }
+
+ ///
+ /// The size of the buffer used for parsing and writing CSV files.
+ ///
+ ///
+ public BufferSizeAttribute(int bufferSize)
+ {
+ BufferSize = bufferSize;
+ }
+
+ ///
+ public void ApplyTo(CsvConfiguration configuration)
+ {
+ configuration.BufferSize = BufferSize;
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/CacheFieldsAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/CacheFieldsAttribute.cs
new file mode 100644
index 0000000..1f6b859
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/CacheFieldsAttribute.cs
@@ -0,0 +1,36 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// Cache fields that are created when parsing.
+ /// Default is false.
+ ///
+ [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
+ public class CacheFieldsAttribute : Attribute, IClassMapper
+ {
+ ///
+ /// Cache fields that are created when parsing.
+ ///
+ public bool CacheFields { get; private set; }
+
+ ///
+ /// Cache fields that are created when parsing.
+ ///
+ ///
+ public CacheFieldsAttribute(bool cacheFields)
+ {
+ CacheFields = cacheFields;
+ }
+
+ ///
+ public void ApplyTo(CsvConfiguration configuration)
+ {
+ configuration.CacheFields = CacheFields;
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/CommentAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/CommentAttribute.cs
new file mode 100644
index 0000000..c0c6124
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/CommentAttribute.cs
@@ -0,0 +1,36 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// The character used to denote a line that is commented out.
+ /// Default is #.
+ ///
+ [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
+ public class CommentAttribute : Attribute, IClassMapper
+ {
+ ///
+ /// Gets the character used to denote a line that is commented out.
+ ///
+ public char Comment { get; private set; }
+
+ ///
+ /// The character used to denote a line that is commented out.
+ ///
+ /// The comment character.
+ public CommentAttribute(char comment)
+ {
+ Comment = comment;
+ }
+
+ ///
+ public void ApplyTo(CsvConfiguration configuration)
+ {
+ configuration.Comment = Comment;
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/ConstantAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/ConstantAttribute.cs
new file mode 100644
index 0000000..5dd2dc5
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/ConstantAttribute.cs
@@ -0,0 +1,47 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// The constant value that will be used for every record when
+ /// reading and writing. This value will always be used no matter
+ /// what other mapping configurations are specified.
+ ///
+ [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = false, Inherited = true)]
+ public class ConstantAttribute : Attribute, IMemberMapper, IParameterMapper
+ {
+ ///
+ /// Gets the constant.
+ ///
+ public object Constant { get; private set; }
+
+ ///
+ /// The constant value that will be used for every record when
+ /// reading and writing. This value will always be used no matter
+ /// what other mapping configurations are specified.
+ ///
+ /// The constant.
+ public ConstantAttribute(object constant)
+ {
+ Constant = constant;
+ }
+
+ ///
+ public void ApplyTo(MemberMap memberMap)
+ {
+ memberMap.Data.Constant = Constant;
+ memberMap.Data.IsConstantSet = true;
+ }
+
+ ///
+ public void ApplyTo(ParameterMap parameterMap)
+ {
+ parameterMap.Data.Constant = Constant;
+ parameterMap.Data.IsConstantSet = true;
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/CountBytesAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/CountBytesAttribute.cs
new file mode 100644
index 0000000..165784e
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/CountBytesAttribute.cs
@@ -0,0 +1,45 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+using System.Text;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// A value indicating whether the number of bytes should
+ /// be counted while parsing. Default is false. This will slow down parsing
+ /// because it needs to get the byte count of every char for the given encoding.
+ /// The needs to be set correctly for this to be accurate.
+ ///
+ [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
+ public class CountBytesAttribute : Attribute, IClassMapper
+ {
+ ///
+ /// A value indicating whether the number of bytes should
+ /// be counted while parsing. Default is false. This will slow down parsing
+ /// because it needs to get the byte count of every char for the given encoding.
+ /// The needs to be set correctly for this to be accurate.
+ ///
+ public bool CountBytes { get; private set; }
+
+ ///
+ /// A value indicating whether the number of bytes should
+ /// be counted while parsing. Default is false. This will slow down parsing
+ /// because it needs to get the byte count of every char for the given encoding.
+ /// The needs to be set correctly for this to be accurate.
+ ///
+ ///
+ public CountBytesAttribute(bool countBytes)
+ {
+ CountBytes = countBytes;
+ }
+
+ ///
+ public void ApplyTo(CsvConfiguration configuration)
+ {
+ configuration.CountBytes = CountBytes;
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/CultureInfoAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/CultureInfoAttribute.cs
new file mode 100644
index 0000000..47940fb
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/CultureInfoAttribute.cs
@@ -0,0 +1,46 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+using System.Globalization;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// The used when type converting.
+ /// This will override the global
+ /// setting. Or set the same if the attribute is specified on class level.
+ ///
+ [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = false, Inherited = true)]
+ public class CultureInfoAttribute : Attribute, IMemberMapper, IParameterMapper
+ {
+ ///
+ /// Gets the culture info.
+ ///
+ public CultureInfo CultureInfo { get; private set; }
+
+ ///
+ /// The used when type converting.
+ /// This will override the global
+ /// setting. Or set the same if the attribute is specified on class level.
+ ///
+ /// The culture.
+ public CultureInfoAttribute(string culture)
+ {
+ CultureInfo = CultureInfo.GetCultureInfo(culture);
+ }
+
+ ///
+ public void ApplyTo(MemberMap memberMap)
+ {
+ memberMap.Data.TypeConverterOptions.CultureInfo = CultureInfo;
+ }
+
+ ///
+ public void ApplyTo(ParameterMap parameterMap)
+ {
+ parameterMap.Data.TypeConverterOptions.CultureInfo = CultureInfo;
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/DateTimeStylesAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/DateTimeStylesAttribute.cs
new file mode 100644
index 0000000..42fd789
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/DateTimeStylesAttribute.cs
@@ -0,0 +1,44 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+using System.Globalization;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// The to use when type converting.
+ /// This is used when doing any conversions.
+ ///
+ [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = false, Inherited = true)]
+ public class DateTimeStylesAttribute : Attribute, IMemberMapper, IParameterMapper
+ {
+ ///
+ /// Gets the date time styles.
+ ///
+ public DateTimeStyles DateTimeStyles { get; private set; }
+
+ ///
+ /// The to use when type converting.
+ /// This is used when doing any conversions.
+ ///
+ /// The date time styles.
+ public DateTimeStylesAttribute(DateTimeStyles dateTimeStyles)
+ {
+ DateTimeStyles = dateTimeStyles;
+ }
+
+ ///
+ public void ApplyTo(MemberMap memberMap)
+ {
+ memberMap.Data.TypeConverterOptions.DateTimeStyle = DateTimeStyles;
+ }
+
+ ///
+ public void ApplyTo(ParameterMap parameterMap)
+ {
+ parameterMap.Data.TypeConverterOptions.DateTimeStyle = DateTimeStyles;
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/DefaultAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/DefaultAttribute.cs
new file mode 100644
index 0000000..f2e4e46
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/DefaultAttribute.cs
@@ -0,0 +1,45 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// The default value that will be used when reading when
+ /// the CSV field is empty.
+ ///
+ [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = false, Inherited = true)]
+ public class DefaultAttribute : Attribute, IMemberMapper, IParameterMapper
+ {
+ ///
+ /// Gets the default value.
+ ///
+ public object Default { get; private set; }
+
+ ///
+ /// The default value that will be used when reading when
+ /// the CSV field is empty.
+ ///
+ /// The default value
+ public DefaultAttribute(object defaultValue)
+ {
+ Default = defaultValue;
+ }
+
+ ///
+ public void ApplyTo(MemberMap memberMap)
+ {
+ memberMap.Data.Default = Default;
+ memberMap.Data.IsDefaultSet = true;
+ }
+
+ ///
+ public void ApplyTo(ParameterMap parameterMap)
+ {
+ parameterMap.Data.Default = Default;
+ parameterMap.Data.IsDefaultSet = true;
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/DelimiterAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/DelimiterAttribute.cs
new file mode 100644
index 0000000..b8b53f6
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/DelimiterAttribute.cs
@@ -0,0 +1,35 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// The delimiter used to separate fields.
+ ///
+ [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
+ public class DelimiterAttribute : Attribute, IClassMapper
+ {
+ ///
+ /// Gets the delimiter.
+ ///
+ public string Delimiter { get; private set; }
+
+ ///
+ /// The delimiter used to separate fields.
+ ///
+ /// The delimiter.
+ public DelimiterAttribute(string delimiter)
+ {
+ Delimiter = delimiter;
+ }
+
+ ///
+ public void ApplyTo(CsvConfiguration configuration)
+ {
+ configuration.Delimiter = Delimiter;
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/DetectColumnCountChangesAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/DetectColumnCountChangesAttribute.cs
new file mode 100644
index 0000000..f31aaf8
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/DetectColumnCountChangesAttribute.cs
@@ -0,0 +1,40 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// A value indicating whether changes in the column
+ /// count should be detected. If true, a
+ /// will be thrown if a different column count is detected.
+ ///
+ [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
+ public class DetectColumnCountChangesAttribute : Attribute, IClassMapper
+ {
+ ///
+ /// A value indicating whether changes in the column
+ /// count should be detected. If true, a
+ /// will be thrown if a different column count is detected.
+ ///
+ public bool DetectColumnCountChanges { get; private set; }
+
+ ///
+ /// A value indicating whether changes in the column
+ /// count should be detected. If true, a
+ /// will be thrown if a different column count is detected.
+ ///
+ public DetectColumnCountChangesAttribute(bool detectColumnCountChanges)
+ {
+ DetectColumnCountChanges = detectColumnCountChanges;
+ }
+
+ ///
+ public void ApplyTo(CsvConfiguration configuration)
+ {
+ configuration.DetectColumnCountChanges = DetectColumnCountChanges;
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/DetectDelimiterAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/DetectDelimiterAttribute.cs
new file mode 100644
index 0000000..2c7da45
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/DetectDelimiterAttribute.cs
@@ -0,0 +1,35 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// Detect the delimiter instead of using the delimiter from configuration.
+ /// Default is false.
+ ///
+ [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
+ public class DetectDelimiterAttribute : Attribute, IClassMapper
+ {
+ ///
+ /// Detect the delimiter instead of using the delimiter from configuration.
+ ///
+ public bool DetectDelimiter { get; private set; }
+
+ ///
+ /// Detect the delimiter instead of using the delimiter from configuration.
+ ///
+ public DetectDelimiterAttribute(bool detectDelimiter)
+ {
+ DetectDelimiter = detectDelimiter;
+ }
+
+ ///
+ public void ApplyTo(CsvConfiguration configuration)
+ {
+ configuration.DetectDelimiter = DetectDelimiter;
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/DetectDelimiterValuesAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/DetectDelimiterValuesAttribute.cs
new file mode 100644
index 0000000..af641df
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/DetectDelimiterValuesAttribute.cs
@@ -0,0 +1,37 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+using System.Text.RegularExpressions;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// The possible delimiter values used when detecting the delimiter.
+ /// Default is [",", ";", "|", "\t"].
+ ///
+ [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
+ public class DetectDelimiterValuesAttribute : Attribute, IClassMapper
+ {
+ ///
+ /// The possible delimiter values used when detecting the delimiter.
+ ///
+ public string[] DetectDelimiterValues { get; private set; }
+
+ ///
+ /// The possible delimiter values used when detecting the delimiter.
+ ///
+ /// Whitespace separated list of values.
+ public DetectDelimiterValuesAttribute(string detectDelimiterValues)
+ {
+ DetectDelimiterValues = Regex.Split(detectDelimiterValues, @"\s+");
+ }
+
+ ///
+ public void ApplyTo(CsvConfiguration configuration)
+ {
+ configuration.DetectDelimiterValues = DetectDelimiterValues;
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/EncodingAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/EncodingAttribute.cs
new file mode 100644
index 0000000..ee378ba
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/EncodingAttribute.cs
@@ -0,0 +1,36 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+using System.Text;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// The encoding used when counting bytes.
+ ///
+ [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
+ public class EncodingAttribute : Attribute, IClassMapper
+ {
+ ///
+ /// Gets the encoding used when counting bytes.
+ ///
+ public Encoding Encoding { get; private set; }
+
+ ///
+ /// The encoding used when counting bytes.
+ ///
+ /// The encoding.
+ public EncodingAttribute(string encoding)
+ {
+ Encoding = Encoding.GetEncoding(encoding);
+ }
+
+ ///
+ public void ApplyTo(CsvConfiguration configuration)
+ {
+ configuration.Encoding = Encoding;
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/EnumIgnoreCaseAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/EnumIgnoreCaseAttribute.cs
new file mode 100644
index 0000000..c2b25c9
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/EnumIgnoreCaseAttribute.cs
@@ -0,0 +1,41 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// Ignore case when parsing enums.
+ ///
+ [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = false, Inherited = true)]
+ public class EnumIgnoreCaseAttribute : Attribute, IMemberMapper, IMemberReferenceMapper, IParameterMapper
+ {
+ ///
+ public void ApplyTo(MemberMap memberMap)
+ {
+ memberMap.Data.TypeConverterOptions.EnumIgnoreCase = true;
+ }
+
+ ///
+ public void ApplyTo(MemberReferenceMap referenceMap)
+ {
+ foreach (var memberMap in referenceMap.Data.Mapping.MemberMaps)
+ {
+ ApplyTo(memberMap);
+ }
+ }
+
+ ///
+ public void ApplyTo(ParameterMap parameterMap)
+ {
+ parameterMap.Data.TypeConverterOptions.EnumIgnoreCase = true;
+ }
+
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/EscapeAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/EscapeAttribute.cs
new file mode 100644
index 0000000..0d20d50
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/EscapeAttribute.cs
@@ -0,0 +1,35 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// The escape character used to escape a quote inside a field.
+ ///
+ [AttributeUsage( AttributeTargets.Class, AllowMultiple = false, Inherited = true )]
+ public class EscapeAttribute : Attribute, IClassMapper
+ {
+ ///
+ /// Gets the escape character used to escape a quote inside a field.
+ ///
+ public char Escape { get; private set; }
+
+ ///
+ /// The escape character used to escape a quote inside a field.
+ ///
+ /// The escape character.
+ public EscapeAttribute( char escape )
+ {
+ Escape = escape;
+ }
+
+ ///
+ public void ApplyTo(CsvConfiguration configuration)
+ {
+ configuration.Escape = Escape;
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/ExceptionMessagesContainRawDataAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/ExceptionMessagesContainRawDataAttribute.cs
new file mode 100644
index 0000000..2cb9608
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/ExceptionMessagesContainRawDataAttribute.cs
@@ -0,0 +1,39 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// A value indicating if exception messages contain raw CSV data.
+ /// true if exception contain raw CSV data, otherwise false.
+ /// Default is true.
+ ///
+ [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
+ public class ExceptionMessagesContainRawDataAttribute : Attribute, IClassMapper
+ {
+ ///
+ /// A value indicating if exception messages contain raw CSV data.
+ /// true if exception contain raw CSV data, otherwise false.
+ ///
+ public bool ExceptionMessagesContainRawData { get; private set; }
+
+ ///
+ /// A value indicating if exception messages contain raw CSV data.
+ /// true if exception contain raw CSV data, otherwise false.
+ ///
+ ///
+ public ExceptionMessagesContainRawDataAttribute(bool exceptionMessagesContainRawData)
+ {
+ ExceptionMessagesContainRawData = exceptionMessagesContainRawData;
+ }
+
+ ///
+ public void ApplyTo(CsvConfiguration configuration)
+ {
+ configuration.ExceptionMessagesContainRawData = ExceptionMessagesContainRawData;
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/FormatAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/FormatAttribute.cs
new file mode 100644
index 0000000..b42d8ed
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/FormatAttribute.cs
@@ -0,0 +1,50 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// The string format to be used when type converting.
+ ///
+ [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = false, Inherited = true)]
+ public class FormatAttribute : Attribute, IMemberMapper, IParameterMapper
+ {
+ ///
+ /// Gets the formats.
+ ///
+ public string[] Formats { get; private set; }
+
+ ///
+ /// The string format to be used when type converting.
+ ///
+ /// The format.
+ public FormatAttribute(string format)
+ {
+ Formats = new string[] { format };
+ }
+
+ ///
+ /// The string format to be used when type converting.
+ ///
+ /// The formats.
+ public FormatAttribute(params string[] formats)
+ {
+ Formats = formats;
+ }
+
+ ///
+ public void ApplyTo(MemberMap memberMap)
+ {
+ memberMap.Data.TypeConverterOptions.Formats = Formats;
+ }
+
+ ///
+ public void ApplyTo(ParameterMap parameterMap)
+ {
+ parameterMap.Data.TypeConverterOptions.Formats = Formats;
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/HasHeaderRecordAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/HasHeaderRecordAttribute.cs
new file mode 100644
index 0000000..b0d93ae
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/HasHeaderRecordAttribute.cs
@@ -0,0 +1,35 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// A value indicating if the CSV file has a header record.
+ ///
+ [AttributeUsage( AttributeTargets.Class, AllowMultiple = false, Inherited = true )]
+ public class HasHeaderRecordAttribute : Attribute, IClassMapper
+ {
+ ///
+ /// Gets a value indicating if the CSV file has a header record.
+ ///
+ public bool HasHeaderRecord { get; private set; }
+
+ ///
+ /// A value indicating if the CSV file has a header record.
+ ///
+ /// A value indicating if the CSV file has a header record.
+ public HasHeaderRecordAttribute( bool hasHeaderRecord )
+ {
+ HasHeaderRecord = hasHeaderRecord;
+ }
+
+ ///
+ public void ApplyTo(CsvConfiguration configuration)
+ {
+ configuration.HasHeaderRecord = HasHeaderRecord;
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/HeaderPrefixAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/HeaderPrefixAttribute.cs
new file mode 100644
index 0000000..4ae8227
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/HeaderPrefixAttribute.cs
@@ -0,0 +1,73 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// Appends a prefix to the header of each field of the reference member.
+ ///
+ [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = false, Inherited = true)]
+ public class HeaderPrefixAttribute : Attribute, IMemberReferenceMapper, IParameterReferenceMapper
+ {
+ ///
+ /// Gets the prefix.
+ ///
+ public string? Prefix { get; private set; }
+
+ ///
+ /// Gets a value indicating if the prefix should inherit parent prefixes.
+ ///
+ public bool Inherit { get; private set; }
+
+ ///
+ /// Appends a prefix to the header of each field of the reference member.
+ ///
+ public HeaderPrefixAttribute() { }
+
+ ///
+ /// Appends a prefix to the header of each field of the reference member.
+ ///
+ /// The prefix.
+ public HeaderPrefixAttribute(string prefix)
+ {
+ Prefix = prefix;
+ }
+
+ ///
+ /// Appends a prefix to the header of each field of the reference member.
+ ///
+ /// Inherits parent object prefixes.
+ public HeaderPrefixAttribute(bool inherit)
+ {
+ Inherit = inherit;
+ }
+
+ ///
+ /// Appends a prefix to the header of each field of the reference member.
+ ///
+ /// The prefix.
+ /// Inherits parent object prefixes.
+ public HeaderPrefixAttribute(string prefix, bool inherit)
+ {
+ Prefix = prefix;
+ Inherit = inherit;
+ }
+
+ ///
+ public void ApplyTo(MemberReferenceMap referenceMap)
+ {
+ referenceMap.Data.Inherit = Inherit;
+ referenceMap.Data.Prefix = Prefix ?? referenceMap.Data.Member.Name + ".";
+ }
+
+ ///
+ public void ApplyTo(ParameterReferenceMap referenceMap)
+ {
+ referenceMap.Data.Inherit = Inherit;
+ referenceMap.Data.Prefix = Prefix ?? referenceMap.Data.Parameter.Name + ".";
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/IClassMapper.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/IClassMapper.cs
new file mode 100644
index 0000000..d395ac9
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/IClassMapper.cs
@@ -0,0 +1,19 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// Defines methods to enable pluggable configuration.
+ ///
+ public interface IClassMapper
+ {
+ ///
+ /// Applies configuration.
+ ///
+ /// The configuration to apply to.
+ void ApplyTo(CsvConfiguration configuration);
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/IMemberMapper.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/IMemberMapper.cs
new file mode 100644
index 0000000..b8701f1
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/IMemberMapper.cs
@@ -0,0 +1,20 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// Defines methods to enable pluggable configuration of member mapping.
+ ///
+ public interface IMemberMapper
+ {
+ ///
+ /// Applies configuration to the given .
+ ///
+ /// The member map.
+ void ApplyTo(MemberMap memberMap);
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/IMemberReferenceMapper.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/IMemberReferenceMapper.cs
new file mode 100644
index 0000000..c9c4d32
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/IMemberReferenceMapper.cs
@@ -0,0 +1,20 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// Defines methods to enable pluggable configuration of member reference mapping.
+ ///
+ public interface IMemberReferenceMapper
+ {
+ ///
+ /// Applies configuration to the given .
+ ///
+ /// The reference map.
+ void ApplyTo(MemberReferenceMap referenceMap);
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/IParameterMapper.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/IParameterMapper.cs
new file mode 100644
index 0000000..0b5c289
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/IParameterMapper.cs
@@ -0,0 +1,24 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// Defines methods to enable pluggable configuration of parameter mapping.
+ ///
+ public interface IParameterMapper
+ {
+ ///
+ /// Applies configuration to the given .
+ ///
+ /// The parameter map.
+ void ApplyTo(ParameterMap parameterMap);
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/IParameterReferenceMapper.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/IParameterReferenceMapper.cs
new file mode 100644
index 0000000..ea4fc50
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/IParameterReferenceMapper.cs
@@ -0,0 +1,24 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// Defines methods to enable pluggable configuration of parameter reference mapping.
+ ///
+ public interface IParameterReferenceMapper
+ {
+ ///
+ /// Applies configuration to the given .
+ ///
+ /// The reference map.
+ void ApplyTo(ParameterReferenceMap referenceMap);
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/IgnoreAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/IgnoreAttribute.cs
new file mode 100644
index 0000000..41a199a
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/IgnoreAttribute.cs
@@ -0,0 +1,41 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+using System.Reflection;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// Ignore the member when reading and writing.
+ /// If this member has already been mapped as a reference
+ /// member, either by a class map, or by automapping, calling
+ /// this method will not ignore all the child members down the
+ /// tree that have already been mapped.
+ ///
+ [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = false, Inherited = true)]
+ public class IgnoreAttribute : Attribute, IMemberMapper, IMemberReferenceMapper, IParameterMapper
+ {
+ ///
+ public void ApplyTo(MemberMap memberMap)
+ {
+ memberMap.Data.Ignore = true;
+ }
+
+ ///
+ public void ApplyTo(MemberReferenceMap referenceMap)
+ {
+ foreach (var memberMap in referenceMap.Data.Mapping.MemberMaps)
+ {
+ ApplyTo(memberMap);
+ }
+ }
+
+ ///
+ public void ApplyTo(ParameterMap parameterMap)
+ {
+ parameterMap.Data.Ignore = true;
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/IgnoreBaseAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/IgnoreBaseAttribute.cs
new file mode 100644
index 0000000..066be2e
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/IgnoreBaseAttribute.cs
@@ -0,0 +1,20 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// Ignores base classes when auto mapping.
+ ///
+ [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
+ public class IgnoreBaseAttribute : Attribute
+ {
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/IgnoreBlankLinesAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/IgnoreBlankLinesAttribute.cs
new file mode 100644
index 0000000..c270568
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/IgnoreBlankLinesAttribute.cs
@@ -0,0 +1,35 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// A value indicating if blank lines should be ignored when reading.
+ ///
+ [AttributeUsage( AttributeTargets.Class, AllowMultiple = false, Inherited = true )]
+ public class IgnoreBlankLinesAttribute : Attribute, IClassMapper
+ {
+ ///
+ /// Gets a value indicating if blank lines should be ignored when reading.
+ ///
+ public bool IgnoreBlankLines { get; private set; }
+
+ ///
+ /// A value indicating if blank lines should be ignored when reading.
+ ///
+ /// The Ignore Blank Lines Flag.
+ public IgnoreBlankLinesAttribute( bool ignoreBlankLines )
+ {
+ IgnoreBlankLines = ignoreBlankLines;
+ }
+
+ ///
+ public void ApplyTo(CsvConfiguration configuration)
+ {
+ configuration.IgnoreBlankLines = IgnoreBlankLines;
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/IgnoreReferencesAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/IgnoreReferencesAttribute.cs
new file mode 100644
index 0000000..05e7b0e
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/IgnoreReferencesAttribute.cs
@@ -0,0 +1,41 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// Gets a value indicating whether references
+ /// should be ignored when auto mapping. true to ignore
+ /// references, otherwise false. Default is false.
+ ///
+ [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
+ public class IgnoreReferencesAttribute : Attribute, IClassMapper
+ {
+ ///
+ /// Gets a value indicating whether references
+ /// should be ignored when auto mapping. true to ignore
+ /// references, otherwise false. Default is false.
+ ///
+ public bool IgnoreReferences { get; private set; }
+
+ ///
+ /// Gets a value indicating whether references
+ /// should be ignored when auto mapping. true to ignore
+ /// references, otherwise false. Default is false.
+ ///
+ /// Ignore references value.
+ public IgnoreReferencesAttribute(bool ignoreReferences)
+ {
+ IgnoreReferences = ignoreReferences;
+ }
+
+ ///
+ public void ApplyTo(CsvConfiguration configuration)
+ {
+ configuration.IgnoreReferences = IgnoreReferences;
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/IncludePrivateMembersAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/IncludePrivateMembersAttribute.cs
new file mode 100644
index 0000000..92c7c1b
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/IncludePrivateMembersAttribute.cs
@@ -0,0 +1,35 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// A value indicating if private member should be read from and written to.
+ ///
+ [AttributeUsage( AttributeTargets.Class, AllowMultiple = false, Inherited = true )]
+ public class IncludePrivateMembersAttribute : Attribute, IClassMapper
+ {
+ ///
+ /// Gets a value indicating if private member should be read from and written to.
+ ///
+ public bool IncludePrivateMembers { get; private set; }
+
+ ///
+ /// A value indicating if private member should be read from and written to.
+ ///
+ /// The Include Private Members Flag.
+ public IncludePrivateMembersAttribute( bool includePrivateMembers )
+ {
+ IncludePrivateMembers = includePrivateMembers;
+ }
+
+ ///
+ public void ApplyTo(CsvConfiguration configuration)
+ {
+ configuration.IncludePrivateMembers = IncludePrivateMembers;
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/IndexAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/IndexAttribute.cs
new file mode 100644
index 0000000..e469741
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/IndexAttribute.cs
@@ -0,0 +1,57 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// When reading, is used to get the field at
+ /// the given index. When writing, the fields
+ /// will be written in the order of the field
+ /// indexes.
+ ///
+ [AttributeUsage( AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = false, Inherited = true )]
+ public class IndexAttribute : Attribute, IMemberMapper, IParameterMapper
+ {
+ ///
+ /// Gets the index.
+ ///
+ public int Index { get; private set; }
+
+ ///
+ /// Gets the index end.
+ ///
+ public int IndexEnd { get; private set; }
+
+ ///
+ /// When reading, is used to get the field at
+ /// the given index. When writing, the fields
+ /// will be written in the order of the field
+ /// indexes.
+ ///
+ /// The index.
+ /// The index end.
+ public IndexAttribute( int index, int indexEnd = -1 )
+ {
+ Index = index;
+ IndexEnd = indexEnd;
+ }
+
+ ///
+ public void ApplyTo(MemberMap memberMap)
+ {
+ memberMap.Data.Index = Index;
+ memberMap.Data.IndexEnd = IndexEnd;
+ memberMap.Data.IsIndexSet = true;
+ }
+
+ ///
+ public void ApplyTo(ParameterMap parameterMap)
+ {
+ parameterMap.Data.Index = Index;
+ parameterMap.Data.IsIndexSet = true;
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/InjectionCharactersAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/InjectionCharactersAttribute.cs
new file mode 100644
index 0000000..66f6964
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/InjectionCharactersAttribute.cs
@@ -0,0 +1,37 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+using System.Linq;
+using System.Text.RegularExpressions;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// Gets the characters that are used for injection attacks.
+ ///
+ public class InjectionCharactersAttribute : Attribute, IClassMapper
+ {
+ ///
+ /// Gets the characters that are used for injection attacks.
+ /// Default is '=', '@', '+', '-', '\t', '\r'.
+ ///
+ public char[] InjectionCharacters { get; private set; }
+
+ ///
+ /// Gets the characters that are used for injection attacks.
+ ///
+ ///
+ public InjectionCharactersAttribute(string injectionCharacters)
+ {
+ InjectionCharacters = Regex.Split(injectionCharacters, @"\s+").Select(s => s[0]).ToArray();
+ }
+
+ ///
+ public void ApplyTo(CsvConfiguration configuration)
+ {
+ configuration.InjectionCharacters = InjectionCharacters;
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/InjectionEscapeCharacterAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/InjectionEscapeCharacterAttribute.cs
new file mode 100644
index 0000000..1db163d
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/InjectionEscapeCharacterAttribute.cs
@@ -0,0 +1,35 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// The character used to escape a detected injection.
+ ///
+ [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
+ public class InjectionEscapeCharacterAttribute : Attribute, IClassMapper
+ {
+ ///
+ /// The character used to escape a detected injection.
+ ///
+ public char InjectionEscapeCharacter { get; private set; }
+
+ ///
+ /// The character used to escape a detected injection.
+ ///
+ ///
+ public InjectionEscapeCharacterAttribute(char injectionEscapeCharacter)
+ {
+ InjectionEscapeCharacter = injectionEscapeCharacter;
+ }
+
+ ///
+ public void ApplyTo(CsvConfiguration configuration)
+ {
+ configuration.InjectionEscapeCharacter = InjectionEscapeCharacter;
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/InjectionOptionsAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/InjectionOptionsAttribute.cs
new file mode 100644
index 0000000..db97300
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/InjectionOptionsAttribute.cs
@@ -0,0 +1,35 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// The injection options.
+ ///
+ [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
+ public class InjectionOptionsAttribute : Attribute, IClassMapper
+ {
+ ///
+ /// The injection options.
+ ///
+ public InjectionOptions InjectionOptions { get; private set; }
+
+ ///
+ /// The injection options.
+ ///
+ ///
+ public InjectionOptionsAttribute(InjectionOptions injectionOptions)
+ {
+ InjectionOptions = injectionOptions;
+ }
+
+ ///
+ public void ApplyTo(CsvConfiguration configuration)
+ {
+ configuration.InjectionOptions = InjectionOptions;
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/LineBreakInQuotedFieldIsBadDataAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/LineBreakInQuotedFieldIsBadDataAttribute.cs
new file mode 100644
index 0000000..db95cbc
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/LineBreakInQuotedFieldIsBadDataAttribute.cs
@@ -0,0 +1,39 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// A value indicating if a line break found in a quote field should
+ /// be considered bad data. true to consider a line break bad data, otherwise false.
+ /// Defaults to false.
+ ///
+ [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
+ public class LineBreakInQuotedFieldIsBadDataAttribute : Attribute, IClassMapper
+ {
+ ///
+ /// A value indicating if a line break found in a quote field should
+ /// be considered bad data. true to consider a line break bad data, otherwise false.
+ ///
+ public bool LineBreakInQuotedFieldIsBadData { get; private set; }
+
+ ///
+ /// A value indicating if a line break found in a quote field should
+ /// be considered bad data. true to consider a line break bad data, otherwise false.
+ ///
+ ///
+ public LineBreakInQuotedFieldIsBadDataAttribute(bool lineBreakInQuotedFieldIsBadData)
+ {
+ LineBreakInQuotedFieldIsBadData = lineBreakInQuotedFieldIsBadData;
+ }
+
+ ///
+ public void ApplyTo(CsvConfiguration configuration)
+ {
+ configuration.LineBreakInQuotedFieldIsBadData = LineBreakInQuotedFieldIsBadData;
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/MaxFieldSizeAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/MaxFieldSizeAttribute.cs
new file mode 100644
index 0000000..1d5c837
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/MaxFieldSizeAttribute.cs
@@ -0,0 +1,40 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// Gets or sets the maximum size of a field.
+ /// Defaults to 0, indicating maximum field size is not checked.
+ ///
+ [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
+ public class MaxFieldSizeAttribute : Attribute, IClassMapper
+ {
+ ///
+ /// Gets or sets the maximum size of a field.
+ ///
+ public double MaxFieldSize { get; private set; }
+
+ ///
+ /// Gets or sets the maximum size of a field.
+ ///
+ ///
+ public MaxFieldSizeAttribute(double maxFieldSize)
+ {
+ MaxFieldSize = maxFieldSize;
+ }
+
+ ///
+ public void ApplyTo(CsvConfiguration configuration)
+ {
+ configuration.MaxFieldSize = MaxFieldSize;
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/MemberTypesAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/MemberTypesAttribute.cs
new file mode 100644
index 0000000..e07e86f
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/MemberTypesAttribute.cs
@@ -0,0 +1,40 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// The member types that are used when auto mapping.
+ /// MemberTypes are flags, so you can choose more than one.
+ /// Default is Properties.
+ ///
+ [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
+ public class MemberTypesAttribute : Attribute, IClassMapper
+ {
+ ///
+ /// The member types that are used when auto mapping.
+ /// MemberTypes are flags, so you can choose more than one.
+ /// Default is Properties.
+ ///
+ public MemberTypes MemberTypes { get; private set; }
+
+ ///
+ /// The member types that are used when auto mapping.
+ /// MemberTypes are flags, so you can choose more than one.
+ /// Default is Properties.
+ ///
+ public MemberTypesAttribute(MemberTypes memberTypes)
+ {
+ MemberTypes = memberTypes;
+ }
+
+ ///
+ public void ApplyTo(CsvConfiguration configuration)
+ {
+ configuration.MemberTypes = MemberTypes;
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/ModeAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/ModeAttribute.cs
new file mode 100644
index 0000000..448a543
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/ModeAttribute.cs
@@ -0,0 +1,38 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// The mode.
+ /// See for more details.
+ ///
+ [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
+ public class ModeAttribute : Attribute, IClassMapper
+ {
+ ///
+ /// The mode.
+ /// See for more details.
+ ///
+ public CsvMode Mode { get; private set; }
+
+ ///
+ /// The mode.
+ /// See for more details.
+ ///
+ ///
+ public ModeAttribute(CsvMode mode)
+ {
+ Mode = mode;
+ }
+
+ ///
+ public void ApplyTo(CsvConfiguration configuration)
+ {
+ configuration.Mode = Mode;
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/NameAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/NameAttribute.cs
new file mode 100644
index 0000000..f1220e4
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/NameAttribute.cs
@@ -0,0 +1,77 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// When reading, is used to get the field
+ /// at the index of the name if there was a
+ /// header specified. It will look for the
+ /// first name match in the order listed.
+ /// When writing, sets the name of the
+ /// field in the header record.
+ /// The first name will be used.
+ ///
+ [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = false, Inherited = true)]
+ public class NameAttribute : Attribute, IMemberMapper, IParameterMapper
+ {
+ ///
+ /// Gets the names.
+ ///
+ public string[] Names { get; private set; }
+
+ ///
+ /// When reading, is used to get the field
+ /// at the index of the name if there was a
+ /// header specified. It will look for the
+ /// first name match in the order listed.
+ /// When writing, sets the name of the
+ /// field in the header record.
+ /// The first name will be used.
+ ///
+ /// The name
+ public NameAttribute(string name)
+ {
+ Names = new string[] { name };
+ }
+
+ ///
+ /// When reading, is used to get the field
+ /// at the index of the name if there was a
+ /// header specified. It will look for the
+ /// first name match in the order listed.
+ /// When writing, sets the name of the
+ /// field in the header record.
+ /// The first name will be used.
+ ///
+ /// The names.
+ public NameAttribute(params string[] names)
+ {
+ if (names == null || names.Length == 0)
+ {
+ throw new ArgumentNullException(nameof(names));
+ }
+
+ Names = names;
+ }
+
+ ///
+ public void ApplyTo(MemberMap memberMap)
+ {
+ memberMap.Data.Names.Clear();
+ memberMap.Data.Names.AddRange(Names);
+ memberMap.Data.IsNameSet = true;
+ }
+
+ ///
+ public void ApplyTo(ParameterMap parameterMap)
+ {
+ parameterMap.Data.Names.Clear();
+ parameterMap.Data.Names.AddRange(Names);
+ parameterMap.Data.IsNameSet = true;
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/NameIndexAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/NameIndexAttribute.cs
new file mode 100644
index 0000000..e3d1dfa
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/NameIndexAttribute.cs
@@ -0,0 +1,45 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// When reading, is used to get the
+ /// index of the name used when there
+ /// are multiple names that are the same.
+ ///
+ [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = false, Inherited = true)]
+ public class NameIndexAttribute : Attribute, IMemberMapper, IParameterMapper
+ {
+ ///
+ /// The name index.
+ ///
+ public int NameIndex { get; private set; }
+
+ ///
+ /// When reading, is used to get the
+ /// index of the name used when there
+ /// are multiple names that are the same.
+ ///
+ /// The name index.
+ public NameIndexAttribute(int nameIndex)
+ {
+ NameIndex = nameIndex;
+ }
+
+ ///
+ public void ApplyTo(MemberMap memberMap)
+ {
+ memberMap.Data.NameIndex = NameIndex;
+ }
+
+ ///
+ public void ApplyTo(ParameterMap parameterMap)
+ {
+ parameterMap.Data.NameIndex = NameIndex;
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/NewLineAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/NewLineAttribute.cs
new file mode 100644
index 0000000..a2bdbd2
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/NewLineAttribute.cs
@@ -0,0 +1,39 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// The newline string to use. Default is \r\n (CRLF).
+ /// When writing, this value is always used.
+ /// When reading, this value is only used if explicitly set.
+ /// If not set, the parser uses one of \r\n, \r, or \n.
+ ///
+ [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
+ public class NewLineAttribute : Attribute, IClassMapper
+ {
+ /// The newline string to use. Default is \r\n (CRLF).
+ /// When writing, this value is always used.
+ /// When reading, this value is only used if explicitly set.
+ /// If not set, the parser uses one of \r\n, \r, or \n.
+ public string NewLine { get; private set; }
+
+ /// The newline string to use. Default is \r\n (CRLF).
+ /// When writing, this value is always used.
+ /// When reading, this value is only used if explicitly set.
+ /// If not set, the parser uses one of \r\n, \r, or \n.
+ public NewLineAttribute(string newLine)
+ {
+ NewLine = newLine;
+ }
+
+ ///
+ public void ApplyTo(CsvConfiguration configuration)
+ {
+ configuration.NewLine = NewLine;
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/NullValuesAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/NullValuesAttribute.cs
new file mode 100644
index 0000000..8c87e28
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/NullValuesAttribute.cs
@@ -0,0 +1,52 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// The string values used to represent null when converting.
+ ///
+ [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = false, Inherited = true)]
+ public class NullValuesAttribute : Attribute, IMemberMapper, IParameterMapper
+ {
+ ///
+ /// Gets the null values.
+ ///
+ public string[] NullValues { get; private set; }
+
+ ///
+ /// The string values used to represent null when converting.
+ ///
+ /// The null values.
+ public NullValuesAttribute(string nullValue)
+ {
+ NullValues = new string[] { nullValue };
+ }
+
+ ///
+ /// The string values used to represent null when converting.
+ ///
+ /// The null values.
+ public NullValuesAttribute(params string[] nullValues)
+ {
+ NullValues = nullValues;
+ }
+
+ ///
+ public void ApplyTo(MemberMap memberMap)
+ {
+ memberMap.Data.TypeConverterOptions.NullValues.Clear();
+ memberMap.Data.TypeConverterOptions.NullValues.AddRange(NullValues);
+ }
+
+ ///
+ public void ApplyTo(ParameterMap parameterMap)
+ {
+ parameterMap.Data.TypeConverterOptions.NullValues.Clear();
+ parameterMap.Data.TypeConverterOptions.NullValues.AddRange(NullValues);
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/NumberStylesAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/NumberStylesAttribute.cs
new file mode 100644
index 0000000..1cd37fb
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/NumberStylesAttribute.cs
@@ -0,0 +1,44 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+using System.Globalization;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// The to use when type converting.
+ /// This is used when doing any number conversions.
+ ///
+ [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = false, Inherited = true)]
+ public class NumberStylesAttribute : Attribute, IMemberMapper, IParameterMapper
+ {
+ ///
+ /// Gets the number styles.
+ ///
+ public NumberStyles NumberStyles { get; private set; }
+
+ ///
+ /// The to use when type converting.
+ /// This is used when doing any number conversions.
+ ///
+ /// The number styles.
+ public NumberStylesAttribute(NumberStyles numberStyles)
+ {
+ NumberStyles = numberStyles;
+ }
+
+ ///
+ public void ApplyTo(MemberMap memberMap)
+ {
+ memberMap.Data.TypeConverterOptions.NumberStyles = NumberStyles;
+ }
+
+ ///
+ public void ApplyTo(ParameterMap parameterMap)
+ {
+ parameterMap.Data.TypeConverterOptions.NumberStyles = NumberStyles;
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/OptionalAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/OptionalAttribute.cs
new file mode 100644
index 0000000..5348c85
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/OptionalAttribute.cs
@@ -0,0 +1,27 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// Ignore the member when reading if no matching field name can be found.
+ ///
+ [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = false, Inherited = true)]
+ public class OptionalAttribute : Attribute, IMemberMapper, IParameterMapper
+ {
+ ///
+ public void ApplyTo(MemberMap memberMap)
+ {
+ memberMap.Data.IsOptional = true;
+ }
+
+ ///
+ public void ApplyTo(ParameterMap parameterMap)
+ {
+ parameterMap.Data.IsOptional = true;
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/ProcessFieldBufferSizeAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/ProcessFieldBufferSizeAttribute.cs
new file mode 100644
index 0000000..81f6178
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/ProcessFieldBufferSizeAttribute.cs
@@ -0,0 +1,36 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// The size of the buffer used when processing fields.
+ /// Default is 1024.
+ ///
+ [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
+ public class ProcessFieldBufferSizeAttribute : Attribute, IClassMapper
+ {
+ ///
+ /// The size of the buffer used when processing fields.
+ ///
+ public int ProcessFieldBufferSize { get; private set; }
+
+ ///
+ /// The size of the buffer used when processing fields.
+ ///
+ ///
+ public ProcessFieldBufferSizeAttribute(int processFieldBufferSize)
+ {
+ ProcessFieldBufferSize = processFieldBufferSize;
+ }
+
+ ///
+ public void ApplyTo(CsvConfiguration configuration)
+ {
+ configuration.ProcessFieldBufferSize = ProcessFieldBufferSize;
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/QuoteAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/QuoteAttribute.cs
new file mode 100644
index 0000000..93b5887
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/QuoteAttribute.cs
@@ -0,0 +1,35 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// The character used to quote fields.
+ ///
+ [AttributeUsage( AttributeTargets.Class, AllowMultiple = false, Inherited = true )]
+ public class QuoteAttribute : Attribute, IClassMapper
+ {
+ ///
+ /// Gets the character used to quote fields.
+ ///
+ public char Quote { get; private set; }
+
+ ///
+ /// The character used to quote fields.
+ ///
+ /// The quote character.
+ public QuoteAttribute( char quote )
+ {
+ Quote = quote;
+ }
+
+ ///
+ public void ApplyTo(CsvConfiguration configuration)
+ {
+ configuration.Quote = Quote;
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/TrimOptionsAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/TrimOptionsAttribute.cs
new file mode 100644
index 0000000..1b2f645
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/TrimOptionsAttribute.cs
@@ -0,0 +1,35 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// The fields trimming options.
+ ///
+ [AttributeUsage( AttributeTargets.Class, AllowMultiple = false, Inherited = true )]
+ public class TrimOptionsAttribute : Attribute, IClassMapper
+ {
+ ///
+ /// Gets the fields trimming options.
+ ///
+ public TrimOptions TrimOptions { get; private set; }
+
+ ///
+ /// The fields trimming options.
+ ///
+ /// The TrimOptions.
+ public TrimOptionsAttribute( TrimOptions trimOptions )
+ {
+ TrimOptions = trimOptions;
+ }
+
+ ///
+ public void ApplyTo(CsvConfiguration configuration)
+ {
+ configuration.TrimOptions = TrimOptions;
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/TypeConverterAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/TypeConverterAttribute.cs
new file mode 100644
index 0000000..f3900ec
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/TypeConverterAttribute.cs
@@ -0,0 +1,57 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using CsvHelper.TypeConversion;
+using System;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// Specifies the to use
+ /// when converting the member to and from a CSV field.
+ ///
+ [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = false, Inherited = true)]
+ public class TypeConverterAttribute : Attribute, IMemberMapper, IParameterMapper
+ {
+ ///
+ /// Gets the type converter.
+ ///
+ public ITypeConverter TypeConverter { get; private set; }
+
+ ///
+ /// Specifies the to use
+ /// when converting the member to and from a CSV field.
+ ///
+ /// The type of the .
+ public TypeConverterAttribute(Type typeConverterType) : this(typeConverterType, new object[0]) { }
+
+ ///
+ /// Specifies the to use
+ /// when converting the member to and from a CSV field.
+ ///
+ /// The type of the .
+ /// Type constructor arguments for the type converter.
+ public TypeConverterAttribute(Type typeConverterType, params object[] constructorArgs)
+ {
+ if (typeConverterType == null)
+ {
+ throw new ArgumentNullException(nameof(typeConverterType));
+ }
+
+ TypeConverter = ObjectResolver.Current.Resolve(typeConverterType, constructorArgs) as ITypeConverter ?? throw new ArgumentException($"Type '{typeConverterType.FullName}' does not implement {nameof(ITypeConverter)}");
+ }
+
+ ///
+ public void ApplyTo(MemberMap memberMap)
+ {
+ memberMap.Data.TypeConverter = TypeConverter;
+ }
+
+ ///
+ public void ApplyTo(ParameterMap parameterMap)
+ {
+ parameterMap.Data.TypeConverter = TypeConverter;
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/UseNewObjectForNullReferenceMembersAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/UseNewObjectForNullReferenceMembersAttribute.cs
new file mode 100644
index 0000000..6bfbf37
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/UseNewObjectForNullReferenceMembersAttribute.cs
@@ -0,0 +1,47 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// Gets a value indicating that during writing if a new
+ /// object should be created when a reference member is null.
+ /// True to create a new object and use it's defaults for the
+ /// fields, or false to leave the fields empty for all the
+ /// reference member's member.
+ ///
+ [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
+ public class UseNewObjectForNullReferenceMembersAttribute : Attribute, IClassMapper
+ {
+ ///
+ /// Gets a value indicating that during writing if a new
+ /// object should be created when a reference member is null.
+ /// True to create a new object and use it's defaults for the
+ /// fields, or false to leave the fields empty for all the
+ /// reference member's member.
+ ///
+ public bool UseNewObjectForNullReferenceMembers { get; private set; }
+
+ ///
+ /// Gets a value indicating that during writing if a new
+ /// object should be created when a reference member is null.
+ /// True to create a new object and use it's defaults for the
+ /// fields, or false to leave the fields empty for all the
+ /// reference member's member.
+ ///
+ /// The value.
+ public UseNewObjectForNullReferenceMembersAttribute(bool useNewObjectForNullReferenceMembers)
+ {
+ UseNewObjectForNullReferenceMembers = useNewObjectForNullReferenceMembers;
+ }
+
+ ///
+ public void ApplyTo(CsvConfiguration configuration)
+ {
+ configuration.UseNewObjectForNullReferenceMembers = UseNewObjectForNullReferenceMembers;
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/WhiteSpaceCharsAttribute.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/WhiteSpaceCharsAttribute.cs
new file mode 100644
index 0000000..ef8f7cb
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/Attributes/WhiteSpaceCharsAttribute.cs
@@ -0,0 +1,41 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using System;
+using System.Linq;
+using System.Text.RegularExpressions;
+
+namespace CsvHelper.Configuration.Attributes
+{
+ ///
+ /// Characters considered whitespace.
+ /// Used when trimming fields.
+ /// Default is [' '].
+ ///
+ [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
+ public class WhiteSpaceCharsAttribute : Attribute, IClassMapper
+ {
+ ///
+ /// Characters considered whitespace.
+ /// Used when trimming fields.
+ ///
+ public char[] WhiteSpaceChars { get; private set; }
+
+ ///
+ /// Characters considered whitespace.
+ /// Used when trimming fields.
+ ///
+ ///
+ public WhiteSpaceCharsAttribute(string whiteSpaceChars)
+ {
+ WhiteSpaceChars = Regex.Split(whiteSpaceChars, @"\s").Select(s => s[0]).ToArray();
+ }
+
+ ///
+ public void ApplyTo(CsvConfiguration configuration)
+ {
+ configuration.WhiteSpaceChars = WhiteSpaceChars;
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/ClassMap.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/ClassMap.cs
new file mode 100644
index 0000000..b000693
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/src/CsvHelper/Configuration/ClassMap.cs
@@ -0,0 +1,648 @@
+// Copyright 2009-2022 Josh Close
+// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0.
+// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0.
+// https://github.com/JoshClose/CsvHelper
+using CsvHelper.Configuration.Attributes;
+using CsvHelper.TypeConversion;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+namespace CsvHelper.Configuration
+{
+ ///
+ /// Maps class members to CSV fields.
+ ///
+ public abstract class ClassMap
+ {
+ private static readonly List enumerableConverters = new List
+ {
+ typeof(ArrayConverter),
+ typeof(CollectionGenericConverter),
+ typeof(EnumerableConverter),
+ typeof(IDictionaryConverter),
+ typeof(IDictionaryGenericConverter),
+ typeof(IEnumerableConverter),
+ typeof(IEnumerableGenericConverter)
+ };
+
+ ///
+ /// The type of the class this map is for.
+ ///
+ public virtual Type ClassType { get; private set; }
+
+ ///
+ /// The class constructor parameter mappings.
+ ///
+ public virtual List ParameterMaps { get; } = new List();
+
+ ///
+ /// The class member mappings.
+ ///
+ public virtual MemberMapCollection MemberMaps { get; } = new MemberMapCollection();
+
+ ///
+ /// The class member reference mappings.
+ ///
+ public virtual MemberReferenceMapCollection ReferenceMaps { get; } = new MemberReferenceMapCollection();
+
+ ///
+ /// Allow only internal creation of CsvClassMap.
+ ///
+ /// The type of the class this map is for.
+ internal ClassMap(Type classType)
+ {
+ ClassType = classType;
+ }
+
+ ///
+ /// Maps a member to a CSV field.
+ ///
+ /// The type of the class this map is for. This may not be the same type
+ /// as the member.DeclaringType or the current ClassType due to nested member mappings.
+ /// The member to map.
+ /// If true, an existing map will be used if available.
+ /// If false, a new map is created for the same member.
+ /// The member mapping.
+ public MemberMap Map(Type classType, MemberInfo member, bool useExistingMap = true)
+ {
+ if (useExistingMap)
+ {
+ var existingMap = MemberMaps.Find(member);
+ if (existingMap != null)
+ {
+ return existingMap;
+ }
+ }
+
+ var memberMap = MemberMap.CreateGeneric(classType, member);
+ memberMap.Data.Index = GetMaxIndex() + 1;
+ MemberMaps.Add(memberMap);
+
+ return memberMap;
+ }
+
+ ///
+ /// Maps a non-member to a CSV field. This allows for writing
+ /// data that isn't mapped to a class member.
+ ///
+ /// The member mapping.
+ public virtual MemberMap