From 25d856694bbfac13cfd579dbf95c39a7871d90a4 Mon Sep 17 00:00:00 2001 From: Johannes Tuerk Date: Fri, 24 Oct 2025 12:16:54 +0200 Subject: [PATCH 1/8] support credential_metadata in issuer metadata and drop AttributeOrder support Signed-off-by: Johannes Tuerk --- .../ClaimPaths/ClaimPath.cs | 53 ++- src/WalletFramework.MdocVc/MdocRecord.cs | 30 +- .../CredConfiguration/Models/ClaimDisplay.cs | 57 +++ .../CredConfiguration/Models/ClaimMetadata.cs | 80 +++++ .../Models/CredentialConfiguration.cs | 35 +- .../Models/CredentialMetadata.cs | 91 +++++ .../CredConfiguration/Models/Format.cs | 2 +- .../Models/Mdoc/ClaimsMetadata.cs | 85 ----- .../Models/Mdoc/MdocConfiguration.cs | 57 +-- .../Models/SdJwt/SdJwtConfiguration.cs | 134 +------ .../Oid4Vci/Implementations/MdocFun.cs | 40 --- .../Implementations/Oid4VciClientService.cs | 9 - .../Implementations/SdJwtRecordExtensions.cs | 5 +- .../Credential/Attributes/ClaimMetadata.cs | 42 --- .../Models/Credential/CredentialDefinition.cs | 23 -- .../Models/Credential/SdJwtMetadata.cs | 85 ----- .../Models/Records/SdJwtRecord.cs | 13 - .../Path/ClaimPathTests.cs | 11 +- .../Oid4Vp/Dcql/DcqlServiceTests.cs | 1 - .../Services/PexServiceTests.cs | 1 - .../AuthFlow/Samples/AuthFlowSamples.cs | 2 +- .../Mdoc/MdocConfigurationTests.cs | 14 - .../Mdoc/Samples/MdocConfigurationSample.cs | 24 +- .../SdJwt/Samples/SdJwtConfigurationSample.cs | 333 +++++++----------- .../Oid4Vci/Issuer/IssuerMetadataTests.cs | 24 +- .../Issuer/Samples/IssuerMetadataSample.cs | 8 +- .../Samples/MdocSamples.cs | 1 - .../Samples/SdJwtSamples.cs | 3 - .../SdJwtRecordTests.cs | 2 - .../SdJwtVcHolderServiceTests.cs | 3 +- 30 files changed, 476 insertions(+), 792 deletions(-) create mode 100644 src/WalletFramework.Oid4Vc/Oid4Vci/CredConfiguration/Models/ClaimDisplay.cs create mode 100644 src/WalletFramework.Oid4Vc/Oid4Vci/CredConfiguration/Models/ClaimMetadata.cs create mode 100644 src/WalletFramework.Oid4Vc/Oid4Vci/CredConfiguration/Models/CredentialMetadata.cs delete mode 100644 src/WalletFramework.Oid4Vc/Oid4Vci/CredConfiguration/Models/Mdoc/ClaimsMetadata.cs delete mode 100644 src/WalletFramework.Oid4Vc/Oid4Vci/Implementations/MdocFun.cs delete mode 100644 src/WalletFramework.SdJwtVc/Models/Credential/Attributes/ClaimMetadata.cs delete mode 100644 src/WalletFramework.SdJwtVc/Models/Credential/CredentialDefinition.cs delete mode 100644 src/WalletFramework.SdJwtVc/Models/Credential/SdJwtMetadata.cs diff --git a/src/WalletFramework.Core/ClaimPaths/ClaimPath.cs b/src/WalletFramework.Core/ClaimPaths/ClaimPath.cs index 9f73e679..895f65b0 100644 --- a/src/WalletFramework.Core/ClaimPaths/ClaimPath.cs +++ b/src/WalletFramework.Core/ClaimPaths/ClaimPath.cs @@ -1,3 +1,4 @@ +using LanguageExt; using WalletFramework.Core.ClaimPaths.Errors; using WalletFramework.Core.Functional; using WalletFramework.Core.Path; @@ -31,18 +32,60 @@ from components in array.TraverseAll(ClaimPathComponent.Create) from path in FromComponents(components) select path; } + + public static JArray ToArray(ClaimPath claimPath) + { + var array = new JArray(); + foreach (var component in claimPath.GetPathComponents()) + { + component.Match( + key => + { + array.Add(new JValue(key)); + return Unit.Default; + }, + index => + { + array.Add(new JValue(index)); + return Unit.Default; + }, + selectAll => + { + array.Add(JValue.CreateNull()); + return Unit.Default; + } + ); + } + return array; + } } public static class ClaimPathFun { public static JsonPath ToJsonPath(this ClaimPath claimPath) { - var jsonPath = "$." + string.Join('.', claimPath.GetPathComponents().Select(x => + var jsonPath = "$"; + + foreach (var component in claimPath.GetPathComponents()) { - if (x.IsKey) return x.AsKey(); - if (x.IsIndex) return x.AsIndex()?.ToString(); - return null; - }).Where(x => x is not null)); + component.Match( + key => + { + jsonPath += $".{key}"; + return Unit.Default; + }, + integer => + { + jsonPath += $"[{integer}]"; + return Unit.Default; + }, + selectAll => + { + jsonPath += "[*]"; + return Unit.Default; + }); + } + return JsonPath.ValidJsonPath(jsonPath).UnwrapOrThrow(); } } diff --git a/src/WalletFramework.MdocVc/MdocRecord.cs b/src/WalletFramework.MdocVc/MdocRecord.cs index 253066be..c9a28b7c 100644 --- a/src/WalletFramework.MdocVc/MdocRecord.cs +++ b/src/WalletFramework.MdocVc/MdocRecord.cs @@ -30,8 +30,6 @@ public CredentialId CredentialId public DocType DocType => Mdoc.DocType; public Mdoc Mdoc { get; } - - public Option> Displays { get; } public KeyId KeyId { get; } @@ -54,8 +52,7 @@ public string CredentialSetId public override string TypeName => "WF.MdocRecord"; public MdocRecord( - Mdoc mdoc, - Option> displays, + Mdoc mdoc, KeyId keyId, string credentialSetId, CredentialState credentialState, @@ -64,7 +61,6 @@ public MdocRecord( { CredentialId = CredentialId.CreateCredentialId(); Mdoc = mdoc; - Displays = displays; KeyId = keyId; CredentialSetId = credentialSetId; CredentialState = credentialState; @@ -110,7 +106,6 @@ public override void WriteJson(JsonWriter writer, MdocRecord? value, JsonSeriali public static class MdocRecordFun { - private const string MdocDisplaysJsonKey = "displays"; private const string MdocJsonKey = "mdoc"; private const string KeyIdJsonKey = "keyId"; private const string CredentialSetIdJsonKey = "credentialSetId"; @@ -130,12 +125,6 @@ public static MdocRecord DecodeFromJson(JObject json) var mdoc = Mdoc .ValidMdoc(mdocStr) .UnwrapOrThrow(new InvalidOperationException($"The MdocRecord with ID: {id} is corrupt")); - - var displays = - from jToken in json.GetByKey(MdocDisplaysJsonKey).ToOption() - from jArray in jToken.ToJArray().ToOption() - from mdocDisplays in MdocDisplayFun.DecodeFromJson(jArray) - select mdocDisplays; var keyId = KeyId .ValidKeyId(json[KeyIdJsonKey]!.ToString()) @@ -155,7 +144,7 @@ from expires in json.GetByKey(ExpiresAtJsonKey).ToOption() Some: value => value.ToObject(), None: () => false); - var result = new MdocRecord(mdoc, displays, keyId, credentialSetId, credentialState, expiresAt, oneTimeUse) + var result = new MdocRecord(mdoc, keyId, credentialSetId, credentialState, expiresAt, oneTimeUse) { Id = id, RecordVersion = recordVersion @@ -177,21 +166,10 @@ public static JObject EncodeToJson(this MdocRecord record) }; record.ExpiresAt.IfSome(expires => result.Add(ExpiresAtJsonKey, expires)); - - record.Displays.IfSome(displays => - { - var displaysJson = new JArray(); - foreach (var display in displays) - { - displaysJson.Add(display.EncodeToJson()); - } - - result.Add(MdocDisplaysJsonKey, displaysJson); - }); return result; } - public static MdocRecord ToRecord(this Mdoc mdoc, Option> displays, KeyId keyId, CredentialSetId credentialSetId, bool isOneTimeUse) => - new(mdoc, displays, keyId, credentialSetId, CredentialState.Active, Option.None, isOneTimeUse); + public static MdocRecord ToRecord(this Mdoc mdoc, KeyId keyId, CredentialSetId credentialSetId, bool isOneTimeUse) => + new(mdoc, keyId, credentialSetId, CredentialState.Active, Option.None, isOneTimeUse); } diff --git a/src/WalletFramework.Oid4Vc/Oid4Vci/CredConfiguration/Models/ClaimDisplay.cs b/src/WalletFramework.Oid4Vc/Oid4Vci/CredConfiguration/Models/ClaimDisplay.cs new file mode 100644 index 00000000..60df6c4c --- /dev/null +++ b/src/WalletFramework.Oid4Vc/Oid4Vci/CredConfiguration/Models/ClaimDisplay.cs @@ -0,0 +1,57 @@ +using LanguageExt; +using Newtonsoft.Json.Linq; +using WalletFramework.Core.Functional; +using WalletFramework.Core.Json; +using WalletFramework.Core.Localization; +using static WalletFramework.Core.Localization.Locale; +using static WalletFramework.Oid4Vc.Oid4Vci.CredConfiguration.Models.ClaimDisplayJsonExtensions; + +namespace WalletFramework.Oid4Vc.Oid4Vci.CredConfiguration.Models; + +public record ClaimDisplay +{ + public Option Name { get; set; } + + public Option Locale { get; set; } + + private ClaimDisplay(Option name, Option locale) + { + Name = name; + Locale = locale; + } + + private static ClaimDisplay Create(Option name, Option locale) => + new(name, locale); + + public static Validation ValidClaimDisplay(JToken config) + { + var name = + from jToken in config.GetByKey(NameJsonKey) + select jToken.ToObject(); + + var locale = + from jToken in config.GetByKey(LocaleJsonKey) + from validLocale in ValidLocale(jToken) + select validLocale; + + return ValidationFun.Valid(Create) + .Apply(name.ToOption()) + .Apply(locale.ToOption()); + } +} + +public static class ClaimDisplayJsonExtensions +{ + public const string NameJsonKey = "name"; + public const string LocaleJsonKey = "locale"; + + public static JObject EncodeToJson(this ClaimDisplay display) + { + var result = new JObject(); + + display.Locale.IfSome(locale => result.Add(LocaleJsonKey, locale.ToString())); + display.Name.IfSome(name => result.Add(NameJsonKey, name)); + + return result; + } +} diff --git a/src/WalletFramework.Oid4Vc/Oid4Vci/CredConfiguration/Models/ClaimMetadata.cs b/src/WalletFramework.Oid4Vc/Oid4Vci/CredConfiguration/Models/ClaimMetadata.cs new file mode 100644 index 00000000..0ced3f71 --- /dev/null +++ b/src/WalletFramework.Oid4Vc/Oid4Vci/CredConfiguration/Models/ClaimMetadata.cs @@ -0,0 +1,80 @@ +using LanguageExt; +using Newtonsoft.Json.Linq; +using WalletFramework.Core.ClaimPaths; +using WalletFramework.Core.Functional; +using WalletFramework.Core.Json; +using static WalletFramework.Oid4Vc.Oid4Vci.CredConfiguration.Models.ClaimMetadataJsonExtensions; + +namespace WalletFramework.Oid4Vc.Oid4Vci.CredConfiguration.Models; + +public record ClaimMetadata +{ + public ClaimPath Path { get; } + + public Option> Display { get; } + + public Option Mandatory { get; } + + private ClaimMetadata(ClaimPath claimPath, Option> claimDisplays, Option mandatory) + { + Path = claimPath; + Display = claimDisplays; + Mandatory = mandatory; + } + + private static ClaimMetadata Create(ClaimPath claimPath, Option> claimDisplays, Option mandatory) => + new(claimPath, claimDisplays, mandatory); + + public static Validation ValidClaimMetadata(JToken config, Func> claimPathValidation) + { + var claimPath = + from jToken in config.GetByKey(PathJsonKey) + from jArray in claimPathValidation(jToken) + select jArray; + + var claimDisplays = + from jToken in config.GetByKey(DisplayJsonKey) + from jArray in jToken.ToJArray() + from claimDisplay in jArray.TraverseAny(ClaimDisplay.ValidClaimDisplay) + select claimDisplay.ToList(); + + var mandatory = + from jToken in config.GetByKey(MandatoryJsonKey) + select jToken.ToObject(); + + var result = ValidationFun.Valid(Create) + .Apply(claimPath) + .Apply(claimDisplays.ToOption()) + .Apply(mandatory.ToOption()); + + return result; + } +} + +public static class ClaimMetadataJsonExtensions +{ + public const string PathJsonKey = "path"; + public const string DisplayJsonKey = "display"; + public const string MandatoryJsonKey = "mandatory"; + + public static JObject EncodeToJson(this ClaimMetadata display) + { + var result = new JObject(); + + result.Add(PathJsonKey, ClaimPath.ToArray(display.Path)); + + display.Display.IfSome(claimDisplays => + { + var claimsArray = new JArray(); + foreach (var claimDisplay in claimDisplays) + { + claimsArray.Add(claimDisplay.EncodeToJson()); + } + result.Add(DisplayJsonKey, claimsArray); + }); + + display.Mandatory.IfSome(mandatory => { result.Add(MandatoryJsonKey, mandatory); }); + + return result; + } +} diff --git a/src/WalletFramework.Oid4Vc/Oid4Vci/CredConfiguration/Models/CredentialConfiguration.cs b/src/WalletFramework.Oid4Vc/Oid4Vci/CredConfiguration/Models/CredentialConfiguration.cs index 823873bd..fe84c495 100644 --- a/src/WalletFramework.Oid4Vc/Oid4Vci/CredConfiguration/Models/CredentialConfiguration.cs +++ b/src/WalletFramework.Oid4Vc/Oid4Vci/CredConfiguration/Models/CredentialConfiguration.cs @@ -1,5 +1,6 @@ using LanguageExt; using Newtonsoft.Json.Linq; +using WalletFramework.Core.ClaimPaths; using WalletFramework.Core.Functional; using WalletFramework.Core.Json; using static WalletFramework.Core.Functional.ValidationFun; @@ -9,8 +10,8 @@ using static WalletFramework.Oid4Vc.Oid4Vci.CredConfiguration.Models.CryptograhicSigningAlgValue; using static WalletFramework.Oid4Vc.Oid4Vci.CredConfiguration.Models.ProofTypeId; using static WalletFramework.Oid4Vc.Oid4Vci.CredConfiguration.Models.ProofTypeMetadata; -using static WalletFramework.Oid4Vc.Oid4Vci.CredConfiguration.Models.CredentialDisplay; using static WalletFramework.Oid4Vc.Oid4Vci.CredConfiguration.Models.CredentialConfigurationFun; +using static WalletFramework.Oid4Vc.Oid4Vci.CredConfiguration.Models.CredentialMetadata; namespace WalletFramework.Oid4Vc.Oid4Vci.CredConfiguration.Models; @@ -49,7 +50,7 @@ public record CredentialConfiguration /// /// Gets a list of display properties of the supported credential for different languages. /// - public Option> Display { get; } + public Option CredentialMetadata { get; } private CredentialConfiguration( Format format, @@ -57,14 +58,14 @@ private CredentialConfiguration( Option> cryptographicBindingMethodsSupported, Option> credentialSigningAlgValuesSupported, Option> proofTypesSupported, - Option> display) + Option credentialMetadata) { Format = format; Scope = scope; CryptographicBindingMethodsSupported = cryptographicBindingMethodsSupported; CredentialSigningAlgValuesSupported = credentialSigningAlgValuesSupported; ProofTypesSupported = proofTypesSupported; - Display = display; + CredentialMetadata = credentialMetadata; } private static CredentialConfiguration Create( @@ -73,15 +74,15 @@ private static CredentialConfiguration Create( Option> cryptographicBindingMethodsSupported, Option> credentialSigningAlgValuesSupported, Option> proofTypesSupported, - Option> display) => new( + Option credentialMetadata) => new( format, scope, cryptographicBindingMethodsSupported, credentialSigningAlgValuesSupported, proofTypesSupported, - display); + credentialMetadata); - public static Validation ValidCredentialConfiguration(JToken credentialMetadata) + public static Validation ValidCredentialConfiguration(JToken credentialMetadata, Func> claimPathValidation) { var validBindingMethods = new Func>>(bindingMethods => from array in bindingMethods.ToJArray() @@ -96,11 +97,8 @@ from values in array.TraverseAny(ValidCryptograhicSigningAlgValue) var validProofTypes = new Func>>(proofTypes => proofTypes .ToJObject() .OnSuccess(jObject => jObject.ToValidDictionaryAny(ValidProofTypeId, ValidProofTypeMetadata))); - - var optionalCredentialDisplays = new Func>>(credentialDisplays => - from array in credentialDisplays.ToJArray().ToOption() - from displays in array.TraverseAny(OptionalCredentialDisplay) - select displays.ToList()); + + var optionalCredentialMetadata = new Func>(token => OptionalCredentialMetadata(token, claimPathValidation)); return Valid(Create) .Apply(credentialMetadata.GetByKey(FormatJsonKey).OnSuccess(ValidFormat)) @@ -108,7 +106,7 @@ from displays in array.TraverseAny(OptionalCredentialDisplay) .Apply(credentialMetadata.GetByKey(CryptographicBindingMethodsSupportedJsonKey).OnSuccess(validBindingMethods).ToOption()) .Apply(credentialMetadata.GetByKey(CredentialSigningAlgValuesSupportedJsonKey).OnSuccess(validSigningAlgValues).ToOption()) .Apply(credentialMetadata.GetByKey(ProofTypesSupportedJsonKey).OnSuccess(validProofTypes).ToOption()) - .Apply(credentialMetadata.GetByKey(DisplayJsonKey).ToOption().OnSome(optionalCredentialDisplays)); + .Apply(credentialMetadata.GetByKey(CredentialMetadataJsonKey).ToOption().OnSome(optionalCredentialMetadata)); } } @@ -119,7 +117,7 @@ public static class CredentialConfigurationFun public const string CryptographicBindingMethodsSupportedJsonKey = "cryptographic_binding_methods_supported"; public const string CredentialSigningAlgValuesSupportedJsonKey = "credential_signing_alg_values_supported"; public const string ProofTypesSupportedJsonKey = "proof_types_supported"; - public const string DisplayJsonKey = "display"; + public const string CredentialMetadataJsonKey = "credential_metadata"; public static JObject EncodeToJson(this CredentialConfiguration config) { @@ -159,14 +157,9 @@ public static JObject EncodeToJson(this CredentialConfiguration config) result.Add(ProofTypesSupportedJsonKey, proofTypes); }); - config.Display.IfSome(displays => + config.CredentialMetadata.IfSome(metadata => { - var displayArray = new JArray(); - foreach (var display in displays) - { - displayArray.Add(display.EncodeToJson()); - } - result.Add(DisplayJsonKey, displayArray); + result.Add(CredentialMetadataJsonKey, metadata.EncodeToJson()); }); return result; diff --git a/src/WalletFramework.Oid4Vc/Oid4Vci/CredConfiguration/Models/CredentialMetadata.cs b/src/WalletFramework.Oid4Vc/Oid4Vci/CredConfiguration/Models/CredentialMetadata.cs new file mode 100644 index 00000000..f80738dc --- /dev/null +++ b/src/WalletFramework.Oid4Vc/Oid4Vci/CredConfiguration/Models/CredentialMetadata.cs @@ -0,0 +1,91 @@ +using LanguageExt; +using Newtonsoft.Json.Linq; +using WalletFramework.Core.ClaimPaths; +using WalletFramework.Core.Functional; +using WalletFramework.Core.Json; +using static WalletFramework.Oid4Vc.Oid4Vci.CredConfiguration.Models.CredentialDisplay; +using static WalletFramework.Oid4Vc.Oid4Vci.CredConfiguration.Models.CredentialMetadataFun; +using static WalletFramework.Core.Functional.ValidationFun; + +namespace WalletFramework.Oid4Vc.Oid4Vci.CredConfiguration.Models; + +/// +/// Represents credential metadata as defined in OpenID4VCI 1.0, containing display information and claims. +/// +public record CredentialMetadata +{ + /// + /// Gets a list of display properties of the supported credential for different languages. + /// + public Option> Display { get; } + + /// + /// Gets the claims token as provided by the issuer metadata. The concrete structure is format-specific. + /// + public Option> Claims { get; } + + private CredentialMetadata(Option> display, Option> claimMetadata) + { + Display = display; + Claims = claimMetadata; + } + + private static CredentialMetadata Create( + Option> display, + Option> claimMetadata) => new( + display, + claimMetadata); + + public static Option OptionalCredentialMetadata(JToken token, Func> claimPathValidation) => token + .ToJObject() + .ToOption() + .OnSome(jObject => + { + var optionalCredentialDisplays = new Func>>(credentialDisplays => + from array in credentialDisplays.ToJArray().ToOption() + from displays in array.TraverseAny(OptionalCredentialDisplay) + select displays.ToList()); + + var optionalClaimsMetadata = new Func>>(claimsMetadata => + from array in claimsMetadata.ToJArray().ToOption() + from claimMetadatas in array.TraverseAny(claimMetadata => ClaimMetadata.ValidClaimMetadata(claimMetadata, claimPathValidation).ToOption()) + select claimMetadatas.ToList()); + + return Valid(Create) + .Apply(jObject.GetByKey(DisplayJsonKey).ToOption().OnSome(optionalCredentialDisplays)) + .Apply(jObject.GetByKey(ClaimsJsonKey).ToOption().OnSome(optionalClaimsMetadata)).ToOption(); + }); +} + +public static class CredentialMetadataFun +{ + public const string DisplayJsonKey = "display"; + public const string ClaimsJsonKey = "claims"; + + public static JObject EncodeToJson(this CredentialMetadata metadata) + { + var result = new JObject(); + + metadata.Display.IfSome(displays => + { + var displayArray = new JArray(); + foreach (var display in displays) + { + displayArray.Add(display.EncodeToJson()); + } + result.Add(DisplayJsonKey, displayArray); + }); + + metadata.Claims.IfSome(claims => + { + var claimsArray = new JArray(); + foreach (var claim in claims) + { + claimsArray.Add(claim.EncodeToJson()); + } + result.Add(ClaimsJsonKey, claimsArray); + }); + + return result; + } +} diff --git a/src/WalletFramework.Oid4Vc/Oid4Vci/CredConfiguration/Models/Format.cs b/src/WalletFramework.Oid4Vc/Oid4Vci/CredConfiguration/Models/Format.cs index 1d809cb4..202a8fa0 100644 --- a/src/WalletFramework.Oid4Vc/Oid4Vci/CredConfiguration/Models/Format.cs +++ b/src/WalletFramework.Oid4Vc/Oid4Vci/CredConfiguration/Models/Format.cs @@ -26,7 +26,7 @@ public static Validation ValidFormat(JToken format) => format.ToJValue() ? new Format(str) : new FormatNotSupportedError(str).ToInvalid(); }); - + private static List SupportedFormats => [ Constants.SdJwtVcFormat, diff --git a/src/WalletFramework.Oid4Vc/Oid4Vci/CredConfiguration/Models/Mdoc/ClaimsMetadata.cs b/src/WalletFramework.Oid4Vc/Oid4Vci/CredConfiguration/Models/Mdoc/ClaimsMetadata.cs deleted file mode 100644 index e0c31872..00000000 --- a/src/WalletFramework.Oid4Vc/Oid4Vci/CredConfiguration/Models/Mdoc/ClaimsMetadata.cs +++ /dev/null @@ -1,85 +0,0 @@ -using LanguageExt; -using Newtonsoft.Json.Linq; -using WalletFramework.Core.Functional; -using WalletFramework.Core.Json; -using WalletFramework.MdocLib; -using WalletFramework.MdocLib.Elements; -using WalletFramework.MdocVc; -using static WalletFramework.Oid4Vc.Oid4Vci.CredConfiguration.Models.Mdoc.ElementMetadata; - -namespace WalletFramework.Oid4Vc.Oid4Vci.CredConfiguration.Models.Mdoc; - -public readonly struct ClaimsMetadata -{ - public Dictionary> Value { get; } - - private ClaimsMetadata(Dictionary> value) => - Value = value; - - public static Validation ValidClaimsMetadata(JObject claims) => claims - .ToValidDictionaryAll(NameSpace.ValidNameSpace, ValidElementMetadatas) - .OnSuccess(dictionary => new ClaimsMetadata(dictionary)); -} - -public static class ClaimsMetadataFun -{ - public static JObject EncodeToJson(this ClaimsMetadata metadata) - { - var result = new JObject(); - - foreach (var (key, elementMetadatas) in metadata.Value) - { - var elementsJson = new JObject(); - foreach (var (elementIdentifier, elementMetadata) in elementMetadatas) - { - elementsJson.Add(elementIdentifier, elementMetadata.EncodeToJson()); - } - - result.Add(key.ToString(), elementsJson); - } - - return result; - } - - public static Option>>> ToClaimsDisplays( - this ClaimsMetadata claimsMetadata) - { - var result = new Dictionary>>(); - - foreach (var nameSpacePair in claimsMetadata.Value) - { - var elementDisplays = new Dictionary>(); - foreach (var elementPair in nameSpacePair.Value) - { - elementPair.Value.Display.Match( - list => - { - var displays = list.Select(elementDisplay => - { - var name = - from elementName in elementDisplay.Name - from claimName in ClaimName.OptionClaimName(elementName) - select claimName; - - return new ClaimDisplay(name, elementDisplay.Locale); - }).ToList(); - elementDisplays.Add(elementPair.Key, displays); - }, - () => {} - ); - } - - if (elementDisplays.Any()) - result.Add(nameSpacePair.Key, elementDisplays); - } - - if (result.Any()) - { - return result; - } - else - { - return Option>>>.None; - } - } -} diff --git a/src/WalletFramework.Oid4Vc/Oid4Vci/CredConfiguration/Models/Mdoc/MdocConfiguration.cs b/src/WalletFramework.Oid4Vc/Oid4Vci/CredConfiguration/Models/Mdoc/MdocConfiguration.cs index e71fd586..f6674be7 100644 --- a/src/WalletFramework.Oid4Vc/Oid4Vci/CredConfiguration/Models/Mdoc/MdocConfiguration.cs +++ b/src/WalletFramework.Oid4Vc/Oid4Vci/CredConfiguration/Models/Mdoc/MdocConfiguration.cs @@ -1,5 +1,7 @@ using LanguageExt; using Newtonsoft.Json.Linq; +using WalletFramework.Core.ClaimPaths; +using WalletFramework.Core.ClaimPaths.Errors; using WalletFramework.Core.Functional; using WalletFramework.Core.Json; using WalletFramework.MdocLib; @@ -22,8 +24,6 @@ public record MdocConfiguration public Option> CryptographicSuitesSupported { get; } public Option> CryptographicCurvesSupported { get; } - - public Option Claims { get; } public Format Format => CredentialConfiguration.Format; @@ -32,15 +32,13 @@ private MdocConfiguration( DocType docType, Option policy, Option> cryptographicSuitesSupported, - Option> cryptographicCurvesSupported, - Option claims) + Option> cryptographicCurvesSupported) { CredentialConfiguration = credentialConfiguration; DocType = docType; Policy = policy; CryptographicSuitesSupported = cryptographicSuitesSupported; CryptographicCurvesSupported = cryptographicCurvesSupported; - Claims = claims; } private static MdocConfiguration Create( @@ -48,13 +46,28 @@ private static MdocConfiguration Create( DocType docType, Option policy, Option> cryptographicSuitesSupported, - Option> cryptographicCurvesSupported, - Option claims) => - new(credentialConfiguration, docType, policy, cryptographicSuitesSupported, cryptographicCurvesSupported, claims); + Option> cryptographicCurvesSupported) => + new(credentialConfiguration, docType, policy, cryptographicSuitesSupported, cryptographicCurvesSupported); public static Validation ValidMdocConfiguration(JObject config) { - var credentialConfiguration = CredentialConfiguration.ValidCredentialConfiguration(config); + var mDocClaimPathValidation = new Func>(token => + { + var mDocClaimPath = + from jArray in token.ToJArray() + from claimPath in ClaimPath.FromJArray(jArray) + let pathComponents = claimPath.GetPathComponents() + from _ in pathComponents.Count > 2 + && pathComponents[0].IsKey + && pathComponents[1].IsKey + ? ValidationFun.Valid(Unit.Default) + : new UnknownComponentError() + select claimPath; + + return mDocClaimPath; + }); + + var credentialConfiguration = CredentialConfiguration.ValidCredentialConfiguration(config, mDocClaimPathValidation); var docType = config.GetByKey(DocTypeJsonKey).OnSuccess(ValidDoctype); var policy = config.GetByKey(PolicyJsonKey).OnSuccess(ValidPolicy).ToOption(); @@ -73,19 +86,12 @@ public static Validation ValidMdocConfiguration(JObject confi .OnSuccess(curves => curves.ToList()) .ToOption(); - var claims = config - .GetByKey(ClaimsJsonKey) - .OnSuccess(token => token.ToJObject()) - .OnSuccess(ClaimsMetadata.ValidClaimsMetadata) - .ToOption(); - return ValidationFun.Valid(Create) .Apply(credentialConfiguration) .Apply(docType) .Apply(policy) .Apply(cryptographicSuitesSupported) - .Apply(cryptographicCurvesSupported) - .Apply(claims); + .Apply(cryptographicCurvesSupported); } } @@ -95,19 +101,18 @@ public static class MdocConfigurationFun public const string PolicyJsonKey = "policy"; public const string CryptographicSuitesSupportedJsonKey = "cryptographic_suites_supported"; public const string CryptographicCurvesSupportedJsonKey = "cryptographic_curves_supported"; - public const string ClaimsJsonKey = "claims"; - public static JObject EncodeToJson(this MdocConfiguration mdocConfig) + public static JObject EncodeToJson(this MdocConfiguration mDocConfig) { - var configJson = mdocConfig.CredentialConfiguration.EncodeToJson(); + var configJson = mDocConfig.CredentialConfiguration.EncodeToJson(); - configJson.Add(DocTypeJsonKey, mdocConfig.DocType.ToString()); + configJson.Add(DocTypeJsonKey, mDocConfig.DocType.ToString()); - mdocConfig.Policy.IfSome(policy => + mDocConfig.Policy.IfSome(policy => configJson.Add(PolicyJsonKey, policy.EncodeToJson()) ); - mdocConfig.CryptographicSuitesSupported.IfSome(suites => + mDocConfig.CryptographicSuitesSupported.IfSome(suites => { var suitesJson = new JArray(); foreach (var suite in suites) @@ -117,7 +122,7 @@ public static JObject EncodeToJson(this MdocConfiguration mdocConfig) configJson.Add(CryptographicSuitesSupportedJsonKey, suitesJson); }); - mdocConfig.CryptographicCurvesSupported.IfSome(curves => + mDocConfig.CryptographicCurvesSupported.IfSome(curves => { var curvesJson = new JArray(); foreach (var curve in curves) @@ -126,10 +131,6 @@ public static JObject EncodeToJson(this MdocConfiguration mdocConfig) } configJson.Add(CryptographicCurvesSupportedJsonKey, curvesJson); }); - - mdocConfig.Claims.IfSome(claims => - configJson.Add(ClaimsJsonKey, claims.EncodeToJson()) - ); return configJson; } diff --git a/src/WalletFramework.Oid4Vc/Oid4Vci/CredConfiguration/Models/SdJwt/SdJwtConfiguration.cs b/src/WalletFramework.Oid4Vc/Oid4Vci/CredConfiguration/Models/SdJwt/SdJwtConfiguration.cs index 919a1da4..6dd7d8bf 100644 --- a/src/WalletFramework.Oid4Vc/Oid4Vci/CredConfiguration/Models/SdJwt/SdJwtConfiguration.cs +++ b/src/WalletFramework.Oid4Vc/Oid4Vci/CredConfiguration/Models/SdJwt/SdJwtConfiguration.cs @@ -1,10 +1,10 @@ using Newtonsoft.Json.Linq; +using WalletFramework.Core.ClaimPaths; using WalletFramework.Core.Functional; using WalletFramework.Core.Json; using WalletFramework.SdJwtVc.Models; using static WalletFramework.Oid4Vc.Oid4Vci.CredConfiguration.Models.CredentialConfiguration; using static WalletFramework.Oid4Vc.Oid4Vci.CredConfiguration.Models.SdJwt.SdJwtConfiguration.SdJwtConfigurationJsonKeys; -using ClaimMetadata = WalletFramework.SdJwtVc.Models.Credential.Attributes.ClaimMetadata; namespace WalletFramework.Oid4Vc.Oid4Vci.CredConfiguration.Models.SdJwt; @@ -16,16 +16,6 @@ public record SdJwtConfiguration public Vct Vct { get; } - /// - /// Gets or sets the dictionary representing the attributes of the credential in different languages. - /// - public Dictionary? Claims { get; set; } - - /// - /// A list of claim display names, arranged in the order in which they should be displayed by the Wallet. - /// - public List? Order { get; set; } - private SdJwtConfiguration(CredentialConfiguration credentialConfiguration, Vct vct) { CredentialConfiguration = credentialConfiguration; @@ -37,95 +27,29 @@ private static SdJwtConfiguration Create(CredentialConfiguration credentialConfi public static Validation ValidSdJwtCredentialConfiguration(JToken config) { - var credentialConfiguration = ValidCredentialConfiguration(config); - var vct = config.GetByKey(VctJsonName).OnSuccess(Vct.ValidVct); - - var order = config[OrderJsonName]?.ToObject>(); - - var claimToken = config[ClaimsJsonName]; - var claimMetadatas = claimToken switch + var sdJwtClaimPathValidation = new Func>(token => { - //Used to map the ListRepresentation from Vci Draft15 to DictionaryRepresentation of Draft14 and older - JArray => ConvertToDictionaryRepresentation(claimToken.ToObject>()), - JObject => claimToken.ToObject>(), - _ => new Dictionary() - }; - - var result = ValidationFun.Valid(Create) - .Apply(credentialConfiguration) - .Apply(vct) - .OnSuccess(configuration => configuration with - { - Claims = claimMetadatas, - Order = order - }); + var sdJwtClaimPath = + from jArray in token.ToJArray() + from validClaimPath in ClaimPath.FromJArray(jArray) + select validClaimPath; - return result; - } - - private static Dictionary ConvertToDictionaryRepresentation(List? claimsV2) - { - var result = new Dictionary(); - - if (claimsV2 == null) - return result; + return sdJwtClaimPath; + }); - foreach (var claim in claimsV2) - { - if (claim.Path == null || claim.Path.Count == 0) - continue; + var credentialConfiguration = ValidCredentialConfiguration(config, sdJwtClaimPathValidation); + var vct = config.GetByKey(VctJsonName).OnSuccess(Vct.ValidVct); - AddToNestedClaims(result, claim.Path, claim); - } + var result = ValidationFun.Valid(Create) + .Apply(credentialConfiguration) + .Apply(vct); return result; } - - private static void AddToNestedClaims(Dictionary currentLevel, List path, ClaimMetadata sourceClaim) - { - var key = path[0]; - if (!currentLevel.TryGetValue(key, out var claimMetadata)) - { - claimMetadata = new ClaimMetadata(); - currentLevel[key] = claimMetadata; - } - - var isLeafClaim = path.Count == 1; - if (isLeafClaim) - { - claimMetadata.Display = sourceClaim.Display; - claimMetadata.ValueType = sourceClaim.ValueType; - claimMetadata.Mandatory = sourceClaim.Mandatory; - } - else - { - var nextKey = path[1]; - - if (claimMetadata.NestedClaims == null) - claimMetadata.NestedClaims = new Dictionary(); - - if (!claimMetadata.NestedClaims.TryGetValue(nextKey, out var nextToken) || nextToken.Type != JTokenType.Object) - { - var childNode = new ClaimMetadata - { - NestedClaims = new Dictionary() - }; - - claimMetadata.NestedClaims[nextKey] = JObject.FromObject(childNode); - } - - var nextNode = claimMetadata.NestedClaims[nextKey].ToObject()!; - AddToNestedClaims(new Dictionary { [nextKey] = nextNode }, path.Skip(1).ToList(), sourceClaim); - - claimMetadata.NestedClaims[nextKey] = JObject.FromObject(nextNode); - } - } public static class SdJwtConfigurationJsonKeys { public const string VctJsonName = "vct"; - public const string ClaimsJsonName = "claims"; - public const string OrderJsonName = "order"; } } @@ -136,39 +60,7 @@ public static JObject EncodeToJson(this SdJwtConfiguration config) var credentialConfig = config.CredentialConfiguration.EncodeToJson(); credentialConfig.Add(VctJsonName, config.Vct.ToString()); - - if (config.Claims is not null) - { - credentialConfig.Add(ClaimsJsonName, JObject.FromObject(config.Claims)); - } - - if (config.Order is not null) - { - credentialConfig.Add(OrderJsonName, JArray.FromObject(config.Order)); - } return credentialConfig; } - - public static Dictionary ExtractClaimMetadata(this SdJwtConfiguration sdJwtConfiguration) - { - return sdJwtConfiguration - .Claims? - .Where(x => !string.IsNullOrWhiteSpace(x.Key) && x.Value.Display is not null) - .SelectMany(claimMetadata => - { - var claimMetadatas = new Dictionary { { claimMetadata.Key, claimMetadata.Value } }; - - if (claimMetadata.Value.NestedClaims == null || claimMetadata.Value.NestedClaims.Count == 0) - return claimMetadatas; - - foreach (var nested in claimMetadata.Value.NestedClaims!) - { - claimMetadatas.Add(claimMetadata.Key + "." + nested.Key, nested.Value?.ToObject()!); - } - - return claimMetadatas; - }) - .ToDictionary(kvp => kvp.Key, kvp => kvp.Value) ?? new Dictionary(); - } } diff --git a/src/WalletFramework.Oid4Vc/Oid4Vci/Implementations/MdocFun.cs b/src/WalletFramework.Oid4Vc/Oid4Vci/Implementations/MdocFun.cs deleted file mode 100644 index 61eb2095..00000000 --- a/src/WalletFramework.Oid4Vc/Oid4Vci/Implementations/MdocFun.cs +++ /dev/null @@ -1,40 +0,0 @@ -using LanguageExt; -using WalletFramework.MdocVc; -using WalletFramework.Oid4Vc.Oid4Vci.CredConfiguration.Models.Mdoc; - -namespace WalletFramework.Oid4Vc.Oid4Vci.Implementations; - -public static class MdocFun -{ - public static Option> CreateMdocDisplays(MdocConfiguration configuration) - { - var claimsDisplays = - from claimsMetadata in configuration.Claims - from dict in claimsMetadata.ToClaimsDisplays() - select dict; - - var credentialConfigurationDisplay = configuration.CredentialConfiguration.Display; - var result = - from credentialDisplays in credentialConfigurationDisplay - let mdocDisplays = credentialDisplays.Select(credentialDisplay => - { - var logo = - from credentialLogo in credentialDisplay.Logo - select new MdocLogo(credentialLogo.Uri); - - var mdocName = - from credentialName in credentialDisplay.Name - from name in MdocName.OptionMdocName(credentialName.ToString()) - select name; - - var backgroundColor = credentialDisplay.BackgroundColor; - var textColor = credentialDisplay.TextColor; - var locale = credentialDisplay.Locale; - - return new MdocDisplay(logo, mdocName, backgroundColor, textColor, locale, claimsDisplays); - }).ToList() - select mdocDisplays; - - return result; - } -} diff --git a/src/WalletFramework.Oid4Vc/Oid4Vci/Implementations/Oid4VciClientService.cs b/src/WalletFramework.Oid4Vc/Oid4Vci/Implementations/Oid4VciClientService.cs index 4bb6b649..bad63441 100644 --- a/src/WalletFramework.Oid4Vc/Oid4Vci/Implementations/Oid4VciClientService.cs +++ b/src/WalletFramework.Oid4Vc/Oid4Vci/Implementations/Oid4VciClientService.cs @@ -340,10 +340,7 @@ await credential.Value.Match( }, async mdoc => { - var displays = MdocFun.CreateMdocDisplays(configurationPair.Value.AsT1); - var record = mdoc.Decoded.ToRecord( - displays, response.KeyId.UnwrapOrThrow(), credentialSet.CredentialSetId, creds.Count > 1); @@ -479,10 +476,7 @@ await credential.Value.Match( }, async mdoc => { - var displays = MdocFun.CreateMdocDisplays(configuration.Value.AsT1); - var record = mdoc.Decoded.ToRecord( - displays, response.KeyId.UnwrapOrThrow(), credentialSet.CredentialSetId, creds.Count > 1); @@ -644,10 +638,7 @@ select credentialsOrTransactionId.Match( }, mdoc => { - var displays = MdocFun.CreateMdocDisplays(configuration.Value.AsT1); - var record = mdoc.Decoded.ToRecord( - displays, response.KeyId.UnwrapOrThrow(), credentialSet.CredentialSetId, creds.Count > 1); diff --git a/src/WalletFramework.Oid4Vc/Oid4Vci/Implementations/SdJwtRecordExtensions.cs b/src/WalletFramework.Oid4Vc/Oid4Vci/Implementations/SdJwtRecordExtensions.cs index 70cd2419..049fe986 100644 --- a/src/WalletFramework.Oid4Vc/Oid4Vci/Implementations/SdJwtRecordExtensions.cs +++ b/src/WalletFramework.Oid4Vc/Oid4Vci/Implementations/SdJwtRecordExtensions.cs @@ -19,10 +19,8 @@ public static SdJwtRecord ToRecord( CredentialSetId credentialSetId, bool isOneTimeUse) { - var claims = configuration.ExtractClaimMetadata(); - var display = - from displays in configuration.CredentialConfiguration.Display + from displays in configuration.CredentialConfiguration.CredentialMetadata.Bind(m => m.Display) select displays.Select(credentialDisplay => { var backgroundColor = credentialDisplay.BackgroundColor.ToNullable() ?? Color.White; @@ -44,7 +42,6 @@ select displays.Select(credentialDisplay => var record = new SdJwtRecord( sdJwtDoc, - claims, display.Fallback([]), keyId, credentialSetId, diff --git a/src/WalletFramework.SdJwtVc/Models/Credential/Attributes/ClaimMetadata.cs b/src/WalletFramework.SdJwtVc/Models/Credential/Attributes/ClaimMetadata.cs deleted file mode 100644 index e939d508..00000000 --- a/src/WalletFramework.SdJwtVc/Models/Credential/Attributes/ClaimMetadata.cs +++ /dev/null @@ -1,42 +0,0 @@ -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; - -namespace WalletFramework.SdJwtVc.Models.Credential.Attributes; - -/// -/// Represents the specifics about a claim. -/// -public class ClaimMetadata { - - [JsonProperty("path", NullValueHandling = NullValueHandling.Ignore)] - public List? Path { get; set; } - - /// - /// Gets or sets the list of display properties associated with a specific credential attribute. - /// - /// - /// The list of display properties. Each display property provides information on how the credential attribute should - /// be displayed. - /// - [JsonProperty("display", NullValueHandling = NullValueHandling.Ignore)] - public List? Display { get; set; } - - /// - /// String value determining type of value of the claim. A non-exhaustive list of valid values defined by this - /// specification are string, number, and image media types such as image/jpeg. - /// - [JsonProperty("value_type", NullValueHandling = NullValueHandling.Ignore)] - public string? ValueType { get; set; } - - /// - /// String value determining type of value of the claim. A non-exhaustive list of valid values defined by this - /// specification are string, number, and image media types such as image/jpeg. - /// - [JsonProperty("mandatory", NullValueHandling = NullValueHandling.Ignore)] - public string? Mandatory { get; set; } - - [JsonProperty("nested_claims", NullValueHandling = NullValueHandling.Ignore)] - [JsonExtensionData] - public Dictionary? NestedClaims { get; set; } -} - diff --git a/src/WalletFramework.SdJwtVc/Models/Credential/CredentialDefinition.cs b/src/WalletFramework.SdJwtVc/Models/Credential/CredentialDefinition.cs deleted file mode 100644 index 6e688244..00000000 --- a/src/WalletFramework.SdJwtVc/Models/Credential/CredentialDefinition.cs +++ /dev/null @@ -1,23 +0,0 @@ -using Newtonsoft.Json; -using WalletFramework.SdJwtVc.Models.Credential.Attributes; - -namespace WalletFramework.SdJwtVc.Models.Credential -{ - /// - /// Represents the detailed description of the credential type. - /// - public class CredentialDefinition - { - /// - /// Gets or sets the verifiable credential type (vct). - /// - [JsonProperty("vct")] - public string Vct { get; set; } = null!; - - /// - /// Gets or sets the dictionary representing the attributes of the credential in different languages. - /// - [JsonProperty("claims")] - public Dictionary? Claims { get; set; } - } -} diff --git a/src/WalletFramework.SdJwtVc/Models/Credential/SdJwtMetadata.cs b/src/WalletFramework.SdJwtVc/Models/Credential/SdJwtMetadata.cs deleted file mode 100644 index 1f1c0f15..00000000 --- a/src/WalletFramework.SdJwtVc/Models/Credential/SdJwtMetadata.cs +++ /dev/null @@ -1,85 +0,0 @@ -using Newtonsoft.Json; -using WalletFramework.SdJwtVc.Models.Credential.Attributes; - -namespace WalletFramework.SdJwtVc.Models.Credential -{ - /// - /// Represents the metadata of a specific type of credential that a Credential Issuer can issue. - /// - public class SdJwtMetadata - { - /// - /// Gets or sets the verifiable credential type (vct). This is SD-JWT specific. - /// - [JsonProperty("vct")] - public string? Vct { get; set; } - - /// - /// - /// - [JsonProperty("scope")] - public string? Scope { get; set; } - - /// - /// Gets or sets the dictionary representing the attributes of the credential in different languages. - /// - [JsonProperty("claims")] - public Dictionary? Claims { get; set; } - - /// - /// Gets or sets a list of display properties of the supported credential for different languages. - /// - [JsonProperty("display", NullValueHandling = NullValueHandling.Ignore)] - public List? Display { get; set; } - - /// - /// Gets or sets a list of methods that identify how the Credential is bound to the identifier of the End-User who - /// possesses the Credential. - /// - [JsonProperty("cryptographic_binding_methods_supported", NullValueHandling = NullValueHandling.Ignore)] - public List? CryptographicBindingMethodsSupported { get; set; } - - /// - /// Gets or sets a list of identifiers for the signing algorithms that are supported by the issuer and used - /// to sign credentials. - /// - [JsonProperty("credential_signing_alg_values_supported", NullValueHandling = NullValueHandling.Ignore)] - public List? CredentialSigningAlgValuesSupported { get; set; } - - /// - /// A list of claim display names, arranged in the order in which they should be displayed by the Wallet. - /// - [JsonProperty("order", NullValueHandling = NullValueHandling.Ignore)] - public List? Order { get; set; } - - /// - /// Gets or sets the identifier for the format of the credential. - /// - [JsonProperty("format")] - public string Format { get; set; } = null!; - - /// - /// Gets or sets the unique identifier for the respective credential. - /// - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] - public string? Id { get; set; } - - /// - /// Gets or sets a dictionary which maps a credential type to its supported signing algorithms for key proofs. - /// - [JsonProperty("proof_types_supported", NullValueHandling = NullValueHandling.Ignore)] - public Dictionary? ProofTypesSupported { get; set; } - } - - /// - /// Represents credential type specific signing algorithm information. - /// - public class CredentialProofType - { - /// - /// Gets or sets the available signing algorithms for the associated credential type. - /// - [JsonProperty("proof_signing_alg_values_supported")] - public string[] ProofSigningAlgValuesSupported { get; set; } = null!; - } -} diff --git a/src/WalletFramework.SdJwtVc/Models/Records/SdJwtRecord.cs b/src/WalletFramework.SdJwtVc/Models/Records/SdJwtRecord.cs index 86d3c187..89ab3ef5 100644 --- a/src/WalletFramework.SdJwtVc/Models/Records/SdJwtRecord.cs +++ b/src/WalletFramework.SdJwtVc/Models/Records/SdJwtRecord.cs @@ -11,7 +11,6 @@ using WalletFramework.Core.StatusList; using WalletFramework.SdJwtLib.Models; using WalletFramework.SdJwtVc.Models.Credential; -using WalletFramework.SdJwtVc.Models.Credential.Attributes; using static WalletFramework.Core.Cryptography.Models.KeyId; namespace WalletFramework.SdJwtVc.Models.Records; @@ -23,11 +22,6 @@ namespace WalletFramework.SdJwtVc.Models.Records; public sealed class SdJwtRecord : RecordBase, ICredential { public const int CurrentVersion = 3; - - /// - /// Gets or sets the attributes that should be displayed. - /// - public Dictionary? DisplayedAttributes { get; set; } /// /// Gets or sets the attributes that should be displayed. @@ -150,7 +144,6 @@ public SdJwtRecord() /// /// Constructor for Serialization. /// - /// The attributes that should be displayed. /// The claims made. /// The disclosures. /// The display of the credential. @@ -166,7 +159,6 @@ public SdJwtRecord() /// Indicator whether the credential should be sued only once. [JsonConstructor] public SdJwtRecord( - Dictionary? displayedAttributes, Dictionary claims, ImmutableArray disclosures, List display, @@ -185,7 +177,6 @@ public SdJwtRecord( Disclosures = disclosures; Display = display; - DisplayedAttributes = displayedAttributes; EncodedIssuerSignedJwt = encodedIssuerSignedJwt; @@ -202,7 +193,6 @@ public SdJwtRecord( public SdJwtRecord( string serializedSdJwtWithDisclosures, - Dictionary? displayedAttributes, List display, Option keyId, CredentialSetId credentialSetId, @@ -220,7 +210,6 @@ public SdJwtRecord( Disclosures = sdJwtDoc.Disclosures.Select(x => x.Serialize()).ToImmutableArray(); Claims = sdJwtDoc.GetAllSubjectClaims(); Display = display; - DisplayedAttributes = displayedAttributes; StatusListEntry = (sdJwtDoc.UnsecuredPayload.SelectToken("status")?.SelectToken("status_list")?.ToObject() ?? sdJwtDoc.UnsecuredPayload.SelectToken("status")?.ToObject()) is not null ? sdJwtDoc.UnsecuredPayload.SelectToken("status")?.SelectToken("status_list")?.ToObject() @@ -251,7 +240,6 @@ public SdJwtRecord( public SdJwtRecord( SdJwtDoc sdJwtDoc, - Dictionary? displayedAttributes, List display, Option keyId, CredentialSetId credentialSetId, @@ -268,7 +256,6 @@ public SdJwtRecord( Disclosures = sdJwtDoc.Disclosures.Select(disclosure => disclosure.Serialize()).ToImmutableArray(); Claims = sdJwtDoc.GetAllSubjectClaims(); Display = display; - DisplayedAttributes = displayedAttributes; StatusListEntry = (sdJwtDoc.UnsecuredPayload.SelectToken("status")?.SelectToken("status_list")?.ToObject() ?? sdJwtDoc.UnsecuredPayload.SelectToken("status")?.ToObject()) is not null ? sdJwtDoc.UnsecuredPayload.SelectToken("status")?.SelectToken("status_list")?.ToObject() diff --git a/test/WalletFramework.Core.Tests/Path/ClaimPathTests.cs b/test/WalletFramework.Core.Tests/Path/ClaimPathTests.cs index c2b98d19..e25f5d8c 100644 --- a/test/WalletFramework.Core.Tests/Path/ClaimPathTests.cs +++ b/test/WalletFramework.Core.Tests/Path/ClaimPathTests.cs @@ -21,10 +21,13 @@ public void Can_Create_ClaimPath() } [Theory] - [InlineData(new[] {"name"}, "$.name")] - [InlineData(new[] {"address"}, "$.address")] - [InlineData(new[] {"address", "street_address"}, "$.address.street_address")] - [InlineData(new[] {"degree", null}, "$.degree")] + [InlineData(new object[] {"name"}, "$.name")] + [InlineData(new object[] {"address"}, "$.address")] + [InlineData(new object[] {"address", "street_address"}, "$.address.street_address")] + [InlineData(new object?[] {"degree", null}, "$.degree[*]")] + [InlineData(new object?[] {"degree", null, "type"}, "$.degree[*].type")] + [InlineData(new object[] {"degree", 1}, "$.degree[1]")] + [InlineData(new object[] {"degree", 1, "type"}, "$.degree[1].type")] public void Can_Convert_ClaimPath_To_JsonPath(object[] path, string expectedResult) { var jArray = new JArray(path); diff --git a/test/WalletFramework.Integration.Tests/WalletFramework.Integration.Tests/Oid4Vp/Dcql/DcqlServiceTests.cs b/test/WalletFramework.Integration.Tests/WalletFramework.Integration.Tests/Oid4Vp/Dcql/DcqlServiceTests.cs index ce5857c9..4fa11bcb 100644 --- a/test/WalletFramework.Integration.Tests/WalletFramework.Integration.Tests/Oid4Vp/Dcql/DcqlServiceTests.cs +++ b/test/WalletFramework.Integration.Tests/WalletFramework.Integration.Tests/Oid4Vp/Dcql/DcqlServiceTests.cs @@ -241,7 +241,6 @@ private static SdJwtRecord CreateCredential(JObject payload, CredentialSetId cre var record = new SdJwtRecord( issuedSdJwt.IssuanceFormat, - new Dictionary(), new List(), keyId, credentialSetId); diff --git a/test/WalletFramework.Integration.Tests/WalletFramework.Integration.Tests/Oid4Vp/PresentationExchange/Services/PexServiceTests.cs b/test/WalletFramework.Integration.Tests/WalletFramework.Integration.Tests/Oid4Vp/PresentationExchange/Services/PexServiceTests.cs index 23aece02..672c9d11 100644 --- a/test/WalletFramework.Integration.Tests/WalletFramework.Integration.Tests/Oid4Vp/PresentationExchange/Services/PexServiceTests.cs +++ b/test/WalletFramework.Integration.Tests/WalletFramework.Integration.Tests/Oid4Vp/PresentationExchange/Services/PexServiceTests.cs @@ -345,7 +345,6 @@ private static SdJwtRecord CreateCredential(JObject payload, CredentialSetId cre var record = new SdJwtRecord( issuedSdJwt.IssuanceFormat, - new Dictionary(), new List(), keyId, credentialSetId); diff --git a/test/WalletFramework.Oid4Vc.Tests/Oid4Vci/AuthFlow/Samples/AuthFlowSamples.cs b/test/WalletFramework.Oid4Vc.Tests/Oid4Vci/AuthFlow/Samples/AuthFlowSamples.cs index 225c86ff..2bb3d45e 100644 --- a/test/WalletFramework.Oid4Vc.Tests/Oid4Vci/AuthFlow/Samples/AuthFlowSamples.cs +++ b/test/WalletFramework.Oid4Vc.Tests/Oid4Vci/AuthFlow/Samples/AuthFlowSamples.cs @@ -19,7 +19,7 @@ public static class AuthFlowSamples ["WalletIssuer"] = "i can write anything", ["RedirectUri"] = "https://test-issuer.com/redirect" }, - ["issuer_metadata"] = IssuerMetadataSample.EncodedAsJsonDraft14AndLower, + ["issuer_metadata"] = IssuerMetadataSample.EncodedAsJson, ["authorization_server_metadata"] = new JObject { ["issuer"] = "i can write anything", diff --git a/test/WalletFramework.Oid4Vc.Tests/Oid4Vci/CredConfiguration/Mdoc/MdocConfigurationTests.cs b/test/WalletFramework.Oid4Vc.Tests/Oid4Vci/CredConfiguration/Mdoc/MdocConfigurationTests.cs index 51e09c4e..84a4e4ba 100644 --- a/test/WalletFramework.Oid4Vc.Tests/Oid4Vci/CredConfiguration/Mdoc/MdocConfigurationTests.cs +++ b/test/WalletFramework.Oid4Vc.Tests/Oid4Vci/CredConfiguration/Mdoc/MdocConfigurationTests.cs @@ -39,20 +39,6 @@ public void Can_Parse() sut.CryptographicCurvesSupported.Match( list => list.Should().Contain(MdocConfigurationSample.CryptoCurve), () => Assert.Fail("CryptographicCurvesSupported must be some")); - - sut.Claims.Match( - claims => - { - var dict = claims.Value[MdocConfigurationSample.NameSpace]; - dict[MdocConfigurationSample.GivenName].Display.Match( - list => - { - list.Should().Contain(MdocConfigurationSample.EnglishDisplay); - list.Should().Contain(MdocConfigurationSample.JapaneseDisplay); - }, - () => Assert.Fail("Display must be some")); - }, - () => Assert.Fail("Claims must be some")); }, _ => Assert.Fail("Must be valid") ); diff --git a/test/WalletFramework.Oid4Vc.Tests/Oid4Vci/CredConfiguration/Mdoc/Samples/MdocConfigurationSample.cs b/test/WalletFramework.Oid4Vc.Tests/Oid4Vci/CredConfiguration/Mdoc/Samples/MdocConfigurationSample.cs index d3b19d82..f20f7487 100644 --- a/test/WalletFramework.Oid4Vc.Tests/Oid4Vci/CredConfiguration/Mdoc/Samples/MdocConfigurationSample.cs +++ b/test/WalletFramework.Oid4Vc.Tests/Oid4Vci/CredConfiguration/Mdoc/Samples/MdocConfigurationSample.cs @@ -51,29 +51,7 @@ public static class MdocConfigurationSample ["batch_size"] = BatchSize }, ["cryptographic_suites_supported"] = new JArray { CryptoSuite.ToString() }, - ["cryptographic_curves_supported"] = new JArray { CryptoCurve.ToString() }, - ["claims"] = new JObject - { - [NameSpace] = new JObject - { - [GivenName] = new JObject - { - ["display"] = new JArray - { - new JObject - { - ["name"] = EnglishName.ToString(), - ["locale"] = LocaleSample.English.ToString() - }, - new JObject - { - ["name"] = JapaneseName.ToString(), - ["locale"] = LocaleSample.Japanese.ToString() - } - } - } - } - } + ["cryptographic_curves_supported"] = new JArray { CryptoCurve.ToString() } }; public static NameSpace NameSpace => diff --git a/test/WalletFramework.Oid4Vc.Tests/Oid4Vci/CredConfiguration/SdJwt/Samples/SdJwtConfigurationSample.cs b/test/WalletFramework.Oid4Vc.Tests/Oid4Vci/CredConfiguration/SdJwt/Samples/SdJwtConfigurationSample.cs index da5f29fa..ef16c9ce 100644 --- a/test/WalletFramework.Oid4Vc.Tests/Oid4Vci/CredConfiguration/SdJwt/Samples/SdJwtConfigurationSample.cs +++ b/test/WalletFramework.Oid4Vc.Tests/Oid4Vci/CredConfiguration/SdJwt/Samples/SdJwtConfigurationSample.cs @@ -19,285 +19,194 @@ public static class SdJwtConfigurationSample .OptionalScope("VerifiedEMailSdJwtVc") .ToNullable() ?? throw new InvalidOperationException(); - public static JObject ValidDraft15 => new() + public static JObject ValidSample => new() { ["format"] = Format.ToString(), ["scope"] = Scope.ToString(), ["cryptographic_binding_methods_supported"] = new JArray { "jwk" }, ["credential_signing_alg_values_supported"] = new JArray { "ES256" }, - ["display"] = new JArray + ["proof_types_supported"] = new JObject { - new JObject { - ["name"] = "Verified e-mail adress", - ["logo"] = new JObject + "jwt", new JObject { - ["uri"] = "https://test-issuer.com/credential-logo.png" - }, - ["background_color"] = "#12107c", - ["text_color"] = "#FFFFFF", - ["locale"] = "en-US" + ["proof_signing_alg_values_supported"] = new JArray { "ES256" } + } } }, - ["vct"] = Vct.ToString(), - ["claims"] = new JArray() + ["credential_metadata"] = new JObject { - new JObject - { - ["path"] = new JArray(){"given_name"}, - ["display"] = new JArray - { - new JObject - { - ["locale"] = "de-DE", - ["name"] = "Vorname" - }, - new JObject - { - ["locale"] = "en-US", - ["name"] = "Given name" - } - } - }, - new JObject + ["display"] = new JArray { - ["path"] = new JArray(){"family_name"}, - ["display"] = new JArray + new JObject { - new JObject + ["name"] = "Verified e-mail adress", + ["logo"] = new JObject { - ["locale"] = "de-DE", - ["name"] = "Nachname" + ["uri"] = "https://test-issuer.com/credential-logo.png" }, - new JObject - { - ["locale"] = "en-US", - ["name"] = "Surname" - } - } - }, - new JObject - { - ["path"] = new JArray(){"email"}, - ["display"] = new JArray - { - new JObject - { - ["locale"] = "de-DE", - ["name"] = "E-Mail Adresse" - }, - new JObject - { - ["locale"] = "en-US", - ["name"] = "e-Mail address" - } + ["background_color"] = "#12107c", + ["text_color"] = "#FFFFFF", + ["locale"] = "en-US" } }, - new JObject + ["claims"] = new JArray() { - ["path"] = new JArray(){"address" }, - ["display"] = new JArray + new JObject { - new JObject - { - ["locale"] = "de-DE", - ["name"] = "Adresse" - }, - new JObject - { - ["locale"] = "en-US", - ["name"] = "Address" - } - } - }, - new JObject - { - ["path"] = new JArray(){"address", "street"}, - ["display"] = new JArray - { - new JObject - { - ["locale"] = "de-DE", - ["name"] = "Straße" - }, - new JObject - { - ["locale"] = "en-US", - ["name"] = "Street" - } - } - }, - new JObject - { - ["path"] = new JArray(){"address", "zip"}, - ["display"] = new JArray - { - new JObject - { - ["locale"] = "de-DE", - ["name"] = "Postleitzahl" - }, - new JObject + ["path"] = new JArray(){"given_name"}, + ["display"] = new JArray { - ["locale"] = "en-US", - ["name"] = "Zip Code" + new JObject + { + ["locale"] = "de-DE", + ["name"] = "Vorname" + }, + new JObject + { + ["locale"] = "en-US", + ["name"] = "Given name" + } } - } - }, - new JObject - { - ["path"] = new JArray(){"address", "zip", "building"}, - ["display"] = new JArray + }, + new JObject { - new JObject - { - ["locale"] = "de-DE", - ["name"] = "Gebäude" - }, - new JObject + ["path"] = new JArray(){"family_name"}, + ["display"] = new JArray { - ["locale"] = "en-US", - ["name"] = "Building" + new JObject + { + ["locale"] = "de-DE", + ["name"] = "Nachname" + }, + new JObject + { + ["locale"] = "en-US", + ["name"] = "Surname" + } } - } - } - } - }; - public static JObject ValidDraft14AndLower => new() - { - ["format"] = Format.ToString(), - ["scope"] = Scope.ToString(), - ["cryptographic_binding_methods_supported"] = new JArray { "jwk" }, - ["credential_signing_alg_values_supported"] = new JArray { "ES256" }, - ["display"] = new JArray - { - new JObject - { - ["name"] = "Verified e-mail adress", - ["logo"] = new JObject - { - ["uri"] = "https://test-issuer.com/credential-logo.png" }, - ["background_color"] = "#12107c", - ["text_color"] = "#FFFFFF", - ["locale"] = "en-US" - } - }, - ["vct"] = Vct.ToString(), - ["claims"] = new JObject - { - ["given_name"] = new JObject - { - ["display"] = new JArray + new JObject { - new JObject - { - ["locale"] = "de-DE", - ["name"] = "Vorname" - }, - new JObject + ["path"] = new JArray(){"email"}, + ["display"] = new JArray { - ["locale"] = "en-US", - ["name"] = "Given name" + new JObject + { + ["locale"] = "de-DE", + ["name"] = "E-Mail Adresse" + }, + new JObject + { + ["locale"] = "en-US", + ["name"] = "e-Mail address" + } } - } - }, - ["family_name"] = new JObject - { - ["display"] = new JArray + }, + new JObject { - new JObject - { - ["locale"] = "de-DE", - ["name"] = "Nachname" - }, - new JObject + ["path"] = new JArray(){"address" }, + ["display"] = new JArray { - ["locale"] = "en-US", - ["name"] = "Surname" + new JObject + { + ["locale"] = "de-DE", + ["name"] = "Adresse" + }, + new JObject + { + ["locale"] = "en-US", + ["name"] = "Address" + } } - } - }, - ["email"] = new JObject - { - ["display"] = new JArray + }, + new JObject { - new JObject - { - ["locale"] = "de-DE", - ["name"] = "E-Mail Adresse" - }, - new JObject + ["path"] = new JArray(){"address", "street"}, + ["display"] = new JArray { - ["locale"] = "en-US", - ["name"] = "e-Mail address" + new JObject + { + ["locale"] = "de-DE", + ["name"] = "Straße" + }, + new JObject + { + ["locale"] = "en-US", + ["name"] = "Street" + } } - } - }, - ["address"] = new JObject - { - ["display"] = new JArray + }, + new JObject { - new JObject - { - ["locale"] = "de-DE", - ["name"] = "Adresse" - }, - new JObject + ["path"] = new JArray(){"address", "zip"}, + ["display"] = new JArray { - ["locale"] = "en-US", - ["name"] = "Address" + new JObject + { + ["locale"] = "de-DE", + ["name"] = "Postleitzahl" + }, + new JObject + { + ["locale"] = "en-US", + ["name"] = "Zip Code" + } } }, - ["street"] = new JObject + new JObject { + ["path"] = new JArray(){"address", "zip", "building"}, ["display"] = new JArray { new JObject { ["locale"] = "de-DE", - ["name"] = "Straße" + ["name"] = "Gebäude" }, new JObject { ["locale"] = "en-US", - ["name"] = "Street" + ["name"] = "Building" } } }, - ["zip"] = new JObject + new JObject { + ["path"] = new JArray(){"degrees"}, ["display"] = new JArray { new JObject { ["locale"] = "de-DE", - ["name"] = "Postleitzahl" + ["name"] = "Abschlüsse" }, new JObject { ["locale"] = "en-US", - ["name"] = "Zip Code" + ["name"] = "Degrees" } - }, - ["building"] = new JObject + } + }, + new JObject + { + ["path"] = new JArray(){"degrees", JValue.CreateNull(), "type"}, + ["display"] = new JArray { - ["display"] = new JArray + new JObject { - new JObject - { - ["locale"] = "de-DE", - ["name"] = "Gebäude" - }, - new JObject - { - ["locale"] = "en-US", - ["name"] = "Building" - } + ["locale"] = "de-DE", + ["name"] = "Typ" + }, + new JObject + { + ["locale"] = "en-US", + ["name"] = "Type" } } } } - } + }, + ["vct"] = Vct.ToString() }; } diff --git a/test/WalletFramework.Oid4Vc.Tests/Oid4Vci/Issuer/IssuerMetadataTests.cs b/test/WalletFramework.Oid4Vc.Tests/Oid4Vci/Issuer/IssuerMetadataTests.cs index f06f068f..7a8bf141 100644 --- a/test/WalletFramework.Oid4Vc.Tests/Oid4Vci/Issuer/IssuerMetadataTests.cs +++ b/test/WalletFramework.Oid4Vc.Tests/Oid4Vci/Issuer/IssuerMetadataTests.cs @@ -14,7 +14,7 @@ public class IssuerMetadataTests public void Can_Decode_Draft14_From_Json() { // Arrange - var sample = IssuerMetadataSample.EncodedAsJsonDraft14AndLower; + var sample = IssuerMetadataSample.EncodedAsJson; // Act ValidIssuerMetadata(sample).Match( @@ -48,14 +48,14 @@ public void Can_Encode_To_Json() var sut = issuerMetadata.EncodeToJson(); - sut.Should().BeEquivalentTo(IssuerMetadataSample.EncodedAsJsonDraft14AndLower); + sut.Should().BeEquivalentTo(IssuerMetadataSample.EncodedAsJson); } [Fact] public void Can_Decode_And_Encode_From_Json_Draft14() { // Arrange - var sample = IssuerMetadataSample.EncodedAsJsonDraft14AndLower; + var sample = IssuerMetadataSample.EncodedAsJson; // Act ValidIssuerMetadata(sample).Match( @@ -67,22 +67,4 @@ public void Can_Decode_And_Encode_From_Json_Draft14() }, _ => Assert.Fail("IssuerMetadata must be valid")); } - - [Fact] - public void Can_Decode_And_Encode_ClaimMetadata_From_Json_Draft15() - { - // Arrange - var sampleDraft15 = IssuerMetadataSample.EncodedAsJsonDraft15; - - // Act - ValidIssuerMetadata(sampleDraft15).Match( - // Assert - issuerMetadata => - { - ValidIssuerMetadata(issuerMetadata.EncodeToJson()).UnwrapOrThrow().CredentialConfigurationsSupported[IssuerMetadataSample.SdJwtConfigurationId].AsT0.Claims - .Should() - .BeEquivalentTo(issuerMetadata.CredentialConfigurationsSupported[IssuerMetadataSample.SdJwtConfigurationId].AsT0.Claims); - }, - _ => Assert.Fail("IssuerMetadata must be valid")); - } } diff --git a/test/WalletFramework.Oid4Vc.Tests/Oid4Vci/Issuer/Samples/IssuerMetadataSample.cs b/test/WalletFramework.Oid4Vc.Tests/Oid4Vci/Issuer/Samples/IssuerMetadataSample.cs index fbcc23d1..2f9c8891 100644 --- a/test/WalletFramework.Oid4Vc.Tests/Oid4Vci/Issuer/Samples/IssuerMetadataSample.cs +++ b/test/WalletFramework.Oid4Vc.Tests/Oid4Vci/Issuer/Samples/IssuerMetadataSample.cs @@ -22,7 +22,7 @@ public static class IssuerMetadataSample .ValidCredentialConfigurationId(SdJwtConfigurationSample.Scope.ToString()) .UnwrapOrThrow(new InvalidOperationException()); - public static JObject EncodedAsJsonDraft14AndLower => new() + public static JObject EncodedAsJson => new() { ["credential_issuer"] = CredentialIssuer.ToStringWithoutTrail(), ["credential_endpoint"] = CredentialEndpoint.ToStringWithoutTrail(), @@ -50,7 +50,7 @@ public static class IssuerMetadataSample ["authorization_servers"] = new JArray { "https://test-issuer.com/authorizationserver" }, ["credential_configurations_supported"] = new JObject { - [SdJwtConfigurationId] = SdJwtConfigurationSample.ValidDraft14AndLower, + [SdJwtConfigurationId] = SdJwtConfigurationSample.ValidSample, [MdocConfigurationId] = MdocConfigurationSample.Valid }, ["batch_credential_issuance"] = new JObject @@ -87,7 +87,7 @@ public static class IssuerMetadataSample ["authorization_servers"] = new JArray { "https://test-issuer.com/authorizationserver" }, ["credential_configurations_supported"] = new JObject { - [SdJwtConfigurationId] = SdJwtConfigurationSample.ValidDraft15, + [SdJwtConfigurationId] = SdJwtConfigurationSample.ValidSample, [MdocConfigurationId] = MdocConfigurationSample.Valid }, ["batch_credential_issuance"] = new JObject @@ -97,5 +97,5 @@ public static class IssuerMetadataSample }; public static IssuerMetadata DecodedDraft14AndLower => - IssuerMetadata.ValidIssuerMetadata(EncodedAsJsonDraft14AndLower).UnwrapOrThrow(new InvalidOperationException()); + IssuerMetadata.ValidIssuerMetadata(EncodedAsJson).UnwrapOrThrow(new InvalidOperationException()); } diff --git a/test/WalletFramework.Oid4Vc.Tests/Samples/MdocSamples.cs b/test/WalletFramework.Oid4Vc.Tests/Samples/MdocSamples.cs index 80162523..0f75614c 100644 --- a/test/WalletFramework.Oid4Vc.Tests/Samples/MdocSamples.cs +++ b/test/WalletFramework.Oid4Vc.Tests/Samples/MdocSamples.cs @@ -18,7 +18,6 @@ public static class MdocSamples public static MdocRecord MdocRecord => new( Mdoc, - Option>.None, KeyId.CreateKeyId(), CredentialSetId.CreateCredentialSetId(), CredentialState.Active, diff --git a/test/WalletFramework.Oid4Vc.Tests/Samples/SdJwtSamples.cs b/test/WalletFramework.Oid4Vc.Tests/Samples/SdJwtSamples.cs index 21f70cce..7fb431c0 100644 --- a/test/WalletFramework.Oid4Vc.Tests/Samples/SdJwtSamples.cs +++ b/test/WalletFramework.Oid4Vc.Tests/Samples/SdJwtSamples.cs @@ -14,7 +14,6 @@ public static SdJwtRecord GetIdCardCredential() var record = new SdJwtRecord( encodedSdJwt, - new Dictionary(), [], keyId, CredentialSetId.CreateCredentialSetId() @@ -30,7 +29,6 @@ public static SdJwtRecord GetIdCard2Credential() var record = new SdJwtRecord( encoded, - new Dictionary(), [], keyId, CredentialSetId.CreateCredentialSetId() @@ -46,7 +44,6 @@ public static SdJwtRecord GetIdCard3Credential() var record = new SdJwtRecord( encodedSdJwt, - new Dictionary(), [], keyId, CredentialSetId.CreateCredentialSetId() diff --git a/test/WalletFramework.SdJwtVc.Tests/SdJwtRecordTests.cs b/test/WalletFramework.SdJwtVc.Tests/SdJwtRecordTests.cs index 0ad81d55..5c642119 100644 --- a/test/WalletFramework.SdJwtVc.Tests/SdJwtRecordTests.cs +++ b/test/WalletFramework.SdJwtVc.Tests/SdJwtRecordTests.cs @@ -2,7 +2,6 @@ using WalletFramework.Core.Credentials; using WalletFramework.Core.Cryptography.Models; using WalletFramework.SdJwtVc.Models.Credential; -using WalletFramework.SdJwtVc.Models.Credential.Attributes; using WalletFramework.SdJwtVc.Models.Records; namespace WalletFramework.SdJwtVc.Tests; @@ -17,7 +16,6 @@ public void CanCreateSdJwtRecord() var record = new SdJwtRecord( encodedSdJwt, - new Dictionary(), new List(), keyId, CredentialSetId.CreateCredentialSetId()); diff --git a/test/WalletFramework.SdJwtVc.Tests/SdJwtVcHolderServiceTests.cs b/test/WalletFramework.SdJwtVc.Tests/SdJwtVcHolderServiceTests.cs index f1a55577..1b2709b1 100644 --- a/test/WalletFramework.SdJwtVc.Tests/SdJwtVcHolderServiceTests.cs +++ b/test/WalletFramework.SdJwtVc.Tests/SdJwtVcHolderServiceTests.cs @@ -7,7 +7,6 @@ using WalletFramework.SdJwtLib.Roles; using WalletFramework.SdJwtLib.Roles.Implementation; using WalletFramework.SdJwtVc.Models.Credential; -using WalletFramework.SdJwtVc.Models.Credential.Attributes; using WalletFramework.SdJwtVc.Models.Records; using WalletFramework.SdJwtVc.Services.SdJwtVcHolderService; @@ -33,7 +32,7 @@ public async Task Can_Create_Presentation_For_Example_4A() const string issuedSdJwt = "eyJhbGciOiAiRVMyNTYiLCAidHlwIjogInZjK3NkLWp3dCJ9.eyJfc2QiOiBbIjBIWm1uU0lQejMzN2tTV2U3QzM0bC0tODhnekppLWVCSjJWel9ISndBVGciLCAiOVpicGxDN1RkRVc3cWFsNkJCWmxNdHFKZG1lRU9pWGV2ZEpsb1hWSmRSUSIsICJJMDBmY0ZVb0RYQ3VjcDV5eTJ1anFQc3NEVkdhV05pVWxpTnpfYXdEMGdjIiwgIklFQllTSkdOaFhJbHJRbzU4eWtYbTJaeDN5bGw5WmxUdFRvUG8xN1FRaVkiLCAiTGFpNklVNmQ3R1FhZ1hSN0F2R1RyblhnU2xkM3o4RUlnX2Z2M2ZPWjFXZyIsICJodkRYaHdtR2NKUXNCQ0EyT3RqdUxBY3dBTXBEc2FVMG5rb3ZjS09xV05FIiwgImlrdXVyOFE0azhxM1ZjeUE3ZEMtbU5qWkJrUmVEVFUtQ0c0bmlURTdPVFUiLCAicXZ6TkxqMnZoOW80U0VYT2ZNaVlEdXZUeWtkc1dDTmcwd1RkbHIwQUVJTSIsICJ3elcxNWJoQ2t2a3N4VnZ1SjhSRjN4aThpNjRsbjFqb183NkJDMm9hMXVnIiwgInpPZUJYaHh2SVM0WnptUWNMbHhLdUVBT0dHQnlqT3FhMXoySW9WeF9ZRFEiXSwgImlzcyI6ICJodHRwczovL2lzc3Vlci5leGFtcGxlLmNvbSIsICJpYXQiOiAxNjgzMDAwMDAwLCAiZXhwIjogMTg4MzAwMDAwMCwgInZjdCI6ICJodHRwczovL2JtaS5idW5kLmV4YW1wbGUvY3JlZGVudGlhbC9waWQvMS4wIiwgImFnZV9lcXVhbF9vcl9vdmVyIjogeyJfc2QiOiBbIkZjOElfMDdMT2NnUHdyREpLUXlJR085N3dWc09wbE1Makh2UkM0UjQtV2ciLCAiWEx0TGphZFVXYzl6Tl85aE1KUm9xeTQ2VXNDS2IxSXNoWnV1cVVGS1NDQSIsICJhb0NDenNDN3A0cWhaSUFoX2lkUkNTQ2E2NDF1eWNuYzh6UGZOV3o4bngwIiwgImYxLVAwQTJkS1dhdnYxdUZuTVgyQTctRVh4dmhveHY1YUhodUVJTi1XNjQiLCAiazVoeTJyMDE4dnJzSmpvLVZqZDZnNnl0N0Fhb25Lb25uaXVKOXplbDNqbyIsICJxcDdaX0t5MVlpcDBzWWdETzN6VnVnMk1GdVBOakh4a3NCRG5KWjRhSS1jIl19LCAiX3NkX2FsZyI6ICJzaGEtMjU2IiwgImNuZiI6IHsiandrIjogeyJrdHkiOiAiRUMiLCAiY3J2IjogIlAtMjU2IiwgIngiOiAiVENBRVIxOVp2dTNPSEY0ajRXNHZmU1ZvSElQMUlMaWxEbHM3dkNlR2VtYyIsICJ5IjogIlp4amlXV2JaTVFHSFZXS1ZRNGhiU0lpcnNWZnVlY0NFNnQ0alQ5RjJIWlEifX19.jeF9GjGbjCr0NND0SbkV4HeSpsysixALFScJl4bYkIykXhF6cRtqni64_d7X6Ef8Rx80rfsgXe0H7TdiSoIJOw~WyIyR0xDNDJzS1F2ZUNmR2ZyeU5STjl3IiwgImdpdmVuX25hbWUiLCAiRXJpa2EiXQ~WyJlbHVWNU9nM2dTTklJOEVZbnN4QV9BIiwgImZhbWlseV9uYW1lIiwgIk11c3Rlcm1hbm4iXQ~WyI2SWo3dE0tYTVpVlBHYm9TNXRtdlZBIiwgImJpcnRoZGF0ZSIsICIxOTYzLTA4LTEyIl0~WyJlSThaV205UW5LUHBOUGVOZW5IZGhRIiwgInNvdXJjZV9kb2N1bWVudF90eXBlIiwgImlkX2NhcmQiXQ~WyJRZ19PNjR6cUF4ZTQxMmExMDhpcm9BIiwgInN0cmVldF9hZGRyZXNzIiwgIkhlaWRlc3RyYVx1MDBkZmUgMTciXQ~WyJBSngtMDk1VlBycFR0TjRRTU9xUk9BIiwgImxvY2FsaXR5IiwgIktcdTAwZjZsbiJd~WyJQYzMzSk0yTGNoY1VfbEhnZ3ZfdWZRIiwgInBvc3RhbF9jb2RlIiwgIjUxMTQ3Il0~WyJHMDJOU3JRZmpGWFE3SW8wOXN5YWpBIiwgImNvdW50cnkiLCAiREUiXQ~WyJsa2x4RjVqTVlsR1RQVW92TU5JdkNBIiwgImFkZHJlc3MiLCB7Il9zZCI6IFsiWEZjN3pYUG03enpWZE15d20yRXVCZmxrYTVISHF2ZjhVcF9zek5HcXZpZyIsICJiZDFFVnpnTm9wVWs0RVczX2VRMm4zX05VNGl1WE9IdjlYYkdITjNnMVRFIiwgImZfRlFZZ3ZRV3Z5VnFObklYc0FSbE55ZTdZR3A4RTc3Z1JBamFxLXd2bnciLCAidjRra2JfcFAxamx2VWJTanR5YzVicWNXeUEtaThYTHZoVllZN1pUMHRiMCJdfV0~WyJuUHVvUW5rUkZxM0JJZUFtN0FuWEZBIiwgIm5hdGlvbmFsaXRpZXMiLCBbIkRFIl1d~WyI1YlBzMUlxdVpOYTBoa2FGenp6Wk53IiwgImdlbmRlciIsICJmZW1hbGUiXQ~WyI1YTJXMF9OcmxFWnpmcW1rXzdQcS13IiwgImJpcnRoX2ZhbWlseV9uYW1lIiwgIkdhYmxlciJd~WyJ5MXNWVTV3ZGZKYWhWZGd3UGdTN1JRIiwgImxvY2FsaXR5IiwgIkJlcmxpbiJd~WyJIYlE0WDhzclZXM1FEeG5JSmRxeU9BIiwgInBsYWNlX29mX2JpcnRoIiwgeyJfc2QiOiBbIldwaEhvSUR5b1diQXBEQzR6YnV3UjQweGwweExoRENfY3Y0dHNTNzFyRUEiXSwgImNvdW50cnkiOiAiREUifV0~WyJDOUdTb3VqdmlKcXVFZ1lmb2pDYjFBIiwgImFsc29fa25vd25fYXMiLCAiU2Nod2VzdGVyIEFnbmVzIl0~WyJreDVrRjE3Vi14MEptd1V4OXZndnR3IiwgIjEyIiwgdHJ1ZV0~WyJIM28xdXN3UDc2MEZpMnllR2RWQ0VRIiwgIjE0IiwgdHJ1ZV0~WyJPQktsVFZsdkxnLUFkd3FZR2JQOFpBIiwgIjE2IiwgdHJ1ZV0~WyJNMEpiNTd0NDF1YnJrU3V5ckRUM3hBIiwgIjE4IiwgdHJ1ZV0~WyJEc210S05ncFY0ZEFIcGpyY2Fvc0F3IiwgIjIxIiwgdHJ1ZV0~WyJlSzVvNXBIZmd1cFBwbHRqMXFoQUp3IiwgIjY1IiwgZmFsc2Vd~"; // Arrange var keyId = KeyId.CreateKeyId(); - var sdJwtRecord = new SdJwtRecord(issuedSdJwt, new Dictionary(), new List(), keyId, CredentialSetId.CreateCredentialSetId()); + var sdJwtRecord = new SdJwtRecord(issuedSdJwt, new List(), keyId, CredentialSetId.CreateCredentialSetId()); var claimsToDisclose = new[] { "given_name", "address.street_address", "nationalities[0]" }; // Act From 1575456f45dde90186840d3c08be65968afbb191 Mon Sep 17 00:00:00 2001 From: Johannes Tuerk Date: Fri, 24 Oct 2025 16:24:35 +0200 Subject: [PATCH 2/8] clean attribute order Signed-off-by: Johannes Tuerk --- src/WalletFramework.SdJwtVc/Models/Records/SdJwtRecord.cs | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/WalletFramework.SdJwtVc/Models/Records/SdJwtRecord.cs b/src/WalletFramework.SdJwtVc/Models/Records/SdJwtRecord.cs index 89ab3ef5..d3d9848e 100644 --- a/src/WalletFramework.SdJwtVc/Models/Records/SdJwtRecord.cs +++ b/src/WalletFramework.SdJwtVc/Models/Records/SdJwtRecord.cs @@ -23,11 +23,6 @@ public sealed class SdJwtRecord : RecordBase, ICredential { public const int CurrentVersion = 3; - /// - /// Gets or sets the attributes that should be displayed. - /// - public List? AttributeOrder { get; set; } - /// /// Gets or sets the flattened structure of the claims in the credential. /// The key is a JSON path to the claim value in the decoded SdJwtVc. From 58770afe7005b4e9ec34d8df52880cf87d5965bb Mon Sep 17 00:00:00 2001 From: Johannes Tuerk Date: Tue, 28 Oct 2025 11:36:37 +0100 Subject: [PATCH 3/8] Merge branch 'v3.0.0' of github.com:openwallet-foundation-labs/wallet-framework-dotnet into algin-isser-metadata-with-oid4vci1.0 Signed-off-by: Johannes Tuerk --- Directory.Build.props | 4 +- Directory.Build.targets | 11 + MAINTAINERS.md | 1 - docker-compose.test.yaml | 28 - docker-compose.yaml | 56 - docker/commands.txt | 8 - docker/docker_pool_genesis.txn | 4 - docker/indy-pool.dockerfile | 128 -- docker/test-agent.dockerfile | 11 - docker/web-agent.dockerfile | 23 - docs/Makefile | 19 - docs/_static/custom.css | 13 - docs/_static/images/choose_template.png | Bin 352613 -> 0 bytes docs/_static/images/configure_agent.png | Bin 266164 -> 0 bytes docs/_static/images/target_framework.png | Bin 235246 -> 0 bytes docs/_templates/page.html | 14 - docs/aspnetcore.rst | 123 - docs/conf.py | 181 -- docs/docker.rst | 23 - docs/errors.rst | 16 - docs/gettingstarted.rst | 332 --- docs/index.rst | 42 - docs/installation.rst | 79 - docs/make.bat | 35 - docs/payments.rst | 54 - docs/quickstart.rst | 270 --- docs/samples.rst | 71 - docs/xamarin.rst | 204 -- legacy/Directory.Build.props | 49 + .../.editorconfig | 0 .../AssemblyAnnotations.cs | 0 .../Features/Base/BaseApiRequest.cs | 0 .../Features/Base/BaseRequest.cs | 0 .../Features/Base/BaseResponse.cs | 0 .../BasicMessaging/FeatureAnnotations.cs | 0 .../SendMessage/SendMessageRequest.cs | 0 .../SendMessageRequestValidator.cs | 0 .../SendMessage/SendMessageResponse.cs | 0 .../AcceptInvitationRequest.cs | 0 .../AcceptInvitationRequestValidator.cs | 0 .../AcceptInvitationResponse.cs | 0 .../CreateInvitationRequest.cs | 0 .../CreateInvitationRequestValidator.cs | 0 .../CreateInvitationResponse.cs | 0 .../DeleteConnectionRequest.cs | 0 .../DeleteConnectionRequestValidator.cs | 0 .../DeleteConnectionResponse.cs | 0 .../Features/Connection/FeatureAnnotations.cs | 0 .../GetConnection/GetConnectionRequest.cs | 0 .../GetConnectionRequestValidator.cs | 0 .../GetConnection/GetConnectionResponse.cs | 0 .../GetConnections/GetConnectionsRequest.cs | 0 .../GetConnectionsRequestValidator.cs | 0 .../GetConnections/GetConnectionsResponse.cs | 0 .../ReceiveInvitationRequest.cs | 0 .../ReceiveInvitationRequestValidator.cs | 0 .../ReceiveInvitationResponse.cs | 0 .../Connection/SendPing/SendPingRequest.cs | 0 .../SendPing/SendPingRequestValidator.cs | 0 .../Connection/SendPing/SendPingResponse.cs | 0 .../Features/Connection/_._ | 0 .../Features/Credential/FeatureAnnotations.cs | 0 .../GetCredential/GetCredentialRequest.cs | 0 .../GetCredentialRequestValidator.cs | 0 .../GetCredential/GetCredentialResponse.cs | 0 .../GetCredentials/GetCredentialsRequest.cs | 0 .../GetCredentialsRequestValidator.cs | 0 .../GetCredentials/GetCredentialsResponse.cs | 0 .../RemoveCredentialRequest.cs | 0 .../RemoveCredentialRequestValidator.cs | 0 .../RemoveCredentialResponse.cs | 0 .../CreateCredentialDefinitionRequest.cs | 0 ...ateCredentialDefinitionRequestValidator.cs | 0 .../CreateCredentialDefinitionResponse.cs | 0 .../FeatureAnnotations.cs | 0 .../GetCredentialDefinitionRequest.cs | 0 ...GetCredentialDefinitionRequestValidator.cs | 0 .../GetCredentialDefinitionResponse.cs | 0 .../GetCredentialDefinitionsRequest.cs | 0 ...etCredentialDefinitionsRequestValidator.cs | 0 .../GetCredentialDefinitionsResponse.cs | 0 .../InternalsVisibleToClientAndServer.cs | 0 .../Features/Introduction/_._ | 0 .../IssueCredential/FeatureAnnotations.cs | 0 .../OfferCredential/OfferCredentialRequest.cs | 0 .../OfferCredentialRequestValidator.cs | 0 .../OfferCredentialResponse.cs | 0 .../Features/Ledger/_._ | 0 .../AcceptProofRequestRequest.cs | 0 .../AcceptProofRequestRequestValidator.cs | 0 .../AcceptProofRequestResponse.cs | 0 .../CreateProof/CreateProofRequestRequest.cs | 0 .../CreateProofRequestRequestValidator.cs | 0 .../CreateProof/CreateProofRequestResponse.cs | 0 .../PresentProof/FeatureAnnotations.cs | 0 .../GetCredentialsForProofRequest.cs | 0 .../GetCredentialsForProofRequestValidator.cs | 0 .../GetCredentialsForProofResponse.cs | 0 .../PresentProof/GetProof/GetProofRequest.cs | 0 .../GetProof/GetProofRequestValidator.cs | 0 .../PresentProof/GetProof/GetProofResponse.cs | 0 .../GetProofs/GetProofsRequest.cs | 0 .../GetProofs/GetProofsRequestValidator.cs | 0 .../GetProofs/GetProofsResponse.cs | 0 .../Features/Revocation/_._ | 0 .../CreateSchema/CreateSchemaRequest.cs | 0 .../CreateSchemaRequestValidator.cs | 0 .../CreateSchema/CreateSchemaResponse.cs | 0 .../Features/Schema/FeatureAnnotations.cs | 0 .../Schema/GetSchema/GetSchemaRequest.cs | 0 .../GetSchema/GetSchemaRequestValidator.cs | 0 .../Schema/GetSchema/GetSchemaResponse.cs | 0 .../Schema/GetSchemas/GetSchemasRequest.cs | 0 .../GetSchemas/GetSchemasRequestValidator.cs | 0 .../Schema/GetSchemas/GetSchemasResponse.cs | 0 .../Features/TrustPing/_._ | 0 .../Features/Wallet/FeatureAnnotations.cs | 0 .../Wallet/GetWallet/GetWalletRequest.cs | 0 .../GetWallet/GetWalletRequestValidator.cs | 0 .../Wallet/GetWallet/GetWalletResponse.cs | 0 .../Wallet/ResetWallet/ResetWalletRequest.cs | 0 .../ResetWalletRequestValidator.cs | 0 .../Wallet/ResetWallet/ResetWalletResponse.cs | 0 ...erledger.Aries.AspNetCore.Contracts.csproj | 4 + .../buildTransitive/Legacy.Deprecated.targets | 8 + .../.editorconfig | 0 .../AgentMiddleware.cs | 0 .../ApplicationBuilderExtensions.cs | 0 .../Extensions/AriesOpenApiOptions.cs | 0 .../Extensions/MvcBuilderExtensions.cs | 0 .../Features/Base/BaseEndpoint.cs | 0 .../Features/Base/BaseError.cs | 0 .../Features/Base/BaseException.cs | 0 .../SendMessage/SendMessageEndpoint.cs | 0 .../SendMessage/SendMessageHandler.cs | 0 .../AcceptInvitationEndpoint.cs | 0 .../AcceptInvitationHandler.cs | 0 .../CreateInvitationEndpoint.cs | 0 .../CreateInvitationHandler.cs | 0 .../DeleteConnectionEndpoint.cs | 0 .../DeleteConnectionHandler.cs | 0 .../GetConnection/GetConnectionEndpoint.cs | 0 .../GetConnection/GetConnectionHandler.cs | 0 .../GetConnections/GetConnectionsEndpoint.cs | 0 .../GetConnections/GetConnectionsHandler.cs | 0 .../ReceiveInvitationEndpoint.cs | 0 .../ReceiveInvitationHandler.cs | 0 .../Connection/SendPing/SendPingEndpoint.cs | 0 .../Connection/SendPing/SendPingHandler.cs | 0 .../GetCredential/GetCredentialEndpoint.cs | 0 .../GetCredential/GetCredentialHandler.cs | 0 .../GetCredentials/GetCredentialsEndpoint.cs | 0 .../GetCredentials/GetCredentialsHandler.cs | 0 .../RemoveCredentialEndpoint.cs | 0 .../RemoveCredentialHandler.cs | 0 .../CreateCredentialDefinitionEndpoint.cs | 0 .../CreateCredentialDefinitionHandler.cs | 0 .../GetCredentialDefinitionEndpoint.cs | 0 .../GetCredentialDefinitionHandler.cs | 0 .../GetCredentialDefinitionsEndpoint.cs | 0 .../GetCredentialDefinitionsHandler.cs | 0 .../Features/Introduction/_._ | 0 .../OfferCredentialEndpoint.cs | 0 .../OfferCredential/OfferCredentialHandler.cs | 0 .../Features/Ledger/_._ | 0 .../AcceptProofRequestEndpoint.cs | 0 .../AcceptProofRequestHandler.cs | 0 .../CreateProofRequestEndpoint.cs | 0 .../CreateProofRequestsHandler.cs | 0 .../GetCredentialsForProofEndpoint.cs | 0 .../GetCredentialsForProofHandler.cs | 0 .../PresentProof/GetProof/GetProofEndpoint.cs | 0 .../PresentProof/GetProof/GetProofHandler.cs | 0 .../GetProofs/GetProofsEndpoint.cs | 0 .../GetProofs/GetProofsHandler.cs | 0 .../Features/Revocation/_._ | 0 .../CreateSchema/CreateSchemaEndpoint.cs | 0 .../CreateSchema/CreateSchemaHandler.cs | 0 .../Schema/GetSchema/GetSchemaEndpoint.cs | 0 .../Schema/GetSchema/GetSchemaHandler.cs | 0 .../Schema/GetSchemas/GetSchemasEndpoint.cs | 0 .../Schema/GetSchemas/GetSchemasHandler.cs | 0 .../Features/TrustPing/_._ | 0 .../Wallet/GetWallet/GetWalletEndpoint.cs | 0 .../Wallet/GetWallet/GetWalletHandler.cs | 0 .../Wallet/ResetWallet/ResetWalletEndpoint.cs | 0 .../Wallet/ResetWallet/ResetWalletHandler.cs | 0 .../Hyperledger.Aries.AspNetCore.csproj | 4 + .../TailsMiddleware.cs | 0 .../buildTransitive/Legacy.Deprecated.targets | 8 + .../AgentBuilderExtensions.cs | 0 .../AnyAgentMessage.cs | 0 .../GlobalSuppressions.cs | 18 +- ...erledger.Aries.Payments.SovrinToken.csproj | 20 +- .../PaymentUtils.cs | 0 .../PaymentsAgentMiddleware.cs | 0 .../SovrinPaymentService.cs | 0 .../SovrinTokenConfigurationService.cs | 0 .../TokenConfiguration.cs | 58 +- .../AriesFrameworkBuilderExtensions.cs | 0 .../EdgeClientService.Backup.cs | 0 .../EdgeClientService.cs | 0 .../EdgeConnectionService.cs | 0 .../EdgeProvisioningService.cs | 0 .../Hyperledger.Aries.Routing.Edge.csproj | 34 +- .../IEdgeClientService.cs | 0 .../IEdgeProvisioningService.cs | 0 .../AriesFrameworkBuilderExtensions.cs | 0 .../DefaultRoutingStore.cs | 10 +- .../Handlers/MediatorForwardHandler.cs | 0 .../Handlers/RetrieveBackupHandler.cs | 0 .../Handlers/RoutingInboxHandler.cs | 0 .../Handlers/StoreBackupHandler.cs | 0 .../Hyperledger.Aries.Routing.Mediator.csproj | 36 +- .../IRoutingStore.cs | 0 .../MediatorAgent.cs | 0 .../MediatorDiscoveryMiddleware.cs | 130 +- .../MediatorProvisioningService.cs | 0 .../Records/DeviceInfoRecord.cs | 0 .../Records/InboxItemRecord.cs | 0 .../Records/InboxRecord.cs | 0 .../Records/RouteRecord.cs | 0 .../Storage/DefaultStorageService.cs | 0 .../Storage/IStorageService.cs | 0 .../buildTransitive/Legacy.Deprecated.targets | 8 + .../AddDeviceInfoMessage.cs | 0 .../AddRouteMessage.cs | 30 +- .../AgentPublicConfiguration.cs | 0 .../BackupTypeNames.cs | 30 +- .../CreateInboxMessage.cs | 0 .../CreateInboxResponseMessage.cs | 0 .../DeleteInboxItemsMessage.cs | 0 .../GetInboxItemsMessage.cs | 0 .../GetInboxItemsResponseMessage.cs | 20 +- .../Hyperledger.Aries.Routing.csproj | 30 +- .../InboxItemEvent.cs | 0 .../InboxItemMessage.cs | 0 .../ListBackupsAgentMessage.cs | 46 +- .../ListBackupsResponseAgentMessage.cs | 32 +- .../RestoreInboxMessage.cs | 0 .../RetrieveBackupAgentMessage.cs | 32 +- .../RetrieveBackupResponseAgentMessage.cs | 34 +- .../RoutingTypeNames.cs | 0 .../StoreBackupAgentMessage.cs | 38 +- .../StoreBackupResponseAgentMessage.cs | 28 +- .../UpsertDeviceInfoMessage.cs | 0 .../src}/Hyperledger.Aries.Routing/Utils.cs | 0 .../Agents/Abstractions/IAgent.cs | 62 +- .../Agents/Abstractions/IAgentContext.cs | 0 .../Agents/Abstractions/IAgentMiddleware.cs | 0 .../Agents/Abstractions/IAgentProvider.cs | 0 .../Agents/Abstractions/IMessageHandler.cs | 0 .../Hyperledger.Aries/Agents/AgentBase.cs | 0 .../Hyperledger.Aries/Agents/AgentContext.cs | 0 .../Converters/AgentEndpointJsonConverter.cs | 0 .../Agents/Converters/AgentMessageReader.cs | 0 .../Agents/Converters/AgentMessageWriter.cs | 0 .../Hyperledger.Aries/Agents/DefaultAgent.cs | 0 .../Agents/DefaultAgentContext.cs | 0 .../Agents/DefaultAgentProvider.cs | 122 +- .../AgentFrameworkBuilderExtensions.cs | 0 .../Agents/Extensions/AgentsExtensions.cs | 0 .../Extensions/ServiceCollectionExtensions.cs | 0 .../Agents/MessageHandlerBase.cs | 0 .../Hyperledger.Aries/Agents/MessageType.cs | 0 .../Hyperledger.Aries/Agents/MessageTypes.cs | 0 .../Agents/MessageTypesHttps.cs | 0 .../Agents/Models/AgentEndpoint.cs | 0 .../Agents/Models/AgentMessage.cs | 0 .../Agents/Models/AgentOwner.cs | 0 .../Agents/Models/MessageContext.cs | 0 .../Agents/Models/PackedMessageContext.cs | 96 +- .../Agents/Models/UnpackedMessageContext.cs | 0 .../Agents/Transport/DefaultMessageService.cs | 0 .../Agents/Transport/HttpMessageDispatcher.cs | 132 +- .../Agents/Transport/IMessageDispatcher.cs | 0 .../Agents/Transport/IMessageService.cs | 0 .../Transport/MessageServiceExtensions.cs | 0 .../Common/AcknowledgeMessage.cs | 0 .../Common/AcknowledgementStatusConstants.cs | 0 .../Common/AgentFrameworkException.cs | 0 .../Hyperledger.Aries/Common/ErrorCode.cs | 0 .../Common/EventAggregator.cs | 0 .../Common/FormattingExtensions.cs | 0 .../Common/IEventAggregator.cs | 0 .../Hyperledger.Aries/Common/LoggingEvents.cs | 0 .../Hyperledger.Aries/Common/MediaTypes.cs | 0 .../Common/ServiceMessageProcessingEvent.cs | 0 .../Configuration/AgentOptions.cs | 374 ++-- .../Configuration/AriesFrameworkBuilder.cs | 0 .../DefaultProvisioningHostedService.cs | 0 .../DefaultProvisioningService.cs | 0 .../Configuration/IProvisioningService.cs | 0 .../Configuration/PoolConfigurationService.cs | 0 .../Configuration/ProvisioningRecord.cs | 0 .../ServiceCollectionExtensions.cs | 0 .../TxnAuthorAcceptanceService.cs | 2 +- .../Decorators/Attachments/AttachDecorator.cs | 0 .../Attachments/AttachExtensions.cs | 0 .../Decorators/Attachments/Attachment.cs | 0 .../Attachments/AttachmentContent.cs | 0 .../AttachmentContentExtensions.cs | 0 .../Attachments/JsonWebSignature.cs | 0 .../Decorators/DecoratorExtensions.cs | 0 .../Decorators/Decorators.cs | 0 .../Payments/PaymentReceiptDecorator.cs | 0 .../Payments/PaymentRequestDecorator.cs | 0 .../Decorators/PleaseAck/OnValues.cs | 0 .../PleaseAck/PleaseAckDecorator.cs | 0 .../Decorators/Service/ServiceDecorator.cs | 0 .../Service/ServiceDecoratorExtensions.cs | 58 +- .../Signature/SignatureDecorator.cs | 0 .../Decorators/Signature/SignatureUtils.cs | 2 +- .../Decorators/Threading/ThreadDecorator.cs | 0 .../Threading/ThreadDecoratorExtensions.cs | 0 .../Transport/TransportDecorator.cs | 0 .../Transport/TransportDecoratorExtensions.cs | 0 .../Features/BasicMessage/BasicMessage.cs | 0 .../BasicMessage/BasicMessageRecord.cs | 0 .../DefaultBasicMessageHandler.cs | 0 .../DefaultBasicMessageService.cs | 0 .../BasicMessage/IBasicMessageService.cs | 0 .../Discovery/DefaultDiscoveryHandler.cs | 0 .../Discovery/DefaultDiscoveryService.cs | 0 .../Discovery/DiscoveryDiscloseMessage.cs | 0 .../Discovery/DiscoveryQueryMessage.cs | 0 .../Features/Discovery/IDiscoveryService.cs | 0 .../Features/Handshakes/Common/Connection.cs | 0 .../Handshakes/Common/ConnectionAlias.cs | 0 .../Handshakes/Common/ConnectionRecord.cs | 0 .../Common/Dids/DidCommServiceEndpoint.cs | 0 .../Features/Handshakes/Common/Dids/DidDoc.cs | 0 .../Common/Dids/DidDocExtensions.cs | 0 .../Handshakes/Common/Dids/DidDocKey.cs | 0 .../Common/Dids/DidDocServiceEndpointTypes.cs | 0 .../Dids/DidDocServiceEndpointsConverter.cs | 0 .../Common/Dids/IDidDocServiceEndpoint.cs | 0 .../Common/Dids/IndyAgentDidDocService.cs | 0 .../Connection/DefaultConnectionHandler.cs | 0 .../Connection/DefaultConnectionService.cs | 0 .../Extensions/ConnectionServiceExtensions.cs | 0 .../Connection/IConnectionService.cs | 0 .../Models/ConnectionAcknowledgeMessage.cs | 0 .../Models/ConnectionInvitationMessage.cs | 0 .../Models/ConnectionRequestMessage.cs | 0 .../Models/ConnectionResponseMessage.cs | 0 .../Connection/Models/InviteConfiguration.cs | 0 .../DidExchange/DefaultDidExchangeHandler.cs | 0 .../DidExchange/DefaultDidExchangeService.cs | 0 .../DidExchange/IDidExchangeService.cs | 0 .../Models/DidExchangeCompleteMessage.cs | 0 .../Models/DidExchangeProblemReportMessage.cs | 0 .../Models/DidExchangeRequestMessage.cs | 0 .../Models/DidExchangeResponseMessage.cs | 0 .../Features/Handshakes/HandshakeConstants.cs | 0 .../Features/Handshakes/HandshakeProtocol.cs | 0 .../Abstractions/ICredentialService.cs | 0 .../Abstractions/ISchemaService.cs | 0 .../Abstractions/ITailsService.cs | 0 .../CredentialServiceExtensions.cs | 0 .../DefaultCredentialHandler.cs | 0 .../DefaultCredentialService.cs | 0 .../IssueCredential/DefaultSchemaService.cs | 0 .../IssueCredential/DefaultTailsService.cs | 10 +- .../IssueCredential/Models/Credential.cs | 0 .../CredentialDefinitionConfiguration.cs | 0 .../IssueCredential/Models/CredentialInfo.cs | 0 .../Models/CredentialMimeTypes.cs | 0 .../Models/CredentialPreviewAttribute.cs | 0 .../CredentialPreviewAttributeConverter.cs | 0 .../Messages/CredentialAcknowledgeMessage.cs | 0 .../Models/Messages/CredentialIssueMessage.cs | 0 .../Models/Messages/CredentialOfferMessage.cs | 0 .../Messages/CredentialPreviewMessage.cs | 0 .../Messages/CredentialProposalMessage.cs | 0 .../Messages/CredentialRequestMessage.cs | 0 .../Models/OfferConfiguration.cs | 0 .../Records/CredentialRecord.cs | 0 .../Records/CredentialState.cs | 0 .../Records/CredentialTrigger.cs | 0 .../Records/DefinitionRecord.cs | 0 .../Records/RevocationRegistryRecord.cs | 0 .../IssueCredential/Records/SchemaRecord.cs | 0 .../OutOfBand/DefaultOutOfBandHandler.cs | 0 .../OutOfBand/DefaultOutOfBandService.cs | 0 .../HandshakeReuseAcceptedMessage.cs | 0 .../OutOfBand/HandshakeReuseMessage.cs | 0 .../Features/OutOfBand/IOutOfBandService.cs | 0 .../Features/OutOfBand/InvitationMessage.cs | 0 .../OutOfBand/InvitationMessageExtensions.cs | 0 .../PresentProof/DefaultProofHandler.cs | 0 .../PresentProof/DefaultProofService.cs | 1982 ++++++++--------- .../Features/PresentProof/IProofService.cs | 494 ++-- .../PresentationAcknowledgeMessage.cs | 0 .../Messages/PresentationMessage.cs | 0 .../Messages/PresentationPreviewMessage.cs | 0 .../Messages/ProposePresentationMessage.cs | 0 .../Messages/RequestPresentationMessage.cs | 0 .../Models/AttributeFilterConverter.cs | 0 .../PresentProof/Models/PartialProof.cs | 0 .../PresentProof/Models/ProofAttribute.cs | 0 .../PresentProof/Models/ProofAttributeInfo.cs | 0 .../PresentProof/Models/ProofIdentifier.cs | 0 .../PresentProof/Models/ProofPredicateInfo.cs | 0 .../PresentProof/Models/ProofProposal.cs | 0 .../PresentProof/Models/ProofRequest.cs | 0 .../Models/ProofRequestConfiguration.cs | 0 .../Models/ProofRequestParameters.cs | 0 .../PresentProof/Models/RequestedAttribute.cs | 0 .../Models/RequestedCredentials.cs | 0 .../PresentProof/Models/RequestedProof.cs | 0 .../PresentProof/Models/RevocationInterval.cs | 0 .../Features/PresentProof/ProofRecord.cs | 0 .../PresentProof/ProofServiceExtensions.cs | 0 .../Features/ProblemReport/ProblemImpact.cs | 0 .../ProblemReport/ProblemReportMessage.cs | 0 .../Features/ProblemReport/RetryParty.cs | 0 .../DefaultRevocationNotificationHandler.cs | 0 .../DefaultRevocationNotificationService.cs | 0 .../IRevocationNotificationService.cs | 0 ...evocationNotificationAcknowledgeMessage.cs | 0 .../RevocationNotificationMessage.cs | 0 .../Features/Routing/DefaultForwardHandler.cs | 0 .../Features/Routing/ForwardMessage.cs | 0 .../TrustPing/DefaultTrustPingHandler.cs | 0 .../Features/TrustPing/TrustPingMessage.cs | 0 .../TrustPing/TrustPingResponseMessage.cs | 0 .../Hyperledger.Aries.csproj | 2 + .../src}/Hyperledger.Aries/IsExternalInit.cs | 0 .../Ledger/Abstractions/ILedgerService.cs | 0 .../Abstractions/ILedgerSigningService.cs | 0 .../Ledger/Abstractions/IPoolService.cs | 0 .../Ledger/DefaultLedgerService.cs | 0 .../Ledger/DefaultLedgerSigningService.cs | 92 +- .../Ledger/DefaultPoolService.cs | 0 .../Ledger/Models/AuthorizationConstraint.cs | 0 .../Ledger/Models/AuthorizationRule.cs | 0 .../Ledger/Models/ConstraintMetadata.cs | 0 .../Ledger/Models/CredDefId.cs | 0 .../Ledger/Models/IndyAml.cs | 0 .../Ledger/Models/IndyTaa.cs | 0 .../Ledger/Models/IndyTaaAcceptance.cs | 0 .../Models/ParseRegistryResponseResult.cs | 0 .../Ledger/Models/ParseResponseResult.cs | 0 .../Ledger/Models/PoolAwaitable.cs | 0 .../Ledger/Models/SchemaId.cs | 0 .../Ledger/Models/ServiceEndpointResult.cs | 0 .../Ledger/Models/TransactionActions.cs | 0 .../Ledger/Models/TransactionTypes.cs | 0 .../Ledger/V2/DefaultLedgerServiceV2.cs | 0 .../Ledger/V2/DefaultPoolServiceV2.cs | 0 .../Ledger/V2/ResponseParser.cs | 0 .../Payments/DefaultPaymentService.cs | 0 .../Payments/IPaymentService.cs | 0 .../Payments/Models/AddressOptions.cs | 0 .../Payments/Models/IndyPaymentInputSource.cs | 0 .../Models/IndyPaymentOutputSource.cs | 0 .../Payments/Models/PaymentAmount.cs | 0 .../Payments/Models/PaymentDetails.cs | 0 .../Payments/Models/PaymentItem.cs | 0 .../Payments/Models/PaymentMethod.cs | 0 .../Payments/Models/PaymentMethodData.cs | 0 .../Payments/Models/TransactionCost.cs | 0 .../Payments/PaymentAddressRecord.cs | 0 .../Payments/PaymentRecord.cs | 0 .../Properties/AssemblyInfo.cs | 0 .../Signatures/DefaultSigningService.cs | 0 .../Signatures/ISigningService.cs | 0 .../Storage/DefaultWalletRecordService.cs | 0 .../Storage/DefaultWalletService.cs | 0 .../Storage/IWalletRecordService.cs | 0 .../Storage/IWalletService.cs | 0 .../Storage/Models/RecordTagAttribute.cs | 0 .../Storage/Models/WalletConfiguration.cs | 0 .../Storage/Models/WalletCredentials.cs | 0 .../Models/WalletStorageConfiguration.cs | 0 .../Storage/Records/RecordBase.cs | 0 .../Storage/Records/Search/SearchItem.cs | 0 .../Storage/Records/Search/SearchOptions.cs | 0 .../Storage/Records/Search/SearchQuery.cs | 0 .../Storage/Records/Search/SearchResult.cs | 0 .../Utils/Base64UrlEncoder.cs | 0 .../Utils/CredentialUtils.cs | 0 .../Hyperledger.Aries/Utils/CryptoUtils.cs | 0 .../src}/Hyperledger.Aries/Utils/DidUtils.cs | 0 .../Utils/EnvironmentUtils.cs | 0 .../Hyperledger.Aries/Utils/MessageUtils.cs | 0 .../Utils/ResilienceUtils.cs | 0 .../Hyperledger.Aries/Utils/TagConstants.cs | 0 .../src}/Hyperledger.Aries/Utils/UriUtils.cs | 0 .../AgentScenarios.cs | 0 .../Hyperledger.Aries.TestHarness.csproj | 0 .../Mock/InProcAgent.cs | 0 .../Mock/InProcMessageHandler.cs | 124 +- .../Mock/MockAgent.cs | 0 .../Mock/MockAgentHttpHandler.cs | 0 .../Mock/MockAgentMessageProcessor.cs | 0 .../Mock/MockAgentRouter.cs | 0 .../Mock/MockUtils.cs | 0 .../Scenarios.cs | 0 .../TestConstants.cs | 0 .../TestSingleWallet.cs | 0 .../Utils/AgentUtils.cs | 0 .../Utils/PoolUtils.cs | 0 .../Utils/ProofServiceUtils.cs | 0 .../Utils/ServiceUtils.cs | 0 .../ConfigurationTests.cs | 0 .../ConnectionRecordVersioningTests.cs | 0 .../Hyperledger.Aries.Tests/ConverterTests.cs | 0 .../Decorators/AttachmentContentTests.cs | 0 .../Decorators/AttachmentDecoratorTests.cs | 0 .../Decorators/SignatorDecoratorTests.cs | 0 .../Decorators/ThreadingDecoratorTests.cs | 0 .../Decorators/TransportDecoratorTests.cs | 0 .../DidCommServiceTests.cs | 0 .../Hyperledger.Aries.Tests/DidDocTests.cs | 0 .../Hyperledger.Aries.Tests/DidUtilsTests.cs | 0 .../EventAggregatorTests.cs | 0 .../Extensions/ObjectExtensions.cs | 0 .../GlobalSuppressions.cs | 0 .../Hyperledger.Aries.Tests.csproj | 0 .../InProcAgentTests.cs | 0 .../Integration/ConnectionTests.cs | 0 .../Integration/CredentialTests.cs | 0 .../Integration/DidExchangeTests.cs | 0 .../Integration/DiscoveryTests.cs | 0 .../Integration/MessageTypesTests.cs | 0 .../Integration/OutOfBandTests.cs | 0 .../Integration/ProofTests.cs | 0 .../LedgerServiceTests.cs | 0 .../MessageServiceTests.cs | 0 .../MessageUtilsTests.cs | 0 .../MockExtendedConnectionService.cs | 0 .../MockMessageHandler.cs | 0 .../Payments/PaymentTests.cs | 0 .../Payments/ProtocolTests.cs | 0 .../Payments/TransferTests.cs | 0 .../PoolServiceTests.cs | 0 .../Protocols/ConnectionTests.cs | 0 .../Protocols/CredentialTests.cs | 1008 ++++----- .../Protocols/CredentialTransientTests.cs | 0 .../Protocols/CredentialUtilsTests.cs | 0 .../Protocols/CredentialV1Tests.cs | 0 .../Protocols/DidExchangeTests.cs | 0 .../Protocols/DiscoveryTests.cs | 0 .../Protocols/OutOfBandTests.cs | 0 .../Protocols/ProofTests.cs | 0 .../Protocols/RevocationTests.cs | 0 .../ProvisioningServiceTests.cs | 0 .../Hyperledger.Aries.Tests/RecordTests.cs | 0 .../Routing/BackupTests.cs | 0 .../Routing/RoutingInboxHandlerTests.cs | 0 .../Routing/RoutingTests.cs | 192 +- .../Routing/WalletBackupTests.cs | 0 .../Hyperledger.Aries.Tests/RuntimeTests.cs | 84 +- .../SchemaServiceTests.cs | 0 .../Hyperledger.Aries.Tests/SearchTests.cs | 0 .../StateMachineTests.cs | 0 .../Models/WalletStorageConfigurationTest.cs | 0 .../Hyperledger.Aries.Tests/WalletTests.cs | 0 .../Hyperledger.Aries.Tests/pool_genesis.txn | 0 scripts/start-node-pool.sh | 3 - scripts/start-web-agents.sh | 16 - scripts/stop-node-pool.sh | 1 - scripts/tester.sh | 8 - scripts/web-agents-ngrok-config.yaml | 12 - .../Credentials/CredentialId.cs | 4 +- .../Credentials/CredentialSetId.cs | 4 + .../Cryptography/Models/KeyId.cs | 2 + .../Events/EventAggregator.cs | 17 + .../Events/IEventAggregator.cs | 25 + .../Functional/Validation.cs | 90 +- .../Localization/Locale.cs | 3 + .../Localization/LocaleJsonConverters.cs | 60 + src/WalletFramework.Core/Path/JsonPath.cs | 2 +- src/WalletFramework.Core/String/StringFun.cs | 2 + .../WalletFramework.Core.csproj | 18 +- src/WalletFramework.MdocLib/DocType.cs | 2 + .../Elements/ElementIdentifier.cs | 2 +- .../Display/MdocDisplay.cs | 15 + .../{ => Display}/MdocLogo.cs | 2 +- .../{ => Display}/MdocName.cs | 2 +- .../MdocDisplaySerializationConstants.cs | 16 + .../Serialization/MdocDisplaySerializer.cs} | 105 +- src/WalletFramework.MdocVc/IsExternalInit.cs | 1 + src/WalletFramework.MdocVc/MdocCredential.cs | 27 + .../MdocCredentialExtensions.cs | 28 + src/WalletFramework.MdocVc/MdocRecord.cs | 175 -- .../FindMdocCredentialsWithDocType.cs | 15 + .../Persistence/MdocCredentialRecord.cs | 34 + .../MdocCredentialRecordConfiguration.cs | 17 + .../Persistence/MdocCredentialRepository.cs | 70 + .../MdocCredentialSerializationConstants.cs | 20 + .../Serialization/MdocCredentialSerializer.cs | 79 + .../WalletFramework.MdocVc.csproj | 3 +- .../Credential/CredentialFun.cs | 20 +- .../CredentialDataSetExtensions.cs | 16 + .../CredentialSet/CredentialSetService.cs | 32 +- .../CredentialSet/CredentialSetStorage.cs | 89 - .../CredentialSet/ICredentialSetService.cs | 2 +- .../CredentialSet/ICredentialSetStorage.cs | 23 - .../CredentialSet/Models/CredentialDataSet.cs | 110 + .../Models/CredentialSetRecord.cs | 295 --- .../Models/OnDemandCredentialSet.cs | 2 +- .../Persistence/CredentialDataSetRecord.cs | 106 + .../CredentialDataSetRecordConfiguration.cs | 17 + .../CredentialDataSetRepository.cs | 65 + .../Abstraction/IMigrationStepsProvider.cs | 6 - .../Abstraction/IRecordsMigrationService.cs | 12 - .../Implementations/MigrationStepsProvider.cs | 227 -- .../RecordsMigrationService.cs | 71 - .../Database/Migration/MigrationStep.cs | 11 - .../ServiceCollectionExtensions.cs | 80 +- .../Abstractions/IMdocCandidateService.cs | 2 +- .../Oid4Vci/Abstractions/IMdocStorage.cs | 26 - .../Abstractions/IOid4VciClientService.cs | 4 +- .../Abstractions/IAuthFlowSessionStorage.cs | 56 - .../Oid4Vci/AuthFlow/AuthFlowSession.cs | 63 + .../Implementations/AuthFlowSessionStorage.cs | 57 - .../AuthFlow/Models/AuthFlowSessionState.cs | 2 + .../Models/AuthorizationCodeParameters.cs | 2 +- .../Persistence/AuthFlowSessionRecord.cs | 33 + .../AuthFlowSessionRecordConfiguration.cs | 17 + .../Persistence/AuthFlowSessionRepository.cs | 107 + .../AuthFlow/Records/AuthFlowSessionRecord.cs | 139 -- .../Models/CredentialConfigurationId.cs | 2 +- .../Implementations/MdocCandidateService.cs | 15 +- .../Oid4Vci/Implementations/MdocFun.cs | 0 .../Oid4Vci/Implementations/MdocStorage.cs | 77 - .../Implementations/Oid4VciClientService.cs | 345 ++- .../SdJwtCredentialExtensions.cs | 33 + .../Implementations/SdJwtRecordExtensions.cs | 52 - .../EncryptedAuthorizationResponse.cs | 6 +- .../Oid4Vp/CompletedPresentation.cs | 79 + .../Oid4Vp/Dcql/Models/ClaimQuery.cs | 17 +- .../Oid4Vp/Dcql/Services/DcqlService.cs | 41 +- .../AuthorizationRequestCancellation.cs | 5 +- .../Oid4Vp/Models/OidPresentationRecord.cs | 168 -- .../Oid4Vp/Models/PresentedCredential.cs | 17 - .../Oid4Vp/Models/PresentedCredentialSet.cs | 14 +- .../Oid4Vp/Models/SelectedCredential.cs | 5 +- .../Oid4Vp/Models/v1/OidPresentationRecord.cs | 77 - .../CompletedPresentationRecord.cs | 37 + ...ompletedPresentationRecordConfiguration.cs | 19 + .../CompletedPresentationRepository.cs | 101 + .../Services/PexService.cs | 38 +- .../Services/AuthorizationRequestService.cs | 1 + .../Oid4Vp/Services/IOid4VpRecordService.cs | 54 - .../Oid4Vp/Services/Oid4VpClientService.cs | 125 +- .../Oid4Vp/Services/Oid4VpRecordService.cs | 54 - .../Oid4Vp/Services/PresentationService.cs | 53 +- .../Implementations/RpAuthService.cs | 2 +- .../WalletFramework.Oid4Vc.csproj | 1 - .../WalletFramework.SdJwtLib.csproj | 2 +- .../Models/Records/SdJwtRecord.cs | 354 --- src/WalletFramework.SdJwtVc/Models/Vct.cs | 2 +- .../Persistence/FindSdJwtsBySetId.cs | 15 + .../Persistence/SdJwtCredentialRecord.cs | 78 + .../SdJwtCredentialRecordConfiguration.cs | 16 + .../Persistence/SdJwtCredentialRepository.cs | 70 + .../SdJwtCredential.cs | 159 ++ .../SdJwtCredentialExtensions.cs | 9 + .../ISdJwtVcHolderService.cs | 62 +- .../SdJwtVcHolderService.cs | 66 +- .../WalletFramework.SdJwtVc.csproj | 3 +- .../ServiceCollectionExtensions.cs | 17 + .../Sqlite3Provider.cs | 24 + ...WalletFramework.Storage.Unencrypted.csproj | 17 + .../Database/DatabaseCreator.cs | 40 + .../ServiceCollectionExtensions.cs | 42 + .../Database/Errors/DatabaseError.cs | 5 + .../Exceptions/DatabaseCreationException.cs | 9 + .../Exceptions/DatabaseMigrationException.cs | 9 + .../Database/IDatabaseCreator.cs | 8 + .../Database/WalletDbContext.cs | 18 + .../IDomainRepository.cs | 23 + src/WalletFramework.Storage/ISearchConfig.cs | 16 + .../Providers/ISqliteProvider.cs | 19 + .../Records/IRecordConfiguration.cs | 22 + .../Records/IRecordsBuilder.cs | 26 + .../Records/RecordBase.cs | 63 + .../Records/RecordBaseConfiguration.cs | 116 + .../Records/RecordsBuilder.cs | 28 + .../Repositories/IRepository.cs | 60 + .../Repositories/Repository.cs | 92 + .../WalletFramework.Storage.csproj | 16 + .../MdocSamples.cs | 52 + .../WalletFramework.TestSamples.csproj | 12 + src/WalletFramework.sln | 121 +- .../Oid4Vp/Dcql/DcqlServiceTests.cs | 51 +- .../Services/PexServiceTests.cs | 105 +- .../MdocCredentialTests.cs | 154 ++ .../MdocRecordTests.cs | 39 - .../MdocVcSamples.cs | 8 +- .../WalletFramework.MdocVc.Tests.csproj | 5 + .../AuthFlow/AuthFlowSessionRecordTests.cs | 79 - .../AuthFlow/Samples/AuthFlowSamples.cs | 43 - .../Oid4Vci/CredOffer/CredentialOfferTests.cs | 2 +- .../Oid4Vp/AuthRequest/X509SanDnsTests.cs | 1 - .../EncryptedAuthorizationResponseTests.cs | 2 +- ...lSetTests.cs => CredentialDataSetTests.cs} | 2 +- .../Oid4Vp/Dcql/DcqlFindingCandidatesTests.cs | 35 +- .../Oid4Vp/Dcql/DcqlParsingTests.cs | 6 +- .../Oid4Vp/Dcql/Samples/DcqlSamples.cs | 2 +- .../Samples/MdocSamples.cs | 27 - .../Samples/SdJwtSamples.cs | 74 +- .../WalletFramework.Oid4Vc.Tests.csproj | 3 +- .../SdJwtRecordTests.cs | 25 - .../SdJwtVcHolderServiceTests.cs | 23 +- .../WalletFramework.SdJwtVc.Tests.csproj | 2 - .../AuthFlowSessionRecordCrudTests.cs | 129 ++ .../CompletedPresentationRecordCrudTests.cs | 240 ++ .../CredentialDataSetRecordCrudTests.cs | 97 + .../DatabaseCreationTests.cs | 28 + .../MdocCredentialRecordCrudTests.cs | 301 +++ .../SdJwtCredentialRecordCrudTests.cs | 103 + .../TestDbSetup.cs | 88 + .../TestModels/TestRecord.cs | 95 + .../TestModels/TestRecordConfiguration.cs | 32 + .../TestRecordCrudTests.cs | 453 ++++ test/WalletFramework.Storage.Tests/Usings.cs | 2 + .../WalletFramework.Storage.Tests.csproj | 36 + 722 files changed, 7698 insertions(+), 7588 deletions(-) create mode 100644 Directory.Build.targets delete mode 100644 docker-compose.test.yaml delete mode 100644 docker-compose.yaml delete mode 100644 docker/commands.txt delete mode 100644 docker/docker_pool_genesis.txn delete mode 100644 docker/indy-pool.dockerfile delete mode 100644 docker/test-agent.dockerfile delete mode 100644 docker/web-agent.dockerfile delete mode 100644 docs/Makefile delete mode 100644 docs/_static/custom.css delete mode 100644 docs/_static/images/choose_template.png delete mode 100644 docs/_static/images/configure_agent.png delete mode 100644 docs/_static/images/target_framework.png delete mode 100644 docs/_templates/page.html delete mode 100644 docs/aspnetcore.rst delete mode 100644 docs/conf.py delete mode 100644 docs/docker.rst delete mode 100644 docs/errors.rst delete mode 100644 docs/gettingstarted.rst delete mode 100644 docs/index.rst delete mode 100644 docs/installation.rst delete mode 100644 docs/make.bat delete mode 100644 docs/payments.rst delete mode 100644 docs/quickstart.rst delete mode 100644 docs/samples.rst delete mode 100644 docs/xamarin.rst create mode 100644 legacy/Directory.Build.props rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/.editorconfig (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/AssemblyAnnotations.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Base/BaseApiRequest.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Base/BaseRequest.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Base/BaseResponse.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/BasicMessaging/FeatureAnnotations.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/BasicMessaging/SendMessage/SendMessageRequest.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/BasicMessaging/SendMessage/SendMessageRequestValidator.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/BasicMessaging/SendMessage/SendMessageResponse.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/AcceptInvitation/AcceptInvitationRequest.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/AcceptInvitation/AcceptInvitationRequestValidator.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/AcceptInvitation/AcceptInvitationResponse.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/CreateInvitation/CreateInvitationRequest.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/CreateInvitation/CreateInvitationRequestValidator.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/CreateInvitation/CreateInvitationResponse.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/DeleteConnection/DeleteConnectionRequest.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/DeleteConnection/DeleteConnectionRequestValidator.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/DeleteConnection/DeleteConnectionResponse.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/FeatureAnnotations.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/GetConnection/GetConnectionRequest.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/GetConnection/GetConnectionRequestValidator.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/GetConnection/GetConnectionResponse.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/GetConnections/GetConnectionsRequest.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/GetConnections/GetConnectionsRequestValidator.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/GetConnections/GetConnectionsResponse.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/ReceiveInvitation/ReceiveInvitationRequest.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/ReceiveInvitation/ReceiveInvitationRequestValidator.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/ReceiveInvitation/ReceiveInvitationResponse.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/SendPing/SendPingRequest.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/SendPing/SendPingRequestValidator.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/SendPing/SendPingResponse.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Connection/_._ (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/FeatureAnnotations.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/GetCredential/GetCredentialRequest.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/GetCredential/GetCredentialRequestValidator.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/GetCredential/GetCredentialResponse.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/GetCredentials/GetCredentialsRequest.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/GetCredentials/GetCredentialsRequestValidator.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/GetCredentials/GetCredentialsResponse.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/RemoveCredential/RemoveCredentialRequest.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/RemoveCredential/RemoveCredentialRequestValidator.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Credential/RemoveCredential/RemoveCredentialResponse.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/CreateCredentialDefinition/CreateCredentialDefinitionRequest.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/CreateCredentialDefinition/CreateCredentialDefinitionRequestValidator.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/CreateCredentialDefinition/CreateCredentialDefinitionResponse.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/FeatureAnnotations.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/GetCredentialDefinition/GetCredentialDefinitionRequest.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/GetCredentialDefinition/GetCredentialDefinitionRequestValidator.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/GetCredentialDefinition/GetCredentialDefinitionResponse.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/GetCredentialDefinitions/GetCredentialDefinitionsRequest.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/GetCredentialDefinitions/GetCredentialDefinitionsRequestValidator.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/CredentialDefinition/GetCredentialDefinitions/GetCredentialDefinitionsResponse.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Infrastructure/InternalsVisibleToClientAndServer.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Introduction/_._ (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/IssueCredential/FeatureAnnotations.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/IssueCredential/OfferCredential/OfferCredentialRequest.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/IssueCredential/OfferCredential/OfferCredentialRequestValidator.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/IssueCredential/OfferCredential/OfferCredentialResponse.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Ledger/_._ (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/AcceptProofRequest/AcceptProofRequestRequest.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/AcceptProofRequest/AcceptProofRequestRequestValidator.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/AcceptProofRequest/AcceptProofRequestResponse.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/CreateProof/CreateProofRequestRequest.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/CreateProof/CreateProofRequestRequestValidator.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/CreateProof/CreateProofRequestResponse.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/FeatureAnnotations.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetCredentialsForProof/GetCredentialsForProofRequest.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetCredentialsForProof/GetCredentialsForProofRequestValidator.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetCredentialsForProof/GetCredentialsForProofResponse.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetProof/GetProofRequest.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetProof/GetProofRequestValidator.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetProof/GetProofResponse.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetProofs/GetProofsRequest.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetProofs/GetProofsRequestValidator.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/PresentProof/GetProofs/GetProofsResponse.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Revocation/_._ (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/CreateSchema/CreateSchemaRequest.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/CreateSchema/CreateSchemaRequestValidator.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/CreateSchema/CreateSchemaResponse.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/FeatureAnnotations.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/GetSchema/GetSchemaRequest.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/GetSchema/GetSchemaRequestValidator.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/GetSchema/GetSchemaResponse.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/GetSchemas/GetSchemasRequest.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/GetSchemas/GetSchemasRequestValidator.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Schema/GetSchemas/GetSchemasResponse.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/TrustPing/_._ (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Wallet/FeatureAnnotations.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Wallet/GetWallet/GetWalletRequest.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Wallet/GetWallet/GetWalletRequestValidator.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Wallet/GetWallet/GetWalletResponse.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Wallet/ResetWallet/ResetWalletRequest.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Wallet/ResetWallet/ResetWalletRequestValidator.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Features/Wallet/ResetWallet/ResetWalletResponse.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore.Contracts/Hyperledger.Aries.AspNetCore.Contracts.csproj (89%) create mode 100644 legacy/src/Hyperledger.Aries.AspNetCore.Contracts/buildTransitive/Legacy.Deprecated.targets rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/.editorconfig (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/AgentMiddleware.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Extensions/ApplicationBuilderExtensions.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Extensions/AriesOpenApiOptions.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Extensions/MvcBuilderExtensions.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/Base/BaseEndpoint.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/Base/BaseError.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/Base/BaseException.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/BasicMessage/SendMessage/SendMessageEndpoint.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/BasicMessage/SendMessage/SendMessageHandler.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/Connection/AcceptInvitation/AcceptInvitationEndpoint.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/Connection/AcceptInvitation/AcceptInvitationHandler.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/Connection/CreateInvitation/CreateInvitationEndpoint.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/Connection/CreateInvitation/CreateInvitationHandler.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/Connection/DeleteConnection/DeleteConnectionEndpoint.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/Connection/DeleteConnection/DeleteConnectionHandler.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/Connection/GetConnection/GetConnectionEndpoint.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/Connection/GetConnection/GetConnectionHandler.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/Connection/GetConnections/GetConnectionsEndpoint.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/Connection/GetConnections/GetConnectionsHandler.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/Connection/ReceiveInvitation/ReceiveInvitationEndpoint.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/Connection/ReceiveInvitation/ReceiveInvitationHandler.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/Connection/SendPing/SendPingEndpoint.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/Connection/SendPing/SendPingHandler.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/Credential/GetCredential/GetCredentialEndpoint.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/Credential/GetCredential/GetCredentialHandler.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/Credential/GetCredentials/GetCredentialsEndpoint.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/Credential/GetCredentials/GetCredentialsHandler.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/Credential/RemoveCredential/RemoveCredentialEndpoint.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/Credential/RemoveCredential/RemoveCredentialHandler.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/CredentialDefinition/CreateCredentialDefinition/CreateCredentialDefinitionEndpoint.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/CredentialDefinition/CreateCredentialDefinition/CreateCredentialDefinitionHandler.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/CredentialDefinition/GetCredentialDefinition/GetCredentialDefinitionEndpoint.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/CredentialDefinition/GetCredentialDefinition/GetCredentialDefinitionHandler.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/CredentialDefinition/GetCredentialDefinitions/GetCredentialDefinitionsEndpoint.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/CredentialDefinition/GetCredentialDefinitions/GetCredentialDefinitionsHandler.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/Introduction/_._ (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/IssueCredential/OfferCredential/OfferCredentialEndpoint.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/IssueCredential/OfferCredential/OfferCredentialHandler.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/Ledger/_._ (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/PresentProof/AcceptProofRequest/AcceptProofRequestEndpoint.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/PresentProof/AcceptProofRequest/AcceptProofRequestHandler.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/PresentProof/CreateProofRequest/CreateProofRequestEndpoint.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/PresentProof/CreateProofRequest/CreateProofRequestsHandler.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/PresentProof/GetCredentialsForProof/GetCredentialsForProofEndpoint.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/PresentProof/GetCredentialsForProof/GetCredentialsForProofHandler.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/PresentProof/GetProof/GetProofEndpoint.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/PresentProof/GetProof/GetProofHandler.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/PresentProof/GetProofs/GetProofsEndpoint.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/PresentProof/GetProofs/GetProofsHandler.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/Revocation/_._ (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/Schema/CreateSchema/CreateSchemaEndpoint.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/Schema/CreateSchema/CreateSchemaHandler.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/Schema/GetSchema/GetSchemaEndpoint.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/Schema/GetSchema/GetSchemaHandler.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/Schema/GetSchemas/GetSchemasEndpoint.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/Schema/GetSchemas/GetSchemasHandler.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/TrustPing/_._ (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/Wallet/GetWallet/GetWalletEndpoint.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/Wallet/GetWallet/GetWalletHandler.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/Wallet/ResetWallet/ResetWalletEndpoint.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Features/Wallet/ResetWallet/ResetWalletHandler.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/Hyperledger.Aries.AspNetCore.csproj (92%) rename {src => legacy/src}/Hyperledger.Aries.AspNetCore/TailsMiddleware.cs (100%) create mode 100644 legacy/src/Hyperledger.Aries.AspNetCore/buildTransitive/Legacy.Deprecated.targets rename {src => legacy/src}/Hyperledger.Aries.Payments.SovrinToken/AgentBuilderExtensions.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.Payments.SovrinToken/AnyAgentMessage.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.Payments.SovrinToken/GlobalSuppressions.cs (98%) rename {src => legacy/src}/Hyperledger.Aries.Payments.SovrinToken/Hyperledger.Aries.Payments.SovrinToken.csproj (97%) rename {src => legacy/src}/Hyperledger.Aries.Payments.SovrinToken/PaymentUtils.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.Payments.SovrinToken/PaymentsAgentMiddleware.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.Payments.SovrinToken/SovrinPaymentService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.Payments.SovrinToken/SovrinTokenConfigurationService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.Payments.SovrinToken/TokenConfiguration.cs (97%) rename {src => legacy/src}/Hyperledger.Aries.Routing.Edge/AriesFrameworkBuilderExtensions.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.Routing.Edge/EdgeClientService.Backup.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.Routing.Edge/EdgeClientService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.Routing.Edge/EdgeConnectionService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.Routing.Edge/EdgeProvisioningService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.Routing.Edge/Hyperledger.Aries.Routing.Edge.csproj (85%) rename {src => legacy/src}/Hyperledger.Aries.Routing.Edge/IEdgeClientService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.Routing.Edge/IEdgeProvisioningService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.Routing.Mediator/AriesFrameworkBuilderExtensions.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.Routing.Mediator/DefaultRoutingStore.cs (99%) rename {src => legacy/src}/Hyperledger.Aries.Routing.Mediator/Handlers/MediatorForwardHandler.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.Routing.Mediator/Handlers/RetrieveBackupHandler.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.Routing.Mediator/Handlers/RoutingInboxHandler.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.Routing.Mediator/Handlers/StoreBackupHandler.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.Routing.Mediator/Hyperledger.Aries.Routing.Mediator.csproj (79%) rename {src => legacy/src}/Hyperledger.Aries.Routing.Mediator/IRoutingStore.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.Routing.Mediator/MediatorAgent.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.Routing.Mediator/MediatorDiscoveryMiddleware.cs (97%) rename {src => legacy/src}/Hyperledger.Aries.Routing.Mediator/MediatorProvisioningService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.Routing.Mediator/Records/DeviceInfoRecord.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.Routing.Mediator/Records/InboxItemRecord.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.Routing.Mediator/Records/InboxRecord.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.Routing.Mediator/Records/RouteRecord.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.Routing.Mediator/Storage/DefaultStorageService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.Routing.Mediator/Storage/IStorageService.cs (100%) create mode 100644 legacy/src/Hyperledger.Aries.Routing.Mediator/buildTransitive/Legacy.Deprecated.targets rename {src => legacy/src}/Hyperledger.Aries.Routing/AddDeviceInfoMessage.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.Routing/AddRouteMessage.cs (98%) rename {src => legacy/src}/Hyperledger.Aries.Routing/AgentPublicConfiguration.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.Routing/BackupTypeNames.cs (98%) rename {src => legacy/src}/Hyperledger.Aries.Routing/CreateInboxMessage.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.Routing/CreateInboxResponseMessage.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.Routing/DeleteInboxItemsMessage.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.Routing/GetInboxItemsMessage.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.Routing/GetInboxItemsResponseMessage.cs (98%) rename {src => legacy/src}/Hyperledger.Aries.Routing/Hyperledger.Aries.Routing.csproj (83%) rename {src => legacy/src}/Hyperledger.Aries.Routing/InboxItemEvent.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.Routing/InboxItemMessage.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.Routing/ListBackupsAgentMessage.cs (96%) rename {src => legacy/src}/Hyperledger.Aries.Routing/ListBackupsResponseAgentMessage.cs (96%) rename {src => legacy/src}/Hyperledger.Aries.Routing/RestoreInboxMessage.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.Routing/RetrieveBackupAgentMessage.cs (96%) rename {src => legacy/src}/Hyperledger.Aries.Routing/RetrieveBackupResponseAgentMessage.cs (96%) rename {src => legacy/src}/Hyperledger.Aries.Routing/RoutingTypeNames.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.Routing/StoreBackupAgentMessage.cs (96%) rename {src => legacy/src}/Hyperledger.Aries.Routing/StoreBackupResponseAgentMessage.cs (96%) rename {src => legacy/src}/Hyperledger.Aries.Routing/UpsertDeviceInfoMessage.cs (100%) rename {src => legacy/src}/Hyperledger.Aries.Routing/Utils.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Agents/Abstractions/IAgent.cs (96%) rename {src => legacy/src}/Hyperledger.Aries/Agents/Abstractions/IAgentContext.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Agents/Abstractions/IAgentMiddleware.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Agents/Abstractions/IAgentProvider.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Agents/Abstractions/IMessageHandler.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Agents/AgentBase.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Agents/AgentContext.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Agents/Converters/AgentEndpointJsonConverter.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Agents/Converters/AgentMessageReader.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Agents/Converters/AgentMessageWriter.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Agents/DefaultAgent.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Agents/DefaultAgentContext.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Agents/DefaultAgentProvider.cs (97%) rename {src => legacy/src}/Hyperledger.Aries/Agents/Extensions/AgentFrameworkBuilderExtensions.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Agents/Extensions/AgentsExtensions.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Agents/Extensions/ServiceCollectionExtensions.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Agents/MessageHandlerBase.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Agents/MessageType.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Agents/MessageTypes.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Agents/MessageTypesHttps.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Agents/Models/AgentEndpoint.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Agents/Models/AgentMessage.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Agents/Models/AgentOwner.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Agents/Models/MessageContext.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Agents/Models/PackedMessageContext.cs (97%) rename {src => legacy/src}/Hyperledger.Aries/Agents/Models/UnpackedMessageContext.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Agents/Transport/DefaultMessageService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Agents/Transport/HttpMessageDispatcher.cs (97%) rename {src => legacy/src}/Hyperledger.Aries/Agents/Transport/IMessageDispatcher.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Agents/Transport/IMessageService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Agents/Transport/MessageServiceExtensions.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Common/AcknowledgeMessage.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Common/AcknowledgementStatusConstants.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Common/AgentFrameworkException.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Common/ErrorCode.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Common/EventAggregator.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Common/FormattingExtensions.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Common/IEventAggregator.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Common/LoggingEvents.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Common/MediaTypes.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Common/ServiceMessageProcessingEvent.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Configuration/AgentOptions.cs (96%) rename {src => legacy/src}/Hyperledger.Aries/Configuration/AriesFrameworkBuilder.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Configuration/DefaultProvisioningHostedService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Configuration/DefaultProvisioningService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Configuration/IProvisioningService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Configuration/PoolConfigurationService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Configuration/ProvisioningRecord.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Configuration/ServiceCollectionExtensions.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Configuration/TxnAuthorAcceptanceService.cs (99%) rename {src => legacy/src}/Hyperledger.Aries/Decorators/Attachments/AttachDecorator.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Decorators/Attachments/AttachExtensions.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Decorators/Attachments/Attachment.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Decorators/Attachments/AttachmentContent.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Decorators/Attachments/AttachmentContentExtensions.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Decorators/Attachments/JsonWebSignature.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Decorators/DecoratorExtensions.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Decorators/Decorators.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Decorators/Payments/PaymentReceiptDecorator.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Decorators/Payments/PaymentRequestDecorator.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Decorators/PleaseAck/OnValues.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Decorators/PleaseAck/PleaseAckDecorator.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Decorators/Service/ServiceDecorator.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Decorators/Service/ServiceDecoratorExtensions.cs (97%) rename {src => legacy/src}/Hyperledger.Aries/Decorators/Signature/SignatureDecorator.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Decorators/Signature/SignatureUtils.cs (99%) rename {src => legacy/src}/Hyperledger.Aries/Decorators/Threading/ThreadDecorator.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Decorators/Threading/ThreadDecoratorExtensions.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Decorators/Transport/TransportDecorator.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Decorators/Transport/TransportDecoratorExtensions.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/BasicMessage/BasicMessage.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/BasicMessage/BasicMessageRecord.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/BasicMessage/DefaultBasicMessageHandler.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/BasicMessage/DefaultBasicMessageService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/BasicMessage/IBasicMessageService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/Discovery/DefaultDiscoveryHandler.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/Discovery/DefaultDiscoveryService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/Discovery/DiscoveryDiscloseMessage.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/Discovery/DiscoveryQueryMessage.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/Discovery/IDiscoveryService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/Handshakes/Common/Connection.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/Handshakes/Common/ConnectionAlias.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/Handshakes/Common/ConnectionRecord.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/Handshakes/Common/Dids/DidCommServiceEndpoint.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/Handshakes/Common/Dids/DidDoc.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/Handshakes/Common/Dids/DidDocExtensions.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/Handshakes/Common/Dids/DidDocKey.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/Handshakes/Common/Dids/DidDocServiceEndpointTypes.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/Handshakes/Common/Dids/DidDocServiceEndpointsConverter.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/Handshakes/Common/Dids/IDidDocServiceEndpoint.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/Handshakes/Common/Dids/IndyAgentDidDocService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/Handshakes/Connection/DefaultConnectionHandler.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/Handshakes/Connection/DefaultConnectionService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/Handshakes/Connection/Extensions/ConnectionServiceExtensions.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/Handshakes/Connection/IConnectionService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/Handshakes/Connection/Models/ConnectionAcknowledgeMessage.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/Handshakes/Connection/Models/ConnectionInvitationMessage.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/Handshakes/Connection/Models/ConnectionRequestMessage.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/Handshakes/Connection/Models/ConnectionResponseMessage.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/Handshakes/Connection/Models/InviteConfiguration.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/Handshakes/DidExchange/DefaultDidExchangeHandler.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/Handshakes/DidExchange/DefaultDidExchangeService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/Handshakes/DidExchange/IDidExchangeService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/Handshakes/DidExchange/Models/DidExchangeCompleteMessage.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/Handshakes/DidExchange/Models/DidExchangeProblemReportMessage.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/Handshakes/DidExchange/Models/DidExchangeRequestMessage.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/Handshakes/DidExchange/Models/DidExchangeResponseMessage.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/Handshakes/HandshakeConstants.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/Handshakes/HandshakeProtocol.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/IssueCredential/Abstractions/ICredentialService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/IssueCredential/Abstractions/ISchemaService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/IssueCredential/Abstractions/ITailsService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/IssueCredential/CredentialServiceExtensions.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/IssueCredential/DefaultCredentialHandler.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/IssueCredential/DefaultCredentialService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/IssueCredential/DefaultSchemaService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/IssueCredential/DefaultTailsService.cs (99%) rename {src => legacy/src}/Hyperledger.Aries/Features/IssueCredential/Models/Credential.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/IssueCredential/Models/CredentialDefinitionConfiguration.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/IssueCredential/Models/CredentialInfo.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/IssueCredential/Models/CredentialMimeTypes.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/IssueCredential/Models/CredentialPreviewAttribute.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/IssueCredential/Models/CredentialPreviewAttributeConverter.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/IssueCredential/Models/Messages/CredentialAcknowledgeMessage.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/IssueCredential/Models/Messages/CredentialIssueMessage.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/IssueCredential/Models/Messages/CredentialOfferMessage.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/IssueCredential/Models/Messages/CredentialPreviewMessage.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/IssueCredential/Models/Messages/CredentialProposalMessage.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/IssueCredential/Models/Messages/CredentialRequestMessage.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/IssueCredential/Models/OfferConfiguration.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/IssueCredential/Records/CredentialRecord.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/IssueCredential/Records/CredentialState.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/IssueCredential/Records/CredentialTrigger.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/IssueCredential/Records/DefinitionRecord.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/IssueCredential/Records/RevocationRegistryRecord.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/IssueCredential/Records/SchemaRecord.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/OutOfBand/DefaultOutOfBandHandler.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/OutOfBand/DefaultOutOfBandService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/OutOfBand/HandshakeReuseAcceptedMessage.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/OutOfBand/HandshakeReuseMessage.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/OutOfBand/IOutOfBandService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/OutOfBand/InvitationMessage.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/OutOfBand/InvitationMessageExtensions.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/PresentProof/DefaultProofHandler.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/PresentProof/DefaultProofService.cs (97%) rename {src => legacy/src}/Hyperledger.Aries/Features/PresentProof/IProofService.cs (98%) rename {src => legacy/src}/Hyperledger.Aries/Features/PresentProof/Messages/PresentationAcknowledgeMessage.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/PresentProof/Messages/PresentationMessage.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/PresentProof/Messages/PresentationPreviewMessage.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/PresentProof/Messages/ProposePresentationMessage.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/PresentProof/Messages/RequestPresentationMessage.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/PresentProof/Models/AttributeFilterConverter.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/PresentProof/Models/PartialProof.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/PresentProof/Models/ProofAttribute.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/PresentProof/Models/ProofAttributeInfo.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/PresentProof/Models/ProofIdentifier.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/PresentProof/Models/ProofPredicateInfo.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/PresentProof/Models/ProofProposal.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/PresentProof/Models/ProofRequest.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/PresentProof/Models/ProofRequestConfiguration.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/PresentProof/Models/ProofRequestParameters.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/PresentProof/Models/RequestedAttribute.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/PresentProof/Models/RequestedCredentials.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/PresentProof/Models/RequestedProof.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/PresentProof/Models/RevocationInterval.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/PresentProof/ProofRecord.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/PresentProof/ProofServiceExtensions.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/ProblemReport/ProblemImpact.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/ProblemReport/ProblemReportMessage.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/ProblemReport/RetryParty.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/RevocationNotification/DefaultRevocationNotificationHandler.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/RevocationNotification/DefaultRevocationNotificationService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/RevocationNotification/IRevocationNotificationService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/RevocationNotification/RevocationNotificationAcknowledgeMessage.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/RevocationNotification/RevocationNotificationMessage.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/Routing/DefaultForwardHandler.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/Routing/ForwardMessage.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/TrustPing/DefaultTrustPingHandler.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/TrustPing/TrustPingMessage.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Features/TrustPing/TrustPingResponseMessage.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Hyperledger.Aries.csproj (95%) rename {src => legacy/src}/Hyperledger.Aries/IsExternalInit.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Ledger/Abstractions/ILedgerService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Ledger/Abstractions/ILedgerSigningService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Ledger/Abstractions/IPoolService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Ledger/DefaultLedgerService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Ledger/DefaultLedgerSigningService.cs (97%) rename {src => legacy/src}/Hyperledger.Aries/Ledger/DefaultPoolService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Ledger/Models/AuthorizationConstraint.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Ledger/Models/AuthorizationRule.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Ledger/Models/ConstraintMetadata.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Ledger/Models/CredDefId.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Ledger/Models/IndyAml.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Ledger/Models/IndyTaa.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Ledger/Models/IndyTaaAcceptance.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Ledger/Models/ParseRegistryResponseResult.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Ledger/Models/ParseResponseResult.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Ledger/Models/PoolAwaitable.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Ledger/Models/SchemaId.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Ledger/Models/ServiceEndpointResult.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Ledger/Models/TransactionActions.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Ledger/Models/TransactionTypes.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Ledger/V2/DefaultLedgerServiceV2.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Ledger/V2/DefaultPoolServiceV2.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Ledger/V2/ResponseParser.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Payments/DefaultPaymentService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Payments/IPaymentService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Payments/Models/AddressOptions.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Payments/Models/IndyPaymentInputSource.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Payments/Models/IndyPaymentOutputSource.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Payments/Models/PaymentAmount.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Payments/Models/PaymentDetails.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Payments/Models/PaymentItem.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Payments/Models/PaymentMethod.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Payments/Models/PaymentMethodData.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Payments/Models/TransactionCost.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Payments/PaymentAddressRecord.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Payments/PaymentRecord.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Properties/AssemblyInfo.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Signatures/DefaultSigningService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Signatures/ISigningService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Storage/DefaultWalletRecordService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Storage/DefaultWalletService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Storage/IWalletRecordService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Storage/IWalletService.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Storage/Models/RecordTagAttribute.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Storage/Models/WalletConfiguration.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Storage/Models/WalletCredentials.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Storage/Models/WalletStorageConfiguration.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Storage/Records/RecordBase.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Storage/Records/Search/SearchItem.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Storage/Records/Search/SearchOptions.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Storage/Records/Search/SearchQuery.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Storage/Records/Search/SearchResult.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Utils/Base64UrlEncoder.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Utils/CredentialUtils.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Utils/CryptoUtils.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Utils/DidUtils.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Utils/EnvironmentUtils.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Utils/MessageUtils.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Utils/ResilienceUtils.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Utils/TagConstants.cs (100%) rename {src => legacy/src}/Hyperledger.Aries/Utils/UriUtils.cs (100%) rename {src => legacy/test}/Hyperledger.Aries.TestHarness/AgentScenarios.cs (100%) rename {src => legacy/test}/Hyperledger.Aries.TestHarness/Hyperledger.Aries.TestHarness.csproj (100%) rename {src => legacy/test}/Hyperledger.Aries.TestHarness/Mock/InProcAgent.cs (100%) rename {src => legacy/test}/Hyperledger.Aries.TestHarness/Mock/InProcMessageHandler.cs (97%) rename {src => legacy/test}/Hyperledger.Aries.TestHarness/Mock/MockAgent.cs (100%) rename {src => legacy/test}/Hyperledger.Aries.TestHarness/Mock/MockAgentHttpHandler.cs (100%) rename {src => legacy/test}/Hyperledger.Aries.TestHarness/Mock/MockAgentMessageProcessor.cs (100%) rename {src => legacy/test}/Hyperledger.Aries.TestHarness/Mock/MockAgentRouter.cs (100%) rename {src => legacy/test}/Hyperledger.Aries.TestHarness/Mock/MockUtils.cs (100%) rename {src => legacy/test}/Hyperledger.Aries.TestHarness/Scenarios.cs (100%) rename {src => legacy/test}/Hyperledger.Aries.TestHarness/TestConstants.cs (100%) rename {src => legacy/test}/Hyperledger.Aries.TestHarness/TestSingleWallet.cs (100%) rename {src => legacy/test}/Hyperledger.Aries.TestHarness/Utils/AgentUtils.cs (100%) rename {src => legacy/test}/Hyperledger.Aries.TestHarness/Utils/PoolUtils.cs (100%) rename {src => legacy/test}/Hyperledger.Aries.TestHarness/Utils/ProofServiceUtils.cs (100%) rename {src => legacy/test}/Hyperledger.Aries.TestHarness/Utils/ServiceUtils.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/ConfigurationTests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/ConnectionRecordVersioningTests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/ConverterTests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/Decorators/AttachmentContentTests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/Decorators/AttachmentDecoratorTests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/Decorators/SignatorDecoratorTests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/Decorators/ThreadingDecoratorTests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/Decorators/TransportDecoratorTests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/DidCommServiceTests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/DidDocTests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/DidUtilsTests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/EventAggregatorTests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/Extensions/ObjectExtensions.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/GlobalSuppressions.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/Hyperledger.Aries.Tests.csproj (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/InProcAgentTests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/Integration/ConnectionTests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/Integration/CredentialTests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/Integration/DidExchangeTests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/Integration/DiscoveryTests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/Integration/MessageTypesTests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/Integration/OutOfBandTests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/Integration/ProofTests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/LedgerServiceTests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/MessageServiceTests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/MessageUtilsTests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/MockExtendedConnectionService.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/MockMessageHandler.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/Payments/PaymentTests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/Payments/ProtocolTests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/Payments/TransferTests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/PoolServiceTests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/Protocols/ConnectionTests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/Protocols/CredentialTests.cs (97%) rename {test => legacy/test}/Hyperledger.Aries.Tests/Protocols/CredentialTransientTests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/Protocols/CredentialUtilsTests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/Protocols/CredentialV1Tests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/Protocols/DidExchangeTests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/Protocols/DiscoveryTests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/Protocols/OutOfBandTests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/Protocols/ProofTests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/Protocols/RevocationTests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/ProvisioningServiceTests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/RecordTests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/Routing/BackupTests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/Routing/RoutingInboxHandlerTests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/Routing/RoutingTests.cs (98%) rename {test => legacy/test}/Hyperledger.Aries.Tests/Routing/WalletBackupTests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/RuntimeTests.cs (97%) rename {test => legacy/test}/Hyperledger.Aries.Tests/SchemaServiceTests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/SearchTests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/StateMachineTests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/Storage/Models/WalletStorageConfigurationTest.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/WalletTests.cs (100%) rename {test => legacy/test}/Hyperledger.Aries.Tests/pool_genesis.txn (100%) delete mode 100644 scripts/start-node-pool.sh delete mode 100644 scripts/start-web-agents.sh delete mode 100644 scripts/stop-node-pool.sh delete mode 100755 scripts/tester.sh delete mode 100644 scripts/web-agents-ngrok-config.yaml create mode 100644 src/WalletFramework.Core/Events/EventAggregator.cs create mode 100644 src/WalletFramework.Core/Events/IEventAggregator.cs create mode 100644 src/WalletFramework.Core/Localization/LocaleJsonConverters.cs create mode 100644 src/WalletFramework.MdocVc/Display/MdocDisplay.cs rename src/WalletFramework.MdocVc/{ => Display}/MdocLogo.cs (88%) rename src/WalletFramework.MdocVc/{ => Display}/MdocName.cs (91%) create mode 100644 src/WalletFramework.MdocVc/Display/Serialization/MdocDisplaySerializationConstants.cs rename src/WalletFramework.MdocVc/{MdocDisplay.cs => Display/Serialization/MdocDisplaySerializer.cs} (73%) create mode 100644 src/WalletFramework.MdocVc/MdocCredential.cs create mode 100644 src/WalletFramework.MdocVc/MdocCredentialExtensions.cs delete mode 100644 src/WalletFramework.MdocVc/MdocRecord.cs create mode 100644 src/WalletFramework.MdocVc/Persistence/FindMdocCredentialsWithDocType.cs create mode 100644 src/WalletFramework.MdocVc/Persistence/MdocCredentialRecord.cs create mode 100644 src/WalletFramework.MdocVc/Persistence/MdocCredentialRecordConfiguration.cs create mode 100644 src/WalletFramework.MdocVc/Persistence/MdocCredentialRepository.cs create mode 100644 src/WalletFramework.MdocVc/Serialization/MdocCredentialSerializationConstants.cs create mode 100644 src/WalletFramework.MdocVc/Serialization/MdocCredentialSerializer.cs create mode 100644 src/WalletFramework.Oid4Vc/CredentialSet/CredentialDataSetExtensions.cs delete mode 100644 src/WalletFramework.Oid4Vc/CredentialSet/CredentialSetStorage.cs delete mode 100644 src/WalletFramework.Oid4Vc/CredentialSet/ICredentialSetStorage.cs create mode 100644 src/WalletFramework.Oid4Vc/CredentialSet/Models/CredentialDataSet.cs delete mode 100644 src/WalletFramework.Oid4Vc/CredentialSet/Models/CredentialSetRecord.cs create mode 100644 src/WalletFramework.Oid4Vc/CredentialSet/Persistence/CredentialDataSetRecord.cs create mode 100644 src/WalletFramework.Oid4Vc/CredentialSet/Persistence/CredentialDataSetRecordConfiguration.cs create mode 100644 src/WalletFramework.Oid4Vc/CredentialSet/Persistence/CredentialDataSetRepository.cs delete mode 100644 src/WalletFramework.Oid4Vc/Database/Migration/Abstraction/IMigrationStepsProvider.cs delete mode 100644 src/WalletFramework.Oid4Vc/Database/Migration/Abstraction/IRecordsMigrationService.cs delete mode 100644 src/WalletFramework.Oid4Vc/Database/Migration/Implementations/MigrationStepsProvider.cs delete mode 100644 src/WalletFramework.Oid4Vc/Database/Migration/Implementations/RecordsMigrationService.cs delete mode 100644 src/WalletFramework.Oid4Vc/Database/Migration/MigrationStep.cs delete mode 100644 src/WalletFramework.Oid4Vc/Oid4Vci/Abstractions/IMdocStorage.cs delete mode 100644 src/WalletFramework.Oid4Vc/Oid4Vci/AuthFlow/Abstractions/IAuthFlowSessionStorage.cs create mode 100644 src/WalletFramework.Oid4Vc/Oid4Vci/AuthFlow/AuthFlowSession.cs delete mode 100644 src/WalletFramework.Oid4Vc/Oid4Vci/AuthFlow/Implementations/AuthFlowSessionStorage.cs create mode 100644 src/WalletFramework.Oid4Vc/Oid4Vci/AuthFlow/Persistence/AuthFlowSessionRecord.cs create mode 100644 src/WalletFramework.Oid4Vc/Oid4Vci/AuthFlow/Persistence/AuthFlowSessionRecordConfiguration.cs create mode 100644 src/WalletFramework.Oid4Vc/Oid4Vci/AuthFlow/Persistence/AuthFlowSessionRepository.cs delete mode 100644 src/WalletFramework.Oid4Vc/Oid4Vci/AuthFlow/Records/AuthFlowSessionRecord.cs create mode 100644 src/WalletFramework.Oid4Vc/Oid4Vci/Implementations/MdocFun.cs delete mode 100644 src/WalletFramework.Oid4Vc/Oid4Vci/Implementations/MdocStorage.cs create mode 100644 src/WalletFramework.Oid4Vc/Oid4Vci/Implementations/SdJwtCredentialExtensions.cs delete mode 100644 src/WalletFramework.Oid4Vc/Oid4Vci/Implementations/SdJwtRecordExtensions.cs create mode 100644 src/WalletFramework.Oid4Vc/Oid4Vp/CompletedPresentation.cs delete mode 100644 src/WalletFramework.Oid4Vc/Oid4Vp/Models/OidPresentationRecord.cs delete mode 100644 src/WalletFramework.Oid4Vc/Oid4Vp/Models/PresentedCredential.cs delete mode 100644 src/WalletFramework.Oid4Vc/Oid4Vp/Models/v1/OidPresentationRecord.cs create mode 100644 src/WalletFramework.Oid4Vc/Oid4Vp/Persistence/CompletedPresentationRecord.cs create mode 100644 src/WalletFramework.Oid4Vc/Oid4Vp/Persistence/CompletedPresentationRecordConfiguration.cs create mode 100644 src/WalletFramework.Oid4Vc/Oid4Vp/Persistence/CompletedPresentationRepository.cs delete mode 100644 src/WalletFramework.Oid4Vc/Oid4Vp/Services/IOid4VpRecordService.cs delete mode 100644 src/WalletFramework.Oid4Vc/Oid4Vp/Services/Oid4VpRecordService.cs create mode 100644 src/WalletFramework.SdJwtVc/Persistence/FindSdJwtsBySetId.cs create mode 100644 src/WalletFramework.SdJwtVc/Persistence/SdJwtCredentialRecord.cs create mode 100644 src/WalletFramework.SdJwtVc/Persistence/SdJwtCredentialRecordConfiguration.cs create mode 100644 src/WalletFramework.SdJwtVc/Persistence/SdJwtCredentialRepository.cs create mode 100644 src/WalletFramework.SdJwtVc/SdJwtCredential.cs create mode 100644 src/WalletFramework.SdJwtVc/SdJwtCredentialExtensions.cs create mode 100644 src/WalletFramework.Storage.Unencrypted/DependencyInjection/ServiceCollectionExtensions.cs create mode 100644 src/WalletFramework.Storage.Unencrypted/Sqlite3Provider.cs create mode 100644 src/WalletFramework.Storage.Unencrypted/WalletFramework.Storage.Unencrypted.csproj create mode 100644 src/WalletFramework.Storage/Database/DatabaseCreator.cs create mode 100644 src/WalletFramework.Storage/Database/DependencyInjection/ServiceCollectionExtensions.cs create mode 100644 src/WalletFramework.Storage/Database/Errors/DatabaseError.cs create mode 100644 src/WalletFramework.Storage/Database/Exceptions/DatabaseCreationException.cs create mode 100644 src/WalletFramework.Storage/Database/Exceptions/DatabaseMigrationException.cs create mode 100644 src/WalletFramework.Storage/Database/IDatabaseCreator.cs create mode 100644 src/WalletFramework.Storage/Database/WalletDbContext.cs create mode 100644 src/WalletFramework.Storage/IDomainRepository.cs create mode 100644 src/WalletFramework.Storage/ISearchConfig.cs create mode 100644 src/WalletFramework.Storage/Providers/ISqliteProvider.cs create mode 100644 src/WalletFramework.Storage/Records/IRecordConfiguration.cs create mode 100644 src/WalletFramework.Storage/Records/IRecordsBuilder.cs create mode 100644 src/WalletFramework.Storage/Records/RecordBase.cs create mode 100644 src/WalletFramework.Storage/Records/RecordBaseConfiguration.cs create mode 100644 src/WalletFramework.Storage/Records/RecordsBuilder.cs create mode 100644 src/WalletFramework.Storage/Repositories/IRepository.cs create mode 100644 src/WalletFramework.Storage/Repositories/Repository.cs create mode 100644 src/WalletFramework.Storage/WalletFramework.Storage.csproj create mode 100644 src/WalletFramework.TestSamples/MdocSamples.cs create mode 100644 src/WalletFramework.TestSamples/WalletFramework.TestSamples.csproj create mode 100644 test/WalletFramework.MdocVc.Tests/MdocCredentialTests.cs delete mode 100644 test/WalletFramework.MdocVc.Tests/MdocRecordTests.cs delete mode 100644 test/WalletFramework.Oid4Vc.Tests/Oid4Vci/AuthFlow/AuthFlowSessionRecordTests.cs rename test/WalletFramework.Oid4Vc.Tests/Oid4Vp/Dcql/CredentialSets/{CredentialSetTests.cs => CredentialDataSetTests.cs} (99%) delete mode 100644 test/WalletFramework.Oid4Vc.Tests/Samples/MdocSamples.cs create mode 100644 test/WalletFramework.Storage.Tests/AuthFlowSessionRecordCrudTests.cs create mode 100644 test/WalletFramework.Storage.Tests/CompletedPresentationRecordCrudTests.cs create mode 100644 test/WalletFramework.Storage.Tests/CredentialDataSetRecordCrudTests.cs create mode 100644 test/WalletFramework.Storage.Tests/DatabaseCreationTests.cs create mode 100644 test/WalletFramework.Storage.Tests/MdocCredentialRecordCrudTests.cs create mode 100644 test/WalletFramework.Storage.Tests/SdJwtCredentialRecordCrudTests.cs create mode 100644 test/WalletFramework.Storage.Tests/TestDbSetup.cs create mode 100644 test/WalletFramework.Storage.Tests/TestModels/TestRecord.cs create mode 100644 test/WalletFramework.Storage.Tests/TestModels/TestRecordConfiguration.cs create mode 100644 test/WalletFramework.Storage.Tests/TestRecordCrudTests.cs create mode 100644 test/WalletFramework.Storage.Tests/Usings.cs create mode 100644 test/WalletFramework.Storage.Tests/WalletFramework.Storage.Tests.csproj diff --git a/Directory.Build.props b/Directory.Build.props index 87fc28c1..806d741b 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -21,7 +21,7 @@ false - netstandard2.1 + net8.0 @@ -41,8 +41,6 @@ 9.2.0 9.2.0 2.8.2 - 2.0.1 - 0.4.2-alpha 8.0.1 8.0.2 4.0.0 diff --git a/Directory.Build.targets b/Directory.Build.targets new file mode 100644 index 00000000..af5a0e72 --- /dev/null +++ b/Directory.Build.targets @@ -0,0 +1,11 @@ + + + + <_LegacyRefs Include="@(ProjectReference)" + Condition="$([System.Text.RegularExpressions.Regex]::IsMatch('%(ProjectReference.Identity)', '(?i)[/\\\\]legacy[/\\\\]'))" /> + + + + + diff --git a/MAINTAINERS.md b/MAINTAINERS.md index 21249d6e..671da971 100644 --- a/MAINTAINERS.md +++ b/MAINTAINERS.md @@ -7,4 +7,3 @@ | Christopher Hempel | [@CHempel-esatus](https://github.com/CHempel-esatus) | CHempel_esatus#6640 | | Kevin Dinh | [@Dindexx](https://github.com/Dindexx) | | | Johannes Türk | [@JoTiTu](https://github.com/JoTiTu) | | -| Ken Kosmowski | [@kenkosmowski](https://github.com/kenkosmowski) | | diff --git a/docker-compose.test.yaml b/docker-compose.test.yaml deleted file mode 100644 index b9164242..00000000 --- a/docker-compose.test.yaml +++ /dev/null @@ -1,28 +0,0 @@ -version: '3' -services: - indy-pool: - build: - context: . - dockerfile: docker/indy-pool.dockerfile - args: - pool_ip: 10.0.0.10 - networks: - agent_net: - ipv4_address: 10.0.0.10 - - test-agent: - build: - context: . - dockerfile: docker/test-agent.dockerfile - depends_on: - - "indy-pool" - networks: - agent_net: - ipv4_address: 10.0.0.14 - -networks: - agent_net: - driver: bridge - ipam: - config: - - subnet: 10.0.0.0/16 diff --git a/docker-compose.yaml b/docker-compose.yaml deleted file mode 100644 index c837bc1e..00000000 --- a/docker-compose.yaml +++ /dev/null @@ -1,56 +0,0 @@ -version: '3' -services: - indy-pool: - build: - context: . - dockerfile: docker/indy-pool.dockerfile - args: - pool_ip: 10.0.0.10 - ports: - - "9701-9709:9701-9709" - networks: - agent_net: - ipv4_address: 10.0.0.10 - - web-agent-1: - build: - context: . - dockerfile: docker/web-agent.dockerfile - environment: - - ASPNETCORE_URLS=http://10.0.0.11:7000 - - ASPNETCORE_ENVIRONMENT=Development - - ENDPOINT_HOST=${HOST1:-http://10.0.0.11:7000} - ports: - - "7000:7000" - depends_on: - - "indy-pool" - links: - - "indy-pool" - networks: - agent_net: - ipv4_address: 10.0.0.11 - - web-agent-2: - build: - context: . - dockerfile: docker/web-agent.dockerfile - environment: - - ASPNETCORE_URLS=http://10.0.0.12:8000 - - ASPNETCORE_ENVIRONMENT=Development - - ENDPOINT_HOST=${HOST2:-http://10.0.0.12:8000} - ports: - - "8000:8000" - depends_on: - - "indy-pool" - links: - - "indy-pool" - networks: - agent_net: - ipv4_address: 10.0.0.12 - -networks: - agent_net: - driver: bridge - ipam: - config: - - subnet: 10.0.0.0/16 \ No newline at end of file diff --git a/docker/commands.txt b/docker/commands.txt deleted file mode 100644 index 469a2313..00000000 --- a/docker/commands.txt +++ /dev/null @@ -1,8 +0,0 @@ -docker build -f indy-pool.dockerfile -t indy_pool . -docker run -itd -p 9701-9709:9701-9709 indy_pool - -Run tests in PowerShell -Get-ChildItem ".\test\" -recurse | where {$_.extension -eq ".csproj"} | % { dotnet test $_.FullName --verbosity normal } - -Run tests in Bash -ls test/**/*.csproj | xargs -L1 dotnet test --verbosity normal \ No newline at end of file diff --git a/docker/docker_pool_genesis.txn b/docker/docker_pool_genesis.txn deleted file mode 100644 index e7a450a5..00000000 --- a/docker/docker_pool_genesis.txn +++ /dev/null @@ -1,4 +0,0 @@ -{"reqSignature":{},"txn":{"data":{"data":{"alias":"Node1","blskey":"4N8aUNHSgjQVgkpm8nhNEfDf6txHznoYREg9kirmJrkivgL4oSEimFF6nsQ6M41QvhM2Z33nves5vfSn9n1UwNFJBYtWVnHYMATn76vLuL3zU88KyeAYcHfsih3He6UHcXDxcaecHVz6jhCYz1P2UZn2bDVruL5wXpehgBfBaLKm3Ba","blskey_pop":"RahHYiCvoNCtPTrVtP7nMC5eTYrsUA8WjXbdhNc8debh1agE9bGiJxWBXYNFbnJXoXhWFMvyqhqhRoq737YQemH5ik9oL7R4NTTCz2LEZhkgLJzB3QRQqJyBNyv7acbdHrAT8nQ9UkLbaVL9NBpnWXBTw4LEMePaSHEw66RzPNdAX1","client_ip":"10.0.0.10","client_port":9702,"node_ip":"10.0.0.10","node_port":9701,"services":["VALIDATOR"]},"dest":"Gw6pDLhcBcoQesN72qfotTgFa7cbuqZpkX3Xo6pLhPhv"},"metadata":{"from":"Th7MpTaRZVRYnPiabds81Y"},"type":"0"},"txnMetadata":{"seqNo":1,"txnId":"fea82e10e894419fe2bea7d96296a6d46f50f93f9eeda954ec461b2ed2950b62"},"ver":"1"} -{"reqSignature":{},"txn":{"data":{"data":{"alias":"Node2","blskey":"37rAPpXVoxzKhz7d9gkUe52XuXryuLXoM6P6LbWDB7LSbG62Lsb33sfG7zqS8TK1MXwuCHj1FKNzVpsnafmqLG1vXN88rt38mNFs9TENzm4QHdBzsvCuoBnPH7rpYYDo9DZNJePaDvRvqJKByCabubJz3XXKbEeshzpz4Ma5QYpJqjk","blskey_pop":"Qr658mWZ2YC8JXGXwMDQTzuZCWF7NK9EwxphGmcBvCh6ybUuLxbG65nsX4JvD4SPNtkJ2w9ug1yLTj6fgmuDg41TgECXjLCij3RMsV8CwewBVgVN67wsA45DFWvqvLtu4rjNnE9JbdFTc1Z4WCPA3Xan44K1HoHAq9EVeaRYs8zoF5","client_ip":"10.0.0.10","client_port":9704,"node_ip":"10.0.0.10","node_port":9703,"services":["VALIDATOR"]},"dest":"8ECVSk179mjsjKRLWiQtssMLgp6EPhWXtaYyStWPSGAb"},"metadata":{"from":"EbP4aYNeTHL6q385GuVpRV"},"type":"0"},"txnMetadata":{"seqNo":2,"txnId":"1ac8aece2a18ced660fef8694b61aac3af08ba875ce3026a160acbc3a3af35fc"},"ver":"1"} -{"reqSignature":{},"txn":{"data":{"data":{"alias":"Node3","blskey":"3WFpdbg7C5cnLYZwFZevJqhubkFALBfCBBok15GdrKMUhUjGsk3jV6QKj6MZgEubF7oqCafxNdkm7eswgA4sdKTRc82tLGzZBd6vNqU8dupzup6uYUf32KTHTPQbuUM8Yk4QFXjEf2Usu2TJcNkdgpyeUSX42u5LqdDDpNSWUK5deC5","blskey_pop":"QwDeb2CkNSx6r8QC8vGQK3GRv7Yndn84TGNijX8YXHPiagXajyfTjoR87rXUu4G4QLk2cF8NNyqWiYMus1623dELWwx57rLCFqGh7N4ZRbGDRP4fnVcaKg1BcUxQ866Ven4gw8y4N56S5HzxXNBZtLYmhGHvDtk6PFkFwCvxYrNYjh","client_ip":"10.0.0.10","client_port":9706,"node_ip":"10.0.0.10","node_port":9705,"services":["VALIDATOR"]},"dest":"DKVxG2fXXTU8yT5N7hGEbXB3dfdAnYv1JczDUHpmDxya"},"metadata":{"from":"4cU41vWW82ArfxJxHkzXPG"},"type":"0"},"txnMetadata":{"seqNo":3,"txnId":"7e9f355dffa78ed24668f0e0e369fd8c224076571c51e2ea8be5f26479edebe4"},"ver":"1"} -{"reqSignature":{},"txn":{"data":{"data":{"alias":"Node4","blskey":"2zN3bHM1m4rLz54MJHYSwvqzPchYp8jkHswveCLAEJVcX6Mm1wHQD1SkPYMzUDTZvWvhuE6VNAkK3KxVeEmsanSmvjVkReDeBEMxeDaayjcZjFGPydyey1qxBHmTvAnBKoPydvuTAqx5f7YNNRAdeLmUi99gERUU7TD8KfAa6MpQ9bw","blskey_pop":"RPLagxaR5xdimFzwmzYnz4ZhWtYQEj8iR5ZU53T2gitPCyCHQneUn2Huc4oeLd2B2HzkGnjAff4hWTJT6C7qHYB1Mv2wU5iHHGFWkhnTX9WsEAbunJCV2qcaXScKj4tTfvdDKfLiVuU2av6hbsMztirRze7LvYBkRHV3tGwyCptsrP","client_ip":"10.0.0.10","client_port":9708,"node_ip":"10.0.0.10","node_port":9707,"services":["VALIDATOR"]},"dest":"4PS3EDQ3dW1tci1Bp6543CfuuebjFrg36kLAUcskGfaA"},"metadata":{"from":"TWwCRQRZ2ZHMJFn9TzLp7W"},"type":"0"},"txnMetadata":{"seqNo":4,"txnId":"aa5e817d7cc626170eca175822029339a444eb0ee8f0bd20d3b0b76e566fb008"},"ver":"1"} diff --git a/docker/indy-pool.dockerfile b/docker/indy-pool.dockerfile deleted file mode 100644 index f4a1b657..00000000 --- a/docker/indy-pool.dockerfile +++ /dev/null @@ -1,128 +0,0 @@ -######################################################## -## Creates a pool of nodes that uses -## the payment plugins with plenum. -## -## run the following commands to build and start -## the pool. -## -## localhost -## docker build -f indy-pool.dockerfile -t indy_pool . -## docker run -itd -p 9701-9708:9701-9708 indy_pool -## -## specific IP address -## # replace 192.168.179.90 with your wifi IP address -## docker build --build-arg pool_ip=192.168.179.90 -f ci/indy-pool.dockerfile -t indy_pool . -## docker run -itd -p 192.168.179.90:9701-9708:9701-9708 indy_pool -## -## docker network -## docker network create --subnet 10.0.0.0/8 indy_pool_network -## docker build --build-arg pool_ip=10.0.0.2 -f ci/indy-pool.dockerfile -t indy_pool . -## docker run -d --ip="10.0.0.2" --net=indy_pool_network indy_pool -## -## 'docker ps' will show the container id -## -## To connect to the shell of the container you can use -## the following exec command replacing the -## with the id of the running container. -## -## docker exec -it /bin/bash -## -########################################################FROM ubuntu:16.04 -FROM ubuntu:16.04 - -ARG uid=1000 - -# Install environment -RUN apt-get update -y && apt-get install -y \ - git \ - wget \ - python3.5 \ - python3-pip \ - python-setuptools \ - python3-nacl \ - apt-transport-https \ - ca-certificates \ - supervisor - -RUN pip3 install -U \ - pip==9.0.3 \ - setuptools - -RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys CE7709D068DB5E88 -ARG indy_stream=stable -RUN echo "deb https://repo.sovrin.org/deb xenial $indy_stream" >> /etc/apt/sources.list - -RUN useradd -ms /bin/bash -u $uid indy - -ARG indy_plenum_ver=1.12.0 -ARG indy_node_ver=1.12.0 -ARG python3_indy_crypto_ver=0.4.5 -ARG indy_crypto_ver=0.4.5 -ARG python3_pyzmq_ver=18.1.0 -ARG sovtoken_ver=1.0.5 -ARG sovtokenfees_ver=1.0.5 - -RUN apt-get update -y && apt-get install -y \ - python3-pyzmq=${python3_pyzmq_ver} \ - indy-plenum=${indy_plenum_ver} \ - indy-node=${indy_node_ver} \ - python3-indy-crypto=${python3_indy_crypto_ver} \ - libindy-crypto=${indy_crypto_ver} \ - sovtoken=${sovtoken_ver} \ - sovtokenfees=${sovtokenfees_ver} \ - vim - -RUN echo "[supervisord]\n\ -logfile = /tmp/supervisord.log\n\ -logfile_maxbytes = 50MB\n\ -logfile_backups=10\n\ -logLevel = error\n\ -pidfile = /tmp/supervisord.pid\n\ -nodaemon = true\n\ -minfds = 1024\n\ -minprocs = 200\n\ -umask = 022\n\ -user = indy\n\ -identifier = supervisor\n\ -directory = /tmp\n\ -nocleanup = true\n\ -childlogdir = /tmp\n\ -strip_ansi = false\n\ -\n\ -[program:node1]\n\ -command=start_indy_node Node1 0.0.0.0 9701 0.0.0.0 9702\n\ -directory=/home/indy\n\ -stdout_logfile=/tmp/node1.log\n\ -stderr_logfile=/tmp/node1.log\n\ -\n\ -[program:node2]\n\ -command=start_indy_node Node2 0.0.0.0 9703 0.0.0.0 9704\n\ -directory=/home/indy\n\ -stdout_logfile=/tmp/node2.log\n\ -stderr_logfile=/tmp/node2.log\n\ -\n\ -[program:node3]\n\ -command=start_indy_node Node3 0.0.0.0 9705 0.0.0.0 9706\n\ -directory=/home/indy\n\ -stdout_logfile=/tmp/node3.log\n\ -stderr_logfile=/tmp/node3.log\n\ -\n\ -[program:node4]\n\ -command=start_indy_node Node4 0.0.0.0 9707 0.0.0.0 9708\n\ -directory=/home/indy\n\ -stdout_logfile=/tmp/node4.log\n\ -stderr_logfile=/tmp/node4.log\n"\ ->> /etc/supervisord.conf - -USER indy - -RUN awk '{if (index($1, "NETWORK_NAME") != 0) {print("NETWORK_NAME = \"sandbox\"")} else print($0)}' /etc/indy/indy_config.py> /tmp/indy_config.py -RUN mv /tmp/indy_config.py /etc/indy/indy_config.py - -ARG pool_ip=127.0.0.1 - -RUN generate_indy_pool_transactions --nodes 4 --clients 5 --nodeNum 1 2 3 4 --ips="$pool_ip,$pool_ip,$pool_ip,$pool_ip" - -EXPOSE 9701 9702 9703 9704 9705 9706 9707 9708 - -CMD ["/usr/bin/supervisord"] diff --git a/docker/test-agent.dockerfile b/docker/test-agent.dockerfile deleted file mode 100644 index 89c8ce21..00000000 --- a/docker/test-agent.dockerfile +++ /dev/null @@ -1,11 +0,0 @@ -FROM streetcred/dotnet-indy:1.14.2 -WORKDIR /app - -COPY . . -RUN dotnet restore "test/Hyperledger.Aries.Tests/Hyperledger.Aries.Tests.csproj" - -COPY docker/docker_pool_genesis.txn test/Hyperledger.Aries.Tests/pool_genesis.txn - -WORKDIR /app/test/Hyperledger.Aries.Tests - -ENTRYPOINT ["dotnet", "test", "--verbosity", "normal"] \ No newline at end of file diff --git a/docker/web-agent.dockerfile b/docker/web-agent.dockerfile deleted file mode 100644 index 448041bd..00000000 --- a/docker/web-agent.dockerfile +++ /dev/null @@ -1,23 +0,0 @@ -FROM streetcred/dotnet-indy:1.14.2 AS base -WORKDIR /app - -FROM streetcred/dotnet-indy:1.14.2 AS build -WORKDIR /src -COPY [".", "."] - -WORKDIR /src/samples/aspnetcore -RUN dotnet restore "WebAgent.csproj" \ - -s "https://api.nuget.org/v3/index.json" - -COPY ["samples/aspnetcore/", "."] -COPY ["docker/docker_pool_genesis.txn", "./pool_genesis.txn"] -RUN dotnet build "WebAgent.csproj" -c Release -o /app - -FROM build AS publish -RUN dotnet publish "WebAgent.csproj" -c Release -o /app - -FROM base AS final -WORKDIR /app -COPY --from=publish /app . - -ENTRYPOINT ["dotnet", "WebAgent.dll"] \ No newline at end of file diff --git a/docs/Makefile b/docs/Makefile deleted file mode 100644 index 298ea9e2..00000000 --- a/docs/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -# Minimal makefile for Sphinx documentation -# - -# You can set these variables from the command line. -SPHINXOPTS = -SPHINXBUILD = sphinx-build -SOURCEDIR = . -BUILDDIR = _build - -# Put it first so that "make" without argument is like "make help". -help: - @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) - -.PHONY: help Makefile - -# Catch-all target: route all unknown targets to Sphinx using the new -# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). -%: Makefile - @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) \ No newline at end of file diff --git a/docs/_static/custom.css b/docs/_static/custom.css deleted file mode 100644 index 90ebe8fe..00000000 --- a/docs/_static/custom.css +++ /dev/null @@ -1,13 +0,0 @@ -.toggle .header { - display: block; - clear: both; - cursor: pointer; -} - -.toggle .header:after { - content: " â–¶"; -} - -.toggle .header.open:after { - content: " â–¼"; -} \ No newline at end of file diff --git a/docs/_static/images/choose_template.png b/docs/_static/images/choose_template.png deleted file mode 100644 index 8b7c75f9342996fc7b42fb24ac53c5e0b69653a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 352613 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ÄM$<(C^5tUZR#FOmmzpPz5SK&84ccCFNn3;CU5 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

}P1;3*b+6Xul$ro!dAJj2CUrMCXpH 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 #5P8})sAES+8SL?~(d%0s@ zJun3=E8j29`r>V|8G3I6!+>Z4;@$f9$_bKA&FB3oi6~1Z0mtSo;L@~P>$MI?_s`S~ z`*UmO`$F0n^e{L^u#y8IU)*7qE|s$-6*TBI%b^pr|2Ylki8J-9 zBbE1)-o;aCKmkX|i#}}BHPO#do8{(R7jz5nk=SS(=?>1U&a{jfR(W(i7yD^mN<7W; z>HxzYA66pQM1J<2`~dd`aJY%z8gW!kju&;#)Zr_4SsLngac;|bcXhaBI?iS2+0NNO zFajv)T~pzGy|HJ_nzs*4PumlK8sNR8tu81PazkUGx?o{44O9#>d*v4Y-M@OmO-ALBQN_4 zf#2)>W49$%J(EVzW!{t9C)Z9;Y?}`jrWPQ;PCa<)OZ%kp7#@YV6i@ZeTUAg^v^;PQ zurlr8(9BMRCQk%uPmC=)9-0FS|4(`;t?02^4SI=dn|-DX9zOGjESK!D(>ROF4{RlO z{1Ogu9uG^t>@G1!GAe|lve{_Z))(p%#z;Lky5!XS$W?a2uWS?Z8IU_H zQa?3qO3I5-y)%lpLad708y{t2dMLZz^nL&fj&nr{m% z`%GT;>!*J_gbIr#t`UGSO}6EBY3;1H6<;X) zk!y9Q9EA_=+mINW8@7sBS+|l7?^~iAA`M=!wmgN?-zGxnf8auDKy zWl|0pyV{`l@f(231kAoLQgt$1bznXVW}7woYwg(Mm)!`W{lsw+^1n8pKDTf8HNS3W z*ha1?nCY5ahsmaUVQ!F8k(^+@mDMrCZ_v8W`PRjhZd4P(XQvx+o4k9p}&? zoKd9npgb8|yO^v}(B1a{AGHOjX=1#;AL9?d?@^U)d`h}(&$RLjfAWySQ_ToEc#bj2 z^x!@TsMOB1jOEe=$%InNqoXr)zd@oVju@;5}*V*n3AaV2S2)@6ogMnU3^J z1B%Zyn^y8R+!o#o*$h$EP(AF=*3l!5XhjJ7=u-Y9fmyj zs9MojTHN!pN#ZMbNLEVAi%H@~H94rnI_XZf)`R>E1joZrL|(g zP+iqK@hi<4?%(mFK@T=cY5!@v3rPA|a}dU^;1`n}t%0#+voillE{WYxNy(icWV*Y& z>gbh-P!PmJd;k$Sc0;&&l?+&~R4EK$>W#Q(+GFJa{p(E(T@;S5{iLNP+|a4(#-}X$ zZ|E|3oVdG#I@64O+)mY_O0GGOEXl-F*9v`~u`8dzwBhpFdde%HkE&**8cdxOZh}ir z_3)K%+ZfJq9|iQU-Qm1G#s^S_UC%GhoXKHv&@7Pm(rt$KPg4lyx5pO7#jB0oykt!x z#7k$xlGz)9_lS{B!LxF+U(e}qbAZ9o$7~$1?o3L_`dCY_z~jFY_=a2qn{NR3GVpSv zL0dNu_k!%PKiedjv5a-c`{_Y$CZGr?JdlQ3X?}q$i6Kcep8Odi$E)gB%S9@Q=_%2Gr`AQ=1(7{2{Eg+C8IwIsFs zPz!Ddd|QgaRp3%0!IoMLJO?(R*C89(f+<%Dr36WdI{6kQRa8TkECJS9I{J)*-W||n z+I3~Ud`M$pDLb4|Lk4f@{9sQ zNmgwOG7QKtxu^NQ~>_Wo@KZ`E&Zn{fAo(N*Fg3AQT&8D{_$y^ zWAR(`tFv*7ycG~rVWMIW8en(^0JH2(Q)CDi^W3ub0Ml9818b_i_qzj5UTns+u4>in z(NqB=ui_5L{Z3$bY`X~hocBien>-8$%fSElfRfd0jh0heYT%$luM12Gg6a zMRDoL0$wk?Jpq{jHne+A$elWh4A4Jh1r8E+R797Nd$SjZ!1k~Bu+X&WIqNbYQKdnA zM%K6;Wh!sX$ z7Is{lzDUTjxPKJSgF%^-wxpW>PkZ$QbO8he#|YW5HpUMD0QhNno%Ae#Mfmib!QMP# z)yRRjbXj7QbpvpHO5L#u9e!o3RluZt4xqyU3LcyDH!7Xq?cZ<)pq5iZM;>pTKOpI~ z;WO^;Rim}&N5MFaq?T+1{bGMxz3@v=+7oN)7aQMpNJl z7~{33Lj^@ko-2r>Y>N#*Rlk#xKX+W$*GV~NXXl|GC&d0qN!amm$l+_Q85TWhM=+?U zAcLSKwX(9ASm}3?C5Syx49L(gNh%FgPgGj?J7Ph-!vLm^`gv^3-qj@4T?ak-?lA;b ztli^MwShTksLg?`u2M&}c^FmE^yaGLESPG3>3Po>WDH&heO%{$ zA1@BVi~YB8scyegv0Nl!i3laJzi)m!_2bTyRZ3x+0*a%eth^&Y$g9fYuLlxF1_H3?h1~7F>vfYi##3=fyTHi5)azh(a!P?d&i7 zZ+9=0f$sCb{y4!u*}$(HYK|E6RG(92|4D}fuho*lAp@$eh53(q&n!6}3dAi-f;x`~ z73bS{yJv26@5GgzbR&&a0CkP$QFQ|R>l?$87Qn<_^VX;UGqJkFxyl_$4kH{G)`4|A zovL#vFs-L*lSX7kZeRYxWjQO3*W^peY>D9SD}?v*z;pT~{KnLZks*<3c*x%`q?img z+gZ=O&OZ^HI?|VcjuX{n9M$q*iTrzl+43PD6z zq@Zbja~wPf_xFRk2^U)RLM8n&2X~#!QP8nl1ABV}G$&$rB#o|l;1gbR3L`qcNGjKH z=SKOO1@p#lncy*P%7rmw$3)Dr&^4v$MNI`tE3DmpNfGX~E5>`Ah>s#o_?=@A7wxP|6k;{JAWV-0`CElf3{z z9@)m`1i)O-knO)n1rtt~BW;FDO1Ly6{55$WuPrvn2qlScEswnCCqqcSfmT0g#}r0q z2do1kiACKb0ti08Rko!1vWKD zd-(4xp^LbjgRpIk?^S831ujXFRUKlO`p4LP7RIR)C1SDuThL+Vd2P!PXJ0vr25rIm zRz{_8$5G`W;1Ks#I4^XvkS3JfttYGiu}|?KZ`+}jFd@pC-{0oP8VdFcLr%n+C*)W- z{aP6r!>f24ggwFH`8a>@r&E5`es#D?FtbO`_AbIAu=_~du%l0{8&wQ&aMoIYRVaGz zZ?$g}XsA#A?w&?~;T?YkKGxYd(L|%6Tj@C0MtxU9Ua%px$t=;*i6W9KH zD32(cYa-31ZGkKI@7Is^rKNLPXW;M#aubb_tt3g!${Yy!@E-iIX%ZCfHzE>QUl;ZQ!tG*02l0^{acD>*ve;mBW&xAroPE#3!eY~y-cMp z*sbl@E%?<@^29{@CwP+W0F6C&tbhfm&8(NAv84FN8^h}k-FCvsrcyBgVr7)L&Hj1K zK!rpXzq$)!^z(#A`%Wh_NeT&Eh>#AzplH!n{NtM%y1V@LSil`~xYp43Crg@-{|gKF z@f!=M{tF9OG_v^MR|o3sXj&e_H~QQX4Za`r{CCh+aP z!QvekaDSS+Ab<{qKoxBDPl97c23RuGFQHydySOn(FrDYR8+u>VPzfF74R&T?yyr(} zsV2Z;=fo8?uQ9KgMGiK44OB=SHkFxl=Hw~}e|oIVp3zS^-R9{sT|B-2^L$Q?UK&JI zV&*#^gT*8MT}6U?ru}8(uQK{uFa(6&pYr<$={O0oY_tiDAXclQ5F%2K-<$Z0nk3-o@EetrN-n^FB@F-(|v@LzhuN;Y#$hNr5BoM0< zT#-+Qf7)x#*e^e>G6R76#*6=VaO(djG4cOXzw4cbdE=o6GCOy~q1`mpR8^MtBOHF{ ze4hF;EMxu*qPhaz6&|KzaN|! z=nK_U72Nlzb?&}@d%QD8aPfD0Sg-qUF{2_E+y04wT{~5`kLm?JScNaRcYQS2-nZpw zhM4Fd=->386D@%HiHTrL4s;ALyrDRs%_{3b3_Jy+-wN=Y#w`l%HJM zL*QH~1vK)V)wjr8q*j7yOt#Pmj_9i|TTjdW7lk1xceXLYCP}0v%R3QrWcwBX{FQ>V zSNmC+CUoyx9hp3=tSyn91*i6%dP94Vq6e!M^f>Oj#%jk~DWW*KpXY_6#p@$oC^*bg z0{rJEUK1@1rJh^!9daQz#OK8u?Z>2ZGfYWLzgGEHHV`C|YaBWb)-w%A!wDGsE{}UO z-n?tkkoZP%0kl_C^lYjKX$nf`XbB4~l~=fQWBFTgm5`uu#!WDheV(vts;83w!d|<( z-udNSrd$jhM7&u%0-pu7VY03@Zuo1k@7!K{X)IxtW@7&Mg6Fj-h4~zDBanm#)?Qua zakLRI@yw@S2uP^P+*_R&dy|?E2I*m9eVob98~)+d-S|}=Z?dn}wJ+k<+{&+MZ_W9U z@8J`teq8V#x}x0@KpbmIwC%{c`t~_8V&y|b*p1Ftk;7pe@}Wp&4S{Kl$}4@?pT#2M< zJ=#yfuHyOe-JDgFiFH0@`kS@Hj2%`7{=*o0zQD*GEM3ob3&lGCg`VIZDE%H_p8E_P z8qT`A`d)Fx#@I^0P3r)@lH#C*a6n0u_aO;k`90oplFt_n{y^#Ya7BCl)~B-fkpwL@ zS*QWKBF$I{uRR_wM%-$f^YT^mh=Ej)P=o|IUlYm|0@I>1501)4ee(_0wus z3U3_}Gs>-Psp^`SEj$ZZ2NazWS3%00Cz8~#^(mutHTD;?ik;pV)r7raeY zJ}p1C5;<4ka5niJMo9Ad224uQg{X|jg~dH*b1x*HMMQ?p5CI|(oZOjX(+t_6x}1Tx znHXt80nw#sy`r3~V7?3kLaQ8bw%-cmI0KbnkVT4FnYaGF7?7K5gUo=W1af{))^z(Y zvdak7-DN)ZZUIf4M`viCi35TQk-X)29mW+X-+S2#VbP&fOx!wfrnBsBkC2Rl3qd=x zcuxB;LCS`=cAd5JAs>Da&3B4IfF2gR9@Oi=ktae4f59wrGN_Ac+Cl!VgJ1C_-MP&x zXgW}-27i~CE?E)BrmE(Vqkk*n_yiiH{;g(c-F8CMdeBf(IeH<=ZHUY&+p`)>pBXfW zHK0bwb?Zwp=Y)u9AXhy4vCy_zApBeE?+zOfEEuE}q#S)*t7h^^J1oz(4s;6S$Y7^0 zYM-Snsv8?$YqUxOxM!V_X|1Tu!8Wu$yq+KMt#V>$6%i$X*zc6A<-e*Z-&a62)zdQG z*tyyvCwV-~cc(h!cV3cvXT%$ej>QmAosp5W5k?2_7hGjqY4GRsP-f;?A27ov-SI{i z?Q!4YfF)>=$;n`=H^OkRc>)NGpj6_5eICUTf++kSb?*RP6bxXL;R21HK#6$;*#!Y=Cbz17_?g@# z4L1S6T!63>b|pf9!66V;l%5>X;x)ZgOIoVpwf3AO-sHmy2p}6nlk5W zFfjsq)lpB=fsJGOjghsz2<~{?bePZM&F3hY3ndf<)uiHob@#B6Q|$89BC3 zurJ@9T5dL-3m!VA$1dq;HqG2#bSYP1^A}1+z_->8$oUYRN;~7vB4?z)vOBfrBN|Cg`3sXWrJY`D}@zu zz1+UIGquK!8Af?Q-mBlt*o_&77N@$~DcT?b;=WLA?Ta+@;G-jtegW-c?RP_TCeOhT z80?3gR0|M#DR&3YME$NXZE33erQ#Lu)!}m{u-f_yUA_w#|BLc?4`S1aXa4!u9vi;G z5LVw3Zj?X%<);1^`;zmxNvWp-0>Rc@3XdzB7!qo3!#O`Z)F1ZMUdMElNES%IZXV3* zdf$1>@hKZC71LhTJK7KuvWVk8V49bwAodk689%(HUiwwH)f8N(ig;6#g-U zL1QVli5Lbc-o3lt%N}2Kbtaa2q=cOYTO`^_;y8cdFulX+K+?52}D5fR2^9pbFp=dwY~J-E|Zv z23HS7jE^MZyL3;jb!C3*jH1E-F!+^7N&mP13P78ExYoEVM()0Idw@9#dbk%izq|6! zXqNL6adb5Iw#rM(wJ}6x6rD9s*{UvY@Mi6{a!#*?<3yZ*WUX2m$e>?}9Tn5;mCIR( zwG=r?DqkQD*jLb;+v$tm%P3T_vTzwOQ!|X)dYHG&=`q&#&zm?7wqui7m1B^1CtF(3 zbBhk<2^tGH5}m*0Dtg=@$HL$C9Y#)+!A15eU2Dxe4-IMhCxzSP&&UJoCtx`a8$Lu^ zIv0+2P{B)G{j4LG=_zo0bPs=P^a#?~7npeiULHS#q|q^J`1~Ue|1_ z)~9QFHxAU1Ht=dZc z1XWY+sFZTaQ+xt z{VCHOH}SziYR{wkZYNU+U_toz122dNz&_{P7!n4lMqS02Mw%pyrJ-mUsP=%{uwH|3 z6V>7=K@yen=S1V7|TLq9PYPq_{H2#JFWOf{Yf%Rd3iXAF zOPVmpT7kFP~ZtRV#h6EB2sV1L+n(PxCK;z9K>AX%fTx zuhWbt-l5w?8kC39%S@zFD5=~idqDE~U0b1)fXt5nIZzeMPz0-bGe{p*IVlGB-3Kcu zS7Eqpj|x(DK+FSkx>;E)uu{0^5q==QTn-_=zmz&wMqDpDLlUyja|6brHGv%eOexe7 zKK+nKD|k64PqmrAVl@g0zeY_4ZLFcch9yfALCXb%;6q>{`v5VCO1` zAhhgs&W{pFwoZ~7aZ}VPn*_`b)-KS^Y%a5CxqA)ZoT=(?+j(_vxTVD7ZWoN>w1xOTNw?zfLQe8_Ox{d< z?crfi0r|itO*xRR7A0zU&E-bl43sYMh@<~x1M#Er!@1K5s~sQ^82@HQ$kw{O`{}eB zkQ-loe*(D~3^X(+ill zH|dJdCo4|8yAgW_dd7n6wcOr1K;hQk`7D7i)42OQBH?NIE8z*l+T9-gkpzA0Ug}pX zeRnHn^~3SvAJ4`pM&zeCnElLqn`ht7&S6R^k0E#(Gx7t*~%41)(wzxZ8wj&4F$%j$i)O?wCL(+~L$dErp2o=0GO$`lHlA8^m z*#M|nANoDQ_QDmOz6OgB1sgN>gO>?`PF$W7mXa<9NBSn z9hgly(4M`1Ppjez5?;yLM;3CnJFm>_S-=n)xUExb^$xtM31(MpGYy=GnGa zo+cx9*fdWSuu_c$@`v&;ir)IQf-$X-_gZsN1THk??sTuUY`@9fUsmEazj4KGx0x>^ zUJ}>Ij;8%qy&|<%&Kn9xg_uldYe~QUh*5eeDld8TW}j-b+koKNVfKmEBy2pr||x9d7P~`D0$`T?Z#2)5yc$515+W~N{;&Vj?$ z@~`O%qZ&_i@YtXRy36y{fA;3k9VLB5D=-m8qDLsh?S{cpYQ%Ss35k?c!7`+kq;Y%r zPd;z;d!bUPUCr6j&$GuV?8R_O>UxxKMXqZ~>RfZA;1smn=K7X%9&0OHe#OJd(|r%m ze%cVs>>0Xr$8e%yDhy*=m8uTu#g#(kY|*O2JR^v#14IyB7P(rq1}-HFPFd&ezNr3`S*!_%Cdm zM12y8GFK3TsLWG-rtOj=K5*0K^W~FT%+{I}eGGv`ScDM8Lu#Sj1ypb79IQR@)z5uu zIoQ&^Z+tFzKmwi6uyCgT5Egg;x`9O7W!`^t-;Iwc*atn_GJYeN4! z$hS9}!p(kE=`?(RPc!X0{r3x0(5X>N=SLjXkr2$Wn4n1{iKqFrM2V$1E*320Uu0xA~vD8xK{Wf#!5It_#vY{q5p`35>Hbp5v_o*&B$ z{Cayj@ymSW{5SNnPap4^ZsIcH+jI{oc=M>})v*CF4JO4g9>gDW<^zaMlcUVMUjUyu znf@RX4_6Gd1L25K$Ex(NRgSnGNO5uF^X~1HhlCwucz?#IG{CeA3T3NPf69>QkFIlN=A6DcO!7=w@l&Xy@>N_N`lDB zvt{F1i0cTjqq=I$j(Gnou>r!{*IJeLFDq%L6(ZI!7%&D-fxVZsOYzRxmv; ztA%)VfX;Ooq$a~^CGMKrVXlKtB8Wze6L>M3g48k+4W%v{9X%BnLHOp;l1zlXMHljB zSs=4P(m8^Hcy%5G*TJ#gYqmz8?l?|#ziU`aen(L!abvx5{40lWV5%_R`IDaCGLGmD?*$PeplO=fkLpZ8RJm)UoTnE8Y6M)Hy=2iEFzIoK998AHT9U%%PS zo2??L3Yb-jl8+%qpOpBnL>X43S=wZPT5F}DmL?7*^#E#x2Umjv|09r6~_ zE+0;NM(?TV^s7jgf%{m;v#Q~#;`txe#-9*nVz$+{dby0ewd_}V-e*oI3$IYe#RV9J zu;a@m8j1GoL4vL2Q<_x6>J~A{)l#ndLE_6FkKw=W`Os5r6{o*(?a?iJR}_7`Dgy1BhhB$d)qkUgfbs*H} zcrj>y(@z~c&|Tn!J9Sq33LvWpOS!gGPcK|3s~ zw{F`lUL0aG##;ZnIAyKQqs@{#EacDOn=cziK`$G6PqZaeZxuG`%>;nLS?z@Yly}FN z2BA#~dbYuaW?E)}=igTRp70X8BAJLtSb@fW6;=Q`@e6F|_o=Cl7ixAy;v^J@{Yab+ z)!_znsHuK+pFXl@vg?~mIR@|&+3vTlzpJ~ids~zFAQEx0%USUwheRsB|vrp}P)x_fp!Uoe-5)&_CnAwh1qS)%QuRRuYfQc`A z2QImDItrtr{DE#lMcu}Y8+#x>+TW*tK;m#Bd0_Q2Ev3RVuvB>oK?2YVqE$g&nKefSW>QnmVZJ+Bk_;I=->tb6PUxNfJ4T8*O%2E2jF_EUQxb3eHR zgUjm+bNrL_-Q*uXO3m_W^qZP3C6On-JgDN$Ir7yV0_g<*W5=p^Y0{VD52V+aP%1rX zG%a;~nV0SvH?)r+hrUEeOS)6DxRJm zoCYxqfZ?Ac;HzE{RR=3$9pB=A67n*=LRNlZm-?l44_Fv;+36<+Rg(}N_T|;RLt{@5oemUi zmVcIyaV7t_WD>rlUc4(HQwrMLfvGcYB9|D|GXReW)}qx-=2Cniz2X&8yeM229{jCO zbv`w-)J`HP?uZI8JGdOZgs)pUC=7Jr00!e>{AfShkkpyb`@M8R2Ns8M?=A?sde|21 z!VgCNJnVfWqtN~A{GATiX*m$M&_UDWrN^`OrLV{GdjWQRHXPNoSk+*l`A&1S%7Hki zuxg2fW^_Gr+-fL=%T$H2TiV=Bwmn|jM|GzS)VogBNrq*(CsN|Rm;m|Ahb|9r72wq9 z_A81|W801+IZbN(?T-qUioqdZaw#SW*lclgkj#&GVL6`<@Y|cu07_~hDtTS}>0BI= z^yE@bN`1VoctYdXdD(0s-I;?65caMGxjm1h-6&}@%ZJcBzpznBu`nApBPiqJz^=;j z!-XovCt|L6U7t6|xS|E{3~LD(3-nKf3!DjZY?Zff6Jv30J4OMe8ZxqH|)T=vWB`GO1Wpi;fcsmOq$w6E@DSh_NTi}lF zrREO1z~G3+SD1!}nRZ3ft#S+VbN~h(}wXVg8d_LfEIk@ z*k}~BL=@1w`m}S}U*BLI;r=#@ZVjq#yG`u<4O&3}mq}oJr7nTf7&5ZvB#=rZ8l7K!6E!>#bkULI1Dx z_WxJkVmq~m%_W|Pc6$TX+e2Zu99oeUKC)MaXhWo6Zwv(F z%^qepb^UC1ay84gjR@?9l;TvJxw+nLJ(pq=Bx?7-@Jw9|k^=Db!XfR}8_jPSOk8G9 zd{{=$?N0!7zwEnGp2JX=X&CllF@p#S8BBF1gQ>vq!x6NB>GxU@D#Z4~{ACjQH_J-n zex!aJ*$6M5O7Xx$Rl{p~Km6XoW0)1e-6UlWYVr@6@x^%c3Yp+0!XBsLw9#XP;-p0& zsm^dIy3`t7d9e{KYhQmS7O(JpwDtm~fOEydUdll%@`k-s0j@)4yP4u*%8uRg7M!b} zC5PKI@xbKHL(BfsC*;!%S%$bt(eYMWefPLMx=Qk0&Oa1JBgwFi*kKz6`Z=ZHv*?Y5 z4%yWW9hge{aC|}=P-4b5=SF*gQ6B{%gHh@u6N;t3q;r%l&pgS4v$j##hMUs5hJevFg4&SYv^lRBTx4b5&)$@&vwM~s{!`}Y?YjNC3O zGQxCTcC@$WWHz`e(`hGcMW|Mlu}~cNeJ$`kZ%B2d3{oz>e=1!0jEut>hfIjDy34uO zpSTG;A)`gSh>tA<{&Wanbl875u%f zM5r`c>8YqrFA^u(2O#2<1=cGfm?K3a{A$k0u9RFT{%$kCyMn}WT2qEB4*KvoY1uI` z{y_|AA5vt?s2}45g~+i#+fA`pZ%%v;HT5&MOYzDpzf7($c~BUjgVv1WT5MK44BV2g z(RlYo4QPHYg&YWPEA-92UdWQ*uMZl&IMpjP@L>u1U6I-MV`-Y_{-Etk(v>H|F71V2 zmTM%rTqj>`yGFlcJvREXRbk9+S`&CFAM8{Zl)Mnd`TXsGtE3w)^{#{>3~TaB`sKXN zm22MbcZ)-Jl@s4Dru1tty`VP%lr^|Z5oI=_u`fj(#muOv9Q*84iKGkPoxGYIHf$xT zrxl0N&rUsIVH=7F1z~pEv7-IN{_1IQddK_12J|WmjT#HUnV)FqV=7}OmliSY8O^b4 zJ-jxqiz%u)c)zSPaX zkbl|cLW+#x^2JePytFml&x_SRg(^2r8}L^`^>FDV@1Yf0H*ZH~{g>1)b#3V#1HUpc zn$GFh;(2=#P6X>k=x~QE7xP8q(m50*-P$D^8kXrHPmtppUUj{hHlFwz4h4+r_^&Ui zf4fT)qVuSAF&D#uopZ;d$3u2Z@GFkgZMnJ&LZ)h%=fKOE2veYSs$_4E=(q!+H0b6# zhx8=K2(H1UL*wvBA7cFcg1^sfBt_UCsE9dz1S^q^wb11}9e{HFcxPW?xUX7a#2Abs z(nM^EgM=;#S>rVl$YC(&V`H3tHBEgh5vs&j>9qX~MzO^s%L|3nnQeoYJm$tA&ejAv(H3aUg?tUk4&%sBjryv4LtZbc>Jr$z6RZ|h)X!w-Bld&8>{aQO)0_J4>CE{%B7BW~(3 zB|EQjYVb`D#^r+y?TRMpOPP;#4p7ue|5*O$tEO|W<(I#vAx`HtusAjTuGOUV;|AL* zh8(Kie?LF?SLm+NEiIx(}0Vf z{j}GyJkk~TYMvXXfYy{1Xd`mqR;VDk!L;qW%+cQWw-+Z`UB2wmY=kA0ZTJJyJ{*Af zop%ch(dTN;a*e~-lyeTLB^;?Y-gG+s5T`rb3k2;#{gH;_?b*X&oC;6DiN!Up@DUH3 zt@Klc4`B3uZZ4R-%7q11OlFw1aO1X#MnDO1Q&e5WO;m3PosXWIzfF$Sdi9S9dt1wz zhZw3H$0}HNPNozMT#V3|PE_QkzcjPCiOG>N43VRNOmE}UpOy&lz-h|$$s@jDz`Ozr zj0fZQ{&uV4F1wHgZMl_fe;?CyT;24<5zXqk(>Z@eR_Y8&)sX?8S{TruxWJe(W+&2` z061wE+CWt}4!fw_(jWAPeb^-W18knqt$weQZ?Ab8N=sj<(*2fwQ&gS&(^Yg?Y2$n-@y&D0)Dq~g05)R0_d<^I^KX@|6&n>;3L|^?( zG2nP=s-in=PWuESPo3CFFA*xYmntKp+#v4sxe6vadqsrGM0V5ccBr3_DX|Bm4!s&> z9kwkJx^NJ5DS|zG=Kwi;f;|Nio3kHJBtWVTAN7+)i1oP{d>rz8PB8Ml2CYs1{)Yh1 z1#=!(hp+xDwihr*R)s)+_-cRSgCOq_zqOkdzM8h+RExt_N)M=b66XFpUoLAh#IqNE zIP;AsDG+&DtM-4_`}$w*7a>VJlrn)kd(nNtJ}SggDI{Qg1b2pO{kBgSxfkd40iq+z z5&M#r)0~;&gCv(`PMss#XB5Jaj$W$pg36&v4mOtiv48i{s$2odmGzg2<}vj2)sOc1 z7X0bS^41udj!yBdsL}RSb9?iV2*aoYh zFHdj%{Guh}u#zQYoWbT&unS3{wuO0$4;>VE%j&!9uPZgPEIWC%9Kp9PC1?M929|eQ zOd3xY6E&6BhVgUv6W|lcD8@;BJokD_Anz=@F$F3=m^7bZP6 z($yi8DNqdJxcc?=w9p1Fr8{qOekh9Mi@kg4)LeXGoI$?FT>ntE_>>Y=XCzL-4XS{e zrEgXx$5uA5#ZR9ZFjO-(Y}7cYli~La)uC%HJfD?s`GR$0=phV)U3l-+rzsx<9)2{7 z-*^qjFp*?S5U56^^{%0}yat}yrpE|T;`<{|bccda-}_g!^Tg@C$oC30Z}2~33z)nh zx5u`(*v+uVFaM8z0_>pD#t$4*~AVy?>r!F-zZ4b2r)wN>2dT zqvw_M6l;VG=(L?5iC*R^l0#HswzZFWpG-jbMgo%m@^t>-y>EKn0-QtP)Wmbu)3;x# zcqz`_N$qM%I6}NbQa3^1T=5U4*##Z z_f*+6J@*ItK44}>)HucIgl?xYWkmM;PXE2Ld5}S$b6*YBl%ELCg=b8}pV*lVpM7|| z!$itPB66aMoj(r#NSa0bi0TJeHOhFHhC5S{(AF88I?orOXVl((H5BTO2cHE%R3sb( zW_Escw{7G79(MktnMFlijQjp=b3TDcsUpiPB&WpQ&{EvbxI~9BJ@8q+Vw!UjtiHL| z9KT2BB}v#2!$y9@7_1RDS+_E(JR#f_7Q$CwN%Y1~vja&wW{;(YZ07rzysxA4 zu~g?VHowX7O7+JA&rKqYDg?E1km><15Jxou)|cJPs?SN@|E7%>#i1Gr$N{$MEiG+4 z(Q>uk)e-42ucttVsa7z``){5a$y%ko8=$z=U&$ztfsy8`S~CB3^QeL3M5?{Er?^h~0Mxl+o4ygWFg3cKmGq zlauP}oz~r94D=78eK+`35XloJKR(Wq7MOjiCad*RPj@(~?W9_*wO5P77WkPkSijbc z82+71sP_rlyy;zwTXK`@*%Uu1s9uV4_Wb9NotV84M1IzJ;M&gW&!GA*qd^zPw$WfI zS~w4a7$)rA?^#K*LzkBGcn?n!BXYWW{r5tKZmP~4#%J3u9~jo!!nYL<7KBEuceEVr@ z+dnssD*4_qTp4qeV2X;~8sE3A$U@9Dn3sYC^ z7)L{V<_Cg+|AXg^1Mz)`1OODg2@7?5lAFK$ALQl={r=1;PPoz+f09zFk?=5> zhAi~K{lq}rWy30x#Tx&(n3)UFnhCr9rlPR2Z8LLUn2f^IED$Y(J2zF!&Q-p@m0hX4 zm0fAjwwYZiTC(?1;@(xp%{Y%W-O?tkg)j2nxAHu?2@{pmFn96&$0-dj&U?m9Fq@z^ zis4_3F08XM2Ovd4?uBLu$6ryguj7NwoXIR zjDB>6)GDNnB>qE)tDd9vC&ymPmYqLSjxy#M!I35{u#};nVDk zH3w}j#0(92`z?jR5l5us+=L5to5#^K^wz6)82&r{*LNIj#eiVi&JI*98kw4y6@w!} z=IUqvvFtk{O{aV*wpWTRMUfhELsbNX8vhO6_uVD<7%j1n5@b7*F)CrumTy`ce(bA3Ki_ z4*<&dM9vYoFI>8G!lcOM;Y817W-s@tyWn5-&!E6K^+k0x z$h9G2Q~Hf3s6R)IZ{>i+IZu>e2FAYg5cJclM0{Bi7+=`=N9+ z5bh*p_jcp*gL7>F+*;P;vF#4YL)6|dMS@6)q!1^kY*72EtqTY2c&Am9cAqkpx-5Lx z&;9Qct@=DOqiYibg>qF#$0k}TBNzPy#Vu58D>r(nl4$$DC>zW$xzNT zEs0iH=_5DFGWVrrF{F~i)fqNK^x+VD35*|4`A_zCsk4UD-CeA!AY$S=jiqLiyR^~I zgt<;;lHa=|`nzF$czL2#WLHq(Dk38R*z+fF*4GijcJGbS66?s@Mwn$&?}bEE)5!Oi z9J!u2wV`{LgCDS_mc%^WG!Npeo*FPS3yvU+< zoZjj8WgI$yAg6CgehSxBd9n2Ct{H>H8w(tC!4ce`4n?$aZyKJ?L`;8rP|V6mFYv2u z+9<8TsI+)LUWzwt2@+}8{_;son2c*x@%THW|A4e(6vZM`PKCq!nc0RUityA-C^^S6 zd>7ikC&zyDbS36nlugu2tKSwQ6BSJOkIL~I4le?4Dtz4d5_OW;xwPH@D5{M&ek5zE z5-y|b_%zk+pEoKEqlRrt?&c$})Z=kUj5lBuTi6hGT_W>Yc+Ir;vJ!;2$6kzTEvx5I zJNI&JK1qWB)caeIO}=19rUF_o#z7;Ffza_>Bwbx;y4Zp&5hmNHU|z<#h(9F)@OX+E z<(c&^o1T8{4+M65!+`k_w;APG?G{Mv`_ePg5U1M{dKAaK=t}%k0^wASg-ch=hP!_Y z#z0&-_ma|u^TthcTebXd$>!<@GDX^)fXeF3TV5sK;VKW36@S}{nTDjbpiH(QxEo#& ziIXL?#at&M(56~Gs_JA1*?3gdY4DYY>-cud88RFdtsDs)e8jIvUKbco6PQ587bwbi z_@Lxr=|mr);7KxCzHDq7JMSbf?Tm-07LNmAx_~(=u~dAw2qRD3h)mBU&94!Uhk)*>h4#JY+-YaG&%hIZA~IM7STcF4%*9t9sqCYC%~wmoxA5`MDK!stpe8|){K&wO z0YScIOi^~x7lY#R*qIXq#nBftYQzH_gxe4?8YtqDYQ;UysGGd*+Fj|c=*T~n5N~AY z!C3Vl{W$m4PmuEhS|Vtqzv*g5`!G+p)3%(v;b9-3LSD2R<^R%nY5UIh~Fp8kkU@ z^s^PsfTOb>nKuufJo(51P@pD8x%0WoF5nOI`~rhm6z7nX`T%6K+n9MYBfXJ_g18+A z+ZX4_MJEu`NY&EgAtj92d-)UYb!U2CY+Ik)B48|Dy$+pBFXfP1VaD zQ+bXCsyq-9lSxl=^R+ogBgC&1b1?2Yc2N-^+?Q+9komobJgP%wU$>cdgoCRYOKBm_BygXER=412HF7g4TiqjFTlZz;`N6 z?0%$z*x6?ERWNd$mf<(SgIMiNaRl<)Uv-?_;KwIPzEkPC>(#C^d$C26P#af|<3nkU zkE0h*Yr3QJVJ*jmCyZaMRzfIXYD+kBA8am5>2*H%%O&Ib33G>NWp|a{3}VdAO~PGs zKu>**TcOwpnAi05{jE8=R=0SBc)(&Kv2!%wI~$9~j8XE!Gq2A0Xf6xg7#w#&T3UnI zD0{9~=WQ~<1K4-vJbuoowZ?#ftFtGl44s8&c6rYRn>{jgJ=c%NmbbusajqksjUl4w z4j$$YDLjt@mo+BRL@6R+(q7h3A!HGyv)xpGd=tbP^u~^P5gtK>w@0g`#?OYKY3T>t zoqwH|K_xWHhPpPLV7-s%Esdt~zs->{9=gChP4Z=ZK6;=cQTq9252x5Iv-a<6{`K|~0(SNCALLalf%J+%6)UVGbBB8;o>TFi7&0{~cpi^yf}_eo=<0&V!`eo5UpbQq)4VPtkCLZ#woX)tO3@rjJs z4D`qw-3b{nA0;3EqY`ZSq++7rjw)giz&1YfDe5Tt@nV7&i#(aKZBh z4DyIfPh*H4LpH#=Gju!ToH^D4quVqr3}~ja6ikAcC^EB>4%GqIup5NXd%6`Zb_bP# zu&5u=NB_Y*vR zX-}nS(3Q^TZccwl7bo)-f@uM2&t>iP#S`}reuNWffhO|qTtoLrQYtEsNL}ubt+f=M zp)oJ2T}P;9L)F|mg4ijUtdhhum}6Rm!I@#vrSc@H?Xp5Zo9&e+z1MCwBPH_2WkX>W?inIE~JVwdtL;~_J@r;GX#c9)zlk#V`hnsR`RW`rj`FkSA+>M}T$(cJ95 z$2xbh7#mzOJ}KOYg5d|}kO2r5jSOU=_j$N>_2M2ls?IX12rF99k(PnnSE?8Una&Qx z1zjRbK0Jgp8z5unTC`fNRB(=g&9S};!lDmzb96_7$M@2MJ+3q(zDg8gsC#|BX}a&K|+{ZSitm0A~PocgzyT|;*3>{^6s-F#uLu(=Eacktr9>O4r3l87V zG(EgNf+wh(j|Uiqp|Tn2A(jIjQej}8M+<`+D8I4~~)$X{v3} z>Ns#_v&eN_PrOGzZL~Z7gx=*K##`un-JOIXLG(jkn**3hN#dI|ifH7C!hKZ@O1y|#<;R%w4D-KJS!3D=AT+PfQ==Iz z{<-kAs!CGvN2rDa8rU%PY{xZ-Px|v-hx0KRDPL*&a9x)$hK`}XNpPXE`{?aLnI7$2 zvDj>eeo0AX_5DNKX(O}z^yza)I3O3Ys#l5dG{2y|@#Sb#dHmg9MnK0;&ZL@c94?Jx zT4Rvw;PITe5ErzY%bvh8&1PvRU`$1x@ zZbNv&9jAJfHU0h%XOwqpm&W(>Ea2Pf*4ZF8lbcPVt;&C$W0rDUJiE!gD;zz`xP$Q2P4*S?p1a?lIMD--_&Z zJsZ3g8MfB)6Bs;hcRSsHs_`o10dzL*eq6bF&Y#?2SeSB|Y?`2`uOR#M>kp~wEUr|X`J-RtVoYZ<%&4heQVOPfH7QXc%|`$r6cX|jct5UAkB&Rp z6YInNOqSRAG;RQ|D0TF`Zv1NF0W4A-+)+7z&Su}!r=ey(!-QGUC>F%6wH1*4q0L@= zoM%Hf`D8<2x~Unom94j4l=Fmc{5B&h9s`eZm&|4KXZ_3p^eyFBRKKZu*s>7c={+ZA zZjo)ARi(X^kSQc7v?M1fG|l#Gknd)QE7kPLXMR%}A7oP>nJiqgQ^4%w2uV^VXIm(1 z+hsns+L`u!^&1?e^e(-`KDq?QZ&4>h7F}`$F$<_4 zs0`F7aGFN-U$nRuUHVP*%lL@NUHTRx1{OLLNgOY*fPl_uUe^dE+qgKkP2eOJq zl^6I^F65hkJL6FDa7t=VmfA^!_hXOLyu`U^PIsQh)qpNc67WMI?fe%DvZ=vjST-fH zmo%5_)<+gTAR$OAj3v@cnG-Xw$*~hWH`pq#|q~_Y0zx|yL{Q@VsRjKh}Pv^aZ+vOD0*rF=rXUMT@EOU?9 z6=@0M`QD8Z?k(rLI=QD44uC$CK9Db`?>?((Ewmn27Dj*9C_9X<*UZinnlPWdrw-fi zAGx2q-n@37dStCDL2m%nuO6?z-|L*?tp1Jt7jy23u*MiH?02%N*w+fL9Z4A#1L;>> zOq-00DX5$vIQ}LGmUfAz<+U00gWSpU*%Jn207La%${=Mji`r@pUopQkCn)8R)~n~n zEUY_rp3|IJNH5$Y%|fbCd}Mb;B5XD?+$X827TaDBmoY?EWU%JsMd?_btL(5p`>Hu8 z80MZm(7a-*F-Z*lp!-rz?9T6bv7CBosYcq2HW035)g4Z?49J>BJ!5oaiWw$<;d?Z0 zSVNlXYFVqk@qNgs5aHh2Z7`93;WekiEz6^8V~G}Jmh|eXZJg3aW;e96ZKv+3tamn4 z+waALFOxNlpLqG0W$~vO5ILCpzXCyOp`-F_=yA8?gZU;^N=&lEOB*zXFWADb(3J|t zg7-+e_{x+CU3KuX#DK|Tq2yP$w3kdZrD7ZJO%FnZOQBGgkS_W$p$ks7rJ#FoL3Uq| zU2wszCoyAUy>)&f@8R{torHpWB6Jxk`EZf`r{6%?0EM{5e<;LNubS)S?~U;N#>(9y zbnkMbPBKbJrqaE};n2Ecey4zkkN@&wAFox8yytUR)dJrN%J?Xbwg;rxXJ)FA9bNlq)ot~| zjD_us!b0Q=Fxg;MzB_q`$FQ3@WKA8cLu#a~hy<}Ee24S}>CW9NYoHWI;b?{Kbg0k6 z!sE`eho&Gkp&+vJ%2IHDj`?a5=1Mv(x? z2ab_aDdbp0w=uYsPLmb`n3t5K$f!C4p=>T9)3W<{+gG-h|Bbx&0BdUR(#1g_fCRxt zRYK7t7NjX6Enoo^1#F0b5PC172+~4FDFTWhDn$^nA)qv+g(4szMS4-XAVq4ZDgU)m zz%$=BbLZYWGk50spFGbw=D3r+v-hv8^}g?V*X8JL#jJr+_tKlS;Q28DhCF7;AG4Aw z_>ZT17?XENS{^8Xuz=opw&{H&jL(B^fK`M9lt?{oy>o$c`>iZ5rS9&aiIY0rQ4{LB zUre(6b+Ms9yROXPB;-+)JGSJ+=+hvit;2tylvzpXTjT9&FesErN5rRPqz6HEG|l40 z#9E#4YJINvsO;SO%1LaT!uo0hL6L8g^her1^L6MNu{k4X%{&_=k^VU4qoc)1zcKn z>p8C?sG=-&dU2aNG4%;=dlj9LYTIEeuwIQaUyeo5pLQ(D9o%tk0=!3pFNb~5&sGWH z*-Ce{PQZ1F5j(FWfPv8ZHKbf!n`fTDvfg%Ti;FS0;E>-G=-T~N_rHHS;YMg=Mz;qm zZDZv2L%PI1>`5=@W8u7V{j7Cg98^9i6tHb1aW2$@=LHv;i93nOx0vxD$T%$Q>N(tM?Ko!i6lJzzw_Ll9l}MtYZb4I=-^HQ_I#o5ZZH(ztZ) zx~_wqOE|fe2Z$uZku=E4?Htd~W-ZQlQv;R1Ut82!C;OGW2Uxq(-nH@o734LxuZz>f zDtGG^ShStUZ#9=*%)iY~g@-0`XZ8x(Tu;PK@Lu80xrMXP$8RoS1tP!1^pOomfTUIPYx^Pw&WgHT zSEd1ZAEtKx6H`$6R>ofgiBT*=MSskVd9`bxM`EP!(_nvG+#CkXd?@YS7{4Ss1H#XY z1~mf+DU>BqRQ8BRhwSvUY%-gAr6Q4@bffQdWP0U2TV*ye%p(bI?B))OgrOAW$r!p0 zrAnt%qye0%z_5)Hlu(f$Y-Q4+7r6S_87s6-m)ADOpw&Dvq;6~1QUJf^ODzRHaJWUD ze(BtV08P?Do!7bTkKc0pq@87?nQTZrZ-;aM|r%QbZwzU?c^0d0sxYdrr`-8OCd`_ z<-T^`;1*44r={$c*yvcVR0Cb+B)2(K2&D72Z0N$nMrT;o53mgH`1{u3U?qB%^a27t zeW%Dxp_ag#;XEl|r+H*^`~c0!HaGCeu)bgq99xrBLqxBj+@q zfN*D~gU%D(p20o?kvjW((?2(PGqAi}Vh`b=-g3wHV_Kf2zWPcE=o=&_QunvjhC*=i zI_iaXa})puQE$tAmY||Qu3+vbu|+>LfLrFextm?PZ&_|h*qMWF^HU*Xo1$)y$cZ_t zbFbU_yegt`!L?Y=`;l}cC)enwX;oZZfsw`=IyZp_JK9JUvqzq7Y1Yj%VjU0TmA&zr zklQrBPg!hZT!S!(uZ>#aCw=INSB#9KXLaO9yU$mbbKG%eyLwiMLomxfVrj#+tVgA; zECbWLGHzvYSIfA~QDiO3yMJIXrVUiu()fEEJw@?kk=XY)u427pE~Yd9)dXa{EqN{|IyvNZ_=zY|Q^-+cu8h$xUF3nv~aIL`}xXp-@E5W2rWdIY+pH^el(+vzjs!>dB1-_}+pei?k<=+Rfu*2=RPEWfw9d(#xg1VCp!@9pL-f_cfD==7j0l;m7lGgc6U}RK4BTJZjah zn~Xt#Z8A3CmNh#%`AvR4kd@y;C#K#+a*D8b-I)sM60`SPNal=f=Fa8YosSnSOdj24 ze5q%<-TXEV@@U&TI&TqaPH)kQ*d=IrwS8#-6TCUvr$YG{;oN$U)4tZ?^n?j=5l8n` z1$tY1^meXe{&8;9oF0GPVt_NkqgBhg&#TLCEhI4Gndk-L8TCup0=|cm9DiRb%M93M=e9$OS8g+D^pT^pwoIB`JuWfEN%eZ$IU;!Hyvvk2 zz)C38mvSmGVey{)c0ahzHI!P%!G`my~%8E+20 zdHz*xwsn@7%}is0hJ|f5EuV8eUtOxyceHw9zmm5&O+9SbNulFqyB(T792(syrl`T*=6#Wc zkE9Qky5fm>!8Yolg~DQ52O?t?@bxzXXB<4}4a34igZI*_us81BGaq~pz1MiCN|rWg zLNm0RGYhBa&$~{U>*zc0ab_lELC++o&0+EBe4^JY9vo$7FA^lZt>Vz7TW67DYb|nH zKYgT6+bujeU5JT6p{`5~C9T&cNQ(N%vY|-4hi>q-&Ty=LjoDbyZW7ZRM;9Z}eIxIc z5;v%4BFpnQU^+Rb znGGBkzKOJluOi^?A8FS4%-6^}4mXlC6PVBmN2zE3vS}3lpugCE+Kc z@v;iKB|Z@lx9m`$N17$}`Unh71lcq?*yQYw5oh9N3k&NBNXebhVAiquRFE>i?)GW= zbS#p2o@QuO04ecgzL@iTMzglnN2hkrLlNNFTJBV9&S#|3hdCVESf|Q+Ffi+0L2Lag z$Jy@mneAUEJ)aJSZa}Y3PB{lewq{7JrwE6YG}8%wBbGK3)ejd~(ffZ)66dA`Dtz}H zHBNiNuQLu2#Lw}l&m%&scxHv7sw9DcQ|;p0aA$Sk*>ee3b2W~0`Npss-cq}>yJ$oB zfI#+8M?K#-Jz@dcxAXJEgL`dF{6<=#&)vIy#R$wn>+TRkGZL(1z1c6Iv0_~q? zOQ4VPC^h`|=KUuA%KXk`Q}iU{2&Do;QY0NADO-*S@dQYn(qB@y+oN<_&c~en{CTV&QuT~XU*nJ{a2E6|LN@CKRH2@xR|hY`k$alGRkknGfh3gRn;Pj`8zC^@sLxhH}-A!ah?ke-h3)X ze14*Yt=x(GlcQ<~O_!#Q&DKz_02ib=pplLQD%@}WQ5Wg20z7KFVZd~E%;5?i!VSH< zyW?v`of{K4U0)nT&O^JwZ}tkUpuH01gZG|Zp?39zh69vv1de4?5SUiBtbd}s5&I*8 zqYFP_gm&M5*!KR1Lt`M1;r$ErL2$}U>l4x#1@#FHTC8x9Ypo`1^Eu6C{0%gGahuaJ zld{Xk8Bk;I1?HL;fO`BuarUs5cZC4Dyy_#d=c^ygdmB}Jo`-A5Zb-$5mt%TgJP##> zW0&6R_V102g{bfe^|}Xj?z@WQ_CfU}B>#JK^U%^C380Z;uilyLP4`7#JU=_(r++;x zNrcQ{w50QuZ`?{LY{U43k`lNAXPba3>+`oC4nWe3pi0iKcmXgN+f^L=5v;UbBf?`F zByZtPTLp!k;n?G@%xJ@)93)35f7Ln;(gWJ)UBXQ0Ub0H0{tWQOS!@zxvQ(xYq7E0 zQ6~FMv+l}e*Tos`9%vC?ZJb(vuTPYhtFdqB)AUGRq|G#GY$=R&?!jE>9GjKF*CWfh zurxl$qtVE7#4M8tjxR1A%6nJStN3wb1t|qm(WI`~CFkNIeaD7bP-C$Gz30PcX|M#S zu$|lkcVSd7%@=MTM5op{wHY5VJfb4SBtg}P1zLDsgNut9jkNyg0SAxkKCTr9qNT4I zW*j%I2Jvq!^lCOI2@Sr>oJoB1WtUdFlQ{q56JMJeVmc(akT-5^A6V*R`Yyz6+vRtX zSYNP&DKEa=m{P32x6nxAn(yrTy|3Bz+=&-o)qI-w0B)AxmDNeW?8GEtfo1b{+2`3P31m zs0*}q9=Lz07#uaC`*cSq@9eP_512wI0tNQSg6GyGp|_27BRAG3r?)F-TXcQ$v=?*? z&`(<`!rOJyRG!%XF_OG+no;;dL2)JQQnq#8J89WiYzhzP^ z;(CRfK&Qfe;%daO5FYx$JayaAr1E=IoU=OiGIXT;?q#fujEt{k^NQ>Ms4{aF6njbW zTm`gy@~cl&F*D-x4OTj_sQRqMUoB8>XvY3{x#e-!ymH29*Bn0UjV=vm4t-Q@Y++#d zw(%BYfpF{W<_>(qP;e3WCJA;zBh#~~V@Q)ye*~2nMk;^<5W;WL4Pb|Te6~VE&u56e7U?#@n;hE(n5AhJw9diuN&-6mvq04Ij>X-wCLI6Yp%`a6yU91VE zYbW3?y2=W-JJptEZc8!-iIVY{>cYvhnB}~3694r40kaH*_d{MPsm!p=TBof6${BQY ze%wBV^B+YiUZT14iHr!rfoH$1Yn(_-u`UEkjzO;RxRO*C1S2DQRDilRBRt)$M~APO z!onacsK$u8`Wf3gz)wpr>eanzXx~F?klCd9*#OM<#_ZuF->+-3yS@_L8yr}OhtBHvL$ zs~0pTDo=VVPbH}v$zOTZVHBi(GOkfc*7bA6w~}UCfT@_F&+vN0bjgri9qvR5#2R|e z0NNP&cb!ue*@{qxp0AHZfK!zeis~!*i7PlJ1kbJkp1Yd;n2s+g@4r9%vQY(Wc@Z1W%W zkun!AC0x{nHc&s6Xj`S+m-~t&NN+w2zuZwa(g~K+?=Vk?C@;<@m(>cSjD+0yO2F9# z`<3rli|r6>D}_Kq=aXX3DUDiNo!2iD6u7DGtuoBUKe9IP1oCA@+(^^E`f+OsRC{j? zAPv7tEgO?N-$xx%!9HXd3HutbPl0@=2r|e+s0{;LAIdc24|UofCEO&i&L73ugG?q! zjD8Cv8{g|QZ)XwkO_KXbm}@;|zMOa~u7ao-An1}Y@X%3b!h16}*OvOkGfQvuQ`d7A zM@{UIm_M>nzTGgf!<+MQ1tI7I>>BaYn*drbcl1Y`SD*^7#yw@j%MTLID^TcziM1S&m5_?!AIr;UPIyLEeG0>I`R zN03blEPFbBW}6#WHEA6#Ecm}- zcM<#6^*lXw2Ep`$Q+j0yUy$V|?#;OQV{8+wKSjjE!Z#Q+T2qJR)>?eL80&S8+h>02 zFa2Iek&-A;rw{7Zp5a+3ORw_3otlA(a;L-H`_WcSEdf&+!K3VLp63qWr|u{L8wbCe zsVFiD43g1I>jkThInRtHsaxWn+E}$aNzmwN3>C)UpIh<~f{47~^#MmfLNGx$cBowi z4rq;^@u$uVrX0ggg@^hgen0o*h@#n>E*htuTwNKL#e9+cbZGQ`rMEZttj%u~E^{8P zMz(8LmE}ms!vo%*H76w!ztI^MSv_t|XkNUL-Qrb*#FKd-h~?H_l*u2-_EMVa+8UAN z(L0&E@Ydtl5=l-7e+4~s(}JvQyr{l3uYMM%(N*;(SHIw5GvBxmv`Tls$B0xV^FlA6 zg&k!#dPx;~R8SxGgCG74X|SWrth9;RUTD>+QA|i9l{EpK`B(xe8_)1`MA z28k3yaxriOiM$bYQLek;xT7F{4pagR$?T zMZa}YYdLd#$!l`rbw>zZzX-w$(Kwak3U|LWEbn@#@n3-w{OFHYkWlH|{xXHtXXuH} z*hU9IzAXC<0bY5R>rw^FYT>@6t1Zj;Vp>_zG0}rFdL6@yLHVD#++cZB)h~<^m#&-N zTp0GS1)KIgwA1OuP3ldmyndPtdEx9XvFD)yMi)h58Xgm;~ z57H+IK8rmO&*l@A<+czd>hPgCCqZf~_wAzt$=&IwwjJh~`D5OQ!=9w1s5`RA!xxCCL!FS-&+1_C2tjHkZuC6?> z7VFoYLgQLgNna(Pe$lOrAFv~dSJda>|EF?wZFxZbVO^E#f!+riinCuKQEL`ayyc3N zrKLf6K8l__U&5#?7%_t?vr$cVx3J@|#w5@f&I4q9G_v}VuV^ie6$TVv>*7t_$w6JW2y&*!}9P8~<=vaa{2vW{hl zl8(JOi0=39Jw4Bl$UEX{9FKjcw~U}NNk?Vb~JYWFi;Pj^ zZCLV6P|tcGoD#1(2H}(hUBd*(sUMgmK)4m{W#J4u>uQO50B@=Z2S9)=X&OCbAb-Ua z#{-|_es_8%Eq1@87%O}-`0`&aTIx~U5B%YiW&1Y6^;Mxymw*QQf9z>q8R5hdgIHIW zhxjvGbzViCvM8cvLJr45uTbVtzsyedof7uK37oPo>UVL49OXR@+P1CTcjNuPKfRZ- zKlb=v_!;cH_w3e1^-K2KJ1e%;%RLDZbnj1}c z6O7_a|NJWlM!DMBfNHIGBOJ>@vXX@oVj>@%F7~~L16kK$#H?+6fM_b2vRaQpD^WL% zhJ4ai=XND#b5?W7^FN^kqS(d7r)mc0+%v{0f`$@#CHir z#H67*d~2Bh&~^m#Pd**}`XmsdCO85q9&= z*QWJ+93KcOQMZ<~^a<{r`hZ-q0~+VghT-dyL{9GyU9L`CG9bg9@J5`{MkzBp5FLObS`Da8Fz4oICO)B9?Rd(u-PutTyo?T%ccj?}V0O zMGsf)-F%|Xx#OAp)vzXqflvLRq^%4;n82jr*Nw&Hsf@}lGk3XQl+wItWqK}tS z+)>Ll+^^Xro}!tM;(BHq_phZEjYH)Tx@n&IM5+BfRI5-Fl>n?=^lsJBwfmP}tT;`; zHSOCBNy)paH0Qky3ZFd(swyo;eqMIZNR3P~TX-w6pe~79c{;89^5d$H?K!6qqg?No^veIyS$1T2QIh|;X;ou zSt?>_l#(%kq9olG|~2m2EI*MRACVweqwO&Mrr^ zFgq)_gg0|l6RcO>uWVt8C=MT(GMqkg5AUw=H^quX0*=M(c7$PApIPJuGNw(UDj4vU zWY+HxwuTjM8cZ#99l6wNQh@*U%Od@uG%jXIP*V@QzW5Q-TsWRw_9sXmfYd zh9LR|{x6Hr0@oKdPUFrHZppubxx@vl!Rx&`M)pvHlNG3r=WDY4RT`Ux|TvS0qur>FDZ|%Gk6VA5Vh?&AVWwU{O=F)FwvW zle)L|H0~Xmo$gQi8a-Gp80zS@yHJ%v@qcXG!Auz56gZ z(*bjFl&+|0(C)rF9=*2F{$8nJ>WU##H>~pL+Q7@NRD2(-Bug(!_vs%iw-QxRC|1o4 zu60U`e$Y%nz8Z8aoTo=QxMoJ>W45*aCslj>6Task%gGW|8BqE9G_EqP+W+C@X8*1W z_-|b>_fLMoKcUR795`Fb=CFE< z<+UQxBjbdUg^qw}q?*3m#nxtzKwYd(*j1Ldi!A&={v$8-+o9T=#miYREJr_kHIB4J zAzAQFTXuo9r0Lg+AW7x&(~RHtRuxx9ux?-xE$_w%nKl92 zGU6{UYUVR`svH;tFk?hC((HP$OHY82q#r2oQgy-%?_bnpc6NrU)=Vh63jn|GUHhP{ zs0TWK1ruR=?{nQ02MB@fth9I;EeR}3d!=5yFVcEKk8j?wt07kD!y;ZNm-1*j)pQ*> zHHB1bik=-fx-N$U0=dU-6_@d}gTME8i`j!I&*Oe&WxCkF<^a>hmm>ill!npPzpbfz z#lmX1to=65)^qI;lQvomwqMv96~*&WynNecc6)^JD?!Q-szKij_&_95M(3Xtr6)6@ z(zhZ#)XK3pc!o4EmIm%V!3~7sesGWE_hmMoJFA@b6OlGr3lVM^35uCl<=vbvhL7`< zKV7IR-P1+i&!GCs_8qO28>x1F20DVl zZ=Ax(Y&BeklOcA#K&^11PzFJx`9(gAW&!oA^pns4BV(ebW4v_qF`^|NEu>O-?q(v^ zGWJkIUOp`_@xX=s4o)ab?D$`a5u4Sd1xz^tUyn@JVzJg~MJQUYlMyhw#X9j+GS8+Z zEOnt)=!KGDrwzHLYyr7g6le6Ss<=L!G?!y#OUS_I4$ zIVgM)%Cf<+N8dsUl1N`}7e;_1EbK>`!*AZRJH_llqyFNY1{KXgF!e{02 z?l-6p9R_HZcl)_(GOBgchhFJ;QwAAO3p62Yb@MbSly!vVV5(%n2-{p$iEQ-tIHvj#y2fD9#Gj+>PRS41Q_?`;?wOD6!Z_R%L`lgmN z@V!2E|C`#Dj^IkE1cZ-9MoK1k$1<3rU_xL)&;IaqcKDYW+@c6FNjr3^SXLfEogKG1 zAJ^-L0|rpAp`7$l=O%O8oE9!koFY^RDGvDdmw>Kwop*p<(TxNcV^>CtT~W}HErtah z3tGt@fZ2$rODe*JN|2&pM8xo*=aAd{1Q)uoJAu%Ra4U1+pVI=z?`vxBc7rCZ==uA} z-_$PH2`z$*@el&(M&HbK3VqS%=(R}%l8WL3H;_`RI8(xu$v}qV+-r&UOI7DG+%89x zlDVDZM48c=2v{T$bO0+|H!-!cjP|3&Wb_blU|W)g(ne517CqgJj&5o=Me zBJKt=->TG{&O3SMrTU^kF|>3O%-fBnRQTGsxsK7WdS$#8UJ7*|HF`3sSKdl&h&zxq zOIoVd#Z5q+KO2%%oAU6oE;&*Q9gSwceNh#S8J9c>-TaD5Tl{;l-lJX+5xoinwO$9=oCgL4!q+xuE3rB`qqKu%?@Lt# zyoz8|4gkG%LgT_tv3aDDeU3IToF0`fFPz0ptfXb!#*PSAatr42#}N?rARAh$u40H6 z0J@BlsCvYR9W@#jGY{eiU!gnFg0pReZsuK&*$+-fs$JW zo5fD9aVprn#JOLWs{o4P%Bu^Wo0EJ*j;qW3cq(kF<6mGW3ZCe+N7L`~jPEKv9C_I^ zIwxl6kzD~d`@Yio3CatRm;XziTc*R*>`^h{P|yO=bHk@>y4jzQBf#eE-m6VuD)z zt|s_W`#o+S>25@W;W2eD&Nus;%U&Y~=)=o|=$azZuMGXbO3S0zvf4}^r6Eq+?$E;P z^%3-rN?8_taK*6iW!~jKN14={ogg8S4XDv~%t)gpfZuUvp}PC~Cb*v9i)q;Djm z`Q)VKCJ1yroQ3npBXY?`qq)RG=j&pN5*KR~B&c@ZP5sC-g;{fj1|S3RwpqL{)v8+9=DoE^V5keOBpvD04XDv z+1(;m%e?Uoq2;gcd(0?akwEE#CHRBg0a%Xfv=(*p3;p*DV9QD$0bYXz_5=sv_EQ%| z2dkquBefl6*0Op1SD^!9#2bWL^M%$*(v>n|L-|JRM$%xeZzzR9g8?nY`6s9iu{7q?(0xWiybLd z*hnn5Ma_rJcV5x_Du$^(mhEXwQc^_V2wMv%0(7ybL^w9w`n}VoBRk#Y_`ma%zf#oq z;4b-9KCgl8?8S(Llw*^zg-DhA+;mUqA?w;7TOawg>=V0XGzw(_27o!wZQy*jDV;(1 z)LC5Ja6Vm6D62K^2S^diZ0Y&ZZC)6&yGR}WN;8AeD>U?+E9|20Y`h}UHR`jJO6TK- zD`PZu!!`4;Rac7gTscvrzx?WYv-OE~&`MzXGKJ^LkPNamTp^{esTeXC=}w?Z=Jc`9_GcRzBozc&$0oj=`(xVjkp?0o;_e$%{<88q%g zBNhHyw(kcL_-JLVPr3k26o8c9-8mV$IUXtI4hG7~lpA_Y`?XD8KU&7NJ?p^n_)R7t z5t?j0dxDfWwmGeMe>+>}0%LMFd61mCv;c-Uek^F&KQPqaD~LRzG>}&mWK&wr(f6H2 zUB}rsK0kX^=Pa5Zii)CWdw&G({|F$yhjn4&7gay7)G3X}d}Gtf2uW7;D%rZuciCU2 z#@mm@@J50aOOny}a3k%qZw)vQ9Q%yahnd#Krns=&iB`FO@?cGuiLU+r@dt;6b^<|= zeA?j*5C9I!r+_+8i|&62)WAS+L^qHM5}yttJOKCZBH#f`?ph%Xf#f-FU@Dp z*;9J>XvE1kKY&%JIl&Ac-F;8D0WS4%_$J^R&j0oPS-`;$7jSh;3~9+#G3WpJ5yb2N zMVInF{6xcCTo-)P*U0P)20B25M2yldr#=6%^ zo~*juFGIAIFK$w_%X4$K*+@bP?;s zP`i>_zva7-vgCm9dc$7@V^^2YAuCiREN_X%VK@Qj7etMb9Fy{Yw z_9Y^16$_gRzkn#y8c-BT>v^%s3)yPqb<$0{7*+q30|C}0olM#ILg5!8ZcjduvTVnh`W?sew1HkCPNE|VD|eyih>tIbjZdVcEy*z9bC6GuXbKHNSg4|e&lJ~Q*3 zsFw^Voe5g|of3yVP@cn7aw*LY1WkEVjR8=ZmyPD78)bsz=J|>70g;n^1()3u_nxO} zWjwf?dH&_iTX;5FewPi`fPGEeGO#b^a%cJW!z$-#0C@lp)A4_q1ym@8BIsafU4_pY zVyznH_1&xJ<>ezBb_1rIW|NxF+<(LIU*Gkb>x-yXPnnoZ{SM0yl3O4;r!9`7N4+9d zayB9wr!Oteg|{ddWyYr6!U_-2HS52Aob`;VUGVxeJJ0Dr6!OPKb+V}a$`t#IwQxUXiGb*X!P={LDBh7DWY6ryoSAsIBGWS{>V{YyYIy! z_O5XxH}ZgatK$*~xZz6$CJI>d+I@7U+>L8-Ql(q73)jjZooM!#_^=alWihSqw(NgH zkeldyOq6T8X?+-p)Efp9Az2iDPmL<-|IfBU`zOfm zKZ4``8a5rWe=FCF1dUvbe9C{SU)%rHMgF&NocsL?V1wV1^#@TrR;(x^X3m$TSs>hg zjiq!^Hq4&o?DD{ltHj8PDdOrV>3T%Pj6n{=&LgiW>q>uT+~&C zAi;a}O{8~itu8P{X4zFHXb$ndNc=<*|8a8RS+4%R<-Pcm`_l`X_S9e=iMK|vG26$; zVKEL<0%l}}Uy}}q!Y@uJh7}1KTjq`nmYP=pfqH#Rv}kn*E3z!(%3ib%Oe_EIr5KLR z=c4uPookHV@9g>lqQ2Q7)Kt52HVbdn67C*A}X4sjnAMWw2VE(;zcrpldy~Wp#Oq3AtGZ#SjxinYt(C zpNd@b<#>yMnpuR_s|=Qbs^;FH5~NiYbe95SczhJaS6_tMyr8A zZ|UvNbUv1O&`FyWaVeq}0!L#2>iiz?n>m4+K%6(zzCX0`2Txx==(Dsd4_Xo$G{3%l zHCN;P4B`vwj#PWLqyhG+LIennvpfq|dWZan+g>mRu~c0RMR>1jEx*Rotp0Bw`GJaLG*v$S>=D*ise80 z14WWz!og{4L3+EN*GJcKTvI?n@vjTkMLp2ICU8;Rt#|XrD7t*n zJeZd~(2lF-Lo@iXAdpqSMa|1Q8%{2BTGY8hD(8362cj=69eWp5x8IuW~8;#T>xe$+)2zryM zA4|{T**u7e1IeJtK(QrCw0rPTYUqr3k^l9noYDt!* zwq=OH{1B>=9@R1SP+D(w-u))ewC{mTL}$9d{=(XYiPJ%}M|VKA{4>{eXT%S&(#O3jB5w)SbBb=1~cnn-!%?XE2N>L z*}{eUC~|59bt`Zvdk1^<4@X@+3eV_)$vG;W=Rf95DkG^7z`4BQbX>awdnEzk)%tF^ z*i&M~jNT8nG>_{8apiGTEFBSCeOcJMxG?O~)y0{M@>ss!&EAt9em#TWCa=+(Aa_puC zF+|ACIB&H zfida&0Q^%Lw~`w~#9Ax3(8J@m>1MI~r@xsx8~|c_uy2762wu0#kdDIMhRML$y9mmFNou&kw$-dXlLjlHS$s%?}!Uyvz{j?^R*thb}%(=c>!sp(hU5DMkW<>s)i80 z&pdls)+70dYjpz0-{*R8z~UTX?k5xpI@WS+Yjl1{4$Vn5&KH>5wFGUydh_wf+Fg{bnnw+t^HREuCj!Fy zv*kad3huwA*6#n^S*#qNquXOXv<$Yw>2C z8@=0oz(!5kq+P-Xg&#>N)SK@dRN&0!{}`oijOuL_mJxFX3h*P&*fdC)mRfNF;hstu zp-h%ZrK}rbwiwBfBVO)KI4}R%0iP5;KhWs5VfdXr&OPNNP<#mSWTX6B&jjVi-uqq5 zwJ}I?kEW#Wv$sC(#l?1AEb8ZC5dn8U`pCXjNP_Us=WzBhfd7kQWa= z0{QaX$IWf%sTLaB@mE|k}Xo^Ur!X`0#D?Q!L zYZHjg9EWu$jQe8ng=W8sEay-xt!3(iDhp=p2g55ir0~ye@CglKh&>Tq>-JZm^dOW? z@4n(8PZ*~v&f)d&M%s;d<-4Epc!&FS4wQ?%U8d+MfzJf@6FzMpp(dv`fP`oxmsP6L z_)~7@9R-kN6a5rcCM75C_&;>22B_<0xP_EsI`iHxR_1rbbIj`#?5o8?QjW1y-r6Ws ze5hbDgkQ%|0W=27;Tbm`3hXPsF*8kr>Pk`$A{PTN#orJID{FEVAV0tMAjV| zFv8)pEhNu!?a;MK$?RQ1UxGNlbq?$wHKP${=$d}eNv-da|B)-6YwE))#RRP^ z>`#QyUG}f|%MB`ZKis*OlZB3ebhe*nSy~^1eky&67>=D{M4eN(J8ZRiSws}v2qGe! z`hSFoNYM;^17D77Qx%@(KkWEgDvg>-T})kGbh(_DY=tJC1xZqnj0bFyMVFZ}mi61B z-64Fx=8;?HPnI|u#SB}E&I6E&AtW0;AI1}?Z#-gVZ&S@xE%VKepNTmaQEK2`ZICTM z#BrlwJdNzzHPMEy^@v0O(!hgxWX--9Kcds8lZ@OBW+Lp{DC@%t9?s_BXY}#55%sg6 zIsS!{?_T6#TZj50bux1ERQZxRTrcekPGW?;v?8N1Pgw@aFNyZ9g%6qr@zBE%qoDZa zx{xy&t=L3e@}a!|(R|#_1Nb}wKPG;XmIo8x6z91D=-#K8p2MwRs2ZwAl1yb&5KQnx zCjD9_E<#Ww!;HX9Y+GeDsvwii;Hq2=JAY#$VP3H~Kt*D4;pJ;`?#LZYN2R%Uwt< z5jo4R3{y+tN8x)LFA+??=*kDCBJFBPt*l_$7o#$y($Bo(1J!QLu=5kpwH znG5PoQ=5>;HGdh0_Tby}2la)b3*zLm4zcPMUU^=|=m=)CDNbtT{Yv1$PZv}Kp+}Gs z-%gI7_ z0>v&i^jTqe^_*UsrpOmpH;FkDx|PUV zzQ|LVT&Tj$-oG3;zLyWS#y!>W-$P}GOe(AE(6->L!1-!AeWb^8C$TDYX# z@lrAfTBA+t_M@ND`FuC98VE{|&sKb0=);`N{wrg8K}x5ig9ZL#JMS4;yd_Mo!+1o6|wH^IHhr9Xux3Ytw4wK9th_Jb z<=Yqz2sOvZxWnBI4oRfn_;g&g|F9!VP23*nae|$y3R7}j7U&L(#;-h$)q)}xC;rEe71scz0|SQUlHk2QGn(g=E_Jk`1I3<_@rg9K&L@A8Ccbizt+tl& zftx2t;8#lAUQ9*5N?)Nup0xPx8QX&hjV?ae8M*qa%o&y$af8xrbSqi_dOAIv7_AxS zYMj3MfTTdZ+WhQ}|Js#d#D77{6#y-d9sy)D<9F%V2UpE)W3NnZFEh@+k=!x)6l4wpG5cwh^z~GfRZ} zXZ>P+WOXLY>_(7Ak;gmF1)jVUcljIDaMqjejwh)b$@w4G)YdRQ^5q?4(5jV(z zj8M#FX2?4De=1*%AW5WLGms&El|(W6Dg6g*#;ba^;Qff64Or{IHy{#|XQY$UnA7Ga^ z6cbS$d*rZkm zx@E`-BBB9bR(4s2D1s?)z`m`oS0i#jpg9m>*UxdTeXh(V>zH2{)yH;hY3>>j+TMR^ zA!Y^U9%C;`pw8p_qXc|rJD&x0TyN4>ToGhY@U!0-YVN!|LBa|MgfidU zK+i;5Tt%~i7$!OVVyS+c&48Q!@(B=Bl#kNI0 zxvJAjgm;Q@!H1+oNpm>L{Z+A_O&J|25Xwr=PeaS3NV6{HSiH7D8Xat3-Y1uK(=<^j z$7t`)3wZdSAZhs(c{$T)3{XlIZhC&At6pUGg}=Ck=}oSbKa{Z(ABL^K^oNS=y3qFK zE>;+=DG(&G`mKublnV(lbuR6{&cd!i|GGF{LdlnAJy>%EE3j^?TBQ zL2)f7BDA_xXYMMJ{Sky#C+1&WCmHcgsBW$!AOC%r$$S#Cxt_L~YXkLws7Q(EuP=Q> zNxo^p?P0O*VN_(pw;3#aYl$DmujoeHfhB?8S3Y!L-586{3yw?fL$5>q@Ry&5j#eAId36F&tGN>iZ6L=ZEwL-m9*^?s|@`@LOJJ%x}P z7%*>vPtFuMx8PG8{~5h@*Hm%j^*%AKS2ED+ko)7m+e^Z)$RNgWBo?_&}fi$n*XN$kbbU_pyX(9iSE|8H}n5*HoeD%rI zF=bg6rRpv7`(5>!$NXKKH5#|n)Rw68c{HngE`K*W_V`@O4VT{|&pc{Z;H)ZT=*N%U z?IC>2KMlF^>pQ$IzcW3&AZrRT=Qp{zvQ~+tGjfK&ai5EQo~2P2AAgp*M9-iEw@bj| z<=1ORM)*AfmC^p+T^=z)+xvbm9GU(YY5CVAj=ur{-mh^k{75w8%B}$z=fmoZ+`rG} zrM64MwiGvkNU3_%ixMew+t>RqU+RSqL|?xmH5Z)54?&j@3oP5|n>cMO?WSKhsqy_> zAlvfv;m2S2gxP|6RaeZh`knmzeo70EoWR$9;g*ucB`L!+ar?RyD^luDZ!BpDzF{Ge zk9Nw8OycH1jntR3tp0SEcH@@Q5_s3w!h81-dtfTUEi*P~Qq}zBrfYtdwMfkD^jkPMFJBKn zskU^p4G#XMmkOUuCg)kh!FH)F@W}=bJ>=l*7AyGV|K({;MeRXr3(@S0QAqi3dWHW* zH{$>NG%1NdHMfQ_Z47KZtdEN2oj1Y3Wx}bNVkHBlx#w}6r~YK zDG^CwL_`rOr9@(o5KvGgC5KSyRO#;Sn*P^2%(&xx`#azHPyFYO49+S>Rb3J zk&CbBs3tB+%F;=C)!+Pe2J}(!r-jcE%{@D(eqZ)$$lTXF7a*X18vQ1!H=}%_);@;_rXZh|(P^B@YZ&lOz zU19&Jtc!-+`Drk!<(mgG$^HY>aJslosn(meH9CAY;#O22z(T0}_1Ug2rV`SDFIv3H zXkGwAwgg&O{WND2-)jwh}Gs*kOaO!&B&RcCBJq+wEFjQLAi-kF_fiGqU ztJ!xhm@L4*p3M<1d8}an1=3m`X5uINsYL6pviBBX%DX>3=^6wYITuy$0+LDHz+&<6 z(sAieL1b63%XAF6m(uXDa~m=Ai(I&;S20Eehix8s^F`SD`kqL@lKyq!4s2m!66wN| z&r-10)+ht3&jinqp3saw*-z?#fCtCo9rB(*&36Mb=mov^oX}9TK>+m3b$u`~YGUJp zVur&r56G@t9+72CZVbI+r;W=z?a8ddu5l(0HG4)Xz7 zwJugbR7h8*I-Y1<{b)bbf$i@DNKForkJkIYJvol|)Q_36V1KUPXWI1Q(`n$;Sp;9G z_TP~d6(@K6XjRLpYv&`N{Ow8dVxhz5-*_EAPS*DvE~tn(7^{-LSa_0|EJiCS9cmSI@PLHYhWy)Ms)7uo1T*Fb4+V+Z)FP%)+d znos>7`Re~GF5;|ZAzbr_7%)AoI?SHyx6G7{YQMgZXI6+~zt+W3@_g=#Fx-P}Fa@qd zz&N*E!0gjypIoWCW4}pQexof0JG=yJZBzKqh94;gCikO_%HE2&=Hi-9V8sikhJ2P2 z5p1gfa&iTfHUoE7-xD8>aU$)CjZNwBU?%XuA^>8LZzg=hY6?5^PEEJ92EddzhE?HS zw$0OZ(-LyXZbpjQrMJb{SkD|GzVWsnx79VS%RVI7)zf~BL(YY)L?1s>u6_MfJx1Ol zcOl~;E9p!oUP;CVRUfjQ1x$(|8&o^6Djop-D-uv@@Hr5Ec}+zEXlc%<-Zt!jIz2jb zJ__HPQZEK`-%9~1WP=Z7k!Y0$6N{Zz$G#Hm2O5m$vOJCvEMK`I;W|-|*|16SdTW$# zts&?!_U(=t+7PJO*G+1a0S?3<1oJjIK&K8E1}ktxe~P!#5X0qNtLk73qG%^$IG4e` z-Pf58k-uZ4kXYe{gM-_b=+=3)!{!qZ(Q~-e9?fS^3M2)}01DQ&2pKxiZLjGk&kc)` z2Ga+Z3=pVjqeA=WNIRAEphBPkH&I7lrY2PJLjVwrx}*DqKfpi-*ph~`ccc^;;F`D2 z$g14u+j61%BJ(7ZAVl6w3<=&)%M-Ru7)D1MZb#z5u&0@!t)k+|41N=)g^cxSt`DWv zNapnGc;zCjxaw#7;+Dl(L^{e@$HIjj#+d+9dUmk2jhj+Q@`qLxF_wI0(2xF2JE zZ@+7Y;kRMo)Gwo{1AOUv4fNh%eG^$;AHg-y2XJCq*1b7#>A`HL4B!_qBL?^~Sk}(+ z_vtH&lpBZ-t0orDc^zZ1Yi4fR7_XiB+By_f5HW|E!S!is5gb81+v3`99XK!-K{WLk z4QbCEW>O_j6Xu2~w8e?l-S_aA)?gFy*>dnIH*%bvrmX2q21G!t4og}D*Zzt)F&pb; z))4m-kBkQZWIj8=>M5EtBQ>-dRzLSrP4KQ-48Pr+eE}X259)&>JLFkv)+U<<^V?+R zK_^2@s6Fj=6Ecm7o8y$#Y;lcw=+@IkUcJK`Ti#zFxdAngmY?0)5m|U&hg9x*w;Cxa zU$&g`p@*xMMWO54MmX*hBDSu}*S6~R?LDRPQ|sZ%w7(#5cWJI}_H4w5mgf2!;pYxB zWB`3YmWm}C=`Ishk_UpS<-N@X^d2{EB>27HxtLxrVcpE+(a4kW`Poq}lu1J&!wjTx zaQl035*QbFQ>Q};1Ncw(fGLP&T)bbs*@T2HBQWNL?%Dl~IND{ie#hxR!GcQ>Ms9gHkX^o)@h(B)qmj zJ+Js4g}N^~hrA03txNoxtTt>S4 zs?>yZP+rJM$xc=f!<@6>DZou74S()t+d>U&x0(&jeyE(9Gmbepj8nNOUj=g+r^BtV zHDeGmSRsDe>nf73t`LJ*qJzm)e^_H~b^9VAiGpI=dh(i@5lA~~uXShIhJH%dfir3b zZg*pH-bii!&>I9C__fp>J6SCmjULy2bo1cqy6SankZv=bE=`$2@Pi-zz&t< z=|d_8hkyZy_|dPn71K#RQ+jY!&aD^9ryBY=loSKyd%65vD;8r4?{r%SBA_8%V$s_| zNnng&NxV9OcUinS#J{iYtGzf}v_9u(D7G-i|vb^q$4s3~B2V6Bu{u zGpysk^a^BaE5%edviTDi9qUfuCY3o2v-t;wr{Ex~La-OR1@4?c8sW*9@s;W$Hb-+& z!Rh%GEVGd~Wz2=Q^>mEywH~8u9YGcsC^K3FKI;nHr61&cZ?ryx)UdRjYXIbVCNoE! zKsqS6K~)SAK}OW$evksv_}2U{{4+yk3*och#7U+>!C&qM5IhL0=B10zd2gbH7i+y( z>j*~4Az!5Da_U(_LJ;>;l|magt;BD?QwNW zz(#`c`?I@-9;i{fie70G(#+RcP;{6UlmzFF&gegJT;t{&pM&_u-3tlC)SizPs*5h|7@|2i$k2CIpSi8>RG(seV;rJxe-NXkyw+=CSuFF4ai89=&wS4FA`OU(4IeZ zlmj#Fcj>3RkRL;Fl%3fN3)bI6jO$IDv|deBrd^9j#VH)R+5iT-(#6dWKO~g7PWuH{ z4i$WlBvcCDM1r)jsL6KW>2BO2m;C*}V-AWYEzVN^4=HW>Dffi#s^N;hB)T^8I6W6A z%KQ;rr1$LlCBsyu@2?uKQhSfG&Fh-@0+A=)Q(4RUDSlr@Aah?PQ9gPQxthkl1L!(Z zv6BOkv`uQP0wiv=1iEjR^q8{O!m2I9WWKSwt;i$200m3Z1MpyN=$YI;t+FAf6ShRErsCYI{I&l0H zcka!VMCaQ`WxYjBzI*?H5ayP2T&#$9&-Yo=WWkC{)0zF(;{HQ z4t>Fbp_BJPP#r$FC3bX~iDCW;K922q#*s}9iu9FIpgb~BR}MJrgJ94fWR!=tD~qdL zKN>S?aGo$Wa!Qua1z9)lB2WAe8B9F6Zip^=gi`iiPKFH0ugEp&O!MzlN2Y$Rg~ z8IbOvi(YX)q9UTY2!{7QmU|bTw$%YjoEvOoT+tl5XhPOaiR6gpxNWAT6|QwG`&V{Y z6~TTujBuFqVzsB_UFL4=2V-Lp2q_@^f3HoMEpZvlLQsYLK9^$t)yQ*`XkC`37=e4x zHXQ&;C^K%KRzY8q2cmS|pzy67CIg1z;@X3KdEx?B>ik|*RDQR2P(e z>QK+{R&+AcOt*W!CTU&b1$M8Kv&HFAqejDfV9+%Edt2UhR(d>B8* z5#0zyaxWT=85obA@>vj(0J(!l4HegK=wNbYdTx$=AUl%U4)ZAI5RLDDm9*g;I(t=3 zU=B45qH0OzikaAJ@2{7D!4lolU?ZDGe@tgD8TLa@<`pOpQF5zw1j(ChA z?w}zE^SRP9lO}-gdUpNWeVb3>ol3I+adSQI%=>O6eL&63&yRkE1~%oB*sxLV(_Z*- zFyO{D-u8?6hifds@VT!tDJhj>=740TT$K~<`soTH4iFJ>;1ZDt%9l#4y1$jdW>OwX{fvovf{8wB!X z5uw3SfP6`#dmv6L|2en^?=I5Lhi#B?5%N?h7c)IKBK^lqsn^fjpA zhoZ(O$A~2}7Eb@I!0LCYw?PS_-$H*2==NQ^-cB=^=E?cpO7*VG#!N@=Op%GZS6sYk z`pu0<R?@CDfSXeK(p#$|*at!*}$6gk(~=gmXuV;^-T67_aW)v(Q9zEDXt5 z3}(tG+4EEmf<8K@+0OJ{NxDlj>|A=!o-_f;PXR*A`Yt8ww{&*Yi|_|$-I^XaeIBKd zu>ZjgC8H$}*LN5X*!fned(t0r(|v+nAd3Nfxz98yKi}bkMD6|B$J{FdtP73{Uf|INj#|B(uirw?@i#Yz2N_Uk;fS@qZ7%M|>qQ4cr_(bnOwwZ;?K9jHK;vHUAXbC6i{(z%8l-XL8 zIs|UyR)Lx@KTC%==!kOQ)$rO*QXkJ^{1m-?=z~ew_2qY*%Z1&hnnRQ~rYtthaBGa) zAUx@Bn2|xu)QrU0B+Y_e&B(==JCch9-xER-)CEMZ=!UUqTG(qa&V`?@W9$b3tmn0@ z4+_koJkQH(SAk6DqF84KOH*bu;8c2kx^PRlJ9jTA_?WvKh-&y6@LjZ(`p;z{2dFIM z0O#%|mW6tDr~sUIsFRy5E_i(=HQcV;*`bA@k`390d3)9r&skZ4Q_}G92m>E z^S}V!#QT0^l%6hJ{7Y?W3Qh%|3Uc?k;VNP+aW`%Uz791-7pL=VKQV9Ldw`acOteY^ zcPL59yjLULT-=e!$uV62F<(y{149IfwLso;2@#SqF1gem*`)f-ToNfH0 z{$AK+8is^R1^8G^?gID@oAoN&aSHT04Q%!m4J|;6_`S>lT13B#n35O&P>l!P9s*-^ zcN~HPi#0SSoTr2Y0eD@%L8=V2Gm|%lGW~EYRARsR{~8nh*Py`bv$}!u z^Ndw7n((gwJ$UZF_TB%}uiyB{6Y<)u0{t{l#EviT{wYhnWYX~N}+Z1^6cIpD>% z9A+Y9zaR^UIKu0Ay#<88e4}5PNCmw^>=CC#diEYnquMK_Nfe#pRn{-g8_P*mCu&&ZmLmp#zB08+R;|M?V-UGG`run3r^ zeSdIp&?{aUj2SX&+&38`8VDG+D>kpcqVf~co*QTRO>ghAqSy}p>}F+>y$0-0P30UaJz7bVnJK6oo zs9`v_9H3^j9e&34Uiji+APF@9yC_R1?Dg=btUr<1qF*xoq=@)P>8Bp^_7kv9-rJu7 zNq+t40ewDN_bbos_U#s%*yXEuY0owH?*Eeml}i@iOC3G77FXf?ld>C z;&@r{uP8B{h%`@d3s}AALlZvY>_+2)$)gWP!)?kgX zeTj9ElQ3XK4^MZIn6Pbm81|om$UuF~?Y}H+33*>Q)51W}chTKilpGs`M)@Xa|HU+C z$^+AU(DpOwW#LQ+jFR$1Ee=(8-mFl{FObvtunEb~x~i$2qoiT}HIFeL-s9L(d*juNz~wBn>f z9lr;`0rav}d8F^)=1OuV4>*}%Vnck0#e^s4(y6=MoS^k{c`7v%n7dpCob-smAQkEMZ14hrSZ^iC$@ zu=|XdQDyvTzk0UK0}-4BXIJ9?e;vfCm5T;Yp=J?vnpV`t*c zt8<4uGM%qf6I7i?osZ_;xOu6+|CIkz7*faXIG-9NEdJrw#?IcM4YTLb=`7zcz{%Yq zf0)kqrQ7pq5N^LD&Nr^A?VS1MF*O^XevTU}8Ti?R-|(NPZhX2m>)<@rcFSrOs&qpi z8;`U3l;^gRzgr*Iz~|qvV-2iM844gV$ow@q4}&pH;>uj z#IQMw2{pd*?zQV;kC9g`v|%@ee0qlt;n%(%Z{s(vrSr3Te$4{0+7Iah1I08pVIuf~ z^E14!fy;zL9G6AMKQd^5q@cE;PN;&+|gcTiGjt z?;L3ltR7W+#78QY?qVPmP}#u$T=Oc)JIy$gO)AsQiDf7qPTxX~r~OThP9d34%#;3U zoZ%-A@0+HJ$-BB(i@3`EmAeoW!j6(<$-L~_EkXyu^}|#aIf#58{jdmMX=!PhYq_K? zyN68Sk=(^wxyw=%O{Q1ku3VYBu_LBofxRiysrW%3v5qG6rNP6W%*`JPf%9@u=$WlG zRaL?5N?*Nw|NDCU^@Q(xAoC!D@oo>a#}E%(O@g*nnJSdi1@iyNZ|XgBzcNp<{c`lV z)B%m;^uHo?g5i=w0Ds#f#3XruWD-~+jEY$VV3aSE!*akFvknbD7(tKnW%fPT8oNP637?5+>d zz(d?t1c}=UpGyBTX_b!A4^+>5JO5ZdFA$=AYY55z5jdxsM9%4^%{RLT&z;@4FypV@ zow+XzWx)jXKhzE2BTz&i@mTgukdLy@GoqryzAz#%jZN$-QkeunkhoaEuV*3XzX?3% z(*2HI>(BI-ype(8DbEQ(mOriAj18bPqM5m$l2T~%Dk$f4U*UeCTVN}jnl^`5d8uO! z9UAhnj7;HIsA%UnG$k%X)I3TaOD^{}ae+7?GoSiiML`OiG|y;P2;X?S$w0?_>IZ)5 z%4#UV8jE_I=zmKO1w9Ku?T-bh{psj|@IcmU=XW|A!=PFJERigiYLdj=CxlGR$jGpj z@FsyQ?Cmcgw%p{z@+&Y|yL4%3DLZscVl}8Y-$u@=*qILX?-~-bR%Z zu)}jggz5FXSmu-|Er}kyvyLoBY^sgM&Crd!iBex&q=mST! zE{{URgMzSIJ=UAkd9tcs5X%QHJ-_VU2Td(^rwS^V8w{zIRPS+m&WO*fRcQo)zq925V5{tYx9=J>LU^E4f6u_w zE8Pf8gK)^FH-=fZ+b&LWuptSoNKrvhS&MzoX7g(Oy*_{8OwC8x`vf=Xe{#E%npa@pOBLULpm3M@pK=O(|$Ps)(i(gThOcemjXN+Mcz`mu-RgvKzt= zRQv!U^BKE6EL+D8vlTQg?|}%R4d>&)fUkyaX$Yc7c`oP*JY|VsAJY>|>&0=}VlePi zT$$FdMC4X3&LhE|LzH8sqDFXv&0+*K3#;YEZ3Ieaxvo)w<85~ejEj%1V9Wbh&Qky^%O9x6){CiE9PWI&Abt9RL-O%IW(PZI^ z39`N)Sa+?h@Oi2qz|SbLr*C;_f>g8e;D``{AJV`W1as%}^MP8A;}QVcw{4t0`1D_N z>^tuPX04O~<#sC+jo{}h0YCe@@Q$k>XY8FRX^7-114X5~;j*iqTS+xL$r@L~B>ga+ z#kU(?I=GDizU@Gm)Y7X^?WpY&f}qAKUAECHGkqYOljFo>Vvy)Nov`(t@wo>Ti);W1 z>i3?{8GL==PJ;R~UcI+V?Vdu(#$_RoAi%S>*1DU0F;W~bSnlfkI?BTLE8qXEd;m`Rqr2dfEsn$A>hElPIRF)M$ z9IY#PrZAisYUoN{**eyGa`NbbJHOVl-Gcl!ug-3FgQmTKA2X4@<;1hje(`?Vq4i-< z;~W5@TCWQ|k!zDnnDsV~_t$fH%O8R1W}U2eztH#M*f1lMOJF_f9l3zD)&%1hvU6kk zd?ftv=;1OjkfJ8%L8S<_$g9cmd^pzOdOI4F?G}OH`}h_Z`BZ-`*i&N2GZj6n1?&4k ziAh`8S@J;iUmjle+m`YGYKtX6az#dVh(tKFTEpX(@s~Y^o2w#<^UOS@s!`rsI5VsFq0w0BHhpQ;?;1JmYvhkVZRlcweaQR>D{b7uy-L$ z>b?y^wR>Q1c`RS&{oXm$T+x+xdN;JBkJD@kcCy2fk~rz<4f(YTsMHIX;YXG`X}@W`RRMOiagSDW+?<`tkHN z6r|?WugU=W#ME@8j(>0cS5v>vB%rqSz71JJAK-e5=X~Slgqr2Oj6@IDPMzOi;Okf~ zOK+e(daW2C2|=r|3PeS>3D7M>W}Y!)dH@I>c{;&ETqR46&Q7V550tB)fIIRx`p~sy z*m{sg929zJ23!llYfd+E-z*jykHow$tcbZ+`{*DbtCJNQ=PVW`upD;)xE}5TbT^`A71OmP z-4}Ws4E5rMeh4L5g4&OQENmE8bf*u_=-;20M>|4^K#8$%X1H$#%D?aTO2i*oo_u!) z6ZbkKt6`2(nAli)disbniY;ibAOY%FY}(e1eUwGCyi7d&?!)=;DEC7`T~v z$W<&fGa9@2M{chLK4(}h0tP`l+IbjoN}Ptuy_SGasqkqs8hSZzkYgC_+!V`XDl#<7ee(X$GO%^c@RaldgOL+A#ydCktDYLaE(A;+Wc)xW%Cb}@RUyK?J7 zF_55bR>pHIYd;vAH=PD!>qh}2U}~beEX0%+@d^uUyi2UH>(!;cBH>p?c@Vsrj6V>? zL%TKHd+}GmNXSZs6R5PAPPW2jx)1H%8PjX1(D<~P8!mxBw)B>*PjE!jyU+mw*8F$C zhl>HcX)yUMV*d7PO)r~deu%#?2oTzN$i0*T+j+j&u6PyP>mU~Vuca9Sh%>fL?&7U5 z3{{Q?JGdK$)9Dv)xUWvrWE=rRcf{OrLF1n3!=ffLz=zK%g`W6nW0u*zc!4IMHW~j| z9p!Kj8}jl!o@01|yF|vfMVB@bXQ0n?vfhl!=yPG%x>)0Bj7aDb+v06v`IUlL75}~@ zV^jbKfdx0jmpiU__*Y(fDOzr`#ypOXc?^J;=aWJjBPTr&=tMN6bTx5pxnw$N3DS*q zfN)cfetcOA#CKbIWf|7s2DC5Bd;rlepZ>v`venMyl_IMb+vuE|`RDq#I4JJF5$NyT zncf*kAE%(ZlzG1r^kcL%*ecxID8V4H$Y%P0x%J3xCe1iePN}4F1)V-l#b&^cZG{*| zn$!>TRQ6toS1srs=BKream49NJ6jHVNZ=TT=VZ~zJ4N(RtLTSHuQzGun&UW4&WK^W zJoTqWb$-~9`R^7V5dKI13?4%8sh4IAsVx|^!XDYnL)$nk2jpb$Lg2%90{C!>&cI0g z5oP0tRbP7$0T5gT3z$Cbj#cECy`5171|@zU0BW8Iy?*Ha;nv`XYlq~#7?b(IjHvhM zj&Q#yM=t#AWb8?io{JB!F%5utEKkSR71KF=r>BTTgj+8NPz6g|d$JF3_m382#yb|p zMQ$~w(8N^=bL*uw>SsB|hNj^QDq7F%`v8Arjh&WcI8P`9++grdnf@J{J<0@-S%4R5 z&7Df@QzpjsStnogb;F@@Fi+1E!quL(s3!P!tld25Bi17f+~QULFlC7t7F+rJKzlWK?L>uXgjcO zZ_EHj0)PE|dB)`F*NbLMQ6{6v+re#+61ps0J$$bJL{eLVYQgs9HDm)`=<^5}C}zA; z2YmSLQZP`fN5HJ|G9Rxh<=S(nk8C10iiIymp~HpWU~45{D@ZygJRMDdjO?#APonz~ zJ`5-thsdvmQIYOd?#Ka}0MUTAc#GXy`?GXD`w~#Mpy-8xKzu1JQnOL1_t*u+jkV|c zUg62*X2Qm4ncUw)8t(?jST)6z0Ip;YlyAwrYXUq-#y*TlbB%ex@aGS%(`YC-g1G7n zE~7!!DLi`N7sn2GOuSG=eOJE2d{7dogQy#Le@WiFX;eC+?r#ptBvqV!1%N_6!EgW~ zjT@(EfU3Wu=6}bpcun33+lI2|x>Yl${`XzwfAWt0UtjC`JU6XU{b3T4%0vd5B+TLT z0lntcC^2mZ2ECO~W~px#i#^39(pv+yp{!CxZOXi% zDGAQQ28;6(SeW07bu8F^ccFANl1Cn!2fRmVq?U~2QN+$yp;90M+_>B*i_lPV7&|00 zVeSF=WYZknlXRm{PDV(AGgHG{#cW#LKr99?1A{T|K|<)*C7_Av^=%52UK%&kC4SW6 zI{k(YY!(U@+P# zETG#DW`6xem8m|Xy~G;Oc`2Bjfocw>oQ@|z%zAhk0};R7>P^I;42x{q2pB=JXJkDU z`n}d5%K>6-DMEIRo*j0*3C=(seeT11E4z@7WiIWdG4XCM_C`u<(tYC@yToWwVStFVytJm4-4SUq!?FB4hw%;CNq@a&#J@zMN z#i4YlYqL}Nk6r1I2nlPu=W8Nss2vg^Df)%Il5zkxu*6%GieXT+3B6YJbl9Venw(EG4lMD>xKe**Yi7NQPV z^rrszWk}|kZ3iS8RW{(EMfjZ>^LH#eLaPKm$opg1^J+WQLi{Q7xDL&?yLwspJw)D% zod;Z?PYcK03iv3`y$}8&#;iht$FTX%mXT1Or8RQvv5f#|r1KbE~aAW}K z`Q?K4ej!@XM(b2oE4_D!RpdId8~?)5@TsQN5OWQZBRMQPS7c~-mXNw6Lf~tRrXABS_Q7c=wr@J0@U%Pqlqq8h#K(tiLzq7; zdS~{;@U>T_{fi@`EOf)3JJ<0PL{*Sqku=n9AH1d@<;yh@o|Kg2-f~-(RD6aQfq>rQ zy5{j?pyZy3hlfX(I5PghmxbQ^$yM*dK+3gRod4z2>UV+aw>7|*+=NqVA3ih&G4L3i zRc9VkQeQs&o^8(qzsuU^KqwR4rS_au?73vYtpI3nwGjFL-H06NWG9dRit!Y8A^*rn zl)pp%5tQPWb64pcc<-l}T9Q%&;tlB$F`qi^Ch*wim8ASg03GddLVRot;^PKoT2-Sw z`hZaXfKVXnb1h|PSBylfV&Qb59H@Y2G0KAM(g|NnGIPXzFUJh&k!aWa5oCk(NIw04 zrbmL1D|SN_{MU(`{1>s+{+CF${Cjs(7zV17U;j{@B!M#wICcLUFbdYUhY6I1j5SB) zlWD@4h-?Gt!#H(|3qRiGQll?oV}Zta4s0Kh_CU3qb*-p@4Mf493UP#|=huOz+QnCD zA$)~>SC524_pf>+^$M>?(Gf~0W`Ik|(jkBEDg(T_;{@wp%L6``_7PlzRCa$t?hhRE z>AO_tkL(s$+s`D^1ms9Nkn9xE7tEMJNOdfiGAZ>kAK67YAh&u)^=~9bp2*>WwVCvJ zSE7l1Bwg6X#t#w8VUcpdI`$w;;Ud@dJzEILTfPC20F>eVp6#7RdwY97cxQf)c-lZt zOTITwRUa1?N2CPz?`j{N;x3NjIhz*tSoS-A7d)NIWI}aQ3IUBsPQ@c_Gb@*>cCtio z32$;DXlXHV=k8q8h)lP9gww)j;Jfkr9_?mS%ELfGdLq2Fi7kYQzu)JNly-dOb~r z76R3e&u98}d2+R{K`wo=OYXBL>6z@pN>v9yy+*j;zkE24cpk*D7bU(SM2goPMJQU zCK+>3#-{aT_uyb+vE%=L{uR{pBMY+=bclyl~laSwU0wrAYO)6#SRrs zz-9`a(4RK{9u7nHPGR*m zWl*d(N#6O3U(na&0fMc3molm-;JvsYtz~v68K>? zE4F0;grABmbZv9#ztV9~(8yZ3|D)yj^L92LKOMnOD^77p+?49HRl7G0bnHPokoOeh z3F#9;RZO7uM~RHYT*YO_N<&ZXD()=orECKn;@dXBC$!dVDi*4Tp&z)A_gvO87$`V# zl@iN7Nd1(Tb)9<8RE?Nj4JC%x$;?q8BLa{854!_K*zjPbmH)WjyNZW@d1F*P8z|B4 z_skc*F}9~cixLd~rQ&Bk(~wA5w6h9lOCkwNa69O%2Z3l7N&8|#ldyU(Prn?1qJb}3 zqQAYABGB8eK2dSyA}nab;j2q${hl~rZtFc0mqB>Nw!Ig=CEUx>L#kf>)9ru4e?p2v zD(6!HCDGsfd42zUW-^rliCo&r^WWb)<|_0v@EZ1e4TpM5Zs!j*0==g?#>gX#)vp?>U>sdC;!ybswO-!E+pm*};7F zH=vHICseHA+-G^I2&<|8fAP|>u?(0J?R9(BZ=|T>pKQOXC+FJnfOmK8>iVtKX@k8O z-YVKqT~)%l*%qP;L2;V1)`q=kfg(0!?syu`T$a9SMEj?j1tZk!ocbSE} z`sy5G8Q?!)NTxDEiJ|h}nt$l~F{zXN90Ce~0+R#(!q=8_B>SmMEBYg!N`RH9|79iE2v&k%Oq3rIEy=tU9S&yue3;a#=Jzr0cB3=H(! z0Z*N9pI|*oo)-GcQiYIPD=JB{686yKt*?265>j1oi0dW7Hf;PFY^4aTZ}>6hNw?i? z`21K?Fu^MFi8jveE*>La%&}Fm+vCcAu=GYu1u_n9|H6K%ir@eO68y5!GZAI#Cuskf z?bwZ+M>U9%$3-ylREhS`@`tLQBy!*1ZXAbZazF_Ik_1+Qy{DyO9lA=Ojr&Ti%rA)x zvhd)E{cbu;&ynQ2{%%=Q$Jdk#YuMS$>wF(Z-+Iv&-WJZ{nI7>hgm5mOT}gRKAUtdR zU%aFZ6mgGH@D-9-k^;(KLD#>v!pV9EHeeRHSFUwFekhBe9x>Sa7fS#+u;zB|^s@vv zrl0vriSQI(z0pzK^#)nmBB6x)7g0!!g5;rt;JR;aouHRxrI*E;F`bunjQUp|qWO`T zS2ZJGzE%Qenz7fkShKM%l*~TYsmc;4S|)sudR` zTPt^OekI}rbXM*I&C07djKPNA3!BHdk`LXnKO00E`wZQ8JY*0+tEm(W5NxObM5vB? zj>9mNPlflUeK8<-FBn(0F>FR&@m;o+#KeCxsn7aUE4Fs$Q%mFiPzL%rOp%$5`z`y4 z@am1&lj1<9Z$TE`_P~hJ(xgJTr{C+2#C0SM`BmJSe8ZVMTzfe`T0u(4hwTNnsBmj* zsI_URYaWZ-={l|oCewJ(3q!ZWbM}1+hpO#sPf-0Ok=pd%JEQB^8xV%g%|M4b##pLuQ7fVT202V z5)6l=cJSk=&NgiKWo3n%fL-sFcEWqst#X_y1Q>*cx9oveVn&tajx+%LXFADiDh|`l zXnogZ=gnv^37q&#Y$rTHwUd%;9CUf#kVAgUK+h-3b(=2=II@z52d~H_F@H2HY=m0q zg}NHPU`piKves ze}9AjxntwYVEAl(tBhT2cj;9j+3aG@7IJR9`11!A)oomL-}K|WM%&FECKw;bNC%GA zJI}H?-EYESnzENfyxmf(vXvaHP10uI!Pw$93o^VsiwIDHTH|{GL^Lb4SajsfaTsK; z@M346e8k_zP^?$wlqecudFt`vIUM~esZY-Ne|^qqb1?QwlF(Gna&-O18&NVHC2A+^ z6PVM<57##CI8k1U8Pa)ZI?PM$&4P%zj&ww9UAigJ6uL9t@%Z(%NIgs(Evw&iKkrXQ zg_yVn*7rc3>*W*Y70#PX4(@XPrp{N9O~O}s4nfladn4}7)8-+5sE9O`ys3rRu1Agz zKR+(eC^I-ABpob+Uoc?a_Z>!~$(*H!l@;Ybyb{Z@2W}?6ZTlXAGN3@A|2G|T5=(mj z?3+Ic>+U0jdLozCo&pBaw!KEeMG>LHYnUQ>yp^>oUnBgoY}?LN5$(6fqO)YJewg=i z-p6~ber3$JbjHmUm#u#HXiL%)U&MB>q>_o@GZqcib#2 zCj>BBNY9QK!d9EfTG1(SQefVrVox%J159IDsNTUfj*4%FY9fTj`hO+eiA zoY%&Ksp2R+jgWW-{oqy$ym^SH=Tav5Q+}E1$9Z%K+T8`;5J4LC@9LG9jxVx!;APesT6hUdG_k1^UV)~$-7$BazlWpqtaqf`je8~;k&YV+z#8yKgZA7Or? zLpN@3YA`v*Ed>a!2`tCeBSfin<{10g?rDyDYA8@$TRw9~=)&gcDdr=bJ_06UlcTcb z$QH!XKsKxaef^G5rO(fca^lgpwXmVdb>0xB?7L?cuUKdwl`lGwZD7%UiT%>w`B3u! zK!yKY{etd2fq2`yCsH-An*6jGQ$jB{?GwdvYms)TIb93x=Ngu!&EN1V&UpvaQZyc& z7BZV$n-7g2w(Ry5R4@-?a;RZ$hea*}@|PIegLbLlyXHQx6JgR{sOt4o)|x_Wc{@(~ zX`E;Ko5ZL#vFrRf|9DNu-a+`pxQU7*lo!J}&?T zTXDwCd|l5heZq#Bu+hHHxNC4FybXuB=1%$VaNvRvr5y?wlBW0X$*%(g45t3NIj9=N zx~I*Z{3Qp)odK932L(RouD#?#e%-hBftGqKr!Eh)p7h37BdEyyD)IF}@;6mAI1PW~ zyw>i=-`QC%o&V5#V99H}vD~u#q8vJ(;<&%;G866R+?y)wytEY9jP}!o`(Tw1SN5Mh zc6!#AaP-nF&lbiKLLmLeY1;%DfXJ{HKTHX+urB?}AxMSei`FG2U7w??wL#Sk7q@bR z{BHwA;pza~{IJMp-*MJ}JQc$mjG;U0hBtkbZ$8gqo1EI*sTEq1UH>R8!Pl%9Sbg22 z0i`nu};m zc`@mB9mdZ?VELYx9v~a^Q$!2bfKFbTg2PHW$Qvu$ic6w2U#q&snz-KuJh_a1KlCEh z3ldxS0LV`{LE_$^&&(Yf^&bDe_p>`3=wmHe3Hihkl*|E5}mr@?&*eyCqcn5(AqPrQ~uRuKMG=xQCCN1OC^!cmhs6h)C@;{AkfxI{QvNz{5PTd;{k~DO$|Ro3WT}n%4)Laf|)9eP$xHEd#DE zjVfKE%a&SYC9)|H*e>qoDa8#(7}r|&;>YvRwkvjXh*&E4dLE0FHS3m~u+TjhwJnKMCeq3OBRaeoC`c7W+O;!QM<+kSayj%F4VHaF~ ze(i^wWnI1wON&d@`$d^l4aaEWa<)ud8c#cYWX&jVQ$sEpS3yKJ0wF}( zNY7@LH-K&WDtlij+i)-fW%_-8#>oMG+R7eo+9VIhT5D{Z&~#y|)qDcF4gpJ-n!8YT z+qBMasjsH!I8tIW&SxABByZh8r^0VmRCl!FZtcVB`F=@W=DN?)GcUve>^czQojYY$ zfq_IMp-zO!x|LKitC`RI<8|R}N=GV@EzYful|ZVe3^Z);#Y%LAYVtx$Q=-$PA!UTh z!vDlAT!it3cljTX-9e&-u^E^460Fp_y3lPxy`xT9VeNlvM0R4>g;z&1AuatnJ?~Mn-taRHy#)_mw=g^4*|x)&HU#hugW;c@ zF)K+=dK~QTF_`9KkwMkj!k#7{73TqO(eN?~kHXI`Z@WADYTVPlIb4(M?2ov)fk#rJ z)+4ii;|xOsqiyyQ@#Wq8OB@h&y2hewF6$ckBGlY)n!@r+GA4MehDNB_%*|&q+Msm) zBVx!QOZ|d(vq;@-G>`?A*#_LPl5ps(jQ|D7rHQGc2gtRBZYt4Ejd0gUmeBG#m(97K zn$)JQ_vp=d!c^sTr=A=~lppAtRu@#;5`C?Mi;R!O9JvJ|?S|NQjY2FF6kO9oK(Q>} zVrmU12j}0kyObq-1IZeIx)t#^XLyglJeTl|Wu^_#q&vf<=b|d2k<^5G5wPas2lZX$ zU*{>628}L6%q3UPM`!djh#7ea^4GmooN&>H zFVH9p28Ui?%`A?zY#gJBKJy$=9|L!OpY6*sf$2O{u_G@!q|7Gd5MYcrsodpFpLkMj zA>BmLz3-!}l~QJ_3<{mPg&_a+2VHBktEaVS1)E%EM&}n{%8t=watSz0T`p>XyE1{MKk^!?pWo?x206r^ndovND4T zhxh8REf3hzb@4GrPIy({pE_R@RGYc{!jdIT4y)pCfC`PwGm6-s3`PjRBNT9X9B~FaXN5}DVek653^pMDnH~7Hr zc;|5;WEPH07E}X+;J+hRcD~EmKICKJAnE~l&?<>L0F{@XIN~BaXdCl@j9S;CbRnju zCOL#@VQy|t?<~#m@OFkQmPac5vOzTdHl%YtSJY?!-r?~ZhHB8@{o>$S#Ff;;|RQF!R5Zz zte-^n)X&x7(~I$^b>2{xRL!Y7v*sAF@A=1`CNb|4>zil~rba)>B;$Pk%7dMPJgA2I z&mBGeK1J3f3&(hft4g`O(Q%-#=eZDV8;JSNON%pdj{JHvX6m3eF4|w~%+vl`r+o|q z-@ko}tV?yE3q!zF-CFvTR=p#wS-h{8k7%O5wK(Ac%#INN7?6(gdVQZw94>E7n(IRL90)OubrGNA;lIw}+z{9J=8R-`OO-I*R3rE3VAWkh+(}>?^&e zvfbDGgZnjw(`1q4n(_Apx|;|4o50y0D#)% zP-wLgI~f2}E>cK&Z{+ir{J`T05TK5%@e? zKi`Es!lfWnt)Rq^*P=v~u;pi9d9XvYeMeZbs(HfZvpKfHPY_E#7eYI7Zbksrk6c?6 z6Dj?$yrtN0P59WiksjfHQ-eB*4oh7Xk+ z6sR@u;NE~z=;zt}S;DVu14^}>{%xGWkt4hsDhhJC;n|4LYrcijE9Fxo0LDGGLgi`o z(x;YBFyGHhRstT}9>A0qnnRsc@gN7g%jVxQTWUEZGx@dey%4G*B=hNakZ+|HQf zFlUoqG*Bl*K&|m92@**Pf)O91T=xKQ%d``Ke^{C+=#U}Y;dWDn#3%-OQP5DO{MV`I zD4dN109^a@!HKA^Gq1!KejaWbj$4gOJ^p@am)KuTG$%~uNQutU7VBFII>3uBBB-Q6VIjbl+$ z>Ijel+DbQ0b8|~HO`HdR1L~Q6yeA4IIW7(6%vtt+_z_TZ>8{n60KN_=nOx?<(dmB4 ziZwqbyL${HD{FqNG3_Lm9HU>NoTBvYlhilAOknVtY~k1IViE%52|J z@@oCTc)neL7!97*zz=KK*sH^gBlo&{3*?kqv)CElzv(_FW!D1-H8<)YakG7by}luD zIqS3+CH$Wa%UH=YJLm$HgmtBHlKn2agqdA>>pdaQzM6rD-fcy1YYPE) z%Ck42*NU?OF zRhWNSD%Zi;71Yc~>=M9kV!Y)2K^vob(c{N!;$uIb%CiFHJ&nl!EICiMfj&)?+%l8g z7p;kv93OQXpIZ3^hj)xBxmR}FAL?){!&{@q%gBqTJa#(B=W-i#H4eTctfcs_%w;g3X@i?c!Ks_hD z$mR0Kse31uzXM6awtj-}jwpZK4b42k_nv&VdOO8-0YmmgD}+z$EsHGH)Tfe|7w(gQ z&dL;CDHvJ>mWs@iwgl-ar_h>Fk8$ay-H5&PNAh}iEwpCh0l%FE@GVyW2;x>OrDVvR zD+a$>g*x0Q+|RI>Caxkuz7NN>UD>ln5CdihP^x91TJ)Zys)2!iVs&v2yk}!(tNz5n9V3lGrjLAu0JDtO zb#=^h(a4PZf*6ae>k;k2q8Q6)J-87<^^JB~+}Sc)j-k(iUim6$*R}}0JQlB`~$a2Yq9`gpWxYa%Y*)OgpZ4VQ6en3Ea$_+X-y?Jj0;mG3Z z`AR)YyF4RYJ)J)n2f%TVXTc+>J(HQIH$33+PB3G0Uz|GjTun4TY^F-;X?HKetPE|J z`S{o=s7;?XDF=z`8S}e?a%m`6g+7WNjNjueHGO77u zdnSzAw)JORd#@nC*}K~yvyRJtvYnx#LBsdV*xIb*qOLulaSbZsJ;nybfMOvLi=ZMq z<(!fSU-S!NWssG01puAx`zio1i+ufrtBcvGyp~cmsl=~qXs#>eV$l2ePcr0`_*qhT$>>=5ONH!SOT2Z?pItaS&lYwS_k_X(*@1w>q^tNAv4y~ z^n$~xpHX0dG?jZMt&EY})`LD? z<6L$3IifM95=CvP=}TpuTS91!VJndFJ8rI``>T3UA?e8-Ua;)s)Ogt7tL8hp-d7qR zd%c_(#6r-v(ROmUl<Q>_1Bk2H|SeP?s&P?6g`-Ha8~vGZv{UDMTi*- zb5fAwty)V?p>jgh2-cE9_exewZlwnB1Fd%qZ;A$Kh2KJJz|@YbD{dD9EQXKP>cz#H z>)TJl9wZlwIhwG1@~Xm}z3HVKDY)wlMK$j%6|s4GL>|4<4QpDR#m&eNma&y0_5%v8 zpz4lg5ijPl8;q)3Uq(FuSmZM)iAgcv-Ha--L5D}hfq>6XbB_t9)vX45;Y}r{qSrk> z=;m{vmW~9UCNtND>t=@W=fP<5vx!^lg?Vp+Yq@j^;`bKw{7Kl$ZGv1#u7|p}wx8+U zc^)hm?+dsO-1X+Kk25%St6Hp4xH|yQGj?@>Qg-9Ga~H}Ve@TlIAk_tM!M}R4@QWZS z1Qm=Is7RD?h>wK&fzdkY8u*%w0xx5pHzw|rfHqt92ls88q_E54&(I;ya}5{X>+*T^ zA*M61I<8k>)PX*CIA3YY2>g2gr_Q`R7`>2<#O%^;{5GEk&U-9ZlzP*AK0ecLqPNk` z%bEZ9eSsx@X04_(&8Ub;>ojaAr>iDM><};WZNBYW`V9{XJ$IINC8FQM?`W%qc8W49 z>B_q;Kyh_Z6%0)1Nfz`1dcjaXrH_tq%|fu1wpS!0zCFL%o=ZC_N1PhwDbA$owtlTc zfuv{y9?ceGf1Vl&|PV(Cj(5d<%VV!uuWQ_xjAsF{3SS-cwHEG}7%>=Mb2nVNmxG9)Wm=R$ZjGtLQw2p= z3MI2ETo&lN=U>nNupf+u#nD@VvO?oKXdhvFqO*EDb_ZZs*9tJ&-E+|egB2`i)y(NMJ?u%WE(?NpQEK19@wYJ|Nyy zX$n68TZJ0eCmyQ^mW$%V`gGgS?bD4CfhFcz0Iwi!w2*cOv&LhBR6=%d}p*b7rd7c4dsG9NCmh<|()f}toOswjWLiX*g&<9{oU{9Fo6+-h# zISo~|U53{uwhFbK%}5TG!q_#RY?ZKy7R-2bw~s~=Wuc!E>df)6-|FsySvD9wv<>W( zyY|s9;EE)NI14T7%>CTWCf)lj?iX~_9d9NK!6L)r%N9O4adl;vX zat7{aa4q~zSCc_|V3vEirus;aI;x`_v0Mo=-OZ<~OrOQE>gAY`IgZnm8|gqJg;8tk zo-5hV-KhNY&N=Inr1!X#;94`%3|$`>t+EMEMeYvV`9>n^2tlajFWnqy2w|QT!OBF! zo6u32PDhjIQU0<0&JLLx*idG&HgNAr8~-u^&MLh$iim{a4C zUIE^%77&$7EcCW8bzPD|5EFV~piOLisUu(DB<7uBv$pb;UjQG^4HzCs#NAAL{6how za{r}H*M6M1Yj}=SaP8Ymi+}Oa{t=j$)jVbB{sHqyTKZwvwl#?7x>nu8GDRcixoPTJg0d{FKto!|)}X9B2$x86Y@Xt9 zNhBuY+LX3Yi1AR#{*}db%_1Rc{^P~K^k^TrpOu}Rp{ek5%VnL#p;*C;Bn4+u zA%wcEdg%$72pDziG-3EF2R-9sPo0(J->is!>gf=Cc2~F|(F>-8x8~k4S~dQ||E=S~?*mp|FwJ znRws2Mn+*)cjYsD^u3p!8v|AfOxx78O+=<(fgLxO9ON^hzF7KlQmlIYESo8Q@m-IG zWE;)Bw(}Xu&%FUI8A77dGQA}weoPj$=jwvgPf+Ts%%0PQQD}{B$zyreD7D=Z((BRv zG4%k&&Q!iy{4RxKsG3Y#HQA{&+rDX`1*_x%bOC)rjl{{~uo{|$#K_$vKs~1#L9X@A z6MCMgXTWt#F49zyvhhYRPsnFvO1sjs?ZKr0-Np_>CcXc(qrXOJHCR zrVBdAf=Xa3Xhn%4o$x6 zC$fh_HxKsH2(2MSqs@9uf(88#!RUtE7DnPd;kfyqR=mli^Wh1S7$jV=~6&*?Mv7pGL|_4o`8>z-9DVV|{?mQ^DMf@}8=RzELCuT%<+ty0rw zNRO)}x7Iej<4*sCpFxj$2;7kv8i#&Zb&itc{UE<4aAs_qpkVzYEw=m&=jy6EqhKq) zS#>jV#*fCQJ~7Ydp772DewJmvbkt6$jN`G_L(3DW>CVv+_9>6G<+hyQ5V?}MCs^9x z+D!660iliUpu3;QjKz8u<*hMArG-E6HVs!#)mJSRumMFcD59*++|C8&@fM}BCGqE7 zIZvRT{DA>IqS1d0Y#O=9!d2SIS^QPXA;g>;pVm zo0;=j>Ea9`1Iba1jJyG}`=`}Y zBT2k^Ll3S~glkbVEqUyPeHEzriD4JOp7{HZntM{1dr<)4#(Y=E{qcf2_L*;Ph)h{E4va25wewMIymhYl zz<2kpi$)#N*yuv5V1~Vn$OrFEzhh=B7(XF4BF=lSMA6BAvTo#^FSI#i$oYj520fqle7!As=xcsn>vnayomT7rshd-mW8n87K zbZR9}>e2fgeC0qa7Uv^t`d)DF9!0Gct(LtEyKg3vzy@4c36;qGKNQ4GOl9+-g7_az z4zB=>P@nklTWo-SdW#<&pyS8RFCw#Vel|o{wQ!$Gb*Wk&c#sw~R+lBrD!(j}lOC1x zNHP}+xhTw%abN0Y_}rDMR%Nie5mJkJ5e@c}z=C8Y{o==?Kg?<&^|Y~(&yr>4p!k9I zREz8kHhn%J?cvtX#mGf_qi3PDFW1YgK^h^I4oZ<;1{0+le>elKApL9(G^Dx7Q6c_V6r`R9SN#Ir=gMmjCRqBKlM7mdD= zeTISGHD+W($C+_qpL3})m+-S`{oF@iZ;Jp)i+x{Zu)oWN&O(}{pJ_ySDd$PvceT&9 z@pR=t;NBZmRqe{VgXdn=49$*$)>Qw9-!37flnfQ=SFs^ueJvPlGm{kLPrFxrb+qaq zC~>Y9G%UEdtrnmUIId#&*B_IhQJyy39i^Ib%L6qBB~^gB9|6i2TgH+eyjZ2M=|pg- zZybGqz>kk`rL2_>J8cenSu})Fiq5>Dc=*mKt<^v_@GYSQ z8O{JhOj*y5Zot_)>w({w0HblCaTkA+!k##P!r^2y@G{MJ!o>}G8Fhd9gP<4_FHIf` zEshxQWA>|kUEbDLB!wG=A)_y;&iItZFQmtt;Q1G|Rvn_ak{m_7;^H}l&jAMOvX32a zoko2;UVAk=>RYnC0c>lmqA;wIqe@I7CQm0V5poj0@~~l`$_0$>_jMEkEZ6kZ{lrN{ zetS(&-Oi6kqt^MCMXApul)G?sbv_SNPf)tv%)-pC*UBJ#F}t*ee%aUUmnG*EU@AdZ z4uqPAvO5@beWwmWems6tH5nJ+RMdFFv;dw-nC^piw`Y7K&}^+fNoU!+-D$CT7_be`=qss)4nf`h zb4dq_)}(sUZrQqNyq)j#EA5pj{}7Msr9XtdXw8J(<{x`36cZx0vn(QWeb*oO7fBmu z6-WC{?aj7Vj@YYtIV!3MQKv43p1R2Krq_#?ATJG0!2?_+Jq|Nuu+6**^4fH8L_WQ~*kKaOc^ejWYfZyETi8(+N$n zROFy~r_Mp&uzd^5T9_Qq|6BaBOEyujJ`raijBXiI6LS;5rwnDqgDq9vZH4=pn48T_ zs+9J$TqH{hZ(!;xw~b~C4s0<9)+@vN$yP%yePjE%h(2D3Th`Efak%4>p?iBVN~BaL zz8E!Fl9z7*4p#wKK^tnuN)bOM6(v`nDtjq4T^`AK5oE>V0%qrAgl(--dS zCMt?zQq|oLAAD%A^e$uA@TYw3wk;Sfp;jtrm`vxXN7z|hMPCP_JtKb@c!mC(gjZxJ z5W0yPV^uBgc#$Z-_!{^L%>QA$0GtXqVHR57{c?l(tCgpjJRtW8)OhV*%fv&3yj|WJY1Ae)GHw5_Bgnf<=)cM)EP#;bz*9ADw23SME4Gr zC;+@w-xbk+!O4$1-N6Q2uu9QDheJoFyiT@dSo$Dy^1 zG16MUV&n*bzwsCpUE{+1DCm}afYU2b`9C@_bLaJ*(D(t_b8dDGUsw07FBLJwt61~vIK84 zU9O_p4_IMYo-|Ofw?%Za?X#oKLAxKzzjOS182yI+$399UWqua_(6VF(qUv%)E(U0% zV8%}Fq*n50-;k|3!s4|g(GrbaqOKtI=Fc5~mW;G1@wD4&F*vKU;DJYS$C&S%Dh3m; zM`Ec#opUM3)?r4+5#onOpc&~JC2{-AV7ZbSWc@OVOS|X6fmZVNeVZ#KRm<806e%UZ zIE5TCXm#JCWU%J^#e4A<1*bY-TXT8>anJ*eY*m2wR^C^yPlupw)OS4*y5)b6l|@53 zPw6k+Pi4JhhwqV+<+Zy*vu=S7VzaF`N4)5~a14K9VTRG+F43^m2Lr8bRM8oTZ=}si z4Mf(y#uhDPp!#Kof;3u%g5GW0EZb|MDqKNBsSBU7BabZuZlv-lAQ&g1=Kx~3BkNT2 zbZD3bouVA(-pu+@Hu2pTfDw5FD4{vw>sjc9*bA<`p)br@J~taTTh_@AhY?VGCvuW5 z5GQQN)ppN>Pa~)ICV`9lMpUorp@pJrduiwo7v`@`nz3^Y!L{eFEA8$eUne;8$R!>* z3T6Q~*LIW|0HQRb#P5|n;_I#eo3X}fx-zSG<|5hUh=qH9~xyl(%IwP8O_v zYtX1XtS5ROrFJ0IfZNWNB+=av9kh(tec-*9FGii>+Wx+)r9QEqFG~E5`IjSQKpX1P`6#x3D(gsB9N}#>5q)B(RlKIs1&cc#&C4CTV z2O7zEM{6(x2Q#(?Ej$41h^x9xdux+*-sA;w3+&A`fTg<%IH%WVQ!4Iw2)^=n?u)>+UDnRF43*^rp#A9ydtU6Y-Sz_;{zHHc_?Gs5_VR#Eu;ES{p+V965EgYU;JV znc~vEjJ%}B)|>z@PXWwM+!a6?4St#sH0uvs>6V>mvr^aq-TH5$G7a-r3dYD;bGQOO z`aUhM?a=a%SsB&uF5K=}0m>H!wgt}_bpttLyas6(GZ}rYAa?h(A0<{W}Nfl`t|JheVvB`yX-1zUQ%OKJtM^|* zO{Tp3>HpNk&>7Y$*Cv?ZQ5>>ryKH7YuAf0DT&_}d~x<2HqW*x{AMAy;ly5% z4LbtU{csb+;Wt%DGU_nu-<~!t-WeA#iu+XR3@2VXE;4Qx6TU%2WJUl!1ED@xPSOF0 zciZ=&Q<3N4nKV~T7YZgzb9#hPj|`cI%4ncf`3y%KY=@10V+0>LwyY_;>Jr7Bad}#F zRQH*l?JA;gi_*pLSHBL<28{tJ>W> z+~ogHO+B1j5x^Qo>4{P6tcw0F2l&rO#uxe*;Bgk6N>kq$9e$Zj{ud}+ION3!82!;} zJ3zOix#Q?g7(qG9+iLF)rPp-(nX1o$jrJ-^S5H&eMWy!=YAsv!`790T95gG-e^(9o z4P{gQv+2l&y98}!M)x^$^Zzd2@lU|b7Yyg&!qnct>=&rOU~=w2Yw9Nk7%>}j?lgz7 zQxlA(zAQzOmdz={R}Ob3C#!Iyqa+~08o?drMaLPLrw}eL?B?ygmnp zzEiVjs|N^-y>DT$46SWV54-ZaX#79%l5prTAleJmAyS`bXD&5Pk|sU_Y_yWOBsS>b z|LW8fp={@z>k+#~{9bFTf844NZ=m$A%L3moKm)LS$u#7HKW=jauz-GhY`6m))$wxY z>rF{tgl`ZN*?{zb6rQ7hBnjwA6A2W1h9bzKee3N3*F19l`7hNQ9-N0Nz~EYiWEaJxuei`O8bFaoQ`Ef`jY9$DDLnN!R1Z&Y zhF4uY6eI7uk@!Q&ng&d-C_o*v*}!PXF`M?dc?n5LWNG4xh%0DDX8o_MgnyoPe;ZL* z@ALOs7<=i>L8Sx8k7fT^*o`-DJB{4I-n;|Ug~1ADG>>)&zW2W8{#&K+r@x2{k#&Vo zgVjnM8^ZB)H-LHDU^vugAw-b?4N3Q=>>uLH@^6|Bpjcsl5#yiby;ZTR-Oe~oyo=V_{kbdZUbdld5SyQ=|_OyP4fw#pe$@b&n@A>abJ)rzTBor{-ozZEsbZ z((jHN|6~m$MxD4#ZK8s8{g2RT*~FNWK<5j^sa5bx7c�uyiYIJ7Kyz%^NP183su6 zFd;^cn32WWu;ctHl(Jp(9If{4q+6$$#|M8m^0Q9-&2+|Z4b>d#6M=x}KaKwHZe@c` zHZq!4x#z|LuG-?#lG~Llg|WjxrpF0S!mrac)Dr_oh)jub)?bGXXS~+=U;T$G<(Kfq zekIDpc@@Z27D`z%-07GCQOacE)K#cJ9IhSlwpS&GPbXb#&P~CdRf1ZAqP@2=|H!G`uExf?s^Pxr4W=ewQpttF;7);+L})KJK~YyR^8 E0TP>J@&Et; diff --git a/docs/_static/images/configure_agent.png b/docs/_static/images/configure_agent.png deleted file mode 100644 index 2d9daa9976ffba3b1ad058e82bc847315fbd26be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 266164 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