From bcc4ede3eacf3ffe3f6dc030ff8ad1d9538a511a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wies=C5=82aw=20=C5=A0olt=C3=A9s?= Date: Tue, 26 May 2026 10:48:51 +0200 Subject: [PATCH 1/9] Implement SMIL snapshot animation runtime --- .../Animation/SvgAnimationController.cs | 1276 +++++++++++++++-- .../Animation/SvgAnimationParser.cs | 47 +- .../Animation/SvgAnimationTimingEventType.cs | 3 +- .../Animation/SvgAnimationElement.cs | 15 +- .../Animation/SvgDocument.Animation.cs | 52 + .../Animation/SvgElement.AnimationRuntime.cs | 169 ++- .../SvgDocument.DynamicStyles.cs | 37 + .../SvgDocumentCompatibilityLoader.cs | 7 +- .../SvgElement.JavaScriptDomState.cs | 6 + .../Painting/SvgDeferredPaintServer.cs | 13 + .../SvgAnimationControllerTests.cs | 973 +++++++++++++ 11 files changed, 2488 insertions(+), 110 deletions(-) diff --git a/src/Svg.Animation/Animation/SvgAnimationController.cs b/src/Svg.Animation/Animation/SvgAnimationController.cs index af742d2e0c..296c317c71 100644 --- a/src/Svg.Animation/Animation/SvgAnimationController.cs +++ b/src/Svg.Animation/Animation/SvgAnimationController.cs @@ -4,6 +4,7 @@ using System.Drawing; using System.Globalization; using System.Linq; +using System.Text; using SkiaSharp; using Svg.Transforms; @@ -50,14 +51,16 @@ public TimingSpec(TimeSpan offset) Offset = offset; EventAddress = null; EventType = default; + RepeatIteration = null; } - public TimingSpec(SvgElementAddress eventAddress, SvgAnimationTimingEventType eventType, TimeSpan offset) + public TimingSpec(SvgElementAddress eventAddress, SvgAnimationTimingEventType eventType, TimeSpan offset, int? repeatIteration = null) { IsEvent = true; Offset = offset; EventAddress = eventAddress; EventType = eventType; + RepeatIteration = repeatIteration; } public bool IsEvent { get; } @@ -67,6 +70,8 @@ public TimingSpec(SvgElementAddress eventAddress, SvgAnimationTimingEventType ev public SvgElementAddress? EventAddress { get; } public SvgAnimationTimingEventType EventType { get; } + + public int? RepeatIteration { get; } } private readonly struct MotionSource @@ -120,9 +125,9 @@ public AnimationBinding(SvgAnimationElement animation, SvgElement sourceTarget, var propertyDescriptor = GetAttributePropertyDescriptor(sourceTarget, attributeName); ValueConverter = propertyDescriptor?.Converter; ValueContext = sourceTarget.OwnerDocument; - HasExplicitBaseAttribute = sourceTarget.ContainsAttribute(attributeName); BaseValue = GetAttributeValue(sourceTarget, attributeName); BaseValueString = ConvertAttributeValueToString(BaseValue); + HasExplicitBaseAttribute = HasExplicitAnimationBaseAttribute(sourceTarget, attributeName, BaseValue); PropertyType = propertyDescriptor?.Type ?? BaseValue?.GetType(); TargetAttributeKey = string.Concat(targetAddress.Key, "|", attributeName); BeginSpecs = ParseTimingSpecifications(animation.Begin, animation.OwnerDocument, targetAddress, includeImplicitDocumentBegin: true); @@ -224,9 +229,33 @@ public AnimationSample(float progress, int iterationIndex) public int IterationIndex { get; } } + private readonly struct PathDataToken + { + public PathDataToken(char command) + { + IsCommand = true; + Command = command; + Number = 0f; + } + + public PathDataToken(float number) + { + IsCommand = false; + Command = '\0'; + Number = number; + } + + public bool IsCommand { get; } + + public char Command { get; } + + public float Number { get; } + } + private static readonly TypeConverter s_paintServerConverter = new SvgPaintServerFactory(); private readonly List _bindings; + private readonly List _frameEvaluationBindings; private readonly Dictionary _bindingsByTargetAttributeKey; private readonly Dictionary _bindingsByAnimationAddressKey; private readonly Dictionary> _pointerEventInstances = new(StringComparer.Ordinal); @@ -246,6 +275,7 @@ public SvgAnimationController(SvgDocument sourceDocument) Clock = new SvgAnimationClock(); Clock.TimeChanged += OnClockTimeChanged; _bindings = DiscoverBindings(sourceDocument); + _frameEvaluationBindings = CreateFrameEvaluationBindings(_bindings); _bindingsByTargetAttributeKey = BuildBindingLookup(_bindings); _bindingsByAnimationAddressKey = BuildAnimationBindingLookup(_bindings); _pointerEventDependencies = BuildPointerEventDependencies(_bindings); @@ -378,35 +408,27 @@ internal bool TryGetStartTime(SvgAnimationElement animation, TimeSpan currentTim return false; } - var beginInstances = ResolveBeginInstances(binding, recursionGuard: null); - if (beginInstances.Count == 0) + var intervals = ResolveAnimationIntervals(binding, recursionGuard: null); + if (intervals.Count == 0) { return false; } - var endInstances = ResolveEndTimingInstances(binding, recursionGuard: null); - var allowIndefiniteDiscrete = binding.Animation is SvgSet; - - if (TryResolveCurrentActiveIntervalDetailed(binding.Animation, currentTime, allowIndefiniteDiscrete, beginInstances, endInstances, out var activeInterval)) + if (TrySelectCurrentInterval(binding.Animation, currentTime, intervals, requireActive: true, out var activeInterval)) { startTime = activeInterval.BeginInstance.Time; return true; } - for (var index = 0; index < beginInstances.Count; index++) + for (var index = 0; index < intervals.Count; index++) { - var candidate = beginInstances[index]; - if (candidate.Time <= currentTime) - { - continue; - } - - if (!TryResolveIntervalEndDetailed(binding.Animation, candidate.Time, endInstances, allowIndefiniteDiscrete, out _, out _)) + var candidate = intervals[index]; + if (candidate.BeginInstance.Time <= currentTime) { continue; } - startTime = candidate.Time; + startTime = candidate.BeginInstance.Time; return true; } @@ -470,6 +492,7 @@ internal SvgDocument CreateAnimatedDocument(SvgAnimationFrameState frameState) var clone = SourceDocument.DeepCopy() as SvgDocument ?? throw new InvalidOperationException("Svg animation runtime requires SvgDocument.DeepCopy() to return SvgDocument."); + clone.RebindSameDocumentDeferredPaintServers(); if (_bindings.Count == 0) { @@ -498,14 +521,34 @@ internal SvgAnimationFrameState EvaluateFrameState(TimeSpan time) } var attributes = new Dictionary(StringComparer.Ordinal); - foreach (var binding in _bindings) + var motionTransformPrefixes = new Dictionary(StringComparer.Ordinal); + var transformAnimationValues = new Dictionary(StringComparer.Ordinal); + foreach (var binding in _frameEvaluationBindings) { attributes.TryGetValue(binding.TargetAttributeKey, out var currentAttributeState); - if (!TryResolveAnimatedAttributeValue(this, binding, time, currentAttributeState?.Value, out var value)) + if (!TryResolveAnimatedAttributeValue(this, binding, time, currentAttributeState?.Value, attributes, out var value)) { continue; } + if (binding.Animation is SvgAnimateMotion { Additive: not SvgAnimationAdditive.Sum }) + { + motionTransformPrefixes[binding.TargetAttributeKey] = value; + if (transformAnimationValues.TryGetValue(binding.TargetAttributeKey, out var transformAnimationValue)) + { + value = CombineTransformValue(value, transformAnimationValue); + } + } + else if (binding.Animation is SvgAnimateTransform animateTransform) + { + transformAnimationValues[binding.TargetAttributeKey] = value; + if (animateTransform.Additive != SvgAnimationAdditive.Sum && + motionTransformPrefixes.TryGetValue(binding.TargetAttributeKey, out var motionTransformPrefix)) + { + value = CombineTransformValue(motionTransformPrefix, value); + } + } + attributes[binding.TargetAttributeKey] = new SvgAnimationFrameAttributeState( binding.TargetAttributeKey, binding.TargetAddress, @@ -638,7 +681,7 @@ private bool TryGetBinding(SvgAnimationElement animation, out AnimationBinding b return _bindingsByAnimationAddressKey.TryGetValue(SvgElementAddress.Create(animation).Key, out binding!); } - private IReadOnlyList ResolveBeginInstances(AnimationBinding binding, HashSet? recursionGuard) + private IReadOnlyList ResolveBeginInstances(AnimationBinding binding, HashSet? recursionGuard, TimeSpan? horizon = null) { if (!binding.HasDynamicBeginTiming && (!_scheduledBeginInstances.TryGetValue(binding.AnimationAddress.Key, out var scheduledTimes) || scheduledTimes.Count == 0)) @@ -654,7 +697,7 @@ private IReadOnlyList ResolveBeginInstances(AnimationBin try { - var instances = ResolveTimingInstancesDetailed(binding.BeginSpecs, recursionGuard); + var instances = ResolveTimingInstancesDetailed(binding.BeginSpecs, recursionGuard, horizon); AppendScheduledInstances(binding.AnimationAddress, SvgAnimationTimingEventType.Begin, _scheduledBeginInstances, instances); SortAndDeduplicateTimingInstances(instances); return instances.Count == 0 ? s_emptyResolvedTimingInstances : instances; @@ -665,7 +708,7 @@ private IReadOnlyList ResolveBeginInstances(AnimationBin } } - private IReadOnlyList ResolveEndTimingInstances(AnimationBinding binding, HashSet? recursionGuard) + private IReadOnlyList ResolveEndTimingInstances(AnimationBinding binding, HashSet? recursionGuard, TimeSpan? horizon = null) { if (!binding.HasDynamicEndTiming && (!_scheduledEndInstances.TryGetValue(binding.AnimationAddress.Key, out var scheduledTimes) || scheduledTimes.Count == 0)) @@ -681,7 +724,7 @@ private IReadOnlyList ResolveEndTimingInstances(Animatio try { - var instances = ResolveTimingInstancesDetailed(binding.EndSpecs, recursionGuard); + var instances = ResolveTimingInstancesDetailed(binding.EndSpecs, recursionGuard, horizon); AppendScheduledInstances(binding.AnimationAddress, SvgAnimationTimingEventType.End, _scheduledEndInstances, instances); SortAndDeduplicateTimingInstances(instances); return instances.Count == 0 ? s_emptyResolvedTimingInstances : instances; @@ -811,6 +854,26 @@ private void CollectTimelineCallbacks( "onend", endTime)); } + + for (var index = 0; index < intervals.Count; index++) + { + var repeatTimes = new List(); + AddRepeatEventInstances(binding.Animation, intervals[index], requestedIteration: null, repeatTimes); + for (var repeatIndex = 0; repeatIndex < repeatTimes.Count; repeatIndex++) + { + var repeatTime = repeatTimes[repeatIndex]; + if (!ShouldDispatchTimelineEvent(repeatTime, previousTime, currentTime)) + { + continue; + } + + callbacks.Add(new SvgAnimationTimelineCallback( + binding.AnimationAddress, + "repeatEvent", + "onrepeat", + repeatTime)); + } + } } private static bool ShouldDispatchTimelineEvent(TimeSpan eventTime, TimeSpan? previousTime, TimeSpan currentTime) @@ -899,6 +962,16 @@ private static void AddPointerEventDependents( } } + private static List CreateFrameEvaluationBindings(List bindings) + { + return bindings + .Select(static (binding, index) => (binding, index)) + .OrderBy(static entry => IsCurrentColorSourceAttribute(entry.binding.AttributeName) ? 0 : 1) + .ThenBy(static entry => entry.index) + .Select(static entry => entry.binding) + .ToList(); + } + private static Dictionary BuildBindingLookup(IEnumerable bindings) { var lookup = new Dictionary(StringComparer.Ordinal); @@ -993,6 +1066,23 @@ private static bool TryGetPointerEventInstanceKey(TimingSpec spec, out string ke return false; } + private static bool HasExplicitAnimationBaseAttribute(SvgElement sourceTarget, string attributeName, object? baseValue) + { + if (sourceTarget.ContainsAttribute(attributeName)) + { + return true; + } + + return IsHrefAnimationAttribute(attributeName) && baseValue is not null; + } + + private static bool IsHrefAnimationAttribute(string attributeName) + { + return string.Equals(attributeName, "href", StringComparison.Ordinal) || + string.Equals(attributeName, "xlink:href", StringComparison.Ordinal) || + attributeName.StartsWith(SvgNamespaces.XLinkNamespace + ":href", StringComparison.Ordinal); + } + private static List DiscoverBindings(SvgDocument sourceDocument) { var bindings = new List(); @@ -1007,12 +1097,76 @@ private static List DiscoverBindings(SvgDocument sourceDocumen continue; } + if (ShouldIgnoreBrowserUnsupportedAnimateColorBinding(animation, target, attributeName!)) + { + continue; + } + bindings.Add(new AnimationBinding(animation, target, SvgElementAddress.Create(target), attributeName!)); } return bindings; } + private static bool ShouldIgnoreBrowserUnsupportedAnimateColorBinding( + SvgAnimationElement animation, + SvgElement target, + string attributeName) + { + // Current browser snapshots do not apply deprecated animateColor to inherited + // paint-server color state declared in defs, while regular animate still applies. + if (animation is not SvgAnimateColor || + !IsInheritedPaintServerColorAttribute(attributeName) || + !IsInsideDefinitions(target)) + { + return false; + } + + return SubtreeContainsPaintServer(target); + } + + private static bool IsInheritedPaintServerColorAttribute(string attributeName) + { + return string.Equals(attributeName, "color", StringComparison.Ordinal) || + string.Equals(attributeName, "stop-color", StringComparison.Ordinal); + } + + private static bool IsCurrentColorSourceAttribute(string attributeName) + { + return string.Equals(attributeName, "color", StringComparison.Ordinal); + } + + private static bool IsInsideDefinitions(SvgElement element) + { + for (var current = element.Parent as SvgElement; current is not null; current = current.Parent as SvgElement) + { + if (current is SvgDefinitionList) + { + return true; + } + } + + return false; + } + + private static bool SubtreeContainsPaintServer(SvgElement element) + { + if (element is SvgPaintServer) + { + return true; + } + + for (var i = 0; i < element.Children.Count; i++) + { + if (SubtreeContainsPaintServer(element.Children[i])) + { + return true; + } + } + + return false; + } + private void InvalidateFrameStateCache() { _frameStateVersion++; @@ -1133,7 +1287,7 @@ private static bool TryParseEventTimingSpec(string value, SvgDocument? document, return false; } - spec = new TimingSpec(parsedTiming.EventAddress, parsedTiming.EventType, parsedTiming.Offset); + spec = new TimingSpec(parsedTiming.EventAddress, parsedTiming.EventType, parsedTiming.Offset, parsedTiming.RepeatIteration); return true; } @@ -1148,22 +1302,79 @@ private static bool TryParseEventTimingSpec(string value, SvgDocument? document, { return string.IsNullOrWhiteSpace(animateTransform.AnimationAttributeName) ? "transform" - : animateTransform.AnimationAttributeName; + : ResolveNamespacedAnimationAttributeName(animation, animateTransform.AnimationAttributeName); } if (animation is SvgAnimationAttributeElement attributeAnimation) { - return attributeAnimation.AnimationAttributeName; + return ResolveNamespacedAnimationAttributeName(animation, attributeAnimation.AnimationAttributeName); } return null; } + private static string? ResolveNamespacedAnimationAttributeName(SvgAnimationElement animation, string? attributeName) + { + if (string.IsNullOrWhiteSpace(attributeName)) + { + return attributeName; + } + + var resolvedAttributeName = attributeName!; + var colonIndex = resolvedAttributeName.IndexOf(':'); + if (colonIndex <= 0 || colonIndex == resolvedAttributeName.Length - 1) + { + return resolvedAttributeName; + } + + var prefix = resolvedAttributeName.Substring(0, colonIndex); + var localName = resolvedAttributeName.Substring(colonIndex + 1); + if (TryResolveNamespace(animation, prefix, out var namespaceName)) + { + if (string.Equals(namespaceName, SvgNamespaces.XLinkNamespace, StringComparison.Ordinal)) + { + return string.Concat("xlink:", localName); + } + + if (string.Equals(namespaceName, SvgNamespaces.XmlNamespace, StringComparison.Ordinal)) + { + return string.Concat("xml:", localName); + } + + return string.Concat(namespaceName, ":", localName); + } + + return resolvedAttributeName; + } + + private static bool TryResolveNamespace(SvgElement element, string prefix, out string namespaceName) + { + for (SvgElement? current = element; current is not null; current = current.Parent as SvgElement) + { + if (current.Namespaces.TryGetValue(prefix, out var resolvedNamespace)) + { + namespaceName = resolvedNamespace; + return true; + } + } + + var document = element as SvgDocument ?? element.OwnerDocument; + if (document is not null && document.Namespaces.TryGetValue(prefix, out var documentNamespace)) + { + namespaceName = documentNamespace; + return true; + } + + namespaceName = string.Empty; + return false; + } + private static bool TryResolveAnimatedAttributeValue( SvgAnimationController controller, AnimationBinding binding, TimeSpan time, string? currentComposedValue, + IReadOnlyDictionary? frameAttributes, out string value) { value = string.Empty; @@ -1207,7 +1418,7 @@ private static bool TryResolveAnimatedAttributeValue( return true; case SvgAnimateColor animateColor: if (!TryGetAnimationSample(controller, binding, animateColor, time, allowIndefiniteDiscrete: false, out var colorSample) || - !TryResolveAnimatedValue(binding, animateColor, colorSample, forceColorInterpolation: true, out value)) + !TryResolveAnimatedValue(binding, animateColor, colorSample, forceColorInterpolation: true, frameAttributes, out value)) { return false; } @@ -1222,7 +1433,7 @@ private static bool TryResolveAnimatedAttributeValue( return true; case SvgAnimate animate: if (!TryGetAnimationSample(controller, binding, animate, time, allowIndefiniteDiscrete: false, out var valueSample) || - !TryResolveAnimatedValue(binding, animate, valueSample, forceColorInterpolation: false, out value)) + !TryResolveAnimatedValue(binding, animate, valueSample, forceColorInterpolation: false, frameAttributes, out value)) { return false; } @@ -1290,7 +1501,7 @@ private static void ApplyAnimateValue(SvgAnimationController controller, Animati return; } - if (!TryResolveAnimatedValue(binding, animation, sample, forceColorInterpolation, out var value)) + if (!TryResolveAnimatedValue(binding, animation, sample, forceColorInterpolation, frameAttributes: null, out var value)) { return; } @@ -1379,7 +1590,7 @@ public AnimationInterval(TimeSpan begin, TimeSpan? activeEnd) public TimeSpan? ActiveEnd { get; } - public bool IsActive(TimeSpan time) => !ActiveEnd.HasValue || time <= ActiveEnd.Value; + public bool IsActive(TimeSpan time) => IsTimeInActiveInterval(Begin, ActiveEnd, time); } private readonly struct ResolvedAnimationInterval @@ -1397,7 +1608,19 @@ public ResolvedAnimationInterval(ResolvedTimingInstance beginInstance, TimeSpan? public ResolvedTimingInstance? EndInstance { get; } - public bool IsActive(TimeSpan time) => !ActiveEnd.HasValue || time <= ActiveEnd.Value; + public bool IsActive(TimeSpan time) => IsTimeInActiveInterval(BeginInstance.Time, ActiveEnd, time); + } + + private static bool IsTimeInActiveInterval(TimeSpan begin, TimeSpan? activeEnd, TimeSpan time) + { + if (!activeEnd.HasValue) + { + return true; + } + + return activeEnd.Value == begin + ? time == begin + : time < activeEnd.Value; } private static bool TryGetAnimationSample(SvgAnimationController controller, AnimationBinding binding, SvgAnimationElement animation, TimeSpan time, bool allowIndefiniteDiscrete, out AnimationSample sample) @@ -1498,14 +1721,8 @@ private static bool TryResolveCurrentInterval(SvgAnimationController controller, { interval = default; - var beginInstances = controller.ResolveBeginInstances(binding, recursionGuard: null); - if (beginInstances.Count == 0) - { - return false; - } - - var endInstances = controller.ResolveEndTimingInstances(binding, recursionGuard: null); - if (!TryResolveCurrentIntervalDetailed(animation, time, allowIndefiniteDiscrete, beginInstances, endInstances, out var resolved)) + var intervals = controller.ResolveAnimationIntervals(binding, recursionGuard: null, horizon: time); + if (!TrySelectCurrentInterval(animation, time, intervals, requireActive: false, out var resolved)) { return false; } @@ -1525,7 +1742,7 @@ private static bool TryResolveCurrentInterval(SvgAnimationController controller, return false; } - private List ResolveTimingInstancesDetailed(IReadOnlyList specs, HashSet? recursionGuard) + private List ResolveTimingInstancesDetailed(IReadOnlyList specs, HashSet? recursionGuard, TimeSpan? horizon = null) { var instances = new List(); @@ -1556,7 +1773,7 @@ private List ResolveTimingInstancesDetailed(IReadOnlyLis continue; } - var dependencyInstances = ResolveAnimationEventInstances(spec, recursionGuard); + var dependencyInstances = ResolveAnimationEventInstances(spec, recursionGuard, horizon); if (dependencyInstances.Count == 0) { continue; @@ -1577,7 +1794,7 @@ private List ResolveTimingInstancesDetailed(IReadOnlyLis return instances; } - private List ResolveAnimationEventInstances(TimingSpec spec, HashSet? recursionGuard) + private List ResolveAnimationEventInstances(TimingSpec spec, HashSet? recursionGuard, TimeSpan? horizon = null) { if (spec.EventAddress is null || !_bindingsByAnimationAddressKey.TryGetValue(spec.EventAddress.Key, out var dependencyBinding)) @@ -1585,7 +1802,7 @@ private List ResolveAnimationEventInstances(TimingSpec spec, HashSet(); } - var dependencyIntervals = ResolveAnimationIntervals(dependencyBinding, recursionGuard); + var dependencyIntervals = ResolveAnimationIntervals(dependencyBinding, recursionGuard, horizon); if (dependencyIntervals.Count == 0) { return new List(); @@ -1606,6 +1823,9 @@ private List ResolveAnimationEventInstances(TimingSpec spec, HashSet ResolveAnimationEventInstances(TimingSpec spec, HashSet ResolveAnimationIntervals(AnimationBinding binding, HashSet? recursionGuard) + private static void AddRepeatEventInstances( + SvgAnimationElement animation, + ResolvedAnimationInterval interval, + int? requestedIteration, + List instances) + { + if (!TryParseClockValue(animation.Duration, out var simpleDuration) || simpleDuration <= TimeSpan.Zero) + { + return; + } + + var activeEnd = interval.ActiveEnd; + if (requestedIteration.HasValue) + { + AddRepeatEventInstance(interval.BeginInstance.Time, simpleDuration, activeEnd, requestedIteration.Value, instances); + return; + } + + var repeatLimit = ResolveRepeatEventLimit(animation, simpleDuration, interval); + for (var iteration = 1; iteration <= repeatLimit; iteration++) + { + AddRepeatEventInstance(interval.BeginInstance.Time, simpleDuration, activeEnd, iteration, instances); + } + } + + private static int ResolveRepeatEventLimit(SvgAnimationElement animation, TimeSpan simpleDuration, ResolvedAnimationInterval interval) + { + const int maxUnboundedRepeatEvents = 4096; + var repeatCountMode = ParseRepeatCount(animation.RepeatCount, out var repeatCount); + if (repeatCountMode == RepeatCountMode.Finite) + { + return Math.Max(0, (int)Math.Ceiling(repeatCount) - 1); + } + + if (interval.ActiveEnd.HasValue) + { + var elapsed = interval.ActiveEnd.Value - interval.BeginInstance.Time; + if (elapsed <= TimeSpan.Zero) + { + return 0; + } + + return Math.Max(0, (int)(elapsed.Ticks / simpleDuration.Ticks)); + } + + return maxUnboundedRepeatEvents; + } + + private static void AddRepeatEventInstance( + TimeSpan begin, + TimeSpan simpleDuration, + TimeSpan? activeEnd, + int iteration, + List instances) + { + if (iteration <= 0) + { + return; + } + + var time = begin + Multiply(simpleDuration, iteration); + if (time <= begin) + { + return; + } + + if (activeEnd.HasValue && time >= activeEnd.Value) + { + return; + } + + instances.Add(time); + } + + private List ResolveAnimationIntervals(AnimationBinding binding, HashSet? recursionGuard, TimeSpan? horizon = null) { - var beginInstances = ResolveBeginInstances(binding, recursionGuard); + var beginInstances = ResolveBeginInstances(binding, recursionGuard, horizon); if (beginInstances.Count == 0) { return new List(); } - var endInstances = ResolveEndTimingInstances(binding, recursionGuard); + var endInstances = ResolveEndTimingInstances(binding, recursionGuard, horizon); var allowIndefiniteDiscrete = binding.Animation is SvgSet; + if (HasSelfEventTiming(binding.BeginSpecs, binding.AnimationAddress) || + HasSelfEventTiming(binding.EndSpecs, binding.AnimationAddress)) + { + return ResolveAnimationIntervalsWithSelfSync(binding, beginInstances, endInstances, allowIndefiniteDiscrete, horizon); + } + + return ResolveAnimationIntervalsCore(binding, beginInstances, endInstances, allowIndefiniteDiscrete, horizon); + } + + private static List ResolveAnimationIntervalsCore( + AnimationBinding binding, + IReadOnlyList beginInstances, + IReadOnlyList endInstances, + bool allowIndefiniteDiscrete, + TimeSpan? horizon) + { var intervals = new List(); ResolvedAnimationInterval? selected = null; for (var index = 0; index < beginInstances.Count; index++) { var begin = beginInstances[index]; + if (horizon.HasValue && begin.Time > horizon.Value) + { + break; + } if (selected.HasValue) { @@ -1647,11 +1961,15 @@ private List ResolveAnimationIntervals(AnimationBindi continue; } + break; + case SvgAnimationRestart.Always: + TruncateRestartedInterval(intervals, selected.Value, begin.Time); break; } } - if (!TryResolveIntervalEndDetailed(binding.Animation, begin.Time, endInstances, allowIndefiniteDiscrete, out var activeEnd, out var endInstance)) + var effectiveEndInstances = CreateEffectiveEndInstances(binding, endInstances, begin.Time, horizon); + if (!TryResolveIntervalEndDetailed(binding.Animation, begin.Time, effectiveEndInstances, allowIndefiniteDiscrete, out var activeEnd, out var endInstance)) { continue; } @@ -1663,34 +1981,39 @@ private List ResolveAnimationIntervals(AnimationBindi return intervals; } - private static bool TryResolveCurrentIntervalDetailed( - SvgAnimationElement animation, - TimeSpan time, - bool allowIndefiniteDiscrete, - IReadOnlyList beginInstances, + private static List ResolveAnimationIntervalsWithSelfSync( + AnimationBinding binding, + IReadOnlyList seedBeginInstances, IReadOnlyList endInstances, - out ResolvedAnimationInterval interval) + bool allowIndefiniteDiscrete, + TimeSpan? horizon) { - interval = default; + const int maxSelfSyncIntervals = 4096; - if (beginInstances.Count == 0) + var pendingBeginInstances = new List(seedBeginInstances); + SortAndDeduplicateTimingInstances(pendingBeginInstances); + + var knownBeginTimes = new HashSet(); + for (var index = 0; index < pendingBeginInstances.Count; index++) { - return false; + knownBeginTimes.Add(pendingBeginInstances[index].Time.Ticks); } + var intervals = new List(); ResolvedAnimationInterval? selected = null; + var cursor = 0; - for (var index = 0; index < beginInstances.Count; index++) + while (cursor < pendingBeginInstances.Count && intervals.Count < maxSelfSyncIntervals) { - var begin = beginInstances[index]; - if (begin.Time > time) + var begin = pendingBeginInstances[cursor++]; + if (horizon.HasValue && begin.Time > horizon.Value) { break; } if (selected.HasValue) { - switch (animation.Restart) + switch (binding.Animation.Restart) { case SvgAnimationRestart.Never: continue; @@ -1700,57 +2023,353 @@ private static bool TryResolveCurrentIntervalDetailed( continue; } + break; + case SvgAnimationRestart.Always: + TruncateRestartedInterval(intervals, selected.Value, begin.Time); break; } } - if (!TryResolveIntervalEndDetailed(animation, begin.Time, endInstances, allowIndefiniteDiscrete, out var activeEnd, out var endInstance)) + var effectiveEndInstances = CreateEffectiveEndInstances(binding, endInstances, begin.Time, horizon); + if (!TryResolveIntervalEndDetailed(binding.Animation, begin.Time, effectiveEndInstances, allowIndefiniteDiscrete, out var activeEnd, out var endInstance)) { continue; } selected = new ResolvedAnimationInterval(begin, activeEnd, endInstance); - } + intervals.Add(selected.Value); - if (!selected.HasValue) - { - return false; - } + AddSelfSyncBeginInstances( + binding, + selected.Value, + pendingBeginInstances, + knownBeginTimes, + horizon); - var resolved = selected.Value; - if (resolved.IsActive(time) || animation.AnimationFill == SvgAnimationFill.Freeze) - { - interval = resolved; - return true; + if (pendingBeginInstances.Count > cursor) + { + SortAndDeduplicateTimingInstances(pendingBeginInstances); + } } - return false; + return intervals; } - private static bool ContainsDynamicTiming(IReadOnlyList specs) + private static void TruncateRestartedInterval( + List intervals, + ResolvedAnimationInterval selected, + TimeSpan restartTime) { - for (var index = 0; index < specs.Count; index++) + if (intervals.Count == 0 || + (selected.ActiveEnd.HasValue && selected.ActiveEnd.Value <= restartTime)) { - if (specs[index].IsEvent) - { - return true; - } + return; } - return false; + intervals[intervals.Count - 1] = new ResolvedAnimationInterval( + selected.BeginInstance, + restartTime, + selected.EndInstance); } - private static IReadOnlyList CreateStaticTimingInstances(IReadOnlyList specs) + private static IReadOnlyList CreateEffectiveEndInstances( + AnimationBinding binding, + IReadOnlyList endInstances, + TimeSpan beginTime, + TimeSpan? horizon) { - if (specs.Count == 0) + if (!HasSelfEventTiming(binding.EndSpecs, binding.AnimationAddress)) { - return s_emptyResolvedTimingInstances; + return endInstances; } - var instances = new ResolvedTimingInstance[specs.Count]; - for (var index = 0; index < specs.Count; index++) + var effective = new List(endInstances); + for (var index = 0; index < binding.EndSpecs.Count; index++) { - instances[index] = new ResolvedTimingInstance(specs[index].Offset, eventInstanceKey: null, sourceEventTime: null); + var spec = binding.EndSpecs[index]; + if (!IsSelfEventTiming(spec, binding.AnimationAddress)) + { + continue; + } + + var eventInstanceKey = CreateEventInstanceKey(binding.AnimationAddress, spec.EventType); + switch (spec.EventType) + { + case SvgAnimationTimingEventType.Begin: + AddSelfEndInstance(beginTime, beginTime, spec.Offset, eventInstanceKey, effective, horizon); + break; + case SvgAnimationTimingEventType.Repeat: + var provisionalInterval = new ResolvedAnimationInterval( + new ResolvedTimingInstance(beginTime, eventInstanceKey: null, sourceEventTime: null), + activeEnd: null, + endInstance: null); + var repeatTimes = new List(); + AddRepeatEventInstances(binding.Animation, provisionalInterval, spec.RepeatIteration, repeatTimes); + for (var repeatIndex = 0; repeatIndex < repeatTimes.Count; repeatIndex++) + { + AddSelfEndInstance(repeatTimes[repeatIndex], beginTime, spec.Offset, eventInstanceKey, effective, horizon); + } + + break; + } + } + + SortAndDeduplicateTimingInstances(effective); + return effective.Count == 0 ? s_emptyResolvedTimingInstances : effective; + } + + private static void AddSelfEndInstance( + TimeSpan eventTime, + TimeSpan sourceBegin, + TimeSpan offset, + string eventInstanceKey, + List endInstances, + TimeSpan? horizon) + { + var candidateTime = eventTime + offset; + if (candidateTime <= sourceBegin || + (horizon.HasValue && candidateTime > horizon.Value)) + { + return; + } + + endInstances.Add(new ResolvedTimingInstance(candidateTime, eventInstanceKey, eventTime)); + } + + private static bool HasSelfEventTiming(IReadOnlyList specs, SvgElementAddress animationAddress) + { + for (var index = 0; index < specs.Count; index++) + { + if (IsSelfEventTiming(specs[index], animationAddress)) + { + return true; + } + } + + return false; + } + + private static bool IsSelfEventTiming(TimingSpec spec, SvgElementAddress animationAddress) + { + return spec.IsEvent && + spec.EventAddress is { } eventAddress && + string.Equals(eventAddress.Key, animationAddress.Key, StringComparison.Ordinal); + } + + private static void AddSelfSyncBeginInstances( + AnimationBinding binding, + ResolvedAnimationInterval interval, + List pendingBeginInstances, + HashSet knownBeginTimes, + TimeSpan? horizon) + { + for (var index = 0; index < binding.BeginSpecs.Count; index++) + { + var spec = binding.BeginSpecs[index]; + if (!IsSelfEventTiming(spec, binding.AnimationAddress)) + { + continue; + } + + var eventInstanceKey = CreateEventInstanceKey(binding.AnimationAddress, spec.EventType); + switch (spec.EventType) + { + case SvgAnimationTimingEventType.Begin: + AddSelfSyncBeginInstance( + interval.BeginInstance.Time, + interval.BeginInstance.Time, + spec.Offset, + eventInstanceKey, + pendingBeginInstances, + knownBeginTimes, + horizon); + break; + case SvgAnimationTimingEventType.End: + if (interval.ActiveEnd.HasValue) + { + AddSelfSyncBeginInstance( + interval.ActiveEnd.Value, + interval.BeginInstance.Time, + spec.Offset, + eventInstanceKey, + pendingBeginInstances, + knownBeginTimes, + horizon); + } + + break; + case SvgAnimationTimingEventType.Repeat: + var repeatEventTimes = new List(); + AddRepeatEventInstances(binding.Animation, interval, spec.RepeatIteration, repeatEventTimes); + for (var repeatIndex = 0; repeatIndex < repeatEventTimes.Count; repeatIndex++) + { + AddSelfSyncBeginInstance( + repeatEventTimes[repeatIndex], + interval.BeginInstance.Time, + spec.Offset, + eventInstanceKey, + pendingBeginInstances, + knownBeginTimes, + horizon); + } + + break; + } + } + } + + private static void AddSelfSyncBeginInstance( + TimeSpan eventTime, + TimeSpan sourceBegin, + TimeSpan offset, + string eventInstanceKey, + List pendingBeginInstances, + HashSet knownBeginTimes, + TimeSpan? horizon) + { + var candidateTime = eventTime + offset; + if (candidateTime <= sourceBegin) + { + return; + } + + if (horizon.HasValue && candidateTime > horizon.Value) + { + return; + } + + if (!knownBeginTimes.Add(candidateTime.Ticks)) + { + return; + } + + pendingBeginInstances.Add(new ResolvedTimingInstance(candidateTime, eventInstanceKey, eventTime)); + } + + private static bool TrySelectCurrentInterval( + SvgAnimationElement animation, + TimeSpan time, + IReadOnlyList intervals, + bool requireActive, + out ResolvedAnimationInterval interval) + { + interval = default; + ResolvedAnimationInterval? selected = null; + + for (var index = 0; index < intervals.Count; index++) + { + var candidate = intervals[index]; + if (candidate.BeginInstance.Time > time) + { + break; + } + + selected = candidate; + } + + if (!selected.HasValue) + { + return false; + } + + var resolved = selected.Value; + if (resolved.IsActive(time) || (!requireActive && animation.AnimationFill == SvgAnimationFill.Freeze)) + { + interval = resolved; + return true; + } + + return false; + } + + private static bool TryResolveCurrentIntervalDetailed( + SvgAnimationElement animation, + TimeSpan time, + bool allowIndefiniteDiscrete, + IReadOnlyList beginInstances, + IReadOnlyList endInstances, + out ResolvedAnimationInterval interval) + { + interval = default; + + if (beginInstances.Count == 0) + { + return false; + } + + ResolvedAnimationInterval? selected = null; + + for (var index = 0; index < beginInstances.Count; index++) + { + var begin = beginInstances[index]; + if (begin.Time > time) + { + break; + } + + if (selected.HasValue) + { + switch (animation.Restart) + { + case SvgAnimationRestart.Never: + continue; + case SvgAnimationRestart.WhenNotActive: + if (!selected.Value.ActiveEnd.HasValue || begin.Time < selected.Value.ActiveEnd.Value) + { + continue; + } + + break; + } + } + + if (!TryResolveIntervalEndDetailed(animation, begin.Time, endInstances, allowIndefiniteDiscrete, out var activeEnd, out var endInstance)) + { + continue; + } + + selected = new ResolvedAnimationInterval(begin, activeEnd, endInstance); + } + + if (!selected.HasValue) + { + return false; + } + + var resolved = selected.Value; + if (resolved.IsActive(time) || animation.AnimationFill == SvgAnimationFill.Freeze) + { + interval = resolved; + return true; + } + + return false; + } + + private static bool ContainsDynamicTiming(IReadOnlyList specs) + { + for (var index = 0; index < specs.Count; index++) + { + if (specs[index].IsEvent) + { + return true; + } + } + + return false; + } + + private static IReadOnlyList CreateStaticTimingInstances(IReadOnlyList specs) + { + if (specs.Count == 0) + { + return s_emptyResolvedTimingInstances; + } + + var instances = new ResolvedTimingInstance[specs.Count]; + for (var index = 0; index < specs.Count; index++) + { + instances[index] = new ResolvedTimingInstance(specs[index].Offset, eventInstanceKey: null, sourceEventTime: null); } if (instances.Length > 1) @@ -1783,7 +2402,7 @@ private static bool TryResolveIntervalEnd(SvgAnimationElement animation, TimeSpa return false; } - activeEnd = explicitEnd; + activeEnd = ComputeIndefiniteActiveEnd(animation, begin, explicitEnd); return true; } @@ -1829,7 +2448,7 @@ private static bool TryResolveIntervalEndDetailed( return false; } - activeEnd = explicitEnd; + activeEnd = ComputeIndefiniteActiveEnd(animation, begin, explicitEnd); return true; } @@ -1850,6 +2469,14 @@ private static bool TryResolveIntervalEndDetailed( : null; } + private static TimeSpan? ComputeIndefiniteActiveEnd(SvgAnimationElement animation, TimeSpan begin, TimeSpan? explicitEnd) + { + var totalDuration = ComputeConstrainedTotalDuration(animation, totalDuration: null, explicitEnd, begin); + return totalDuration.HasValue + ? begin + totalDuration.Value + : null; + } + private static TimeSpan? ComputeTotalDuration(SvgAnimationElement animation, TimeSpan simpleDuration, TimeSpan? explicitEnd, TimeSpan begin) { TimeSpan? totalDuration; @@ -1882,19 +2509,37 @@ private static bool TryResolveIntervalEndDetailed( break; } + return ComputeConstrainedTotalDuration(animation, totalDuration, explicitEnd, begin); + } + + private static TimeSpan? ComputeConstrainedTotalDuration( + SvgAnimationElement animation, + TimeSpan? totalDuration, + TimeSpan? explicitEnd, + TimeSpan begin) + { if (explicitEnd.HasValue && explicitEnd.Value > begin) { totalDuration = MinDuration(totalDuration, explicitEnd.Value - begin); } - switch (ParseRepeatDuration(animation.Minimum, out var minimumDuration)) + var minimumMode = ParseRepeatDuration(animation.Minimum, out var minimumDuration); + var maximumMode = ParseRepeatDuration(animation.Maximum, out var maximumDuration); + if (minimumMode == RepeatDurationMode.Finite && + maximumMode == RepeatDurationMode.Finite && + minimumDuration > maximumDuration) + { + return totalDuration; + } + + switch (minimumMode) { case RepeatDurationMode.Finite: totalDuration = MaxDuration(totalDuration, minimumDuration); break; } - switch (ParseRepeatDuration(animation.Maximum, out var maximumDuration)) + switch (maximumMode) { case RepeatDurationMode.Finite: totalDuration = MinDuration(totalDuration, maximumDuration); @@ -1928,7 +2573,13 @@ private static RepeatDurationMode ParseRepeatDuration(string? value, out TimeSpa : RepeatDurationMode.None; } - private static bool TryResolveAnimatedValue(AnimationBinding binding, SvgAnimationValueElement animation, AnimationSample sample, bool forceColorInterpolation, out string value) + private static bool TryResolveAnimatedValue( + AnimationBinding binding, + SvgAnimationValueElement animation, + AnimationSample sample, + bool forceColorInterpolation, + IReadOnlyDictionary? frameAttributes, + out string value) { value = string.Empty; @@ -1965,15 +2616,30 @@ private static bool TryResolveAnimatedValue(AnimationBinding binding, SvgAnimati var fromValue = values[startIndex]; var toValue = values[endIndex]; - if (TryInterpolateValue(binding, fromValue, toValue, localProgress, forceColorInterpolation, out value)) + if (TryInterpolateValue(binding, fromValue, toValue, localProgress, forceColorInterpolation, frameAttributes, out value)) { return TryApplyAccumulation(binding, animation, values, sample, forceColorInterpolation, ref value); } - value = localProgress >= 1f ? toValue : fromValue; + value = IsToOnlyAnimation(animation) + ? toValue + : ResolveNonInterpolableFallbackValue(fromValue, toValue, localProgress); return TryApplyAccumulation(binding, animation, values, sample, forceColorInterpolation, ref value); } + private static bool IsToOnlyAnimation(SvgAnimationValueElement animation) + { + return string.IsNullOrWhiteSpace(animation.Values) && + string.IsNullOrWhiteSpace(animation.From) && + string.IsNullOrWhiteSpace(animation.By) && + !string.IsNullOrWhiteSpace(animation.To); + } + + private static string ResolveNonInterpolableFallbackValue(string fromValue, string toValue, float localProgress) + { + return localProgress > 0.5f ? toValue : fromValue; + } + private static bool TryResolveTransformValue(AnimationBinding binding, SvgAnimateTransform animation, AnimationSample sample, out string transformValue) { transformValue = string.Empty; @@ -2462,6 +3128,12 @@ private static List ResolveAnimationValues(AnimationBinding binding, Svg { resolved.Add(fromValue); } + else if (animation is SvgAnimateTransform animateTransform && + string.IsNullOrWhiteSpace(animation.To) && + SvgAnimationParser.TryGetTrimmedString(animation.By, out var transformByValue)) + { + resolved.Add(CreateZeroTransformValue(animateTransform.TransformType, transformByValue)); + } else if (!string.IsNullOrWhiteSpace(binding.BaseValueString)) { resolved.Add(binding.BaseValueString!); @@ -2486,6 +3158,28 @@ private static List ResolveAnimationValues(AnimationBinding binding, Svg }); } + private static string CreateZeroTransformValue(SvgAnimateTransformType transformType, string byValue) + { + var byValues = ParseTransformNumbers(byValue); + var length = Math.Max(1, byValues.Length); + var values = new string[length]; + for (var index = 0; index < values.Length; index++) + { + values[index] = GetZeroTransformValue(transformType, index).ToSvgString(); + } + + return string.Join(" ", values); + } + + private static float GetZeroTransformValue(SvgAnimateTransformType transformType, int index) + { + return transformType switch + { + SvgAnimateTransformType.Scale => 0f, + _ => 0f + }; + } + private static bool UsesImplicitBaseValue(AnimationBinding binding, SvgAnimationValueElement animation) { return string.IsNullOrWhiteSpace(animation.Values) && @@ -2503,6 +3197,18 @@ private static bool TryApplyAccumulation(AnimationBinding binding, SvgAnimationV var startValue = values[0]; var endValue = values[values.Count - 1]; + if (animation.CalcMode == SvgAnimationCalcMode.Discrete) + { + if (!TryScaleValue(binding, endValue, sample.IterationIndex, forceColorInterpolation, out var discreteAccumulationValue) || + !TryAddValue(binding, value, discreteAccumulationValue, out var discreteAccumulatedValue)) + { + return false; + } + + value = discreteAccumulatedValue; + return true; + } + if ((forceColorInterpolation || IsPaintServerType(binding.PropertyType) || TryGetColor(value, out _)) && TryGetColor(startValue, out var startColor) && TryGetColor(endValue, out var endColor) && @@ -2518,12 +3224,12 @@ private static bool TryApplyAccumulation(AnimationBinding binding, SvgAnimationV if (!TrySubtractValue(binding, endValue, startValue, forceColorInterpolation, out var deltaValue) || !TryScaleValue(binding, deltaValue, sample.IterationIndex, forceColorInterpolation, out var accumulatedDelta) || - !TryAddValue(binding, value, accumulatedDelta, out var accumulatedValue)) + !TryAddValue(binding, value, accumulatedDelta, out var summedValue)) { return false; } - value = accumulatedValue; + value = summedValue; return true; } @@ -3016,10 +3722,23 @@ private static float EvaluateCubicBezierDerivative(float control1, float control (3f * t * t * (1f - control2)); } - private static bool TryInterpolateValue(AnimationBinding binding, string fromValue, string toValue, float progress, bool forceColorInterpolation, out string result) + private static bool TryInterpolateValue( + AnimationBinding binding, + string fromValue, + string toValue, + float progress, + bool forceColorInterpolation, + IReadOnlyDictionary? frameAttributes, + out string result) { result = string.Empty; + if (forceColorInterpolation || IsPaintServerType(binding.PropertyType) || IsColorKeyword(fromValue) || IsColorKeyword(toValue)) + { + fromValue = ResolveColorKeywordValue(binding, fromValue, frameAttributes); + toValue = ResolveColorKeywordValue(binding, toValue, frameAttributes); + } + if ((forceColorInterpolation || IsPaintServerType(binding.PropertyType)) && TryInterpolateColor(fromValue, toValue, progress, out result)) { @@ -3039,6 +3758,17 @@ private static bool TryInterpolateValue(AnimationBinding binding, string fromVal return true; } + if (binding.AttributeName == "d" && + TryInterpolatePathData(fromValue, toValue, progress, out result)) + { + return true; + } + + if (TryInterpolateNumberList(fromValue, toValue, progress, out result)) + { + return true; + } + if (TryInterpolateSvgUnit(fromValue, toValue, progress, out result)) { return true; @@ -3052,6 +3782,267 @@ private static bool TryInterpolateValue(AnimationBinding binding, string fromVal return false; } + private static string ResolveColorKeywordValue( + AnimationBinding binding, + string value, + IReadOnlyDictionary? frameAttributes) + { + if (!SvgAnimationParser.TryGetTrimmedString(value, out var trimmed)) + { + return value; + } + + if (SvgAnimationParser.EqualsKeywordIgnoreCase(trimmed.AsSpan(), "currentColor") && + (TryGetAnimatedFrameColor(binding.SourceTarget, "color", frameAttributes, out var currentColor) || + TryGetColor(binding.SourceTarget.Color, binding.SourceTarget, out currentColor))) + { + return FormatColor(currentColor); + } + + if (SvgAnimationParser.EqualsKeywordIgnoreCase(trimmed.AsSpan(), "inherit") && + TryGetInheritedColor(binding.SourceTarget, binding.AttributeName, frameAttributes, out var inheritedColor)) + { + return FormatColor(inheritedColor); + } + + return value; + } + + private static bool IsColorKeyword(string value) + { + return SvgAnimationParser.TryGetTrimmedString(value, out var trimmed) && + (SvgAnimationParser.EqualsKeywordIgnoreCase(trimmed.AsSpan(), "currentColor") || + SvgAnimationParser.EqualsKeywordIgnoreCase(trimmed.AsSpan(), "inherit")); + } + + private static bool TryGetInheritedColor( + SvgElement element, + string attributeName, + IReadOnlyDictionary? frameAttributes, + out Color color) + { + color = default; + for (var parent = element.Parent as SvgElement; parent is not null; parent = parent.Parent as SvgElement) + { + if (TryGetAnimatedFrameColor(parent, attributeName, frameAttributes, out color)) + { + return true; + } + + if (TryGetPaintAttribute(parent, attributeName, out var paintServer) && + TryGetColor(paintServer, parent, out color)) + { + return true; + } + + if (parent.TryGetAttribute(attributeName, out var rawValue) && + TryGetColor(rawValue, out color)) + { + return true; + } + + var value = GetAttributeValue(parent, attributeName); + if (TryGetColor(value, parent, out color)) + { + return true; + } + } + + return false; + } + + private static bool TryGetAnimatedFrameColor( + SvgElement element, + string attributeName, + IReadOnlyDictionary? frameAttributes, + out Color color) + { + color = default; + if (frameAttributes is null) + { + return false; + } + + var key = string.Concat(SvgElementAddress.Create(element).Key, "|", attributeName); + return frameAttributes.TryGetValue(key, out var attribute) && + TryGetColor(attribute.Value, out color); + } + + private static bool TryGetPaintAttribute(SvgElement element, string attributeName, out SvgPaintServer? paintServer) + { + switch (attributeName) + { + case "color": + paintServer = element.Color; + return true; + case "fill" when element is SvgVisualElement visualElement: + paintServer = visualElement.Fill; + return true; + case "stroke" when element is SvgVisualElement visualElement: + paintServer = visualElement.Stroke; + return true; + case "stop-color" when element is SvgGradientStop gradientStop: + paintServer = gradientStop.StopColor; + return true; + case "stop-color" when element is SvgGradientServer gradientServer: + paintServer = gradientServer.StopColor; + return true; + case "flood-color" when element is Svg.FilterEffects.SvgDropShadow dropShadow: + paintServer = dropShadow.FloodColor; + return true; + default: + paintServer = null; + return false; + } + } + + private static bool TryInterpolateNumberList(string fromValue, string toValue, float progress, out string result) + { + result = string.Empty; + + var fromNumbers = SvgAnimationParser.ParseNumberList(fromValue); + var toNumbers = SvgAnimationParser.ParseNumberList(toValue); + if (fromNumbers.Length == 0 || fromNumbers.Length != toNumbers.Length) + { + return false; + } + + var values = new string[fromNumbers.Length]; + for (var index = 0; index < values.Length; index++) + { + values[index] = Lerp(fromNumbers[index], toNumbers[index], progress).ToSvgString(); + } + + result = string.Join(" ", values); + return true; + } + + private static bool TryInterpolatePathData(string fromValue, string toValue, float progress, out string result) + { + result = string.Empty; + + if (!TryTokenizePathData(fromValue, out var fromTokens) || + !TryTokenizePathData(toValue, out var toTokens) || + fromTokens.Count == 0 || + fromTokens.Count != toTokens.Count) + { + return false; + } + + var builder = new StringBuilder(); + for (var index = 0; index < fromTokens.Count; index++) + { + var fromToken = fromTokens[index]; + var toToken = toTokens[index]; + if (fromToken.IsCommand != toToken.IsCommand) + { + return false; + } + + if (fromToken.IsCommand) + { + if (fromToken.Command != toToken.Command) + { + return false; + } + + AppendPathToken(builder, fromToken.Command.ToString()); + continue; + } + + AppendPathToken(builder, Lerp(fromToken.Number, toToken.Number, progress).ToSvgString()); + } + + result = builder.ToString(); + return result.Length > 0; + } + + private static bool TryTokenizePathData(string value, out List tokens) + { + tokens = new List(); + if (!SvgAnimationParser.TryGetTrimmedString(value, out var trimmed)) + { + return false; + } + + var span = trimmed.AsSpan(); + var index = 0; + while (index < span.Length) + { + var ch = span[index]; + if (char.IsWhiteSpace(ch) || ch == ',') + { + index++; + continue; + } + + if (IsSvgPathCommand(ch)) + { + tokens.Add(new PathDataToken(ch)); + index++; + continue; + } + + var start = index; + index++; + while (index < span.Length && IsPathNumberContinuation(span, index)) + { + index++; + } + + var token = span.Slice(start, index - start); + if (!SvgAnimationParser.TryParseInvariantFloat(token, out var number)) + { + return false; + } + + tokens.Add(new PathDataToken(number)); + } + + return true; + } + + private static bool IsPathNumberContinuation(ReadOnlySpan span, int index) + { + var ch = span[index]; + if (char.IsWhiteSpace(ch) || ch == ',' || IsSvgPathCommand(ch)) + { + return false; + } + + if ((ch == '-' || ch == '+') && index > 0) + { + var previous = span[index - 1]; + return previous == 'e' || previous == 'E'; + } + + return true; + } + + private static bool IsSvgPathCommand(char ch) + { + return ch is 'M' or 'm' or + 'Z' or 'z' or + 'L' or 'l' or + 'H' or 'h' or + 'V' or 'v' or + 'C' or 'c' or + 'S' or 's' or + 'Q' or 'q' or + 'T' or 't' or + 'A' or 'a'; + } + + private static void AppendPathToken(StringBuilder builder, string token) + { + if (builder.Length > 0) + { + builder.Append(' '); + } + + builder.Append(token); + } + private static bool TryInterpolateTypedValue(object? fromObject, object? toObject, float progress, out string result) { result = string.Empty; @@ -3205,6 +4196,25 @@ private static bool TryGetColor(string value, out Color color) } private static bool TryGetColor(SvgPaintServer? paintServer, out Color color) + { + return TryGetColor(paintServer, styleOwner: null, out color); + } + + private static bool TryGetColor(object? value, SvgElement? styleOwner, out Color color) + { + switch (value) + { + case SvgPaintServer paintServer: + return TryGetColor(paintServer, styleOwner, out color); + case string stringValue: + return TryGetColor(stringValue, out color); + default: + color = default; + return false; + } + } + + private static bool TryGetColor(SvgPaintServer? paintServer, SvgElement? styleOwner, out Color color) { if (paintServer == SvgPaintServer.None || paintServer == SvgPaintServer.Inherit || @@ -3214,6 +4224,16 @@ private static bool TryGetColor(SvgPaintServer? paintServer, out Color color) return false; } + if (paintServer is SvgDeferredPaintServer && styleOwner is not null) + { + var deferredColourServer = SvgDeferredPaintServer.TryGet(paintServer, styleOwner); + if (deferredColourServer is not null) + { + color = deferredColourServer.Colour; + return true; + } + } + if (paintServer is SvgColourServer colourServer) { color = colourServer.Colour; @@ -3246,6 +4266,11 @@ byUnitObject is SvgUnit byUnit && return true; } + if (TryAddNumberLists(baseValue, byValue, out result)) + { + return true; + } + if (SvgAnimationParser.TryParseInvariantFloat(baseValue, out var baseNumber) && SvgAnimationParser.TryParseInvariantFloat(byValue, out var byNumber)) { @@ -3289,6 +4314,11 @@ startUnitObject is SvgUnit startUnit && return true; } + if (TrySubtractNumberLists(endValue, startValue, out result)) + { + return true; + } + if (SvgAnimationParser.TryParseInvariantFloat(endValue, out var endNumber) && SvgAnimationParser.TryParseInvariantFloat(startValue, out var startNumber)) { @@ -3323,6 +4353,11 @@ private static bool TryScaleValue(AnimationBinding binding, string value, int fa return true; } + if (TryScaleNumberList(value, factor, out result)) + { + return true; + } + if (SvgAnimationParser.TryParseInvariantFloat(value, out var numeric)) { result = (numeric * factor).ToSvgString(); @@ -3332,6 +4367,57 @@ private static bool TryScaleValue(AnimationBinding binding, string value, int fa return false; } + private static bool TryAddNumberLists(string leftValue, string rightValue, out string result) + { + return TryCombineNumberLists(leftValue, rightValue, static (left, right) => left + right, out result); + } + + private static bool TrySubtractNumberLists(string leftValue, string rightValue, out string result) + { + return TryCombineNumberLists(leftValue, rightValue, static (left, right) => left - right, out result); + } + + private static bool TryCombineNumberLists(string leftValue, string rightValue, Func combine, out string result) + { + result = string.Empty; + + var leftNumbers = SvgAnimationParser.ParseNumberList(leftValue); + var rightNumbers = SvgAnimationParser.ParseNumberList(rightValue); + if (leftNumbers.Length == 0 || leftNumbers.Length != rightNumbers.Length) + { + return false; + } + + var values = new string[leftNumbers.Length]; + for (var index = 0; index < values.Length; index++) + { + values[index] = combine(leftNumbers[index], rightNumbers[index]).ToSvgString(); + } + + result = string.Join(" ", values); + return true; + } + + private static bool TryScaleNumberList(string value, int factor, out string result) + { + result = string.Empty; + + var numbers = SvgAnimationParser.ParseNumberList(value); + if (numbers.Length == 0) + { + return false; + } + + var values = new string[numbers.Length]; + for (var index = 0; index < values.Length; index++) + { + values[index] = (numbers[index] * factor).ToSvgString(); + } + + result = string.Join(" ", values); + return true; + } + private static bool TryAddTypedValue(object? baseObject, object? byObject, out string result) { result = string.Empty; diff --git a/src/Svg.Animation/Animation/SvgAnimationParser.cs b/src/Svg.Animation/Animation/SvgAnimationParser.cs index 665767e76e..43d0ce8c52 100644 --- a/src/Svg.Animation/Animation/SvgAnimationParser.cs +++ b/src/Svg.Animation/Animation/SvgAnimationParser.cs @@ -7,11 +7,12 @@ namespace Svg.Skia; internal readonly struct SvgAnimationEventTimingParseResult { - public SvgAnimationEventTimingParseResult(SvgElementAddress eventAddress, SvgAnimationTimingEventType eventType, TimeSpan offset) + public SvgAnimationEventTimingParseResult(SvgElementAddress eventAddress, SvgAnimationTimingEventType eventType, TimeSpan offset, int? repeatIteration = null) { EventAddress = eventAddress; EventType = eventType; Offset = offset; + RepeatIteration = repeatIteration; } public SvgElementAddress EventAddress { get; } @@ -19,6 +20,8 @@ public SvgAnimationEventTimingParseResult(SvgElementAddress eventAddress, SvgAni public SvgAnimationTimingEventType EventType { get; } public TimeSpan Offset { get; } + + public int? RepeatIteration { get; } } internal static class SvgAnimationParser @@ -218,7 +221,7 @@ internal static bool TryParseEventTimingSpec( eventAddress = SvgElementAddress.Create(eventElement); } - if (!TryMapEventName(eventName, out var eventType)) + if (!TryMapEventName(eventName, out var eventType, out var repeatIteration)) { return false; } @@ -239,7 +242,7 @@ internal static bool TryParseEventTimingSpec( } } - result = new SvgAnimationEventTimingParseResult(eventAddress, eventType, offset); + result = new SvgAnimationEventTimingParseResult(eventAddress, eventType, offset, repeatIteration); return true; } @@ -530,8 +533,10 @@ private static bool TryParseColonClockValue(ReadOnlySpan value, out TimeSp return true; } - private static bool TryMapEventName(ReadOnlySpan eventName, out SvgAnimationTimingEventType eventType) + private static bool TryMapEventName(ReadOnlySpan eventName, out SvgAnimationTimingEventType eventType, out int? repeatIteration) { + repeatIteration = null; + if (EqualsAsciiIgnoreCase(eventName, "click")) { eventType = SvgAnimationTimingEventType.Click; @@ -586,10 +591,44 @@ private static bool TryMapEventName(ReadOnlySpan eventName, out SvgAnimati return true; } + if (TryParseRepeatEventName(eventName, out repeatIteration)) + { + eventType = SvgAnimationTimingEventType.Repeat; + return true; + } + eventType = default; return false; } + private static bool TryParseRepeatEventName(ReadOnlySpan eventName, out int? repeatIteration) + { + repeatIteration = null; + var trimmed = Trim(eventName); + const string repeat = "repeat"; + if (trimmed.Length == repeat.Length && EqualsAsciiIgnoreCase(trimmed, repeat)) + { + return true; + } + + if (trimmed.Length <= repeat.Length + 2 || + !EqualsAsciiIgnoreCase(trimmed.Slice(0, repeat.Length), repeat) || + trimmed[repeat.Length] != '(' || + trimmed[trimmed.Length - 1] != ')') + { + return false; + } + + var ordinal = Trim(trimmed.Slice(repeat.Length + 1, trimmed.Length - repeat.Length - 2)); + if (!int.TryParse(ordinal.ToString(), NumberStyles.Integer, CultureInfo.InvariantCulture, out var parsed) || parsed <= 0) + { + return false; + } + + repeatIteration = parsed; + return true; + } + internal static float ToMotionCoordinate(SvgUnit unit, UnitRenderingType renderingType, SvgElement owner) { var ppi = owner.OwnerDocument?.Ppi ?? SvgDocument.PointsPerInch; diff --git a/src/Svg.Animation/Animation/SvgAnimationTimingEventType.cs b/src/Svg.Animation/Animation/SvgAnimationTimingEventType.cs index 6c0b961397..0766e771d5 100644 --- a/src/Svg.Animation/Animation/SvgAnimationTimingEventType.cs +++ b/src/Svg.Animation/Animation/SvgAnimationTimingEventType.cs @@ -10,5 +10,6 @@ internal enum SvgAnimationTimingEventType Wheel, Click, Begin, - End + End, + Repeat } diff --git a/src/Svg.Custom/Animation/SvgAnimationElement.cs b/src/Svg.Custom/Animation/SvgAnimationElement.cs index b2ee9c0918..167b580ebe 100644 --- a/src/Svg.Custom/Animation/SvgAnimationElement.cs +++ b/src/Svg.Custom/Animation/SvgAnimationElement.cs @@ -6,6 +6,11 @@ namespace Svg { public abstract partial class SvgAnimationElement : SvgElement { + protected string GetRawAnimationStringAttribute(string attributeName) + { + return Attributes.GetAttribute(attributeName); + } + [SvgAttribute("href", SvgAttributeAttribute.XLinkNamespace)] public virtual Uri ReferencedElement { @@ -175,7 +180,7 @@ public virtual SvgAnimationCalcMode CalcMode [SvgAttribute("values")] public virtual string Values { - get { return GetAttribute("values", false); } + get { return GetRawAnimationStringAttribute("values"); } set { Attributes["values"] = value; } } @@ -197,21 +202,21 @@ public virtual string KeySplines [SvgAttribute("from")] public virtual string From { - get { return GetAttribute("from", false); } + get { return GetRawAnimationStringAttribute("from"); } set { Attributes["from"] = value; } } [SvgAttribute("to")] public virtual string To { - get { return GetAttribute("to", false); } + get { return GetRawAnimationStringAttribute("to"); } set { Attributes["to"] = value; } } [SvgAttribute("by")] public virtual string By { - get { return GetAttribute("by", false); } + get { return GetRawAnimationStringAttribute("by"); } set { Attributes["by"] = value; } } @@ -245,7 +250,7 @@ public partial class SvgSet : SvgAnimationAttributeElement [SvgAttribute("to")] public virtual string To { - get { return GetAttribute("to", false); } + get { return GetRawAnimationStringAttribute("to"); } set { Attributes["to"] = value; } } diff --git a/src/Svg.Custom/Animation/SvgDocument.Animation.cs b/src/Svg.Custom/Animation/SvgDocument.Animation.cs index 40764deac2..e9be81952a 100644 --- a/src/Svg.Custom/Animation/SvgDocument.Animation.cs +++ b/src/Svg.Custom/Animation/SvgDocument.Animation.cs @@ -1,3 +1,5 @@ +using System; + namespace Svg { public partial class SvgDocument @@ -30,5 +32,55 @@ public override SvgElement DeepCopy() return newObj; } + + internal void RebindSameDocumentDeferredPaintServers() + { + foreach (var element in Descendants()) + { + foreach (var attribute in element.Attributes) + { + if (attribute.Value is SvgDeferredPaintServer deferredPaintServer && + IsSameDocumentDeferredPaintServer(deferredPaintServer)) + { + deferredPaintServer.RebindDocument(this); + } + } + } + } + + private static bool IsSameDocumentDeferredPaintServer(SvgDeferredPaintServer paintServer) + { + var deferredId = paintServer.DeferredId?.Trim(); + if (string.IsNullOrEmpty(deferredId)) + { + return false; + } + + if (string.Equals(deferredId, "currentColor", StringComparison.Ordinal)) + { + return true; + } + + if (deferredId[0] == '#') + { + return true; + } + + if (!deferredId.StartsWith("url(", StringComparison.OrdinalIgnoreCase) || + !deferredId.EndsWith(")", StringComparison.Ordinal)) + { + return false; + } + + var url = deferredId.Substring(4, deferredId.Length - 5).Trim(); + if (url.Length >= 2 && + ((url[0] == '"' && url[url.Length - 1] == '"') || + (url[0] == '\'' && url[url.Length - 1] == '\''))) + { + url = url.Substring(1, url.Length - 2).Trim(); + } + + return url.StartsWith("#", StringComparison.Ordinal); + } } } diff --git a/src/Svg.Custom/Animation/SvgElement.AnimationRuntime.cs b/src/Svg.Custom/Animation/SvgElement.AnimationRuntime.cs index ee9f0c2d43..99127b5db3 100644 --- a/src/Svg.Custom/Animation/SvgElement.AnimationRuntime.cs +++ b/src/Svg.Custom/Animation/SvgElement.AnimationRuntime.cs @@ -13,7 +13,22 @@ public virtual object GetAnimationValue(string attributeName) throw new ArgumentNullException(nameof(attributeName)); } - return GetValue(attributeName); + var normalized = NormalizeAnimationAttributeName(attributeName, out _, out _); + var value = GetValue(normalized); + if (value is not null) + { + return value; + } + + if (TryGetAttribute(attributeName, out var rawValue)) + { + return rawValue; + } + + return !string.Equals(normalized, attributeName, StringComparison.Ordinal) && + TryGetAttribute(normalized, out rawValue) + ? rawValue + : null; } public virtual bool TrySetAnimationValue(string attributeName, object value) @@ -31,7 +46,37 @@ public virtual bool TrySetAnimationValue(string attributeName, ITypeDescriptorCo context ??= OwnerDocument; culture ??= CultureInfo.InvariantCulture; - return SetValue(attributeName, context, culture, value); + var normalized = NormalizeAnimationAttributeName(attributeName, out var namespaceName, out var customAttributeName); + var stringValue = Convert.ToString(value, culture) ?? string.Empty; + var isStyleMutation = string.Equals(normalized, "style", StringComparison.Ordinal); + + if (IsHrefAttribute(normalized, namespaceName)) + { + SetCompatibilityHrefAttributeValue(namespaceName, stringValue); + } + + if (isStyleMutation) + { + (context as SvgDocument ?? OwnerDocument)?.TrackCompatibilityStyleStateCandidate(this); + } + + if (SetValue(normalized, context, culture, value)) + { + InvalidateAnimationAttributeChange(normalized); + return true; + } + + var document = context as SvgDocument ?? OwnerDocument; + if (document is not null && + SvgElementFactory.SetPropertyValue(this, namespaceName, normalized, stringValue, document, isStyle: false)) + { + InvalidateAnimationAttributeChange(normalized); + return true; + } + + CustomAttributes[customAttributeName] = stringValue; + InvalidateAnimationAttributeChange(normalized); + return true; } public virtual bool ClearAnimationValue(string attributeName) @@ -41,7 +86,125 @@ public virtual bool ClearAnimationValue(string attributeName) throw new ArgumentNullException(nameof(attributeName)); } - return Attributes.Remove(attributeName); + var normalized = NormalizeAnimationAttributeName(attributeName, out var namespaceName, out var customAttributeName); + var isStyleMutation = string.Equals(normalized, "style", StringComparison.Ordinal); + var removed = Attributes.Remove(normalized); + if (!string.Equals(normalized, attributeName, StringComparison.Ordinal)) + { + removed |= Attributes.Remove(attributeName); + } + + removed |= CustomAttributes.Remove(customAttributeName); + removed |= CustomAttributes.Remove(attributeName); + if (!string.Equals(normalized, customAttributeName, StringComparison.Ordinal)) + { + removed |= CustomAttributes.Remove(normalized); + } + + if (IsHrefAttribute(normalized, namespaceName)) + { + ClearCompatibilityHrefAttributeValue(namespaceName); + removed = true; + } + + if (isStyleMutation) + { + OwnerDocument?.TrackCompatibilityStyleStateCandidate(this); + } + + if (removed) + { + InvalidateAnimationAttributeChange(normalized); + } + + return removed; + } + + private string NormalizeAnimationAttributeName(string attributeName, out string namespaceName, out string customAttributeName) + { + namespaceName = string.Empty; + customAttributeName = attributeName; + + if (attributeName.StartsWith("xlink:", StringComparison.Ordinal)) + { + namespaceName = SvgNamespaces.XLinkNamespace; + customAttributeName = attributeName; + return attributeName.Substring("xlink:".Length); + } + + if (attributeName.StartsWith(SvgNamespaces.XLinkNamespace + ":", StringComparison.Ordinal)) + { + namespaceName = SvgNamespaces.XLinkNamespace; + customAttributeName = attributeName; + return attributeName.Substring(SvgNamespaces.XLinkNamespace.Length + 1); + } + + if (attributeName.StartsWith("xml:", StringComparison.Ordinal)) + { + namespaceName = SvgNamespaces.XmlNamespace; + customAttributeName = attributeName; + return attributeName.Substring("xml:".Length); + } + + if (attributeName.StartsWith(SvgNamespaces.XmlNamespace + ":", StringComparison.Ordinal)) + { + namespaceName = SvgNamespaces.XmlNamespace; + customAttributeName = attributeName; + return attributeName.Substring(SvgNamespaces.XmlNamespace.Length + 1); + } + + var colonIndex = attributeName.IndexOf(':'); + if (colonIndex > 0 && colonIndex < attributeName.Length - 1) + { + var prefix = attributeName.Substring(0, colonIndex); + if (TryResolveAnimationAttributeNamespace(prefix, out namespaceName)) + { + return attributeName.Substring(colonIndex + 1); + } + + namespaceName = string.Empty; + } + + return attributeName; + } + + private bool TryResolveAnimationAttributeNamespace(string prefix, out string namespaceName) + { + for (SvgElement current = this; current is not null; current = current.Parent as SvgElement) + { + if (current.Namespaces.TryGetValue(prefix, out namespaceName)) + { + return true; + } + } + + var document = this as SvgDocument ?? OwnerDocument; + if (document is not null && document.Namespaces.TryGetValue(prefix, out namespaceName)) + { + return true; + } + + namespaceName = string.Empty; + return false; + } + + private static bool IsHrefAttribute(string attributeName, string namespaceName) + { + return string.Equals(attributeName, "href", StringComparison.Ordinal) && + (namespaceName.Length == 0 || + string.Equals(namespaceName, SvgNamespaces.XLinkNamespace, StringComparison.Ordinal)); + } + + private void InvalidateAnimationAttributeChange(string attributeName) + { + if (string.Equals(attributeName, "class", StringComparison.Ordinal) || + string.Equals(attributeName, "style", StringComparison.Ordinal)) + { + OwnerDocument?.ReapplyCompatibilityStylesAfterSelectorMutation(); + return; + } + + OwnerDocument?.InvalidateComputedStyleCache(); } } } diff --git a/src/Svg.Custom/Compatibility/SvgDocument.DynamicStyles.cs b/src/Svg.Custom/Compatibility/SvgDocument.DynamicStyles.cs index b7956df370..237a8ab569 100644 --- a/src/Svg.Custom/Compatibility/SvgDocument.DynamicStyles.cs +++ b/src/Svg.Custom/Compatibility/SvgDocument.DynamicStyles.cs @@ -227,6 +227,14 @@ internal void ReapplyCompatibilityStyles() ApplyCompatibilityStyles(); } + internal void ReapplyCompatibilityStylesAfterSelectorMutation() + { + EnsureCompatibilityStyleStateInitialized(); + InvalidateComputedStyleCache(); + RestoreCompatibilityStyleStateAfterSelectorMutation(); + ApplyCompatibilityStyles(); + } + internal void ApplyCompatibilityStyles() { if (_compatibilityStyleSources is { Count: > 0 }) @@ -286,6 +294,35 @@ private void RestoreCompatibilityStyleState() } } + private void RestoreCompatibilityStyleStateAfterSelectorMutation() + { + foreach (var element in EnumerateElements()) + { + SvgCompatibilityStyleSnapshot snapshot; + if (_compatibilityRawStyleState is not null && + _compatibilityRawStyleState.TryGetValue(element, out var rawState) && + rawState.HasPresentationAttributes) + { + snapshot = element.CreateCompatibilityStyleSnapshot(rawState); + } + else if (_compatibilityStyleState is not null && + _compatibilityStyleState.TryGetValue(element, out var storedSnapshot)) + { + snapshot = storedSnapshot; + } + else if (HasCompatibilityInlineStyle(element)) + { + snapshot = new SvgCompatibilityStyleSnapshot(element.CustomAttributes["style"]); + } + else + { + snapshot = SvgCompatibilityStyleSnapshot.Empty; + } + + element.RestoreCompatibilityStyleState(snapshot); + } + } + private SvgCompatibilityStyleSnapshot GetOrCreateCompatibilityStyleSnapshot(SvgElement element) { EnsureCompatibilityStyleStateInitialized(); diff --git a/src/Svg.Custom/Compatibility/SvgDocumentCompatibilityLoader.cs b/src/Svg.Custom/Compatibility/SvgDocumentCompatibilityLoader.cs index 23c9cf3381..4e736005aa 100644 --- a/src/Svg.Custom/Compatibility/SvgDocumentCompatibilityLoader.cs +++ b/src/Svg.Custom/Compatibility/SvgDocumentCompatibilityLoader.cs @@ -196,14 +196,17 @@ private static T Create( { if (styles is { Count: > 0 }) { + svgDocument.SetCompatibilityStyleSources(styles); if (captureCompatibilityStyleState) { if (!preserveCompatibilityPresentationAttributes) { svgDocument.CaptureCompatibilityStyleState(); } - - svgDocument.SetCompatibilityStyleSources(styles); + } + else + { + svgDocument.CaptureCompatibilityStyleState(); } SvgCssCompatibilityProcessor.Apply(svgDocument, styles, elementFactory, svgDocument.LoadOptions); diff --git a/src/Svg.Custom/Compatibility/SvgElement.JavaScriptDomState.cs b/src/Svg.Custom/Compatibility/SvgElement.JavaScriptDomState.cs index a94e2e5a41..7d54fe578a 100644 --- a/src/Svg.Custom/Compatibility/SvgElement.JavaScriptDomState.cs +++ b/src/Svg.Custom/Compatibility/SvgElement.JavaScriptDomState.cs @@ -71,6 +71,12 @@ internal bool TryGetCompatibilityHrefAttributeValue(string namespaceName, out st return false; } + internal void ClearCompatibilityHrefAttributeValue(string namespaceName) + { + namespaceName ??= string.Empty; + _compatibilityHrefAttributeValues?.Remove(namespaceName); + } + internal bool HasCompatibilityHrefAttributeValues() { return _compatibilityHrefAttributeValues is { Count: > 0 }; diff --git a/src/Svg.Custom/Painting/SvgDeferredPaintServer.cs b/src/Svg.Custom/Painting/SvgDeferredPaintServer.cs index 2847a21997..02ee31f726 100644 --- a/src/Svg.Custom/Painting/SvgDeferredPaintServer.cs +++ b/src/Svg.Custom/Painting/SvgDeferredPaintServer.cs @@ -121,6 +121,19 @@ public override SvgElement DeepCopy() return newObj; } + internal void RebindDocument(SvgDocument document) + { + Document = document; + _concreteServer = null; + _fallbackServer = null; + _serverLoaded = false; + + if (FallbackServer is SvgDeferredPaintServer deferredFallback) + { + deferredFallback.RebindDocument(document); + } + } + public override bool Equals(object obj) { var other = obj as SvgDeferredPaintServer; diff --git a/tests/Svg.Skia.UnitTests/SvgAnimationControllerTests.cs b/tests/Svg.Skia.UnitTests/SvgAnimationControllerTests.cs index 2cf8b0b377..74f7540711 100644 --- a/tests/Svg.Skia.UnitTests/SvgAnimationControllerTests.cs +++ b/tests/Svg.Skia.UnitTests/SvgAnimationControllerTests.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Drawing; using System.IO; using System.Linq; using System.Reflection; @@ -271,6 +272,28 @@ public void SetAnimationTime_RebuildsInheritedFontSizeAndFillAnimationsUnderLaye Assert.True(updatedExpandedArea.Green > updatedExpandedArea.Blue); } + [Fact] + public void CreateAnimatedDocument_RendersInheritedGradientStopOpacityAnimations() + { + var document = SvgService.FromSvg(InheritedGradientStopOpacityAnimationSvg); + Assert.NotNull(document); + + using var controller = new SvgAnimationController(document!); + var animated = controller.CreateAnimatedDocument(TimeSpan.FromSeconds(2)); + foreach (var animation in animated.Descendants().OfType().ToArray()) + { + animation.Parent?.Children.Remove(animation); + } + + using var svg = SKSvg.CreateFromSvgDocument(animated); + using var updatedBitmap = RenderBitmap(svg); + var updatedRight = updatedBitmap.GetPixel(18, 5); + Assert.True(updatedRight.Alpha > 200, $"Expected opaque pixel, got {updatedRight}."); + Assert.True(updatedRight.Red < 80, $"Expected low red channel, got {updatedRight}."); + Assert.True(updatedRight.Green > 100, $"Expected green channel, got {updatedRight}."); + Assert.True(updatedRight.Blue < 80, $"Expected low blue channel, got {updatedRight}."); + } + [Fact] public void CreateAnimatedDocument_AppliesInheritedCssAnimationsWhenWhitespaceCssParameterIsProvided() { @@ -421,6 +444,27 @@ public void CreateAnimatedDocument_ComposesConcurrentAdditiveAnimationsFromCurre Assert.Equal(7.5f, target!.X.Value, 3); } + [Fact] + public void CreateAnimatedDocument_ComposesMotionWithEarlierTransformAnimation() + { + var document = SvgService.FromSvg(MotionAfterTransformAnimationSvg); + Assert.NotNull(document); + + using var controller = new SvgAnimationController(document!); + + var animated = controller.CreateAnimatedDocument(TimeSpan.FromSeconds(1)); + var target = animated.GetElementById("target"); + Assert.NotNull(target); + Assert.Equal(2, target!.Transforms.Count); + + var motionTranslate = Assert.IsType(target.Transforms[0]); + var transformTranslate = Assert.IsType(target.Transforms[1]); + Assert.Equal(10f, motionTranslate.X, 3); + Assert.Equal(0f, motionTranslate.Y, 3); + Assert.Equal(0f, transformTranslate.X, 3); + Assert.Equal(5f, transformTranslate.Y, 3); + } + [Fact] public void CreateAnimatedDocument_TreatsRepeatDurIndefiniteAsUnbounded() { @@ -524,6 +568,29 @@ public void CreateAnimatedDocument_EnforcesMinimumActiveDuration() Assert.Equal(5f, target!.X.Value, 3); } + [Fact] + public void CreateAnimatedDocument_ConstrainsIndefiniteSetWithValidMaximumDuration() + { + var document = SvgService.FromSvg(IndefiniteSetMaxDurationSvg); + Assert.NotNull(document); + + using var controller = new SvgAnimationController(document!); + + var during = controller.CreateAnimatedDocument(TimeSpan.FromSeconds(1)); + var duringTarget = during.GetElementById("capped"); + Assert.NotNull(duringTarget); + Assert.Equal(10f, duringTarget!.X.Value, 3); + + var afterMax = controller.CreateAnimatedDocument(TimeSpan.FromSeconds(3)); + var capped = afterMax.GetElementById("capped"); + Assert.NotNull(capped); + Assert.Equal(0f, capped!.X.Value, 3); + + var invalidPair = afterMax.GetElementById("invalid-pair"); + Assert.NotNull(invalidPair); + Assert.Equal(10f, invalidPair!.X.Value, 3); + } + [Fact] public void CreateAnimatedDocument_AppliesZeroDurationAnimateImmediately() { @@ -812,6 +879,431 @@ public void CreateAnimatedDocument_SaturatesLargeRepeatIterationCounts() Assert.True(target!.X.Value > 1_000_000f); } + [Fact] + public void CreateAnimatedDocument_ResolvesSyncbaseRepeatTiming() + { + var document = SvgService.FromSvg(SyncbaseRepeatTimingSvg); + Assert.NotNull(document); + + using var controller = new SvgAnimationController(document!); + + var beforeRepeat = controller.CreateAnimatedDocument(TimeSpan.FromSeconds(0.75)); + var beforeTarget = beforeRepeat.GetElementById("target"); + Assert.NotNull(beforeTarget); + Assert.Equal(0f, beforeTarget!.X.Value, 3); + + var afterRepeat = controller.CreateAnimatedDocument(TimeSpan.FromSeconds(1.5)); + var afterTarget = afterRepeat.GetElementById("target"); + Assert.NotNull(afterTarget); + Assert.Equal(5f, afterTarget!.X.Value, 3); + } + + [Fact] + public void CreateAnimatedDocument_GeneratesSelfEndBeginIntervals() + { + var document = SvgService.FromSvg(SelfEndBeginTimingSvg); + Assert.NotNull(document); + + using var controller = new SvgAnimationController(document!); + + var firstActive = controller.CreateAnimatedDocument(TimeSpan.FromSeconds(0.5)); + Assert.Equal(10f, firstActive.GetElementById("pulse")!.X.Value, 3); + + var firstGap = controller.CreateAnimatedDocument(TimeSpan.FromSeconds(1.5)); + Assert.Equal(0f, firstGap.GetElementById("pulse")!.X.Value, 3); + + var secondActive = controller.CreateAnimatedDocument(TimeSpan.FromSeconds(2.5)); + Assert.Equal(10f, secondActive.GetElementById("pulse")!.X.Value, 3); + + var followerActive = controller.CreateAnimatedDocument(TimeSpan.FromSeconds(4.5)); + Assert.Equal(10f, followerActive.GetElementById("follower")!.X.Value, 3); + } + + [Fact] + public void CreateAnimatedDocument_UsesHalfOpenActiveIntervals() + { + var document = SvgService.FromSvg(HalfOpenIntervalAnimationSvg); + Assert.NotNull(document); + + using var controller = new SvgAnimationController(document!); + var animated = controller.CreateAnimatedDocument(TimeSpan.FromSeconds(1)); + + var removed = animated.GetElementById("removed"); + Assert.NotNull(removed); + Assert.Equal(0f, removed!.X.Value, 3); + + var frozen = animated.GetElementById("frozen"); + Assert.NotNull(frozen); + Assert.Equal(10f, frozen!.X.Value, 3); + } + + [Fact] + public void CreateAnimatedDocument_TruncatesRestartedIntervalsForSyncbaseEnd() + { + var document = SvgService.FromSvg(RestartTruncationSyncbaseSvg); + Assert.NotNull(document); + + using var controller = new SvgAnimationController(document!); + var animated = controller.CreateAnimatedDocument(TimeSpan.FromSeconds(0.75)); + + var target = animated.GetElementById("target"); + Assert.NotNull(target); + Assert.Equal(2.5f, target!.Y.Value, 3); + } + + [Fact] + public void CreateAnimatedDocument_UsesSelfBeginTimingForEndInstances() + { + var document = SvgService.FromSvg(SelfBeginEndTimingSvg); + Assert.NotNull(document); + + using var controller = new SvgAnimationController(document!); + var animated = controller.CreateAnimatedDocument(TimeSpan.FromSeconds(3)); + + var target = animated.GetElementById("target"); + Assert.NotNull(target); + Assert.Equal(2f, target!.X.Value, 3); + } + + [Fact] + public void TryGetStartTime_ResolvesFutureSyncbaseIntervals() + { + var document = SvgService.FromSvg(FutureSyncbaseStartTimeSvg); + Assert.NotNull(document); + var animation = document!.GetElementById("dependent"); + Assert.NotNull(animation); + + using var controller = new SvgAnimationController(document); + var method = typeof(SvgAnimationController).GetMethod( + "TryGetStartTime", + System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic, + binder: null, + new[] { typeof(SvgAnimationElement), typeof(TimeSpan), typeof(TimeSpan).MakeByRefType() }, + modifiers: null); + Assert.NotNull(method); + + var args = new object?[] { animation, TimeSpan.Zero, default(TimeSpan) }; + var resolved = Assert.IsType(method!.Invoke(controller, args)); + + Assert.True(resolved); + Assert.Equal(TimeSpan.FromSeconds(2), Assert.IsType(args[2])); + } + + [Fact] + public void GetTimelineCallbacks_IncludesRepeatEvents() + { + var document = SvgService.FromSvg(RepeatTimelineCallbackSvg); + Assert.NotNull(document); + + using var controller = new SvgAnimationController(document!); + var callbacks = InvokeTimelineCallbacks(controller, TimeSpan.FromSeconds(1), TimeSpan.Zero); + + Assert.Contains(callbacks, callback => callback.EventType == "repeatEvent" && callback.AttributeName == "onrepeat"); + } + + [Fact] + public void CreateAnimatedDocument_IgnoresRepeatZeroTiming() + { + var document = SvgService.FromSvg(RepeatZeroTimingSvg); + Assert.NotNull(document); + + using var controller = new SvgAnimationController(document!); + var animated = controller.CreateAnimatedDocument(TimeSpan.FromSeconds(2)); + + var target = animated.GetElementById("target"); + Assert.NotNull(target); + Assert.Equal(0f, target!.X.Value, 3); + } + + [Fact] + public void CreateAnimatedDocument_IgnoresNonProgressingSelfBeginTiming() + { + var document = SvgService.FromSvg(NonProgressingSelfBeginTimingSvg); + Assert.NotNull(document); + + using var controller = new SvgAnimationController(document!); + var animated = controller.CreateAnimatedDocument(TimeSpan.FromSeconds(1.5)); + + var target = animated.GetElementById("target"); + Assert.NotNull(target); + Assert.Equal(10f, target!.X.Value, 3); + } + + [Fact] + public void CreateAnimatedDocument_InterpolatesNumberListsAndPathData() + { + var document = SvgService.FromSvg(NumberListAndPathDataAnimationSvg); + Assert.NotNull(document); + + using var controller = new SvgAnimationController(document!); + var animated = controller.CreateAnimatedDocument(TimeSpan.FromSeconds(1)); + + var polygon = animated.GetElementById("polygon"); + Assert.NotNull(polygon); + Assert.Equal(10f, polygon!.Points[2].Value, 3); + Assert.Equal(10f, polygon.Points[5].Value, 3); + + var path = animated.GetElementById("path"); + Assert.NotNull(path); + Assert.Contains("10", path!.PathData.ToString(), StringComparison.Ordinal); + } + + [Fact] + public void CreateAnimatedDocument_UsesDiscreteFallbackForNonInterpolableLinearValues() + { + var document = SvgService.FromSvg(NonInterpolableLinearAnimationSvg); + Assert.NotNull(document); + + using var controller = new SvgAnimationController(document!); + + var midpoint = controller.CreateAnimatedDocument(TimeSpan.FromSeconds(1)); + var midpointTarget = midpoint.GetElementById("target"); + Assert.NotNull(midpointTarget); + Assert.Equal("hidden", midpointTarget!.Visibility); + + var endpoint = controller.CreateAnimatedDocument(TimeSpan.FromSeconds(2)); + var endpointTarget = endpoint.GetElementById("target"); + Assert.NotNull(endpointTarget); + Assert.Equal("visible", endpointTarget!.Visibility); + } + + [Fact] + public void CreateAnimatedDocument_AppliesToOnlyNonInterpolableAttributesImmediately() + { + var document = SvgService.FromSvg(ToOnlyNonInterpolableAnimationSvg); + Assert.NotNull(document); + + using var controller = new SvgAnimationController(document!); + var animated = controller.CreateAnimatedDocument(TimeSpan.FromSeconds(3)); + + Assert.Equal(SvgCoordinateUnits.UserSpaceOnUse, animated.GetElementById("clip")!.ClipPathUnits); + Assert.Equal("off", animated.GetElementById("composite")!.Input); + Assert.Equal(SvgPreserveAspectRatio.xMinYMin, animated.GetElementById("fragment")!.AspectRatio.Align); + Assert.Equal(SvgGradientSpreadMethod.Pad, animated.GetElementById("gradient")!.SpreadMethod); + + var use = animated.GetElementById("use"); + Assert.NotNull(use); + Assert.True(use!.TryGetEffectiveHrefString(out var href)); + Assert.Equal("#target-b", href); + + var classTarget = animated.GetElementById("class-target"); + Assert.NotNull(classTarget); + Assert.True(classTarget!.TryGetAttribute("class", out var className)); + Assert.Equal("off", className); + } + + [Fact] + public void CreateAnimatedDocument_AnimatesHrefUsingNormalizedAttributeName() + { + var document = SvgService.FromSvg(HrefNameNormalizationAnimationSvg); + Assert.NotNull(document); + + using var controller = new SvgAnimationController(document!); + var animated = controller.CreateAnimatedDocument(TimeSpan.FromSeconds(2)); + + var target = animated.GetElementById("target"); + Assert.NotNull(target); + Assert.True(target!.TryGetEffectiveHrefString(out var href)); + Assert.Equal("#template-b", href); + } + + [Fact] + public void CreateAnimatedDocument_AnimatesDirectXLinkHrefAttributeName() + { + var document = SvgService.FromSvg(XLinkHrefAnimationSvg); + Assert.NotNull(document); + + using var controller = new SvgAnimationController(document!); + var animated = controller.CreateAnimatedDocument(TimeSpan.FromSeconds(2)); + + var target = animated.GetElementById("target"); + Assert.NotNull(target); + Assert.True(target!.TryGetEffectiveHrefString(out var href)); + Assert.Equal("#template-b", href); + } + + [Fact] + public void CreateAnimatedDocument_AnimatesHrefUsingNamespaceAlias() + { + var document = SvgService.FromSvg(AliasedXLinkHrefAnimationSvg); + Assert.NotNull(document); + + using var controller = new SvgAnimationController(document!); + var animated = controller.CreateAnimatedDocument(TimeSpan.FromSeconds(2)); + + var target = animated.GetElementById("target"); + Assert.NotNull(target); + Assert.True(target!.TryGetEffectiveHrefString(out var href)); + Assert.Equal("#template-b", href); + } + + [Fact] + public void CreateAnimatedDocument_ReappliesClassSelectorsAfterClassAnimation() + { + var document = SvgService.FromSvg(ClassSelectorAnimationSvg); + Assert.NotNull(document); + + using var controller = new SvgAnimationController(document!); + var animated = controller.CreateAnimatedDocument(TimeSpan.FromSeconds(2)); + + var target = animated.GetElementById("target"); + Assert.NotNull(target); + Assert.True(target!.TryGetAttribute("class", out var className)); + Assert.Equal("off", className); + var fill = Assert.IsType(target.Fill); + Assert.Equal((byte)255, fill.Colour.R); + Assert.Equal((byte)0, fill.Colour.G); + Assert.Equal((byte)0, fill.Colour.B); + } + + [Fact] + public void CreateAnimatedDocument_AppliesAnimatedInlineStyle() + { + var document = SvgService.FromSvg(StyleAnimationSvg); + Assert.NotNull(document); + + using var controller = new SvgAnimationController(document!); + var animated = controller.CreateAnimatedDocument(TimeSpan.FromSeconds(2)); + + var target = animated.GetElementById("target"); + Assert.NotNull(target); + var fill = Assert.IsType(target!.Fill); + Assert.Equal((byte)0, fill.Colour.R); + Assert.Equal((byte)128, fill.Colour.G); + Assert.Equal((byte)0, fill.Colour.B); + } + + [Fact] + public void CreateAnimatedDocument_PreservesClassCustomAttributeDuringAnimation() + { + var document = SvgService.FromSvg(ClassPreservationAnimationSvg); + Assert.NotNull(document); + + using var controller = new SvgAnimationController(document!); + var animated = controller.CreateAnimatedDocument(TimeSpan.FromSeconds(1)); + + var target = animated.GetElementById("target"); + Assert.NotNull(target); + Assert.True(target!.TryGetAttribute("class", out var className)); + Assert.Equal("base highlighted", className); + Assert.Equal(10f, target.X.Value, 3); + } + + [Fact] + public void CreateAnimatedDocument_AnimatesInheritedGradientStopColorAndOpacity() + { + var document = SvgService.FromSvg(InheritedStopAnimationSvg); + Assert.NotNull(document); + + using var controller = new SvgAnimationController(document!); + var animated = controller.CreateAnimatedDocument(TimeSpan.FromSeconds(1)); + + var gradient = animated.GetElementById("gradient"); + Assert.NotNull(gradient); + var gradientColor = Assert.IsType(gradient!.StopColor); + Assert.Equal((byte)128, gradientColor.Colour.R); + Assert.Equal((byte)0, gradientColor.Colour.G); + Assert.Equal((byte)128, gradientColor.Colour.B); + Assert.Equal(0.5f, gradient.StopOpacity, 3); + + var inheritedStop = animated.GetElementById("inherited-stop"); + Assert.NotNull(inheritedStop); + var inheritedColor = Assert.IsType(inheritedStop!.StopColor); + Assert.Equal(gradientColor.Colour, inheritedColor.Colour); + Assert.Equal(0.5f, inheritedStop.StopOpacity, 3); + } + + [Fact] + public void CreateAnimatedDocument_AnimatesInheritedStopOpacityFromParentScope() + { + var document = SvgService.FromSvg(W3CParentScopedStopOpacityAnimationSvg); + Assert.NotNull(document); + + using var controller = new SvgAnimationController(document!); + var animated = controller.CreateAnimatedDocument(TimeSpan.FromSeconds(5)); + + var scope = animated.GetElementById("scope"); + Assert.NotNull(scope); + Assert.True(scope!.TryGetAttribute("stop-opacity", out var animatedOpacity)); + Assert.Equal("1", animatedOpacity); + Assert.True(scope.TryGetAttribute("stop-color", out var stopColor)); + Assert.Equal("yellow", Convert.ToString(stopColor), ignoreCase: true); + Assert.True(scope.TryGetAttribute("color", out var color)); + Assert.Equal("yellow", Convert.ToString(color), ignoreCase: true); + + var gradient = animated.GetElementById("gradient"); + Assert.NotNull(gradient); + Assert.Equal(1f, gradient!.StopOpacity, 3); + + var inheritedStop = gradient.Children.OfType().Last(); + Assert.Equal(1f, inheritedStop.StopOpacity, 3); + } + + [Fact] + public void CreateAnimatedDocument_ResolvesCurrentColorAndInheritColorEndpoints() + { + var document = SvgService.FromSvg(ColorKeywordAnimationSvg); + Assert.NotNull(document); + + using var controller = new SvgAnimationController(document!); + var animated = controller.CreateAnimatedDocument(TimeSpan.FromSeconds(2)); + + var currentColorTarget = animated.GetElementById("current-color"); + Assert.NotNull(currentColorTarget); + var currentColorFill = Assert.IsType(currentColorTarget!.Fill); + Assert.Equal((byte)0, currentColorFill.Colour.R); + Assert.Equal((byte)128, currentColorFill.Colour.G); + Assert.Equal((byte)0, currentColorFill.Colour.B); + + var inheritTarget = animated.GetElementById("inherit-color"); + Assert.NotNull(inheritTarget); + var inheritFill = Assert.IsType(inheritTarget!.Fill); + Assert.Equal(currentColorFill.Colour, inheritFill.Colour); + } + + [Fact] + public void CreateAnimatedDocument_UsesSameFrameAnimatedColorForCurrentColor() + { + var document = SvgService.FromSvg(SameFrameCurrentColorAnimationSvg); + Assert.NotNull(document); + + using var controller = new SvgAnimationController(document!); + var animated = controller.CreateAnimatedDocument(TimeSpan.FromSeconds(2)); + + AssertAnimatedFill(animated, "color-first", Color.Cyan); + AssertAnimatedFill(animated, "fill-first", Color.Cyan); + } + + [Fact] + public void CreateAnimatedDocument_InterpolatesFeCompositeArithmeticCoefficients() + { + var document = SvgService.FromSvg(FeCompositeCoefficientAnimationSvg); + Assert.NotNull(document); + + using var controller = new SvgAnimationController(document!); + var animated = controller.CreateAnimatedDocument(TimeSpan.FromSeconds(1)); + + var composite = animated.GetElementById("composite"); + Assert.NotNull(composite); + Assert.Equal(0.5f, composite!.K2, 3); + Assert.Equal(0.5f, composite.K3, 3); + } + + [Fact] + public void CreateAnimatedDocument_FreezesFeCompositeArithmeticCoefficientsAtEndpoint() + { + var document = SvgService.FromSvg(FeCompositeCoefficientAnimationSvg); + Assert.NotNull(document); + + using var controller = new SvgAnimationController(document!); + var animated = controller.CreateAnimatedDocument(TimeSpan.FromSeconds(2)); + + var composite = animated.GetElementById("composite"); + Assert.NotNull(composite); + Assert.Equal(0f, composite!.K2, 3); + Assert.Equal(1f, composite.K3, 3); + } + [Fact] public void CreateAnimatedDocument_ResolvesAnimateMotionPercentagesAgainstViewportWithoutViewBox() { @@ -860,6 +1352,24 @@ public void CreateAnimatedDocument_AppliesAdditiveAndAccumulateSemantics() Assert.Equal(0f, accumulatedMotion.Y, 3); } + [Fact] + public void CreateAnimatedDocument_AccumulatesDiscreteEndValuesPerIteration() + { + var document = SvgService.FromSvg(DiscreteAccumulateSvg); + Assert.NotNull(document); + + using var controller = new SvgAnimationController(document!); + var animated = controller.CreateAnimatedDocument(TimeSpan.FromSeconds(7)); + + var accumulated = animated.GetElementById("accumulated"); + Assert.NotNull(accumulated); + Assert.Equal(40f, accumulated!.Height.Value, 3); + + var additive = animated.GetElementById("additive"); + Assert.NotNull(additive); + Assert.Equal(60f, additive!.Height.Value, 3); + } + [Fact] public void SetAnimationTime_SkipsEquivalentFrameRebuilds() { @@ -1219,6 +1729,25 @@ private static string GetW3CTestSvgPath(string name) """; + private const string InheritedGradientStopOpacityAnimationSvg = """ + + + + + + + + + + + + + + """; + private const string ColonClockAnimationSvg = """ """; + private const string MotionAfterTransformAnimationSvg = """ + + + + + + + """; + private const string RepeatDurationIndefiniteAnimationSvg = """ """; + private const string IndefiniteSetMaxDurationSvg = """ + + + + + + + + + """; + private const string EventEndSvg = """ """; + private const string DiscreteAccumulateSvg = """ + + + + + + + + + """; + private const string PacedValuesAnimationSvg = """ """; + private static List<(string EventType, string AttributeName)> InvokeTimelineCallbacks( + SvgAnimationController controller, + TimeSpan currentTime, + TimeSpan? previousTime) + { + var method = typeof(SvgAnimationController).GetMethod( + "GetTimelineCallbacks", + System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic); + Assert.NotNull(method); + + var result = (System.Collections.IEnumerable)method!.Invoke(controller, new object?[] { currentTime, previousTime })!; + var callbacks = new List<(string EventType, string AttributeName)>(); + foreach (var callback in result) + { + callbacks.Add(( + Assert.IsType(callback.GetType().GetProperty("EventType")!.GetValue(callback)), + Assert.IsType(callback.GetType().GetProperty("AttributeName")!.GetValue(callback)))); + } + + return callbacks; + } + private const string PacedTransformAnimationSvg = """ """; + private const string SyncbaseRepeatTimingSvg = """ + + + + + + + + + """; + + private const string HalfOpenIntervalAnimationSvg = """ + + + + + + + + + """; + + private const string RestartTruncationSyncbaseSvg = """ + + + + + + + """; + + private const string SelfBeginEndTimingSvg = """ + + + + + + """; + + private const string FutureSyncbaseStartTimeSvg = """ + + + + + + + + + """; + + private const string RepeatTimelineCallbackSvg = """ + + + + + + """; + + private const string RepeatZeroTimingSvg = """ + + + + + + + + + """; + + private const string SelfEndBeginTimingSvg = """ + + + + + + + + + + + + """; + + private const string NonProgressingSelfBeginTimingSvg = """ + + + + + + """; + + private const string NumberListAndPathDataAnimationSvg = """ + + + + + + + + + """; + + private const string NonInterpolableLinearAnimationSvg = """ + + + + + + """; + + private const string ToOnlyNonInterpolableAnimationSvg = """ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + """; + + private const string HrefNameNormalizationAnimationSvg = """ + + + + + + + + + + """; + + private const string XLinkHrefAnimationSvg = """ + + + + + + + + + + """; + + private const string AliasedXLinkHrefAnimationSvg = """ + + + + + + + + + + """; + + private const string ClassSelectorAnimationSvg = """ + + + + + + + """; + + private const string StyleAnimationSvg = """ + + + + + + """; + + private const string ClassPreservationAnimationSvg = """ + + + + + + """; + + private const string ColorKeywordAnimationSvg = """ + + + + + + + + + + + """; + + private const string SameFrameCurrentColorAnimationSvg = """ + + + + + + + + + + + """; + + private const string InheritedStopAnimationSvg = """ + + + + + + + + + + + + """; + + private const string W3CParentScopedStopOpacityAnimationSvg = """ + + + + + + + + + + + + + + + """; + + private const string FeCompositeCoefficientAnimationSvg = """ + + + + + + + + + + + + """; + private static System.Collections.Generic.List GetAnimatedSubtreeSignatures(SKSvg svg) { var compositePicture = svg.Model; @@ -1791,6 +2753,17 @@ private static SkiaBitmap RenderBitmap(SKSvg svg) return Assert.IsType(bitmap); } + private static void AssertAnimatedFill(SvgDocument document, string elementId, Color expectedColor) + { + var target = document.GetElementById(elementId); + Assert.NotNull(target); + var fill = Assert.IsType(target!.Fill); + Assert.Equal(expectedColor.A, fill.Colour.A); + Assert.Equal(expectedColor.R, fill.Colour.R); + Assert.Equal(expectedColor.G, fill.Colour.G); + Assert.Equal(expectedColor.B, fill.Colour.B); + } + private static SkiaBitmap DrawBitmap(SKSvg svg) { Assert.NotNull(svg.Picture); From bcd3aad78156789276c3ec875bbbf1644221de14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wies=C5=82aw=20=C5=A0olt=C3=A9s?= Date: Tue, 26 May 2026 10:49:02 +0200 Subject: [PATCH 2/9] Harden animated snapshot rendering parity --- .../SkiaCSharpModelExtensions.cs | 2 +- src/Svg.Model/DrawAttributes.cs | 3 +- src/Svg.Model/Services/MaskingService.cs | 81 +++++++++++++++---- src/Svg.Model/Services/PaintingService.cs | 16 ++-- .../Services/SvgPatternPaintStateResolver.cs | 13 +-- src/Svg.SceneGraph/SvgSceneClipCompiler.cs | 28 +++++++ src/Svg.SceneGraph/SvgSceneCompiler.cs | 6 +- src/Svg.SceneGraph/SvgSceneFilterContext.cs | 43 +++++++--- src/Svg.SceneGraph/SvgScenePaintingService.cs | 77 +++++++++++++++++- src/Svg.Skia/SkiaModel.cs | 4 +- src/Svg.Skia/SkiaSvgAssetLoader.cs | 4 +- .../MaskingServiceTests.cs | 32 ++++++++ .../Svg2StaticPaintServerTests.cs | 35 ++++++++ .../SvgPatternPaintStateResolverTests.cs | 64 +++++++++++++++ .../SkiaCSharpCodeGenTests.cs | 29 +++++++ .../SkiaSvgAssetLoaderCachingTests.cs | 14 ++++ tests/Svg.Skia.UnitTests/resvgTests.cs | 49 +++++++++++ 17 files changed, 450 insertions(+), 50 deletions(-) create mode 100644 tests/Svg.Model.UnitTests/MaskingServiceTests.cs diff --git a/src/Svg.CodeGen.Skia/SkiaCSharpModelExtensions.cs b/src/Svg.CodeGen.Skia/SkiaCSharpModelExtensions.cs index 235c7bbb16..ec919ce390 100644 --- a/src/Svg.CodeGen.Skia/SkiaCSharpModelExtensions.cs +++ b/src/Svg.CodeGen.Skia/SkiaCSharpModelExtensions.cs @@ -1223,7 +1223,7 @@ public static void ToSKImageFilter(this SKImageFilter? imageFilter, SkiaCSharpCo sb.AppendLine($"{indent} {spotLitSpecularImageFilter.LightColor.ToSKColor()},"); sb.AppendLine($"{indent} {spotLitSpecularImageFilter.SurfaceScale.ToFloatString()},"); sb.AppendLine($"{indent} {spotLitSpecularImageFilter.Ks.ToFloatString()},"); - sb.AppendLine($"{indent} {spotLitSpecularImageFilter.SpecularExponent.ToFloatString()},"); + sb.AppendLine($"{indent} {spotLitSpecularImageFilter.Shininess.ToFloatString()},"); sb.AppendLine($"{indent} {counter.ImageFilterVarName}{counterImageFilterInput},"); sb.AppendLine($"{indent} {spotLitSpecularImageFilter.Clip?.ToSKRect() ?? "null"});"); return; diff --git a/src/Svg.Model/DrawAttributes.cs b/src/Svg.Model/DrawAttributes.cs index 72afe67dd3..4a1102e794 100644 --- a/src/Svg.Model/DrawAttributes.cs +++ b/src/Svg.Model/DrawAttributes.cs @@ -16,5 +16,6 @@ public enum DrawAttributes Mask = 32, RequiredFeatures = 64, RequiredExtensions = 128, - SystemLanguage = 256 + SystemLanguage = 256, + Markers = 512 } diff --git a/src/Svg.Model/Services/MaskingService.cs b/src/Svg.Model/Services/MaskingService.cs index 4a361fd085..de40a22e7a 100644 --- a/src/Svg.Model/Services/MaskingService.cs +++ b/src/Svg.Model/Services/MaskingService.cs @@ -396,22 +396,75 @@ internal static void GetSvgVisualElementClipPath(SvgVisualElement? svgVisualElem internal static SKRect? GetClipRect(string clip, SKRect skRectBounds) { - if (!string.IsNullOrEmpty(clip) && clip.StartsWith("rect(", StringComparison.Ordinal)) + if (string.IsNullOrWhiteSpace(clip)) { - clip = clip.Trim(); - var offsets = new List(); - foreach (var o in clip.Substring(5, clip.Length - 6).Split(',')) - { - offsets.Add(float.Parse(o.Trim(), NumberStyles.Any, CultureInfo.InvariantCulture)); - } + return default; + } + + clip = clip.Trim(); + if (!clip.StartsWith("rect(", StringComparison.OrdinalIgnoreCase) || + !clip.EndsWith(")", StringComparison.Ordinal)) + { + return default; + } + + var value = clip.Substring(5, clip.Length - 6); + var parts = value.IndexOf(',') >= 0 + ? value.Split(',') + : value.Split(new[] { ' ', '\t', '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries); + + if (parts.Length != 4) + { + return default; + } + + if (value.IndexOf(',') >= 0) + { + return CreateLegacyOffsetClipRect(parts, skRectBounds); + } + + if (!TryResolveClipEdge(parts[0], 0f, out var top) || + !TryResolveClipEdge(parts[1], skRectBounds.Width, out var right) || + !TryResolveClipEdge(parts[2], skRectBounds.Height, out var bottom) || + !TryResolveClipEdge(parts[3], 0f, out var left)) + { + return default; + } + + var width = Math.Max(0f, right - left); + var height = Math.Max(0f, bottom - top); + return SKRect.Create(skRectBounds.Left + left, skRectBounds.Top + top, width, height); + } - var skClipRect = SKRect.Create( - skRectBounds.Left + offsets[3], - skRectBounds.Top + offsets[0], - skRectBounds.Width - (offsets[3] + offsets[1]), - skRectBounds.Height - (offsets[2] + offsets[0])); - return skClipRect; + private static SKRect? CreateLegacyOffsetClipRect(string[] parts, SKRect skRectBounds) + { + if (!TryResolveClipEdge(parts[0], 0f, out var topOffset) || + !TryResolveClipEdge(parts[1], 0f, out var rightOffset) || + !TryResolveClipEdge(parts[2], 0f, out var bottomOffset) || + !TryResolveClipEdge(parts[3], 0f, out var leftOffset)) + { + return default; } - return default; + + var width = Math.Max(0f, skRectBounds.Width - leftOffset - rightOffset); + var height = Math.Max(0f, skRectBounds.Height - topOffset - bottomOffset); + return SKRect.Create(skRectBounds.Left + leftOffset, skRectBounds.Top + topOffset, width, height); + } + + private static bool TryResolveClipEdge(string value, float autoValue, out float edge) + { + value = value.Trim(); + if (string.Equals(value, "auto", StringComparison.OrdinalIgnoreCase)) + { + edge = autoValue; + return true; + } + + if (value.EndsWith("px", StringComparison.OrdinalIgnoreCase)) + { + value = value.Substring(0, value.Length - 2).Trim(); + } + + return float.TryParse(value, NumberStyles.Any, CultureInfo.InvariantCulture, out edge); } } diff --git a/src/Svg.Model/Services/PaintingService.cs b/src/Svg.Model/Services/PaintingService.cs index af30b974b8..688b8ffa92 100644 --- a/src/Svg.Model/Services/PaintingService.cs +++ b/src/Svg.Model/Services/PaintingService.cs @@ -255,8 +255,7 @@ internal static SKShader CreateLinearGradient(SvgLinearGradientServer svgLinearG { if (firstSpreadMethod is null) { - var pSpreadMethod = p.SpreadMethod; - if (pSpreadMethod != SvgGradientSpreadMethod.Pad) + if (SvgService.TryGetAttribute(p, "spreadMethod", out _)) { firstSpreadMethod = p; } @@ -271,8 +270,7 @@ internal static SKShader CreateLinearGradient(SvgLinearGradientServer svgLinearG } if (firstGradientUnits is null) { - var pGradientUnits = p.GradientUnits; - if (pGradientUnits != SvgCoordinateUnits.ObjectBoundingBox) + if (SvgService.TryGetAttribute(p, "gradientUnits", out _)) { firstGradientUnits = p; } @@ -417,8 +415,7 @@ internal static SKShader CreateTwoPointConicalGradient(SvgRadialGradientServer s { if (firstSpreadMethod is null) { - var pSpreadMethod = p.SpreadMethod; - if (pSpreadMethod != SvgGradientSpreadMethod.Pad) + if (SvgService.TryGetAttribute(p, "spreadMethod", out _)) { firstSpreadMethod = p; } @@ -433,8 +430,7 @@ internal static SKShader CreateTwoPointConicalGradient(SvgRadialGradientServer s } if (firstGradientUnits is null) { - var pGradientUnits = p.GradientUnits; - if (pGradientUnits != SvgCoordinateUnits.ObjectBoundingBox) + if (SvgService.TryGetAttribute(p, "gradientUnits", out _)) { firstGradientUnits = p; } @@ -512,6 +508,10 @@ internal static SKShader CreateTwoPointConicalGradient(SvgRadialGradientServer s var centerY = normalizedCenterY.ToDeviceValue(UnitRenderingType.Vertical, svgRadialGradientServer, skBounds); var radius = normalizedRadius.ToDeviceValue(UnitRenderingType.Other, svgRadialGradientServer, skBounds); + if (radius < 0f) + { + return SKShader.CreateColor(new SKColor(0xFF, 0xFF, 0xFF, 0x00), skColorSpace); + } var focalX = normalizedFocalX.ToDeviceValue(UnitRenderingType.Horizontal, svgRadialGradientServer, skBounds); var focalY = normalizedFocalY.ToDeviceValue(UnitRenderingType.Vertical, svgRadialGradientServer, skBounds); diff --git a/src/Svg.Model/Services/SvgPatternPaintStateResolver.cs b/src/Svg.Model/Services/SvgPatternPaintStateResolver.cs index 6b72cccd58..98067ed3d1 100644 --- a/src/Svg.Model/Services/SvgPatternPaintStateResolver.cs +++ b/src/Svg.Model/Services/SvgPatternPaintStateResolver.cs @@ -106,13 +106,9 @@ public static bool TryCreate( firstViewBox = pattern; } - if (firstAspectRatio is null) + if (firstAspectRatio is null && SvgService.TryGetAttribute(pattern, "preserveAspectRatio", out _)) { - var aspectRatio = pattern.AspectRatio; - if (aspectRatio.Align != SvgPreserveAspectRatio.xMidYMid || aspectRatio.Slice || aspectRatio.Defer) - { - firstAspectRatio = pattern; - } + firstAspectRatio = pattern; } } @@ -139,6 +135,11 @@ public static bool TryCreate( var shaderMatrix = SKMatrix.CreateIdentity(); shaderMatrix = shaderMatrix.PreConcat(TransformsService.ToMatrix(patternTransform)); + if (!shaderMatrix.TryInvert(out _)) + { + return false; + } + shaderMatrix = shaderMatrix.PreConcat(SKMatrix.CreateTranslation(patternRect.Value.Left, patternRect.Value.Top)); var pictureTransform = SKMatrix.CreateIdentity(); diff --git a/src/Svg.SceneGraph/SvgSceneClipCompiler.cs b/src/Svg.SceneGraph/SvgSceneClipCompiler.cs index 55c84d6d49..fe3fe3542c 100644 --- a/src/Svg.SceneGraph/SvgSceneClipCompiler.cs +++ b/src/Svg.SceneGraph/SvgSceneClipCompiler.cs @@ -239,6 +239,13 @@ referencedVisualElement is SvgSymbol || var previousClipCount = clipPath.Clips?.Count ?? 0; PopulateVisualClip(referencedVisualElement, targetBounds, assetLoader, uris, clipPath, svgClipPathClipRule); + if (clipPath.Clips is { Count: > 0 } populatedClips && + populatedClips.Count > previousClipCount) + { + var useTransform = CreateUseClipTransform(svgUse, targetBounds); + ApplyUseClipTransform(populatedClips, previousClipCount, useTransform); + } + if (clipPath.Clips is { Count: > 0 } clips && clips.Count > previousClipCount && clips[clips.Count - 1].Clip is { } lastClip) @@ -247,6 +254,27 @@ referencedVisualElement is SvgSymbol || } } + private static SKMatrix CreateUseClipTransform(SvgUse svgUse, SKRect targetBounds) + { + var x = SvgGeometryService.GetComputedUnit(svgUse, "x", svgUse.X).ToDeviceValue(UnitRenderingType.Horizontal, svgUse, targetBounds); + var y = SvgGeometryService.GetComputedUnit(svgUse, "y", svgUse.Y).ToDeviceValue(UnitRenderingType.Vertical, svgUse, targetBounds); + return TransformsService.ToMatrix(svgUse.Transforms).PreConcat(SKMatrix.CreateTranslation(x, y)); + } + + private static void ApplyUseClipTransform(IList clips, int startIndex, SKMatrix useTransform) + { + if (useTransform.IsIdentity) + { + return; + } + + for (var i = startIndex; i < clips.Count; i++) + { + var clip = clips[i]; + clip.Transform = useTransform.PreConcat(clip.Transform ?? SKMatrix.CreateIdentity()); + } + } + private static void AddTextClip( SvgText svgText, SKRect targetBounds, diff --git a/src/Svg.SceneGraph/SvgSceneCompiler.cs b/src/Svg.SceneGraph/SvgSceneCompiler.cs index f4ff8660c9..dd2cca78be 100644 --- a/src/Svg.SceneGraph/SvgSceneCompiler.cs +++ b/src/Svg.SceneGraph/SvgSceneCompiler.cs @@ -1566,7 +1566,9 @@ private static bool TryCompileDirectElementNode( HasFeatureFlag(ownFeatureFlags, SvgCascadedStyleFeatureFlags.MixBlendMode), HasFeatureFlag(ownFeatureFlags, SvgCascadedStyleFeatureFlags.Isolation)); AssignRetainedResourceKeys(node, element, compileContext.GetElementAddressKey); - var markerElement = compileContext.ActiveMarkerReferenceDeclarationCandidate && HasMarkerReference(visualElement) + var markerElement = !ignoreAttributes.HasFlag(DrawAttributes.Markers) && + compileContext.ActiveMarkerReferenceDeclarationCandidate && + HasMarkerReference(visualElement) ? visualElement : null; @@ -2801,7 +2803,7 @@ private static bool TryCompileDirectMarkerNode( viewport, node.TotalTransform, assetLoader, - DrawAttributes.Display | ignoreAttributes, + DrawAttributes.Display | DrawAttributes.Markers | ignoreAttributes, compilationRootKey, createOwnCompilationRootBoundary: false, compileContext); diff --git a/src/Svg.SceneGraph/SvgSceneFilterContext.cs b/src/Svg.SceneGraph/SvgSceneFilterContext.cs index 290931e690..0a925c0a7d 100644 --- a/src/Svg.SceneGraph/SvgSceneFilterContext.cs +++ b/src/Svg.SceneGraph/SvgSceneFilterContext.cs @@ -1162,7 +1162,7 @@ private float[] CreateIdentityColorMatrixArray() { case SvgColourMatrixType.HueRotate: { - var value = string.IsNullOrEmpty(svgColourMatrix.Values) ? 0 : float.Parse(svgColourMatrix.Values, NumberStyles.Any, CultureInfo.InvariantCulture); + var value = TryParseSingle(svgColourMatrix.Values, 0f); var hue = (float)SvgService.DegreeToRadian(value); var cosHue = Math.Cos(hue); var sinHue = Math.Sin(hue); @@ -1196,7 +1196,7 @@ private float[] CreateIdentityColorMatrixArray() case SvgColourMatrixType.Saturate: { - var value = string.IsNullOrEmpty(svgColourMatrix.Values) ? 1 : float.Parse(svgColourMatrix.Values, NumberStyles.Any, CultureInfo.InvariantCulture); + var value = TryParseSingle(svgColourMatrix.Values, 1f); float[] matrix = { (float)(0.213+0.787*value), (float)(0.715-0.715*value), (float)(0.072-0.072*value), 0, 0, (float)(0.213-0.213*value), (float)(0.715+0.285*value), (float)(0.072-0.072*value), 0, 0, @@ -1223,12 +1223,19 @@ private float[] CreateIdentityColorMatrixArray() matrix = new float[20]; for (var i = 0; i < 20; i++) { - matrix[i] = float.Parse(parts[i], NumberStyles.Any, CultureInfo.InvariantCulture); + if (!float.TryParse(parts[i], NumberStyles.Any, CultureInfo.InvariantCulture, out matrix[i])) + { + matrix = CreateIdentityColorMatrixArray(); + break; + } + } + if (matrix.Length == 20) + { + matrix[4] *= 255f; + matrix[9] *= 255f; + matrix[14] *= 255f; + matrix[19] *= 255f; } - matrix[4] *= 255f; - matrix[9] *= 255f; - matrix[14] *= 255f; - matrix[19] *= 255f; } else { @@ -1243,6 +1250,14 @@ private float[] CreateIdentityColorMatrixArray() return SKImageFilter.CreateColorFilter(skColorFilter, input, cropRect); } + private static float TryParseSingle(string? value, float fallback) + { + return !string.IsNullOrWhiteSpace(value) && + float.TryParse(value, NumberStyles.Any, CultureInfo.InvariantCulture, out var parsed) + ? parsed + : fallback; + } + private void Identity(byte[] values, SvgComponentTransferFunction transferFunction) { } @@ -1718,7 +1733,7 @@ static byte ToByte(float value) sigmaY *= value; } - if (sigmaX < 0f && sigmaY < 0f) + if (sigmaX < 0f || sigmaY < 0f) { return default; } @@ -2099,15 +2114,23 @@ private static bool HasDefinitionAncestor(SvgElement element) radiusY *= value; } + if (radiusX < 0f || radiusY < 0f) + { + return default; + } + if (radiusX <= 0f && radiusY <= 0f) { return default; } + var kernelRadiusX = radiusX <= 0f ? 0 : Math.Max(1, (int)Math.Ceiling(radiusX)); + var kernelRadiusY = radiusY <= 0f ? 0 : Math.Max(1, (int)Math.Ceiling(radiusY)); + return svgMorphology.Operator switch { - SvgMorphologyOperator.Dilate => SKImageFilter.CreateDilate((int)radiusX, (int)radiusY, input, cropRect), - SvgMorphologyOperator.Erode => SKImageFilter.CreateErode((int)radiusX, (int)radiusY, input, cropRect), + SvgMorphologyOperator.Dilate => SKImageFilter.CreateDilate(kernelRadiusX, kernelRadiusY, input, cropRect), + SvgMorphologyOperator.Erode => SKImageFilter.CreateErode(kernelRadiusX, kernelRadiusY, input, cropRect), _ => null, }; } diff --git a/src/Svg.SceneGraph/SvgScenePaintingService.cs b/src/Svg.SceneGraph/SvgScenePaintingService.cs index 96e81ba812..e8c00ea05a 100644 --- a/src/Svg.SceneGraph/SvgScenePaintingService.cs +++ b/src/Svg.SceneGraph/SvgScenePaintingService.cs @@ -28,6 +28,9 @@ internal static class SvgScenePaintingService { internal readonly record struct SolidFillPaintCacheKey(bool IsAntialias, SKColor Color, bool LinearRgb); + [ThreadStatic] + private static HashSet? s_activePatternServers; + internal static float AdjustSvgOpacity(float opacity) { return Math.Min(Math.Max(opacity, 0f), 1f); @@ -732,7 +735,7 @@ private static SKColorF[] ToSkColorF(IReadOnlyList skColors) foreach (var p in svgReferencedGradientServers) { - if (firstSpreadMethod is null && p.SpreadMethod != SvgGradientSpreadMethod.Pad) + if (firstSpreadMethod is null && SvgService.TryGetAttribute(p, "spreadMethod", out _)) { firstSpreadMethod = p; } @@ -742,7 +745,7 @@ private static SKColorF[] ToSkColorF(IReadOnlyList skColors) firstGradientTransform = p; } - if (firstGradientUnits is null && p.GradientUnits != SvgCoordinateUnits.ObjectBoundingBox) + if (firstGradientUnits is null && SvgService.TryGetAttribute(p, "gradientUnits", out _)) { firstGradientUnits = p; } @@ -869,7 +872,7 @@ private static SKColorF[] ToSkColorF(IReadOnlyList skColors) foreach (var p in svgReferencedGradientServers) { - if (firstSpreadMethod is null && p.SpreadMethod != SvgGradientSpreadMethod.Pad) + if (firstSpreadMethod is null && SvgService.TryGetAttribute(p, "spreadMethod", out _)) { firstSpreadMethod = p; } @@ -879,7 +882,7 @@ private static SKColorF[] ToSkColorF(IReadOnlyList skColors) firstGradientTransform = p; } - if (firstGradientUnits is null && p.GradientUnits != SvgCoordinateUnits.ObjectBoundingBox) + if (firstGradientUnits is null && SvgService.TryGetAttribute(p, "gradientUnits", out _)) { firstGradientUnits = p; } @@ -937,6 +940,11 @@ private static SKColorF[] ToSkColorF(IReadOnlyList skColors) var focalY = focalYUnit.Normalize(svgGradientUnits).ToDeviceValue(UnitRenderingType.Vertical, svgRadialGradientServer, skBounds); var focalRadius = focalRadiusUnit.Normalize(svgGradientUnits).ToDeviceValue(UnitRenderingType.Other, svgRadialGradientServer, skBounds); + if (radius < 0f) + { + return null; + } + var colors = new List(); var colorPos = new List(); var isLinearRgb = skColorSpace == SKColorSpace.SrgbLinear; @@ -1019,6 +1027,13 @@ private static SKColorF[] ToSkColorF(IReadOnlyList skColors) { return null; } + + if (IsActivePattern(svgPatternServer) || IsActivePattern(patternState.ContentSource)) + { + return null; + } + + using var activePatternScope = PushActivePattern(svgPatternServer, patternState.ContentSource); var patternScene = SvgSceneCompiler.CompileTemporaryChildrenScene( patternState.ContentSource, patternState.Children, @@ -1038,4 +1053,58 @@ private static SKColorF[] ToSkColorF(IReadOnlyList skColors) ? null : SKShader.CreatePicture(picture, SKShaderTileMode.Repeat, SKShaderTileMode.Repeat, patternState.ShaderMatrix, picture.CullRect); } + + private static bool IsActivePattern(SvgPatternServer svgPatternServer) + => s_activePatternServers?.Contains(svgPatternServer) == true; + + private static ActivePatternScope PushActivePattern(SvgPatternServer svgPatternServer, SvgPatternServer contentSource) + { + s_activePatternServers ??= new HashSet(); + var addedPattern = s_activePatternServers.Add(svgPatternServer); + var addedContentSource = !ReferenceEquals(svgPatternServer, contentSource) && s_activePatternServers.Add(contentSource); + return new ActivePatternScope(svgPatternServer, contentSource, addedPattern, addedContentSource); + } + + private readonly struct ActivePatternScope : IDisposable + { + private readonly SvgPatternServer _svgPatternServer; + private readonly SvgPatternServer _contentSource; + private readonly bool _addedPattern; + private readonly bool _addedContentSource; + + public ActivePatternScope( + SvgPatternServer svgPatternServer, + SvgPatternServer contentSource, + bool addedPattern, + bool addedContentSource) + { + _svgPatternServer = svgPatternServer; + _contentSource = contentSource; + _addedPattern = addedPattern; + _addedContentSource = addedContentSource; + } + + public void Dispose() + { + if (s_activePatternServers is null) + { + return; + } + + if (_addedContentSource) + { + s_activePatternServers.Remove(_contentSource); + } + + if (_addedPattern) + { + s_activePatternServers.Remove(_svgPatternServer); + } + + if (s_activePatternServers.Count == 0) + { + s_activePatternServers = null; + } + } + } } diff --git a/src/Svg.Skia/SkiaModel.cs b/src/Svg.Skia/SkiaModel.cs index 206f9754a3..8af78f13aa 100644 --- a/src/Svg.Skia/SkiaModel.cs +++ b/src/Svg.Skia/SkiaModel.cs @@ -1247,7 +1247,7 @@ public SkiaSharp.SKColorChannel ToSKColorChannel(SKColorChannel colorChannel) ? SkiaSharp.SKImageFilter.CreateSpotLitSpecular( ToSKPoint3(spotLitSpecularImageFilter.Location), ToSKPoint3(spotLitSpecularImageFilter.Target), - spotLitSpecularImageFilter.Shininess, + spotLitSpecularImageFilter.SpecularExponent, spotLitSpecularImageFilter.CutoffAngle, ToSKColor(spotLitSpecularImageFilter.LightColor), spotLitSpecularImageFilter.SurfaceScale, @@ -1263,7 +1263,7 @@ public SkiaSharp.SKColorChannel ToSKColorChannel(SKColorChannel colorChannel) ToSKColor(spotLitSpecularImageFilter.LightColor), spotLitSpecularImageFilter.SurfaceScale, spotLitSpecularImageFilter.Ks, - spotLitSpecularImageFilter.SpecularExponent, + spotLitSpecularImageFilter.Shininess, ToSKImageFilter(spotLitSpecularImageFilter.Input)); } case TileImageFilter tileImageFilter: diff --git a/src/Svg.Skia/SkiaSvgAssetLoader.cs b/src/Svg.Skia/SkiaSvgAssetLoader.cs index 74a2741860..b708b4b4f5 100644 --- a/src/Svg.Skia/SkiaSvgAssetLoader.cs +++ b/src/Svg.Skia/SkiaSvgAssetLoader.cs @@ -34,8 +34,8 @@ public SkiaSvgAssetLoader(SkiaModel skiaModel) public ShimSkiaSharp.SKImage LoadImage(System.IO.Stream stream) { var data = ShimSkiaSharp.SKImage.FromStream(stream); - using var image = SkiaSharp.SKImage.FromEncodedData(data); - return new ShimSkiaSharp.SKImage { Data = data, Width = image.Width, Height = image.Height }; + using var image = data is { Length: > 0 } ? SkiaSharp.SKImage.FromEncodedData(data) : null; + return new ShimSkiaSharp.SKImage { Data = data, Width = image?.Width ?? 0, Height = image?.Height ?? 0 }; } /// diff --git a/tests/Svg.Model.UnitTests/MaskingServiceTests.cs b/tests/Svg.Model.UnitTests/MaskingServiceTests.cs new file mode 100644 index 0000000000..fd3e96ed6a --- /dev/null +++ b/tests/Svg.Model.UnitTests/MaskingServiceTests.cs @@ -0,0 +1,32 @@ +using ShimSkiaSharp; +using Svg.Model.Services; +using Xunit; + +namespace Svg.Model.UnitTests; + +public class MaskingServiceTests +{ + [Fact] + public void GetClipRect_ParsesWhitespaceSyntaxUnitsAndAuto() + { + var rect = MaskingService.GetClipRect("rect(10px auto 30px 5px)", SKRect.Create(2f, 3f, 100f, 80f)); + + Assert.NotNull(rect); + Assert.Equal(7f, rect!.Value.Left); + Assert.Equal(13f, rect.Value.Top); + Assert.Equal(102f, rect.Value.Right); + Assert.Equal(33f, rect.Value.Bottom); + } + + [Fact] + public void GetClipRect_PreservesLegacyCommaSyntaxAsOffsets() + { + var rect = MaskingService.GetClipRect("rect(10, 40, 30, 5)", SKRect.Create(2f, 3f, 100f, 80f)); + + Assert.NotNull(rect); + Assert.Equal(7f, rect!.Value.Left); + Assert.Equal(13f, rect.Value.Top); + Assert.Equal(62f, rect.Value.Right); + Assert.Equal(53f, rect.Value.Bottom); + } +} diff --git a/tests/Svg.Model.UnitTests/Svg2StaticPaintServerTests.cs b/tests/Svg.Model.UnitTests/Svg2StaticPaintServerTests.cs index c8bb9bad74..46aaf1e5a9 100644 --- a/tests/Svg.Model.UnitTests/Svg2StaticPaintServerTests.cs +++ b/tests/Svg.Model.UnitTests/Svg2StaticPaintServerTests.cs @@ -79,6 +79,40 @@ public void LinearGradient_AppliesGradientTransformFromStylesheet() Assert.Equal(8f, shader.LocalMatrix.Value.TransY); } + [Fact] + public void LinearGradient_ExplicitDefaultSpreadMethodOverridesReferencedGradient() + { + const string svg = """ + + + + + + + + + + + """; + + var document = SvgService.FromSvg(svg); + Assert.NotNull(document); + + var target = Assert.IsType(document!.GetElementById("target")); + var gradient = Assert.IsType(document.GetElementById("paint")); + + var shader = Assert.IsType( + PaintingService.CreateLinearGradient( + gradient, + SKRect.Create(0f, 0f, 50f, 40f), + target, + 1f, + DrawAttributes.None, + SKColorSpace.Srgb)); + + Assert.Equal(SKShaderTileMode.Clamp, shader.Mode); + } + [Fact] public void RadialGradient_InheritsStylesheetFocalRadiusThroughHrefChain() { @@ -120,4 +154,5 @@ public void RadialGradient_InheritsStylesheetFocalRadiusThroughHrefChain() Assert.Equal(2f, shader.LocalMatrix!.Value.TransX); Assert.Equal(3f, shader.LocalMatrix.Value.TransY); } + } diff --git a/tests/Svg.Model.UnitTests/SvgPatternPaintStateResolverTests.cs b/tests/Svg.Model.UnitTests/SvgPatternPaintStateResolverTests.cs index ad482a47c5..1c7c5acdf6 100644 --- a/tests/Svg.Model.UnitTests/SvgPatternPaintStateResolverTests.cs +++ b/tests/Svg.Model.UnitTests/SvgPatternPaintStateResolverTests.cs @@ -86,4 +86,68 @@ public void TryCreate_InheritsPatternTransformFromReferencedPattern() Assert.Equal(8f, state.ShaderMatrix.TransX); Assert.Equal(11f, state.ShaderMatrix.TransY); } + + [Fact] + public void TryCreate_ExplicitDefaultPreserveAspectRatioOverridesReferencedPattern() + { + const string svg = """ + + + + + + + + + + """; + + var document = SvgService.FromSvg(svg); + Assert.NotNull(document); + + var target = Assert.IsType(document!.GetElementById("target")); + var derived = Assert.IsType(document.GetElementById("derived")); + + var resolved = SvgPatternPaintStateResolver.TryCreate( + derived, + target, + SKRect.Create(0f, 0f, 50f, 40f), + out var state); + + Assert.True(resolved); + Assert.NotNull(state); + Assert.Equal(1f, state!.PictureTransform.ScaleX); + Assert.Equal(1f, state.PictureTransform.ScaleY); + Assert.Equal(5f, state.PictureTransform.TransX); + } + + [Fact] + public void TryCreate_RejectsNonInvertiblePatternTransform() + { + const string svg = """ + + + + + + + + + """; + + var document = SvgService.FromSvg(svg); + Assert.NotNull(document); + + var target = Assert.IsType(document!.GetElementById("target")); + var pattern = Assert.IsType(document.GetElementById("pat")); + + var resolved = SvgPatternPaintStateResolver.TryCreate( + pattern, + target, + SKRect.Create(0f, 0f, 50f, 40f), + out var state); + + Assert.False(resolved); + Assert.Null(state); + } } diff --git a/tests/Svg.Skia.UnitTests/SkiaCSharpCodeGenTests.cs b/tests/Svg.Skia.UnitTests/SkiaCSharpCodeGenTests.cs index aec426db3b..c366ef1281 100644 --- a/tests/Svg.Skia.UnitTests/SkiaCSharpCodeGenTests.cs +++ b/tests/Svg.Skia.UnitTests/SkiaCSharpCodeGenTests.cs @@ -178,6 +178,35 @@ public void Generate_UsesAliasFontEdgingForAliasedTextPaint() Assert.DoesNotContain(".Edging = SKFontEdging.SubpixelAntialias;", code); } + [Fact] + public void Generate_UsesSpotLitSpecularShininessForFinalArgument() + { + var paint = new SKPaint + { + ImageFilter = SKImageFilter.CreateSpotLitSpecular( + new SKPoint3(1f, 2f, 3f), + new SKPoint3(4f, 5f, 6f), + 7f, + 8f, + new SKColor(9, 10, 11, 255), + 12f, + 13f, + 14f) + }; + var path = new SKPath(); + path.AddRect(SKRect.Create(0f, 0f, 10f, 10f)); + var picture = new SKPicture(SKRect.Create(0f, 0f, 10f, 10f), new List + { + new DrawPathCanvasCommand(path, paint) + }); + + var code = SkiaCSharpCodeGen.Generate(picture, "Svg", "Generated"); + + Assert.Contains("SKImageFilter.CreateSpotLitSpecular(", code); + Assert.Contains(" 7f,", code); + Assert.Contains(" 14f,", code); + } + [Fact] public void SkiaModel_ToSKShader_CreatesGradientsWithOptionalColorPositions() { diff --git a/tests/Svg.Skia.UnitTests/SkiaSvgAssetLoaderCachingTests.cs b/tests/Svg.Skia.UnitTests/SkiaSvgAssetLoaderCachingTests.cs index d3eb442293..419ad71c3b 100644 --- a/tests/Svg.Skia.UnitTests/SkiaSvgAssetLoaderCachingTests.cs +++ b/tests/Svg.Skia.UnitTests/SkiaSvgAssetLoaderCachingTests.cs @@ -1,6 +1,7 @@ #pragma warning disable CS0618 // Shim paint keeps deprecated SKPaint text/typeface surface for compatibility using System.Collections.Generic; +using System.IO; using System.Linq; using ShimSkiaSharp; using Svg.Skia; @@ -15,6 +16,19 @@ namespace Svg.Skia.UnitTests; public class SkiaSvgAssetLoaderCachingTests { + [Fact] + public void LoadImage_ReturnsZeroSizeImageForInvalidEncodedData() + { + var assetLoader = new SkiaSvgAssetLoader(new SkiaModel(new SKSvgSettings())); + using var stream = new MemoryStream(new byte[] { 1, 2, 3, 4 }); + + var image = assetLoader.LoadImage(stream); + + Assert.NotNull(image.Data); + Assert.Equal(0, image.Width); + Assert.Equal(0, image.Height); + } + [Fact] public void MeasureText_RecomputesAfterPaintMutation() { diff --git a/tests/Svg.Skia.UnitTests/resvgTests.cs b/tests/Svg.Skia.UnitTests/resvgTests.cs index 5416d16c98..a05f70d090 100644 --- a/tests/Svg.Skia.UnitTests/resvgTests.cs +++ b/tests/Svg.Skia.UnitTests/resvgTests.cs @@ -21,6 +21,10 @@ public static IEnumerable TextFixtureRows() public static IEnumerable NonTextFixtureRows() => EnumerateFixtureRows(excludePrefix: "tests/text/"); + public static IEnumerable ResourceRenderingFixtureRows() + => EnumerateFixtureRows() + .Where(static row => IsResourceRenderingFixture((string)row[0])); + [OSXTheory] [MemberData(nameof(TextFixtureRows))] public void text_fixtures(string relativeName, double errorThreshold) @@ -31,6 +35,11 @@ public void text_fixtures(string relativeName, double errorThreshold) public void non_text_fixtures(string relativeName, double errorThreshold) => TestImpl(relativeName, errorThreshold); + [OSXTheory] + [MemberData(nameof(ResourceRenderingFixtureRows))] + public void resource_rendering_fixtures(string relativeName, double errorThreshold) + => TestImpl(relativeName, errorThreshold); + [Fact] public void resvg_fixture_inventory() { @@ -162,6 +171,46 @@ private static double GetEffectiveThreshold(string relativeName, double defaultT }; } + private static bool IsResourceRenderingFixture(string relativeName) + => !relativeName.StartsWith("tests/text/", StringComparison.Ordinal) && + ResourceRenderingFixturePrefixes.Any(prefix => relativeName.StartsWith(prefix, StringComparison.Ordinal)); + + private static readonly string[] ResourceRenderingFixturePrefixes = + { + "tests/filters/feComponentTransfer/", + "tests/filters/feDisplacementMap/", + "tests/filters/feDistantLight/", + "tests/filters/feTurbulence/", + "tests/masking/clip-rule/", + "tests/paint-servers/stop-color/", + "tests/painting/color/", + "tests/painting/fill-rule/", + "tests/painting/image-rendering/", + "tests/painting/isolation/", + "tests/painting/marker/", + "tests/painting/mix-blend-mode/", + "tests/painting/paint-order/", + "tests/painting/shape-rendering/", + "tests/painting/stroke/", + "tests/painting/stroke-dasharray/", + "tests/painting/stroke-dashoffset/", + "tests/painting/stroke-linecap/", + "tests/painting/stroke-linejoin/", + "tests/painting/stroke-miterlimit/", + "tests/painting/stroke-width/", + "tests/painting/visibility/", + "tests/shapes/circle/", + "tests/shapes/line/", + "tests/shapes/polygon/", + "tests/shapes/polyline/", + "tests/shapes/rect/", + "tests/structure/a/", + "tests/structure/defs/", + "tests/structure/g/", + "tests/structure/transform/", + "tests/structure/use/" + }; + private static string GetResvgTestsRoot() => Path.GetFullPath(Path.Combine("..", "..", "..", "..", "..", "externals", "resvg", "crates", "resvg", "tests")); From ab253177411cad21be68b9ad5583624c9f978810 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wies=C5=82aw=20=C5=A0olt=C3=A9s?= Date: Tue, 26 May 2026 10:49:24 +0200 Subject: [PATCH 3/9] Refresh W3C SMIL snapshot baselines --- plan/skipped-tests-implementation-roadmap.md | 164 +++++++++-- scripts/capture_w3c_chrome_overrides.mjs | 160 ++++++++++- .../ChromeReference/W3C/animate-elem-02-t.png | Bin 0 -> 9687 bytes .../ChromeReference/W3C/animate-elem-03-t.png | Bin 0 -> 24448 bytes .../ChromeReference/W3C/animate-elem-04-t.png | Bin 0 -> 20639 bytes .../ChromeReference/W3C/animate-elem-05-t.png | Bin 0 -> 18614 bytes .../ChromeReference/W3C/animate-elem-06-t.png | Bin 0 -> 19640 bytes .../ChromeReference/W3C/animate-elem-07-t.png | Bin 0 -> 18741 bytes .../ChromeReference/W3C/animate-elem-08-t.png | Bin 0 -> 14786 bytes .../ChromeReference/W3C/animate-elem-09-t.png | Bin 0 -> 15263 bytes .../ChromeReference/W3C/animate-elem-10-t.png | Bin 0 -> 15918 bytes .../ChromeReference/W3C/animate-elem-11-t.png | Bin 0 -> 16005 bytes .../ChromeReference/W3C/animate-elem-12-t.png | Bin 0 -> 15918 bytes .../ChromeReference/W3C/animate-elem-13-t.png | Bin 0 -> 19033 bytes .../ChromeReference/W3C/animate-elem-14-t.png | Bin 0 -> 21887 bytes .../ChromeReference/W3C/animate-elem-15-t.png | Bin 0 -> 22060 bytes .../ChromeReference/W3C/animate-elem-17-t.png | Bin 0 -> 21949 bytes .../ChromeReference/W3C/animate-elem-19-t.png | Bin 0 -> 21395 bytes .../ChromeReference/W3C/animate-elem-22-b.png | Bin 0 -> 11878 bytes .../ChromeReference/W3C/animate-elem-24-t.png | Bin 0 -> 22914 bytes .../ChromeReference/W3C/animate-elem-25-t.png | Bin 0 -> 13486 bytes .../ChromeReference/W3C/animate-elem-26-t.png | Bin 0 -> 28431 bytes .../ChromeReference/W3C/animate-elem-27-t.png | Bin 0 -> 13641 bytes .../ChromeReference/W3C/animate-elem-28-t.png | Bin 0 -> 16759 bytes .../ChromeReference/W3C/animate-elem-30-t.png | Bin 0 -> 16400 bytes .../ChromeReference/W3C/animate-elem-31-t.png | Bin 0 -> 28285 bytes .../ChromeReference/W3C/animate-elem-32-t.png | Bin 0 -> 10171 bytes .../ChromeReference/W3C/animate-elem-33-t.png | Bin 0 -> 23310 bytes .../ChromeReference/W3C/animate-elem-34-t.png | Bin 0 -> 21605 bytes .../ChromeReference/W3C/animate-elem-35-t.png | Bin 0 -> 24006 bytes .../ChromeReference/W3C/animate-elem-36-t.png | Bin 0 -> 27356 bytes .../ChromeReference/W3C/animate-elem-37-t.png | Bin 0 -> 20216 bytes .../ChromeReference/W3C/animate-elem-38-t.png | Bin 0 -> 8785 bytes .../ChromeReference/W3C/animate-elem-39-t.png | Bin 0 -> 37593 bytes .../ChromeReference/W3C/animate-elem-40-t.png | Bin 0 -> 31895 bytes .../ChromeReference/W3C/animate-elem-41-t.png | Bin 0 -> 19578 bytes .../ChromeReference/W3C/animate-elem-44-t.png | Bin 0 -> 24245 bytes .../ChromeReference/W3C/animate-elem-46-t.png | Bin 0 -> 19638 bytes .../ChromeReference/W3C/animate-elem-52-t.png | Bin 0 -> 26963 bytes .../ChromeReference/W3C/animate-elem-53-t.png | Bin 0 -> 25928 bytes .../ChromeReference/W3C/animate-elem-64-t.png | Bin 0 -> 13423 bytes .../ChromeReference/W3C/animate-elem-65-t.png | Bin 0 -> 20143 bytes .../ChromeReference/W3C/animate-elem-66-t.png | Bin 0 -> 20484 bytes .../ChromeReference/W3C/animate-elem-67-t.png | Bin 0 -> 17939 bytes .../ChromeReference/W3C/animate-elem-68-t.png | Bin 0 -> 20229 bytes .../ChromeReference/W3C/animate-elem-69-t.png | Bin 0 -> 20924 bytes .../ChromeReference/W3C/animate-elem-70-t.png | Bin 0 -> 15904 bytes .../ChromeReference/W3C/animate-elem-77-t.png | Bin 0 -> 19499 bytes .../ChromeReference/W3C/animate-elem-78-t.png | Bin 0 -> 20202 bytes .../ChromeReference/W3C/animate-elem-80-t.png | Bin 0 -> 38800 bytes .../ChromeReference/W3C/animate-elem-81-t.png | Bin 0 -> 20179 bytes .../ChromeReference/W3C/animate-elem-82-t.png | Bin 0 -> 18358 bytes .../ChromeReference/W3C/animate-elem-83-t.png | Bin 0 -> 25019 bytes .../ChromeReference/W3C/animate-elem-86-t.png | Bin 0 -> 13404 bytes .../ChromeReference/W3C/animate-elem-87-t.png | Bin 0 -> 19332 bytes .../ChromeReference/W3C/animate-elem-88-t.png | Bin 0 -> 8509 bytes .../ChromeReference/W3C/animate-elem-89-t.png | Bin 0 -> 10410 bytes .../ChromeReference/W3C/animate-elem-92-t.png | Bin 0 -> 17901 bytes .../W3C/animate-pservers-grad-01-b.png | Bin 0 -> 10738 bytes .../W3C/filters-composite-05-f.png | Bin 84209 -> 35004 bytes tests/Svg.Skia.UnitTests/W3CTestSuiteTests.cs | 259 ++++++++++++------ 61 files changed, 472 insertions(+), 111 deletions(-) create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-02-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-03-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-04-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-05-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-06-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-07-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-08-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-09-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-10-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-11-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-12-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-13-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-14-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-15-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-17-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-19-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-22-b.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-24-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-25-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-26-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-27-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-28-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-30-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-31-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-32-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-33-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-34-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-35-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-36-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-37-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-38-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-39-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-40-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-41-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-44-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-46-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-52-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-53-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-64-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-65-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-66-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-67-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-68-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-69-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-70-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-77-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-78-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-80-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-81-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-82-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-83-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-86-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-87-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-88-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-89-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-92-t.png create mode 100644 tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-pservers-grad-01-b.png diff --git a/plan/skipped-tests-implementation-roadmap.md b/plan/skipped-tests-implementation-roadmap.md index 5f9272dd2a..3a4f937e51 100644 --- a/plan/skipped-tests-implementation-roadmap.md +++ b/plan/skipped-tests-implementation-roadmap.md @@ -101,6 +101,17 @@ Verified probe findings from the remaining skipped W3C text rows on 2026-04-09: - `text-intro-05-t` and `text-intro-10-f` still fail because Arabic shaping only stays correct when fallback spans are preserved, but preserving spans still leaves non-Chrome anchor/position parity. A probe to force single-run shaping produced tofu glyphs, which confirms the missing piece is mixed-font shaping/fallback support rather than a simple bidi wrapper. - `text-altglyph-01/02/03-b` now exercise real SVG-font alternate glyph substitution. They remain sensitive to browser/font raster identity and should not be conflated with the remaining bidi/vertical text layout work. +Current resource-rendering tranche: + +- The next recommended non-text lane is a first resource-rendering parity slice, not a full resource-policy or browser-style completion pass. +- The slice covers gradient and pattern inheritance where explicitly authored attributes on referenced resources must override defaults without letting default values mask inherited values. +- The slice includes recursion guards for pattern picture compilation and referenced content so paint servers, markers, clips, masks, filters, and `use` expansions do not re-enter the same resource path indefinitely. +- The slice hardens existing Skia-backed filters by treating invalid `feColorMatrix` values, negative blur/morphology inputs, fractional morphology radii, and lighting parameter mapping as deterministic renderer behavior rather than fixture-specific failures. +- The slice covers clip/use placement where referenced clip content should preserve geometry and transforms while suppressing marker output that does not belong inside the clip resource. +- The slice covers image decode guards so empty, blocked, or malformed image data produces deterministic zero-size image metadata instead of null-image crashes. +- The green resvg resource fixture slice is tracked through already-green deterministic resource-adjacent families with no new thresholds or Chrome overrides. Renderer deltas outside that slice are covered by focused unit tests until their broader visual rows are ready. +- Deeper rows remain planned and must not be hidden by broad thresholds: `enable-background`, `BackgroundImage`, `BackgroundAlpha`, `feImage`, CSS `filter` functions, style selector/color parity, full mask self-reference behavior, and exact browser parity for pattern tiling/inheritance and marker placement. + ## Workstreams ### 1. Text Layout And Font Fidelity @@ -160,6 +171,7 @@ Acceptance criteria: Target projects: - `src/Svg.Animation` +- `src/Svg.Custom` - `src/Svg.Skia` - `tests/Svg.Skia.UnitTests` - `scripts/capture_w3c_chrome_overrides.mjs` @@ -168,16 +180,50 @@ Features: - per-fixture animation snapshot times in W3C tests - matching Chrome capture timing -- correct snapshot rendering for animate/set/animateTransform/animateMotion/animateColor/filter animation cases +- repeat-count and `repeat(n)` eventbase timing for seeked snapshots +- half-open active interval boundaries, restart truncation, repeat callbacks, and future syncbase DOM query timing +- number-list and path interpolation for paced and explicit animation values +- discrete midpoint fallback when interpolation is unsupported or non-additive +- routing for custom attributes, namespaced referenced resources, `currentColor`/`inherit`, and style-backed animated values +- by-only `animateTransform` handling +- motion and transform composition across `animateMotion`, `animateTransform`, and base transforms +- correct snapshot rendering for `animate`, `set`, `animateTransform`, `animateMotion`, `animateColor`, style, reference, and filter animation cases Primary test impact: - W3C `animate-*` - `filters-composite-05-f` +Execution order: + +1. Lock W3C animation rows to explicit seek times and regenerate matching Chrome overrides through the HTTP capture script, not `file://`. +2. Preserve eventbase timing semantics for `begin`, `end`, repeat events, `repeat(n)`, and self-synchronizing recurrence without letting cycles drift across snapshot seeks. +3. Finish interpolation coverage for scalar values, number lists, transform lists, path data, and paced motion where the static runtime can compute a deterministic value. +4. Route animated values through the same custom-attribute, referenced-resource, presentation-attribute, and inline-style paths used by static rendering so snapshots do not bypass cascade/resource semantics. +5. Preserve discrete midpoint fallback for unsupported interpolation modes, mismatched value shapes, non-additive values, and browser-runtime-only cases. +6. Complete by-only transform handling and motion/transform composition so base transforms, additive transforms, and motion transforms apply in browser order. +7. Keep JavaScript/DOM/event-loop-dependent rows skipped with explicit runtime reasons instead of manufacturing baselines. +8. Run focused W3C animation rows before broad W3C and all-area validation, then review benchmark output for timing-path or interpolation regressions. + +Current implementation status: + +- The active SMIL snapshot work is in the runtime path rather than in baseline policy. The lane now covers repeat-event timing, `repeat(n)` eventbase resolution, self-sync recurrence, future syncbase start-time queries, restart truncation, half-open interval boundaries, list/path interpolation, fallback discreteness, and composed motion/transform output as renderer behavior. +- W3C seek times and Chrome capture alignment are part of the implementation contract: a row should compare Svg.Skia at the same snapshot time used for its Chrome override, and fixture captures must keep the parent harness and SVG on the same HTTP origin. +- Style, custom attribute, namespaced `href`/`xlink:href`, `currentColor`, `inherit`, and referenced-resource animation routing remains part of the lane because snapshot correctness depends on animated values reaching the same property/resource resolution path as static values. +- Validation is expected to include focused animation rows, any refreshed Chrome overrides, the broader W3C animation suite, and performance review for timing and interpolation changes before enabling more rows. Newly enabled W3C rows with Chrome overrides include `animate-elem-02-t` through `animate-elem-15-t`, `animate-elem-17-t`, `animate-elem-19-t`, `animate-elem-22-b`, `animate-elem-24-t` through `animate-elem-28-t`, `animate-elem-30-t` through `animate-elem-41-t`, `animate-elem-44-t`, `animate-elem-46-t`, `animate-elem-53-t`, `animate-elem-64-t` through `animate-elem-70-t`, `animate-elem-77-t`, `animate-elem-78-t`, `animate-elem-80-t` through `animate-elem-83-t`, `animate-elem-86-t` through `animate-elem-89-t`, `animate-elem-92-t`, `animate-pservers-grad-01-b`, and `filters-composite-05-f`. +- The latest SMIL fixes include order-independent `animateMotion` plus `animateTransform` composition, cloned-document deferred paint-server rebinding for animated gradient resources, discrete accumulated end-value semantics, finite `max` constraints on indefinite set intervals, valid `min`/`max` pair handling, to-only non-interpolable value routing for class/reference/filter/unit attributes, and hardened Chrome override capture readiness so animation snapshots do not accidentally capture `about:blank` or a pre-seek frame. +- Remaining skipped `animate-*` rows are split between browser-runtime policy cases and deeper static parity cases. Attribute-routing classification now leaves `animate-elem-23-t`, `animate-elem-84-t`, and `animate-elem-85-t` skipped because modern Chrome captures deprecated `animateColor` as a no-op in those rows, `animate-elem-90-b` because animated class routing changes the target state but selector recalc still disturbs the static guide fills, and `animate-elem-91-t` because to-only non-interpolable routing is covered while full display/use/resource rendering parity remains incomplete. Browser-runtime rows such as click-driven `indefinite`, access key, wallclock, pointer-event, and embedded animated image fixtures should stay skipped unless the harness explicitly simulates those runtime inputs. + Acceptance criteria: - W3C animation rows no longer default to time zero when the Chrome baseline captures an advanced frame. +- `repeat(n)` eventbase timing and self-sync recurrence produce deterministic snapshot values at the configured seek time. +- Half-open active intervals, `restart="always"` truncation, repeat timeline callbacks, and future syncbase start-time lookups are covered by focused regression tests. +- Scalar, number-list, path, transform, and motion interpolation either match browser snapshot behavior or fall back discretely at the midpoint with an explicit unsupported-runtime reason. +- Custom attributes, namespaced referenced resources, presentation attributes, `currentColor`/`inherit`, and inline styles receive animated values through the same routing used by static rendering. +- By-only transform animation and motion/transform composition preserve browser transform order for static snapshots. +- New or refreshed W3C Chrome overrides are generated with `node scripts/capture_w3c_chrome_overrides.mjs` and stay aligned with the W3C seek times. +- Focused W3C animation validation and relevant all-area benchmark checks are reviewed before accepting runtime changes. ### 3. CSS And Styling Fidelity @@ -204,7 +250,7 @@ Acceptance criteria: - Styling rows that only depend on static cascade semantics are enabled. -### 4. Paint Servers, Filters, Images, Markers, Patterns +### 4. Resource Rendering Parity First Slice Target projects: @@ -215,19 +261,83 @@ Target projects: Features: -- image loading and fallback behavior -- marker orientation and sizing parity -- pattern inheritance and units parity -- linear/radial gradient edge cases -- remaining filter primitive fidelity +- gradient inheritance across `href` chains: + - `spreadMethod` + - `gradientUnits` + - `gradientTransform` + - radial focal point and radius guards +- pattern inheritance and recursion guards: + - `patternUnits` + - `patternContentUnits` + - `patternTransform` + - `viewBox` + - `preserveAspectRatio` + - paint-server fallback when recursive pattern rendering is suppressed +- filter hardening for already-supported primitives: + - invalid or empty `feColorMatrix` values + - negative `feGaussianBlur` values + - negative and fractional `feMorphology` radii + - lighting filter parameter mapping +- clip/use placement: + - referenced clip geometry keeps placement and transforms + - marker rendering is suppressed inside clip-resource compilation + - referenced content avoids marker/pattern recursion through nested resource paths +- image decode guards: + - empty data + - undecodable data + - blocked or missing resource data that reaches image decode +- focused unit coverage for implemented resource deltas that are not yet part of the green resvg visual slice Primary test impact: -- resvg `e-image-*`, `e-marker-*`, `e-pattern-*`, `e-linearGradient-*`, `e-radialGradient-*`, `e-mask-*`, `e-filter-*`, `e-fe*` +- resvg resource rendering fixture slice: + - `tests/filters/feComponentTransfer/*` + - `tests/filters/feDisplacementMap/*` + - `tests/filters/feDistantLight/*` + - `tests/filters/feTurbulence/*` + - `tests/masking/clip-rule/*` + - `tests/paint-servers/stop-color/*` + - `tests/painting/color/*` + - `tests/painting/fill-rule/*` + - `tests/painting/image-rendering/*` + - `tests/painting/isolation/*` + - `tests/painting/marker/*` + - `tests/painting/mix-blend-mode/*` + - `tests/painting/paint-order/*` + - `tests/painting/shape-rendering/*` + - `tests/painting/stroke*` + - `tests/painting/visibility/*` + - `tests/shapes/{circle,line,polygon,polyline,rect}/*` + - `tests/structure/{a,defs,g,transform,use}/*` +- focused model/Skia unit tests: + - gradient explicit default inheritance + - radial focal projection + - pattern `preserveAspectRatio` explicit default inheritance + - non-invertible pattern transform rejection + - CSS `clip: rect(...)` parsing + - invalid image decode guard + - spot-lit specular code generation argument mapping +- future deeper resource rows: + - resvg `e-image-*`, `e-marker-*`, `e-pattern-*`, `e-linearGradient-*`, `e-radialGradient-*`, `e-mask-*`, `e-filter-*`, `e-fe*` rows that require browser-only behavior or unsupported primitives + +Execution order: + +1. Lock the green resvg resource fixture slice as the first non-text resource harness. +2. Preserve gradient inheritance fixes and radial guard behavior for the paint-server rows. +3. Preserve pattern inheritance, transform invertibility checks, and pattern recursion guards. +4. Preserve filter hardening before adding the filter graph IR. +5. Preserve clip/use placement behavior so clip resources do not inherit marker output. +6. Preserve image decode guards before broadening external resource policy work. +7. Keep this slice free of new thresholds; add thresholds only in later visual-parity passes after row-specific review. +8. Start deeper resource rows only after this slice stays green in focused and full resvg runs. Acceptance criteria: -- Resvg non-text skip count drops materially after renderer fixes, not by baseline swapping. +- The resource rendering fixture slice is green without baseline swapping. +- No new thresholds or Chrome baseline swaps are required for this first slice. +- The implementation does not edit source fixtures or manufacture baselines for unsupported resource behavior. +- Deeper rows remain explicitly planned for `enable-background`, `BackgroundImage`, `BackgroundAlpha`, `feImage`, CSS `filter` functions, style selector/color parity, full mask self-reference behavior, and exact browser parity for pattern tiling/inheritance and marker placement. +- Resvg non-text skip count drops materially only after renderer fixes, not by baseline swapping. ### 5. SVG DOM / Script / Interaction Runtime @@ -257,18 +367,30 @@ Acceptance criteria: The next implementation tranche should be: -1. Add a vertical text placement branch in `src/Svg.SceneGraph/SvgSceneTextCompiler.cs` for browser-compatible fallback text. - Scope: vertical advance on Y, `text-anchor` along the vertical axis, perpendicular `baseline-shift`, and glyph rotation rules for Latin versus upright CJK. - Acceptance: `text-align-05-b`, `text-align-06-b`, and `text-intro-03-b` render vertically against the existing Chrome captures. -2. Introduce mixed-font bidi shaping support instead of per-span bidi wrapping. - Scope: preserve glyph fallback while shaping/reordering a single logical run, likely by adding run shaping support in the asset-loader/text-renderer layer rather than in `SvgSceneTextCompiler` alone. - Acceptance: `text-intro-02-b` and `text-intro-09-b` match Chrome ordering, and Arabic rows no longer depend on span-local fallback behavior. -3. Finish per-glyph coordinate list parity for `e-text-006..010`, `e-text-024`, `e-tspan-013`, and the remaining positioned `tref`/`tspan` cases. -4. Finish nested `tspan` rotate inheritance and shaping across span boundaries (`e-tspan-016/017/023/024/042`). -5. Stabilize `letter-spacing` and `word-spacing` against resvg references. -6. Implement `textLength` and `lengthAdjust` using run-level metrics that match final rendered glyph advances. -7. Extend `textPath` layout for `text-anchor`, vertical flow, per-child positioning, underline/rotate/baseline-shift, and transformed referenced paths. -8. Rebaseline any newly Chrome-backed W3C rows with `node scripts/capture_w3c_chrome_overrides.mjs` after renderer changes are proven against the live Chrome capture. +1. Keep the resvg resource rendering fixture slice green before broadening non-text enablement. + Scope: paint servers, masking, marker resources, and deterministic Skia-backed filter families. + Acceptance: the focused resource fixture harness passes without new thresholds or baseline swaps. +2. Stabilize gradient inheritance across referenced linear/radial gradients. + Scope: explicit `spreadMethod`, `gradientUnits`, and `gradientTransform` inheritance, negative radial radius handling, non-negative focal radius handling, and focal point projection into the outer circle. + Acceptance: paint-server gradient rows stay green without fallback baseline changes. +3. Stabilize pattern inheritance and recursion guards. + Scope: explicit pattern attribute inheritance, non-invertible transform rejection, nested pattern picture compilation with an active-pattern stack, and fallback paint-server behavior when recursive pattern rendering is suppressed. + Acceptance: pattern rows in the resource fixture slice stay green and recursive pattern cases fail deterministically. +4. Harden the existing Skia-backed filter primitive path. + Scope: invalid `feColorMatrix` values, negative `feGaussianBlur`, negative/fractional `feMorphology`, and lighting argument mapping. + Acceptance: Skia-backed filter rows in the resource fixture slice stay green; deeper filter graph work is not required for this slice. +5. Preserve clip/use placement behavior. + Scope: clip resources keep referenced geometry placement and transforms while suppressing markers and avoiding marker/pattern recursion through referenced content. + Acceptance: clip/masking resource rows stay green without reintroducing marker output into clip resources. +6. Preserve image decode guards. + Scope: empty, missing, blocked, or undecodable image data returns deterministic zero-size image metadata instead of crashing. + Acceptance: image-backed resource rows either render, skip for explicit unsupported behavior, or fail deterministically without null-image crashes. +7. Keep deeper resource rows explicit. + Scope: `enable-background`, `BackgroundImage`, `BackgroundAlpha`, `feImage`, CSS `filter` functions, style selector/color parity, full mask self-reference, and exact pattern/marker browser parity. + Acceptance: these rows remain skipped/planned with accurate reasons until their actual renderer/runtime support exists. +8. Run broader resvg and combined standards-area validation only after the focused resource slice is stable. + Scope: full resvg fixture matrix and `SvgAllAreaRegressionValidationBenchmarks` for paint servers, filters, masks/clips, images, and resource recursion. + Acceptance: no unrelated text/runtime changes are required to accept this resource-rendering slice. ## Runtime-Gated Groups diff --git a/scripts/capture_w3c_chrome_overrides.mjs b/scripts/capture_w3c_chrome_overrides.mjs index 64954effaa..1c94a60a62 100644 --- a/scripts/capture_w3c_chrome_overrides.mjs +++ b/scripts/capture_w3c_chrome_overrides.mjs @@ -15,8 +15,14 @@ const repoRoot = path.resolve(__dirname, '..'); const svgDir = path.join(repoRoot, 'externals', 'W3C_SVG_11_TestSuite', 'W3C_SVG_11_TestSuite', 'svg'); const outputDir = path.join(repoRoot, 'tests', 'Svg.Skia.UnitTests', 'ChromeReference', 'W3C'); const wrapperDir = path.join(repoRoot, 'output', 'playwright', 'w3c-capture'); -const animationSeekOverrides = new Map([ - ['animate-dom-01-f', 2.5], +const w3cTestSuiteTestsPath = path.join(repoRoot, 'tests', 'Svg.Skia.UnitTests', 'W3CTestSuiteTests.cs'); +const animationSeekOverrides = await readAnimationSeekOverrides(); +const preSeekInteractionScripts = new Map([ + ['animate-elem-52-t', ` + dispatchMouseEvent(doc, win, 'A', 'click'); + dispatchMouseEvent(doc, win, 'B', 'click'); + dispatchMouseEvent(doc, win, 'C', 'click'); + `], ]); const interactionScripts = new Map([ ['interact-dom-01-b', ` @@ -53,6 +59,45 @@ const mimeTypes = new Map([ ['.txt', 'text/plain; charset=utf-8'], ]); +async function readAnimationSeekOverrides() +{ + const source = await fs.readFile(w3cTestSuiteTestsPath, 'utf8'); + const startMarker = '// W3C_ANIMATION_SEEK_TIMES_BEGIN'; + const endMarker = '// W3C_ANIMATION_SEEK_TIMES_END'; + const start = source.indexOf(startMarker); + const end = source.indexOf(endMarker); + + if (start < 0 || end < 0 || end <= start) + { + throw new Error(`Unable to find W3C animation seek-time markers in ${w3cTestSuiteTestsPath}.`); + } + + const tableSource = source.slice(start + startMarker.length, end); + const seekTimes = new Map(); + const rowPattern = /^\s*\["([^"]+)"\]\s*=\s*([0-9]+(?:\.[0-9]+)?)/gm; + let match; + + while ((match = rowPattern.exec(tableSource)) !== null) + { + const name = match[1]; + const seconds = Number(match[2]); + + if (seekTimes.has(name)) + { + throw new Error(`Duplicate W3C animation seek time for ${name}.`); + } + + seekTimes.set(name, seconds); + } + + if (seekTimes.size < 1) + { + throw new Error(`No W3C animation seek times found in ${w3cTestSuiteTestsPath}.`); + } + + return seekTimes; +} + function getContentType(filePath) { return mimeTypes.get(path.extname(filePath).toLowerCase()) ?? 'application/octet-stream'; @@ -119,6 +164,7 @@ async function writeWrapper(name) const wrapperPath = path.join(wrapperDir, `${name}.html`); const svgUrl = `/externals/W3C_SVG_11_TestSuite/W3C_SVG_11_TestSuite/svg/${encodeURIComponent(name)}.svg`; const animationSeekTime = animationSeekOverrides.get(name) ?? null; + const preSeekInteractionScript = preSeekInteractionScripts.get(name) ?? ''; const interactionScript = interactionScripts.get(name) ?? ''; const html = ` @@ -170,33 +216,127 @@ async function writeWrapper(name) })); } - if (animationSeekTime !== null) { - const frame = document.getElementById('capture'); + const frame = document.getElementById('capture'); + function runWhenFrameReady(callback) { + let didRun = false; + const run = () => { + if (didRun) { + return; + } + + didRun = true; + callback(); + }; + const tryRun = () => { + try { + const doc = frame.contentDocument; + const href = frame.contentWindow?.location?.href; + if (href && href !== 'about:blank' && doc?.documentElement && (doc.readyState === undefined || doc.readyState === 'interactive' || doc.readyState === 'complete')) { + run(); + return true; + } + } catch { + } + + return false; + }; + + if (tryRun()) { + return; + } + frame.addEventListener('load', () => { + tryRun(); + }, { once: true }); + let attempts = 0; + const retry = () => { + if (tryRun() || ++attempts >= 40) { + return; + } + + setTimeout(retry, 50); + }; + setTimeout(retry, 50); + } + + let pendingCaptureReady = animationSeekTime !== null ? 2 : 1; + function completeCaptureReadyPart() { + pendingCaptureReady -= 1; + if (pendingCaptureReady > 0 || document.getElementById('capture-ready')) { + return; + } + + const ready = document.createElement('div'); + ready.id = 'capture-ready'; + ready.style.position = 'absolute'; + ready.style.left = '-9999px'; + ready.style.top = '-9999px'; + ready.style.width = '1px'; + ready.style.height = '1px'; + document.body.appendChild(ready); + } + + if (animationSeekTime !== null) { + runWhenFrameReady(() => { try { + const win = frame.contentWindow; + const doc = frame.contentDocument; + if (!win || !doc) { + completeCaptureReadyPart(); + return; + } + + ${preSeekInteractionScript} + const svg = frame.contentDocument?.documentElement; if (svg && typeof svg.setCurrentTime === 'function') { - svg.setCurrentTime(animationSeekTime); + const seek = () => { + try { + if (typeof svg.pauseAnimations === 'function') { + svg.pauseAnimations(); + } + svg.setCurrentTime(animationSeekTime); + } catch { + } + }; + + seek(); + frame.contentWindow?.requestAnimationFrame(() => { + seek(); + frame.contentWindow?.setTimeout(seek, 100); + frame.contentWindow?.setTimeout(() => { + seek(); + completeCaptureReadyPart(); + }, 500); + }); + } + else { + completeCaptureReadyPart(); } } catch { + completeCaptureReadyPart(); } - }, { once: true }); + }); } - const frame = document.getElementById('capture'); - frame.addEventListener('load', () => { + runWhenFrameReady(() => { try { const win = frame.contentWindow; const doc = frame.contentDocument; if (!win || !doc) { + completeCaptureReadyPart(); return; } ${interactionScript} + frame.contentWindow?.requestAnimationFrame(() => { + frame.contentWindow?.setTimeout(completeCaptureReadyPart, 0); + }); } catch (error) { console.error(error); + completeCaptureReadyPart(); } - }, { once: true }); + }); `; @@ -222,6 +362,8 @@ async function captureOverride(baseUrl, name) 'chrome', '--viewport-size', '480,360', + '--wait-for-selector', + '#capture-ready', '--wait-for-timeout', '1500', '--timeout', diff --git a/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-02-t.png b/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-02-t.png new file mode 100644 index 0000000000000000000000000000000000000000..dbaa75f92f4fa624de394d22553fd1d35c30d461 GIT binary patch literal 9687 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 KgOvL4<-Y+Jq`p!B literal 0 HcmV?d00001 diff --git a/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-03-t.png b/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-03-t.png new file mode 100644 index 0000000000000000000000000000000000000000..a4d4fcf4090675659d54488c870da6616fa4b92b GIT binary patch literal 24448 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 literal 0 HcmV?d00001 diff --git a/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-04-t.png b/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-04-t.png new file mode 100644 index 0000000000000000000000000000000000000000..d898628c31a67cf9dd8855230f4fdd81cfc388b1 GIT binary patch literal 20639 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 literal 0 HcmV?d00001 diff --git a/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-06-t.png b/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-06-t.png new file mode 100644 index 0000000000000000000000000000000000000000..6647801769702a80b6134be160bf69c5fdaa78ed GIT binary patch literal 19640 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 MPgg&ebxsLQ02t{TIRF3v literal 0 HcmV?d00001 diff --git a/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-07-t.png b/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-07-t.png new file mode 100644 index 0000000000000000000000000000000000000000..77fbc03cd30c246565515714e3623977cfec424e GIT binary patch literal 18741 zcmd74WmJ{z+czlPu<34)Qba%mq+1%LLAs?|xATpHXPH*OF-RFZpi;|9tq{AY)a z3h&&|>GZjA199V_oV2!Y=57{N09oJl6^C~6vOjUsavT{~o)T6OdQo^T3zJ%MF~XPY zM1{OCmgxx@Ix#TzucfxIm0T=3QBO`57Svd)&o8IT4IU$|2i#G`EqY_N zCg0)tyf^K<8kM}h71J4d=T~as#D8)wH9LtOsFdlBuM2*Xx5RJimVo zzuK}HPQQEXfx4ff_m2X!(6>h=sU5);DYK%i!huO-& zUyCAaa6ArdW}#agV=Ycp&S7R7Z1F5g`XXCsrP=# zW{W+mwfY>^3)kdU=JRXu*~Qr*Dh6(sI@gm{!47L;Syv8g7XLrHcRn1T@?tho-bZw% z6+V2mUTr=2n#-WpDqn6~%=G7IPP9Sv{^gf60sUU_k0@@xd34L|-jJRu8cIE{vmJF_ z>3CuyJCZ3v@FIAvJCZTz3`H+;Y5M2AwkN$|=rGjRJM(0tafiYc^$h6Xet1~8l^fLk z7{0%vo#ur}KqKgTU?!W^zfYBsddtAVSG7L-bbFeIlT(RTw^aL~1ViF2I9WC}xn|64 zjR1_`i^J%(nOPHmr?Z2##1~~A2hD@LPw5|cXNr1lKiL0JXE)B$CdOIjn#J{~FvN`c za@I8XtM%qm+kJ`JwZlBWrB<&D$>5H)nNf*<<))oM4_~rrJvDC8+fFBF``ULLPvZ5( zyeBH~;3F1e;PE)@yx07%M5{o1r-(<2GX?MT@^qyD;q$B2F$p#w^3>1hG%`0rc8&w+V)GGz0YJMFAjR{bY4u{l_bQI z<(lsfKco1BI(2jGR^q@5#)7mO>2S=b?OTqQ<#CjE5Xn z|0bO4LtlRaE%Qg4ZTy)kQz9=}*V~JzD3(1@1oYDebAxrV8{BKDbm0G;_=GWHNum!) zHKQGvGbQSGn)hHX^0Y9-!UT7L$7kLh(Ou`iu}r=9R@}c)+0t~;>h+jkON?2aLIO?6 zRUB15H?=DV%{_+*Mw0H}6O|t8f}2>9a`&C`^Ye3GoOAf?R5amI+=@w}sO*DEFiknt z?tcnHP$>h?2j9A-I_0Z_qCrFVi^aok?T;Z9oXeWu7C$_z6Xnk)4p{QlN3Rh=VIPYT z^zu^pK3A&4(-6aG*WfU1MMFI3vl4jvXTfDi9^KU3+?+q*6UO>mrjOTEMvhCZ4JPe= zN3mg)5g~XD_M8oigZaO+TE<<=eyP~P{I!-aHG5ry z#MD-=9hjnzMPCpxO7x14M;gs#A_6j@X5bj9q5i;hPFy_x_Cj(SRow5`&TH8Bh&g#; zA*IW@(xkohOUM~9N8t74Y4V@%CM`Y+vi#PA=tWWSgYps6h^IvcWx5savbpRBjEFv- z7Z^ntz1j@avzV`x4G|>z)1}5AF;?5gRJa26vqZgQl6WW&^9rS!>QLPDI=>Loi*81H zp_(* zziDO#sS~D;t!RX{Xv?jJnf%tzojakv%N5lWJfTN*JO2Lp)pY)HEzRSgzZ;ZABTR1V zz1XJO6+acv1HK3Im90l^yL(Ey| zx||d}G7YCxB<>%qQxm7Hdwi{!!s=_bWx+AREBvP1d*atq;QX#j@#V^c!Fa<42a#VH zH`QoTf{r(nUGXy8p|yGQ9IAxa7E!GEV_P_(D(0S0)p_mA*nB-szsJI##%WMnX!y0x zR-^ZxcSTG!Wxx1%^3!x=sUQR#UyKYt8oOi&*n-o8!b@lu%@`>6dW#zvvxXe>{b zd+$480hdmZxFh%R47JvB?)VqCz*6n^xi9$>Xn8FNp9j>LJe}ZA{bb@v@|N$&Us2~v zO?B|m_gKs1EzDNLj@3w}L6OT+D|<`>4jqx9%fo@+W`Dj-{^Xa>h*#ByrodP%JcW77 z3|*K{;Q-N1ji|w~pni+vD)08NR_~VKy!`2i!RE1u!oYG!?ElM2kV9s9=hQ%boo31`7IfJ4NK9cEgIE9ISREj{-A_3z!Q zKgu4hXyxV&*%@jl)R=J0yD9YE!B&myk@vK0l8MB1%^BVvw{sY{DaUSu#=E$>-WNAr zsw4ZVJx#Q1zGOrfAG2-|8CaP^4Gus(`D(@4Tjk|OlB_4lvzYgP5ldNFVg+>v-&&Cog zFSt}}#>gMJ@5B@cUqwJGbjzqw_2i)pHJ|NBrdELh&Zs{00%(8J>k~yPYx#5X;w2b( zL%HW(G1o%RMDi6oI2|LdGsg*zZB!q4?&;Di@tSs&pJqqspYF_#j)bmJN#?`RW)`fN z%57?X0xW8B{K_(EclkuqoxXmh&3ce=0xiNZ%zk&oYmKR*n5;{Aoi} z_zKM9CWmQmbM|A3sbp3~n&lFh^ktQlNPrz@`{aWjaxjH9qQ5@$<_U%_FkPlMRG%&= zYiAP8*Md`G*kYIa`K!T0Gg4vHEOr$NxdDe7;}&=CaGy2H&EMXCwk8!%h-aedy|<^h z`1v2L5dTtyyOe^viCQ7)^7x&)SAgd582wuYalg%BV2Jk=SbPLjjIlvkzO2Q@I{To!IZz<@&1bG zKJD{$+r#y~v!(4EEk;f@M{!y0@x+&(U1?-Ul+d+JGXYtvX9%gO@v(78M3Z%Q;1dze zp3pGYNwoK4F$NrTUSDcFXPV#99Ee!bsy6!w;LK&d{$Uf%nEMG5%E_N`>$B#(f&s*# z`W6u?;;+3}$2E)UG4d>|Z4&Vwrh&9y7?X`2!jjVM(p=+_~~L>$pnl zt=N0~XwDdhjm%#UL|3h8M?@b4Uj;03q9d{%_@q8fzxTA5PArq~6d~#VdNT~21>l99 z+&REe%~74slRcr`+O_1QPXC6RPV@Dq!IupV?|WWZ3i?HX@#;5oirB$-J|5u{nCV*V1#vt%12-Rc*kkZTGnlS?qXxP z{pfqV+YLE`%PzWLd(I@+_kN~Zz!z^DH&+9Ebr=q!JvTYivHJ4X4Vardu{G7Y9s5|r z)7hB}eOIEBk2P#v2OM#-Is3z|=ylci)>*N=j>_{*VzEBEp+AYExQ)n7`#aPvv_ot7 z$6==2zKMb8r9Ug4-|4T*X+2YFLieZh^;kdE(fER2Nw^gf>d;>VY|>9R^Dem6 zueV3{{tqpHSdgBuVY#?M%4xr8B}mq~5?XQ;b;O?YrpMG)$&0P;*0SgKf1Ps%uk&1N zrRd#7&HD<3_0O**|IIOGF-e$DitWwnS)wB=56=MV0FE!feEvhufT+*J{ku{mE_vo| zq|{9y*?pK{H+R?1H5d~GMzD>39BmA73b}6#Vtmud86d0?P$tyR6z0!%YWnBnPbvJV zS+Zn=^<35fm73e+gD~nvz~3VgJ<+E9lm**k(Q}@vj*Fuqs6&huWOgKC?%%P)3<6@$ z8oEq8BoJh6QgJnS5@bO+A|5{?#`83|-A{i#3D|GeJL@-BT_9NMKYzucp&&0`r1FN) zB-2tv`GWrMU|9&cos0#JVkkv~Z$?)D2Qza7IzE}540a9Y|NNRcossl5nOQap3iszz z`M=(a2pnI|v54MyO49(XV9Wc=HCVR^|JVEe&)@dHdxs(`j+LMP=Zw)jE}a8`PM_JD=;17|0E32`tC1_p9mcTBP5{amqW;W2$jbWeRlMnd+$PgF=#l2 zM-Qqe$0Ts0p&ZH11CqneNYr|}nIYpUl+RNSoml5xL^GH1@$ z9qlr1?qBP}TnnwxnS1P7Eb4~zmcD2>I5*09$I|$%N!WfIV3LsB(AUm=T&ToMO3iPD z_`keWq|8ogKUtg-`%WV#Dmr?I@+0{zeZ)@k)n3y|qst26Q=-4-+tXF1k|3*WGXdjX zsIw*FhhBi*_WF)#2V8fn2v1A!^%XqZhzdm-LKYumXsaMfjOIw@KnZVQO=QZqgdIWf zh>3|2_W4C;F$eow4W-@|7M>e-67$~Gx3Xg6)u<5h+(aC)YBjr>55&FRg|-j;TKEhq zk}{C_Mn?l|tP-yJ0r&E`ICEQMG}ebfU#eS?&Sx&O#(P)PW;bwYxwVvp zUHQ|D-i7Z$`^Dd%IkQ!!18*J`tEK_e;ZR9cT^Vn$%0QGE(J9*j?9i;SkWb4NuvJgt z)-h~yZuj`9-bRl_NGEL3i_P|9Bx~XQV~zpV;L|0a+lKXHvmn@@M!(z|dUGc_GP3>O zueMsWT6MtR92(h>b;B2HU2wd9?{6)&dkj0 ztq5qxVxiH=&B z=9bls{M+x8d^&ThEoHEC9N#g%##s*f0aypWGQ|u z)9j5#@a$j}MVXii`@BUnd7wp8sKlefxaFw*ba_%z&yjI*$FxbWa=UI+;<5dwyZQFb zjPA$9g)n*VJ1;6_3fIJ}!Ts)TrLWfXikvj8G#07D2Uhh_mW5GF%n(4tETagY_wL+s zyZ?~74Gg7__)>gVfy0Zp^wgMw`5b9TiSUKw)!c_?9xX93_FrqQ{VJZpz1&V#i1e8# zeAs#&qbw+9_g9~VH(VS>7DFNE8_}Hz8l~_re_=pp==8G-kG$r3{G8%8H|1LYROJ&R z@q=ciC%KV$_s0n7jF%Wc4ZvVGe>W&^w+>Y@G=qz>^Y0JZ-t5Y^M$nG!m|9Hrk<~+B6;y(DnoxW2oAOO0gD!l@De~GeI(@~_ zxI018O5R3|_s+l}y;)LWSAX}x9XgGok?xt;W`jB#zh?BJ5Qj2(LBxAO3-Pv@ym)GX z(i@1~l}^)UjQL*ODwB#SYOCRNug@>p9f%XOz1xI4L%o^m_h+keR9RM-DBia5nmR%dEo4e|M5R@|R*8|%>cF1^iRf||z zSuvOyR^Nn&6eT>3W*BM~A3~w=_#y<{Nxx`sQKJupBSHo-UnI@49hK=F%@ipp#y>%y z+8mC0TJ~0a-gicX&q;?yq0~SqKrlrj`04|%LXFRVA4kAa6clLg+waWSdz~&G<$7!k zZit01^!&uPWQipWRTv`awiV<|JBj#>xSXm%86KoKOzuB6%>xHv?>HoA1iS+K6e89HseaK-~zn><*$h*F5Cp9Y_!D*4`A-NPc zaJ)Xd*H`xP@+Wqzj_~N$;AXF#RJxFz80VwXRQ4(Jg(jD(G6BQAu<-D4nG;}(%t!JM z7(NiT=Y(L4hf5oGF4xWBjF=vg&<-5aJvAX`w$aSJ?g0w&B|t~~>=E-Gz#o{oB{O%P zw36+qdk59L;tiyb-nV@O9KAg}y(n=@Wab06%$HoL>u4BBX=?G+{-@3iZZ?T;6T-r}`3x0x0BGvo% zuJ}N@o_q{5+2(civ)?v7&O@Xe>e}ra+cOnqHbyh1#umcd=HO<4PDaAJYDBL2`!CKy zoGEbf-M3hniKPUdyK{Hv_2~Qi;hR|WHqN|QGgq$Y0xceq$Ojen8x^!OZ-dp@u zL(ON_#gP+`&yP*P1zCa6szOGO-;`9cm1zq)Yv^%tIpS0#< zGFGF1d`dTCgHjf{vu z@(jN4YPBA#nPFXnoJ3MJ&MBj2E_I01Zsbu?=Cw2YLy``D1Ujdt$S0*kT zA#)2CBmMu^uNKVREZykO2;np>$fKNSqJqQ3IFiAXeTtx=;C7Vubj>!CrjjO=xfS+2 zi&~Bc`KK{EcvHO$dDo|sEStG+!sH@i*ufNt$mzm{Z$Sym;_cT%-ZVVK#Y&%8WAGsZ zt{`*oEPC4q{%q;cn-OQ}W(6tFsN^2QP3vHvt57=(5B7IE)5^HX-1|r_G8%6b`}}?8 zR-@Q@Q-eU*>2V#uhSaG zCw}uls38x68GaygOIr?op(<`bS`fJvE&khjb>8)r$6XJx5L7knLzMnC0V(uhrgIS> zS4zf~G!hH!`Ah6$$nRdKnLIG){_jnhBx+}l&6`#OAyKej?Bjf#9CrMCC!{~^7Ok>Y z_jmA&;=eBEzy1~RUxy>H?PUrOS|O_nvxCcLON@~|yA^x-pG}m#!T~~~h~TizU<^_3 zl_?c$X6J~}muK{H0&tDJqRvsHKfbO%gbSgFNSf;(J}@A85&mCa<9)~pd(tuf=Sz|Q zO6{FxN=KfR{0D?Y#y-ixe-07n%M6=_{L81)J8=sW$9bu)QEII<%`)Y3u!e6HT4W*-Oao*Al*)M&f z9QH%jm}03{Au`Gt6BbW#YZfBDj?L<;)qdj)(2XWIMqb1PEtft}S5g#?fl9M`pA!q< zP7)#S-Jw9PVkixhKL*E3aZkHlx!TcKc;574xyajmh?Xnt#>l$Rmwle^*cM0Z$AOSv zBok1sm6es9UYSGe2ovP6hcdtukCl%_(@IU}x$gH4#_3^Qcwfjrwm0K@O1Q~?``WJ$ z=TQ2rT%EWXd872PtxbLPUcN?@eVR?bWIRTdT`yUE)Y0x0S17e(-_$pcwN}UWpTplZ zp|oCdX(&dtB@|@r%76YNR~|?qQAUbkhaB1+(xOz^akWo8>CB$f-L7H#nrN}NSog=^ z>=w=<@|xGlM!iHr(5$LfIlm4L`s_FIG#TnS(KAMmZhM9zXWhf{f>!RfiXk#X-=jPza#hHZX%5uvfZd7fXL?A^9rj|!L!&jiTq)~&^M8L(~_ za}E$p;2&z1-zJt&Q4O<8#>$AukqNzN(&H4ImcQ$he zKAfn>)(ZuN40+n|Zmd?ty#F3NdS5_nw-Pn_vI{q#Yphpiand?{DD+|VxN=VP=*t_( zH`)9wxQ8ct>vwr1V<@q`^(`ae!Al_@gK!Uleenz8Gj!UDdL_7JubD(cnR-z;-64Mw z78Z6eOYRlLat-#QmX_9;iWgx(82yYsM?mT)rujsuWkDDi=@(dB!<9R=uWh#7#aQO- zii)~zW7pU*@UFXaZV{q;c3(@s<+}ASei7f0`tS|hh`gX9#~+6XtdH}Iq)ka$ga_2ji{utgyYk34ox9Wf>)G=2#!Xj4`~+u9xw8=Ry>MZpOTovnPx%~A}BB>b{A)o?uh1zlFmN+vuglCN1NA<&ASoY zh-pxLB>exB!v~4$H(c3Wi{D8vu7dE94Y3GARls+^9VgytFfuT70Ge(&0(Uzclfbaq zHIIn`c4>$aa!q}*Su(;_ybHqSVzZlr8(@;;}W$!LjKy~Or*nXZGNuuEKDc(A>^sn!Z%f;ALKWJG?P=nM|- zDINk#JlF2-&UJJdVC0>b>?(BkrL90)G6t2(996j$iX9fJ~$sGy=oKn?<^5;AAj=__+EpJTJ<|Xxz^LoKwL6jX+quGZ23ule7*R za?}GPUj)(TzzGwd%B*Q?ttT2t%D?rvI}tcB8#NDP+vZygl_kSt{WQjM|bV(>Cu4sZdlt(xacFj1_6CUWnM8?M1LY;Syk!>_X@VJg8>Z zHB{Xzh`zXV{QUtB9r|0DJA*_3)yIba8Zj_V5oe6Tu4WMMau8R|xMfhgT7CWyiSD0d z)!dQ!A@=MDsUJf4%ALLYnXkmoOvPl@d2=-C9$J3GJvh5NsPA-Iupk-3AGQMW!EK|) zFT6$|{XvK&=8Q(DGKL3k&%22j{k#ze;_fBjIKTvOGZf%4{VRAO@yO^z@H@GYfbGaF zN=7kXxU^^(=7aKYIg;k(Vy`rIn9dP)4f}I7mOvOP8d+RHN~2KcaO^;oJGE2A_|L_$ zR=O=GCqB6sGaDNpuWjEugq@1a(^&L_-o@HG^Ls#ukJJj4FsgE76#_kU_Z(guM(CCb zq8ddk^FM+42htpu7bXO$x?wB=Bj=(#Z1Kc1xlhi#i0}i6<%hBC*mOQa{6BPDPvdXB zp8YoyrI<}%UOwO^xczD^5B&!w_nDuK@DK<%2shMptm(ck$MLGis2Y|)a{`^1s&#fw zux;SkB{EA2>g^w2LV)U1FQn6mpAHF12ov(s`GU5nO*2|>z*R4N3x(d6#DB5XYsi^k zF`nyjv7pmDnG6Lvx!2XjGxV3GjLR@VY3@7k7Tz8=>ROiX#nqFZTQ{D%WiIgn&I05LfVYc!b^%K?oaU7?0eZ~OLh>>4l$el@c?kHBzYVPW|$ z9iai0kwJ8XO}8dal~^R7oq(T>k~rwcU<%&L*Ajt#jO({;7Y-dO(?D0i{uCC}@#HZl*e~Kpev{6N)bGLbGDS zBjrZuUIX_WiP+p!fdk8ZNgh!Eg&KtP{bnz4zF^+IvhTsa>tynZAZqoMhD3|c{xS^k zUT&}f+53L=rvFC<9}Ya;Bqo6}d)HAZUVwAV zEn)P*ucR|fIRbaCg_%S~$*Z$N%Q~iWm}uNjs?DU$Cx^ikc<^H?5VHrr(iLKvf_j5> zQ)PM@706KK(*-Jt0ADcpwBP&$zl^zd9OL|8tw%la#ScXh87v>@-GfTsM{`V_`rha5 zM?KIj(^XSXx;?;-y&_GNp40^@hbVVN)ZAA$NblU+LC~$i4UEzMF~At?XjK3O(~jHo z%Z;L$=!8tkV20rFnRhfu*8J>nUA`wA2K3()J(J`Cy>KFvpug5B<}kVJu)P+E6Oy)1 zFzz`_AtWME)s$8XG!(|0TucYD$IZUHy~|C1|MH9S8{Ucuq&fe^V{3vvg;%>INfmq* z`3k`dJDl+*goWiij?uQ>v}y zL02$i3Vq;7oA>()jcl>M2R%e7QmhhQnJBzMV-H3@Dl14iy+O%V*k5j+&aaIJVY(#D z&UZ3NdwM{2&QDzSqs|-Y?*W%5v(vgy#vXWW7iwUl?zBKewAAvR_bt83%z07w@1K-M z{{pO&&y+&mI1Wxu$p6Tfh6SG=+ba;K<1!nV& zPn%Dx+M}vPL34;EqzA7hYuV}V?@>v;S9>3W053dGce3n`z`>*BEjMi7PM0;W1&d{i z5i2!u`4El!#d+^yi^qlq?0SB(gEbuZXE$vr@j&DFZh}N8+};m28vM}a&2%DKrM zjF(62(;W_}S{RL@X}gjmxqZ?~0Vt{6P+wC@zJ`X-$ZQFpMlvs_i_i@G1+W7;vqLJ1 zmXMq`z<|Wx{HL4a-$2UpTXCZA{RZXxZsr*dN8ep@=Q)D4z+9IL@YGI`8Lx%O@dnHYH_Q~!VC^{-FVLEo5L>!PGcs;7>WA>LL1xJ_c|9xwa7cv(r-R3AkIx z7{&AFgP;e4-vG`d4>mJfwmEYs(uIKlv5c(jH2~l?HFo9KR8Yy={Z7!CBYJ7eE!@Na z-m1Le1uN1++qN2vP8fJEU@#+Ols z1o%I1?^;e-fcFL_V@L|5pC#Sa<-pvSE(ZJZ`jULWmGOUQ0jDbO+W4#%NYcnS-87E z@kO-@%w+SJZ>5?0*m{=$8{42xL$(6GxYeumBuan{QM*`T*he6LE1L^)VekUPSNr9^w4e!22$EYnj>l{ z5K>;Nw&4%_)}H_gPAbfQe6G+fW*{oq<{pEP**$3Qs{tWA1yUq62940VN(C*<*Jxmg z0XO8B(nP~ynSr3o@&)LT-a8Ufds6W9ISra@4QaLRBa)tc?OsrA_6BRjI+A$ zAF*F*^4TWsLFE9H+QaL<0cf&J`~CX&-y||I`xxh7&~ax$f3I_dguIr0Psc=J*8@U4 zyjNSmd_HceC#_!3QZ+g+8A2k9Yb8mgcL@4rat0!AXZr&bUEK=9_wuhfId5B?gD?(R z-=zhYPJpDfx?3Nf{a#0P|M7*3GH*X7>z!K0O-jHasxY~PKb}%V<3Px-K93YB6!%9WdbGe160(K!cJ1CX6x>?@o*kH{{2I#($NNbPt1XCy+7!GdKE1h<1A_ACK_F}15nbl} z%PpfP@ww8Fe^`~s5Fxkg?YU_jBB9?;V5)D(>*qr@Ta|>6`En3=|G{Pfz9I2X7BYE( zbn`}!pCj+<(F%Pj?{byfe_vs2ub2%L?%yA$wEmAGs~HH3sQudj6dX#9 z0Y?tkG9RVH0@IU{jl@He`Z6cZr}{6U8lEou6QP^{7Nplmh%u^&c%4B{$I^B#G9gZc zi~C4GbZ@!+ANcN34`6oRT=D=o!~zo@eFe`G%t~!P=F{Abn4 z2^x}@Q+!033E&W=NqGE-S0&@rl(Me&j}94$A!el!{|PYE-5Tr^ohX>=%dU!nfv{Qz zy2RU6|4{W;Hxtq&j)AS6>l1y3&;xQNQ834JV*q!!5t_OMo>5v~-QYY#NI$3|AuGY3 z42V~*c`9jooJ66>9YYy;y#*1XQZcB)-kEmx1Bvtw&eQN%ZUXTyhQv|pr3i2aVlYsW zasDCg&KbhkGLg*^I3UYE?XrY!&l;d=I?S5XAL}f&%yHoEUTUix$oB){zJgoC8 zn#4~3^LYRbw)^x~c31V+EO-k6z77bHnforw#>L}D$m~5##c^EFYSXO^JC}@k($$aHL>|q?pwO$Z=Xh!X?_Qg zR>mjvxL7r&14I>UN^2ksrIDJ>VcDf_fdETkJy78?GtD60Qm>z&<+fh}6Mc5=@)%Z| ztWQm(+PNtVMX)`07h4`zI6@%gIXTbkT2}SZ6rMNpH00#$a4v5liGj0&E!bNRh0?pG zlwPwQVmD8E(WyH8avl0%^zHh+=<2nbty}^LWX-Aym{@MnxErR#85Q45mTF7%I+jdT zrw7u!7*9rZN@?j-QJ_fFQxRjbM%1gF73tKE-&--*;fk(s0Es60e}CGKCsbe| z1%y%VFVp}SIEW+osaT*b`|m zM|O?gsnhG(5Qny*YG5V=HMy*$788toq9h@a$?r3yz+#R-L^j-l035UT{|*rSKYzcO zbqo|+#YDOm&#jkCY|br!qhJsrL-g3OSguu^_y__Z^KqL zlDmo>At!J<;4wdZ{plDx#&fEymf#^|IUv3Dobt}E!NtLv0Z7O|myFyyX+Xx5T=A;t zBIM#O_LvhXB6`s*n8pyfK;$nW=W-+-3Q$%xQ`ilPFQ|!rC)*pGwJ@~OVEqM;A}{;} za+NUXu^{!ExU4b553!|0wA~5=z8Ms09@}4@pud70&VGJB<^cR7DjySIxZ`AtNg* zE5M;Al(;Ha5J656GV=)l3?$6S&Em4&_7#$2|c?6rbx+ayy=TRb*@*g zZ|>_F@dUVq%S0hgw&*hix?DIG5rvx);NZ0drev{a?rXdzA~7y4u*jp??HeKiw<%;) zvm@YHK%V+h*Nu;}w^q%J<4J!uz&j&JtTevln-<+HTHX4ytAH(cL@3Nv&M z09%4(s6t)#tJ$D|4e0>X5AWeg!*WwsAY$EUW8Zn=I61m-cb41Rs{6V*=jA<1ju<5C zAa>#sQo^Y$&u3>J5-{)EAo=G#XW^kf0c^Zj*=fTA>u{m3ZK}Cy;wN{Ld*o zlv7S1vMD{-Iy(et40g4YGJ|9g=rccX$+>}CNsr#BGA3t$^ssvBt+X{avx-lR<=XEb zt&!$weng2>v!HuWwAc|y>vJOq?`{yd?(lStArTIseBRn42w{%LpphvYdPdAJ0*ET) zW;0B)5{rje11$g>s_zwi)(f#*f!eb_-=LCe+lg>D{5DK%t?? zdkbv*k;q|eu|^Kz?%L!#hZsHebQw(=8rztcSBD z0QgF>@acpRZ_JwtKDf7~fR>`AC8inzSQ&39q)}p;@DP&oqkZ%Jz(1_Icbl+s_M#bs zq-3snv2m#K8B1P5C@wAJuUScUE~qmubFK@a@}69zi8J2;J>>a8xRK(vp*CpdQyv@Z zDtFoovje6Q339ffA7~X3|HI25;-%bcjrsTtR>3wEl;Ro@b?cc1l82SRX`{!vI<9Kc zGGMJE^FjKu=gL!PR!BLpgk88)pes_O@kgFq%K;sAcpIw4C@D>CUG6Nkpj}e=;ws+u z62iUM_m$s^PXfYFvZMH&iUH)?GuIOC@;PLV>BKRa-s}q@s!rH%!W2cs^8?1) zmJX9Z(N8j=e+(beeM+mwv=h-B_NjK})~nn-??A>DmA}p8;rCE7zuelY2#;OK;EZoWz~{@^?QS^B2x+uTfo z*PPyJah$0gXX|)rQF@lbSBOx7a{Q?~Pn&Ptz-~qUUcgsv&QQtRjyMSIhzlI=TzHgE z7MVl-<_HT7-v}c!iXvHh-RhpFBMih~$zgy6;4}FYF9a+vFz(Oz*2@FScJA@~x zdN(X@%AzxWN9^Y#9+FE!RM?>q*#+)`{EZ!7eR4lptZ59XDJ!G}REqZ;ojqajTL3Cz zdQ%W&=8YFBkKU;RaNNrf%JebN3c4Rp*+$6m5;|yE{iC~C;EK#wBrhdcpTphmp6?3N z%a5N?7bJJ&q=4LRrC~OT@h&^gFR~>8-~*a zu%s)?c?y+NxGM-avO1C&D)sWH4htjR{-xDKiO_*$KOZ?p!P&{S4b-fbHSS65K1`@YCbkVuT<21ny*pZK}?q z3eUpW^v;usG-F*|Ez_$K+8N6q+rcX3h-U>MR+_M3Zb_gpi>wM;8al(APSMsod%R>w>c2qU^sNiA6yU|TwmZq-jNa-jRK z_8y$%qQ?ES*Ha z+(;}7+l`pwj3vNAs}gt%H$)=%5~+c73xOasC3P5qoiR%{`Qts@VC0&2JN8#`rE7Sh z)q~+!wXhI+13+T;7oivI#SwOvszTADVVK>U`%7OYhMP+i=j!piWBn|LCNqCJGkfQ95I z%Sy9yJFL%0*?WUy6><+F$e;lf@2_;a2%GTOPZU;j6-u?)V&u!46pdfqB;_PA?5hi9vmx#p9O zKM+f~A?dVde~@@BOQlCgJk}c!CdP^+}na6 ze_lVzOprfu1sZZhkTcyiGyXqpuZEX(mu2||ZtFEZeuie3NQ4k)rw}2)L zI`2qcU!Vb?OhKp3ccfOrS9h8{M3cS*f!CU5xFVYq{p624XgTFi0J?Ir37$Gs_pb%-UAn9N1i=FfFsSdKW3&*_-@6eJ!{ zN?Eb~Ewy-HrCfsC8P6bY_@lSL?*81U7ov11f`Q9&15V#6V;TA&v1Wk?ae_VYov$^P z(Z3{ttBfDM1-GxpsK7_qO$H?9wTMr8iUs)CL`2A+3*g2Atn<+teu_f7fr6%kO991& zJ~AQ`mGL7#4Y$_(nlPvRszuo|F->d{MxS3S*cT}^OlrUNQEwBJDvAVQCQ=`Vi78mN zc|pbolaMYZ%wX3FVZkCH zkJ$SwyNP?`#f?zYcF!}0z`tzPY&lVF6DXzN&ThhlH~Ww)&Ii?oPamFq_~QX>VzZ}o z)o#EML3%Xk(CQQQ7%|9!);=Xk!E21IM?g>-lRmy2x1GhrhM*R5d>iv#N(IPeOpHQ@ zpe}+Wy6Y{w{|Dp0r~Uu{ literal 0 HcmV?d00001 diff --git a/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-08-t.png b/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-08-t.png new file mode 100644 index 0000000000000000000000000000000000000000..d93a97f8c21762dde76efb85ded41a7724c433b5 GIT binary patch literal 14786 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 literal 0 HcmV?d00001 diff --git a/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-09-t.png b/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-09-t.png new file mode 100644 index 0000000000000000000000000000000000000000..3d739e873b1ad344f6cf68cde9bd88d21598dca0 GIT binary patch literal 15263 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 M3hMG@vSva54FILBNdN!< literal 0 HcmV?d00001 diff --git a/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-10-t.png b/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-10-t.png new file mode 100644 index 0000000000000000000000000000000000000000..cfb75dc718144c1beb7aab42f5841afd1517d86b GIT binary patch literal 15918 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 literal 0 HcmV?d00001 diff --git a/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-11-t.png b/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-11-t.png new file mode 100644 index 0000000000000000000000000000000000000000..4f33ffb042025762fe3f332d165cbb09bab370be GIT binary patch literal 16005 zcmd_RWmJ`I*X~buEV^qMq%_jqij;H+5>k@Vf~0gR0xBRO5(3iQEg*uFASs|or!?%z z{p@G#{qFj-$2dJ(8w0I~eD1@pi3fd?rsPpij zEe;y|1Vy*S3k3y%qN*UPTZx`6qW`XMmPrR%IVX?#;=WsEe(^8d&35H&zj#oTbZnTVzafGA^OB> z^IlPwd^m?34$ChRc@jAsz840&EiCe3Z19sufzx5}@x+q0@MCh?|F6F$8T5@vcyF6u zoE{vyi*FUI!Y*@U8iBDN%+TdBJQ@||k zcU1c9{3M$4mUbvLx==E8Tn~Y}t*!0b+l~rhQCmN1w!W8HI*b?L;^C39GE_dE+?}d& z;KuSfKRNiQ|7rUZ@_JNOH|gF^YS4pPmxa0~zZGW7ER{dMxS<$F!AZHxy78kXC1vi} zX>qhHzja^eh26*p-B1NS`1n$c0z>&_5koo3@r^!vQw(F=p9^(A&NljxjWd6JC*9Mc z@lHxN5ry%~D^7hPMv0@Z(wDV=rX+lJmsW;zY`$i6)ot#F?|JO}?2^7b6X4}VSl>`= zMA&ojF~!rYkg=*q1me{$4v!Yxx9LqlZ7(*iIXges9SwA_ovLJ)ctb3GRtoF1?PSp% zV_0NRw%ng0zCnDCLC9XG+3%S2x{Bs|mBi_~CyUeHa_>6NHA@!Nh&($xN-=vzBkVN2 zK3Ng4`@3k>S%p^5k>uPDc6ivlbw4pf!>q0=yi^6L3BQd&2r$Bpawy8_BoZoA6TJAaC zm$$-SOBmYRU?=?Dn)?*f-qU{>ZINF#YOp6XZiyuZw+0FC)?pVO7>Gi$IoI+j8)bA_ z%O@P=tHpSc;o5jHov7ROn}PJtm7FHa6}`eZCJJ@&N!~S{oveN0(|GhXBQ}!dmSs;| zI`6|^4?mr=mXlS^#0BGr+c)keGv9yBriHXCdeC%our@)lL;BBkcfQARVB(P@HYO|W z?vEAfZp0x6Nlh`@+S-sZqKp#W<{LNbB=#%!3^TR=e9OK6FoZmV+;315G zL4B^hcK-WaK*ni64)J7_u=DKnK|>BowuV}oNZA2`9vdUf3#K^sLvdB3i9cC#q8i?Qf1H3>asQCpwElbSHms36<}j0h zvLeE21fg$%F;hN;g%KK+qZC`HnH5}VEKGgx?d>mJskPLdrL`Gvg`Mx*?T(?L@G*nB z)UmTYvW}=_>7AZSnBBFbSqaQikw}C93{`ZD~dwXYo%$_ zKoCdYl?KkYf>qw*w`T_|lWVKNunlBq4mQyFEW347!UrXeRS*gkTwfkpE7qr~ergK0<%Oia;@ zz+=QUET)o;SDKcQW!~#la&I0(d4hUX%^86&?zt|ro%`4~L@Z`kaA@m(p8EOUAI{lv z`Kw8s`kOzTTNJOQU7KahrE^Vv{dy?hsNVK{kP zZgNIgx6aMlG&b>b<`~0$a-!(P8(&@vD6cBAy)kQf#t;|wS9x1jDTX?c-};V2fV8yq z>w%TWGhdh3l};PKnBMVETE->aa`6hSk%`qEHCWt9#WpR_zCl9CZQ^})IfsGlk%&LVjlabPxTNw6Rc4gBOWg9@YDDuWL9UoxL0yA5rf$G84H)6 zosp>MSP=xdDZGeT!rd3&j=l)b8Eh305)y8FFU#qz=f8jgK6Z)P`~vw4D(2P2m&|n9 z+PQ^nN7*ueDn?UE23$zc2U+(gt73<~Ypt?H zSUuYP2`U+nLlmumCbfugauzMnV~v*Pue0oi7iE8ceK)7&U|Io%`@_Art0_0`Bn2ir&(u@w zc7zkJjeYcjQ(Ma#mB1EAdpG;}%4b<+oe9`Bg&s|Y6^~?PWnpK2hmO(}O%+Yfj@(EW z^Uw}eARILyz2&W(=(4{ujD*JE2uB-w_RAFboAZMSGsW2oo3AqsUKA`?GO;%p+d8mL z{XWw89R1#p-==CaPny1Ut7U>Y(Kt|73;DCxbF%a1Y2jEG#UJ8eBrcs}p@k zScRwFrw`6E5t9^wbMKdn2rJNdvG<*(YlEDXNcJ+jjk3DmgxL`6gS5PZUvWyR6BOizZI|{Dvuh!fW;V0zC~xh<9Tk@ z=p8g|0r&1by_KZ(_tJ;Z9b#;6zx1ZJFQTw7`s{5^r3@lU;VGiZV{4Y7h0Q`Ne=&*u zzE#((J^ETj`Nr>#H$@DH_p5$>ekK#;3$_t~PD8Ii|F>lg-9dk60ku0-tB)|VJpX&d zbiUTLBXW?}9bNKX%i6G?r{Al-gzBrpq>$tr*XHI95ZQB9ZxXfo~dta|9#kkOZc=(28l4?`a_cvJ* z^$m}ii>1#mxeUvD$%F5H1MguMZX7g3jP@doQ?F=9m})-fV11HokA^>L7st-BJEq|A ztlqDI*SW+W_Inerd0e3vm;xwn`(ia7{{Qdf&;E^fOaQA#l82j1l?OLRRHJ0TTK4C$*rhCLG|4fPr-_OQYK389jAZ|YQ`~|yzvw(%YDO`1j!^y{Nq%)e91!c3r*aU)pgjNmRaSYKz zs*0%4<;YRRFq$gG-*6f7EBLsXwf-5&GbMiBig^G)VE-<8+oV9 zcgA$d^U_40C>@fw4F|CNl8Mdj_Qg*W8iJ*?pKYv5QYd1+DW^!iY+i6z0V}<_qMzE{ z{b}uL$zyd?4o0X9O2=JJYor{Da0KNk;g-1d{dyq!Amsl1;`ge~h_>Igw0J^#T9!@W zy|lJTQk5k+LtwuagE8@ceSWDdi1OTA>#!Fi#@DeW;IesysGfW?RpANV&4HH^s?al8U?iVY@@gv=wG8lA)f-oUWB?QJM&GKr>jUtV8IG_|q03EO2~8Em2P=!m2sC6ya3CFPFS%SR5V zcpj|$NM;siKpkN=Va1<^ zI1}fvGLlF9;)Ql>kT9ypMEoOgNxpN<{sPv0R>DT7e>ZaJ=fDstWFmH#`&q*^2g;=E zwZB)|y)1tn7>Y|)7_ohN$vsXNEL1rS1FXmSOo)#rC)(xp5Q~54T$)QV~w_b36j99?W=Z zKDp5*;6L?f&0r_lTiA@pasw_eQc>~)LC~}+wIO=!+-#Sbo&2%I+0jmY-e98a z*X~%lyoTk0*L%P{`fl`g3fX!*`|E z3mA9}aOCLZWHlN5*~9h$KpA!cYFi=L#H*~VwFR4xuwpzeUk)5_U-g4etpWkNc#2s0 z%%fAQ{(*4I<%bt+VGT8&of6XBw)J2VvL6L0q7|8Z;{?Erx&ymjxy{#RudN5(7*Bq| z<{%{?LX(PIo4L@dcmESSP2Y%~9!<`>Y*c0cd?39!MJ-Sa{2qmk9kxQCaVQERBaz%# z5URgoeW`l7Sn4-V;)ktoEsTstd`_A4Vg~#tf1`*jB=eaPR1nGchA2k-p z)l^JwJ-WG1u@!y9H*GNtp5*-ed?%fmt83!tpqJb%&8UHLe%Y`2*W}nNp@{g!*LjnG zF(Z+-nYb*Sn*V=%rCkN|QZ8TbPfXV3}y zp$d|t2D@>QjOhMQG{Acfyb)RhUL_?ZwVCDy{08(gqx3VA8k2f=J23EwWG=(qNt<`< za@hp-T#=O7Ju)D!FUO0GHxFB2JAs(bn%gZ0;Z~rXySumdl2Q$Q;2m6#O)eYjpFd#5 zW?(VJHVZhfvh@V~dI6vUcKQ`jgN+UdG0FW(34RDgUboNeeqq~&9~BCgFR>NDoTHzw z$&zT<6*UIZA9m*FegLGLas(jSC7y>9?gJnx0Y3??9dMqGN)qdkZ<>J3ARxl;48?lI zZ*V}?hDYIKWo5xfmUdr31m6?Z2(G}GdL2}LiWFP!PFA!tE5x|y({7>BJ$0W77;3QN%dwugBZR7e(LrruW zXiuW1vyGa$ZOS-hkM-986P6hPD#}Yrf@)8d20NkbHZ(CowFO{8OZtLPwiUe~}6+-K9Q|gFt`wH6U*I<_P0Jv+0 zx=ej*f*0V-?5SoDlX;0q(c~doKuOfY;xqcA-xK@X-J$1-0naHRU+-V0Kb}P0Qk2qXq!V!?1i? zWh@uKFK~teA6`h|HYjCwb4*3oWN5OGpBW}>hZ}GKRJD3I7cdd)tt?z)pO_CjC02;(EA>QyhMhzN>%Ohn6BjH5{c^44m< za#q1T$i480$ziX;E-{Kv>cv7p8@6(x=P4RO`~cTn!{2bw?jg0Z>nD% zfBRuOhO6$y$r{gloLv7eZ-kJo(&el5Xc9qM7N`iyUMW11#3n84p-kC`sVlvl zXUJig`)VUYf0+e@?fn`j(-kszFBn|5~B5@F&9m zQODFVfGOnYM}3X2sDwH+d52qbOuL{VTvZWEzA`P(&gpX|fUstWxFTUPQ|qmmjeCWH zeTf-sUn2giSPreEtwcof0-l0{?I4U1l(mZ(bByolw=+PMP)6w?^hE!f$yn{WObk>A+-8D*8$r^E(*5;$!*!J?7nth#nnZinh0b<6-e#bL5MH-8ZX zT*pQ{O>k5XoF1)bWj}16_Z>kwMtCQ4>Z?yqbNaIZ+2HODjkla2y@vH}(Vh+1aqIyj z=+>SXnj8;?=f6NhP;nXXLLJOTWy6TBSH5ZPce2mUABKZPlKiMI>2p~~TziR0-Os_m z)KCUT3~cPJsVe*~R}mr7AMFLQWvAfQ5)yso^Yb6Su7zvY3-C)dNHnd(WWv|$e^AS( zW0ty9Sq>8=P)?mjKHLLQyMI#Tb!6=PC5jDLro2i-uu$K)x;O?FRup2>(oZm3X~^J+W%OB`dzCft$Uq|7C5IM327c#cnHKlukI6>DL0Y~uN21s`y+GJ1o) zs&RXgrK*c4ysY9|*qZFIuGiuyy;zM_(T)arw(PQmv zlS$}|YRYqn(EY!$3p82a=PN`{E!0fhh$~GvdsF^OIWuYeH=V@OzXW6UG z#ABros zRqe~v_gDB?=8B6TbUW4-$?*rpn=q8Ae|pHxFxVN^3bHW=HjtX%2fZ6TfNR_{r zcTQsUhCT*cdV%NtomY6ei3Vk9d7AE&U(;i*P&TwLRyR#eO)!W>%FtD>lrByr>5Y2V zMI}%nubzSpzu5aK4Xg%c`>L<`bH($(f)YO<=4J-Xyt%I|5&h{Ww9_LF?L763N1HDi z@8*~3fp0_UkJ*|NU=&7heg3#yER^7YFuTn>keF=NnI5(93X#oVl6${El@@c#PiD@{X|7)Kp-@; zQprEzi ztFZVFzLPe~y+e_>P|f@lhZtYrFXT89>t>*7v-!h!Ixq&q@@T5k4w=HCi{ta zYW-6?=KQ^#I0D8Tl7H(YDUa18uErq`Ta-#!rr=c_P~4B&!Hp`+kod40FDsn*?R^nm zxYz~=hqS#_c?~uZlG*EnNjca`lFZK9>xr-i;=qoU4y+zzH9_pcZ3Q#{Wfu4{z||^m z1PdBNdxk4)GzM&X*-#n8+}Qx8_x*At1a@^YF90bJZMQe66fnntx#!I#Fucdd$Nq45 zq7<RB&|`*sxpLlLa;ah zn`pTWQtoG_s0^_GPIW#lv`e;WQ#*8)wRyAO!iz-65i{)e> ztZHvKM_Dmn|5Jt~34LMA$m!wMr^kvcB0`AqPi8#Irw41lYnjXe(X*Bt|1(^_GkVA}YX%P10X=+DZKII@lXF%pchZT=Je#Ga63>r z5brab5;(&4H6FOHb{v0HvqXcr5w(8uX+H}pX)X20FmV(~$X8b(@_#uF0NOCi7_N_# zdjdcgpOPz;RfBODg*;es<{BBVg&>K$$fF(*o(jF`;x%sQYVC2igF`~Rp!!?)Q;y19 zuU6!Wv^azTFY~p7FiovVepk4thmDn=XPxQ-d@DE(?(2bDK>{qkSyxjzT6L=y-=bBd z`^J<99DA68vFjD3K6qD^hj8NS#1s?9vT1XjGPin9q{wYlnZK4L_a7DYYr17}jFA7W zqRx&pIPiONLZ1f3Gg~b5e<7#m#-_3r@f%*?=-ipBzP`GQlO$A>$7GB6DZ2 zB6U!WMasj-8|0z+aW!L8sDzX)mYdUc`L=7GCi1|R6Oxj$=I_A_OX*Y=ni*uGLpVvTvtogR16(fn!PskTl#RyhvdHs zYvQT;FJ$&MlA&S*`>J^Z>wllFGN?bi@n?Og5SOq*N&_X!0w%%=VM<}*>R>t)VW2a# z_xo#cIF!R1^+Yy!u1pvMoEvy7=A&LrIFP_2HBI^WZAL++&JWu2_ysB|>eO-&*>yQ{ z^Lcx^Z3ps5-~6(ZLU&;jDCDG*d6T-3YjMr)g@LM4ov3Uu28?(Os_e%G)5Sf6R}KL| zAKWeavCWh8B@(8hY7hu8y$r(D=~%eaJKd@Y6gGL9hFs+gKPJS5tLPL>kgb}W=Yh!* zD9`=XG5kUGE5YpD89|c0nJWE1Vde-#R_4k5Yw>ovdhbORrXr@H3PMC>J~-<<)tvts zd<*~)tPiMXRjTDD{iQvJn0A=2)=i&TqawN}sN4AyI;XN`Gqv=y#?68!Rzm{kB2N;4 zbiujiNRg>qU=}$rqu-kJXoKNiq94JUE!1|z($!G7MhzGh=#hs9J!z9=mf=;Dm+O-P zYN>F@L^tB?e75IhO_%fPTb}+ym1PLrt-M?_djq2|{?}YNmi|9-WgK49yub5-XP|N- zdgt*Cek9&Ig;B;#%Sgf96z<+HZQ?_9Dya8~ULh3HPq=wdS7FI@({dRQs80xH5hd6c zDOFc!OoeK^;6C>Ksm(ue-uG)CkGp4F^t%4+#65k{G)Ddg_X?6Idannav)yO5!@Lpp zYq>YE<6w(5vo-d9>77iS?04!2?)+H@8RV>7MTA11I!V<{CjwV*#jW>0z3mrtcDxtf zaE*eDR6qJPu76jk>>0IF*$Nn$S{*;uT6Mo$n|`cI>9VmNp|lP}8LF-bP{SgZ(p@`Y zJ2(JdL)TH4CFMd97Hon;{~52BhZ+x#sgH%f;j%2X(EI+UT=PHYoBf}!;%u2Y*XXmj zwH2^2C8XHfungi6!k|RBxLToSRNJ?)Xg`R8{=2+5Y@uM;O7>VAha~D2m{&dcXT)8_ zG**p_`8oItNTu@Y74a$u=8+)~^A>3kjJSR`xkx4m4c<|IxCf5=`PmsW;G_58mRF0n zdzr7BC>+i!bIM)dM+63ip+ey48>CR6JcOq}?TZIw4b=|j_EW{i!phggt^1PRJv;fF zo(KUEZBU4iAI^nh+4RJ7bNU!~xoq!if!_e!$BY*eWz|rQKZ1mm^4-V52TChB_9NJJ zeq-}{*&;|YgQlwhZMH(>iyL?4jAtz*AJ{Jf)U0uuY42|f!GgkWhOK-vaT9Y}70IDkKTG;y)L&@t!8Ji`a6C+Mhba-ohM1`pZjk`PnK*odWh zg$~_#8i5bUrE}yN@}Z_C!h|}JMC)g+S}O1q7Wc82*kr#z40?*8Wnavtm4RfmDtowA zbs8c&>wlgHzZ3o#lDI}qw-{-z`{Lr_w(%1<>nNg~WkLZP8n1(4Aa5pQlVv>7@UF!k zy$U#5!1hv-S9m@U)(e?M*gv}&Sk{aJ3{ZNtO>dH8%)4(2t9f!!~P(AmiarnO#OrH@dAIux@Di-@ztpiYWN z&O?(WXW3#{Xbw(XMnNH>yn03;Pb7{}lA|3!|3YQsNTw`$(yOE|0&?DOZyDdFkd->y zmQTH{YFPjMXa`C^uvU-_?N8g&cpfx*LteCqA%SzEnGU()z4KF)0lR=g#24Y`@4pji z&d!@zzQN%-o#b|T;qQljWD-#X16|Ng88Ay~OP=(2A{kL$mkfecIWV4H9UPcea0vU? zB=(n<8Zl1}H%)PH9eeBGG)lQGMHJc8Vo|-dLH5Dc-uaUhP7Mi39Nu*5Nnf0a7z_UL z?!FHky>9bfUXrv(QWB}lvnP2BZ*Dtspx+68n{XJj{rea?w*pT8vg$jjbBJ`v$;-2} z9NZ>Ys_K$~aNhI|8-X4q2IkWN${t5VCErfL34#sF;Raf!`SRjvPu8}p_6Ifg-Ofm| zhy1);^n#6{T@v6>HX}6zVW6XME;du}XS!|=68sNsJnkBV;D9N!`(B#0C;|?-=OFKH z%HR}^Mg~#G4;zsn}P7;QI!x^tQx>5+lq1$(5I(2J_V^XI_q|J*#&~EJO`WHsT@lf7YCmLCYw^KrP$V3th3rtW-2|DG*apOh+VW2ZKzTR z!z=-XfZWmHel6sXTs^qG38?yFSeePR<(WS~6K%8S#<5CybmmZd+0oV+q(ov!n%PVO z1>2*0(8!J%cswr}hcy zpg>=}_o>Rr@PJB^^67}yp3w$tps!Ql z!Dsd$?LBn*(0p)ITzM`lB-a+kZ{wvhA)iVh(%`gN2B<1!c1&OzYgA^kkR&SM60Lo% zD~KN)L3Ghu;ZB1NvCQ5PP>!H!>q~lb0{Cn)hf(UR@4-xJP#|7}U>&)_h#r zJPUF3`8=<^2aZYd8@pTC9OzgCY(|xAa%2-@dDFf4?VE z2%XuBul=FT_uN+j=Lh;~Dh|=J_f0;i(d5}VHTC0pYMP9?mz50+I3e5HH`d*U|q9FaOwPKbrvtXe>Jgk-#s#@tOMQsyNZXKYxj`RR^2WL$hN zdfy{bds18bNCE6^2&!T-!Lct_G7NE(a-`4qM<5D1O;7nsJBcilK&9#riC{#TX0FUo zCXUZm#P>y|#H2vwkj{_g%QVGKiRCmxc`U4MRKL?vPcfM$eM4v-mH%x|vc~^gX*crX zdC(xs3fW?3WDfcnq!(9)E2W7-qD4QMpluD<<0nX6K;X~q_h76b8Wt4Crjd<6y`r6< zS=>bx2o@;1sJX7(3i0fWV=$&6)?W3bb1UsO-n!;BCxd^qyOX1G!Ej7As&c^MH)bGv zphPP-OE-JLQ^?GKT7zS!nXZj;HO;rwxK36sp5wC6p8w+N5dyZ9KZCv>DW^M1Gk(vL zf0o7fl@W0T7J~2r2ZyZPyY6uG3o5ZoqYp!hAms3`BuVoI2!GQU7XWy-EFa>3d|O=| zx5--~>qFsN6{ZQ#3G@(wPD#eAD3^@YYq|vzQ~BgU#@!O-ihc!>T}H$pcO0b7uALS= z7B^UE7x9ds;+X}&gb3>MlYbTM5PXWH!IN?NU0%XHnB;yYFyn7=% z5GvnL42i5%5(?Gf( zxY79(w@1b@Y^gs*V+k6uSd-ZrR1cXqas>N7a?!LBC-_&Lk>;v0FBXn=7W@9L+|45v z_mG7kKrZQXt{!OB2Tll+!kIy{3GnsX_v!ln=2;<-1F3xSx6hCb!Rd0uzuS^~rPppQFQbkqOC5(J;w&`j5-_M{A^hh1B(h?3s zT(s%O*?!Pggg=iqmNp6GH4{%AS21&T4GG`eS9s5GHOm_g^FE<9P3hcO%u3pF(TOuYJaT2+rC{Pq<2lF-&!J(|$PY_)bDfifkz= z_Zf*wIE>zo4xOS0WAp*xG+QcB!EptQx zQp>r|TwY-9+y`2%(EW|Bq>Ht44d+sC3!Y=iB*=g4qy;L$cYlRN_!Ne2C~X%o!G;IL zZb|a3tvmgF!c@D8G?26wRDUC=YVZ5>?|P7YEKQun6f{j@MhV+5(l8gq41lILwD(@O0XmGDX@#9)=I7xZYhxhG^am|vq=h_3)`=lHR054@kRR`r!3Hmp z9<5bbReYpk?}7hsC$t_j>E@03NWU$fo%INXySI#A9XK1 z@N4ru^fNd*I%@5+e5hCbyETd1l(vw~=XTLggX{A&E5$E+-Rt(eCFB~Tw+SmHG?|9i z0rL|yR-IkCmhUd>klajiVfq?Bwg!elTW8v)qXfNK7~^92)a#2RPNg-p zb%XoMAB}B0N{HpcUC4&ypfZ5$weA;ClSo6iW3rU@>fomtH``mnuVv^Kt6elhQ>e$)HLU#_$NE$M@8Kah^*Xn=!0#R|5Pw8T1px=0$bx-& zFZ1)$$gdFje^p^4C9(`vfj1(bvfU@ND>ML)mG(6u@kLO4X@YbfT23T0Rr1vYF2ZN# za&gGH2Xvpg!{5!B=uZ6AASSMyQGp4Huyo8^O%R_12nC1dJO=1_!uR?yA=E3d}^8Wk_Y<>3h6=e_TJ&p7uT(q~ll)IlBQWmr8)f z6z&vScO(htBeu!;m-8A7i8)efY6uOMcI*?e+0vt}qo%vBKC!%x7n@qXT#qZeXF2%x z?yKstN0o!(yP<^iWeCRLRCyXX1Y?)N{HM!MeCqtGub?_ni;IizXJIpTsagI1{&k*R z^~L4Ic?d2!otWo-Ujj4tqo%$zLHi^QZSl*q7bYeqa^W6oW)T&~c=X~lm(&6_se2e+ zM_aZNl}kTLbT?yfK78XmoFj)%Eua;giou_piha8(E-vn-Ce6?R4k?F~F}FsZLbK<= zxBQ2=f7^qwVyO5HD$OI9x+n@Ox*S9;vN}6DCTs1v?`V0$bM(g1o7CDFJ2-q0TFrWx zCNNfJ{9^c1iEjC$7Vii@Qbt}p_ziKrc>D9+QG=Nh+Z>{rjFrG1pi6u0z`@Or++Z#(O;_6MH~M|t6?;{0k7?5-3I4p?t+dB zJ)HWLi~UKrGHSx|V=3?Eo3;l=T))ZnsL8#>`|r+-(^CKDcm;D)oRH&umu03;GSA}< zcqE_WUttqfmT~kFzCUYhVUG&Kb){moyWC*`xsB==(6k1g1tqd;M*2T9=|-{qn$B)m zv$41Ic{7&&o>QKFmBmos@?fT6oQ%}x6mAKtA%>=5Pn!C^V(pT{&7ZpI%(wn54{{rP zTnW5}yAjK*2djD%fR2@@e(e6&?`qAdtXq0Kzeq0kCCCI*3)%_U5>ZgFbu@b&Y2o?5 z5#iV-n$!RC`mSYXD1NSdTn|co)li@9&zjX9wWS7^b*A}ODJH&uZ}fbcs(-=Dv)FgM zy8y?=e3PE^a!}&Z$oyDm#e1UiX`dGB!#7$4qs7|murZPD*duz+OaHoW+)wHV!Hqh! znW%hsKZeTH5@{L16&N2+gv_Ej+McZycx6OqF!}ekT2VCR-Qpc7990}~tH0~zt*okV zY3`7C&b0+Re8Z>T?8*O#%czb>KJR>g_4_-q{-Z{>?fZpny+5n1kA~&x+dTrNTK)V; zc9&ixgp810uKg%6vkCV)*zKjy&0^taG7`X)+@5JB-Nh`d7}0|Rg%#8F8j;#VNH1<9 z7Sctz#&hy+^i);+FU#zuTxO-nOtJQ@vCLSsa9^`Z^G~G(b3zO}!M6fvGHE=Hcd~W* z>3xr-)*Dbr$4JlYThDcZB`%I-bkAVxih@ky#eF=zgZq?HxU{>JvU)h4m+rcM3F@IC zkW1OnE7Ew^a=O)siBFaHAPMIw(Mkis0LmI^|96sGI?5P}+jGwQ>tlom@fg^|a|$y} z9!DD!X11lT;vDXO414mpaBsVD0JWlj_z=2|l&@~8-Zw9>i8?!A*I!=?EKtpqo<7(_hj`Xrpr|#R>3go&lfE0 zWK%^y7xy{YhuFEj7GA8<9Z3rL%9XWHVFo@+s7%beo;Pv5qATa8M}CJBmi;v=mXOR{EnPy(;G=P1 zN-iyi(fg{^gs8b5J=8AId8lh<&ST}$OBB*M@2>dg_rNPpWaRI$a+9#!>~o}df_m=# zcZ#oiCTC`6O)&3L8IIlch^!D-uU9I{tlVJO#nhE|#~sm=i{Yn>^B98nBYh0(b5kY# z!&_-C)oo7y!U4IPL0E)zyidBI7HP8-X_q7;aLKtuy$(wcw5+TOA9=BmW8c^seV<0N zI#pja&53yvqMXkvzE8~)8~xWb12;QX>&e=!b+PKlj~^R1I3x9Sd+5cz>kcK_bTzs} z3o9b2tVQ2?=isoq7D?saMDvNPX( zcV1!V8V1JM>Fi}P8@GHc&B+!@unQ!t?{1W)(b;ys+cRQDoS`K&vJwR<8Q;o!A$9KC z)>+{ZA~Go`D8lL0X6HjF?!u1syV4uL`o7~8A8}-Sp10#KF(1=)wxkK6_O>fGg@$#^ui zAeZ%M=}GwQapHSyY<-@Q6cDgkJ#X$uQ&^!+zJQH{+LC(_FXnX!wczx)>x+f=SNHuD zFrv?ON*ttJuFGWU3AHW@6o(zSSMe!xu`~V1! zXI)tVtieRYw4#?<_RIhLvWE*~OSWCjL!6yBL;`wcl&i}4kJ%gqiT&#z(q+a~~;&HH+1S&Oc z`%2DH@mZn7)QY_2d-kn6ihLoFiNzwT=cORt?Yn%OuA(c_AvpJ*zqd~2Hkrwh!#%Hb zUi~(-xB0VH#utJQ6pw1U5bBXEk{DghOtF+matp!i913<$8+sLpxGLo zS2Z9+mfS(of{sP!Pwv8*QD>nMaV~RTMZ^AsK)s zB_-8w+tJYhlE?oW{HMC?@ocN~zxgK2`>5Y>)4wYPQ4j2fI*_dkP*T6j9!;$!Sg5EDEj z$!5|b>O5J|Ufz1)2}=HZfoiUJ*_0_P5GjY2LMqSWx1t^ok~oqCYz<6IW(}&J(@OYG zJ@cx&2TM8l@`e&T`3~(}%dgRgG1P(=e+DHwPZ14Vzhizb zBP~tBi}Jjbc0}*)u75!2x_Z6S61W%B`DziDi?hEVUSW+52Ya9l*W~}XsQER?EabA5 zh=5J0^<`_Kqr^;j0@?du?T3u>GqG^r8oTKe&>O0m;?rf#nVIxG<4qoa;CxUFPL@k@>8QpHX`lEzg^mg<(z2BL7 zk1L$6?ER`L$TX>PsZ)Erzq5PQu*#F-}zZ zk5d^Z$RF!^E?rNgxZ&b+1}6h-NeUxIN*;(+CmOqJ(h>*-sxpJ>2eU^0<)e*m_R*Go zZ2io6u&HI09)_^)uLLN*flCPK5f|4SEV}CO;~s z=!6o`o~#yRKDZq!O2z7}C1>OuVi1o&XsJK%^+EqXX+i z+p*L&%xk;Pe-!IWDCnn?3$dzfvk%>1^)?Y{f3_)JfG_ui`uT1CQNtaGrSbrqF>q%{ z;UWqKSX?H_u&fkUOU-=c2sYI%T%i}gqu0xbC^|m-|IE>*M0a|N-v@qP+CZ&f(V1Gd zs3CGbvC49AEtyH^gu9F8pJxs8Wa)FtdxPqiFT+W@WD60wG`C$MRCx-h|^^^ z+)C5*kL>;SPD$Oj!muH@zYb!s(w+2{j+Vet|1MQJ8h!7ULb}jY?+>*r`L-@5J0_XC zpY1{$@*BJbDZ2)X-^E!DDjP;rgZxd?kr$`n719NU-Z}KLywT)AG>#*%u|YHmMlKWv zDA+{l5qEFF`IElChM%2N`E(w<%bd#K@mAlKRGsg6gKKW-oZFm2xN%{HPGLpp_32Ey zss;qWk#VRVr-z%cEJe$f%~~^_);i`M+s#L^k{w^4t^S7RXA=6sb1OSL`{Lr_mTsB% z#o4__IbUL&a01)s=H?QZ3DY?$g^4Y;iX)$qctMDaaG)y;XNl$$U<0P|6tAyO z06gh5A*%QOyI0m2h#57@>v!R;_3^;bNT${IJU%h;IbKr)9Od=*6OjBTTKz6d^{XZi zMvF9WviCx*B1WdOV9FF)3val}DVU1ou=)z?H1z%2|@i zr7C;c6*{WvK$E2^{50RvMylMQawdj~Zm1g|PgL~F+8-j4XCaz7?GAyZZll6-gh>!c zAmhJyuE8_ptgm1>(gy<^SoQOHug)dSuq_3&gIc1Mjq)Cd9HzTKN?M)KXuHRJg-kEEMI=V4gtt1%aJKN-; z+1k~_xr7v=a$tfScGyjBQg@vA;R8=_jKTYCZTL~|y+v%T2ZU8%VkbCpT`;kABwgs7ykh?xKA>VDzWdIU?f;Zl_4R|}`qQN$8 zD$s#iyXg+=INmC7g}~^17FWL)Q1F1Ab(o~J&J?KBtH6%&CI* zZ(Wplgb>H9WxA(^t250aPA_%{oVhgG;$?1NycY4{evRT%s-BBE^NyAX)eea!>3)Bw zwY2v-t8%#WW6&(Td7A={+rpmc8GQFRxph+^p5aXCP)E~>^=d`Pe^rF_E* z2OLb6GBW1tCy|44XB3YsR%V*LAVnTOBubvQbX*o>w8wj1$~>a?Vn;bLh)6oTclV2( zYcP@Y69ko&G=i7pf5F#8caB2@0@0T#(R#XR0ta>>PU7V6-wbgdVLrZ(pjVgrlS=d| zo`4=CVdN#`Pi}hrq*rqG->Y8{`+F~bD@T!Ws-z2L$DRFM&V&Qx{{c8#oWzA5lGyCO z3R=ttwQOm>%k$dPP2gXK<&VTxYMV;6iZmuaK07}@UqXbU_Nanf{gtXLb@^DhXK1!kJTweh>a8T-WqY{vaPJv)N2d3{0ehAd{4mvf6R!8@t^oUMOR z0AZzHX|9;WLE6F`sPoZ&s;=TIk8mZ(dn*3tS^DjP*LIWfDDQx_u{qxP#mLAQNrA#Y zO7Oh&_3@m&|0RHSWjWG1x=ioAPjJ#ZtW+wQDv%i0|7X!*t z*wm$kuc+qhJ5QOsadB2S4QueWH$Fc5-r&0VTx@=M89qVDjz&Bjg6H4!V-EU&1A85A z+%xOJE7;`Kilq~aM9o*&kcz3M1A~AKj%WxSlj{05P-8}xhi^#yR+;1?8OB0+QGN{H z6&Rr%VEB?DLjI!CRkA0RHp-gKsE%g}m6Q^&dx-ey{%TM-9`~;c$gP7e=UjMr(SrX* z>Pi|ny1sAG>WTwcK}P9IgiA&B8Ny7t z=UDXKSqe6iz}!5qJ;};V3+hq6g{IY2ypBRC_Fgc-_}yY)6gjtni}3_R$d`;G;Hi%= zRtgW?|EX-(@c*G~5%Mz5wCBt`BMoIXCbr-56z7YtaH#^ae;15G1j=P!@p``iE3btt zEPFLm1vF)-*5zc6?q5}4hUce1#?vi|%#(F$ydEWmK|YoW!o<%~9hwG-KHrB!tu_!R ze$sc~rH)IC8n6a>E?!Z#l!IWnSD-W|j#h+K8Z6xb#gJsu?je9KX>rGS3@+?IBSH!u zQ-8C4VK_bzlE1%ZP?MJ{+=eE_h~9QPx*IVQJL}uN&M?9RoggwMBpDIW2eV#+%}@p& zExMd!`~+^}h7phhv%aVJcW~Hu9+W-`VlM3Ktasm;LtRu9;CZnAqa=)=1bCpRhm*D0 zW>Xt)MM)<@xF~Gf`X&kVbSivQs3W@suBuAy94b1#3Hn4C*b`=F4SO;x!oYHnMPeTU zn%=Jev_yh}m9%(RatCu!lscZ8|2d!IyllqH@3v|&*yTN(>0(|wwIuDsevH5Wv01po z{6pL(EjB-jN$2?+7s4ad&gAattr7FegJb{s@fq`)JLC?;PqW~x`3kW4i6$Fl2HAJE zmY2iYs-AR5_WypgstMf@*WsJqG>y!_c{@cQI@{VP;`5hos9E+gX$_PNsq% zIV~SY7ZN=}EiL!-bC=7?PF*iwztHx35R zY%|?Z4G9VI-pHS-N5AZw`EON5Q}CiOGUAM~8H(5vk&v)R2mjm%4GldxJuNq?--G9K zkJzX0XWw}m7!(9Nf!&tqaHh@?J&oVCIaOg)Xzti#HF&UMV<4%O{L6;|_H2vT<-*G{vFY&#O)5@&&dABc_ z67;0DJ~U%PfQEspn9m8xkLSatLQ>Ecb(+?G#rjZ|0(b<(MrnacrZ{IqtS`}#RH0#Q z8J8`yX;)okjl75a?DK2?k(fmjEvgnMJz|JY4Whbr2Ygp}GFHqEmLtu)?9)baq;QPW z3jjKVbfR@&ZXhSFCc8e*5O#S!JPfHCAXEz!b`$SiIrq%K4+L}pg(Q1H#&@?osI4&fLr(D(>Sy_e9TYwSE2gjmivGd06)CC zzFrd7CbtGce1>2g2$>TNv{$y%{VSGZ8}6F!|5IGoddjf7_$~{>6}JBj@#BxRTGz z-LAR$a|cb)G@-9|&L`UTWfKQ}$!JMY_7@&4R7c@>oY z?~+&;7=;S++uO4hX1&mwe){RwN(2XS?Z!f%JQt^!1(x#T)h_9((5GUJ}H_K7|!5I^neFSM~Ya+e>hDtUPn{ z0PrF?r-3ujv&w2cc-@|E6a=Lwr|<>jUxoBWo)A;XI<(`zH}3i#O}hbxocQn)tz1mrX6&t3;>H@J;$VpaO6L#dQR1H)>m zeZZW6p!~(1_b`o2J7MQA^M}5u+Z|634nN{v;t~*iP36r!*Z?cGR4=9YinZBsA@nqD zGc+XR{9w!kgc$%E)mN-BBKGxOM_f&GMv|Z#r=G>RlSy;~U)a$EB=)tpuUGjjMJA?N zI))!h)lM+dv+s)ICEupJsX|jIz54APh*PA5?->9-CVWeuK(YP_Xndv&X*C6>{K|Q8 z&Jcli4QG5+xa}vT$ugUUB?}*#b_-y4#H`Ax(E9?<`q=#B z;rgX0+A?hDsPoLMfEttA@a1;vC0C&Dn`YX}<6a3_A?VLVhC`x-%~zFZ(r;6nfMR~S z-74X8;@o)X>+4Hl0o}qXaXFGrQ1EHMc|k7ytOju70sn>?)#`KV+89T{`$RT@NscLP zfQ2rM$~uI~`VO65_i%-o{4iax4V&r$ccc)~%oLo*9W(pdfWP_^PV84)^$s*i>vn;I zxem9E#({&mXS*}wwH*QVE6)fm38q!v^}#qvh-!cu2|3|(lF}vw7(CDc^BowU0154q z@T-Qw3qgp>eAr9xmsl}fV{6Ff1G0Hv9vWXNbe(wp$(&I$a}mHy?vLvJLfgqcmc@*# zKwOC{P5@Gw;ywnfk5+{FBqhu>C$tJc9Nr<;Db-_Ki|tdI;JEqicS(6m%x&%aVdwj#3bp%WG@_Sbypz9Y1XyKC6?cbwk$9kqOjgj=~E4Hz{pr=vwK@3*vT7mG!sL1k&Ch9Nc6u4r*!-A zj53hNgXZtdv-eh=1nj`nirO%1lgfU9p0$X|@I5JvVul|~_X+d8uc>4d3FllHS!$0)pV1`K8J^F|b{{H^7BCb|~i*O`4 zicR;(8JmXg+`g@hAw={6Xtz(4j#5}-4Y#6kG;jwo=J}Yvp~dfg`n}1 zj-%@9YVRCvGQWp1RY0PHZFX;y?0hI$V|{kK+u**b|B)EtcKjJS?aj&65@rP6ucr)E z`Tre@z7cZF;o4XcDC}9`h}3lEe8g?$^kRZNg7jZpl#17&MCZNpU+JJ!1nJ|%pm$tI zTIYA&4K{s|;#*Min9%4@Iaq+J8@G7ZPk+0i)pLG!7T*odKBux?_e2X^sqy~m3RZVS zr;ibS2vtd8#f*$I{(ha~!pE}Qp(!}3;La8YGfntVLQK_pMj@V54R?v&J5q7OG9=ypK+mb6+aaBr( z_p*>0tBnQ#gKTw)10JmYOqOk?38)OMJq^HQq~p7QisC>vH#hR$aLkiTJ})?s=*Mo2 zfyjR(CU3c42ZT1}I|Tm+q9PN<#~NpZUDjBl{sIV%K#)j-F<&ByyvJ$q@q=~i)6Zm2 z@1iQcWKmCeT$*r%*gqX?c75~@r)4brIjDx~Pw=F^YBmA7&o}nFjR$W%Lp0qLg+)F- zm+mY*#b(gj04dWq)Q32I_AM_0Arp!RLujuLM&J?T#(pU?ZUy-}zB6XTh(6gufBfm? zjhuBS?S|I~wv@p){GTVqd3e+sMI8cV5jZ#o*66-5Ou%?_Op@$a(fCJ|a~ji(fwmL< z&)6vbrSwF4IGh6VTRLA3&{@^+!)`H}p&R4V3Tru8sxj}=rOyH0(09OVA^m_eW5>Cx%9lwViSl@xyzuwg-Nj2_e4Oi)TA_4f&A z;D&c!6Qlslb{^uiYjUUmO zOrzVWI}X||E9q2Ic^JQiKppOlulYHRq{m4ac=PqU$vvq+j9(^|wQr>F{^QvYakk@e zcdotEQF~(b=$}xOq;40WC|lCXG&U2)k2HUO6q1a)=6(JSg990#Y3u(lR8%eamIg0_ zV>QL=AzeI*t~exF6o}w3rEdGc^{&DBulCY26eD`_g%!W&UXx%k1{1~oX=RTciz+zW-g!+8ySCzHeb~D=Xlrb z>~!(dD{}5fT~XwAggee?=;+4#fG^Ww5R{C|NJu?LmgBI_<4=BTt3)vTWD2LDjvRKJ zvow>eGokNCro~o&1qv&QEGYNDN{>P9xz|IZ5>%uv;4LuWU^7E<6EdK=aWw0l@iJCg(U$3I?-cz_k|^BS^xz$fpNV2hiO3fzV-IXBliU6lLLIA zQxCBiibpx`{yYT$vc+w~nk$vc@!-tP>~Ld(;v0+@sIeTj@kPHTMf+lsh`;~o)lHb| zbOUX@-VO$7eikZW>7!<0a1C~@q{PJEAbmiGah%o<^b@y0{FWXJU_e17WwfWYqg(+n zZnd5c10nFSI^RmGqzSxt=YuKa_nHL+qU$?Gb1;1=MAro90M@o8&6Yq`;~0Fg#h z@js9w%;V0JMQwpW#l;piV}%qhTH>M9mo5w;PeMhCVW>s}nPpL@pp|sMu2pbTIW?C^Cp~kAiEi0#dxn%zH036A-miv1aB+iZmY!1d zSw{u2n{rznNSNQX$3NbDjrhry%~6UNsB=CD54mn;55)7UWvLOrGr_+jWL$y$e@ z9b&RS&~|OO(J~AI2YImWT#yg4X`weREaQiK$GYq|_#MDnG^fu-3Xx?JW33cmK$D4!kTqY7rKQ#?)kErXRpovW zE30=|Pe%M&rTfPEQnT`c6X9VUJ}znbIr$+53q27Uv;f;G@V~`!c(yf?pe9dljeu}4 z?Mo-i@IBj=_w(~pCY-NaX3c&GX5Nl)`)5dzkQ;iQN$_xi->e&f`DAD~pv(HlMX*U(;+5`iOk5{;25$2` z7H@9b0J*-mgPZ?0dsNglWd-3)YW;XCGE}(`fNa77lJ38R%IhRkajDc=~uCpo0a( z26>Ke6YXoPrje3H)8hE+V3#i*AL&n?WR->`hTvfFeIKRdd~CNP(k3VO*4RjZA{K3$r&Bl8Pwk)g?5 znP=E!_sMeW`VJG$ih(plKzxi8$ER6LV$I{CU36c#MUc?%|Erc5J%*AOCWcg+oup@; zFbND@o-IrK5{ja)oxBfYT8W(G0d05R93k4=f-MQDXq2Z)Cd->8f!TMx@lMVtak_DrRD6=ab$iBGS8B;v!7j`6olOsU zHy8Q$A24ftaL`%ZE5B}omu~XKb^iPl8ig@Y6}rx|jqwU$M*s36-Oo0&EzNL)pkYa5 zyD4|9vn{_sm)AsRXUp@(Vu<< zqOC`6A6^maBAHMC(F7*O$v8p&^yOE{Y;L$(!Q=6=#otj%ceDdJrJUgwDq&sywO?mq ztfU$`7q=95z;!Ef>FK9GjUh=)v}JX8F3z{3EjNT3+|z)q2*cV@DsWdJ@6Xr1&haEN z_4{eUF2#L)KZKeuiDIt;?fvQ`G+$O*<|mtP&R@X@z7}dhGcl{!l;Gf&IO!;68uceXBguQ;}3<3Vd}?W zxD#nP{w@icsW7&~<;~<;Dc}3PT4by>pX-dW*&K%~%HW;Ur00B7CW_R|jtGXEBnNz#EwF zM-wgUe)T>0p=);-5svffDX`ehSmp!NyZE}ayx&0!K&@on+Oh~!zTt#a=;+8DcB8T4 zF^GQ$>?AD`v-x8?^Vu zdLDVs4z|Ey!(QF02rMtR$D!uBBWlI|SCiqVvrwQf&(XMXD`~-X|3}Yl4f4vB68n>1 zb_l-Vd5ng~R%zZhW>$F{CZ^NRp$!ICWVS473lnqFQJzW`KRn8kiVoqp7Kka=XDGi| zLoKI)Mu$&a-k)swu|cliVkA8@z0cUl0ds@g+k740g5uL8u4eL$@w*mZ6etOV!?I>m z8Klr?=eP}Pl#lYy9Vv{WJ(h^wEp-h2_ji{w{oZn$i02`P{sJ1$;KKU&B!+PR0fqdX zr~NE}W|1=7lpmR4a-rWnUZd79KIqk z8)SqWfdP_uz}_&`RlVZ(z5;f_GflBdZv^dUb!qr76f2dF+_jDHCJ2x9pFTT+0QMD4T6ozB#ic`$kKWDgEi91!Ty>+ zQm$yTAh%f`H^@ujl24l$t7sjS0JxYgT$Pv6+m1IuCQhh}5pPfk}jNn?{H2&V0H>uN{ zdsN02(H*p@`3cbNd#%ZP5IU9*6>{&c@WWNT_Bhs8G`_+GxJ*|D=vzsw3X%OiZFT9U z6a*gMeFZS;a=vh#>-%Z-jK?x<9($LhJSS;*WK*)b-*r??w3m1wk=1J6b7$DOt_8w8 zt-=i){a7f~>pvLkv>KCI%fQ!vk{3waRKJ5jLKEf&u5W^|)Z^=pwciB|u9JNDt+HJq z`}PDlF4I++^0+s7Y_RQJA%le@Tzj2PK~d2ml;lr~&uMziC(s8v#MYSU@wGt+4VqE5 zpHx+0VNr$>M*ch|BB`SaCftreVO#q#3L=NVK%?+?_xT&R!d{~n?4RK0z0{Uv5aaMs zdBgX~lO~y#)eQQ5o(JL6$-O#rQtR;&O*goX9|^}SFsW{GTJ`<~V;Y~KxFIQ-zmDTM zPe}OQ%kDQ<-3>mE)9^OQ)030u-&db>@??0%R#F$*n^p;%0K#oSC};{9vo=8zf%_gl z_MLV~yrCtJA_AV|3+W$oxvY(-BLn6PPBx|+YZox7uCA|X=12FP)YuewLos1ePUUGY zYXA1kG1aNr{i~PMS9y#xD_9;QsMm)tXvfUPvyE-OJoXferiHn629!_c);Mp-T@W!pdF;m^P42>xQ*vG=Au?<0}|>SZg;J64(-$4 zf)S_}mb$dTYX&e4SvEZZW06c%jFkfID#OnxQz^VZPInLr9h}g~B^u`Xp`Sw+CZVX@ z)C}ffIC}J;b02bP`tWvJ(CGIs{;23@XJ@6`(riIbg8KUOR~5NL)$R>F%NZ0uRklyh zlR6uL(vrY?aNlYddsmpL!P zK801*fY4E;#41pJ&BWgf-lHSC2O-b92?-O5P~~rWxR$mtZVAPFGggm0y^aB@QD1Q1 z!=6<1v-5LMT%mJwkWT8N!Je$3rF_5HZ540W%fe_l*QtL$o4AVhq+L1acFiF#FLr&) z_SD0<Q3OK0mxMlnjHc3s_+f7=E{LvmVXkjy5iLcJ}sS z>Cj!Ts@z1^EHk=Sn6o&+6J_?&-!dyjh3Wg!*F*PUcXA}P)r1=T@H#rRXQv6CdPysu zLF}-q17E#xKhQ%%{UhxZ7XE$X^ndeI@68~iD<55zUv^B7oP^8U8AvAz$G+S znG1g4yC6>;YYT>s?API0YBOAOWRvSY7ucYhbCa2)Zye-5Vi-z>krq>xq)fXC{6+x; zEt9e&F6Eg7!|gX&1HKLVmVD@{A7_v$f3>d z(xthmNu=?!;euwfOh{$Dy22cApdX&{(fP1XaGl6zq)^>`8s@wWK6_rjA(H;+CM%v+ zLn-yDet>p&sp+&4XA^f+7jBb*IZygw&@K6lp|1w3bm?0g#kZ9THpM@m-02rNSr=@m zqwSfjUwDO*U?;6jwpF!2y{k)rKv?}KPI5|vHp!ED!g7?WrVPv-m~kxm4lTa#vV~UR1I^1l*(AM*7h5p_;aGm$i8wn)99o4$ zzZsQ(jrQuuMZ)E}E_#rpayt00?c4_nj~etG9)|1QebR*>)ko*V0GpW`kQ;2OgWSWE zI>Ghu#?WpMSMD>6pjauKU3-XNWVs*l;5k}%E$p7KcxiBaDl2UDkeG)j0i(T`I`0rz z?37-9m6bzB8Immw3>;v_yt)UjD5oM@CT$w{UjV@s?x+9& literal 0 HcmV?d00001 diff --git a/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-13-t.png b/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-13-t.png new file mode 100644 index 0000000000000000000000000000000000000000..5a0888023493eb2c03571b5fd8e83c3c2f8454b9 GIT binary patch literal 19033 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 TI7+A=8KtJAq4-k%e%Sv7n1hY> literal 0 HcmV?d00001 diff --git a/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-14-t.png b/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-14-t.png new file mode 100644 index 0000000000000000000000000000000000000000..9477df85aa360ceb48164c94c3381f2855a6b02f GIT binary patch literal 21887 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 S`CcOYg0Qo8pgp28SpNkIZS@BL literal 0 HcmV?d00001 diff --git a/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-15-t.png b/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-15-t.png new file mode 100644 index 0000000000000000000000000000000000000000..93bf3d40ea46f1970b64571ad3901bbbaa439f3d GIT binary patch literal 22060 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 literal 0 HcmV?d00001 diff --git a/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-17-t.png b/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-17-t.png new file mode 100644 index 0000000000000000000000000000000000000000..7a305b70919a578888b3a5f4b195fc4be30b7629 GIT binary patch literal 21949 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 literal 0 HcmV?d00001 diff --git a/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-19-t.png b/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-19-t.png new file mode 100644 index 0000000000000000000000000000000000000000..e9366ca0a0c8e2b8cf53f8ea19adf8d5d53b51aa GIT binary patch literal 21395 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 literal 0 HcmV?d00001 diff --git a/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-24-t.png b/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-24-t.png new file mode 100644 index 0000000000000000000000000000000000000000..b450c18d647f34181bb54c7c15784927392ffc2f GIT binary patch literal 22914 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 E0f;BYIRF3v literal 0 HcmV?d00001 diff --git a/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-26-t.png b/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-26-t.png new file mode 100644 index 0000000000000000000000000000000000000000..6449be5c04273d19ccdc9f1ce6e841c5650bb7be GIT binary patch literal 28431 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%0AqcBwG?_0A0AOcaRDD~VRWOx<}xBn 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 Z?pcxIC_||K(9cQd$rsq#KcvMtCQ` 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 literal 0 HcmV?d00001 diff --git a/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-32-t.png b/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-32-t.png new file mode 100644 index 0000000000000000000000000000000000000000..8902728e70acdf9d422e43fb7d03e8a49b4ba0c4 GIT binary patch literal 10171 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

&6@bIM0 zqVfJcQZ|__CBaGgyFezs9`GO+jv5L?Ypxf6Wf6RKtaSU+Z>jp3CgY8sTE zv8z$HVrIjhtGvmRMDj>FCUK(G+|q>0jAl&S*IXRKUp={DFL za5$fBnrS;$VOp&CP)MiEv{;S)R$JhFhZg8>CGY~fj;+m$-7Nll>b7IRCeW~1y}f!2 z)@X`x)!VY{&%*ac^vN*gJOx(~=Zf>AKp`x44mpC`23TOuOC zAO^fBSGu;p^4$=KEqYzFa?o03tx>O36}YzH$cejN&>+8y8gdYJ|9^D;f3PY3cclOS z|Ity9obny6|Blns{+~E~&N-Bb==_`q=LdcgK`vG)5+bY9-BC0?@c5#i-9Xnwr&h~3 G_P+oLp`{4` literal 0 HcmV?d00001 diff --git a/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-36-t.png b/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-36-t.png new file mode 100644 index 0000000000000000000000000000000000000000..7dd78e12680bdb040d963227c80366197692547e GIT binary patch literal 27356 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 literal 0 HcmV?d00001 diff --git a/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-37-t.png b/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-37-t.png new file mode 100644 index 0000000000000000000000000000000000000000..e7b659865f76445817b602c036957204e0f79415 GIT binary patch literal 20216 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 DnNNfN literal 0 HcmV?d00001 diff --git a/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-38-t.png b/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-38-t.png new file mode 100644 index 0000000000000000000000000000000000000000..72f7611b112f50ee95baeae726d32252e5260b7f GIT binary patch literal 8785 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 Mm9>>>o?E~BA7aW6z5oCK literal 0 HcmV?d00001 diff --git a/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-39-t.png b/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-39-t.png new file mode 100644 index 0000000000000000000000000000000000000000..534c72c850c422c7f6343de83ece3c452f157a3a GIT binary patch literal 37593 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

!Zru`e7#70XZA^Po{hMa?# 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 lP@fBPPeH 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 Hb>#mA>3X6{ literal 0 HcmV?d00001 diff --git a/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-67-t.png b/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-67-t.png new file mode 100644 index 0000000000000000000000000000000000000000..fc2d9c2edfe137087da08de5fb38c90ed0e55a98 GIT binary patch literal 17939 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

&nb)zK*vQ z0Rd-Bh-MP6`6J{&F~?1&RJAUzTcm0S2`cD(-emTY++@fG|NVoz$w$R%g^Gi-%!iSK<%kaCglC%|;LcY7(#uK5*ha8^p`nQgdH zpSR+I?Yy=iOUmzM^$1-1V{kF-EpFjbL6}LJb|`LQ+WMSfO@eaHUaG;8kqQFQ!zL;^ zTQQbf5kVvmp4e|LJ^k`2oIsm-FRl@iR$&EM16avAJsPA&A0n@CRrt1h#Ln zr;{Ub4M{PqeK2lwqbeIjU(r$UhIR&adSC9Rfr)|;rKklMzvs@&)&Gl)#$*Tm^}dv& zjp_gZ5WYLBYWyx9HRXdS3{S53|BlLDC$!$@MG&QBbOEUS^}(P~ie?CK_1v#R&r{58 z;gT|Hd=Cg&gSfUuDH`05Y|~;Z&K;3=+l-lf;KAAH&p=BkeCx~oUtWN}4LlX*l@#acll7kk!TdcY zw2)M-PSpsxhj;@*zrH&y36?6jir1Q?}{QpH6w!8J+*+<81& zx(?yp7ub5XAIfZ}+>pTpED}K0J~FG!v-QiA{IDtfnNB{GqXDVBNC1|XbuD5VxP$pZ zTlm%GQNu-&BY0eJW8Y$yIgt4OF&qBzbOVwS2m_qrIvBjcu7{uUWpCSS1Iz-rr1??Q zo3{@(M(|!Yul%HhSOIK?Y4@Ev7~~>d4g@BMI**@WcnXm;Jq_x;$s!Y_)`-JRy{@}f zqTKcO2A8#hb^YOn+4B*EQV6{IqLvglcMfm-Q~NuiknPK6*)LzmZfnD(#W1V9 z6T{!+(8(Rmij;h$!uBjb?Az8%1MMHiG~L)AV0KuHeQdwS1(yCYVYTy)0VEgW&{iP3 zb-9RMd%H`JQ&{XrJM*kq)<}eeZ}c_e_-J=9awl3qru!x?*p2|z8d4Yh2K(1JZ9c1w zY7qoJAaaG~xOul6NjRRDk_o&b4o6-{CyIpjJ!`)??>tl#ogTxjs3}|PviH~+cMX!q z44HskX;}Zd)sEJ$dV!S8unr^Od5}B|)eRC~6+;uT8Y^ZF88L9b!y!GZB=lySI7E&} z^WJ0#FdY73`cJZqsh)>p9w&bZ36wXS|5dT%kmMgI9%;+wqbmaItFrk-e15JIz+{yh>Yi@-|v^jOW+&)u9_km%RNcVy*X9$*_520o82hpUc7A}4+`nE zC8PcKdrm3?ZN`e2&2TQ{*qA)g$HnGdtAfJGD%mUPh2~uT9rs}oFJ7+WSTxx&k+oV@ zO0xzT%j`6lIYI>CL77}F7eeUBcVN(VmR$?1LKfB2GW~v>gnpYYr8Pq5fKFke$W#%g z4punUMSQFbPl5#FW9)alalj*2_A-0u27*q; zMzH5cL1nk();UKZ$Z4w@p+vetJ{S7fV}bQGUzOYosFp|MCq%A?9fMh zhr;Oi`%WYSupneuZ~pJ^T4!klu@%jY$ed(cO$CXD%hT7$qY1l)RzZhf`0+J(SPmpQ z+7TRyN_cX_SMd1~sZMW6Rxy-Vi<=y+m)<(1?251qFVFnPvdw~C?(2be*&jn7FvRS! z*GhU2Ocg+Bs=odb+ox9V%gf+Vm}#Q%V^uG!-X>T})A>w=_;m|Y6Ww*52RmK0p6B7p zT`T^ZPVa90?RJxQ<)qThlC+h)I^SPOb?;5_Q<6AYjEQgH$8q=Rh$bUC8|@aF9(bxd z=VO>G;r`CzW=}R&DOQx)=l7w_mLRq!gJwe*`=NP5e=HyZaKMt^?!yyQV!a*KmYoJQ zpraXY+TGuBN2OF^nAokDp2N9%CrB%cC%=p97;ACcJxCei7 z8u3>p$ZA2H6zL5ZB7DU5Wji=_WFX0n{Jqx`ggfXl|7MBrC#)&DugtCEb z#SCV4Jkw~8TxA;z@8kHasOP5~g#2_*e`u2tzYM;=?BTRsRvmJRH7!D#^@Bt$3t`ao1jHS4cUk8%yR> z@9I+xND5}tMPThaY`x!^4?Zj^Lj6SU`54{vnOXT>r&-kYWcTcBJ(f^xxH4^mbrS*q$Kp` zlh}~&y8b84f{DThq0-T&#A6<(X)B^-%C%f2`fi~?y`u+&R&!mDs!5%$W&xiKylOe# zZNY;w!Rt87J01U>5^?DkrbEIG%klyI$w?#l`~LKuyxe*EL-j(z7t!*oP9!X<@kUea zP+h7|7IpeSu(Y?(-Xdkz_#Oo`8=fXz>s8_Q;=c@M4b_xq!3{UD9Fb2T*t)ij|I;yv ztDAQMIsk>I=Ia`i@vq5xPj?7T!LjKB@&lm{B;_uv{TXfHlqDOn&kXdc9lx7%X?M^Q zTLFVI^{jrd(g+Ok4z;M`?rc*Ng`XTW7zWwpx>#A~zknz5{dpOiz{oev1!xpzfAJQB zyi0BlS^|lvOrtOB+ytzj2ivLKp#n&`dsTjtJVMBzL+=xz3nFC%@-yq9Y>A75A@o)t zWf#zugN{`qNGot7ye>~xKIxUcB9Upc0OkN`mk)ZD6$ru7O%hxPDIOI8>VYBS4bbpl9lHujp(*F3ZyFRt!AJq_kvd%)@tvx1jZ&EM0&&;aOkc*0Z(R~1KH zdsY!cbsH4g%*zqb_M^yRU9c}9B%W^zS2>RucnL%YrrU98&q^&A#4 zct*G#3@AcJBf^cMVC;LcBh*Ryn{ra!KCC){QkU$J_6RBH(cG4|{vP*B?G(xeiwFn> zP$o{mqEGL#xVZ;rL@u;U_~S!mW}>Zm*F=J|2+R?t?`z&%u8=U4)A>Z0VXB8Ky_u{e zkY~Itc!K@|=tQXb8CgpZULTb9fER`EXbK(4_{K^2?1M&y*+je2BurCbJN5Vbq#CHW z0jsobP#zdIH0lA$W__tCECE)mAHvZ27QBJ*f-u1)=e_QCfpPgTojQb7)dC+s^NkEr z6ikk=63k6l`vY9QS|xh9x;!PD&LDV&Y(}|F+i*~Iv%Atf{wgnQiH1>$5cV)vT0HAZ zmAGzLUj3Sa57%~^awS{HGH=^xi$5P*{n{47%HQMUR_@3UbGS|P*R<8&Dha;`7wffjU!N(vz2mvsq+d*kp4{LxSAp+0o$xCGX< z*H+m`A$wsMFlO0H@CTwT{=*-j5_Rk-w%q4@St*VBwf8d@?JuSN59~Bh=15_l+5G2I z=nR{@o8c|PRZRw3{=TQ;R;kU%Jk&%BH`QAg3tz+Df)W&Sda9@sTU=?F1p#!I7|Gj3 zxi5JM51TM(<9oo0*DJ?R`}90R=H{R-M)$y1wWPb=H)OLwb@>kxw_K@x=A^#)xCPov zIzM%KtV*>+N^Qp8LO{F-wW`i)M5Ya^_}ONOf45$-+5P9G-#Q<*A8n4cFvs^m1fV&c zBSUW@;1GXRw7sA>wetXOYXx8{GN)PF~tEEZIcmFpzx5H@>?BU+`X5~c;0ZMLt3c{0pJ7bs_ zP>V63=Y>H(&?xcffGOjDq{{#Izb>)P;s5NLZjnhmGvl(kvTOo0T~UUXinJ+1LkmFnCE! zcK*w2hVO0tKmx`hLvXo2zOyg-bGbC=VO^6j$k^BnYAf~jlQhD9U-zNEYgqz1EQXQs zm;iTzZdlG2^8y64C9Qs~bSIRkB?&^yjd>p|V3^%GG{49y9AGZ~jslnQQ7l^m34t+y z!VdUXP$-BIvYQ6|C;XGZpx&bj3V6w%x?%l*+Ta`w@ekHlN|!$n0XFf>(DNzSt>9Fd z5OYF(65a@W9(iTWP6qi8U?b!}2?P>%b?{dKDTL8ox4_Ux`A2D2TLiEL`f~;f>bwB6QzWhqxMP9{fN@|d=jz8;A{rGob0ZzI+pFRO}~JiS)`OdGKsz0wEsL==U!nxL7E+gWgSu+E)9bY-<26GGX;MafT!hqsIUA- zzo^8r1&GGD>^5PXfN1H44W|6*!LwfCRm=SrJSlYXXt10(VSU;1d~jX*Mbc$Z8Z|qz zXvzQ}H={quj^PCj>>O1XBjKVi4xjk5IGi3>Bd6~Bt?fZ^FUb-7Ue8`zD$A8odvzu` zn}?_zmo!o8%?9kImfI0>U~x>E7hClFvIHyyL9R9rC4ffXUBiGl5$Smon>$30`CMIK zSQxDcJn)9AOdyvhq!NIx{L9bqe*WzPOc}=$Rzul6xq2lm8mS(;vk#ZC5|I1%8*S(f zxTjlTF(k~mFU39sFK~yQb{o<}G=`b!I(Mx;(5oN*IRM8nVl_YHf=d_f)$N9dyYOvN za4uO1GcpVF`S}~Vh~wIC8DpD&etvd!W(f)=Ys!OF1!&Cf-ew0j1&H?ptSFHW z-{tv_fS+5B_XFRPBvgrThn#EHkl zPd-Ujoy)E={PEKNEn*H?DyXmjrbsTl`g&?7)2WjZrx5Gccl3OYLhgOSeX zZu5ix#ZY9y3czp9g2vwHjB z{sCVGQv+`C|3`}3j~vlYfyKfI5q`HB&y1{Ff~5W&yjLr2iTaNs~JJL?!6FVQu13#U-y=P$QEa|&O8Yr zZERQ{Em{Eo_F?-N81E0NAL9*dSIl_T0GzlLKpqOa`UlME^D?&!lB(k?Ja$@sayFo&^! z9XRItXkML5=Ni;ekW%J3H`B6J9qmhjk1=L+o%ubeKIe!bsU$jYidVgil{(*Tv43SM7f@n62rc*P5j zP!37x-WL2H^~^0vONOpJZnl@jW+B(lq^xxhxJ7~-JTp}Fo$Etn*34ZIVPw-F%7&_C zX2e?%2S~fi5Z2Ud=$*Q``zvKMoWSuTlQQbCUztq0B2XRT zmjsU<2E=(j3%OFe4;KF{x!rnU^VGsSPvv28crtdzvzf3{>YAYpDC|RH;h|+pvQaEq9H;*C9Chj|Hv?!_j$eUU zQNtI)zwzg%VkRifFm(v_mH9ky`8kd{k;>_5eAcQrve$Cmv1K$AO$J@sFK?#0t>1rc z>!vt#+{O?tjHM_g59~q1aK{^M*!L!OGJla&8ZcY_Bn4qA`{^Rb zT

5rMLIn*P?u%HZQ-hs}r!Fg+z#s6Uar@ckl`vdC4*2(Ro<1(A#A=!aB{A1iQ0F4y0pDc8@c#OuOsC63*f{U{%9XI0u6-8U!&F9K`s_XXh^ zx$-jNlshlT-1w%CNrb2tVbz>Fom{J>5Itq{0L(v_ zWV-Y~fHSjt<&MHB1lXQ@xn?hLK+T=6;gPPIMI)t=PX0@4!c}V02(mr-fg3T(#2Ofg zBj?&<)^5Lkb%r)dWjDeX}e1N&VS787U6>y{l>9YVrE-Lgj#Pts6WaFH^M2U zyv`w;S6W~aK1xpiB8lobkHoShEQX?+jy)CiW`BksANH$==1HUGU&XDTJM;0U{=nTx zIV2iKylM}pKmJ<5H;`6^(w2a~kMb0PnkZ9D`-I*p-m8lpZ&(5ApHx5Hi$+M{ytSA@ zB(plMet`I8mFBMS?jPWH54znq!6{mw{KMB6D23LQ8eZsMi5GmziJLtDnbC5+YfG@e zdLxqt=$7mAWBq)8KXH*`vYbNN7Pv@$hU$>Pc7!A_&R!5B>Z|@UR&05gQd0)H!Ax}* zv=9Z?=-ZoJxE3;<#qPfE|ISJ0z9Q_s(cE-F_%TZ{GVq%joOg)W3Bz09E9>AN2j5GL zqJU*~KM1`S;zFm1vVw-o>U}#n_=4hWY_i*Ol?8Q`VTquqF{a~XKhHWp47}wu$!^QC z1l)gnGd*dKz%~UhsJEZ#pa$JPc+3A^F;iv(Xf@I1mG|NAZ)GH*{{YCv)NE;!J|6uA z5vGWgl5+$?!vRnXb$qf{UuQLa=!RSmxZH1TAM*4M37gAE*>9?f64Z%aR{E^&0B^8- zBZD_e-9Wj}x)Mm_Cw6&fRbavJY?0f{!2*@~;Q?l^M=^rqU|!Fo3W`71Yg_>ax@uc7N1|HYyIT_ zGDM4sMKaL(elp>2?{d%jT#LJ4Z8ykm)!k!!hs6kEcJkF$S#&+0y!BWd@iTtM)yL?> zpK%&edyC?u;7G>R^cvBi_(R7lu{LoCjHW?A69FsVlhyJJ?lCo zpE8a%4}IQ9&pO?jDxGeK?AXTWK4uovj9;q0d3K#c5}~)t+T&gyoaSpx<1r1?N+OD6 ztUO=Ni^5N-D!XxZ3_fWmcszorv0Tqf@6B$#x1C%-TTv(T<~9FiMtFHQ2+@^}2QEmV zI9^XqZQkut#u2~ATA!)mtxqa3$|3PDNS+olVultzq*g(R z<1*YfB;=!iM)%<^$1nCVI5wKViMTCR@rr=vmV274bQs1Pdp4$EU^Yq0-cX)pA?QuY z4e4pPIDByxG-5pn69#JkcT6S#Cj!6CLA6yqF@i&vNAb-?i}AQoD_in(q8xC>3v4Ki z4R>?DIGnJ`TYUny(x&^q!P^``TGmIwm~?vpq} z+50y|U86OUwgIrY`(uKd<$RZCi-1(ewZoI&enBBF?%>}Tf2)#8m`RwVH^t))rC@3E z``u*a4mhO)KI}*G0kAD9^)UnY<=)_+`qstwY&r0;F7F4|`tkLUg|l+kDg4m>uA25} zgfdqZ>RLS`Wc`B^%U4B zO4a?ZcL-;!o6|hX8iT<3qYH?b@LU?F1d=w zI&>zI9098GbR!t+w^~GzUs35{&zt1P!VgkmRQzI`NCUm+~n#8TdkA6seH^}|d z7EK8TBQlGY-Y9+tJ$^g79uZ1O;MRy%L|p@x+i;uQDQ<5ql>|mj@|jTK$GmTiGy+c7 zXY5lViy6tmMovK-1@}FOoWg%7CVOdAQE9Iq5l+;c6Tuua=@;?YQUdqX5x3ut3wnUehs@`})Pz4E>2m58HijTBcG`EFu!`1NlFy7iguO3oPd=AzT8$Gj z6bHL~?8lPlAxFIx2JrLFODeuqr?j!2A5tiF;RIkf?|dJ#W2YUd;D?IXp|@4;rUfGm ze3r$F27ztbPyc9nJf*Aw?xy7qC=DMVu@UGP$RhJ7GW9LQ0>;C-{V;~1Jm;$$7r-eU z*1IOUQza%&+mE5m@#_k&qDUHj%aIT4{g>r731{~Lc~u4D`BP(uI&bh3g>E6^ z9c41o#PEnvy;uHGqZo1=I5(;KArwWtZ*A+79V}-MUOrECT_&%$zhojq?1m>;?%mnW zS@9zPX{DVSF;+Z-rUk!8;gUGKPk~FF^`Y79q-e+xN$p1Lv#gp_BWZrdmXRJF-s^JRF zx~Wlw9#i15%~J5v9CRen(#FYJ9e8uESx81kkBMj9O=oFKHWIJGcSnlt=VVT`_y2gl zTF?s2ko|P4Gz0L{`{Li{swMIeR$=ZFzcLS?!HSXo*9qKK_3vN^j<)vZQ}0wPM3)DRx|&)>&Ihv94f0A38qYz z0NDC%F2<7FnwfHB>~NlR;kWY-%u$L7o5P)%G%;t}lFUb8wTSK1rr;oNuI$^#M{K%< zbQk#gmF{Cd#O6UZhe^SiwTPdALu$XfJ?w%h^8KodXgh$B+I9#{%2{ z`ccE|aw2?0UGpu0Py5u{5%K+UtCO z`#kgP%sxA_JJ0^JvwwWvGao#2&imZ&`@XJMT_;LcTa^Hp1{Vbdg+N_R={^d|jV1Wc z4jUEzg7T=v3k8K3MO{h$AtG}t3+p2O$MtmrTmDx}=KJ4ExpAn~I||>7=!ZnUQevV0 zcF)R&99Ox6H^W)o#^#ux)pwWvdVN>&dT8ZpVbd+cI6GnTaNkAhq;A-w*fnrx(mQ*y zuGp>EalXEaL;?Hf-C{unY-Yc2RmUwvvZt-s%%OW&2-+x8_WS63p~SMvsQ(MDq(Xt$ zmnS*$Am}! ztmciLYYDvmppnWT>xa0yINSIe0{1v1wVTF+=j*pwR5O$*VHp}pjZ>+H&HJ=GU%$j; zqoiNLbL$Db7(T~uB~FZxPTXasJMN=S_Clk#+n2{hrRCLN_^ zwopOkBjsrFJy|HX#`_cNssH6MpGFGrq>1nLcFp3|&j`keLcI{w-KGf|Zn^sR#bz+Q z_t$RA^+Kt6N5f7%o>bb^Ra*!an*Ew%e+u%m)PpEZ{YY4sx27wCFs?2Rby!B=-Qm0M z)UChUoG6<8{OHS;Y8q`C6yq$Jq%)#XH-<^gA28GgbBxE-Q$fdC~RO zAhbA|JIkm0pCqKepP%e{{c5>5(DS$obF3xFX&~MTEiaB4RO)pR7(bp%5HaQPJ z-OrNrDE}znwx%gtW%#JbAemK6p;LvWfg|_vLy|JxuTRRTg>9twJIS74b)Q%K+_fD@ z6C9R4)YSdPZ(Psh#`cQuD<)55qeqm~ZlfD4wb;D->;0o9&9_2oE@naZl5a7OeS6Kx z+2po9G*{=gJ5v>-u&e@N|BY9B&e zoUSBv(~{vm4YSUS&M6p<`Td!PMEHJ({`5c~IHOy_Rh z0GoQ!-o41}7rIS;X9smPL^4OOw9IU8n>41OYh&0%^0-`_x|--08%1TrIvKDMN~jEq zInF56Ix3E50eY#M4w(ioG7=bRM($Bzh^&eD&Ae z*sk(wIbGf%h&mAxu96Vx;AnHzS`l1^)5Njc1J+8fGU2qO@Ec3In})7qi$urfIS#&l zlJmmEanQVta-r6h)%b?JpKt-?LljfmAQh7iCx(fCr2+M{Ei8C)4lS!LplF=2R=j|+9% zlu#085zDe(J4Td6Ql<1;g~o|2%3DmU?__*~`=)569oQIfg97b1hQdjflURZ%C^1Gw z+HQAP{OV8jdfT6Rn^D+C(=10O@XD|63Dz{?WMSG+Xs3RYpLTnh25X{KjXp1)`+h#t zM1kn|TavrdWM9@eI+qB8ZO~K^-Lce;v(@xsPDUdi7yS<7w8(j%yrNG`6M1%j>8GoM zXnA$P*`3LYMcufjn$GfoOCQ$GU#cOY%kNv+mprCQ&9z&!-$|c!(>jYdFGzC@xSw3Z zO;7mrCEUFdPk+*gaQ!|-AH?7uK}cU{KJoSGTJ{s#QTJ}toz9mx&=iQ)dJ|ds9d~0H z?gse%{qqBDaN}o3M9bM)2Aj|E)?2s-kr~9Yy)#{<-`^kljY0=eqw>qm=R3j+X}On2 zP$8itHrFwgj>i!T=3yHcks}D9G&9QuECpe`QV1T*Rg55gKqlMr@6VSY_6(6{3W5&N zzsEirmQ@TVF$HU7h+e{()%$}eTm!+p;JA&Vr*`<62*G{{r3R_yZl8^R0?6 z`X$}+)!R2L!}Gs9{A7`QR52{8mW)02mO@83fnbknJl)euJ3Z-T@58m}+05*~ zD{tStE;w=D%Pf0N7JL(!WgVOpY%uv+PM7gk?vNh$7OA&0Cv!gt7gWrb-mBiElHZZI zjK0a!eDqzzh>KMTAGul094F)|l0~lMpuA$g&$wf6BdmA-;p{X?_iN6|1R?a&?gm9~ zIJBZdcNX&e(@3#-a56%g1ONU0SS|PY;U|??s-VijJti#SeCNgHWFCEv&YhVm9@Mz2 z^06o~&Lo`+rzT5H$3H)(_IT!`@7eh$Fvviou*nt?T<{-3KZv6hE4Za^GhV2dAak7N zpK;q%Hb48hBfHvBbxmdsqDZCuYUoRpNxbZr*v0(63ikZ}@AH4U0>2Dc0Yd%wqHkK`l;t}M zu#nOO(bmaW4QK|A+WtztiGZ2z4!y=&b^?v~6P zMA6;?oz-b1M;=PZRny6Wz1xe`Uh`$5kJ?#qaK6LaoF8ukj$8m>v^!fv)D&+$+Z98( zyU^6297A#J7+e0X^_3jn{%tu#E#T5yk3Q!ESh-iWJzH}aU2F||Q-Ja9=8rFvBe{yh znGz4G9iFl!pp2a+ycM#! zsU*H86kGHY{(1Q4#}~mHJMg?yO?;wSO98wES(jV)hjW(toxPYtX;)X;hMmCL0#GoL zvRkCX&Otftncp|qRj7-A<*&Uz!>W64S4~Fx3EK>)iCK&lXfXzyGBf@t)LY?C0KjeD zEKDZ}FcOgQV1`)9gOA!qA8^Pxq~Qs_6|(l($c@1Mq8dvzTKVh&f1-M=T29!hnED$o zl6}@oe{!tBb_0ToHwh!ltKVL~R>?B;|N8?l35&@c`w2E|_MM&i2Cvcg%29c7w{!QW zs_au=Kl|!tlDL#9;l|RC*`;&$@@PPK_zk~t`o+cB;oaYD-mXunX!uMTYv*50^dkze zQZ0_RrlH$kZkDv@dbhhRyS{cwggsp1y0;|%)e3Wj0kL#r?&a;4i=;w<(pE#~Cir5k zCloy)r~7bA`0>Ab6VcqzzICu~eE-l7XORP`2u` z2WUdCD>A5ZNul(4SYmPsP#&8%{O??mVa*LROk#n6qfu3=k&>1xpK_~j#M~_QTO`3w zUx^yyH;WsFPKoGnP_N+xWhnky(p$C7_D}JPrE|2--;lIY9wguCcw zk$baksM1X%=A?-_mJ(DBrzXLDXRgloXv5qOC%$v|?zPe9hupq}w;T6@{g2Uqbt%?( z^_o98f|V%9aKfDv0FV-UquOEm`+}(&HE$N6>lEInN%u-a90VQgF^RO=*+~L#T%5FF zF;X#iCZlGsz`hftkPWyvg=$n`^-ZC3TSzBcR%;~g8(@ORE6z}ELi!V#6*0S&(GH8U zwb4RW=$;w+UZG5ZAn;#W03+VM2asc94*3%(l?T82DbMf3dgTllQ7DfnT;OG&; z0mtGZJIT|{Rp5|)`8yUjVl842KbWLzWMF_{?Uo!vC9%ROIh?5fi|f1%XQ(L`l&x6y z?R=;GETX#?0^Lda+aWajDmgmur0Wp-%SLrC&fF{x`Ukt?Xj6fD1MGq;IrsflB#_i6 zfDP5y)q&7KvP4$XWn#u@j?ztsQeAcb3C+d60yu-+q_O$(-dyCug?beZXnwRH)0}p};2ESYk;HGuch0II?g<7@ZA3XL8An!_Lkyf%GUSFF$;m${)@OG%x?AWzhfs~ z-&9L)oMG5 zE>9(HIl7LuM89MK=;(9l`E^}*p#3|@W~}2jSL^CYqEmc};@%QBl#lMgfI71_R9rJ& z7d18xt@KWQ@hm91uK3-C3zYzH{ggO9nyp7jFXFw}ni4F&^_I>A6q~JwE%cJ^Ia*Lw zKHp)1Kh#5aMb?j_jZwYNxaU2rN*C>usBy8Ly9<}O5e)BzWBR5v13E$&890LXdH)*rITR&`s>cckJ|D8k0_1Kcaj+Jd_?$YhkG$%CZQ#a-XO z-h$2PGF|qPM3z)X<}bPD4FmNUJ5FB0hQ7HolUFo%o*#jp1VYugqT<0$!|qH+Yw$;m za%0?Loph0Bb^_x2T#v#oS4da_elBXW+>>;e60qP8DDKYq(qP=+>FV?Yum(V#B&I@q zW32LC!H={qW&fo zI;Z`lNx6QqeoY@;NrLo2q_NAtMt*EgZFTawKiuiG;*{qg1Zia){Yo`$zWTT66eqP3 zw;NIP2lWaOx<`9;({5JZL(x1^jkiUR<#t96o@OoO(Qh;&X_uo7z0l!$mKIP20L5sI z$7ah>X*7!33{bWIuzlyvu~o`EIY%3wgpG(GbJFV1c;_o5 z?artAIs3NW9|E5*Vh)AU_5!#=T{QT6LrK)Zo3_|M_Y3R?!=ldqZlms3j>|!(2VV$h zChC858>UPlYW${|5_R7!G#TS{6dO8}@r4qs>hVyHS|-m}Ghw&>ZqYB)Wrk*&`DyzK z%Oc`NlpC@>q(*&aDN*X9!=w+S)Hd)H6R59TLe#pC1k;z1RUTv*vkxQ88?>e#tx*lI z<=Ct?sU@-ifEHPIli%Vmy{$PgRlrmEnd%yz19bTuYJ!#I#YTU7%SWYNrnS~w^EtZ2 zT>5>)8{sRVLKC+AOFu2VbV*l&nbJ$svC|htUr<-pz94?=K1cc-@NM0X4#a4sl<32E zLmvN*en+{%?wL4e)Ft+_qQM-e*0a$hvY+~-&UCc-iNcU+4=0Jeb1`k3O`@^9mlP6g z86{L$`)rJ(yPPVEb*y;5gNts(8NX`UkeiTR(yHJ?Q4@ z+2z<+`zL)e=hofu?FRLSIQh{%TVfwtC)R(lH%MnPYRztUH|TWCTbOg}=Cp#KGj*FF z%GjF|SMTxLnEhZgG3G@?A7JE_&!W&Ij=yy(Pkm;&+{Y$q*(>P^QX?^72@|D3vK3UN zh;+a16QrW@ocPZ&{j4E7W7f1!vD@AK^6#c&F_ap_; zMcMS;HR!q6Mh&k!fcJ=;|Joz=xkXge^GnIVdZ&>;a(j8oIn;SV)WGTXL=%o=xEiuJ z3MzE+Tr_hq^P@jT$y&_0!=6AVVL|`IO@0YUUC1IPF%u|Qo>nsah#AG~La{dD0jQ_+ z^|6$l#GcN^itzo^3D#0+JvL7PDS`ppk90Vs34U~kr5#@AUBIMVBO*+L^j!{C)$d_4 zRPaUVg>aAtU_K|lMA^#8*`)Yo#I*5pI{-(48VA3sx`VW`Zw|xgRfX-a(_AeH?P?=K zKcV5H{JRW`3jO3Oc?&o;{P9$bf17dFmm?YNNm*2O7+%Ub?Fmr!4Km2T#b>|CXE5H0 zU*?JYR^qeHit)vSBMKug>+k1isChIQ44vZev^B4!tL>YjjJ|-GbwRc`Qx*`c*fUH zjrxtGCIN$;@$C;)rc{cIk^g^YB_;Ua{iNIy2`GDI#-R~iw)*H?w-){1i!yKoK>rKN z>gH;516Bk|>TSd7El{RFk>W9`Ej6~0?^KVin0_0ofV_UWiF5SJ;(NY2Xv2djPKU-WlDnZL6@ z!;f&uhPMac9RMG$<}vh6CWEP+PkMui!O9dAZeD{*q&E;O%O1=3`0Lc^{z`Vhzh|3^ zm!K&CK(sRba4(rg&?1y?0$v3ONz`HLmET+%FzT5L5FcD$t-A0-;dS+0&qrv0PZoe& zr;lw@joybEx0|dQZ$1)dd#;iQ%NZs~>wM!I7z6|~B3#Z3jh@>E+7W0grAYliR!V50 zPY4KiO+$`0u4cCEJR;@~RJAvVOqu#IhuLbr9`*DwvBalvzQOJ>xrzXhlZJVjmUKg- z8}5a{do>ZMJMXpQf$6g`k{dFpnzpgqU;)Nj*_Ya4!OL#9wal)EUR@mxD?&9;;{V?VOd4p+(U%z+`@Xx{eunupO?iH9qAgFee zuVL@g#nycN16Eha7E5By+zY&5yGaLS^hKXdKFyo5AjZ?Z@atZI+N~@JHBp^_(f^1f z1@FFLv!Aypthy$!#YjVSsD~>-Scf1|mo|_HD+xs!})4C=C-)~8_LT&3(=Lu zGOQbGy(c^K8ZN@(N%%C?y8jYJS;S8tY+KtSm~^Bn!o2396ttD zNi6X`!Be`_So4l>M>rBdWVj;tQ{tQW)8Cm*9bjrLs_$RHf_HpoW9wIew zmi;U#FHF963q0Zv-y1k1RoW&?Or2Ao<_Y&zgfWci4rv>*EJ)L|)NGRIq4j~Fj8)#-w-%11iP zbnBKg+Me17;V1^PDu}q z*#7lI60DWaFJcVIbQ>&L|I}-f6&YB+Q+R%X!CC zFCT(AZVHyk3%eJ9uZ7Ip(JfqnoXDg4e`{4$VbA)fWZ*qvP)70bGiWaysCNWkOMAZ< zm;)ntMQ9eIs4PnHWaC9-=XB>ZlL$VM^q$;^Al2}77j7x8@A1~*zI?@h(*mCAHvw1=#1wUElOwEoSD$g{CK%(z-90@ji z7o8A$`dwg&Nw}EGQ}vj?738l5y5Oe{WGhv;CyRl18(bKn0*k>{Gh*aTgbFyNY2ijD zOsBq~Y$;CSoaI&-Ai4B`%GvxWt5Tx^$q{>pPaEi{ieg|3_l)ML8iusrV}2{%o>ppJ z!@htl{dUcUt5VppF$Pu7NxWF|5MNhw{5gbxE>H_usU5BjBC%JarJte7@Rn+9ulZ9m zQ=pJ&m;P&SZ6kvPv-TBB^O1<;cWhki&elN*t(X(rJ}6JDRlS1c@4(DD&{G^D_wQ*` z8Pmy0se#F_#90aoxFCJcCT%8vb3`) zV%j;VXhvfM$G>gTd(DyDes^bmGjd;V7hRZAH8#P=Gz>LNh%BBfxVbZbAA7Loq{i4l z$hXtv9UAKa!Jw*(+iEY#o2d7r1EKSuG_YbWKB$R|O;3w*57Z!z zbxcPn{}0dz)&Eh5RS$J&G>=MqWQ?UM{fT&@oav7#Te(o;D0-C&f^tfw!IAbY$%5DWhb%dNP<#lxMhYB$S@##&U*1BOdhyhAYbp`` z$f6wGDejyY8AfGWA&m2%t3D6uhBy}(@)b6NkXNzi#{gkETh`xa37=}w|70F4na5wB z?8Ebeej@p=@%$PWK!iF-*LXK?SvB4%GXUwc&dqjZa2WiH{|Ik1BD8UYnz02Xl*{~8Oh$yI+c{`nD4-^c$#Mh7`1#326L!?pv7j^s|N z1W2SH2$U&BkpiMZ>YXI=4bssic4GyDAduLMsWJSyKxT3PW=MJMu)P^dy>0sY`-kny z{?t(LbujojsZyR4&n|bxfc0a1&S>KQ_Ytd-pCT%KIFM>eIPZB8{k#tf1|msV9elvY z0M%_4WRBzQS@j%B&@bHGGrofC|C&>W@CBOezl}UlT3f*XwbNQ`_9tSLb)Yn#u5o58 zM+}1==`m^S-1HY|TLnJ{XPI=L)zu#i9E9&`Zz7n|y0V~`f}mLwQ${*D=}el+Iu!+o)%msbEfx`j!$PA(*ry1B?U|@y*>hf1Fb*i=1A%+NQCzV@y4I6o zZOf-y6~p3GJR^oRPV8Ai)_ouv(I?6TT!_EjoGe)5Q9ct>T z& zb)R%@0%m0o$VX|rZJ~7qBK$=snNCh=<&8=~@Z_uhsNcY4MP^uX`F_sD)r_!|5P9>O zHfL5EAN0BQ(0lm-a7Km}QiIhfhJ&)2L9(&4gKZX9qs^b%TZ98j;M&>YI<2#DGGIkF z3Odmu1=#e>5RIZCJ(@vmx_neiTs9JaZ&V|9s$wSq4XuOPV|ymKLs+3xY*qf6=;8_| zbhHG_C2Hq~GAYR_I3ut0*ogS#+=FEu#|ueF>^2@pvgR&AW?=cn$UXa)u?#XagYRcx zFDFuqrVPB{CZh?h`UhV!_a#6-Rz2x6kn3#|HuCtw^<(hNrR6)dI7Zgc0awRq(mD&u zE!%~@+jnmahNYm}Z2gZ$hCd`oJiGiqXk;98aB%VjSs6aQSSfmS0O7ci?`efDS$LHE z12@*e?wLjgm+W4M+xV$3gd4vOdnNtd122@7xk4cfm+q!1Zu2!D`z_qf|3IsMcXKQ* zJ|hqNc{K<%We#D5)BJbeuRT`sn1jM#UQ;fZRmI8+%(aZilB9#>5gd$Nh;FGO;`>6K zv|SuiWjY=1m>5ZeO1OeC)Q$JhQSi&q%e~wOK)15)*i+C%-!(fVIRc40v9-C?#SQ{n z0T@vuGBbuxzq*p(`rKp7fYy0FL3oR$z_Y7ejW}%^{irP zjM$oq&-)b2l{l^8)irWVCR5@fn20+@H#Q^CEhbMoI&*%xyagxnmr~>#3H+~CHQIH5 z8|DpFU*R@X87XQk8@o7gp!>3zmt=&T%DCi{bf5i33RF}|WQSs%)>UtF%2 zWLErS?DMNH*<8%_l*bx-Vt^p5mdM(u(k{`z!S}@J^M{W*R`bQiQlwKHu@n}OE3X7z z+OU{CqGEktgH^m)#Lyj6Fpt8@ELx0RKOAM%pHg&k*9HHy7k#u)_u+0 zK2c<|3HV$hbuV_^52W$gXw_$Ulvj)MX0a>=IGzzdyV+JkQ<$v9Pbu0>YFZuF2QwnJ zof6tE^42n&0W#)d{|jstY0aY&Fhj|6gi`muWmoo=ZVt*BzIkqPXeHczW54G%+BeY3 z^XHpDYbBr+1(E&0B9`!Xen7it=F`yFQgZ#EM1GdXn0%~{EU*}+8~x9ZpNNRJp!f1G zuknS%K}YDw=g=a=UHJ5X(}7Mi0RZxYB%SSlbD{5J1DAuQ{v&yXGA#!QpsVIRb1Q~fN@X30 zn(X(}t{|^-iMe9Hm;#_6^FEW3?749bZT6V;PiI>7d@uwdazWHMRvP&V9BDA64VMd2 zusEy9sOY4L{F7IQ|;$9sc(`z2>>Pl!O5P-gae#@9GEqZ-vx>6->lp+>z$gK zV4z+52DOj-w-DbOqXtjD;K*#^DIc)>JJZKGFynnYKYcVWF(f|5bZqY7vc6FKmc(x9 zH!jsS&_x0|mwv8X?!ZMbxqL(rquZ2|IEyt_A3vX%Z|DxsIA0WM(B}qoR&2U;q{1ct z_LGdmKOdqDLK^O0Q;?-)AS1lDj1jiBxMXg@TBn-X1>2m7zvsl`sk+*sLudOB>0uRK zwHz{DY>TNf*`J1_Dn@ite`<@V5Y16sm|9|mr#1@^Q5N3e&Zngh8J7m!6j3wW#11~}>%at27m z0a|6ZEw53n3q@s<>AQSxm9RlVJ6xYD}NP8cE zU^S_o$;jy%@U*(UBZ3GS_!Ms1uAXfMElMp+LV)Ef(t8Cc)GMjq(P{hqEh^ZnwiM~1 z$`B8D@7HHqUKgE+MLz&yk<>R)<{yX0tqY9p)P{HCm+yi3|AOVIq8Z$F66w}3=oyOdoVs7$?`u}tP4wfg)e>YTbe$Z~O zhb0rWBanMj51i>?GKj|zOb~VHx{t@a4ecBN*eNOo?yG8vC(&<8o|L^ej@$(U(Yo&q z(qOoyU#xlcT1U3d=kN1|GvK-K-mOtNs(=frtDW@oytbWi^+6ij75A{EvLeuddp--W{g_CD|GzBqKM2NVR08f90`aA7xXqu|jsc7=8e6E?SS= zTFx9<0KhVX*hZ)P2&Lm;600iVjGiGHB{KH8ngI7SQ~Au(+@rZ1Q1Y9SmEwk-&ksJv z8}jN!B9x>l>>lox^)ML1LyWoIEDq&u(zH8~ZLC005~t)C)GMF=0|0#9$mqh=y*UKQ zDq$|GJkmFpVU#9z)8*{Rvj{$73z_j7GWEX;GDhxoZbWgus|BNdguL=L$c7MP%DVz& z+6<9U2nD&p|Nrg+%kTn#{c2uXB(J|)WrlIf-wDHR;pf>tf4GA!I!TgqIeR}PmWsB6 zCiw>Bt7U)BP;yKLO=vWu)}&LYz+5Gh$8hE7IT)Kx<-sMEbj5VcPXANVi_`)OZ;@7r;(fCnmJb zC*gqQ;)Zayn8mWdggu64D9e2rk$bTweHZbRL03p&gRtRk9q zhT4fD;{9O679<-NvL+!UPb&Hz6}oM-8<~+oL&_t-tx$C-kGSuyso85ITZq^K!V=aV z;lG-wiX0Fqxty^NDPfRzf@7`TxZh1X9?TqJPV~_5H~o zI?RThi6XEq!xnvaWir-Y#je}A7479b)5g{Y_miO#M^!_ZxG71^^l^zvQ)Iz2(Ji4> zs$pz_C!%X$aalX#Zn6&tRUS0 z(4(n74|N-+{Xm#Y$vC0UM3H0t4)(Dv)kUde)~s&heLh4@ecNR%d0$pLRRF~hX12Gf)GL^sAjQlF*44hmg}B{5LX zza4Y9%;LU1^P~AgDM1RWyp?0uJin*)xk|1}SFG*3sgl<2ArTu=JCc^j9#pMGX_rS$ zrS`G+IrfTpUJrJ3;+xahpe~5)GkM-7sFLzqE3#l&)Kvy z(_DrTUdhvRsES)}Xq{?r=vk^xSJ?Ipcjck^ceJgkCaSWP%lLaO8 z1)R@qJM%v&(C`gP=Yl&kT*QTC?z1O0f0gk))}1mgL`Kc_TG2R!1o<5zr`tE-4UGql zz9VX6bBXt-LO5K`p$$2v=OibxXQ&)dxmEmT`srdeRDd63;+OC54{@=JHJl^tzE{ss zSHtjF7q&wqiEn;KIl96cpXMWW3XytJ?Ld7HbcKY|ja@3GVbr7bKSD%GVkmF#jOJk_ z`YyGmqcw!!a%!e6z2FMZiW7AF(&b%qR(LnHSEYgO-4_DW*-m^8oehtU)C9KcoxJe9@RXn17BpseB)h<(|MB?; zs2Wfdf56a2>8!=Q@P*e)7PGq5PV>={WKx#a7P3^k-9lv4gt7mk{77^gEiZJpEYC?o zURk}j2S`>GFB-&f24~5BvH5Z+ONx4&<(~~1I>vr`N>@bHu+iwA?$pAP=F-3(O^R5z zSjg*M;-8`vH(o?lj6#MTnQW7sYUx_m&aunETen*JytrSkh zOMFy6ngIf$i5W^|t@;w2AUP>PP#%34JWbJurfwrJ@)O(FvjZ36SYAv`$Sv*NOXZJa z?ynm;vF#NZAHg2TrIy?ORwfn^YTHT##{t5-Wb@=Qk%Hk$j%7mX@$H{NdPtFu@vpXkn``H3;mIR$ zO02$E+0Jv-Cg&6EzSYk6hQyTNaW0meuT|}26@GW)({o{`DBGF4&wa=` zod|7bOR7sWeqyT{m8R4EKD?i{vvkHmsg;bVdMOi^(+6A(j`c6 zU4yp?F{Z<$xk0|po5)!qDZMpvf-Ko_?Qh#_82->Ri{w<(nN$8_0zp8F+oVxk0|Z2a?JlUtAK&@l*6C1v>5Kk?i&I&N|$HR~|_!T1olBn<7GPw-oqu?!Py zsNZt0XqoxN5|u^GY=t0B@CC>P_=uIPOcX?TiuFFc8I6ZN+s@})JS?zmE0G~nfS4J^`;CtgU+=!t-meAouIathm31vlO=Gg{2 z&#$&y^i44YKyt;-^lT!5z=86>x2=hYJcromD+os-EehENjCv>(xqpk58d(=~#BMF) zt>5{$0Voa`<}k>^H4K0e?EGJr0BCLCA25>ky63SpyO_8||3}nW z{i260<@?-*2)s3=kWiRneZV&I|K)4(uf;mI^;lvB?8R4HdMq$01tYsL=*VmI|I63D zYd&x5$;Zf1Vc0?cGqd9VYk#jJ4uWC6IY=2m)Y>MrwwzAJ#~s8uU<3jRMi@qsa;$@3 zVFm(^jV0Dk0p145`W2X97D4{2{ZKY=)qP~Ig_C9E>)1&X=??vp_`^H<;yUD%DnvW# zf!q$Z^Z=Hi7C{-j$#0a_l7eTK&~lgt-vH_>0y%#S z_j(r$5lF?i2VNa!gRV`@Ov)mNa|DnPIhg`h;z&Y)H%xM_gE0YFmBKnE3h$%M$%Jfo zP%~mrPjaXWtl5Juj7#MJo__`4a=1QBG>|E1iCF?0oB_%QI7=2^pM#*`45S6HTJQmQ zE*E)No;@&H29(+=RL!N6ZRGO&#On`ozIy>==?(7R$WaFs5h&l_Kj9~O(h!k!vKJO$*dQRpiab|rf$qP)YOT?l=W~AgYUqVd1$%&@B5OPNb?qEhcxlW ziwq|}RXj4knmT1&E$OoP{+czC~u zDgQzKL&Br@!AC;WddnWdIh-pq2ad%9$hnhhI35+ch&udRNw~WJ6DN@8RtHB8be}Q) zR!&hy&<99Z+M0aJ9-*KRMk9YOfTTt)f${DFM`S7%0gcig=_z;8JcL>@7^FOThw>yC zBYlu_15~PDOHCU+rJC>^S%FZC7-b*(r&ZG%&Yz*)y1#@j15qC-H&-*$DP~+dsKg7D zd3a#5b-XN4_oU~>6t*~fKrQKBsI_O?Eid$WOV+}@UL%#ixE*PYFq6``8qz_pZ_s)O zWAs~lL*NhelqT)7u-4aj&3mLu=m^;k#a2G;7wU^+gqY0}psjFMQSVL%?;edPB1yg3 zjm8(04Wl8Td3jIyls?8jQiI{FBw+>a!V%yTW0fQ{! zQf^V;F~(^zWsTFFlJpFi2^E*^Up;h@I9q@hUrM&}XK4wsb`o{@czzJK zm~jVN4{}OW1~)&t_4CzCxdW_9#Q)4Lx55`)XVHbLpCtSbjJ}P(QVnDKkoJL?4Rw}> zMB=S7NC|zg=!(w$`>;?qXl3{nv!WSCq77uU)EX}i`j52Xn0K3_JK7~kbCGcdc@7l_ z-k>TF)~5)47v5R0AFqf<4&iFnnxZ^M-}e>ZDr7_+)kHX2$b4wsRft4aoI~{oBW((O z4b6B7I17Izesx}*cqG3g>IcGqb^!6PpH9ht1pUGW^fnP9QHNo`axtC1=>q}(wW~rnpB4xG*yC`VbY|r1_rWzD&%TWN- zr+_!ogzc#ReknZfY}OJ*q7voSHLMy9GbxuVo;yGv$KV|a5}w?rY@18LXYjUjd{5Dz z1~DR|Z9&8S#1G*&C|sb>*tG%Z_$J@7@wY-^2+etZ-dOGCyH*H)6Ib5;D2u;o{xl6+ zci@vSdm?Qy8uKmL27+ngcmOVcHz$XcJ_KH0X=g?4{FjKh0Gb|n@bmE{q>o=yA7iFL z{$U#3rzeV4#fXcr)rPcdtkvj({%#nK34Ec2nZ8&`r#Nqm6uZlS?%$q&eTDjeb~H9 zvKEn~HHl>$C!;XRS9J4bH7rt zMvMQ1TE~xiEBd<;*tWg&cXMR`hU2&0F3O6#+9D8elHz2gRlNUwYra%T1m_c4zr?c z(SA%LSkHHyihw9QA-jMnta6i59PAW&Pq}XhKKUnSF2rAELO12aQ8}4`7udhKSMRa8 z=4b1dmXoU-J}P^8^dO`A3(olkbC4U1fTC^BKs2>}*8&v4ps=X6>wgh&bkcbUnJcth zez6)afRDZZqv!OiXh*L6Rm0_jXE5Fzgo?3|u9U4I7kR3!`I?>NvdE-q1}7Vh_6C81 z7|uhm*l9k5pZ&xxPloE}8}KSfV&~nmDuXxM*TL4x*`MPg(~B!4T|aa4|LU}9kCEX19XUp)4`ec@Me+JlwdnKD zDe^lah1_-=@(bwXsrW7Lx`hBq9ghKh;eT4r*8QBC+gd#6F6LKJ{g4n@iac_6npk3- z_`?h*@(00@m@7XJvX*8~tfckuW`A`yJfS2!ilLI&yCEF#jUQL|Mvd9Y?=enC^vsAQ z(MI@%1S70#sQ(^SbqKn)Ut-Sh72GKbF{XM-nvQ2+5;P`G?iUbGB3~&prl3nSFHTJ^ za7-$rbYnW^g{YL0*wkZp+wK$9Ge?NZ?nxX>Va&95t!tEBNnPPs=I^lb-{C84NK}bL z?+7a?45pWV5=!ug7vmJvcts5h4l6uWNM=#7p93|d;&%(1FER*?NL+Knj`^FzSF8|R zYu%qReFQp&BU#yim6pR5z{614#vx|^{Vqx*8mZ2b@%4N|10-qnyNE+#v_usFL4*V* zS&2*0ohSe%yp?ibVr*kq?Azqsp}Ysd*V5hX#?|6#CeC}2=yG&ku9-5v6erUNuTs+X zPzp6@mQc=q2hA+f4jr5k>KOZOS3!}oeKXMPfo2*cW^@<=bZ z_s|O#)v_e393MRMVNC`nFQF;coG(kR)~-5n<$G8Y^Fj5jljX*bzuFtlVV7h#S*}PU z|(iCpj5p@YAZYl6XQ9CEXL{y!86Ed~JO2p(jfayS0?<^xc?oqLvfHz7)q`^s*Sc>Sbui+b z)KKPm<#OjLx3dxkX+uwcJ;X&8F0pwQ+#z>@VraIPEaq&I(OQ7*o3RHcd=k>4%?$Eh z)Q4^!UKRpr&q8>IJ^&Qp;NLKsl>`(|E*Yc(Q7OoLIE?L-ZIwzx_D*yZEb7wWUko?SBbblWR&1Di~c#_gl*!D9CZb@!*69xO6#Ikf0QC_25!eElipBQg^M%g(d(e8M9 z!!1VCI1CoM$pI1ji7gl<#GQ*S#t$J7jkEnlQ>P~IV#(n>5S@mo*K|kO&}JOQM4DW0 zH52d0*E0S^g6EEx-FPwZJ3}DwDxQ}vg6g`l1&Dngx>hy&*$)hvElR1-KcXa5+^?te zREeYt#6aUheID==zaR@FJP>z+t`q@?DQ^0~uWy9BKy?<6QUD#tMPW;^yYdG7QdJ=Y zys|>T2Xmo<%#9nGk-2`f>r&B}+7$O5P6~BlepMcW0gaIZrR8^Q<-i?j73_=oBYN|X z6!i}UzAx=?tq(KpvEuuj>*56R!LwNlKID|o4&kxM?y5nTm0^qmERcI3GSHoYRRCN5 zg4-ZF?s29{aBu6pWYpNr{v!m88!c1VN#)8mO?EIiwVMXK584-M8|wP{{3pI@u>0~D z0NdFbw%)Q9$KX3+Rmw~-oQdnpgCVIg_pgi6bgBkPSvSz0CALa1V^>{ui!tO{0~ENq zesoc30$`vfB)UR67}sTf3-)Seom?2ezC+)aJalXEwTKi+Ws^t1vwWxUNd ztR~$SG`PF^GkR20#b8i15}~DeB0olJoyL$8;COO?l24St=ez0Wm zcH`;s5vol2h`;E@2^sJELF{RxPv)}eKGF<>{d=)jP90nc9q5l4>PeYA$@0oWhjVEU z_(}|_K7)kCVFUX{wS(~)iU8aYNOA?-Km0~m zl_T$~rUq+jDGWIg!r(DCKLPmi^?dQ6CD z-1otKZ>xY)Oqkx0SqUHB0%uG)V%NBIoc0B-7Wi>{^Xlgu6CVIaE`V*9t+DGoJG6Zk zI< pC#D(x|F_|qWCUcefqJFP3=<0uSL!96cm)(;@O1TaS?83{1OT2ECBFaw literal 0 HcmV?d00001 diff --git a/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-69-t.png b/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-69-t.png new file mode 100644 index 0000000000000000000000000000000000000000..047b75a219bd3206265532f59f739361dcfcd3b8 GIT binary patch literal 20924 zcmeFZbySt@x-YDNGU=3V5D<{=EZ@N=RVAN?-|Gq`BsiWj|6recaQ%*;^7cJ+*hnH}pW) zO_yBagS5-1n)PYBsc&NP2*%oWsTe|egob0`@k$_p^ot-ud3W^MX!o7@TLEP9h*&27 z|I@FIh0KbR7JZpg%t}$)J>ld$(-yH(53^lq8cVU4sE;7TS zo+TX}ppncw_uU^o82iS_#pzbpYt9vfgKoTRWL4Ms;f%@qdpBm%@oB|}3QhbP1FrR? ziOiHdQ9V1_p=I2pOJyOg#3e0&TVl}`#pwV2y;|DA?oyZK;Mwt>iSO|ejhG|pZG$q4 z_81A*jUq2Rdg)q+g|@}Ge1mchuN^V_X~~8_`-zGI{Zh+d9P-`_3Ae#KHF6%~jhesX z<%l4(638@RycKf$#>1xyA-L9K zCGS-%ut)N>nzx+Muj9&+siiJBkr9uTTFH1H6^Y>(HR+o8l>1#?AXE6q>O}v-Kj?nZ zlao>t-bx-0xRVj-e^O7J^4ToO36VK<2FI*~nLC^l;*vIkMlJ ze+%19{urkBJ$n0mtR#l;r!42EunDxasB!g7NlH}_hxwL#;k9tm1X;ZJ=NG$#niz+j zuQ^?LhCEjL-@@Jb_F_)H(75i0nS9^fgK!cyD#53+0cazJgl_c}&qiR?Tw){^tcFqq zh@WPOIbE+wfi*t=3-?>VvfF*3E!yVSr+9@)+6VFHKazOpvn1R$o#mHTf9B>3WMJ!X zXypVkw-mq@w3EtrDljPDUF=Xm$VRE)$FvLdNh$=qOr0}`XS&n>)Pz3QvM2SGTz?{q zN&wN>q*GtKwIoK94t6QdwfUL{g~sP~htn2=M>`A0k2xRm?{HZ;Pf{=QsvxZ4&WmcX z`JC*>Ojs#e7sBEa?viuq#i_mss=DzsL37fa&TFICyfq?aU*__x)cN;)V%$s0qX~ZR zr9{)cj*pS5INc=>5 zxcsf5kAroG7neJY*>Zs!LDRzpk7Q0a1c>iMk}Z|W2V;AyrwVq6Q;hatbkQ`rGqlut zXUh0Z(-puuk>j+u7t#)Q1J3hPJA_#q&z%TTmgMK}VjT?ICrK^r1}AlHxBO8eDyyp7 zU;T-`TaPd>BVYk!mPHITvpx5a!V=KCoAog>f%JAFQzL-7{v^W|bGWZ;KPPwZPV&a3?-8j?i&F=2t21gXk@xAV?7 zPhJ>W1XW8|BF1bKNxA}zpwgOcb~sHc8xXUpM+s~y(r&z(s&N~fdEAlEN;EHQk;(D^ z5;EOjc6D*8K8mu=U(YXxxBNT z*F)yI9dz&$ui$r7x6E@}E{r|uIzjg;E*Aa}8$mS3{w~bM=h6-p6u7AeW zyXX4fD!|Uq6tGfX8~XU{*Qa0gKBr!rShu(hzd2h&PyI8(qLRR6Sk)hH0n4+^En+uG z0e?@o8nWPL5)&od?AVrH{9XG6+ZXjCEn!4#>gn!#Jt7*JlHtaoC0i$d*JEiVhO3>d z_JkDmW1qm=RN)ZP!4;Gn*Lij%vc+bP!dX669N~Y`xtJE)jYli)+!Ta0^3~|`{rA`j z$}fMr$3E$LbK9ieyC+o$V8rq|bkmdl-+PUi^epP>M^OCJpise~y7!8m&wYEgJ4N91 zPmRy%0lZ`F*>0Ebam&vvzl&o4EqhB{BXwSGoub9$9{uu@*SHOyM@wAJnXO)web3do-m0t6Tua59gmbcUF4R zlzYpp2X|NcG@OrrD$_Ie6G$IrFQ~X~P9FCw5a_$j7q`_Sa6N>`>u~dYyP05Y2cS$K)bjneNuZFBE2f0U3_GRlrRB@gLWg))Gk`dlbJT z9T8}0R&ZkXgv7vm#^*3zDZ|9)?=R?AOvdnq6>)QuPWZXr?}7K>xwIPcD-QdsTAYJ= zE8a|v9=nTjuGJAJ+@%yv)hBgGa}4PC(`u8;PcCG%^j^1srLreayO7k=h#Q;_z0Y>q zPY<`0m$3T6+cQQZF$}_L+EN6piV{*}y`Wh;phFM9$&sHy1CV3`X!kr~LGH|bsq+SF zyW>i4bhZED95F5h@9f&I&oPHT(nNT&9#uT&Gl3mx^&r{Q1CXtuL@&Q?%k0Zl_dnz1 z0Kw^(11e*@VR=%JrOaBwS%wlZgg$yJy&3Q=>rH9c(>(vYkSp~ZI~Eb7w^9YI14?U$ z- zxUg?H7uI>d%f7qUC!-tI@|!K-*)nbiyjkQ{ObY*#97#TY@_L{@!nWftX!0_EZa6u$m4)W7|wAIgg$G9$LpyQeZl28RF$zF|dXf z_(iHo+{+j8ou>|;5QOyi(P4eV=R;{}O8|%y8QP`Nvm_7S} zl&#;pk=*JuvUFv@6ah~DyRTE0Y(csR92}hDcOD-fAy=9SWN?cgr~7C!yJGL}EVLhP zPCc6@qI0YAKHfd}Gx29c5TL3?)^zwW@Ps8f@^&9_3%Dsj{Ulx19t2=u@mqFNbP|0v ztS<3AKLMcRxmR#d|Ja21cp|zosd^^-HjTJ5`v8COLf_GHSO%Ju-^Cd~_6#Yn;c&WX zlN-@rpB`<`!Kqn}rEod$N}qchN=GI7!nD8gZ978*Igk34Utf)C00lVt!zNU)J@)fB znhR}@q9o}g!l#$+mJ@zHO4yl5^@EEG{ScBgsP!4LKE@ww4>xB}0WZycV$|dO4xZYm#hC`e4 zyD<k>{hl4Rv87nZ75#0eu5onR2(P zasBg2=QG&~$D@ibK3R`L@o5qE6J^#4(std@7LXTkr}A0E3{`>6_Ha7;N6vEwtG;62 z0ea0`b9(ScV5{SfpY78u=t`%XH9W9(@Xj>6rr)7esTO&_8BcqP4FK8|8k!+#8`?Ax zRvSA_G#Sw5HTbM*<;qbMjja4|cRcode_)ZY^1h;k^}}mj+TWZyg^s%X@&QHH>!z|O zqrKk%aSI+*vI@9uP8!v?3KgFG87o}@k`6TcIaT6iu=aD)rHJXz=Q9bly|Ff20lzui`N*e7$zQVawij&t2! zuLR;A^k#dEW-KcmL1D(>=S-pgPLX7{`|)QwHKVc#mU579<%1E9J4nCNKb5d`WiE~u zhPE3n&v{xO78tY^(T?2-M__3=?Hx>@Xccq-+_o`suY>1{N2xfU4x#?I{T>Kr-e3E* z4iNrcrld!?%`X~V74(rwLCxg2y&_e1wYi!t*y2x-iApuq>|CZnv5G+N^BE0PWF8yq z(Kx>rQ}?$SB&j`KPJ58>6|I=n51QxluXuW&eIgFSY}u=Ob~8}+@hJI&zD6$e;}3N{ z2%Jv3Xs-2~4<2(fK6)<; zA0U$SR+9=={znd~$A%AHrP9v0FW|)}oT)C}&HoXM@vvEs{-G7K9X8wJRmSddRbGoW zT4)3Mcx(HtYI~tK%#MeYT?+qT; zM@m6!TIx!=oR8$GvN0*VRjaVWCigvNSYk7By2fp56G1c>b`veyJO}4T%JDsK@{h74 z6I3by9Z2S>^%#KJ-c|W{|9$s2iMuN`TlHP0DVj+yQ)lf!r@|-_vKf-4L3eAn<`XaR z{A;tORAsx1m2W#m$UijZ@PU5kenpMw*PG^xeNSl^&8i)j+G1!UeSM&X`9TMU@~ttt z8uU^>^p$bY%c<}$x8y@#Ot7r#Rx!1g>jRrj1ij_Oocp}xYccIM?zN~Hd2N%b7ye&K zb;^lj*%bPFTvCMjQjCn4zFrSe=~tl4ZLYtSymv4A4wB^!LJ<9hA=+mIu74mIvuC+= z4WT3S)G*n=H|=ZX)|18;2qYtj(t*Nt8CdvVTIv%#X?BgXzR#a8x31x#ZHPbjAfwBlVrcvb8%{3yoSD9U&MI-!H!&`hITuqJXua9jCbh@>d z(c>-O(O(m+e4O2IdEDn0)rypMk$pwP;E23RTBICHw@U7^K32+hPpwKV%x0P3W15)g zz~n&dkl3rd?LckG!%3%odP52IuI;&I^d#02vAF{N_M3#?Q?n@=-*@pTD~bG>8q-sG z(BWW3#i{%Cd8WIiq?ti?X6w*kA^sd~#8pD$ILi2bM9Tuvm(MIgBH=pEh|SH3EzEBn zN&Qrfqn7dYZqT`KQa=doZWRk;Vg)+S2*ri@ z-9oynk3O3+Za0d+`_MF*3_2*5D__NTz?<~$vsY)5-A|Ad1G6IMCVruF8cZ$9brwA} zqVnED68QCz%w%6xk_T?`&P>j@4q_PHh&FSF{hJZ@)?BgP{}{o|0f;Z;dYwRv8?CU( zPpouw+}M2KYauTET?Db)neX#3vAexnT6q#Pzq=XpDF)DCvyD&75^IO4ZH*yR+cGz`ACP3FC zFbw|pzGkwJHgP7890kjN@zB2?c5`7vVUBoJq6dW|&QJaVbQE&{l~_HwwE++Ki|?#I zCJm8nn0={}ISylePjC3=yV+ZUQeFp=UI!aM0Mj2e@-&>?2mb*M-f?}w5c3y67$Bq3 zO1L^tx>!6adpcJm1iT#J!R-h6aU`~HxQ%Rj&F_NOvf^USrIy}A^qh9-i;FqATB=~U z={k_UbkQgb@w^gHo`EL7LTv-~13}?MZTmNu^=ZFLACuoKVd_8{fpofVjQ#`+-xQ3K z=4K=D(*iyNO6H%eE?NW*Z5D7VSzn=ZlHThNWDCrCUX6oMxTDRyH&_JCSK~UfNnH#F_Oao$H zpUSQ7m|W#p*GV0c9#3||5s=)UL`3*5%=Vc*86w?u`<3$N;3Am z^(v3B>GW>4y+pn-v_4R13;-{{Dj7IgfcWt^Rq(6ef^(F?0O|ma7R`Z}-XmWo5+LV$ zd2ya}`;ld{68f?Vuvo%QMuiaG0c8(cKU0RuOrd8Fe|^${LK$7I+$ZNDuO74u`oJ}8 zQih79qrK%GufM-^2j8g-0)zy3F9XzBMyyxSia+{^9ubzOgfYpnd zet!u7nBRP9;4T^O$Ol_tf@&bUHD(kd_zDlKC$ThP{!y78MEcc3T2n}V4=W@Z>MZ1z?%0$x%K0t!i% z>uUcT=uo&^mJhpF9~#wri%}hdB$DFIVa=?+&Y^k5h#4uYe$A%$hM3*#MpYLJG{X`g zA{d{XzSq9fUop-DQ5~Rx)-?Be`FWsv+;3pm+G&cEOsRNuM4KK)A=}0-XZ!kN>42gQUR;& zh@_yB6PS5BvNUd#`iX(lbNFnkZ=wWpV!^X&FHqu~@jd-RXmjEh*=$}hn{u=?qo~b$ z!+KDZ10g6UV&;oly`*?dpNWn)wY|RoYCX!fD`ob6PJFCYPBCdyB zWfXfZ?xan1d$Oc60L}x;dHG>^P?()%QE|!df$}#b&u0VXZlQgKyjZQd<-~?w_u*n z*5r%PSd27@^7Ywn#2jt6BuR{W%oLD}zAAd}Ubm_*)E2M(RsXDsuSOC%_O2aqjOdL= zAWe$ZcnIT`zvq1;Xq|WU&%pT62+cM~Ibp1C5X0M%JoOYkc|QREYNsNJ?>hxm!C4!6 z^SjYyefZADTS40l#H$nPP(r~iCAa)cBU18ND>tOW>OQ`T&1liv1@5okK-dRaB}Gj* ze&l9AU|K?jx1Juwn`cnNHa>z|OWwHogEGgG=1Tit>^K1=ZhLvAn!9SoZ=+;J7Af#` zkY*M%B-*g0rX1)6Wj(!blt>Izadv#cuA%G%=Ba_ zO;27j|C4*L`7~_?T6Tx9Em%ImVq=D*6dUFBtQp^ftrCX+Km3OswBB=UN5i=|Tetxaxc4o2xU+Go>XGvrP? zXl83#`npAAZxK=&o$((N6lHGRW=T|CU7~lu>efhLQOUmj^5qaOqwc@70E4b3a_7ms zKV2lH3`VjA!^ zSLj_J=6Zpq1uc^7=wbC+h0yzLzCLRoKR~Hlau0{@1UhyRbm15;F|gyer&4)L>VdSA zaXk1DE)3mG$chhi{GdH?zBeGy(4PH6pb0b8H=_`;c|{T$FY6T#NE;#m^o>4Sb%#nZ zH2SsfJD`al)e-H7()->`;?D3n_XDU(6I%>Q0Fbd6U2&`&?L4FhIIJi<0IdCO+j38u z(@O6j#aOTl=_Opdxs*1mx;jPWTd?;(&=^5F0S-q7G!Ukbt|}c?uP$O0ihD~SliK}MhD&S0>kQEFzrz!d$*dfMtv5V z_M=L>3})pRumuiRe>Q)iTdz{URKI8DN+abdCDxUz9B%+0e?&sEY}_up$2xRYUK1ErlNE+^wMQ@k3z*%nyhbLvXfDcq{cQ%8DF8!_j@ z(*JWFv>JCDXgDCI3G)w?T4^Nuf$jz}-l#cZ24I>>zz?E^`3$#dxjoOpMd$QD2uwM16D@+q)?z|D7>Yr3}k)5JR*cGTM` z#V?>_&nFuiK-Yg70X}8F7N7aeX*MkoYTJzx_(0I|R|~Z(8A%m-c2|4)z;>k2q`l;O zDQlhMQYV-*G4wLi&N6dCBmWZ&pr9UzQf~!=38$6OXm2CX;X6fu4|49X4(~9@kKstA z@|raPHQ2&xgWD6A0BUak8)XrqhcnC@6P2+V_`4uQy)X{K5@83>4QKE+Q90Sc-I9n#~rwHRjk}_IeTV%tHtFPvcT1J{f2?(BZ8nii_ z%Cun^-pZxqt_DUPbO0Qf&{&Dix$L{;9Uo*qA}9#Cey0{^(A?4`9~BGvF_HviT=Z+- zY}y`}GskaKUa=E#sKlj#94)WDPo(<}))SN#<)45il@v9eh&!*&a_*B=h}(U+HxeMb z@IKl543oOUK-VA5kolfXI`(7F)`%N1)S?o0x>_ZVRlZQ8=>(hrVjZkW{w{nU(jbqA zv!bt@Vb7Zo8yc885rsH$8z!MZ(sJTpp-BTOU$Z$`{U6s2E3h4ZJT~ECnsOD#0Jpt4 zuK+n~WO{m?OgPeJYpP~sIXfz9*r$s@>ZpPh5;@-UicvW7_VVsSdtE#YEIESDT(TrR z_=_GclZovAbQsYnw(wiCuqSUs=ffJ*c|j&gs4bP)96bA9(S|J>M%ejBfy{7|`Ya)P z@^qico2zfTR~uzXV`VKoP0K?ENafur^=W>h%q-?ON!N|!V;g#U-UQosWKP1XvYC1k z9=vg?4-!TvNf&1In0zb60fH<;7NqiUkFU&aa^emjcXDAfZChQd8Y@XKcH!<*&bNG@ zL^e!B3yrE@zZhjHYWPTe($y-y8T8>+)agzfjWyqQ_Fh_Wu6V-$4@fSc(?2L z<LRP)$ z-U%wtCqUiKKFw22`U<$j|2S$DCEJ}vK+EUT87;O@UeAf55hJc<%vyatSPouA=_R;h z>1gkp1>|&gyu*7wqrgkC>MY(+JwwTm{}1v8iu0y~HfiBBQPz|&hUF_aW{+BG7qzqC z)X%QWuMH3st3s7Vv{BwP#ZI$o)_jDW_QWdXdfDff+E)1Pkgxg*ym{Dbr@i3mUqhtK0BfEC*S1=$Wb3M@NRbQwE+3EyPDyXqMJd< z)%5tE-$HHmF(O3Nw?&foZJ2Kj+%bd2Bzc>ciwn2wwU~laIw-Mx7G!eg@dAoHqE}+pZ)iRuIa6yV2CtB+o_p%=itdd57q!raR4zRoDja0Dpkzt!`)z!0>?f5@K2I8^!H*za*wn zeig96c6z_bEg#>xos}#<;|5=p1Wokn7ke05oV#z#$LObp$F*@J*C2i*Uwr zrG@Mt&`CEu7Y(fAUy!d6em2})eFK+Da24JO)$bOh@{lP315hMmoxztmUaKjG{RTZh z%2&A@yl80sV0aX|dbEZ827%0|71oeRdKL`m;X;$X%OUXPBrUs>x3R%YNk@DJu2D}; z?PNVq8e_Wt-#&;3leKPJ_}C;_2H*}Nqg?IJM7Fh2LAaJE63O`>=QN9icK^au8t!F7jsPzgn~8t4FcP(QYcQ)lI~YRyLL)%i>99V^}y}V zIN*uf2Y?8_6x3GBId2fW$Bi@N1)qi9N$ZS)i3e=hHrX*m>dPUwS!% zq$tG(f@2rwr`39$eOWSDole+F9GC=jf=?it&{7WWcP@0o`gOAF#=U@#daA1k(-R9D zE<8aR^gf5|oag>(;~j@MV8c#z%OEm#CGi~AjAj>bD0VY_MeG9%R4Rkmm;8fl*lCvW z;>jZR(XJzC=5+&!hX5raL`a%+(|DIB_v`h!M?#kI3~7fDE9mAq37{ZQhPMD z8w4E)n1#u^i8RB_I>; zBuiFDi+C&o(Kpdd23~YMeT%=n-xJ?7CTJBJm1!%DLW#>9=6{LxKfi#~Nq{iK2$&nQE=j z${F7Y1B^F_O<8xaI%WQ81_i-ZoVCRGB=9re;rUOlcG_j?I|5pCj1~INA_ym5iD2dR zJ}fkjzDvZK=FOx@V#GfvFREeM`<9H`aJ7n)Oq}t>#hFLx_2b*mu^-tEWl<%_>U`Gu zZ26`EY{_c<7_z3C^lgR`;dwhUbc-*9WqR%f9R6f{k)n+Kib>w%uXR!g_ne~ff{f}- z{_qDzWn|>bA}c}o1PPW{k{?sePxkJrZre185_8!E$~(eW(r+tdGQ+n@LJz*7 zuIcU@t`rh9qRLN%e8F%r%Vgtl99}!{VMVE)*4+7MOV!7?x|w{#zp}sFZi*^N;OTKZ zvvSTgbR%9QmJBc&YW9E-$WZO6WS=jm*^AprcIBt9QZG49X7{b8#=FZKEw^hbcwZqI zFyEc`nw3TCj-fpc114XS$^Ew|qGX`JNiADHi(JU659e(B<3;bqh07N_TIrI*x}xSdpox zr56E(?Ud$_yKEaf*N`+<(oPlv95N@X%t+%iZ07z4Hl^I0|Iz|(;7~`B5hNXR$0$5$ zi>03dvROIpiKBsT@y&WL598CV`|m`(4!FF`*mIM68?;!Oud$Bhhv-jIeQsyx3f6MM zAaZ!@x+yFa{2mP8p~Tb$(%jb-YzR-W-X3!v;eURJ*QeQh!SQ0u+}(theVJ2H_3z;p8i6>(uFTgI3Kcdl(2<|sAfTG#)Xu}T#_y8U17`=_tvDR2+=B`6KuOE2Q6@y@9EHvcs&{DcF2`S+FE}1JlwRc2cq*DBMZ4ixe`=$1eF=&aiv@s z3FwSDqC<$RpbTmM3NaTTY>0z`=XU_uw$AB}ihR(@Rcbif#SvoZNzR7W$0}3X#rKEA z{rh%|Ju&pMG96k*bJ88;7gBOM7pup0wiCiR)(!4tUP;N3nq6BV{!dFB7L?L4o2KvT zv<*dHEI@@$rfB=#N+>&z)s|w)GE>;=-tr1m*n;rLKfw&IlCMKt;jux~M=gPTHpBO< z$eud}(Gx?YWX_4wfzS5Sgz!AYL_)V(uUC9($ASRNj@Fjm9(N2O{ok0tt$Ep$_!!ZB z7Bj$JJq1L*EO+B(U6J&RJ#WeL>=4iT)s`;=WRlAT+KPD$!(6B}WuH}F&mh9KE+i?g*I15P`M|Z6xOOq#q>vOW5y_ zFKPgZI1Sont%uVtkI}b%$c^-6NE||>uK+suJ51Q;C}*HsZMdFL8De59kU3&I*_^Jc zsTME_qX;s`bC|%|y76(YPI|w5#2B(Onh=tw^F1St^OFe>bNlB;zlC zFvk*}B~VCvR~70}BcesBKo=6_c>Gk@VWC|kt=5;PY|PbcQc zvj3C=r;rEF-&^hX?PAXt+q0{;F6arQpRJzOy` zcf1a#+=`XiW2;C)NQ!hnJ;17trTyF)AsP%f)s@Np!_(Pyh4X2=G^RV)iS9rfclf^8 zeuLwQ5X{3|7AiglpU0Qeq&09|myWSW92g#+wB56Us%3FFmwZ zA>h-kt2oR8?I=<5<-mJY?F96%AUT(R?ZJ*~>Fp-umkMh~2^yeo#aX{GCS|(*76I>- zv#I&=;JROR zhvZW?@hiER7ABO<5ILdlzD0`1VqEK<%-FpBSWntZyT)ZfV1Ki1~C- zXcgczDF_aLvRKvU>i-o^v2`6M(L$I)A@vQnB=$P(eW(WjTi!pO{an^;0R=p!Mpzz> zknJ+mOBn4z<=7O%iN)kwXyzx^m0G86-rFJtEsgKfnqqJ^&%K_-c?6NbPnNg;F0%IT z18x83|5~ti`=61xMFq^uU(s(Z^LuV415`k9r?YqJ=5bslVRB z4TczT<1iFnF$W5)GIH?n)KQ!J?;0dxx1wppN@Gsy~fMex-&HJH!U|HQ-g_lE>jQ@nZ&co-UotF|6H-BekjzyH%MWwiov7^Fzn9mwom z{v9#N8};Fa9?gFL-4Ebon;?M4N}q(Cfig&Zk;eZ+q~`2wukW20Yct~dO*l3#O;*6~ z1c$mVcY&CUMMh_X^&(BY`qTl&MPT;923%eM@Jb<`2OHMA1Td#&+KBcDckUDlvI?Qt zylyRI+n#FvBij~e4#I(=LwEfTO8E)^3)wf0fKE~{LUrs(GmhjfBr{3<#f0AB|4)}y!PaeST8$p~)_)_mQVnCP z@tJd<+x~1hkR8yU#r&_eR`X>^*ty<#h1DRoDm|Zu$oZoC?00_{ zgTsH1x(OwsIoHf)p%Fl)8dgrFex7`RO8FbP=Y9)`Ms`!nTmMI}rNUoH9?b>{V@@gR z1=87oPWXe;GT_*T^)Q@?NSP(=={c<1YR!x>Mm1y~S$7~?L*&Lh_|C**>Bb_ikf5;~ z*z2Kq)Ji!}&xf3#(V+4_hA?NwaNTY4MHR4ojMIH2=>-5vR0`SE4>(CsA8ak|PZ57< z{F}q970|_r3?SCn~o#;GQ-)1YXPgL@(X&0Hw?Uh43fZYH(WZ3FQ zB$Nj4;OVA^?a?~F4f;iENfTq2$L|h*!zP`j!b*(R_D?O;D{gW?w~{{mGoic^iK=MiCRL_9*3h&G!R5t~0O?_Nv{sjMD=7`3(rT!l{S{h`)~0kdpmn z32A-e3lye9%wzYlX+igGyH)0_2h%af&^3mjDM@@D%n*N8b%6~)7aaMXDCO&pg z^f~e9%mb|RC39N0rosP*!z=Kf(V$L`Nt9UhDCYA8QYO_~g7J4d3}B*7M2t0nyzqAS z*~rD#vcO<5k%ThJI%SQ>&JE@hf!JXTp=q!A5KxtW$g1I(_?isyoV&?8ooU=(McyWc&~0rfe4KwaJ2dh> z>|{CAPL^ZzWyx2xqd9!zr>8!--i;6pK_86r z)qVk}K<_J*d_EIuA)5y<&%x#$_unX~DGL89C3W-Ny$rPyG;=qwuG`>UUZ(cs! z1T76R9G2o;j*#EJzBSw(%>g-67(XLizK$6_5QCg7W_Ea%qZlrKOXI)SP-jBT5pPiL zaW2M;vV5`;GE2J7p;AmjUd7v|qxIwm(RV}oO+{Gs;-495=FoDy&3_&V>w?+4DgS{O z?Bn8P7(fFz8S@(UlV!ILh!e6n2zbfVKH`yQiH;<3;ja!dzWBeZpqk?M6Uk57qUIpv z-CtcsW-EAasv;O$G8((PIsY#WjsI8Q`M-W=*H6_rrCbL!v5tMGUmh{1#q$4wuXak= z_LEh`kh=icUd-A}J?39pfc&IB${z=q0CQ0i@-0{4rSZ$);t5#~v=Ghr@FLo1vrEmu>tBA z#Qljn<8f|qkdl!N17-&^UCb^0rs|s^5Uv#g8CBX&EKibFE;1Njxdh(waHTKn!@_eI zHF7F_L6b8@4*_Wa&Dn?d0DD3e0ZqBXq)TnTedgO2Kw=QF^M()d3@~G+&%qe#zmDc3 z;dM?yVbMV>{g-EZ8UP$?oPQHnS%;%ipfJOy2h)5jd3r1SHbd;b11Oo8d6Uk$dH)Mb zTtgb!DoC~v=Y9%?dwmMXu1f+C14N|(AgQe&3Docd$_xT7dAtN;<#r)BuI<3ij)77_ z7(iT}7%oZqkxMG2&`R{S^~`(i&J~*S&}r=SR@hCFj2K^Uy49G zOBhO{Rou<_M>w_(x08wPafu+PvF$$Ua_pciCN7# zt5ydSCb%!}=OF<;yRmtink3)CK7x_Ho%&>>yAY1ME@)IjdzUYTs57fG2#W+6AS1xh z@ug&{Wn=&4RrHOku$8tDMC)Ob^GAOwXOQ!tC*X+J?PXn_g<9WikB*|42Fm{{oC)*@ z`SGYHl#S8!04=A1UBDR#&phfO=X}To@y_~d+nu%>ZHSZl(@h*tnlCrdq=>;zSc%ZY z#$T;+dyO&u%5k}y(%|K~`Qr?jYiG-JXM!H_G{vMij9|X%?GnhF6tfF+FwvQOOY|K~ ztatn06zc`C^e&4N-zjQF8}@LXOfEjrq$G(BFrV&UVwGXQ3VyJ}smE;8go_KLL_OQ6 z^5dwYIcre%7F1$k-C6rwc>T6!gRhU1ti=l)qOPzrH{abwl|%&3BILVJ3A;kWYWb5q z`{wT>!e~CQoxc|#hSTipRh*ZTVvm1By?Lz~@;z4SAX&u?p1A<<-9L2RkXhxb4Nfb%I>*{Zu^^1=LU5okdE?GQ&`{R?!y z&Ym^i5?s-{sOi)wb#d2?yFzEKfh>eyqASgj-+gbQZ8!`1c_A4v$z+#M z@nq#Ny?cvj8EhJKiKg!AE%%<1WxBi=M9n!Kyx|Jqno)zK*sjlJV0H=cBG9$uabWi; zij2Yi2;u)r5r^q3@E%;;0}&m@{9R7Kb;tI$r*d z2r_~age)DaoKwi%euPL&C;>faY*{^L9A-i(a`rD_iX~hn+s#naTv0*mYN86M1}4e5 zgz?$Dn?!9D)`p=xoP`$_MG3=IrpTW|f~Kg4c`UyC`A{kQH<30xPeqV}oQaI2TDD=k z2?wK>H70F7LCVXu{Vx-RyV4%zRdW$%Y>6iCC)bHNn=4;VwUFMlV|G$=9Rx`%`o_yP zPzW5M4!(0B-jHHr|Cl99FXq^yE)NrS{aEy$1HpnTE6uj#>BeLILZj=QvJsJ81M^c~ z3S{0&eWcH1!FEdQS=euylca~9T`tFqpE^<$bKFkQ@z z<}?W3=qIR@KB3phQa9ld7X&+WH88a`QR6A?IM?^x!HSuNasEpDOlzayIMiYv`)OYD zXmQ?-K_Hu8DhSO}dUTTGT_^E@Qh#SR%E!Oz1^Y}ma}#o1f~4={Q|UtQ#zalI^yQh8 zMF1?@xO-!aM$vOVl6x@|Bp9y=aEd>vj9v|DJ-o>Rj$qU*LzXurw=#Cj&hp4olukhl zP@^hjUEK@C=mqn0ulyMd;aObrKu277luY4$*&t{)Ia<9y$e)IBo8EX2t~}}TgfQ!u zrT9>vpNJm^DtTa7#jB7QHgl6f5y|#0=_b+nIZQA=JmMNfJSF_5lKlQ2!#?&dpoBC%(FifKVkBn9aR@6sx$DLl-+lO zfMg;!5y5D|O!UsYTXT4$$OYb-(1OY767S<;0sn`DQUMtn6(jPOJ+i2Qs8dJ~sBJ&1 zs0X=$kuH(wM#dAEmpj`nmX5QQcWFbyM7T4mDW3>Sq~EJWAoZB2PFwtgO>nsXKny

zd`MapWt)eWLR%?OEMjrYVWBA+rjos@Cq85gaur6k z<(D{6Y+rE`iAuf_yttJ-;*8PcuTz}yH0q~jf}wb`JmWvBK|2roWwaR0x#JOn4Jh+HZ6CCc0O`Wl z>{?9E!EO_=y2j6JKiJ)nf?1k%kI;g*S4Ro9eamrPi!F;ts{pW z)QKxn^Vc+m)qH+sC-cS>DTscZ5+VKe+KZRkM1yoVt?Q2w^JM-w5yi=KIFA2P#qllGA!D}k3*;rB`df(1IGqQU2 zI2j|FY@f0VwB&J7k!@dGndf0@^p;zpI|~r#SoRxs$hB4u8@;ob7$i*E`WQjQ3utQi z!k0G^5=N&3EHN}<<^rf(Bz2Iv{!yJtfL?b!5yb-23#Q(Bv>xf=0hr9uoc`3TIh6;G z8ggnV094pM#%s;lC|6v8OWgeN-0qAazp{^=e~RiHa}|(ujP_+&7j&$Qi8jb%WnPe* zSokBxT?N1_IRlXHeQ3_!{5Vi$L4Qo0TQXU!NLULB_@Br`uBfc>N_+bO=el@~dP2UK zAM}6i#>;LEzKo$Jdkwt}c*U|=1B7q+N3%rijkBbEkSe||z67Vi_;0_d94U1^#)s!> zbpM8-k5?~KO+*u|f%~7rVf8r=1uN(pT`2?+e8uWT(iLSvI(3lmR%qM53JDvin)rc% zP+uZ#;CUDw>MyPt-D(S{RA)0Y_SY!tR=in9+y3@LV`~K;Yldb^Uq&dxzrn{xxnCD& ziX+*&$nDjh)ocw`;I!m}CX+6wJ}KqEJ+{W=Kr(^8d1~*hOoCYGBX4(|yJJr2lEE3+ z`|#9T*waBAiwWIpokd-jy|A5x$r7-B8u^-lr__qM$x)ZakcctsXn5}@vf&pjciE(2 z2IuSXy#SiM30A$*!iw!DU=z#Pzn8TNe*~lU7WK=(jkf*Ew!e!pB7`p5M7aH*gy7Rs z{a!!*T?fwqv1YxIRC9DAdy3*{X3C|*_JH z^U+5kcp*fKq6!{+vhBmv_CFQ`Tq6veg$6D)Hr{jCEaSp~WpBNw{Naf5x8h0LRTIDD zIrl2B^$&g*ZT+Ap_PBM07`yU|!WEXETk5h>`vtz7UDtPh?d7`XpZ-=|&i}IA+U&JlES8auq<%@Hyzkl`UM=#w^RhqsTEuO`=G`EOc(cnD>Zio?d6X;;`IpF z*FVeo?OgkUIX0C-jw#zFJPOX&;Vg8G5=le3ieP<5Y({!WTJ|3z`01ieOL~Keqd1&S0RU9{@X2+Dhzc&}yVBNgv zRBYw*JF?A!{Qu*9L_hqW3T&kQQruN=KXvt@BfwU%M7_@p1IBRP<+E4J{CSTfZ-pXZ6)2i<7})pk%;1?A3jQk-24eV@<8+hw!kLw`Li4)z#S}SihP~!Bm$3NShwF+uzbQ%pf1u^=;2t= z_q0BLv$1|V@GQfJta*2K2)B3+Aa0clYLq!a~IBn0VhkOnC!X{1AG zID>be_v~w5=i2Yy=X~eq_rvG%!Nr_w&N;?C?ie%jftn&dE+y`jD_8K9mE<2@xpH+D z{@7rn!B4Je*Lz;Mg1DkAFQbJ@Td(yDByByfonlv({~AFr^D-@wiAdu?0TV{#JG9^h zdZqX@d8X&MNEw+%>4!|%NR8ku`g`%EN($1vxbM)mTyyKnXO2`S^ae-PGnV7tR^?RX z_>77C`Kb9rJM!dUYYUqpv?%T;HA5)k(TlOup+XZWMfefTtiAl*ySIaH%3|M7kiO0k z`avlx4AJzEsb3b`>^89t{1PcnDMD8FIl4YJ1IJx7&QL@WGUz}1I8lOOg_GHALy&;o z$kXW>k#NmiwT`&{jEb?svhtL~Hbe>gn^V;$_5OQH zJtv#hTf$5{PsfU`VG+bjqPFQ*MO>GXUu633;)J)y(zu33@Dq#4%G0y!6fC&!uMDWZ z5oF$hgXY|O#ip5~5{uZu#wm?Zilvk4wfmy~t^YCc7lU$-&QJWvZKxe|>EEgy}&GpQUpIcDDDQ z-#UfHJ*fihGW(s0tV18}FJlv_YoPz@Tk`LBa7iXAg2{I9eT~B1yD4&s+=b;+9&b)? zBZ-+^Ou`~KnEH{(@e=E}gI{ihEJkl-!#?X2RylH-)J+m0c@tXU!TpOH|LH!B+p4B+*k_6PkPDi_o)FLkN=gXM^kG|+@=j#^32UwL~gjQqc zK7#^0+aFR7!@W^8A1ih`lP>1z(E9v_=7)QWV~q)niXL0jXB~`j!bE6f)D|gFkYYPw zlkC0ix>h=^FV$r4qWN+9?zED9vl~@Q;a#kBU4Bk_dv`#QPU7NpPhEUR{^ajQwfou< z3-!s$Kz2LS6%=&6=azB7>FLp49%o7l?_=+avxDZ3zshI)*)?;z`=l-|dpEP(syFRu z!miMMqO`LZGxa%Cz29Ds(7BEsC#QZX_ReM~4oTYK-RrsX5uU8VRO#r^=*RlHWlt%j zP}%ZSLJr*-64fLOc$EArU9Z?F~*D0xWl z{(D&alNQgb?L`jVqAdAH;`f#5p3`38{I92~+}8jMHQFXmtTX)-ly^=1{%F@=*IkuN zo$drQQH3X2@PRyt+f(9k7wM;W`Y!LXvsJGWQx_Q5ijK7kIZTpMJ(;fYibW(mLl+$} zomlF671cnpx`3$78l{`pyH3U>?!BLPN4YNBEPvf%Oeqz;KXbaU17t@?{z<^d(Q)j?+K-n6v4d_U<0^L+vuQGUOL5;Uqm;6>gysn|aX?o&-|AFzW>G~bSbG0{u_yK{m*RJ{;Y)*A5 zs>gUAOSjy+KcCL$JSSg=EPe6B7NrnNt!(x2;RjmZ?ZzAIj~)<)H$TH)oA}1=%tIFx z?SFo>Z0RumHSAF+x=@EugFyuezc~7ouTG!D0rf#J*ATtNQlh%#FWlQVx956lBG52! z>F55f7&aLM`6B^o5Cn-RfCQoupRL;0S4#B1J;{q+%cOLF)=uk#S3g$>j}b0CK35}K zA;tFz{kHr~9E&Mil~?RK3g~hsn9n*>1?>8T%fBgQh>Pr0@8IS&o*4!N-R`WsqQyua*{RxVprjmm)hEKAVjwhMoC1Df3Si2WtGPrfT@N zc!_-%Iuf8Vw=1DB2|adLV)pOoeQhB^4#rEjU(L%sV0dUwyz)|+ltXtL%HRS35hu@? z4Z$*BJRNXxwy9_H&P&314qX5t|K@bAHENzbIj+IXsR^?$NN2eJ3offr!1-zPc|zMH zcM1&F9jVcm$}gBAJz0`UPi}5LH{jgF&nZ#ni&#!NP^01wvmu<6E2o0X$8Wdbf}W1` zzxFuTs785c%DLW>0f~*X&lyZV`XkoF|A^V`*Uo%9qgl52tSv(E4VM%x22XZMpo&RG zUg8sq>Yv3HSY^+6*yF$Wo%|*8OH^2-;+Z)UonQqnMzFz^I&G9 ze8%AuZ-$umQKnt#7^+S(`8L=7wW40-Q-CHE&C;$pde~#}Aqm5Je~DslHWfyVLSu>i zCzPzw^e&g*Z?Cpef)KtRKJhg2-pgA&wu4MsuLhdV&rZU*d=IzH)`Q_0BHOVDsOj5( zP_~Uj3++$)Y!Mk+@F#|#GoAr3HoXI=V|&tjyYmHeGuA9gu1ZR<;=mUJq2M0!+-qeH zQON{1uA@8AMMU?6>?dCGYXb-S?jzp+-mf4iiV1gVsK=}?L*io$x`ij+6-qzHnL3Gq zs*6@vI}~p$oiCzC0f4LrPuwABM*@$;!Y}mvZ^a=#l^}xSja=|!t+DqM3-8(LaE15@ zJa)#0l6N;FW#thXEU8g+aeoa6{CQ+`S7Go4i>mjik*A26T2QFK&}J*PG48zCON= zS#?pJ$Mjl}K26ARdTgQ*DCoRTa{yuc!-IMh((}}&>36B^kf?{89Mw|x^o|v0EH~XB zwLm-PtnSn88!|JZ+gB$Wi=D7X*cGwP_%!I!&@WEybjul{urgKBR{90G%Kz?uzY|9* zL21%@F$GiT*DJA6c?CkVn}6#M-^zu<7-;u*7i`IO7i?l+C@di&AYO?Ga_07A3rj~_ z0j}~Ys9G0eUFZg%QK3b9tQu2%zvx#SkC>`$n9VKyA2nI|#(VW2ez@0qVPM9F>$o z5EvjtL^AAg#5~rMS=DJ}w;DsR-h44#?s=p0?a7bTq1@M;24(O_==}D9xDt}}N+}1F^N{1;?m%Jd7Lc>aP+)G9!8-{D$mjP$_Ew)u7rwueldTr#3 zg-?&{SRlH7i}Wit?T0xkdilCM3&g)pj@Jr%ZcdyV;-ept(*rq87qp+Sh?7tt@D}yj zUBJYr94<5gGB^#B*h&0n4u@ey{60W;#x0F^Z820*M+=ECi}Q_ZkKq9<_om-ZIhYB! z`0(0z&aLVQ0A${qyM@TRMC5Jdvq%zF7w_N0AF=Q$c(pduOWag>q#DK)` z>PKQy3O7hmz0fOGgo>OKWlG0#m)dS^H$u)AX@THt%i{s2Vq zb8*WKgl4jD&3bO8e`*I={Tl?i_SxZlT=~=Shw$kP2_Jx=QBwckA9IW9p@r_F_b?C} zR=L?qM*W=+A(RyMJ9ex0Kg*+VUY>%RDsea)!u}{f&#>|kDAcC&U&VuJfGY%T9+K^e|iCUs3G8txn4pr%QkO22S4n=u(wbyd@Pg%^S`uB#x@C44-L zKWl#;`TF>NJ0C~n=-WwSH%oITOuTw>MJeO~l3Q`G$lpngn3j1x(&K^>R5Xk8UiBSAcD?rI7~g*D4WZ7pXu#?+hX|_Q2PJC z!1>>fzJbl)a5bEO<`^Uc4G|TXFWAm|t26adl(jYkNX5_?(R@AE#$XIB*@;Naib4R^$KA=rP&(gV-#PHN1JJm^rgaG9O6iV4 zS#;@br(aDNgV5sGsAJHy->X5#@x6LFQTd^J-UnyViZBKL})K7`lFhL3?ky z7!dZeaqG;tEZBC{9vjdf_atAas{LvT1A+4DXm1(dI>~dZ_F#I{*k@z#!+p{U)DChL z$SU3KLj7;Q7djJx`8}xj_j@ugk4r7(?+Y3Yu2?-&(hnw8dWFUD{_3R8`RS2j45d2& z8<{bxaWXi_Ko_O~C^97r&v?O{c7R6ZWzfsBtG;|SCr8VfZ|(t}Tqn4GgKZzcTs=*= z7_29yqnEcepAph+w%l2ex$b;lIfa+`tqGuS!YCdEFX9HW1!T+GWaS>T*6jzMv_4|d z`Nr#hHEVtb9imt1vPhyXUhKB|a9Z}Ia+c~P%iZA>0qwcm!XWo7xl7~oQqLPP=Pob{ zF2$*dx}4113EWAoFtZKH zo~AJ0zd2`)?hQXqQwoga-{Ts5)|JS;hXg0Zl&#R9yntl1)MfxpF_=MSvm=>Pr@(NB zYkOEzouLbQ^aO}Boa+oGNMhSDx2jsvkcQ=EtV$^g44P}0c=RO(&zP~zDbH3Ln zmBY;=95y8yv)|6?So>#$F-|`%C2*)B<)p zS-n~>8m(D1KHR%uyvhY&j-`nGvq_i#Y%RFHL#N zg{D#2E{k3KoN*F=$q$qWM5*TXNpC+iee6{7KEb^v{Zh!U^uMj>3tdQLQH8=GnW0L} z;J1CqT9<{bA0do6k2aLT!{fb=y%}|VEU`Cci*%=n@ICKFAe&-zq)A2WC-~c0j=|{yx>WNT1Y-7kyff`D`ZszOIX8!2 zGK7zY(|SjY;@)5rzOX~dW~#Nsu*-VB1+|gGt;Rne6U{uBVWtj@u{+X4e&Ep_VMs?T z0=Ze?d*lL+wFjRW{n~BDj-A(W;%b?uSTVP|DMQ7xWi$Q0T;j*+vA?$kV9Jr zd=U85bQt(F$vhTqpvHxFuwSOM8PJv@9>w3%Kr-F#Zn}jkHgBaifU%BabTu)@8o};P z;2~-zaI+t@W^te|Znf*-936CvJi4^J*Y<291)o*RhJ|oBIau&WG^OOv9JcWfB80Dy zctNA@IBrCkGL@dxYJg=QaShzCIM*uIWi?i_`2NiU1%`i`^hDPAdL=neetd$XUH(lk zXlRF{OCwh;9scjpC#_EL2Uv1|@Z6>i5k!m~Qm#uX4U5VftZ%2b{xAmJME2T%|CYp| z2aiA;h9j3zRs0^{9~t|jr$afa)PQm&4pUWNZF-8^vHsbbsR!x}z^s(YZwtqvSyQ$- z@Hw-&8IEvni)WCVys_TR>kfD%5^(P8=2og_9KxO0Q4Bt7&grE|bH}6(4uxfyQ3{0| zJ9T+|{t!mAPyo;3!x7zWdBNm=_$wTMFqTrFYawyff$?Dt%6a&?d=Y$Uviwkw`q4N5 zcj0UHypef%w-SN0$ph}_C-%lOgear#s6TP(-hChY=bvZLmCq3O@>m~} z5t_*_DhBQk?CIzwPO-RcOG5vqP?=5q1MDc9{;aFc=7q+!aJQwv?0be!RaO0=B2+hn ze@@BffXaYW=DHbCOC&&!smgkc&@^{A97e#g^7BZ_qB7hVdygB9Lfgg}{9pg^@zTjW z#E3JDh?SKUz#A)IV!A21oa#?Ra5ns#WxmJYn%xG+>w_j;l}dgR>$fzxykCrj|8*3T zYQ-ALiAT;&-~D1|zA;RZ&X2$Q1;u^0#NF?k*HG}r? zoOH&D1h{*HaU*00JmGx(Z=ZCF&EZS9&qcVejZC?Z8X3Aq@V@3Uny7Tmt-K?&2YmCGsg~D_eDMmLmMM0(Q$Gn9Pfc53GS-Cv% z%}xh&6GTJw{V@8EF5@5Hxk%QDa>p593Z}VRQ`N7Vz`DLz&CQ&9 z>pB>Cp$~f%7?aR@i5OHBL!qTLljdkT3Rz3%&4{nl-=opu4O{1+ZwJe}_5wcyqGS)sSs; z`|nRj3+tgg`krYzd5ZmGaA!7#atS>pEIZ=kB#%3CUG#a^$#|X99==zSk$~x@P));t z#P@>d2W^f_SLz1;HBy8spBzcv-$?(U_4I5ugwWV~mARw^$*XuP<|~KZSMIM)KCVqlP5o#F$iW5Jm>o{LPvYbAY>u04iBhX3}+3>3?rju*+C?oIgx8g7er zyJ5HC(WqnBcx>pm^ToEW0f(1eU%=Ew+~RO{0F2-=sf*qVOruzJ6KC6!BCdG+{brL& zV$L^mAqVPrH7<+y(6rkG>o3lI-r4f=gV|mneKKD^pC%PrtF~>l#2sam7V+}7f?a$6 z=jyG5AX>~boEA^eh^4sE=P3fgwd@Ds2H77kV_l~H@>qV`LDQ?@nuAlE!GQxi-3@%i z&-8z(@@?NRXBC>bQllTN=QgsV5;!m5JlEo2R=@!6uVg0baQhcvN&EYr_x$=8@?NKh zJ3wD=5ZA*L$3tgjf`T|o1Ublh$mKdosyYBnDS~llF6z#UIH3)RFBpU^PXjGU)0W!n zT>@-2h?{Vmkmn3Rb?%4-b1(-^9GjM0ASm0rhn1-&8VR5@nB6{tU6x3NL2lMeP5+l) zAZuxbMe@(3)*-;DvC1TDG87aHn~!`*2e}2fZ7#@61K{3(?z4T#3FTC>MMg{HYd`A) z0vrj+h2dXh^MQ&#K9E41(+~f)l`?bdjt{F%_xhHSmxc}kz^MMUn6a+wI3}= zzrcFiF~+jVz?evl?1A7JnWd0UWOu>*1LuBa5h6#CJ9vXv(I>=Ng*A|;6G(x^Ao|HB zR!U5)O^gz>f9g;9$+O)4DgTp=SnDUxaf*5N8Et^!a6Qj*B$qt%zG#NYQU2ry+iWEZ z!b9DeB!$mfAz|Qg_8rtm(E857>kA6lPgS1qZ8Qe52F6-!QMO+J#;@#^dEFGdcLz_9 z5<@;!9Q0srJYJKg$3h)Gxx!BS3y~lr>{jsu~1}gXez}JB04iq(_K2< z&bZCVmdKqDEW#yGo-S3w=CHqQrMCcIS`oQhvh0i4M7B2SP1slHD0WnV$$&(gO6O1C z_Hc1!puZci<8{p;Tm|vmeh_q`sj3n;_5zUuNpV|}X?6Dim9WbKb`E+u^>)auz|RgD zD3+Hw_&8vg5?)m|2bfg%5pDiduwyJ<#?c zQL10@@uTC|SU9DJQb69q(!T;Y&$G1vF${R}32AA&%thX@Y!$NDcf- z0hob5%N;@Do?U7Y5ERh=KRLSTf@7$JE*CLCo2gM3gI@`*;nY(HDjA@|mH_rvamf+% z|G~1|S6v37kq4$~*UQ^|>0&zXl@b7pS3m&={5uVRpd))A>Lw?y$1zB2m=0$kE~4qA zBn!|}SwaoSg`KiU6r;&`-U0mm5+W?Mjv~9W3BJ@9eK1Vxj+WkF>le*TtqIbTu&6lA zk#VLG!}yPF1Ho8>49oJ)=d`yEZ3lhzk~fk(M?65gcl3X5_V4vuUvLDiBtQpWYf z)w1k$%N>jk7Xu))0dy73psBY(vn4w7G$LvOhAKq%-o7oG0%}g+_Xw~T5Rzd5$H41> zrl_04zyo87Qq=91AoDLKNu1~EPG`MhTQ6^E%mrc5+Dui!o=$GJ9voW{Fn({LQ?3D) zUre)A0Z~70UwjR?@Nb_tf%9D7~GF_)(x+ z+(atod&phPM#O#;kv*P2LM5x;YgA-{RPu0e-iC8>( z31nnf258;x$F!}kr~J(lgEaz>I$PWRGj%>*dITYvt=YzX}H@#e&^6tds&YXD5^#1m?NwnVYU=w}cA|?grXO9!$DINdbz{G=+2Q zMgkQiJ8uSK6CCRUn7Kpbrn85`auy-?9u*qX?9q@3%(l*>X@7jk3}OSMvfx3l5o3=P zR^cG+t!AMku#F%F3IDtpQWWjWma7L#0Hi5~*04p9#|rVY@7`s$D!u}djiwEPasW7T zKQk!P81f@a|D(m%cWSoLoXsycjA#;%zTc_ODuXX;b*ml>!_Xv4q%tf6WZ{SqnW*ve zh_R_qgs$5X#f&@hQ4bW+oaR>ArFMS6{qFObil5QOml{kfNddMu*n9tow~eu& z7Ta3{ zK+YGYEblAscqQuRU(8xa^(M<5GyAZdxd`s$hL6$xtvlH~0TzkSEO~s`7ITqK`M7|a zzL6`VSn?T{j}QHob`QmTo^MkmN3smbIYrBR3F&bIQ=)GP~$LGbk!(Fph+PBbo(Wv z#@SbG?^e5>;P_5wDEpvYTz^S(jOoFxmjlT~q2=;j3iV69=|4dfk$79w^U^Ar1FQl) zo%r#^3*_4hJ^r;%PnJG7uT;@--TF9RtayqsVTd=XPzo9i)nvxE(tdlZ?xcVu&6G^N zG}iMnO4kIV!^$ek`Pun{0Lc~ba_32hXMAyE5MSPWmw%qcNOin**l~WeVsu!*-u1X?!4&amo|2>hv?QNAPw)sa zv#dnfnp{y--%?|}%NCl0sNeDaKez;s+sXskrzbzg5t$?7*x{iyy$ZsY83=s@Y)3V- zv`u&*arq*v|6{;=nZcNn4n#^v^us9ljZKuYqT%>|!6p6=c1Hij(T}zYros1i4~29@ zPD|@$Ha0jP`Tx}t>c2SPe>)-Bo#8C(o@SGU(_K2W|K0u9{}-qJze>^n+ZXnq9eotp z4|jSBj3HP)q-Jp7gweAMh8*lVQYc2CH+;k9A54=9IKRoMFDyH$4;imXmUIw|xdtNS z)%dYU3Gg9i|G*fzI6rZmYmu>|9~`gtbd2zJsNN`pMGQ)7R4sw6<9#7IX_;5X4?s{3kwGxd@!Ug1>3qcuBxXiW=)|ur|;Rd@@69{ zLadULUZL-L_Mp{*Cj+YG4ARl*6o|0rzCmPFV%-P3Y}U!z>5_g`+Mgf6rEPb@jXr%% zTO=k4Nh-Js!m=%5a8Ag~tA3~PKJGHCba|Wm9$?OaWPn=KEf4g8{79qhY;J~km((6O z@erds6CQPH7aFH;^Ih&mM=-X<(ySTMT_ylsL z?p}Kv9YX*oOJWAK4F6m2ck+?c40B{Wgv7LxzR8HT_p2H%HvZf&DzevppQ8>NYj(TX zui9meO0goqy=ZGySex1ozvpmvs18){^AbEVm)J6=ds zulhY%xQs(6E}fVEIMm|UyC|1ThXaR^j@3cSKn zF#@I7jaF;gh?YoioWc7Tw=wFVS_#~pdiz0eMVh_b%&%#vgL_glzXB=#MCCW`{DZ7; z*n1WG$2U=Hcmt1dowG zrwe#We465%5Y1NY$RjG@vY=Gn1QsF`f|z-kFi;UoVjw;^!Zn)J9`?^(QL9_ZAN&Pc z?_{nFUQ4{7h2FE|!yWL(z+&}-tqpng(3l)8z||8RlPbW;DyeRq$ASnMv?P4 zoS+9(vFHew;YL_vL&O3kCP4YOh}SMtq?kmqYXGoT&}XTCqwTPHyjaR$>HbZ%s{;Zu zTYjAPiK(?SbEy<6Z2}(R0c;i2r}g0lF|?7&{0@`Cra|C;rQ*gka>|P{F3lW)R8c|d zcDO<+>i_454)h+HxmZO8y&?eBx$+m9^oI z^Cs$->Ek&}J|Amh+mX*YaV=05>Raz2`ZIji7rE5s$LmaNv#df%5@;s6JQCbL6rapL zT^tYuesn0i(3fmmAKA<7;*ES!y~ICfG!d5qepdhHhemZ`SoRNW(68$6|Z` z$hg@O-}=^P0IvPr4m1K$KS=UmA1KR<+sp@yu}P)0=^Y3(PFYQR(#1wqNlx~>k9Hrs z+JrV^EYsX?$3g$prEPXzf&Z}Rp78o;;S4Z%+9KMP$3ScipTtlKOsX7TWs!+izSHQA zSK|dw2S*7K>$P;{DA{DkK^9CxEOT|f$}#DXg^9XijO=kHa;-eAk1qnQR*{`=+{2#y zWpn9^wz%D7+B!_nxUM6EyT@r4YgS3cO{T#{ePCfYs<-O@I?#3^kjeusY$vmOY z;{eYb){q8*VO!@#i2uOavRfJ!!PK~s(v1vh_-=lZ-?izU{VC!|qkqt?ZG8_Zcxoi9YHmMLR_Y*(hfX*HF;#c=*MP6?p027@0}eNY@Z322u~drD zhwmz`Br21tUvoXk&wa`yFaB*qk$Yk30L^Fx#J>+tW7`qu5<8>*fF(%8&-?i9V z=6CvCI_zz@((`R`bW%@-Zw(6LY^IUC99GPVqY+yokcCzq#)oZyyE`S|{IMj5%5D>1&FiDFs_9;%i@e zW34S`(!U76(x*i*h|FnJW2{cmx;f@cYW4ew2a<*n+Nw<((iNyXvM$guh*vdWcob|! z6VCIMc5qKX9$_(v61bWv#pFaQ=8<1+^b_{?4lc|Ai>AXO8wtr(=v^!eV~moeS7iOEe4cDMf8EAl-|!ghle}-~ggvm* zBaDp#CZ+d1L8@xf%6g6&)l<#4S~o>Dik;)H2+W(DEc8EiRzx$BDMj}bAFm~wa1<52 zbWylX19AL&s=+kEFH!T>;!lEAk%P|mW9b~6AFF(K6&1xUN3>B7K`!wfG?JuT>>ZDnpQ%q@o9x*{*n$qHwX+pft!cpr8-p#|XS+B@KL?H7}O$Qqi(CfbUa za>-66mggrgjBU5xCy1hs%fncAnKN1^KtH}4y?z!*QEw@P>spgzdbu>a8a(Tby%`A` z^6p}Xu(S5j;0;wAW5wxGdORZC%kJvm9q`nWg&d8aqO+Mmc;B!ZIE^|WoJ`?9pM=$L zmS2v}6`GiSO0X$yA))(QlElSkzBZGQ&?F1r_vkd2{DS5pl;`0AXWbM12cF0n#LhFj z84V1v;390Q;cuj-tAiiTnR!TDFyBEg82zFrg)jUUZ+VfJcGNcam^Z;y9@^5zFY)va zAOl$>+<$8&Vp}uYneV~dGbd6tz09>h5W&S`EraK0A3+I0>Q;{JSnv(kA0txKOO$C5 zP4-`uwF(T!>!o4;qzAiXUN2^(@)6sk{0KkC5oS-jJ?D3!5m+tUQS-1cQ_&Y|jmgds z9S{Wm5v<81(B>W0{^Dr&K(Rqa0F7?_vYWc z5#XqWi6s`ohKw3HB7+ZmyguLpu!$R41vti}s2_n3FqJeL6lZy9te zk#Z@5%{MhpZ}_RNd!~O97O8$n2xok;TtR{XI<0cpYGh`b=~+)Xb%(Paq=t^HGQy$P$}Tu@O)zS zX8FD+XMPqV329Uzv2?xzRN37;xcA$~67by4uiG%)dkMRpE-V|8Ni^}`Wu~@(5poST z$u5d2MHD(n7>@(@?1QPiEY&5GwPbXO(+qzQV3c(MOr?;sd3O@~6lp z8CfCHR!eMhZnX^Y@v}42n_{Ere?KTwi+ObSz@+*>6>6?`n14rxW2pc;+WD6hVwo#w zNwRnlYzC)CKi+=c%wbhcUD(^C3pfobF&ivE$7=cZIG$W`!g>x%ruHNn+5Bbn;>sD& zd8gm(sALh>9M_@Cehs_$WzT_-sqRq$Y6L#noZn3&3QQ^$%Dyi9h2X}HAUhK9-iM8Z zJHyU3VZx}S<_IaYk|F0Jjx@F)=;6a#K{dSt10FULI>pz)#uO1ff!8lCCBp5_!ro=G z`fUa+A)GCxlqacOKq9dTR5x?N(o2| zwFs|{WIzvM+R$RAZQml9Ir`7wg z7}?lxU*(#4h_5xgykn9fb$7mG;Q5def}%o`)w!xkk5)aR18Ef`c>VW~kHl7^(e~@i zJkJ`HB3FrO{fcLdGNL=SFj9LMa9p|_-p>SC0I|!iX zBo}5yf7>>5*b)+u0vkIm72;A~bYLNcLd$TzG55+070pG()aWT@lgW1&?zWmeIzm4} z)G4Y6cqsdy!N@cLn_9(7VGf5t<(!+)fhV=owE75}XdqO8Fm?J?vti?K%rtX-8bnIR z`SqJzY;?W9cc;%ZJ;QL@NfgXx{m=f4POG<64CiUg!)`k4+CD0JlIgQ4BDBHvZb7bL z?R}%^`|mys5{?hF^)a?ue*{l)v|ZQWBv5GZu5f9?@f+^?!Z6!a5IZ_-o7uN3S+jKG zY>GrqoM7Il@R6G%$lJAK=c$VzMDKF1w+Hi%n49#8`5)2~zAmVgA#RvoJ zzhsh<>1>|9x)G>Iq7}PqUfkaBDFdXWgBH}EppUb(eL9}#lel@l!; z0J_8|5mBBDf_cSJor&7g8D4n)|Mq_K|MGXbF1}b<-wcPhNX@Q+ZxZwTdDW_cHV#8* w1ZN&!;RPMM-FG))BWug14u3vr5b|hq$kE39ek1CyUm?+hKP#w52Jfkz= zP?EM=XQ8d@S2JF$^~#{~k8%%-tW{KEmZH_UL_K~{ouEwT`^;}=zAcT<*E7$)xjQ%i z`8ISAAim%}c-Py@i!6*ldOWg(A&ekTd0;Il`G)%6pImFiB_<}e8HOKg-TdG3$>LmL zKgPz*&Am6%+1;&{E&h-oi9AO#S@daSq(ZiMfQ5xc=OaG<Am3na4^>O71?Itf{T-{s~uHW?Y|?kf71v2^;;5voynlG8^V*=&qD#bkr^jop zFLm$Tua>L8i__n6RChnQEJ=^#$yI6+ zd@PTkAiaR&)b?y$3<>-4_I8s+*Rx<0^ku`Y81m0_^8tV6*i>IS&VAA)$a`{gm}SV! z!h(rhx$4-OM*uSMDQX=!K@Na#g<2$16@+CtHtXKS}NM)Gl~1#0T*=y}YZ4hE{I z3c0fQqG0j&T82eNcGx{0$?KYH@Lo$}l!-9Iyz!t+IwBVIdCvz+s%Hs%el2?#lF*2$jhSSdfQ-99+20X~ zFX4Bja;8Z!#?H=O)#S6c+#ZfC(+S_d$-E;1=Z{R(X)YWU>1Uv{dmLsOt8z-hn*+G( zsdzz`C+n}p{0h8X559ltO}QPy=)Ga}o5ypX_EQ|B$0J_7qTa`}8D_yB zuC`U@ygFWq7jpmZUuwS89zIp&zCO6O@|jsGqQ(5tBfs^*tnXi5bv$_<8%y$XEU(bK zDd_6bYkMX7S&7%XX>*y!qNzRQjj4Oo8(R0^`PDeT(v z)5!QUpFg8B-Qs2*5dX6?7pflOVMLIpmow0l<4cC#OFd;bJa1uczIQb19HU?4f3gqv z9_cooG=?TSiQWHyKa<#DE4N&pZU$YDNGsZCDAQSYg&y>ojZfqrOkO z)_DQ1@OexOG0XiFyZ(uk6p}T@?p;qw7T23)CQT0vRaI0{wxvSR>Khtj8j(<6o_FLc z#5Z4Ep1}h@Jvs69@wq1=V%q4lm#i+{cC@>@3!6_!SommT1O?sOz+h@UJLvhu$-#QL zaeWo6g0ix*bZ%3<*A`ArVwT;p&q!}^8GqzqW0Oztuv3_AZ)Xw`@||z=g@W={_bnOn zJ=f(<*z9}}LY7yT7r!^ZUj2MqKL2F%_B%BwAnjq8PBS%>LT&}aQFlYW72YSOc`H4q zk)uSFn3$+tq}Da!uhIcqp6adxzgg?kH>$7T3O>N@G4yNx2M4REseO5Q_tA9K8f??>(;P`^5f_OiPk99e=2W}U z0?g}70rab`2JL;4KZ9lQBkzt=8a+AMGORF@dY31VF@5=EU|<(jQaCjIc(c4E=U01F zFVoDhwc)4=4DhtlIPUyj*?t@$QD=HIi8 zzSV=;EW483@$~U??YZ;N_dY!OYG#DZ%obx8biVhw;x%E}SdqF6cM8v)i0SJ`7f^6{ zmlAvr>)qE^y~3z=XwGpB=#_1I_(L#bRzmT`pW=ovsK4Y_D#pj+S3<$N!|(n1Ic>%h z{ZbvwdDQ1-1#~@G*$z)xFMbqd@63GI{5kO!HeRt-Ar_ICPH#H2Jw!k0I3#%KC?}4( zmadsE-zFr7D6zIfuP=5x@cC4R;u3K31CDpiSHC{`S|(?YO^5Nx{PiG3Gtteo))IUy ztS5iwyv>)rHz&6z-y7Xf%WNG$sZ1q9pXs^b@U?8NNS$6q*-Qyh$Rm<8SV`>mY5Wf~ zzcvS62$u%I_wROv?qEAb4$VwOO|6^Ein3>41O4iBvt0B2PiWIkPk!^9$xG2>?HPM$ zybkGQ`^lq-mdkn53v=IjR6#^k)E`<;hR5vG)S@N^E=eZuz%`0d4IJ4#BxXDmI=lzt zHN4xqdwV4hK5+b;f`W0mRXwz`&=UX7@TF&I*Y)43=YqcbR#H9KNl8f>uZgIJNG3>& zE52d4uN2lt_+x2FV`F1WRRzZiG>3lRZ#``FSeBYd`5o$@s19eb9A1h zQ|XJu0?Fi{Yr%o%$FBbVjl+V$)kmzKG8Lm@NxOp^8XDr`hv1HcHJh{i4nJj93TC@{ zs>3QIL>UJ^#cCqjp|nwpdc^*=FOWYety_Z?TSBRLnUzRbXrp2sH^jsP-M#ze&-)IT?&?wq3p&rI#2M8+#{AcBtPpK9c>nU+nsPlm z+6KfBbiA9(@PLJlt-Gr$mD|*$46z9}q6qRf?JK7edz8>wtfBjbzoqitu0qJn#kby;UUSB zkVKLvOy#m#O~_4VZ6Qvxwd`*JLG@_~B<$J$QJ+xJO2H$FZ7q3_oK7wHxX08OFy3wP zV;occ_3+q8I628JJ)AheOGb9fzUzaux%heM*_D@7;#5cZGnV$Adr}*|^yVKW^*Hp) zV&wq>SH#A}O{80QDpDD-=yDA6$Yf<@aho(A_uj}hu6J8&_|<&27>W<=)6dArXdLT} z%8NVZ?O_5=GqE&6L|N*Y_x45<=y56UtoC!agl*wb@JQ}h0m=rDC8vD+MQ|bK`Zqvu zfXul}n`v;5sWS%SDR`03f_^pq8NMwpPWPnXLfS{zE2ea2gQO|Sh&{+2G{SSdq5e8Y9LY7T;yEQB8xIe` z3@ssH@Jv}#(?x+&GSnhk5)zNgb6^kOZ?%h)0!4O|aD-9(Qwe@Y}|zGm|W`(#U*<=Gk%Z2HJQFq{MfckW5}=KEG+pyow_~ zdXKqe6z2gt1v!E7bhj< zQ`<#BO~x&zDqkCl-Zi}BzcnIiiudQ8n#OAD-gMbRk?pu5^=v#mJoyn)?WO?^dhYN< z5_w7`UEATFAEVBqo; zynMy!V6R``nC$Rh~lWHx_@ly3RHOea2iXjxGrqt5kuf>=k>>zqEji zYf3RFPOH^D`>U)jcj~&(X-G*?zaq2!KH8oQmyf9ETz$Ax1f+LY@MvqAnb^gSz!A5g zdxo2ZzX+`#Z|YSQ@nKsGmW)&cVYpP*c3&nlKflg;*b7IufOE95W0nT551zH;?@h!< z7@g#asuyKP$1=AJvvOYIZV$hBi}~g7zS>q}W8+<5p!&TVGP;r-E8AhENbdk zrhzBcv$ak)SGWu+TEBiJ_k9dJ&YaScx%QrrkaX%f!!Z8{q`G!HO1XyOT!Fz1uw{-rF;U znYmF!dGFu9uN^wj8mxU~-z>EKZlVI^t2S*6Y1#RCe;NU$Uv5^+#0UOYvz#1zmovnZ z+cXF16{NnI0J1DuWKhrzfct4)CCu_>t}wn3G^_YLf;!hbEZ>hKuk~24R`FAP{n9P_ z<*lt)((%r)Q^}XH_zX?cVeweMXzn~ynbwhsQ2$I3Ge9n#9UhLwN7bM#p+_vO$c1dJ zrY)3fk@KGNarzj|Uc1O3&dsy?>V&tn-^79@qubsvO(-3uoGVHEfABLoh>(iv=h716 zVdsfD`R536LU~N)67E=`BtU4~-{$55{QZHgvzfd~;4}G7?fhhDnl+Y4UdxoiorQgP zl|C;&pP89iTU)!Ssj2IcyZ5{}XY!<}s+tOsJR0ISqDdqh{L9PB($dmlBkl*^Ri{6C zZl?K&Sn5Z^}+ecdbWUo06hH$p2tba$-fp_OzR#$ ztVvEv+L>>cdb_9aMmR6xH|6i7qY8_P(wrWfO0YgcAp9aVTJyu> z)6tlD zF9n^SyZV4USTze^vZ4^A7dZMMv=3?&6cmslEF2t!&03Mz$1>F6uqshXJ1lMrpQ3nI8bO zSe+;SC24*g0ANVs_3uo7o{~TX$boMItgvGWgZ*1eP*ARPxS5c-JW2_OMh;_dRAppj za#I1waO#$lSZVq`8=MDny|}eS10DHg`9B>wXI#Szu!pEO)H325YMr+%^oQ4=sX@au zGcalP7b2li_xAL>ID<;@r{zlOBQRCdGGieed>_PZ15w5g0XACn-akOFj!Qwusi!EY zdE7XtDHa1?zN9X3m^Syi+5@T@>Z!&tr_W&(?{9h36eRe**xK8-+T4p?b4^E z_F(|5sLbqc`Z*t_KRhC@vblL@1{I6sp4S$|^-oI4Y;fa4WSOiZgl(H5fptoo@3Av= zb#t&72=@by2%Z7uBCt1!)kQIC7@?EPCIKxbcrb0=>Mvq?1*djXo!iKvQ}r z;4qHCH3fR5n zgl$RISqtJDj33R?oqj4iK~bcP(4gZ)K_zekIdTzU!ktVyK>Dhc0( z_P1}}9@ILr*GW1swz*_$?oo^SR4A?!8W|Y$po!0o7T)jo0>I&EqV{schwJd6pI^1j z7q!6u zs;`Lu@wa;$s2UFU`Zq8Su9Yd0aqGV`;ANS4=HH<=Sn*1wklVDGQ=fN2x%_*?H5*cj zD=T(+YJVna?YjYm9A#fKv)IEqIlSx(nkt_@tn3_29ac2(B<%7q&-uGnb$YCWYbz_; zd@$VeK^Gnw8R-dP{1S;zA3=DHb*|q1#y3nK>|c!scv|*`4cf0kUN-xKeCyV&j~!De zEOgS`{NxNu_34G8$9mESZOkKh*x1ytiyIowU>~imDY;S&`9rs~B%=lz;A8$bWR)W?zCe0GyUJvYtEd>*hmL8=*xyW&%71y&&f+@YpiF_f-4F z_xkbaL?r|8d&~WmK@=rjK_o1^-!wR+}mv%=W+jS>L+GyV=gQ zK(zV+L3D)?MA!KxgP=F>)t1xxc1R;#Y(cYz6QWJ3x;qEX{2Djdsi*b)6UiP~=gMzsOPURX)m6iNZP-xalTda1i?=OtRM(mwSvvvWx$&>*_pU4p* z(ZShH$a8aZ>FDT|Tb6pOv<-xx@922xh}3s6G0X(b+M7qgc4^P}%h%iI=H@)k>Yi;mj}|`{ehk?O#<26l92V?kj$04OUZ8LFk#_zHsQh`{-SMdFy?}r_9Vu zJeqq9u}Q0|tH9sBzBeLwiq$%$MGYW(L%Va*;*jIWJLH@?v+guqJM}Z%IfjP>Zh9Ny zc=MH(3eEl}^05@IAhCAGQQKZc_ov;K`FSz=82D+(X`TI;JOwK(a~m5QU=(0#w3ZeX z6%7-Y^s+}k;>y*`Rj&?+o&Ma}dARu% z-ysI)G~G1N)zcFim3=TWDjBy)Y`hb|X+Q>NEmvnPa24{hvaM*qgt5jc)u9UsYW=eL z^3wj7JJ5ZKWc6(ExnfP`EpzDhpgL3Xm>~&+B!Ww13X;Js{W4MC{ng#24rp_LT;{56 z@golDLCMUI7bilKRaC?%U48!ixg9yT$+wvqVR7;Kjt&&&G#@9r+hWgM@A{fK5o7aZ zMJDZp8|^4H^i2XRT$qR~#ouPwzxVeW$cBZ<`3jfYxfuw0EXBaV`p~}+#l^+N8pk^p ze@Z&A5Lufkmhbww^nU&6ZztVE6sM1)bY(X>)_JS2J422wkG66(tmmxipBBA3H@3x) zuA$@~nDBK-;tJ691-NDtZ}mURXc$;EzX$mp2WP+n|F{vGjC1O(emTG!)y#W@Mm&0! zG5#d>_tFqhE0Ns+@kDunhlx*3`6@R+Q8vFVu$LT82)^-Q8tgKOdi+oD|^YC9FRg%o5og zFJZ=c4q$KbRZgci^7@T?_b5CMpiy;95DGB~@8+)IEs#7qC^fZt@Whj5cKTO(Ocm|D zb;|2Go%xb-~ zyG6vXO5*B=+);MzgmA3qW+D*m*Af(wy9z%O>f@_>H|x13EA(- z6KNy3_c%ryKQV>GXqLK&{y<^eCFS?N(c#3JF3z+=TL}|FAH&i$fufEbH zC*Jw!5&$=S0B{Qud$F*^biM+< z4x8NkI_!67DAJY$q+G@Zm5aQ!ON>H#=AWKcVl9w$G4$b)&kj~i?TP;4iBo^lxN9&R zns6uU=T8rjueKvA>Vg?!C+q!YM;rD7pRh+r-^H|SGVJ61vko%KJKP1O^rBJ$`^1Q1 zTt9?=l5*(u%p|lc#3*T>_Hm<`uZ{psOiN2+@?#+8HmoWT?RZHbeaW0NFudLvAmB%c z%e`%r%Xs0{^Tg|QnJSoCsElEagc+Db|BLLJH_SAR<;nVDTWDovWz}4%?yb=Jx}UEQ zAf}sA$!1tK9mKxk;^I~Egd!d)kS!rJrY z;edqStZxI42ecvcn!n0=;>(v*BqRk*sF?Q^6{Cjf|9q!!9d#SpE^fg82kl!vX93?c z1`PWX%LaQvY{4LtJfE!Wr(=w4$CYb4vsK$GRoWC>h%^4}&Mg|>nzUdw+|pO8?Pzaz z+a-3PT;_AG8&#WIO(aQYz#;ihMh_~DMqJ`HLIW$&lB?zYjDvweP_F7`p*4E?wy)IC zD(~x%UpOP8q9F+T%k$7XPMxwmYmZ- zqZXtiGbg9pv#|UL%cWY+FAQel9GUg8@%+^V-VKI@J>)IEfBP>UD3#7JKU(=U9Ki8D{E$!<7kOj=pNCSn-@@85*iwMBy)6hR2BS#1)0fB*4QAd%TzoX zFMLa6GTo>YcRRu2;yi^tC|#^wAu*4$8CLW9TcqKB)y|xS1Ei`)0UHRKE!|UVvRcUZl zmuQQwLw23@ti@aM=G*NI|D4I~!bXXLasA7y$oQq8t20xG+8ky3?0geaaffJ8>SgXo zzJl{YGp$S+_%=SCU`PUkk>rQQ8hL@SB6(JG1=7CFB(8f5{3u4B<*pE`>laoU2hvmi z`%zK4wdrT2a=SktRc(uT>t{`813UN&coH{}<3`jU+$X)IH;_k7@~yKI>T=gO|Lrw= zZ0ybH>UHn{M*noCpj(@QueMbSaYNbTrIAynk4~f}>*%A`M!c_GL4FVm9!Uggokm^|NPsb+` z^*h=EYzKO{4YaknPoA@N&h+vlus8B%!!U`#6TAYQ{P4$^ZBGJYA09aJCx8=j5j-gO zdrX%4i#w=lhX9Ph1jVgJrUfShxfkfA;Rgp@kRr_OR5I_4OiXx!#KUJhDEs9acVwOG zQakE)-Lp9mfJlGYg2r<1@oogTRpMYSm=oMA!IGD6a3LKO0Upe&^E4nne7=u0gV@!Zt#Yzy8f6x85A~?0Yj& zu)FAf#-5XJ15G@H+HSH7-?x&`0xS46BxS;=-vXi>oi~S1h8&0lWbj&ci~MRtN%Zvc zig=wD`?M6f<`~GP^h1i@9n1>PJ+`Lyz+v_|-epXol0kKRRLs-(9_Lp_2%~w|Gg8+3 zX`IDNa6d-TcyUs+d?2{6TEi>`N{r7g!?ySx3X#+j6|es%fb^!`i15BzlqlD&e+oZ` z@R!HiGaq)7Rt+~m?(Zh*lBs{DQV&iQgr+{k+u*8-46yHe0S45&v?%n*Zd`m$7a1Kq+UFG|~32HdK3&BV&zoJ=ny96cD$Eg=H$1jQHum#-5=5D!@tSF zO62>Imq$3^@t>a)_bIU8+(02-d|?gmewluayxh%G(qmDkpSBrTj&6%%vLXHF%B)nc z#Y_~Yp?{#GlpONITE}TnPdILH=fBej(9L<;KV$J-7gy>^|H*<_-@vy6rzE8s zM9HetwZb${e-!nE{)LC*Y#^$#v7y$fOc&%ZY{?{eYF7f z@tj5@5~8IH5bHE3>kfpYa@|Tx+}NFLZt^K7#)Yx|Pe9Q>K)#4j z68A5u#2hfFpmiUK9d7|~8J9SYiY+Yr$awUA*!eYpYihZ*R-iRQJ%t3~+`_^_cQ@Ls z=BnHX{>6uCOPt1)&+(B8G*nd2LI4F5?>|~?v}-kupx<6x9_%p>DOP0T5I|H_cWV1fR&ck`>Vauv71kk;?x7C$uI?vusf@&-M2^Y7pUxFRAU%&E@5+9#$!FeveQH_WZB39-mQ};G z3VY%O!G1(;7aX4>99i{$-{+;Aon3KcWaP2)NAJb`_o|=6T@knBA1H+F?d?rZpA8-( zW>6dD?erf^r6e>oPzw|J%EwcZq}vfK_}(n{72%kB6JfC^?%pFnd#WOhD7 zABT?qOmOhuTK3a_lOb>-L8B)vPHebK9+YTM z$fHO9aMYcnK;Rz?^B`w$kA%~JAP!P(!otGP$1h3J*x83}u$!Bki}@Xed8Qf$b=~&0 zS2uh7m@5`Vw!v+!&u+X}6QzG@YU*?R@1-w=Z_xa!r}t;s1XyFD`s6AZyH}cd?EX2t zeome9!XvD9OE z^nu6b(0zr^I;-Ii#~~*tWIwtS{k5IqsVHqZ1qH|lZjfUcVm7U&lsBp?z1vmOWQVsA8~?*?rI*A{Bqa}tZng#V+76BP@Jg%R9fWBb(5 z(1Fp-!QlxMTe__RB9)Ltc?|im8Bj@nEVM{CE<*^-Vx=>h7|;UGqe)H-K|Sib4h7Zf z(CoI-ZX4xM>wWNpD9L-Er&hg5sCO58DDJuB9JxcB)wbX#2nFZAznU&ZTk;HLOSJHi zXgq5(Zd+I|E&C20sJQs$Qb(jgAGiDXjrpBW9^9jhKd+i$=sJs=o|oM?;OBu-&> zqGq{?7~rXGJeLkgH-=n4hX9vLr&^XUD-J4-z|zvvy^UW@NP&q6^{F&>J$7>?P@Vn7 zLRH{N%CYUSt==FR_3exNBx3jV%*-pQzdSQZ)Usl}-d(|7<~d_xPtFICjg69XPR7n% z*44D0o}M3LMa(BoQx&<@)zwuGkFG0rn|nionUqWc(h@a)B8=&5dj6|6F#PYH{9Gf% zXDi}6-yZa=luh@&T~iA(`m}cdIY+JiiHVM3pDouq*}1;<#edLjFCV1`EE{ufhNjfF z!2Q4*>&JlA5cb;21jhj4qtP@=B6bhk(U1BBuVuV^C04Ee_Efyy&4_~LFE}C9 zxjoFw%X@QL>FY8gTDpI{S3}&dDJCgC+vMl%`yH*%+o1gg(aU(fQ|%1mx#oZd$zWuV z3J92UBT}zn$}@3B+7%Z0cfnHV_$~kJeX&;_TJBya<0c@ew!abq#lk-l0o~rnvo|k)@T6z9voO!cjer>0D?a5uT|Ikh`zi%oMt0s_I$njd~;)&DwI|9|>zA($n z%j22<=_nf*=RsjvzF)F=C~KbwpxkhZoPtL=jnm$t&o2WM0U3lMAnHYm<~Gk+W-!9m zB#iw<_r?!y(L^!WszKW`cc;EV7J>9dD2dVE*7su3{W*Las~&<4XGlg~hfp1oW&QJ$ zLX`}jYm>Em##5>oniAvrK{>+2(mJUB@4;;Q_1itBEQ~N)LA1L46h;RAKdBGNf^rTH z4sOpF$`SNRhyLHSe2K;L^!r1#uh?VJ{x1@5`Vs7@<71#YDjTT~c^iBGT2Em|?i&_a zH^O@O$KA&VCk#@_8ArZ|;N5a{-vqxnChmezLpUL#8ZpOPabbH%OSiA}r_)OWa=L{^ zMMbr?wsH!K`XBRfa41vY{$~h}=)>u^gUK{%r9I5QE^2t9!W}_WL^>Ee>2J*een5H{ z!_-cr99bW2OjTOmPr11S9V|BVKYQeMK>>@uu(W#E>pztqK`gTnrJ3)?$NHyB zT0O=(+?uX#@Z1yt6&n#Iy8VFv)esgw{?);dM7TJGMBq8->v#MPi?RdzT+Uz*l$o}0 z;ozB?n)31Sp`)YY+&7q5>GAL$2`*^9OGJy+JF!7(8zzNll6=rF9fVZh2PjP0LKxq ztVF;m30EJGyJ2%62{23ZUZ-R@P@3dU%vn+xA0pPOszou58CS@@A0p!gLFMZz&t2j{7ryQ zr7dj&U_ysr17`uL%AV!>20mlN?_gt-qEN`c3|F-;oM)~`pmrho6R#qbxPV%U=Kw;iKAQ|(t;a;ZV#=#4k% z@5ZPcKKP_gLGVv6chk;U5^4>RT)FtO5V;NB+qHVyAAAE?{6xgWYxbn0p6#F6`1Q~t zhJm=Yxm5TCr>3U*BRmI0A{~;er=WiM;l`QhT>1O^o5?fhlD)Ji!67)2 zHK44hFH(IKA!UR&xG%S|yj&q$smZlA&$IL?;H;Jh0}%{hHhG>nlf%Psg9`%JGdJq2 zk_(EW={mmVX|B@xZEv&Am*>`4e*f4d5liwP?J)csp`GIPYHzYRu?#Wf-E=>?nCqZ| z-6i7rQ-`H7L2-&O!9IfmAdX9fZ`XUi{+)q z5U96iq#6Lu6uy>YKvqmv1C6-9!Rh^*D0W8Y6)Tz=sooNjE?zs|N@A_1SEWVBV_N)& zKTg;k{bn~>?e4dnobwF|9{tR8?>DS*PtVNAT0Gy-OlhnsGY8As+%FPAq zIX(^!EK7TvccBGE8h_u^1$!$01qj-3q}rAAs+ewLPMak$9!9XK@xyX z(jAkN2w9g&VZ-{yYGIEhzHbdfCx#Dda0Jrr2Q?d@nt+jR0A6izcsQWe+cULJB5tca zhfEE?ufW{BE8ag#1ySlrdEnHnj%0uc6a*49fhx^sWk5 z5gN)m6lXa#A?R&od$DtZ-g~;v$ zkPJz~C}^gMHb8gg_-PE|ZydU%lIkN|nt5RZb|6A8fZ4gK{GzZGR0Y@5I0U{9IIXFA zR&ERd*@QrtRDF&M$8s3h|6+Wg;*UI`+^Oc$YwCopMx4FwHD8YdiKY6RvSaMbHI zCf~mzv0H7qyu3{1&?PEYgzQ}IV-NsjMPi60b}#SB$JV$A^aE2qL~1Fa<8wit`^|jpD~j_B%<@5qMaD4s}F(5(7%WCi!mnI)+7~H z3}H~#Fgn0LoXHBb#>xtq#ad0}Lbun-NtDHw#(AC|G?Xps z%S1h#gChbnsx}bHhuJ*4^<#dV;~A|S*c@XLSZ!3IKD+Qt3#)1EsW=`yGq%9mT3lq9 zE!GCd>efZs?t0_zNu#PJm!)^v;YTAB)NGs3D7HQFfzKB6ITN91U+T1j2$teTjxVXidl^wX1s+$SLb z%{)fTEG?Pcu2hXPmve@K_CmQH>3V`EyhEm^xRi#6MRlS1KGT|bZD&Q8x z30a7>QkA!)i;Y15`G4r@+6^)|B8Cbzr<11DDzHAI;dw@!1%K3etEc*UDd(y0Q^)IQ zXclP+CRx|!4Ne{CU*xJSHLy_>Lle?)goa~gsDl4FYheqQ^ z=>@os&Ic?GawrPiI}!sf|}Kgxq^b*$5TpZOryVBqZz##QOqf@TL42 z!=JeZ7Z7o+kC$lkvh>`(sboG`p84cmK^y_Q5AqMw`|QF}{N{#HDw2W}JIX`g(paWF zMP_p|sVDrvJ+R!>ZvZ1ev6OsP)YD@7uCe^X-Y=N3$|wSC!-3IXeKJ; zi=(AW`jQy>gB|VTl+dC-DgDA^70HJi6`L$&8=@@6XYnDz9rrbVMgrd(7{o&WqiM-b zHucxBc~JHgknlHD4Qsty)CbohMS8&X2+*H7$We}k;#{4pse;AAbG$vx$rS7#LAE@jHL z57_{&VMWL>*Mpjyd_~lDugm^6TlZ;?UU$xgI7TI8ZnWpW# zmwp!rnC{@u7p2!CgNJpPp+UCx^Vy}0Xgt@y!<>7vgBd5B^HK20;RXN}TN^@-3u>$D zSOLe%GW%8`IIeAF73yozV3BEL;;vTD{N&_My#TV>cLb(;0j3FLUw@!tzqc}!B1;Lg zVHqBj9}6uo5lF!d3pr9%3<(LTn(Bq%C5bHx=0`RAJ27RCEColbuBoHy6d?p+U zlCMs(<3jp_{Zh-CG>9RBSmiE>=OyHxj&|l=eQ~8_uYcabj8FPe z9#Z06<1Cwgm;^~*dndmnC0u|qaI3utiTWDV^*PzR(y16qH(ur%^{*%}Xxv7wsQ2Ho_l+=tjN`u-DSLiP0w1%8ItS^(D9_LTVp=wCdr{63-m3f)AHm?UxBc+;TX9r z^Ja<4e9&Wa@;0JT&oxZ9m4uOB(NZuF{0d z+l`fMepitEthMcqo&X1X^)SwjzFvcwz6{2xXh+F4^B;>%?_r2bsVwsr35QN`R0QW8 zsY9L7?g0+xDg17_tUu+d5hzH?Z>n-@Ujzck2Rfa)sj$m##*lf(x=(PyKmR7@@^quG z``YU1)>CEnKFoU*W*-VA{HWYHb=Z0A31Cx~do^fg5cSxZHDamuVlRmOz*J^%pi~oD zdU$Mo{SaHIis?^J$ddOh+uxY)wJVk!$-Z3glF@i=XK!DkvMcB`Q?RAl`~h9ItQDoF+|U-o~0aKv`4CI7GZ*Kw#8}rjI>T*ucO5Ll?Ql;KgS% zx6t@ws4Af?!6@HhNzeQllgwJw{iPVWxFVByDYC^ru9zB0;1HYB7tJ3=fg^M!M><7# zywirJ%Zcg&g9nFV=4?8HQ2+t*l_T~E`>d61*ND&xB8BM`Cl&D@7tF3E6L4o4^k@0a7 zc9m1S$;nA*n4LHz3k11)FHJv)T0egL{DDNNm76ZRKO>>u=^{1=#{KX9krr1rO6^vhRgIR3x%#q#r`h5&(}>sA>|5L3+Cu`&zWrWP}ou{7andvTavpqw%sT zhx`;ucNf$*rBN|4+GUEeOM)FOPp?$OeRTgYUCuN<({xpst~4en{qj~qkE%{KD7RO#~BECcXesaIZSIBk|<}T>pNUg74E98ny zM8RiYcV>tt=3W8R<(3WN$M8I!b)*%IM4+*dpKNd6SSZc|-VHvHF4UlOixsOS?RCtW z$fkiBB9x@Ol^@)c6H-D)RX-l?rVV%Q`b0~TbLc20stxS%ZN4!W5>i7+#h$A9HJW3r zi1v!9V=N3H3?i>#dUqq!I=1|+8yniQ7k7Hw7m~6bP4U#HozaLr@i@I-17rMDFk~{@ zXFW~1KkxUew;SFdu=+m5L&MQk(U-1?@-?!&;hIhyc$_u{vU0&v(M5Oo`f&>VpYf^) z(aT2yl3g1tq@2G9O%VOk9}}j`ftAeI5k|NmzjlUF4Wm6UpE5n%oaw#0*rrT`)i1q% zNwiCo%J<34xPZG8CM&ed48TST^4clYeyex8un8VzmV%{)#iCn^;I;@MR!*yw^m!CqDGQm*klk_yl*+KQ$$029TE zntt=Xv*5G7U<=~5@yS{ZmJEqFS`ock-b0)9%fhhL+a`e}e?XbgL?fZ zlarG(uWAXp3M3~dpC(qT9PA35Mlbo~XlL6u_0evG$#6_&gdX#5U-Zp4tgNhA54TL+-SE)xP^?8FUI0r_ zitzWPu! zWQviI9dv{voVQxThO6&EUrl=pFOK-Zt=Nxq?}noEn*TXI?vFD`*OalwJ1F@Gebq{H zuLdm(FN#|Bws+81W7AgacH3MEZHn$uQ%rV#OOuGN;cskPpI!ryyq{vbrFvqRHcgfC zn1YS(>@L0ZKL4~ZK2_SSKI0c9)HdnI-$8bjKNFymcE8M2W5%voFY2S^2xE&23HIAv zl-j;!K_cwEgJZ-OBl64t^hc4hQGIk09%ZvS4h2BtM?h2~)PqZ05OKot=WdxDj)!c81c~PJCh;~?d+VMHnj2>io}5+H|BN132Byi4VBd* z#k?iQjXiYnJ2ID)#y8WmvS`0IzQ`IZg0GBF$9 zCDBQ|n?E1(Ba5Mv0N$ta%ttpkZLuLT7R|FB{Avv8d4`IX#T90B{hu9S6f9af?tvwO zjA02^DVYYuH=BQNO>3{49EUYt+uGiC-GaBiU`fY5&BUkyk@YC67sJ;QX6>Rr)A7>T zxq{;J-!^OM8z?B^>kjYcVRT@)dv~I_ANP|j)G=g-Aq<|nH9fC+m zO5KURzdO!2?>Xb#Kkgml?lJb#&DIsqGrx0wYOZk2JIeSt)Ho<8DEKP36z`&-T$zJ^ zZ4s#O6BM21CnzXL6ct4|ZO^oy=@{Om$`@T6{zx8Vfcu5Q-poalO?}YE@+XJhGG~T|E7q%`?Z1SYeXO1Q z-UkK-VlV|E7w4}cn1U!@OzirhVG)o9A?2g4G~yEy5-JS^A8{~tYei0FNM>V9&t zdAK$EsHCkcn&#R5`u@pQGp>9T4n}GnI~E~*nyBMsz1wQB&cw%Ohhao4=YKY?$%Sc! z^CDbSrB8lVzT`Eq9?UR8nrm|ob*MkgVnhh=SBZzUd%@El?JO4EFVS!G++pxL-GTpd zTj~4pwZy>FQ(W4p+D<1|DcY3$(aeWx>;BYg`|+30j2b;%7COSmigYzz30lp3aPN+x zd-iAVVRipNy5y6!q4|T&DVejqd-2RSQBhG-MIE0W{M1V*iwO&RP;M&M9)dr7tKN0F zD~c+R_;@&ij9b6jj*ObR@P3#7r_^v_Hu=}$w`l86*S=NS$XuMdWy=R|Yc+WvBcGal ze5!+7Fr}0u>E7L4{%ki^xH<7&p{X-(dagCl$J;wY%4_%RaQ5WSANZZ?@$Pag{f)^A zD_pKbPA$~3C%>lsQ)fRuqY%0G?#@T0E2+LeC*C)D{myC2Q%Ts4Fv?o25OLtqudZi=o>`+2nB9#iDiyLr!ro4tOoz<+5z zSSwHwxwT1Q;(dk4u+dZCJF{VMd5zP|pVmOEut)|OU&BJ}tBGZX^>-U66sg>N!aBBQ z8g$EyZzNVdnx%hQcwd$!ZvXe{V6)$a?@He*PB}vd-#Cp-X~&Vb_@aLfHcu8haXUU& zTKBgZ1g+ZAD#xI~8=GklB@{@Ti<59)50WwaR$&!@RF?N=CqVZN@P5H-zLaw_vMYv8 zQaOe;%#HWHakH-vT*$Mtv-g{;tD$u#p$xt)e4de%R37M}PTv~~W-#axK~p0mLV6XJ zaoXAn4n;;O{%f9lYs2t^o$c+TmDi6nUC;iwuN8mNU5sN~#=s>HV(yNn5%WDg;uo;w zx#(u_W3=q*+88hU*w|R^udqJyj<7Lx@5czPJS{da!Gi3Zc8{rEL^`WRhSVz|8>Q`{ zl5kV1iu|Uea9_r5$tS;p2A}sXc0~(4YF2wCxGp;V!n`wrY4oO5N@qp6!?y~%U~!j) zo~>ZFbXFB&N6D~_9sLiFe>`|^UJyK0`$)Nm@MDwne1K-a&d+a^3UxbgoV6I21CUtl zh*WXp^#nLLqEv{YmiwXwSJSP?dN^t4s~(QD9oi1(bY{r~_8AeOw2n35v`HpYd%_p643G6V~x>YcV%VPL)>7;?k{?{Y5g2qwvqi-oGkDAw>|7VcCJq% zM+kwL(0jRgGh79=J`ED&K#tX$Vr4FAS#<&X4HU* zi}CCCcQ^-|Qyhs&^w5APg2eG~gk2a@s@wZ$M3tf_nN+_w`QXxw9~is(2rC*IReB%q zTGbb~p;NZnAwQb72Dq&b%+sh(6FuP)Tg7`Q^B@bdKhWD7ArU(_-Xf;`+9fAqc4 z%gzUn-W5$WjIqPa`9+-g%TEa$6xWPt*#&d%pto&vYZFyrS`#gQS>e(tWQ@9*(&+F_ z@Q0km0CEaS>7@u$K}toDW;SZu6m*ST%ihGRli|{maxB~2Sv_%!kDAZO367v;Xq~qc z%CO!^tCI`FR0t*LG)0n=hcsi%vQgw@(Xv;=Yx4)N$6(Z;syu-=tT_~~HAjhTignb+N{H8qizbSu~L-1<@k?9{{9sR;=P zUam`dA8nU4pX>YPIS!$3iuF2{KmPFr8Y_zfgQ!D__Nwv6r}*?z4>&Wz4HfYBA5B(0 zgw|s=DLeG;PC6IDg_Yj*MuK7S?XX49^V8$kVviV`_#=IMe29n^OQKbz)V|S4df+7y zjmZ~V&BN77U{!g+u1a)SL7< zkJV|qj!pF?sf52?E3^q5?(Ta{-d=LI@SuOhU^Jn#Pn(XLJ0VFzIPRpy#kQ@@Ha9Z{ zOLcb+n+j*HZmm_#-{k_(aEBAm|HF*YwKDUT4~B(?qj>e1V@+0E_rXa|o< zup@>JI%%X`c5Eymjzwn#TTV|P79m`Vcn%GE$&Fc419*(dR-Mn9BoG$jr zSdx1%U6O)J4~oF|?2px_7Z|7?y?$FCYr(9&Uut-jRw0?sCgYEhD zmX;PcQFBwlfhswS|MiS%=(bhU2ix1*dwWqN90UvB*2juqa2`U};*|0E^B6G0$U6-a z01Qn&C%5sV!@^P|-0h%f?!8shYw+0Q)-BE2hUZ4Z#EUD*Mqh@@!evnNbLmrpmdVLS zO0;eLI%l)vO-feZ^J5!t+(iBRb?`~WX1xQuRA2JcKiM+Yv)#Exe$99~TOkx$D${{7 zWy~67dsHzr&HLVx)CDHZ(jg3bVOwol*zYhd_;QtFrQO#_F>Bzmn48*<6^_9@(XVj` z*HDm`C!mvH4PzTEt@LEBw;b2XN`Kv(#9eg%n&NMGL)(57y!yh9lfs7EP>Kpj{PY?4 zpl~}Upt-}V^F1g>Njm)b4NXrGyVvD|-~N~`XV8_8E{jSI@bOXGB6hWMmE?pa-Pfxu zKM`*p-p>4BKVCX?uScTkjjTT^To5fn>!a;?Gc&XN=edRY)m*oW>9D1&@W@Cw?l?@< z@Y)^x7{M}+-rbz4)h*P-SCBq@-NnueYn0GJ@f;*W>TlI8r?Q%*D z%3RRq5;#5HF8d0{5T8agYZ8!01nJeg`I=0(MAs4KU)|#@A~{~DdeC7^)>Fy&Ha0gm zPnQC8_%&UhZKD2Kv~$XJxp#ga+D2UE8`b2Rha;FV=xR|qMfbD4Hz%tRzS#uG+2zm4 z3OrT5J$~oE8G>54?-#ci1DL?U!I`YKPd<2dFYnfsElK;Y#Y6WxhK-Gl<2?Hw6q0di z=WlP6H8X#BCG8^-bLGpU&0DOWU-Gs;zw)Y!EmZ3Y8vx-TCW2QX&I*mrRg|8Z1iXMg zQ=RGQZ#)g!A-)i%{5_C%9p)45kv!6BkN=$S@ti*zmi7h%8pj6--BQCNA(v-CG4d^( z(`1oG$pRKi|M{Tq6M*%8rJAWTPCr)?d-!GP%Nx~ldx6)X#C;_?#SdHns8$HlT5_^m zA2a$*VAO`bx45`?L7(;wspx*a8|Jl5Uy9kTJ0;4T(Hu89pJ7-eI+JKA^TQ;R6b@Gw zqYsZgKl)uXRkOr1q9oIpc<*2&;u0b4791a8(9-|HL=NNHlz1|K6$OZ}kLW)Opm_ zJ#kl_V$EERm_6N)i7+*R@OP69VYi*TSnyhp@ppK&a)Q=Lac^oQaA?E`eV=^NirwlJ zn{h zEZjEgMofy-1Ax)gCbq^9cDgt}tF#&HIxf8b{5MK8rI2+WbU?IMN>VvS%~$$^MZCAZ z-#8{ez-W8mcoJqS;qmimt`)5sT`5#E%Gy5Ea`RS@xq^(}xuH}0NDDvOHJbOt){-0- z6!}6ix5a7r*Ic$KYb$I9V{8fT#GI-!Q6X~12mrZcd0dN1PeE5r6Bk$^%+^$nr4Pnp zo5r&@vRPCl<{Nh>wH?2bz*6YQ#OdNYlE$R@ao3`e6aVC~Wdw}taym~g+l&UPHsI~F>W7^~^rC5n` z@)aJQUt<(~CqF)W0`HKPXjsf{^p>w=pUZR~vv#)>Q={vA(3~&rA=S3VeB4`&%=6FJ znmZ=Yo{@UQX`U^`?KG^Css^2L7H+#(i=4kR0cpm zp=hvV@A275IB5>Gj^VULlY%H3R zY*3^o=V3{lg~QwkP>Oc$WM0#z;rbQK>bb#d1^iFdU}1AqKn zUbgaOo-g5cr%R;LWn;0eMHvZMuMxdlbJp&Zw&(2cs2xVa5mTKn9}@o`Eg=m0;e(k+%~q2BbLhh+#6Np@ZGSS--8R+ASy>KwU7!ftZtvesA`>CevBN7=$!3 zLwBSAsOB)+bVC#X!4o+2a1)xJ9o|98hp}YKP6cOXn!FZu^!E0~#G`!9cnOaKkn*&6 z7?XSpUD1~?&vR#ijQhSCQvOzytUr4YG7x|xJhti3IzM9}_NCVbHY+NMYaLn8rTHGp_T}xSREBcRy7=nrh%2 z60L<2GT@k}zthM}by)klTk6J6Q;PrW?zM@8Hac|uS;GKVlX+KhLH+CY74wsSZ_d@} z*1)e~$ypvIx&gHbPyc;z=VOFKVLkc<9PU5+8?m(41))cr9B!5ARlem3?Z`DW_zm(( zG_}ZWz=NF;Wbc!mt<~6j-5crE$c5?~EB-yR%ML<+h4^%*n_;t$4N(h_NC)xZ*}>1_ zwP6+=ulDx#YOW}8>dDQGjRv?W06r*q9w3!)zT;R}ICj4H^exto+^88e3S4_$13eu( zS6nY{%d-(9e{y~L2S(y#e?RkNS0{%4Yt^CD8Sfuo*y>X`6hiPSEMaH>^Z!=$FrnHS z^p~e=LrgzY1T4A$Z}h(s!V-*TG@_(`_LcXB7XQ_~ot^hC0*H-`mtWAwhrS9BKJX5x zxSn2&ILPxY=WuLsA2R>5_X8RqMK3zzTaukJ0(a4ZK&qRYQ;`(c7DNDD*?j`I7BsI? z^4yfQ@U!Yjo{GiE?Urv*7s$#K6XHn{y4J`~ozGP}sYHU|j{a1c(#*P~?WWI7S?;8X z1AiX!-TSj|U+=QNuH)zhqE@iEf0~>OfS9b@a8m*SAz8Vuw zYIasF6UyDjZ^U``?>X(aL%G^Mf97tI|2c6XWcWt?^}(;1hK46w1h}|x9#RijQU*MY z>YSN8zSX6%u-KT>{6n=pip@ncFV=WZ zO=ZJ9`-q^wZ#=Tj7oF~nVZdbVb+?sbIO%ZrokhKOIw?}FYagn=@Uhrkr;lI{hJwHG1 za&hhxnK?P;`g<@z^qN!la+U*wenv9`SrG2OgU2c?Osc$0L`xeb_J3=&iO20Z#&QUz zjyTOMY^IK^|M9V|S{Baa3P^?FRg=I#=DrGT@-VT6xY+x5N&OhkRo*P79s3y^gxrm< ziRUlV6PSpU7qmlA-hSG-$ z55FW@*)`kHYoV$x2?(eqE^pF;f{+#qd@}n`WJLzGzd+moB8eKGE@J=n5(ip-dI56n z@?ho#XrqCc_=Va9cgu`F0^bxe?+62Cv+^kcOFxZKE&$Fbf-Rt{3;O-R)+~dhhl5R@ z3Z=y~-uwNqKw&haZ4PIG%XWBYGT|5V5HOSO4N!UE`6_(Ro_2Kl`}<>)u=fGMtg!sF ztpzN^_iSHRLqo&%@p!2bpe)YB*{z_Upj-aGW}9V}C|d;sHdvHn#2?;~C)o~tz;jJI zKki7}X{IU-PuM+mw2karGhi1MG}lJ@ruzr=S6Nwu#4+G%#cAJi zl$DhQIVzdgfL%zJNx})B_R3k69uAF&-5!9S(Y=EMrH<%)y_dOnK$hh9Is%2tv<(@( z_wyTxd!cUGue|Hn*i4w+(ex9|-p8&T!(ov?!njl!i&Id7Oo+Je^Hl4@%|NnSpz=dY zOCd~rXgPLs=p$KB(Gt83N~*)&{DrNpM|T%iS8a^(pQf{^k`qz!#U;cc%`H=QBgFAa zg@<6^8jBmiP@GAPH8HTm*EM=$j}Jfdj>yfjOa{s$|!Kzd* zjF6 zCS+%4GtkR1;q`HRqN1dwoo@7UOOTh5X@*Jx6~qomzOT!P3RqB|>%S`-smsAdZ zeuHsyqpo&yt8$FJ(b(@cuh)c)!h^M|^Xt$V+Z>;L8QRFoPC7d|Bt#&}-&Gi2M|&+| zkI7VXGz6a_uF*}Cc(0Wzmh1ulzS)vL+BJWvA(YvU$~2Tuz|qVtn^INv!NS!#4e zQVhPo@v2p9rnqb-n}g2hP8VN_Xn(l`=1�n?nMxgvvcOCjn5mcL7g@d3L_Ltm=^K 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

3;+@YYr^;Q67K;I zE7}|{_NCD}C4`(m+=k8zS?ER@Qn6IrPyvtSB+db> z>tegJaaQ&o>@f0$FRKz!76~a20k;aVXkAXbjOxJjN|GgjJN|=P#9`pelZm0BAu3r@ z#P$ED_epZyzRqh+mRnsOrKP2lYdd`a_~DV#Z*OR5kTEQQ133eae7wIfYt?)W*r_w@ z{mSQJJsN<+3z2HBB;-@kAvuLK~UI zqyt{9K}MBE2vqE_EYn971Rwz9nETIa*xW{-`adK%G}Mhv|2>78rWLN&X{$?*)@i9M z4)|Ba*smU+yKq!uUdQzxAX{6;;q%+uTc8R~PRf0onVv?0fkGwXw)xdy>gnmZKN^?A zZM)cFtB$6jM&*N;JqaMySYeSU7hJW|$)TYl(clF)Rn-Lmb2csxF&CwwO-@dNotHjB z>vQ;=^D{Cs3JMA|QoK@Pz?J-l3!FOwt~IU{cg3Ye%}q_I03ObUTJk=eOsm$euUkjA5!%~2o4QFB!WFC;yhSJCPu&B+lM4Wi1d94(2D;NOoqBK@F@{pjVBgz>#p=kjhUpyZly}STq$#j}{f$=ShAU}BY6fUtmLjar(puIAHVW`0q=zvxQ2bxvrNwA7{SEfN3 ztcL6)yGUJ-vG!bpa`4wEwi-}LHX&tf*?i7qd4;YOgeiETdr$ngN{Vn z4So|LG_R`M{I_!gnFv8Au=HXM;ILp^8&(@ebpHHmEWUE)__8wssnF_vsy1zRr!9zh zF=Eu~``!8zIp!~~oq!kRk5S@g>$&i}o8Cp;hszE8#aNnI%yrm28ta=11F=Gf`>UND z9z8@Pr?78B5~a=qH<7Qwa3T1rz%HR-zE)Dq6I^M9L-n%Xm)!~ zJaCSqGbDBIQkaCtP6J?9AuKi>9zSbzhZ=P1RorToB8=YdPeZvu(sGyAs7n0|Lvf$y zCBjh#Q_Bj(|A>3^2uCe znw5b8nb*zc3Sj?Z3_vq9UKT-jk7c4-S7C{PJ0&x*oA&8x$EH{Mkv`U;g@;!dTu!tP zVJt=xY-zGuGl~nK)TMG|FU1uTf-PVsWbpXF)OU7MzMp$DRqAP$rw}YrDcv=SzbR$} zrE_}yF<6q6Jr3rXK_C;-9zk`Xw}}QRSC9xmxoOhEdoxKypp8@ig2+jiC%BGCKB?p^KM|6R|FIdR=Yv5Y6U7l^0`nzx&aFPixT>dU48T=jI|p zhNnx5%?FaHA={cik~b8yxorU)e51dJWgPOePkT8Es8v-o(4=sA$04xDC!f9lVqFxp z${=2^oAY%ZP2Bn})pI?Un(9YQOApMdmnne!mUjm7d&*7e=3J1lVA8b+jL;Gk(E#p9 z)x{+OVi-E4C*$)C>cgK2ML{RwXICO2m8LJWvbKm@kDfK9_@>E?bO_&pwomG7$U1dh zURPGEPxA>08QBuH0iQp&5UzvxHPHhDuQ6yaIwsFYWVcUcR=mPzcj)_lYEOTeI0;Y3 zI8c@d?_yZ8M zRA|y-hl}}k?iVN5Q3=EXh$-YdRQ2^L3l69%o-|bMh>(yFl_*n!(Z0fbv~;{)D&#gQM&j-bG5tkoM%(xlpgOw=sdRuD zMl^pNKn<_Q6&z1U<8rQ9t(C=im~|_H#uT~j$EaIScsC7s8c?vh+y5h2IARoiXW`#- zg@esAvx|*MhN-lhOFkYte-dvtTJd2BOZ8wMopaLsm)MGR_Co*B2~Aq_(DxQwy~FG$ zE;p}98-k}l>9>2V<%pd|1dwg$!^m)iOu>=t4Cn&%bHCnt=6I9MYJ=3m1Zu>hn=qMZ zx7wJOX~SZmD+B+1oSI&ENXkhl=nh5zV4}ECq-mGovy@m zA5d|ePrctnkUQdAW`DSd@hcG3{E1QIJdb9nmmhSoaP@exw&aJW`}bkhxOFZu6{|}2 z1*YJWjRq8pN)tg9bS$Y$6Bsr&fk1c346AcCku0Z=uji+1r7idUoeSqBGu}4QvZoPG z+syluUn-uJwx*Uo?cq6J&Db~HKH|FZ!DzvAM9tsGwBsXvbr8!ENLW2cE^u zDU($s?4>n&0uuGYX=1+SgsYZodCQ9U5#x|BJR)+%a<8A) z^dry@e`Y3AlI3;w-?3I7JHQMtI)7G@XUOMod>m`Ml-lL27_u|DDzVU*K-2s3`Ouo)4X?nG)IS}xT6IY*mk zyNS2NM@>tk#0*XnOo7?Nl_r5Z;-TwE;Jq`U7fgBmtI^ye(hxaVmr`Z`Bxxk2U3RIU zEMPMaX1_4#e4L72JI;tZ*S^{4OqlE?P$Ja>TTrAPGkyNOUD6*>Ch9EITyOJ$(woF?kSHI9A zZgS{ps+>e`W=gW4A`)b#wEIN~Jv(T_MLnf>B3T|)djneFGy&(+V;)wTG1l1LNK9Js z+Sr6whPMhvw1l(l0v286FckN91Y3Co)>LU)PX|NtS>iQz-kb8a3zB{_DKxm+y*+J? zASy14qsz;mwfc_75ha8QMI$86okll&@=oor(#y@e7B z(?6q@0v#Pwa!pKa8p?8z>u}N`n@(Hc3?5h_5xh-WkR#}oAu&l4s@TFrLxb1~IHPzJ=i|(Drc$CWSO&ffVc@yZ;MI7{7fQf~oqn0^P$r`|$!T&`IZGUIB08A` zIUY}H)@x4p8wJ+2G5p*(K*AgD~@1+eYW~7Ijq>e0bERbvTSJ$iDq$YuIH%=-7JMiUY2Evjd*WW zGD%qLYkkz=$u;;F!+k)t@mX});;+kLW*hT2JNi*qnxM*?FgLmGE$x;qkDP6&Ep10# zpbzCSH%|YYPsqPWl3msNiuBpVeU{NGmQpx?`s7PpUmQ8_C!Ge*3!M)~lq2}xesIXp zQt{KV%>>yfB!;1|q-j5r&MsIIXQ(hzC16#fNpNv-0dk5xQv7i-sAXj2q(t&K+D#FB zS}^vEEZALaHaL^U{O{8k0#Qu=Ni4X~4jq9sd$jD&d-({JuSUwZkx}t>Aw$LqxP$7v zbc-fH3a@+7z>&u09{J%zFcnskz4cGR<;0`974E@0a_6xoWmW}2-c|8y>nGaJog=A1%4 za;ixFUs$nv^zTa<_a*M*5Vgq${e z=<^8zM+v#EI?NBP3moG*7mhERV&qt`<`%vwhSZ^7)FkEP#4yG2UdpqS1M)|e6Cio1 zULB<7vhNdmS3>(OvDB~f>F7T9U@tB1EV}%I+mP z(C+S~Rz)LWa{P=ZRNt*WM{(!>@J{?3l_5Aiv48-(UFdVzRDNgzY*h|l*kOsHi^)wPr|h*`f;(-Xo~Z3=Q-QQT=al_O?5bVEg{a3e8%7)2`#7Ta$xV6=?C?~yqG zsssyG2OGmq1L&>^iS$JjkNYA&V}-i;u1~~uqrPUntEuksM4mu;tRt2^Ztdj>mAKmO zS2e~)y*Bnrm-&*U z3*yn6t~a?wq7n~>E?5TIaNF099F93vMz;<+Z0>2b`_TH3Hx{d#QHD(PZzr`A&Zq5l zJQY`NmK0OqD#^}+gNYs01)@a}HJmujQ<6nED-V%5uc&O0Di8(jq(6T`@csMx0Gtag zQR859W5&J%90cY^V5LsC=hSi~m$9$yR*5VV+4%SX>UcjMY~1qVRLCEw5q&*f;VRHo zIafBCCZaSHzu=jz=jr6^3Ndf^FDw?U7DWFYx@%~X-i~(yTxtU957pRF&tWAw#1LNM z@YOWC^;ILfN`t3j5(m8n8k^iW?;v8AZpSI))xRfd0^=ogHk?=4jt+S2cI5#jFsN)1 zX4YJT4W`3;*3$Ujp0+0E#MrV#4M!lebahusE>zrt@*5l!*HR^hdlN0Iz0I59zGZ*& zbYBavsftegsHizY<@#JRC1buJfakd#Up0%m?MV8JnQdg)=$E*|%*<8MHIu_7C*MxW z|1b62+{Z_=*$Ow{HT9}-?20fpbc~jaJ@mX5b_s@C=PxZ1{U9&kwbES@VgY)#k?`&#rhU4bS>L> zyh)P=`JSNi4C-e8M%$Cj;}wh_2zglu6K%; zCnV;(PxU{dx7+X1qpuIBqj6IPjb`VMh?0ogGJJNKBzqnPSu976#Cv2Kv+qc0;wKxY zC^nf{_i7Eg14I*CI8;aBZW@q&Fhp!jUAtzgUb}`NP zhw~uJzr=ku6gC9-9+AZ1&uP2ct>xcO{dEbm#<)K`MEInXW(;~d29?Fqu8bUGk1fi> zVIAwDAC(G`m3OM#^=ZNvhr<4BT)$n)Z52`ssRM6+t^YX!^aaMS+Q*;fk##2)lUeLd z;U&1Hr>Dozt2Ui890f6jWtl9X5X-tnSZ@V$Z*YMJ!`-MDoT0c%=utPSqMP37s<7eV zmXqOJVYNN!D%NgT_X(=m3K7INmsz8MntF>mF+unO%Yre7Ue)jiul z>suJ~im!_TH}~Qz9KXzt-hI+d6}q}4V;3AH{a-BrS3gBkdHgF&`6%I(rfp5IGB&i^ zVZ2|mlw$u`04z59;2-q%mG&iKVyB2K*{hwYN&F|UVs>Z0r|5}Pf-jorfzdwr)`TLq88pC9S-`vFLlqAhOUiVba~Cb zj&7FlX_pfB2`~`FY8%NU9n%Nb{Z-=ezZ!z2aHF`3I=8L}pQ+7=FusIGB6Mk~v+Q$_ zH(w6Iugc5|i1;F~@kRMq-^6b2y2z1eKaVUV*~~wTdH$U9x{TG~<9s4L6uP8=Kdqc+>_H>EYUuo~xc#Nd{pS^xhMMXu|%`f9- zPk(M)X}tu_YjX2Nw7)&-PQ(&2QB$`E1~z6iZ;a4d$${@$(?*KzGXG|;l=%*NB~u~^ zb%8yow>pN-iFIctc{6yjwdRT_WX;Fz^t9S25xv=&tBa%)Zu7kAIDfj8P13QbggFT` z8!~gsc<8bi21f!M~1H)GCN&UR7b>DH#xiQ`TJeHE@9B2G4&URgaAv~ z@rCbkc$R;!OR?YN7l75eCT_HTp~ZOh6oe+SqU&W|9cIgk#b{;kIh_aek|U&anu-(? z*&8XTr9xe3F;pV*ay58od759yI2CLb zozy+67k`B9|CVZ+)#v>Ex-wnD_n4wPP+=Ul&Pc8D6)NeVf0EOK3_HB?@}oS`jO4MUcjvS)-8* z{9P|y_`@ZY(G+^7dQHt>(`v2Wx~{^v?>X&wcyL5~PKi0hR$g*6GW}4G%*Unjp+SGk zvTWh-aoKT###?ry5Kp4fGZxPH4>8=UDebl1msz*n1fb%WIu@?lKd5Oa`hpz%BvG1! zRIlu?dd&qlAO(?0C2t+7u+UY+Nt)D*((Hg$R_$S!iqy$c%f!c*yirOEV7{3+ArGX2 z(fUvIFm<2m_4rj75$w=XjNf(md6N(f@(14E{T1hdBNP`*cdKnsS_cxJB06`CP5WE4 zH}S$|2r=WB$O#g6)klX=hL@XUbeTvyj=&ioRhbMFXTu_>atT*$K!Z@ySCx6OMvt7e zOwap2JZ(U&Rc|B$xRMNb`Wm<-R`R^I3E`D}9b_s#p2>VFhc}O+A-lYojI1IsUFSVl z(|o^43J;9XYV`Z4qjHu#b*l|}9&^UvA$$DzGVkNF(!9Uq>gJ8DCeG*(P33wv&474J zg)T9lo=3Q-lqcx%dVkvYqX@KABKr1lemq6CI{|$sa;pY!V3oegjA7X(OjrCO>bm)& z9HY4jW}Ce<5E|{`lnU>~alre8cNQ519%(S{_H?ZJft&z^qv)yl6mO=6oP=S+BNTz= zr#3T7dC}oJJ9~I|2%K4Ev73fe%1g!7)YSavh&h=rtlT~b8Dhav;=QsEa#P%FvYhJC zMsV*0p=GyhEMJbpGNJu$^1Ti3%R}Tc-YNvfEu;9Nk6O}EKnI+H^_gH`hz7&xx#{?la-h~666P|oGH&e@-X!GJNx_ZBW* zYuR5r1W-Jnx31Fm-$RO6;onGRKg9TUt&P$5^d&synVjeKc3Aa_Tcx#KFJ&oM?GI_wyttWz~Y&1 zpO7a7P8?4xo=t9AeKP{A+g{|YBJK`5RuXwc*B1=r<~D!hZH}jj(;c5ASgdr%Zm?*? zE@Lu-+8sCWmasA`YeQbkkr;3!i-T~~OOc0E>>Lrhwwt(^xb(Q9o4q)lasKoFd`;YL zF65qWkILpQmp~Bo`ctEeZhQ`$g!bSgy7#d*U!JG$L>&g~DV#!l-_t%-w#%u9KaANY8V@h$H5k z#n(kQ@03m;6S{0suhyFAW?JzYurG5u*Nl)c8FdxsKoHCmp1)Lbl%^(p5(v;5`1?=!c2;k&Q@PZV;bXwYNt;JdjdL|8lCzt zg5G!V>iDM<->F#wmH&K6x6lYP|C!8IVXD#DB_H?p%Uw|US^c`LbDS}fxKHt5#ca_|77K!hCu-qVvoHJ6+k(sX77&YGPE$Mfm3AmzHFX5>%U%1RD66H zpin%%3e79uap2_dFCY@X?oVfN!J`r#cyv%=TXU1@{f`#6()b4omDxo9!}0$pa;4wb zENOL{E-=gmnA=&pEg3_koK~?MIgvTDudq*CLsywANKSo@$oaOZ{kAQv?!ZBvJfAMA zFh9aNMv#KQjeH!u>h5tV$nK$LqUG(u)EYuQL+GW4EAr{olqVN(`tWF*rDRQ9+2LMN zAV*NI$K^Uto&k|6^iwvSO|D1@9j%>s8L>Xl8mcf$xT}?Ahh<3v1tL+69JZd5 z92^>Y;z*wh7gzj$Ru~o0rQ}Rat)wSTAyk{!3XIBo+`8+o;0bsOluP%V>Zz#M>de>> zrRTxUx;bzuOV~R5a zL>3dwe#t&5e;Kmb>=ObuXhKFKCZZHVlM2qX=m9~QK*%LQ&~UY)s%q#n<0m(&4{jTk zw7fh_Gx(=T(SQRJH(d#(!Nf{!ZV~fQ6kO=9cq8S(kDO47p5CMmdc|<|?^X~*JiXeR0G-}VA(mHYEL|YM&#Q?Ui zhnb(6l+;w#sZ1yqm^0;gnhaz!Xu351e-1!P?XR|9Zo+r8bq z!j$$^Q}(%gYgIKh%f1Ni0xo-BzJ!0>ew(HnT4sWy(Cr`@8lMDhIh1f8i>fp9bBhPk zph0%x*B@T2HUIyo9E;zMu*s}fah7klJgbrLx?Rt2#Es|o(>oJ`uH6b86LHu zn5U!i};G&e^Mg>ulJ@9O=crVmjVj7ECwBk4%Svyk85@9WqeFbO!GHl}1Ilkax0bS+`@e0i z81*bal6}Oq2#+)YbSi?|Mbc3$cK9mE%HL{6)xxp4dq_qya)BA4ugdcW=!gaWY&s1= zuX1S(Y{CR<@#)j6DY)(TV3e_*Bh&uyz`3bhmN6j;)_b=h~=!MA`+b10e?K5W!|RG;L!)IfsiUoHc0+BiG<8x)FSHq zi|(*SYLE)8^^iJ?yBRQ|O7Dy*d|=Q6$Vu z{b^uiq@;@%xT7w{ROU2JKPVAL*&`8X`{e1G6SU{BhPhJ8GbXMnyV8?CfCZm=5lcmr;h z?HT)@0xGJIOvhQ-kU0iHd#VTqer1WuxbQz3HKUlZ6rQwi{PJZvp1bZQKUn#uamKx45Tuux75HO0>tB%)rb)={>un+*jW#mD=`OSSb3oL{sq*VCDrW1{W6>E!_H47lgGBQR*+Am#G*m z28oAR)X#%bZ8sjIQRN9tMuVZ@0RX1C(XX-#c=m=mPHB$lf8)gd0f^f=Cr?jqK|z9) z>i)Xe)wGRLaNa)Ox9GPHl)YhyECDwjb^hsElBV zaB;I(A346IzLeGgQuT^9)QQ#})<>A&!86iMm3m!31rHH2HNr0u5cc#5U4IBlEmgQI zg4&?TYgtjOohvXD=DfXO4P_Fop|MDK9SEeDB_zj_`jVpK{lDV|P~g(IhKb|&ZWGo? z1QP6e@W-4-4t?Kg60MPH1iWG6@4V`2K~ygY>gKz&R)XfHrj(Dlt2;WwpWXf?s;qK_ zWoBf+gCvrktqJMX7I=snX!3a-^;FnUQx(hQto6-p3`d1DS`-EcbH}3Vwf+9Hr%_RW zXb==^Q>ZKnKHc2zKjE2wG3)o!Mr8k5ek}8=L1@7(R8L^Qy5sBa=d2b4Mf2(KI-NK;bYozg1*?i3| zQtUlAfAq)PLsia1jtb2g3|*}X{Qyi^QBs_N5=6cnfhS%h#9lVlkd4j5*@{L>ev<@W z(4doqsGd#H=3-enE+15H-PQo$Wpku(I|XaN?SN|e zDzui-ak&T%xi0E9YzHTrL|bd2Pc&nV1tnhF!K&~Qru(C3q}VhNiJ7~NVQql7PexBX zTP9n??-6I1^-OaM1Q{G@nt?L)l)@YYk;2_8@lqIL2>L5}f-LTD+5 zzDIKWwQ|yggamiK-Vo#DA(@-lgJ}fTI#{_lf0<60C8}&cH14 zJ4p*WS@7kc>}so_S6DYZOA&<8t_^$XQo8}%Q_1jgq!sSLbNWUv$bzE?tEZcpYuG+_3Ivr5c$NNhEjD3uALs*uM|iQlg2{hI$08Ze5G^I)3n2UfyCV3U zTu`JhWbxkv2QqO1zU+yBg=?u+pD&BNwr$ROaSF~HlcKw9->P&otu%MZ2f+g*T`nFbR{!-Y+!(6Jj%tZ^2^T3#19EG-O# zHvnELc-gY#Ep>YX*gOJvzvCxcEAMhw90O43zw`^h1&H(F{3U=`3h*-=fez#^?lfC8Ch)u8M1jtMdqXdjUM>9Dy(~+g&E8;|Tfxk>6M1Xnlzgv(dPl7}nuZo4SPmB1mpJ^V?$jIn( zJqS8cTy(9@lJXL@P z^j8!D5shP>t); zme)D9MDVJ?iP@aU(?R?#ZQ305Z+QZUm|*GQ3@)o_Fjw)c*M=jX-5g2G7q4@M-^3vG zHXzE941LxJ27_yAF0!oilM2|S*pmoWW^?!w@Ft)MfC$b+UH^ygcs2}>yZVPF`urO> zT4uq||M7b;v{Y6T7JBFI+!4rr0rPNoKtN%RqmaWJ$87AmW+{V*Z|vWgl?C|uTz3FF zcxw2RzVuiSDM!GoI~wpf{-XGyfPg^ZZK5#$$MgP6cQrK8%y<$tZ4mik(b(ByDe_ub zKBW-R8m_j%U^PNNgEc#c#dsnRS2FTg(FE2n736!xXYDH>@1-mz*94@CvUq*ZD$BFi zejC_bh{J>GH;bjw>nQLT{!)!`mXUE;p^P=5AN=XQQo;v5%11_e-2T&Pd4ZN}sC$() zr}D$crE}oh%@{ebtpc|_Rt^8YJ!wzCuZMn#5Cc+ayWN1nJsD+6*-VLp;`x3_d5(WS zR;yO;=FeP#82Ll^@n^-`crGpemxGjDCtvDUKLHM#yn5sQ{8f_Z!21Phz~DTDU9vP( z5?bQ}^UHsJND|*L>=XLN=e3=HCsO4IqzIi8vT5On&enu$M?82d%+7<_;)3#MTm96O z@Rcr)b09Ajq}2ojasFNpqfee<**Z?Hm1PhWB7ctgl`H{jNlq66ySa5ZZOp$BLh2KIi5j zvQ%D*1S?fKX$_>1`^7I+*6*?*l_8{x^|CG+ixhchS?^0PNkP+hw7hY0a_lT8Ku5F` zK1@|_xMV;s0sXyeN^#o?RL59Hf%m&;gg+4f1lY6UZ`HDdDGp)wz*Auggt@&BKlSUn zud(U!T*){_2~mcT(U4VBvL#HQ;h1;6y?r`B?lq}HY#dmwI55yMjuS-pwGRx18nMqN z)s(#}T`Fds7i>Ut|Eg(f4I!o$WBnqgj*t6xvfjiOBr*ng#U82p$E_<14+Ss8~DXMJ8%okOsJez;tCK=S`xP5zdpSqiOzhk;Y`J|Xa3qA$Xj;Op0GK*jK*cDia=QtEjGViXw8{LaYnbVQB9LPR&f zl^%nHrjR8$oBS`5VG-OKGWic!5L`{WnUtN}mXQ1IS#5*N@PxDy7lv$$;Cv2fA40|< zdA8nEEMzCZ4&RWv0^Fy`+i#is%Pc?p1P7`e2Q5Tyu zyY%DV;4g&YOx1_hRihZ#37vv!R1$ubWLYuz6Bmx(K)gfX04LU0!THV(DC+j}`se4* zA>O^Xq=N22ftbY;tf)ZbEl#aGNsD9u5>9;Moh;Nl zgu&&;Ru6UW6eccVM)4%eKevl@2{{7Ma@hQ^IcXqP%-T)+5ET$Y0|GTSGRqleqJTp1aJXO#YK;6=Cr9+LO z?0ol;FvJ+@mcX8q9I$MV+=+T9OvYj~oP&Bs2>BVVdK+pA9|}i9>g%FPQ<4mX5E&6I zDuOdvxdNXx`-1UQ;^rlW8fY8_2ws79H3}LT19-yF&}Su!Ye%}`Y6;Rq@ruoEdaVk5 zW@Ak0X4vX1DQIf>3|iyGIq+fO2SfSYE_34sz_x>IB;N4nVP(_SRL`2$Hj>Ma7A1>r)dQu7R>u%K)%GC#)T{(BcE zwCBf={Ym-qCqo`1ioOMOoE_vfDWj5EQz{L{&TKi+5_geuhH9&dlD|xz_)C!P14rE>E07E|VGm{O~@Q&yRjv%E8V6Z&}o^)YV9v z1r`oxnbbK%#t-8OdXVCvjxrSV#oEpda8huaZH5BjI6kgn1}vjdyJFp?DaNtC(O#-h z@Be^JRcu4?erV-;ShH?HyABGfqxGn4{jm!4~AySB>pbhM*00(=z)gp!U}CkxHAl40MkosjhoB7`_B|58!{oY z5V6E`b_v15{*d{-1q@g{X4z49QP3`kdS1`Ccd(Pfa1w{{o|KFRS0S?W=ek35thpF{1K7Z-{# zjAffQR7RvvVunVYO6NrB2N{sW@!WnKE-?|AaM$7?erMf0^}M{<2I(h90C{ zpvY3a9QW}yrtZY_M5@yuGLEbFa;(qAYIw-?j(jo-Q8!cM8V6UEu7b`iO$G@vW)Z8~ zjQhV?dE6jTLvq+0;bi<{WN272h4|vbwN7LN(=yF}^1oWZE8H}!TRuOd&*U}SSmt7h zSLJkTug5`97Gv>0q81h6tkK(y!5Y4}SVzN?193^%?OcGvRAOXdj@O_EFL&HJBx1{x zVL|UA+;c7y*9iODZ#(XWBANR5_z*xbnME36AlmsIrUum>|B$dFSbB(I>oegmy|lze ziR|6>GuqYb6z}H$8h|+A>ocKX74KZs=i!K1Zz6lm$;rCUNl1-w;{Ro>F%q+aBi7<+ z!&yv(O~o2;~2KH$gHK-{#lQnneX+fX#4)vEbr4&M(U0-2_6o9o*;w2N*lr?YhW75U=Qu3jl(10esz*USCmh z0?@1zAO|y-FT&P&fJGASZ4VF;XVQ&VAk!R*N^6%k3IHspo|{o12kx>5i*GKtUAXQ~L6)IW|#lcQ(cmPII|c26P`l! z`450DrpCt!guNTWYC_5X`?`R;Ss~~1pS2jY?iXD$6c~Wfv793!4SQ<0X^Pbk!1ssc z06W!IPQ?-XFUsF(F_HXVb`#(o+DiB6j`;T8%?m}6F~Bt;qr!U(+>hf^0>Z3WeQ|}K zrZ(U6WF0=)0AmmgcSu+S4D~OOh_RJ`1>RVP!0BYuaDqJyDH4wLtY zBK@BwbVksGEUl%L?l1hb>9!O2FQ8_fKHvL4X7vBj_Lfmqwr#t%NJ~gJNOyNgcY`$2 z-3`*+jdV{!x&>(@m6mQnx}^~i@jK`JJkR^SYmINLvHq-Ix3@SZ*SzAqj&ncuZ9meY zg-4Mqb_Cg7=hS8U3M%GxJL^oWeOnrg?%x2kTB5il8Sy(Or44WRC`cZlYRiQsrPgoS zIpsAAr}@_xs2Ium@W{f#(tTXl36dMwQ(b4pTR?SA-UKXF$KM2xYlLr?N`T~Uo#z^9 z4=eWQ2~ryl!Ffp(^Pg4bo3G#kdwWTV_)%F>HaRLyUN<*44B>U3ebQ_DuAH0)OGWv{ zl7RpGG6yF*xCDlWW$Qu;Hi#d{U|=@vz)2|rPkZ!mbXNrlTi1C%C^N|duGOzzV9~>7 z6U-8FfS@46fX62<|OiS~xu7z+lg z*$_A^G;t~p=x(}>*fz%eM{fuce#2|JE$_4hdBbxn$)5ctgFI{+&6?oxm!yK4_h`g% z1JK9w0&GQwwaJR5GSkx&UWt+|=G~IWJRjdrXVSU-`JI?@eFp+aAk&$8!%i=-$w=<8 zC&oyCEQ=W)E;Vk0T#K4kF-h3Ia9KJI1|gY2rnL%a>WO2B`fInHVQ6FqkQ}PrNFtkH zJZh)6i!q}0!mZ9qgbYp5a&*=Ut5}JC!|1!YB8jZ;nNRM;EYR=P{mZ@tN z2$3w^NcVFbyBrmw_dD2`v_J7{;2pujgR=x;1;92KHhrzv{oo<8PTKkFPoaN)W|~sk z00;if|M;&Q4Vv#*1`Bwsm{?e}Cb=(xPVu{^VFt;=b$cE!++Xc0sxe`ouCyG3 zh7$8xBXoh}Dt#snc8`H8&9*Mhzv$>YD=I3$E*-!{fJE)5>`p!*;_f1e&8PZrB}-xRxknHcMt^vDJ4nE$apjU{{!$segMcCG^5Mr!2LdN znxBd`qBy1L1kS+r-Q0k+#1?icX!g`c{zwB{Z@A5G+G71a~e51Us%oqcNTM|PJuFk9WeTb;dw`9F}p8zpD5Ar=%il{T{$kw%9L1aZ>d@G^FD zZk4cgWqHbYrN!wH(g8zY6|>uwh#GB7?eI7(eosI{Lj$g1+?2T1+ZuOv>&ZOeIQKl5 z66ZawW18a-mn<72oub_#<_N?b!iXejk0%or>{kRkrQ}BBOKhy%tj!4Yy~+I5^$;yl z<|AV7j|M04sL><+Z)vNTr~=k;P>I~%(W~^mR!|WlIx=Xoh;iT~#*rIWV>}7b9$6_TlvYxP zUZGY1L)+fmC5?W7D)jEBgY8Oj!LwUe24bO;hOk64W}A~>HXm&3Zw0lV_oe6=Dz9xG zuq-?XN&Li}h8j>lTd~Z-P;WC5F;hh5>#*o;Kl74+sCKb6IwARjr?UyU&W#rvtXW5p zj(2A&wGsGF>JnYQx6c2egKhnz?Z-&e#-PSBaATtXiADAT@jC3CQRij7B0w(XRXtm* zFH}Ge$FlpOSAmTlGktEi_skS=0J9E44DsW_uJL&Gjav5+d6<{wVyT9P{vfVQC7+QB zr>ezyqlZ+;3ss{%UipU;zu*CZl)#ArP|be$(&6$Iu*15=sU-3kA9nz1NJ3s`SJ_HcAS& zYsciCkhFwIjYkhD-$KeTV|GGW z`>I)vk#Ec-y5Fm@QKj*OPpKz7@EATPI$UdaSH`EwM_k~h@;))Z?UH58O?*4kd`xC&tm(r&P zDDnMvlfLI27zWYuA_5!zl&3I4s@a@Fd1+{Vmj#j8ufH~;46?(jJXt=Jx%c8#|xUnbO}LSEJr`!ZbMM!TPCYH6B+$Nv3{{|lAK z*~=L0E*;EKgijwwCgoBb5Z=ZA<4*pJ)!D|~LgbjX(6KIR3c-5L{twsm?S7?!1Rt#nt|EkrC#NvP}S3=rlCY79FfVv~x@+3tE$U>(yXzk*lu+6wN`%cD%@ zO~{KC^%UXM5&`n=vn#>JLd1jzRs_*Ms*dHe($9U^d-zCYSeK>^^2&!`KM_ysQxik1 z=$~soG@V_94Z{C-)Qgw}0GRHMBp|L7@!8b&*@XDuC z-Ba>|)RkxLs}L7g@|&}b&j7r_`K&$5C^ycqWI-@?Fsun_r%fbQ2Ozlc?5iwSK1Bru z|GZZ$SCBu85bKE?>GJS}g60l)`eak6Um~=rL5@~T3HSi65Inp>;HarM%9;gmarOCH z;vnQ9?RUwu*dJH$QYZ6>`jm@SAPk^GaU9DUD!m4t_054O$tjLo8Yp{(gYQB3V=e71 zqVQOYT4LJzjYngzb?6>Us^~-VPPV!ZQ?etcD&}~GovC`O7*+x`p<{a=~l8 z)j6Z{RKjRUf!kOGBq{WHpou!GRpoP-e*vAsapwaGsHVO_XY4A@daQ5TS345S$D!xx znqSS&(XWa|ge#*TJRT>fo_r5zB(>zOuGiPhmZs|E(KHtHtiGws971y1+wG$lr*vQZ z%cwZMd#v$QNSRc13tB!tzNNt;@}N!+SS{7DX(&HgWAgv8t}4R570T*4Psj*1prt>bbmjaiAe5R_^E-pCK^`ObE=~rKTK3MON zYP^fgx7;p;;MXwwfA$|O!re;hssE1_@HwCOeSTPh)-`gu3uQT?a_?zdW#x-x8uz+5 zvFHCywc=evsn)AtYynr!ItV#V)UERL8~rz}a)w#kzDn&#`<$ucb7}2JzVxA-W!!yRCHU`-pbp%w0f$XQo?d zIUt`~Le!P`pbcV3jhSliX z;$XEF#W>hI3n6ox`QI_;yy^^Y^oJggZ@$LXhVWp&#Z|G@>!6j37qrOY&b7r^SB15WH=hEp%&X|F{`Ulb4H7E5)=m1o^x-7=9yl2XS) zs0K!CiMtAid7jG&vAAqc26uL&ZC@y`P+mHlH~1X-e={-d9Zt#i+SiM_qwX56=UazI9*>A12og`fh=u3Vse5cCp|W9qD&`7}tP&>oup!FrxGKbpJ5X1Cz$J$L z{?p?FHF0vi7izLR0#hBo*MGoMMM$SEGSLM5SDFCD?@kHWRJ@bfR9#(%NhzYvTjQyb1OFN)2-Bh-4H6Y&^4#}fk6dRvqSP9Vs`Iz>a&>U??!2G;;2ZP7 z)({4N+(DPYi<@uMMsSX&K8%@ybxfrRYD&(_!%@KIj-au0e5X1OT-cUTUazq{d-(jQ zb@^P2&o38FiN|E4;>F0w=o4kd z{WCkoY69D4{!egJ{9+QzojDk>Rwx+i1?z$`<6B3ccCGKYwd!fH_)%#-oj*rxI7Czs$zF2 zk=po|!L8Q6i?*1;CgpxeI9i(^4(=z)D4)YrSIyQ(PxFDFK6=8OLT9T~t$#+VYMHo* z9$wqiWF)_L!}#9r2wP%MlaeCD{Biz*aN>4&_-9#F)DBA3!e8C?z5J^87lO(+3~2gw zHA}53mwB;X9xbON#RXd0`&+KtyewJ8pP22^xN7yjA`@n>uCSL|@YyVP{_2q@O1LHJYm063K;10{QzE>ZVgsu)x$a^QfN+n34_sfJvUI4kqi{Ctit)vkC3NvUSq;3 z>+~v`Ro!`ef;g=2zz+bj$mqN!RP|gNlie=vE*M2@I4n%A3Ycqt>SoL{&?)Xxv#kXs?_deiZ z6H}g2cNR242`y6weg~F=erkGRs?R{5i6pNLgqWSKuxOM|`X7GqOr@>#CZ~esBmb+9 z!~I5)O~X>WY)h*y@MDv=X4twa@TXUq$;4C8l!&ythlz%t*-ic0jo85)!xnP7{-k8 zIT&8+WnNC8t(<<6C|v)rSRzl%*{sb@XXEFmH`{Z|DG$o6U6a{ZTJdd%LD;qERmZnR zZ9io*N5yG*#8Z719n3!l=a$@rODjyByU}~`Vxt1KAE21^5AFtjY&T5e)XQyi^ zkD~J+9w3h`q$vw<(+fFEE>~S{$XK8~a?1z_9wonDS8liSblQ&Jt$i+feAal#E#$1% zXm&fCA~Eqi@m}XHAgRE5W65OTdv5hgedQ9%g-=G3rp^oHql%T+i+LZ5j$$grq5(nItV0R zQ$gwwgoQ%XsYb-h%qDZ{aa1%mGP*phNBA(*DxH|D|HafkYi*MpeH>%YfYoB|5hVc@ zd+ikFsS><`S8V>s41`1N6TE+nvgds(iX7UO^upNodms-5Ts1C^Uj;`#GKH5Zz-!k2 z(R`JA({=grTYq7jmEBocKHWi_1$PfUGPtwwXrsJIb!g*!aNoMVWV8;9P$0iP^+4br zSMp_80!N0a4w%}t;If}22-H9(%sms4bg&LuZWni|+p|2YZ-c?)plnAU;S@5&jr%s0 znfzWoZ`EbhaQbQ9af5lti@r3~4CT*m4T@gU%lx|)%&mJ%U`OP{Q^ID!q_y!@?p(`TFL zRr^>Dh#l^C?kHdJ9gjGfkA6qq6Wq6t5K3^-S1rD9iqiX5X3kEJQ4(fE{efb35-udz zk4VP*p>ADgN?cD~Vv*$-iW`TQn|utm>a&l45~R;ZFL%dEy!0X^M#i&*>SMc%TOI;8|<6OD?<>?Zmk3rG5Ch zyUrOuW!3UT$U^N$QlrTicy&|##pu)i=ReNFaIxrbYMUxHqN5=n?Xe4c0NB){NRs>T zE6M*-W}DSe%D{=})F?DPLP&c&hTqdm$qw?bb5>R5v*1P5QRNZB`_s+$8p&CT?{J}# z(mbEH7(3fKAP;)9l-22O{Dvtukvk@y!shX|DQ#im6&w}aesHD^{H=N}U^ak2 zq(wawz327W`bSclkLefuKFY0UIqnKMHwV1xY?l_=k`giT}! zVdYHC{@T+Y+Yd#PRZhL68Hn9-3RGRp_A*+mSK)TU!z;XF{7j2~>CsIgPj`9u{vR z$PD<6^@cOnJy+}2zCb`(M7z#MR`su4&^U*0KrH@ssAHtca?>XpLrd|ktD2-#3K5-f ziZ@)jr`n_?lOcNFAOpyB+&1g}7h`OHO=(P>oc3o`?A@otcW0AkjomQQ@q&lAD_wtF z!sV2Vki$?nbym&5&;M;@R$h|8{TInhP2JopR0WuHOv;&AAZ{9IYT~R5Na7iGe!h!l zwa!nU{kT8+O@t|%L(?^v-eut#3UId0U?Xmx&Rdhc{br==>xbS=p_`j0Q|ea`@g}z()VDKW~usfFc>^p zZGoJYeD&xg1wB+!rEn8ypn28LOq&Mhii_A-a!=PO?{&POJcO%POLQIB@z{z4PP3OUZMw6jYOG;A^7#DQ^qxQ>Qnslozwo0rG6S5h(zoTCNi?ok)$eF6Wo8{y zh1@$A*d?cp|C2cIY2dO;(4 zj} zs#k8)Tj_SUj!#fXcy&BDGF#sHgzjVTbVL(u2xviP{@rn&sDy=)$pjviZxa(kZ1RYq z2M9a>Amp{f?fR7b;T`fD3Rq>%tEaT(J+`>G9DL`)sfziY1i=El17AO@YV&&#(U!)) z!;8GZD5l)+P*YVU(Sh~#>5A_^T0nkc-`vrBH6T#J;H?Yd5*7dgb1->2?WgM$SYNeO zf6b>g^tW37FM$7bLaYeUs_feY*KDT0;-WZL8{EhGIC&-IHeE&0h1v zffk$ssG<*S8aWEDg23J4yJ@+_2IK)HeY!AyoTLskg#2ee5DY%~=<3}kk_w&WWRv2b z!3B^x@_}lCBhN3Ek&RmtmnuLzZ4RS{XX^fFoVUC=>9B_*Ki7MZ0PEBJq^$M3#HIo* zqCRde#n;CkQ!odc&71Q0KmW}oOOZGNcT#NO%8*}^Aw)gG;jH^~At>C|G}*B}+7y7& zhRVfx`Q>>la9vhb$-T{RKqh!&gv)2bWr@pR`@%WX0X=D)-z;>zD{N2$-$r-Z=~r|y?9g*i zDyMCedB78ST7DC%DzWj+A(c+l--<4P%-=G6vuZ1B4##09yXrLTeZ2J?C2PEr^NJ>)BTe&+b#$Ff*k0=3LjVu&X;(l1*{jcKS@zU*xzfU)}lWDOZ0?nf5Of%RDyx zT%3MP8`3j9fUWfWUPbf)&^tcAepO*k+fNahEzQ2@cAuO@z){9~Pd&qj3km|=$qAb^ zu96Gs>4chN#&5{MY!s#w7?q84?o|W+Nq{li|33P1w4gNrUBs@ZRST|TO-?664@(x;a3fc)-u%QIG++x?N%FYnt2-(ExFPIV^e z*Hl_--gJb!F)pFLq+6yAm~pYSnmU@ULpX+gU zd|sb3iwB?W`1F2x(_g@e#{vzZ{u24WK<41_EHdz+hF=`<7-f#4(;OVI@K%F$$R=;+=ssJ z?&_@2WIBp(F=H>1J5-dV9won$fsM-*{(1Oaj&gJv|0O%K_@etA78Y-WL@DjFJ!ZGH z^1b4h;$IU19-k=3gQoW7u0_Vb&)Irz%4`mgQ_8i0L)wrc(^gQz0YWi7osd6{3A7*e@Fc z=%aDbW>GmJQNM#%gfg$X{3}WxnkmrR1#JnI?{B`@bQ&GEK_Dg|2yTx&GL1jBp?C}P zCxIR;(*#YZsSu*2wUXdR!|AVg1kJs#(DcLbHbDNm+iUv;=JZhVRnW&d!5Ap}fj1Jf zBpF$z9X+QRVlN1H2GNPvP9!~b>lB9os`G_FM3Q|Kfi!HMlz=kY58U zQG1|SzQs{O6*zt34V%fV_dYvYz@+zCXASv8@V$fnphquHq(J(Qp`~}1;I>N0dtX@i zZ3DPW&Kr5;W&vW_vGPdMB1V%d^g`UHL3XP4rb2abT@pZ682z!hOjBZ0DQ3%yF~3=X zB}#~tC1NZ`G~&<(kZ^VnFD+ZicM+*`^8dmqdunKa;P_u4BWZo2=h9&7$w-TC;oP46p%C`dpnUU^h#SfN9k5VLb=;>ql+}??WKF(LOXm4Q zpZ`H>I4rR-tsPTS&8fZVo60bHDZNa{fF%Fl7zt6jnI8h|q zMm$CDFT~#S(Jke67@pceES@TrPvth32=d<R&+tRYWq%A5jC-;4y4Y9B(fC=}K zp@WP-o$IXj0q6N{ON2Zj43%Uq$4)V931zdh%%dqKNebUu)?PRJ{D{|1u|h3|Y^XN6 zEY)g>=Wv}mz{Ax?;23lEtMWF}TcF?{3Hvr!tuDH3f8#Uev71U{>3zex!ghHf!&mI$ zm`!9PV<}To;d)y5&WgLdcakHr1|{qctJzJ4l3x|$N0Ed~^quN^Q#6#HNGHBeoOwk- zpE}%E!elB=jjz8BC)j{P?+ZRj&YH$hion+o4+4u8;g_40H5l6lc%K$97lFJ-szB&X z%P@J@nL*(`NTWbw<8xfW5sanI3;S>AcEk%0*c8&Yxpo4Q8NPT#f}%FsiG_crCnLiJ zUaC72wIf|=>Boi19GwZ1Zk!n32jhozty` zBxz?di+N5=ez}g1(wT~o!f1A@Z~+}jf?Cepgnt0sDw2A5`Nl!y&1mtMTr9-)Ynbo(pNQP&tgO z8CvO4cKxm0uV*nP0K?7I;DJM3I~2g;J*lI$S!~K~D^7>?kHkvA7n|*3EZXt$7Qhk8 zMP~mdxjg+^F-D8!Rj1dfo%!6nq};IDcT|G$Y1ODgXKV00z(V@_!Vvw;G4Oq=$dfb6Cum^s;Qb&?)%0x=c}RU!^TSG_m<)w!C`5lE)Va*{ivMdZ79qw=RGJ61tnw_8?P9{N-v=>r3^CjgVQ-_Z%cl5bwi|_hQ2FaAMK_{;9)LQ> z>TuU-2`+$5Yb5jFw>o4JNnZ@j>s>EXNM9WF=Yccq#-{?c~Z zE-e_cxY}|R0j{rpa=V8bqhuarA$M^1-0rJ-u(}9rO-DYS!B@E2=>-_JB!bT#k=M@R zCFqf%%mWb@K7nSDt2R7%M(ny}rfnI-;o|*|H+U(qGg31kaiW~SOTGRG{RNT~YUdq` zXbj1S#MJY35>va~iW^-)9w(CWkdkMLUylgzc%Jv~(x7(O)*yG=)-=f}h(Sn6Av!h# ztR1^|s0%Ho_(`PCie=m|n~^K<5-8n5X&WuA8aWuv<>iqW zkkcn+UFRo!K$ZA&Nfgp(Xth98jm(opy|8!1KC0gn*&*`GKJU>+PLv>#+>jEHEW zketPAvdvb&zw6pf{|qrl?Pv_er&g>AiGg}OPvq=EwG&~xzqFH3lV|@kgMn@6o4(r$&#P8v-5+3um~vw*Ce8{s!Rx1J2{>e?VH0 zszLg0tr7TX{sC#Xzb1VKvX<5xO4D@0MTNH0PphnLKb~vJzDt7pRFDb>Sd2+1nwx%o zcekAc0xe3h;6;&r0bSm@?t2WhPAx3*_v1>y4jxJDq$VE|u4VOITOwcd`P*;uq3%AU7ouE$lV{{CLdD;Tlpvww_!kk+=DSr zGv7o3Xz3vi$n7pLH_RjLGnjB>21;goU~xyL%VW2lDLwzy0c_@gyuJPW_s>~A0AN{J zjereOo-Th5%!d(~dBNwr?qC(kH<91W8~y-tvNc<=RjRmC*|{UH$)oTv7e3GY!2q%fU1~H9UEI zTwGINaLH9`6v`nEUA}?L_D#1P#P0Dfv+Oy9{FRA0~NDc9&{)m z)XF=;n`8wNuHKvc8;r&6hwT7_$W2U<*m49b7@4Q~vw{S~k(>h(cvG=zH-@etSy(Al z1RopF6*%V!5QfzhS+WtB8(k2Lr>%Vp<}wYdg3)tN;J86DSCkUeynpdbCZ0gN2@Fvx z@KOy0XDJAbk#n)KqGd^<yQ}ygG**pHPS>)7aT5v#AJ=>| z^4U%Q^J}AUK_>MN;8>k{?)QNAKP7heMs1QTz`6SdZv^VOU!lRd1q1ue{|NtDgC$)9 zv{-q8FXIUp80Ym-YUCctL3q(e1OEiD4_Ks6U^-mHSr3TU2WEct!1p3$wzFkWzdE6H z-gK1~)A}D^Pd)<}IWeD8sgn;qxML_=;NER`%qn~6yP2sS>3$9rwv5_(6>vRGtDGbD z6)bsK9?3i&@e{I!h91+>OP56jaWYwNe@7qbk@PqauNOc257%{7r`zqX z)Gupt+&-Dx5u75m(G##a3T8S+IB|j?s)wl1%2oh-0c@f$!vY8GDkBVV0AUIcMvz4D z3tYCp0P7b910vI~qr*Bvl`6$L_!bTCkW&+3?UKmiqNFQ*Ag|3PC^V;mH4?gy9p)Q% zS66vSdcE+303W-^EmZaXlS;X)A-h9q>tdhQhay-av~)Q>IcIqm13<7}3QK?BJD&Lv z*BYCS{UYPvZ0bi>%neimcCkQ^nR5o_+l`;@*=$u%UT1^fu=)?5TIWbW*o*-9RP@14 zPGuL@m@OH2GtzTyQ9w?h(s9_a3wtyHLS74<-M@4!9RBIH_47pzSn^zDNnGK4c-eBX zl6n{1ImwxrP!#XMc(78c(x9zeFjY)H5K9^3g+?aJ4FO|Ry^cVs1mLAg zq`>E&TbH6gL~jM^x|YQmLN13bJ6J^YGz$QzCXj^tu>JrgCYrB(0I4wsTj)f+8;auoTL5%HOO8JN(a%lB`xlz==w-a?dkw^{UmAxj-z{Wn>P zxMi443kH(z2KPZu`stLHTjHf6jjZsL&=( zC>4r=$ILGJ9?LONKLbxR@X>qs~`f-k?{nYDDyikckRnopJR0 zhw6l5L8&j2`(k`YX(QR31g2UdrGG!kpNe*MRWq?GH1Fxtdgz6HIkj*8SwSt-pe6s&hBvEk?e8JwWgH-Cce+J8u{}RA@8YTJ&{;#24})CV9YY773RdT6G;zki<_JQN+!)A7qjO5E#{JM z-BlSYd6dP=m}l8Yvjk`KhL{^v+XvjyWIKe5tTS-mQ5~2}?+%N9_WX95vmiqYgH;HB zVznzr9=BseOwSIP1i0lSc?=t&u*tVR3QZI`GvksU+sjx9+~e+jHR!%jMw9vgcp5Yi z^1gG+KC;Bi{uq5J`j|{6UtXkN`CO2GH=cCrhXCYoTQ&m|5t_46A%Z@&BJo`@>F%KC zoWeyz30VXT^P9ZuG|b*iIX9Z7Vf-p8cIFEv;T0{U1V6gGP}x-TsbHe6;ha!Vi~O2} zpEdnK$?b=ZK7~%?r&6NsVDyT&uBhagB7i!(?0#KY8UTuo3DoWB=aWMl9i1( zXQ5?3`37I~1on@x0a+BtbPQo} z{)l@qrKS7jj_o~3aHul>f-GmxIk>{;!Ub_(F@55VIlSN%ntB&c^YTIr+`3xGv<)^D zG)D>MrGh6D?2N>|BxUp&h85>)^1s3BiVk-014ADJFy;>Z_yOkfru*RIWQRO2kbJ-oce~Ic z-4#kRJ;>H^Kq(0G4>Wm#eyiTAZDj`ilxN~&`osvVD@uF8u42M#xGO<10F44{k4*F+ zCO!($sX^K2aG0uB1M-WR)!McFsn!1QqnJmg;W6rE$=#azrqR~?7I&FT|R*vh4voQpm#V&U@We&V1-Deql3GD2u2`WO&!70p_kcp4%WM#dk(2>;H6y9PT3&txOwp{czS|~A#)tz*nCsNy zZ%`0ILDAJuj%=W6e`p5rq3!|WF8Ap=2g#D?AzA#;7!mvpkZ?m7W9)nQA@7ZvT5ka1 zFkFJ2+!og)KWyh2m|?8Rfbs`t+$E>b{}Q>D;)F22})1h4vX`DEBV0$a)9DfqvbOF_DX==r(b?{OAQUvK3WRR1Bvo>Y#sQ zZI|kb0N*SMyMmQbLt6s+8pF|hE}C)&D%ua}9jseuvNin+pWVU}A&u4-Z_LC|Txk$Q zu&=>*7f@X2D4~wN4tjc275$?rkU|VaQK2~_=F#u_bihJgi7tcf?+&0;COZ0fBfT-I zB0(?kg+boXBY^chzK71bwm>%ueBV80!SzFbHnC)irz(gM*xvd#`dYIh#dSYs z`~)3v=1>Ukk2I!2@2waRUqlxZCc`s6G2u8$QAQ;a? zsoyUexTCS)rAP@}S^F@c3ty{+i`YcycWlKnrCo*g*4i*|&*3s@gUPAFbq-nYpd*Fb zqK#%B!4B&}yhB$5x{}5t_)-+w4t*eIDAo7( zK1gd?v9FJjE(WjVBXF)I7C)1-v9Z~l=PPa;39$nXQFr- zV;`hUjpYvB?%JqbH!U%|nb%E}fCE+*%PI5Nm8F$KeduF9b2NUC4^Ev7IR-?6Ju3a< zIZ+NoZ&X#YC6STNc@R*+F>R{OboI{yN_msv>pHJk#RerFoB>xoLRZNAF~(=135Vvx zK9a;&yWbWTN`n01DU zD{Qzv%?=v~Ll~;9mki=K*`+Ft=QAdn0+XtI3|(P6lu+>-PXN0J5e62|5lbPCziOjHRM!p!T_uk+b z^p5uWf0+vQF^r3ei;b;#`=D|^+yI+6CF$^|yNd-#0uO^8wer}ec04w#T;eZfWrq(E zoMv#1R5C^wtcTi>s0`pDaf$UDU*2ILuyYcY2%DF=hy^ikj173kurMGB(%DIB`vEy9 zMm^eL7DjpYi+4*pwkg46M7})vR#J@GX7p}J>k|)kA`{WG+Ld@=CdXhtX&N|?7A9%3 z+f{do>8Btt{n@5-$v6S&RqubafUeCYc(9(N6aJy5AOFF|Di{43qUd`~?G+&Q`5hRM zT|zvnXBBP(Q%i`zS3)%UD}F+<_D&(NtsoSIo3pW@3qI{GsH~5MgA9JNe7Dq6IS0wO zdi|62b7>?ZOAmgqsg38nqB9iml}1p7xsv``bjz!cAKr&qCao~T5l2I}zE0Wl%r@sV zDlxec$v;7NP)-Hmz|N1SpLmbaQT)zjaQ$I%3XCQHbECs`TcZh3knubDsis?F=R(QV z74szFpCA#3Af$+OfmH;J*#=#+S*%Mtk%sjZVX3?2H3WE$w@H3@#Y;8p4Vp$I)Ajib z9n7Z6V8DIY=Pn`2nZf-cXOQXq1-GvJN9f6)c-HW-x$9W^uM(SQfUshIRVir{45F^Z zrGuMm{(a?UO^`xyBfGv-CoY!C^ufR?OBe$j8;cqT3S%R002o_eC=qXhpTBR;OGwaD zJl(8X;lOSu5$yCa+6f2Zp4>ogHmLC$+`f>2~|gvrk6 z?H0p}6km&V6pH|mvqAAngNxF03tjqG6o%RiM1AR*y9-GD-opiX3;eqdJ91&=JV!2r zDQkvlg8Dp;Z*!M8eWv5RuypQT$HB7l1`wGs$5}9sUV5I+!9m^t1dRRocRAzOjcN@)K(1yaM4T`3d-)$2BF@+2E+&D689cWA zHCm+I*quwOx8v#6Q!hkbB4xtt0%c2iU|Z^p{EZH6X_()$jD4ws%=Lk(@SaYoy&XG$ z>h4=?db)FL-ZBN(Xbw79d`66?p>1XP#yCR3?JL>%FJc+;vU6NsOWc1KO8738 z#!x$~66oq?I``a{Sy`jnRV>p)l(U|nQ&GZyXA-VMBJ#ttX6`V4zN9x0N!$Wu=miHk z{s{&EYVrTh<^R9_|L90abyXFZdQGMottOne+SC*((nr zMU=Rm z`i?3`LfUl(_hW3IU8aDM4Mr>3$@AagTVAA=k2dYCFHo>b@-VDj70 zgu?vv^cJA~J{_tCbzILVc2oZbGPEd2c}Owv0ZZC%kO85kV>n-DD3tCJPsDQs0vh)q zz*5kZYGi0gO&A>LIYN^O24saKUd1xisZEC-o16w-P4ID9PnP}~9T_1M@xOyc?AgZ@ zi#{cV6$U-|%vWjocY$pM2s~*AbtAN*3j$T1U5hG+JAFX`hU(PRKx65EoN0BYT0-&~ zMCd_vG_W327Wcy;0v!Ui{u)$VwaiE89s}1kBw|78*w-K(80aW@pmCgS90-cv$L}B; z4XoVx!vOpMO{Wc@RDm?c*_!}R=?9ULzk397Ah^9#0n8~RB{c;^>l&;5wY4?yYJd^h zZ3E=0*)+3W(+UV=HJzoRJQMlhXq6e1=DMY8R@u%In# zY?(wt^-Fc5EKuj=6;%iNc$?ONhz*F2$=u&Sb`Z$&vSP`ln>VOUZtIUIc=4R;A_6(G zAQrF3pwvm-z(9#Fo~O#}*-IcHznnkuf4bk7gn)7HV)>B1;mp^&Q2jo|AORD1G?D}) zp!@+7zq^1IF3tQK{LpXW8MV< zoy2jzDn0vIt--2OJOoJ9B-es+Oa#6p+#nqks}ILOP2i(KSLz#}HOr!@vC1rf#>P)D z6de%sKR9)o&hga~Z3O^Egm7oW4+1UPen2h(rsAvNmJh<+&~pTn-OE)AMSuc#_-$A+ zYlN$1NSW`u)M1(`kfw!po*nIs?y2q&T60!4y5+oJMEoZFI8Tr=+y^vtOzu90@;pj> zoRHOi$_ceAKj0vyMl4b)00zgv%Mm&dF}KNoWJ_?cA~6LzQ8!O7OcMw=o*$3j2yao5 zu_$Mvh5+b};wy+0I)!e2yK#nWzjw5dKm&W!5Hg3vwyEL;99OvW-(&r`D*S6PSHG*0 z5XahKvooA>Uh_mdCklSi4KEg*O|0Z|nq+=5Ldgr8GDT zL4#}sVio!ma0?{lBJ6NZOASSQXiX)tXu6qh&onxL8ed*W-ULx8haP{XabS@j#z(+J z|6IYc_V5RHvoD=V01*El2v!R}0}MTy?)Gd$-DNmBmJ;@oM*B6X(g~N5!EGm*krd3SB6POB zx_R>ZK-XY)X)TSA&eKnCYjN0*6p(VrI7CH7E3};czuM0HAL_M@j6tIsa5bcr&Nlo#cc18<#>NM=HHQd-I<;U5_hE|MA(tJoJH7tKFT2%524vmixc{~K^ zIi$unaQkE6d05L#k=7sG!qbmsg)NI2N7_J~O*hhH&{spDHOl+fdvCzIlFkpyq6vrr zCJw{SWO;$aSzPR5mg}4TLzWZO+>Qkrl}#6+)SNThd^)2l8MeK+uwWje z*V=?Y8uU?0wrA0!D+NTxw0<2A2gWz5hBOeV&D+<4)Y%v!7&j=HmzbvNi%(xo#<&Sj%)sGweP)n? za+}4*;hU?FkY$(n=PB)~8m-KpL$B^G8IT;AuvElcmL}@TXD#wMPdlJD+*giZxJc6Z zhxaIcUm`n5HGc7 zn%gs|$WJ$Ze1X2HH_d0~8)%ZL8+o*nWlb2!v$`v{!kyRS68J_h@U09KDyhkOd9rq@ z9z05#;wcx1^!7g~c0ZtpQz9AGr$}WdkR<~`b~qMlkcM{h>+&I62maGNyT4x1)hIR@ z$*8dpK=ErSA*)UQK*z+wlcE!Tshm;nUT2ELi^`q5eS=@co+{x*ZRyR56R|MiFdH|X z!tGAml*-uN7B>55HbD@hE=4lSUxXb5rj<>f0(i&mjoN5Cq8dZ;?)0{po}}Mgp)Z3D zD;C`#U~n4~ZqXRLz;4; z296St$UmVqv-T_~R;FVy-xVMKpMY@AO(rCvkH91I=h0$8E=1;|2^})>%emMKY(6de zl`yqHci9qi3XqmB+l~daq_hD^zc;Vp~?`}@&Q5W5z#tRWSrX`saHD~1= z4i3bWt+j>A*9s%UjW%uw+n{$du^MX96}QFV#%XW9?oyp}jW_~?s35X*0MX_A`Nz<@ zLTDVO8CbxEl#Qpu(KlNjX--a01GIooqPRVs&+(&zV-qn&$O6Tx|$i|Uy0S<0?@uz zuma)JT?&QE2&%0J#y1a$AC^UelvGFlF6F8;W@|sEHl$GL} z(KM`YPSr2=5l^d%oA8g2W-I#OviYsd=9*U)0k?aK(;dgw7p^4_SRGT3Cg#8wWlzsg%%IpOt;B|FidCV1@lS4`MQW2tsJbA#-IxUbYh;ygd67vYXvBMS>f_*QsN)*3hL=ZMaa2 zaeaYoC(zup3AGv{s`A>2n*!5aMF+>W@Lm`#t$S+EWJ1^=Aa+$7>@1qDSkey4i1zAt zWR086frVd<++KtivckKPg{FCJYQws-+r-C&;)S$cr5eg|IaIkp2_KTb`{r zSNeb(k6f$Rn@35o9Mp9}J&$tOYb%)y5hXtFX(8VLc?0t;)+BnZ;-QkOvggT4Vk@8423I1qwy?rEPu9Y@hY1+fe=2dm0qP2>2m>zHr zt*`x!jaMXctM_Ue&yu;>DyjQ_pF=J~{9s!kKo!$I60_!YXI}|f)GU*8PuGVnuzeo; z!TPbTQxeljEXvBxPLn#;^G;sw#y|LV{WRlM%%s6mVg?q5fm!gS+w^R6g03+L?wPJx zUtl!)&%>I2hpwcXbQ9MKv%e$~fb{S04V{3*71B zoauX+Qd4B*nG+4FP=aG2Ik3i)y?@(z-x?RUPN{b?H)`h<`+Z&?`ALsmS)|PEth@%d zjk066ylj)O(^b^oT9i+OyhX^)@{_b>=fc$sQL}cPj7K<5kFc*V{tBI{wJ9>SVoD-6 z_qoxLy3PGgFLz+vhn`X%a)=;m;EIXzi|oI@HFoCYi_cYS^v!hZY=honW6PxQHyEA| z(8~MZCG>;{wIAD#1BA@WC4=C3iW~1WPX0r{V#}5qUp$C<8pw6N&=s5TEJT zejH=%Zp2=qR^zBEuk_S!QqINR-*r#oWJi1+N(LCwVuPbXOlbuZRpk|Hga0Ta0Z4D zSg!}DiiC{D}{ZW_NbE|HnjhQ#k@;4!FSo z@3qmUE@PIBq7)bJCzq9#(P*@$tG}_Sh4{0cZEyGX<2X1te*WYP5+$3!PZhl7K|e6Ap)0S5=a2!1Rf2;etx zS}h;p;Gl5NWu#uZX6$BuG{l#^>1L#WpozuG!44>pWwr=Q{loK^2-TSX5X46N;;T!_ zF#G4cR#RurV?v-&*`jKqL&Aly)773X{QY#1xzJSSk)i}Ks=x8RS2)j_`IPD9vLP}g zS|hL_WsmN3W& zJ~|(Dpd~tTIuynigrEYUPKWt11VUAECGlXPg=+u0eKoK@g|qwDFEp4vBfe!k2A}oV z=Kak9QA6iaM+i2h=%#D7z=G#!2Nu0jGJaiJH>F3p?Dvq`|B&g%jHh zzdb^}MD0MpgGBLlE9COVrKT4*|JzZ{zmrC- zh*5aJZU5QMUx|m?lLem#ikVLW4*OFz7Ot+YP3~v0&nN2~vS*7N7MfSOqHfM-96s?` z`ST$JU#ZDmO~g`52V+r$N3}fM-{gi+>eQI49LzVV!-`Zh)uy|m$c#GWh2L*N2?#z% z3))TBCbPe7pKo}#5hHOgC?-a6&Y|~XcfQGEV=(g)VyyL=L$}`d`eo_M5}j|>h^SaH z#{&JMZ@!xL(#DATr{|mELolL6JTDKy)g)H!{UmMuH%;!}W;I`3R<_)4&o_y%L{iLq z9Ee@Ll9TI7G4Kx4ggklDcrou`#(27s?bCdJy)&6A?sZ+Po?qo>-EuN0QcTtbJtW3r zm%tL)_Qjp|dGI2C|F=TVk*e`@T-$)(VV=B**Zp*}OuG_`Qk3{$xqcEed-}(R9e-qu z`1p7vYJAJ%A&G}4q!kec>AD7XKRiVQ0c_vI?Gzh*SUe?61L7?@OaiL79!4gO(5lso|jvp#bMs<*%vN zG+y&jOebb!+-{du!a}Lrcr6A4n{21PUY%@ULm<9^)MoHP6`Dm@rRuq`pkPcg*sntY zr6_T?<5kXZrH%n8n8Oj05xJ>{ zUB_$vM}#afY&CUtA1n2ns%B1xBwDP;S;jD%+kb9qhZC>{WA@y=b!ZBjj;0Wq=aJJqFv5ms~yi~g~I<*>XiW;6w+%Q#R#4YFQaej=re)U{*^4SeqS(Qi*jUj)&+yz-#QjjW<*M`tXq8z#xgz66JdK_xxVt-n;O4Ax0q z7}^;`uRdRC&?4q>o-;|L?+R}b;(HCOynZ9gkjc!o2RmlQlngKq-ATB}{G$&Cj_%tM=5y2&-&>);V zW5jAvRrK7QYLo8RETPc=x}>`yJ4H$QhQKqc3x`3w9GCe zMU>ezEiUx39YLR_EQ!IWJt<0eh(P(tUIgm1rK3BPRt5^(}BI-7qretvd zl|2gb^q!}TnDtmP)@^N2xVC#1p z@5WY9c9#-edfZU;1y1K!kE)@ZQ(q!8BwU?@t}?Fl`;|DBI|kEzl~G4BrvVmc)7|;Z zq+P2oyaIOwx!-29dcIt0!!NZ$ubXqoRooz@pd(c@P3Vo3pNkFYGh0EQdruOzg+{k` z7yEO=2+FUezQtt)zpv13!2RRj#=xOKYhqypJh#qdl(#E-%sOT=%?tz z_3}@>@JIN51jfw(CQ4NaAsGDb}SwoaGJb0C4@MPmy-4bOE;*& z@3Jv6zJu#)@x0<0BV-9vM&@BuSiiiw61pF2_PUAHmsDZVu3&qr!tK9=yzGu2?X}u5 zB7_ov;z~=@BJg5gBWK{Df=&7{SDK4O_&tL6f09N0Hl0jJam^&=gitr2BVViHzARZ`9?_{sk`nLE6KJLfzeYvA#?mYwK`kK>Z>MMSwtBVw zo7Ep0ucVf9z;!R%|Lgh!%Hh}Y@lV=WB?P9xA?4S6B2#;Ls9_!Ih(3eU%7+b97Jl~xmeEWw|`jrXIYUsAE*tYo)@0y5m}(?J?9V`8{7YA9ZwZF z%Y$#J$MovER;`76epBGVR;QRrQ1WGns3Tib=7|0*BZIq_j})YVpJ|v>y|lMm;134z zUL13TM&&Ow_M@`O)n}Ck2 zBceh3yM-&0)BNjjQva`;v}sLjOVUd`XKhKpiRjqrIg>wRWP3)<9(dTl33PB@-)|Ks z2FrPbUhJpZX(Ch8$*bjjC@`dWr;eeR%Ko0dDZ{Nwm&-n#DsUBoUK@>%=77I;7a2Au zAnx>+E0-QwaZD`zDsV)`h>Fe|?sfe2ri^~J9^i4JUxFBFCZ`4la~LQ)n;YLc$hHk4+r(O?SCawT_^ zwz^D)3SaR|_g|MQg-@IweS?jocF}8dO)Giay6?AYNI`nB@GYB4xTeQ+xz6=+S)aEB zDDS1ocL7sz$&s{CDY4d5HLK;DmcGR@xU%>$9PitM#i;p-bnmk#R@QX+Rvt~@CK|HN z$8f&XtT-#@G+4!8|9}FXyM|M_RVGGuc3fN*3xs-5%5NgmH)p%(xXH2>^;)<2`wnI< z{Z;r&(RHKaRKuK$HBB1>+(76?j^qNe%=h%{SW?qk?ZeCKt{^d(62i9Xa|L#zTKPin zEXQ?DDTosS`stjMMu}gc%aDl!hMo}7WqOI2)rR4}F1dD4SC{ZdohvN-4(sOk@?@`4 z9O7jjk2-f8imLV?1dDqGjt6ODSvqQe(24~_ulmBIex8x>Ul;sYTtW%$qR!*J8SyTx zuE~6nJ9H>sc=T9e9}D5!bwj~(AjsGDc`_?+m`S|lJT9Yba!P z;4+k08$cVF?0Q2G-Rtl*J+so{_)5hKiF(y1S90N(3||^~w$6kl=SI`|_SQmRGSURG zJ4Zw02qpEaUr*m~K&TℑIl}15j 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 literal 0 HcmV?d00001 diff --git a/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-82-t.png b/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-82-t.png new file mode 100644 index 0000000000000000000000000000000000000000..52fd2e6f89f23e5649f53853dd3e121df846547b GIT binary patch literal 18358 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 literal 0 HcmV?d00001 diff --git a/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-83-t.png b/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-83-t.png new file mode 100644 index 0000000000000000000000000000000000000000..13c265b4176f5fea24c99fe3aa788909dd5ce608 GIT binary patch literal 25019 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 literal 0 HcmV?d00001 diff --git a/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-86-t.png b/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-86-t.png new file mode 100644 index 0000000000000000000000000000000000000000..246085e0c92755881425d84d6baef7744287794d GIT binary patch literal 13404 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 literal 0 HcmV?d00001 diff --git a/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-87-t.png b/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-87-t.png new file mode 100644 index 0000000000000000000000000000000000000000..53d71ae4a10859db6e06079246021822b3ef2eec GIT binary patch literal 19332 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 Vj>LNV4J*JKF=rylq4okL^?ydZhUWkP literal 0 HcmV?d00001 diff --git a/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-88-t.png b/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-88-t.png new file mode 100644 index 0000000000000000000000000000000000000000..9dee76096960a91dae56ddde6c9578624cc64ad2 GIT binary patch literal 8509 zcmeHtc{H1AxNmGNEy~`Mwx($9QmUavO*K>vtyzd6rfRoYsaeg6Dq0;-6(xuvLYhs@ zQ*5e=nuXSsnu&P`62yIb&b@1$v(EkN-gD1dcisC()_T{sl6>#;KHu~FhUZH#G15K5 z#?J#5(s6$pYD1cCexxuUE-P3N|$rp{G^u`PYxq17zHv7O9y|mhe=hg2d@-OGY-egtPePa4+tX@k6r8 z2yxjbLUubVWBqq1*}k`3G)qa=Z~jAu(z>4=difiTZ;@1z&J6kP_nsN@-n{vk;L@AT z3ArERE}*2ORFT8feC0QO$csz=hZm#R)v@a1jaDwsW@#%_RMTQ!lCN*ju(eBVspn{g zTQ^F+K5*6dfJAus;et&>N~77sR9G3j(J^@%l=_36C7!}~PNC6{cJ*S0DF5Z*?kSgz zeqE@Nekq=7L;n*&-jyn6Q|%S*^sp<0a!r_ysN1IevL}j`K42_tqv* zLHYc>xhgeqC^e*OHdQM_#e>srNr+ApiF?fBsJz#> zBJ2BVW2Pg5*Ut%fH{|Y{ z2-jLM`Lrhsp}vbCAh6xQYoZC_B1JLIAMPg z^U6Megs4;SnKd4v8{Uo7ciC8ZV|t>5THLcU0`Ak3q3fi~oXiNNPtM)&)gGpK zCura3-dgQKHprLP?AJFQBOk*TvV!cxsfdZ4YxTWq2L=k#jXQApr}iOBmsiat?OzG2 zhAi}Cxihfgvkwj;d$Uz%_(GTQ)fDnVb|~zdsnL={T7#XZj?xz?jcl=9u(6Ei@QPH{1v_VUvM)WbMe0iwYuZ`DI3R!U%qtNtH)_d~S<)>mp zQUi?QoO|_Fm7k1MsphMR?rTf)AP2c|*bI;j7mD*()uSSVjJ(~P$iK}!1sk`U(!FE=*J99y6H^(g617#KQ)ZMNY!aDNol_o%ElXvVP>*snOo3k8BK z)}fIaO-cC2n|t;_69J&3z&(q_N(N@rEbW&#DX8@sIyRF)arfH8$>4)T$9FsmH1Stsgrj@?yV6&^jRu*5EW#7)0cn8XU*X)~+jA#oT;nTfd%9_BxN9l-1 zd`BhIF;Mv4Fy5v}8AHK!#!;6?N)+(Bs6YV(3n>I1X;GQ9OdzUJ-y#$ayS*c1!|DD3 zZX{L9i}2fpG>TZs3f7{CK40{~H*sFdrpmzS$M`#*ql+;Ejzq!}`w?-%H10x#6~TXL zptu@lM0pvI(Lo zAD_5l)5m+&!oMtqwaS~kwt)SK&Gw9Ad>J5 zG@pFuZWJv;(yY!Za(F#{t;pFDPWhwc=Xq4Hu_|>a!gl)>-gw-(@H<6OlILImpOjUX z6MduYwFB*}&AC0zVufKRv1Mb~Ri2~xWtV4M%6AyNgAr`Tw>D!Zm4))mlSc%w&jJ-Q zSY==bd=;HfvQ&cB$izs{^2e&Z3EA^eOw4kHBb6SOt1SG_1|FL8nTuPBns@S(J^Lf_ zB0=pJM*?h`z#*>66S&V!VogQmD^qW~Q?Y+9y3k8a&lf9}M2pCmh07Ed)IOeS`PCEa zPRMr;*}_{5li=T83aJDVOP`pJQWJhbUDn-JYyO#mmiRLQg_)`$I~y_15>>FxU$F2m z4}u%nfS0gVw+svKgYlJT;Cqgrv<;!3;=c214t1Miba$ZGrj| zDsBURu2$c}=!K#JElDr{p7{3t49eRQ`TW;gMb9PbNoI_8bw;i>b!ku+V}O%+c6n!Y z%+hY@$8}^z?wxqG!;Mx)Q)|M153DA$ztWIyQNmmXatStZkbycS9*{p-S94CUtSsT} zN5nANc~oILmd9uVx-$_(&Z04i(i3^a4DN19xcZyRLW6%Yk-86UaPtkF(~|xi7jArJ zs+!xOko1rBZ^g*_0Ti=s2rdic4RB84y~@|9U*Dd{d$oy9xf-C}l`ajfX2l5=wI7H% z&Zo+Eid_z_N$xE|N8m0|6U4LM@873J%10HZ2Ob1;Z&&<+>=C?0V=w@>G)aW={QHNt z_Ej*@uRZ^@U#piHX5Q4ZYK->@&#A~Gyf5-Tc_00j7HOG3wim@xzDpf(DCsV_K4tQV z^=AZ|tC3R6Ke;}dh`bSk!@4UJQv37ik)op9d(#{ZCekKCgE)`!5R5uek>m3i8+Zti zO9@hoIe7-6^G6@#{#mAfyC_gf5?yM$##I-7h#7%AzMJzu|Jr~2;eWyv^XQ?V^@;is zCI}}B@;~hCKj8-dKGgsJhyOP5|9Tp$kY=&}3ex{ypez1gxP@fS@$TBhG6dp0J3FiR zt7iEAT{Zu2KH^8~#`ZKK{x^tB9G@KIytW2&lq_?~;nJ8nOWg(wvqINuBM-*Nf*b56&2tmGt7FvlWPqEi zqlg@hkNPJ1E+ia6;+@}j$9O<4N*}Z(>O#XSRDy4Me*gRNl&0a?Ysj6q`Y<2sAJXi% zk&ODHzzXIFrmf%m*mC}fVI^+&sQhA}UVwcaJQq#IT7R1N2Dei`oZ?EjsN%oaH`N;N zQa&q*zzyLLC1!H^-@pD3FQCYXNGB1-nG}G`vGJ>&wdcXN^)@2XklI?*y{s@F1KpE1sMFcL(A||KKuiGR;8{lr$btw@^N0;$OkNp3EooXSpJGT-R3aN)EK-u&36si09bi{1~}tEB7n6J25q7D*7i4!bCuwP>(`q? zr#~n7Z2zL}kzcUmn|s9Lqaicn0F9;;Q;k=GN;mSi%i4uOlC0;73ysxif06TO(@D}4 zQc2Of058Lz%OC4uKJ!3cl7nYnJ~pej1#+HrC}rPJ(|UUgP~Q6R?H?{^Qn6Wk>Go3g~Dl)0ugl% z#0YdGgXX~4I%l{?AuYEa4#x~vp8eZN$Z%?v3p5wxF zQISy=t`pP6UK!G(ethVvLI)behxOevY6Op2Q`nPq{89Pq7|qJ!o-CCTX8*&@cJ=+A zF6kM%3+K@Vw$!wo57htc9R95A*Go`Hy6*p%< zPS>|UX-Qe<4X5nVlBApVKl2#BP}8W~>I*dEqGK`1dUb+n7DIi5T5m3CS7__8UF&P> zk-T?H!l~=swGh?{JBsx&eT1mC@WHP~d0EQIdb|}b{kaYG4js0YpuCTp5(J0H|I{os zT@oR=`3BjeKn}wsJbZBImwwG=7myp;OvdoVwhq}RB)pBnqpUGw`p(jf_}MI^?+y(A zi6sRgA6Q06#0k>J&7=)gxz&9RR;$5jr-&II{uUlB@YQ8teSsWtfJcADcbJv`)sb!= z;s#_os)sJeL8=Vb_~lh4>`DHO1dMgqdOVC5Dxb$Y4Y&I_XskYA9JDkrHx&;xvQ53Y zke_0-HTX((_x+_iNeE^`g|zqj>98}ehWJ!BKl4zi@xCq_2jt_3<|wAlA2Q4rg>Wag-Fy(0fphukE$mMCp$nJBaohl<~eNFWZ?c>R9q-RoamFu zQu+Jrj`Hh$H&QYW^fAbqNB2>GKQt76Kwl;tX?c-V(+tB5CFs@=nhre*W>;5%Hrc#w z_w(sVb}=;_C*5lAp}HL&JxWbIpOjUOh`#dT&d#8*v~7(^JS*8#+N{vPHK8QvuP#a@FPK?)dMAJ-{K&U0yoq?^U)G1A+Q~eRb{<0q?3b1g) zpP+9@WEr9Eya>*g5gO)^CA+dM@jxtz*7|-qoKjI9>wtwywVR%Q8kUlFK2v`=9&7{lMwB(xW1 zQ0qHqTgsQ4yr9O=(RidVm)iLUqfkc#(fM3WWW3;_9zsBV`0N@=&h4%A$tyG2Kn(+M zG9SeK8S7`1n(xEZ2rLenQ$HG>_@&psjsfDA9h1Ybmh^IM?rdwZjIop8v;^ww%rc>{ z(O%j7;m|&*zo(jUcv{9$Ln;|w4Ej{ANKQA0OIHJ(QUd%~_E%EoSQAC4j?X-2%?7)W zP$IAl`BwQ(ge(Jd6*Z+4n57)R=0e>`=pSir(-8%r`kEodc?JWtv{`?OLYUQ6A-S)E zWe?k{$q_2l=MBP{_cxOui_n{>9@x!tXwNV(KU1Zj zq93=MZsJ?H^m4A5>q_nSHzICfC)`Wu34PJ0^3Gkft`B^a7{|dccV#FG5uYG{9FiGz zIHp^w1j4$FkyV~coQm=pN3oN%@ySWX(ZMpN zccXfgpYvr2@qo|?ywL?<#A?{342^I@I0G)&N!`N}0TGD($!@M=!XlwSGRaa64NSb; zkZE9RP5T8yoENfqdL){52J}y!ABw26l+=-S5~} z1*U8P{DQC7XIFhOl6qKeOiM`;=>n$v(mD3Zd^;l&OzoZyt>C8b4y*HM%AKpX_nfGJJ= zGi82Fp3AR3`wqN`Wi{?3?vLu=%?IkLzzR`+(~(w6x`~!`F`9lgQmKd0ef80S*fd(j z&L?%ZEEf3mw+xn>-;K3uj*8ukujE{N&7C}q!kQHsO*6X>VW)K8+pV})z-$1yF{e#B zq~DUd_L2MKEVEnB^!HCLuW-GvK$a4eOahl81&h&17AzLVlF8=QJt@J1| zy%8zP5vFZiGt6mSVu2s(O0Z`!miIXsEzOVZ%wLJ6AyhW*mBnzkdG)QW&<6oTwmHeeBh)0hO0&9As?~1qR_QJkMSON$J^_b(t5-8 z;n@3%e4YY@Zs_dJ@MYDD<$xyghn#8Tp;o_*(2l-iiHaH)_643feF<>wKaUzMay8@3 z3pbdu>?BM?w;Yi(-VvJdCwMOaZaMoPy~!Y?Z1C(aYf7EFKvK8bYog_c2$EDI8)>Ej zEEGz6&3E)$({ocD;^-amLtI^6v>~-VMeRB=#{?yQ^s<051iZA(L4aRA@io6U^*c0u zJ}neyGS=}@58mWg$i00?+fGp{G%tov>2u?wm}z%V+`1L%LaUz^#M+G2;U)^|axxgz zqsNJv$i;hTZ27}>KOQoa$XhIG_k39{g;MzQ=quwT*XfYPR-H zy1QD0rZ;kcY-N;j<8p-`PjCBk9@KZ`XK~w()1H$JKO)Ov!>B+F#@mS3GIH98zwVCS z7nF52_#SC46=-cr8!!ec;o>(>U}?I>;{N(0DExF~TMKVAqUNsPbM|x%cA}LV7^#R^ zl1wdC4PNofORh~m8mlTUpDMa@LY%krM&kKK|M3K<`%pajihE4}IZ}h@Goyo`NGD|g zSUdP(kfls5M{BXOyWfs){RUW&y2o(o;-{gs{`)a#i*8B5SzpYX7!xt~$%ZF2kKs8C zP%T-96`YN3JW$2i{Nv)F%$twoI2Ipt=YawUTI~Dh_`5fdhLn}w_t!B1;TUg5m!~6E z(v{>%M_LsHr5Q1-T)PiLfR-_fL59|_3<4=g-5vARUFHIW&T9Gwm_LoyDE0Fg!LI<^ zlDx>!{i4hw1(rTDUnqj54n+GBV5NVSX-?abZaaa)FN;h`M-#r3vq%P14Ep-#oARnu zTo3qN@2Gy8qj(AmBfr@h&^$=e;cvMxN9WgCheuByW3|Zdt`ZvH-Zf3!6u(8GZDQMA z9x=Pu(8wqmZqMp`uAbB2CBOU*Vkh9HP+P!jlP-}D%Efw?V(IP7oY$6^M;%NY8b{V2 zw498rOwt+aa$i~La;Q9YQdfR}q}B+Adq;+buF2$Tk`;S;)pOLXC%yw_5~-iutCNLQ zN6AtSO<~hq1HPEf1peHnrcHl?>4(oag;2X&hsq&fGB&^^+4Kj`9;DHmvJV|6dNe_o z#%??sl@l^MvQdDEtzD-m=U>wZ1(V6~TE8OoIqN?NU!u`ub+KCp@g3s~6xZXsU5mF| zsXFrC(roIAgNjvMKpXcNao{?a);mkt>SwssXvQVUW6Ybw=h7_mh|f>+%eijMXLt|ommOuoUKexBNR{at&rHw}-WZuGbJwE!h)KswP z-wkoHJf{?(yjGc~@Tn;;GWbCvx>f63_I^49;WdCQMfD~a4;3|lQ8C~%buTI(jajfV z##ta;X;&5QH$#Nt)HxVJ?USaZ5_j2KAk-Jt&c^UM$S=Z|j zZD#6oF#7Ag0IbRF_KQL-n8+$gV+(>kp3%O) zIfFo$71-dNU+xtuPVp<|Q`aWO=Hzo4D?LVV+L&i=l|OMRMwv6Nb1wEd=UeAHd+)W^I%}_WzCVBm7VzB9eP7qFt|w4SLy7Jf>oEiZL8qd8TL*!l z`T-x-e^J9v5c<^^1mbUm%I%wa9&z&{p8o1teRbI$4cfyj6j-YSGG7 zyb;`u>k2`Ir_SG=3Hlqyii$*#roLstlEk1360k#H)ef(v*++#)3)L%-EV3KW$+v8cm%^;i z_7L=NI_fc^Gh@}12!2C$#0`|P4J`*3*VyNWN`e(@y(R;Bj|t|L+h3j^dBwm*Y;fo! z#?v55dUaSk#(a0|A3b{Xik>69%`(K8y^KTL?(R^Leg31ZYE@|=A%~f+bcrz^m#se& z@xfV*{)rq?0@%uD<-7S}x%g*&gh4$_*uz&ty7O3d9q+A`}IE^@(kFmi72WK z&*firbwSMS2{I;~l$CZ$lrX;6Z+j+lYh^0etbF~?M6+!BV7^s*W}@$QkD*1poZl#w ze=vVK6?T2zXvAT(V!%wdBauxiG9jXoLS}=~#lCyn*oSl5V8TO+*tmvl*{XFvz}}Y^5H3O~H11Z7%cLFsz?9ohqlJV);8;;T7wSbA=pd zxXm`K?6 zW{cYoejI;_Cl`b7p_b+ zZ+vHSJhb=a_hx>(>>TkZ1H;Bxa`fpGhqa5L(s_OqUl&Ykj98ieHhG0tE2)N;fx8fG zB||E((Zw*BmAhkq1~9W9Y?4#*8|34V5u4z}&E@ePf}tVv-Q)qBF3(Cwx2BxExRl#0 z33hjmgman8DUJ~f)R@u|%vLp}dmOSUXq0!`?5$;M3}5(~7SvvIINx}FC5wXIu#}-v zK&gvc#gs;W>a&R4rkACs_lf&5@5D#*FYY4`etfZVN+V5OhfL_r>E1`{Vz}=^XW$KT zW<4@=POyn*LuXWaZ}g5#a$3g11u{v>bvjAI>00?<6}G&rot2ZsDZ4YDzeBFJ7=OpD z7DX)mtAu4Hc+Ku^txPmU=+f?eJFRKm3dgI?vpo@IVZa;PTF{yrDvKu;;OZ?r zCm8K5IZ;l(ZkM|+496Hp>@m!&kn=dN-Jsxs*be{f`)PS(<>`2)l>L`92$sL9wQ2tqVEtc_YW}6y^jNK@7ixch zqnc9bHfJEH8GVggQWBUvEi~Mqqk4aPu35O+wA6XxVf|YG@Y%hMF`js;b7tvT&tyIS z{9Y&?<78x9gI*K2?QMa-s;;3rpuj4uclyfG&sr5LM2Q3Sk=6ds534tS1?i-#(w)6h zqw-WYQ$x_a;x64gq(1%(pUx#wQBrnjP*6~Cu(a!RhdSq|W~t9s-u9rB`#i5jl}|j% zEzh!b7I7nkx#Wn9+pONmsLx6(c6-&P|I>ZIuBrCKMACO)X1rl;0+ajVun{l>kaEo0 zTwiXkKB4!;(bH!(dhq&ygkiS^q|b10a4<26d#zfF=?oUyGM_q?cfa=V5yZ7h1mo&x zr8j0_Fg-xTs*U$Pkfw~&uWzBU+t$+^${@IVGZPG-ZI5#Cd%fB86O~* zjyDi~2%CgK?ImexpYOpegRw<=MmZ7259w(FjxnOUGeX>}tUE8jZHnPGARycb8g&37 zdh1o|gSIY{EuAr-705%y?N$#N>y$z{C{R87DHbRlY38qPohH7wGHZ z_h2WGn>5Bo*(N=8qx`MmF#-Mph(dCAm_Ia)W7AJ zYp_NZzF;y-j4EZt|KdQDm>U;6ETrlCGbzEdyAiad#DYd5CQn6Nd)%~Xm(5hazqiBK zN-)ULIhk`e^!4iwFEJE7r*w%`J103r!hX>8cfm&_m!1j52)mtS3Y>~phbQ*?gW%+ybb0@4b_Gb;vMc#f~ACA{}s1)aPGEvWBsaG z$BOM)f@OAlJyZkefJ|C$kIxV4Vk8_Bcr+7avD?^#xLCgI>J{P3!L`10~{TcL~C-Z?}`f{rLEGuS-uQ6o+_^TET1%@O=jqzGTM zk@at_P`q&Rs4~&Cbodpk7&`53zA70A21KAY`KD8a@1EDf)~~uC(2E2|=`bEm1A>8|kdTn5s3;PN29gJ%!76U| zkp`ix`P78H=~thH-yUG09A!7Z%gFX61DEea6XOxYy9DY(1I#$0;; z{ylh$vc}pSz9?af(K5HWw;WPUaG9wQ|Hz#l5v_!@bc&PlF7n=3EFN(ms(DHiHfY(K zZL~Jq)BUwAUdon~1$CpE4=ua~vM1)s{jad>o=yW5qLw&=f|Am!fPfHA8RJ$5I=PoG zUfA`2`a@-+=Kk!7SqlgwELxA#S%sS!{S4Agi+L^X2jSspcq6 z?iCPUnVN}2&Vp-R0N3EK$bGqqly$T|W&c86`r>0#I{jsOgsE_jNwIquvM0*RkZ5XD z%!*v~Qx<%?x3j??W0+%{e!+O*?d#Wn^urw#H61hAEky%rPo?a{un#j|s#t@^s=*oZ^y_ zcmF3iiZ6V!?IZsD`4d)Uz=l$b9JBaHfB11zxD6<68bq|F|D@wnYFbi>N3(ou$T3Fb z9k6sPF{E|Xq08zqS@}+rEiAOF9m(>Ac@OH|fQ;^FYULcXoNS5CaHprE(@(-ocYv&> zV>KgLe0CaF+_=W%a?{htr^02yR9)^b1Thmqm2Qb|F9`_iRw=&>E+n{~_JJRUxLC=AM`!o!Ko0rV}3LJd|jokU!V zsOjb**=q^Trv+~{(JOqS$OCX7Yr?!zqTQx61?fQ*a94fe`tKCcjGGephMDfn>aEFG z5JO<3^1v>DNN_xrZ17M0pFcu85!ZurjzUdmso*Atycc>3xn?fME zbp4NQgTL*zKXBq=aGt#j!7L(hO5yy5LX^xnlp7jihc92g0Ce%`q$vY!8F4W)GqbRG zg4l|cu1HKlVc~ZFUIivS8_jzhGgfF=M_y-Kau0eMZYeS)-Sg&`BK){p7V)auV2<~>+oGgR!@XBN>2 zkw))VC^1(yHa028(Fy>Ge+WL4HIfKgv^@Bl!OXV1@^7_CEtK>ca(!3#601C5aoVYeMXr z?mPdX)+3LUOZe^Y0#U4tndhLVLO<+oYcY}$HEUgEZniu*)CH1@CFArXi-U#DW~s>) z5F+)$8K^OhP2ua3-^(kkKsKXyo3ILK_8*A7lOo>j|19+|^ZlL6Ev;a%uh^c+E)%Qu zmpwE5&qy}=AlAqWEmWR!im{FL{E4GSaVEvYMab;#reMRT}BWPzSt@<;bQ zV6F={Zt%;4;?9ZNTkY0#+kn&tYL;MH`bSq&CgMNAF#vH{<9x_?Aj>*=QPFxyi*^%O z^7-@UJ^0>8uq6a&Hz=*z+FC%g9Pt9a_5(u&LRa)3D$j7)tCmi}l{{)z>iO&2QMdFc z0i$0c%Wdfe_FZX#C^lAQy&DJV06%nC$%DFMIm7eG_LgmNHt4C24lP&_I} zJ{B~CwzhVe{tonu@z9p8**2U zAKS(S*4m)Q#=OZgM;Z?0UB`ij_8j?MS7%n`bKRuq(ngZ173hb?c^E0Lq+=`R{B`$0Mw21~1`};FEm{g_E*~O%r&qqDR zL%xTw6+4VOZ}|<0)7|=@QU~&_VqM+&KAL;{41kQl2NZ>du|0^n zmXBB86akx|Hg#vNWM7;ELaEyPb$p8Ty2sLw@ld&{FXK~*ei}V4nhDalJC3lq@U27F zfTZ_&cCU5u#;AAhIvK&D{RTPBr<+l+`={CRIsj}0QeP(xU8?;4!lX#5W&^|=x$_$M zL%!3=uXYVN!Q;aAxR7Tr_N6Esk4OaPgIVH<7Pa}{qK;$eg|uUD3T4v;f(6POFu!L%O90CkG4DC6S9-ur-Z z)3@0rf6JQg%``M}l=ZOW>GRv2a`f97@(OL2-Dy!F*ye@F^?_Y;J)3adB?IowoZKzI zqb_!``0q!quB(LHD*VKG`In|;u8j*d*~W$F?bR9jcRvr&TW{zYuI07)=vR2i z;TsaJ+<#^ST#=0WsDaL!Ero$a<=ix7cS^2pE&YBait|7ybj`-h|JGdo`HE|QC6Pip zss%RL=Cp-8kh1O(SP*3HH3HN28O%8C#~bHEGzfx|3DMZK9>aqhIyix$sS|LW@4wnP z!vtj2_36Vn&M!431z_Vxnojh!$7k%(TIlQ1fn1Qg4nfobX}*%ara}-?j$y9(&#wWM z5?Z;#_PQY8Mt5MLPXRt5yN;w2MA_JAUl6czEWTmWgU|I*MlFS0YD2o@&x_um!#y?mt|M9mP`jF#m) zx#y!BMR03fYQi%XQ)x7N)102aPfj7HgTDztEOowEyBYr#qO1%~$>Op02fswEI9e%g*)qkX}c!MWJY`VA{~?3~>vn za5swCOyX%)R&*o?roMbD%>@J6m__7O7`*Uc)b@f7qM3YO%Ki+9D1r!PBD?%DF8(ZZ zySCmIITKjSYmZwse90U)sR^?zCQ@0?KqFYWwQD{J*5;+{O&68kPD@%v_8ju~)5sGq zrw=BnWhtJ10k!M}7WgBjwr3Oxf5OK2M4Tf<^HMlM-}x%d;4Uz>G{$+unIH zCzP~%*X^EkBQ2dB=>o4cbb5jxsu|LU16s#CxB)||kr!P9PAQ4AfI=nB_&ql^E-uH# zn7qOCwjBtp6Q`#mb=HXGi#q4ZY(ESJE<(cw&1&(KaRnTRsvg!q=C~C^{u2mW;<-07 z^QQy0LMLZlJ1;S09M(MAlTcpyvGJLqBRDHich1rmyH3Bhxzw}S#q!c~91?r% z!I=<~z_;FKa`hs<(N8zh$$2hn0*Mb_VmfH`Q3gJr%G@0-Z6g33aOy`0uDUW_)hF z`TX$SoCU@CgBVzoK6CF@0YaH0kUf++J(p|+m}ikH{EyzI+dMTT4{e(y_i7mxw{Mo( z5Rv9bJ`xg_f9Y12XEGbgQ*6DySZ)Du8Spo%oZicB@j1_N@;H+~KSWkX8tzaVc0i)_ z1g0CUc};i4G{usBdw8A1ahzH`V1tPyDN^d``-RskB(yTW3Ru6^N!|r1&;OC+uBBV& zP2C8nWgA%;o3MWx38XM=oDIRNM%OSq$+PTm(!m%k|B%e%{oO5y7O%kujsN=fVW1JD z<8WVYmoF#^5J9?lcTgvv(+ytkY=@P)%j448%5}_B?U59*Ym>4Ct}{AhL6AIZdpDgX zcU4I8hPM3zb5A&#m?qQoL0yhK-kWwk(e3wQoF(Lm|DAJBZrGkx&m@e7NwgFqRgcgu zt}Tw3TwH79DJ;s3JxjNW<4z%oT=ag!xS+b@nwWL1d%=#kzNd9*G{>t7*h9P-oRp7g8PYabiw`+~XFYb8GE$aa?A(E+T5NRF(+iiPt?PLIedO|%Fv96byy9E-nf3Y* z7-2zHu>C^mkFLS6Z!xQ|>}ic)zuj@J#k_XznD1cmvAu_AX-l!|Q2kPo+9u!Q37M%H z&=m26R1qYH07%S*eDfTJx`HxAloiZsLunq}=4(#6wTwXgrF8IKz#hy4kv%$ErwtfG zUbbO5domTw24VUpX?Sy78hy?qw-Z-sq-8Pj=z*Sa`9vDq6EsUX|Hy}dWp<6>#=E19 zA9)wP3Ghzz{Oq)imBp65F?As(WuRXxT^plL7F4I`ePH$M_H~_K_S_piC4(r@&9Rs2 z?rZoB^EY%PsF+HKx>0@46jjCIk|ds|RD&Fl4V`6IOFe_KdE$S9$IU_lpYa08D#Dxl z>oNF0G+lWpl5|RDLXZ3a^B~*;|9+&zkTKi0Sc=fT9Pi61X2(Qh20 zz}Vh(W3qSrm??HL{t*tf(njq@O!W8_2nGWmk`(W^T*s`UZtdim$WXzFs7qk8 zSaO)}xh%0tK%D_~PG*gyJ86+assC-VYm>xPwXb_8-+Y0OPN9ThM!4rBDPEc8(ODZx z2okMyf>l)6UaL6$Tyv!0%9u{;i#LG>6iR_fif#5hh#D7(UgabsEzjw08kK~Zn{12p z`jHMJWjzA1Miy-p#|u0PgEotH`X<%k7%?>$h*+qulPPp+zL@ z_nPll9-hjTufMYKcUDntA0=@ppo1mQC~Q|#*b{KCcyMFVyRkI}Qsphz6#oGdkDSLJvv@}6Jp5BJJBg3TG(6cnz`2tYjt5xG1r;;YCB?*D7BP+tA9k1t6^zr z>GwwWr~C34BN?ZN#tfSzp;xF&O|+QHiBk3FJdy2Ue_emn@b{X&*oA`^06a10NmsOc zGQ#}RG=5il4}-BGv~&Lv!hF0+XL!$80qcpm9-X-4C(Yho5cl!pSst71N%lNUuO*tDoSXv9a~av$v&93BP8SqXi(McKl_$Dz zoFYAX9UM$@222{s?N&P8TAK zu$&E}qOXIdCq4u}653OKsj)I5{BBjYJ6AjP<<>mzmgZ_8TB>U4>+#9JcA1Sh3{|?* z_0t_F=jlr|@zu!&d8Zoyv+rFtFvRQOK*ub4ahG3^-#fi_w{N{ z9DS7{R2&j^CvjW&=1ttyz%e5n~rPXC1Y>C1EB-Tgy>brp@hSNtpf$m zY7bTJ3r-?qf6x3L+%vl}+rR0`12Z*NCMHYj!Ab!sZOo`==71f@>tkM&FEYh~L|zO} z`<_Dd!J>Mc`VP4QM|>D)iIwufKm2H{vM;j0-fox{Louq?RhPQ){glVMj`#~1m*rDv z$6*RIvh@hfBxR$Mbb~7Y$4HdVWVF?=(FL^8rcdNk8J+-nyDjatIDFkrye02~Wb|H%J&Qu{J~}aw3pqRDh}O3>+oN5r59Kn< ztV*tjbT`iRz=OZ^Q?CC0Op$(ATpR4eu&{>n%x+^PN$ZFV;7p>-+9M*Ju{W1#2ZZI~`QoW|$&I$ypiU$f^Mb|N|Ka=sNTPN1M8j-lyz z&{r1V%s}~iue3^x2p(iy)$K>Pd^)T`HeQ51`rQ_9694xKfyVVje~HsW5M&zkZ`rS> zL|w%!nqmsBbdH@F*KssEa&(1p6B#L{g-eZJPrVpY*1x#nF@4Te{c<{P2~%BFE85x} zsK`3ZGU3H0IdhSh*ZN1zQ`8ly1oBfHjN(S$SoUivIdNRlV<}lt+}|A>52!+kWlU*Nk*0P8J)N&?zy_;5A3)I0}-)U}WbeoqA)@(8MEF&d)bR zmoGdYZ<47VYq^NuiJrD`P9a^_K8Y?9a*^IGj+S(KP?I~=*J%qgG)t{zDTYM4RTmTR zc8NRQtvTuYT>;0LTf(h4&WtSkYjZAIqV8n;WbUM1SL>9vE;JQuiO?&Xnb%2-gWmS` z3wb#nEjN|_?gV*7mn=+gz>fcR+~?9Z z%B^M-^h{;7a(k?fz7j22*idbji|{=NKbTfV^qOGhah+=1od4pTk}OdiwXlNm98+JB z*e=(+GwFPm9G|%)L3Md8hGrHrN%~zCI)nkybPI-{9m(P3=ZY`ShytMTd?x!Slfdtu zdCe-Qx19A&4~xHG93Nu4d0h6x1K;>Jw{&?*Rf(s#Rj1=NjLq)Eg~KF_L(2WYk)kWC zrLRD6O&19>wwYWF`wLk)pL-sHDF-`wty+6RbGNOuIu3@#GrQx@8DzB#)oJkf7_m`8 zx73k_*DY~bB-#QeFc$ivtWhQh>7c0++7B0+8-~RAoNah_=SJq9jw9kmnW~!Yt>=zl zFEv)1j-NA&5Hv9$SNb#Gp<CcwOI0egYz1LG5i1fdv@Dnj`<=M z^mK?%H*ej#1))zF1&>7BK=Z}B?a0A-%AE^7<>@Ew2f4x);J L#%lxy7g{`=3%F{o)a4bhq-xjEOC67oj)~-&5|n)BGdht)s0gm4)4AjiKW!(oVjg zHl&;;gYw@M+(>`GD4~N?MvSCzMj(~rvN#`}KVX(IzIX-OpHW9gC#jHtP4x!%a1`<> z50x{#OhqWl7UfKcn~PKyjmEl;V9QkwzZ`|UUZhB=9QR!BU;Vmtm5|e?$1HMz(~SX? zD}#9wWQ^h)t>M@ajSS~!Y0G} z@~0oRnuB&0qcynm#P8SHL@WEsOodg;{l9-6&E2YTyqu9{rjt-Itk%1+ZZrm?Y+3Nva+5(W`S9`t z%bq!(ae1o~vqDJl%zK~fdE$d<9O}QE~gO5HRYsd%e;ykcvy!pZR?(|y^$@B?2 zZx(X$aCr|yA{zd{$30>pMmn@L#%vd_WX_%OH<=`^EPRPuI&`bl$rdz` z(mw0f`c0Q4Tn@Jvii(OVwYGm8W{@&V&l6F1rg@|faV}FDF_9xSoeJ*%>0u2uZSgtY z|Ir>z#LNlv3D}W-^MqI**p7sVUfX zC($c}$a-_CB~U#QaXQ=XAX{+{nX12=S_zw2+;w8umYSGOub?30nBenEUW>Zhb)G9) zdw9hSQw{F@4~|X`=Db$=97f3M(XbP5ljjlgq$DMkTeUP#Ct~3eK2`{|Z2k~(8u;^p z$@F`lSEg0AhmzjABkHU#>vSGVh6hqDhw~bhjaJ$94DdY-`COt|7A~8cg2F@xQ%7(Fm$zN}865EK@MvJ3qT$9;YVSk=77UK46W^Tu-{+C-1}&TCo3BDSS?-g2W{Czl|6+f8LN(@1 z4szNFtH#CN@lt)2H_727Rt3{|Ue`L8jLHm^*zSy#)1~T32JDu=y?7XvoUqHioMN0V zXeIwM;C%_;WV_yD1!t66e#;82)`}{L3xmAI@3X42j#LxBJyJmxDTCrrTSM7O; zb+2wF+V`fi(KXp05=dS34p`}<))uo5bH!Bs(#Y{yxh>YQH??i`Poa}p*z;>9n5)(0 zZ8n{o)-6bWJMv^SvGbuwTyzE9{Df9sJIgX{f_u+Rf?~6iy)K^Zx-#K<)(XTkTn|(3 z;bg*)<@Rk%{&ju38-+#vfXaNq#1qdEEB2SPKf5;{;nllZTccQ`nClGZ&z1)zGwC$v@rwR1WZdQ|Tkq;sC< zQTG49@^C(+mgY5(M=G}cM4waHRoSKucc?O^31WQ&yjSV9PJfD@LsyMYzd0FCReW~( z*W{J);GzI6E$z=gIfq0ls^xOVJGx=4GM=?zTo{AG>c^fmWI?y++`^6!y>1I8t$(k| zBQ>Q4(7WGh>;4j z3R!56PODcwjMupF`g5s1$0%wuCf0hUC@+uEGlq`Eo<$eybrfw_Tz4>+PTivza?lWZK1na~cxZR0NoT|iEj`CC-Inu16 zQ~2+s64$CfiC&PrHbwY>XGkiIN!DMFZZ#eiPkWhwnVLIU)~SOj^;5o_%yUiADF5Z& zG)Ecb%P*tIA8Act+SEzAUoeYpoRa)+8Ea_Ndy zvum0~(3jp{aI4eG9!dL@4QB0{nxR^lH^h=F%iBbi6GC1YzsAvQL`V2qKi4g=eCO%V z>40V@C+eVzaUj28=kD%4G1yBu+Z06WcG)vYI6+lzfRHoWI!rN*t>=lfPlOB63U&9R z`c$1gTw1~jTtrCG-<&ePjR|rQ4`S-LyX5j6-?HwaqY9P2Jik6w>k=tGVaU07{O4C< zDNP$HidqiA5tsZCtwupnbXuqs`DbGio4G*zF2f%xc|28`zsU=#f5N5<8Ql4~&1*{s z=D)tV#po4L<20oFW4RFP75)m1fO(t*F~z%_#Q8(J>U8=0$FD6KHfNhGnxh5D9}PT~ z@-k=Q+gqPFg$dlAUIx4D;pOYwKCL2c%}aXz0Rh0LiWFtg_gGMtaYf>Eg^sOZn20gp zY|lL6C#w#7I-|HMt=l4o6wZU+gl}LzOs5c#qQ&8m}?2z1Xb}#C5b7yW$N|B!@QO2mybrp!voLG z{%#H5XJut|rDGyKq}HqYidRkYRKG^V4ik?KC(qQOAslUccf)6Ib&xG!SUosukU7JY z^`j)?wdGWfJCy-QtGC*8*2|XXhf68W!{ufo+JW~>QNuJneJAn5-lj|w^VoRRp}|{{ zN!5=AuL~b2GErG-u5DWz1fLvwtO-Y0CGH{1l^Bp(;V6b`+#$>#!ijifEV5xnzcx0A zuSxh$DS0e)lLQ3Vgk#~Bkh|{0+t}D3+%s=q`%A5_z*{v~Rlv_iKuUU5B;YiEV`2K8 z7p_`xj@;|>Uxgn`%Am?F!Z-1Vn z{|n{oluY`PtC0~A_tq*0b4*K%l_)OlYAOGNx8n=`2D1M8zaZ=XO>X}mfBm6fveQt0 zrl3`Gz}{*EvZ+WBUePbU$}D+r{%G&}KVG4XbvoFbX>M+YJ5>3is-R#FW9;xkNbJrS@a$_D+?b&-m@>)9 z$!P|kK7IPF*5wOa!h4^exqyCFR`8DXcc<8sV-!QT+wlK!0S`MBfg~X13*>@;wl=xB zxgi(%&8mTjcTD4@d0Jb~kG{MiFvcwHy|y}-M?}pl8hm)K{A;l~nNl1J=WBy!gl7*c zq9jE@SV?&<_vXt5`THNjSJKCRX1ukSBJ0qX0sLirccp*l;?hCPjFsva1C4s7l^F=| z4h(V|xM4Bn8B?!C&)ghqXhKq`0loAO+nUbPRMJO1X@9k=b@<5majUtguS zsk7e4;lsu~!D~KV=kxRP%VF%L`Lj6_1m75h2W6DAqOek2q}S1|L)^wwwM0EQ@G|xc zQQwFY@9Q^>bPy`bS~X1h!G4zQ4jxl8CLn=iSh9U zSnn%WuK2#mtz(U^+OtkoBxoH((2BGqP7}j;B{O8y6V0ol1UzOi{XOIbO zCE)bd3d&H-QTq!73M(*Lx1;zR+T-1 zJN4x8V=OEz91k3S8hj5!SQ)&!gt)jI33p3pXXggDnTt*7@|iPe?AJt9aY2FA`Pr$$ z*`Zyz{Gd$?>wKu>E~8e zS0`FTpd&6P_rZt2D*XKU)1t<4FiXG!(E3YH4}KuY@9@>Yz(Do^*U?gP!{oEXr~mE+ ze6&^Lo`EGL_t4Ej7rD*6-_6$owk=`_%zfsCE^GP4F_7|FMLbcQ2m%&I!YJsy^# zB27mu*&K*ZkPM5{Rv-7i4_P$03E-Mn`TR5{_Vi>}*xC||bJQ!0FZSG7RBO!QH#4}h zI#j?~VNzik?W$DX)YPP&!g7Cgfd1zlQ+5uH??VL@ZqmFDB9=csRQd6({%+9b^t&Hl zUT_%yn)z^$%q$Znu6VU-GMbP&J(2dxO=P!Y&%2g%`2J1)JGL;d%U0VW@#}7XjVK?= z75mwAF#F29ZXK=>cZ9&4sZ*bTm>6bF&3juJkQx5bH!$lr*T-k_Mz!}b z|K$1E=#3XT4^W0#WUTT4mQMST6MH~_Kv3riJ80d(Hk~rncUF;9VW=)UWav&&((xrWf{J zA0#VGS{jM)kLFa$2Q^)L`z!B6-Mvy!^oWM{hA$0xZai0wEH|rJ6qA)@ z>cb^stp0uUz2KF<*T_?~udhtz0M7Ixe@!)TgmTv|z&cIHE)$%e>e7%d($}JM2S}<($QOrc#|yDl&O+@<2b^z zqdnu7HH&%%SWOj(WMIhU(q*yV8!I=%&c6B;wgx^alcKO*mW{2ow(>rR*t^88ac|ki z+P4#tRu_iI>E8odRqVone>hU{#S!$<#5WLq04y-(QYZ7!HWBE2;zVKFj{xB9NX6^0 z8wdH6f25k;0Wq$RZFXU`a51zHmJkO0UXN~N(tnYiojr`#`L|LS)fsxS6I<5FP4WFK zkgiv_Iu7Z~Ne$9~)Q&;xiTwRQ|4EnzJs$wHEi`kH|+)y?Y1Nw6I60&e8Ta?~5W* zV8O-rzx40mcQ`%R1;wjkJ3Yu1zm^&Oa{a-blEM~&b@yR!Z?D()Pb>Y|y0g*h6fiH5 zNWEHTeXo_Dmtjhej_5gEDU%CYq%Ly~)*^eD9@9N1+JO(9* zzMo^S|L*j#cKyVrPyi$A=P{UORD8zTvn0E9H9-fPIV`nGh>xSTjh&c4sI*+g; zYynnB;?b^iB2J%r>nt1n!|B9DMMuAWrLHHq4Mf7O`I(?AWiV3Kc5MlE!pK|8roipC zYni;!BUoD?tC(2vEvBcYEaYds;f4Y9Yo&7%h|)4zJyne-qP0STPQhkNf{Tp-5_luuC4LsPqzq_nyGmYs679w3kr4ikO`G$EELb=ys zh52_O5Q%p%V7OPoy|Et*$HtdGTBhXAoh*$WfUml?&=CvBCL8pJ|911yYMx;8p)#F> z{#2z+B--r;!FBbMJbp9bQm*pbwc%&qPNo4~K#r3fJ1;y~EM9O&olZQvM%y{k?r*>p z;jtzd;p`d~e8#d)ZWVek`6I;74gQrRp_Rx>vB5Vfx{;a$3LIiTRK0qDUJpUn%PmH0G5&5&t$r^Qe zc7(Z$I4i%Rwg3_0RaF*R)_x>KDWtt5cg|I*R2bJ(z&Rnri-hKX-~!4WpJT z`BB53waD(lG^5tDjY$#JwtE8ev8Hn>6lEknSCwW9D2p?gf-0A)F=LRR3#7M`2}Pgk zzs1-44i{X1`zztq9+&}z4sbAafM@e#z0MCP-+Z6gz1lN2nX!sfayB{`2j`w>M-3@J zTQv#1HEqbTyR>lKM&(tH4KW=WW0$0#v8vK%sM3%Bwmnzb?5C+FO66J6txXqSIMuOV z7?8*?)yYVFva2a90B+^m##C85{j z2tY{C+a?rYW!3iW7NJCsz~)|- z-8y~*H>+&{IO*^YY6$NK)z!r-7u<(-J;lCw9eHaZvM);@=+`$fFNHplDt~)@P(f+O zd0<;$+3)}O@q=eCBy|JGj~{TA-@{|T+Y48$LQkU`D%-@)l;n&ApL4Mlv3%5A+l9k< z=W7{mhdQAsYnW=UMeGn~5+hFK$jAr~_o~`=K0j%&EV!#DTf58=?ltxwBQRU1CEHN| zTHED;1iVx58NdWt0ZjW;3jL9=owvZ4(+yWcngWuL{iRQx%vj)4KrlFwt{K`adV?Ia74#$IuPKi?80i+;I#oxbw ztEEl=jed$ zK6e5EmccZ#?po|h9C{?8?)(vsR@FF6@3ZyKL!swHpr<=bJr_IUb8;7Y zQNF&Op6Q8nLEvCza%!f-aJ^z$X${ImQW)OsiLgTg>OF8ON#5}AaL}zWi@jZq0eg$o zI$aelX9>MkDzT*guW!EF1@ccW%ysQgi^6Z91%AK28U0T+V*2-=Y9!LSPFyi8o;o@N z9I_b@D!{I4NR~|@L!w-(ct^jAtPaC;>5LrVm&OoJVa#BWKQS-7 zA?anJj_U_Ck*VEb-o?lHRwIo)mXvw@^Rs@q<)~_nj3O5H6$icM-~j%Z*jSZd89|AYrLv>Ue444&zc^tt5_a3O$#%y_z$+jfqr-Sea^9vyF8@jf-M77NsS7&)J+@yJEXeQ~~N2(TN)@gS0^8Bj{RaakAIJR(RI ztNGu(fX5SHjY0Bk`SzX-e_&8hhoKrKi>T}vKu96+VD!Q9|5u3k3>PZN%gdvm+gKDo z2UA?{b`fh1C2A>_y!4-*jgVLeD#`?BWL1k;VM4|pv7!V@a{_`d+!1Q7DB?qRa5Ey1 z_?*1Fgjdu-xur>nj6>$Fn1oVXmlcr-m%CtQIHMYjgaYwNN!l0Q4Q{?dXtF*bxi`#N zoDm9ckuz_4CCVN=Qenf1_p^@A2juwRz)& zLF)eTK0e;!Ep|ys$xq^DHICHr(O7353M1>mnY9s;q*QC;1KSH7TXQWffL4I4kk&T< zB&1?=I)m~7QIY7-^*?oqhdd7lroX?xH6xT1IA?|aQ(?kAT=57bgn|6~eR#KF)u;~N zZf9US+;D@z{p(`1hN}a7C67YJMrgJlR^6Qv*VP?LO-0&h@b-Nk3EEvI=sP<*1A1%L z94wWT40-{v)GY@d4s|!Bj(QT^!utC9=B9k;S#YA8(?CuYASSq6a7l$;-gO}5GoHx> z?kskJ?Y7#RRt!H~wa|L%B$=XT*~rIwKT5Od`?=ce{9Qmtw65MiHHLl(*r*c}zbE8y z4&y5HCn4|Iz_JYpI>A)#WsJsRR@hw~OmyCdq=nmkvKrSRAbTI!+*9IgDHLiRI25o6 zxJ~N!0kA;rMPuRkfhCgT@j~axdl)kS;zE8F)%Kd@L@9K~hx1QhFuyORMKwq-?;oFwD2WN+9%(%izQh>>6A%nUMeGe+R!*%r zQoX{Z>u?j<`ZQKR%My>Nf(fY~^BYs0J*y7NDgy2^e7esNBqR?`Z;31dhfdy(u7n3XXoP~`X&fYYwYY95I(s{6;(7Nvo(y`No&hMMy zZ^YNkcG7={fE#LR`;IW^?DQkQ4*sTTXyA%!6rfY;$%DbUM8~-Hx{l9AQOIV|Aiu<`N?GE9N{(d2D ziKw_SB7;6)){A^fQ8XltWc+sqAI0<>GzA97T9n=k9p(uJYCdDt$uD0hE9&ly*E>H1 zCrfl~>@}l7=$M?TLagRj(?+8Pw_A^nRR*rmI?R%#--oVJ36sNxmp(6WM70i_h2wqp zZ-@RYIq$X9L0v=ESb?Z394e--j0JF3k!xEm=VxD8r<4!@YKPkG68*qpQq!*GioWz0 z`zQYfQl2j2q~mo8=SxLd`R1)#P(tCRAY{55H482knBK9b9ctm@;j$&7Mod&mw|ytTFZRxDP~M<^zHe@B!oH0)C1aATwCRW; zef=rD)4PBqX#T!91uK>F?p%!$gn8-@7;r@xXw-qA(h8V!GClUYYtZ{vQXiUN=eWL7 zAq#NYl*&ZNJ3mEnl5!6(hfWMQQ7F&S{7dR>4&Af-f7u=T?=tQG*i8HHx#r{TEh;+x<%dpDF+c5_++1Qgs?OJ(+ogh zvMEU7&oS7IRT3SwDDa_R=EK@%@VXhYJG4Dm|nywzSAc?)tu^%bD* z{sLyzB{v7a8nOgXCOnN`0TfPQkvj%D0D*A5sgSU+CouC=$9MieK3{5tsvc9{ED%9} zhwBhUbaWJhB+-*7VohOH==NpeAk9CD?o-oxPD1_)&Aqz z!HaxQ&CnR^+XaUQ%0NjW$UAdD<|eA_kmX}|2z1rcVKPC%3iwgEdEM>$a3(lTE?B2x z5*I8imc-`r z$paYNO9G{puauw@G`bG3tl}$V^5*8>gRPzfSisnqa`wGQ4aVAXI7evRs4V-w41$F{ z_=(N#+js9SDp>VN`?vWOBSC`L=wR@u=Oe{HRm?O7coiu}$B?lm*FogR7Wd|Y`C)my zyZ^U7-Np2ke>4s)kHPYAkqX>YP>GDHH1WctDkY7?ec6I3UC{Q56LejJbm92#-~Kg5 ze)C$yCVsk$o{&aPK20nZ+dar+=D%CtY|E*2=%-1*l-+gHWirsG(K^9FMaDJ!G@M@sot4s1{GR$srvOpg*Uucec4 zdt6Y!Y7kMq3o(+_{ok1%KFCZv5yKl)_FsgQs@K*)2H~=yZ?1xIDR}cOnwuMuz#pk( z`jPwZ@$rSGl~Ng9{`6$3(bn0Sn<5^xio$IaUy<3pr)*9d)XIb8IUKU;odWyVON6R4 zZSs9HAN*pq?f9$Q>RrBEZnR~=_+mDOiir7|tjPFMt%Ohrx2;MUn^OaK1RMnq!&J(t z=KByHd7uq1P~UFGFW?8o5*NujgWH-X<@Fr(elaQ) z^PfH3#V}PhwYHVsTrs{~$JOJoFpM~I9E~SVj$D;50A%CC7+h3}E`bmR#~WGE3Zq3x zi|wBosyUWJcfl3dzZ0!WF@zTXhz0BsY0{JodkO2r|CXwbuv{kiFAKiyUp6!rRV`g@ z$>NvT!^(_aeVY`nl9#^>c%Li*pAAMi#I18dTTL%`IoR1DMopj*xc#Pf9(DpS7;q9k zXdq$FG&CPHqTkHqA~<=28=R`&%|wg^d-Pms{S>wb@4f%m#($=pWp#*NkW(y8DAyt7rF3g(PpB ziV|EeoD6x-<+#SoHk`=N?@!BPNEpjrFtOQh0^x6zNPYP53v8TUp_aUCo%+`4!|4F= z0fB)KwNkHu7?>5h|PQbm*%|bZiBZ-&a@*Cm+aVqC)s0_3aXj{FQ)?ZLQf}PgxkAd&lIa%!xbaJ=@6ASa&Ld}r8 z%4rXt=L|SFt+v3pPu*Ki@l-k-&xh4WKTF?8~N zU_*Ik0wJ-}pFNwnT-mb1{LMN!bZ=0iLgTl7hf9 zFg6#IZd6Q6pCgd&UteF*E)ME~-4CO*G+Z)dr;E1zZPzzg-SVKT8?pe!IF-PwJ_JAh z4Ev`jGu0&nG9LW+PJc9z`_gk*Lojs(lD^x5-K&iE$s@uMu}p6K;#xK-M;p|hkU8g2 zyg1AN_Y~@XOa)M6QB)msCT45`(I1yBwB9SHOd`*~h#}UnM@hiuj)1re^#qDWk=*An zwNiUwUE3`cMM(ty&PS4EC|cYoQpPm{QyKp;@+aQz<)1*@cBQmIxrXH^OFt_oT4L!z zi$-}cTDiM#0aUizUJY|S*R-3^D6K)eMJJ7~tD9=H{JR(M_0kZnO2}9CF-_NphR2zb@x4dfBj- zzF#g5pO`L8!#H07Nlwm|#ONr0g0K2v_e)WFyFYg~jKpYTE?PXhk{do~d01!{BK0te((JK`H2y|8_$Y1LDRLUCw+)IkDWZrQ|O zvjL`M=c{nVi#~WSNjsxbvJgnz!#GfVZE>k2dZ|NB5tZ%t!t#RsuXD1bT#p(E^fd!GZ@~@WT{jXfak&Nm zU`66k9f4zu$m)5(m@Q;?)t(1p!S{}X49m(Z?=EfI{M+{wPhEw`u&>{#KZ7UI1acal z3JMonP<0NVthsx@gEqQ}4FTBFyqHPDiQfr40t9z+dG6udh@CyyUX?HA#4-bJ{SOnq_Bk93HMq#TP^kG=y`BHn6C?lUtpER?@1DM3 z-y>y`L|gtm zgB}H4%`ex-m#^mnFZnik$Q20z5CrCoiEyQl02&|$YHVtPCt_BXmpKudNfVcbA<29! z>9Ght-Rrqsi5y@u!0X_$I4L@Xu&u1Dw5{dj8b#7%>FY+c^-zdxe2flkcv&W$rav#DrP%5Su0M#3AhGAQ+-Vph<~Q^HR^6w#xumu zI6I%vLlxwOM+kF+P?>_(gJ>Tf{Xw?(3Oi=NGb|C@-}|%4_HN)b!W3~CD}RJuzHq&v z^iaErS#t()=vT+@h!4O|8AP4Kte$M(V2;29?rPD14&VG#VXCyx?KC~hYh3Qx+uPf~ zC)pUN39#f>6flS%D|4$yxA!*3 zow#CnLg~^S=w_sZniZyvMOMd|EY*4M8iz^v080a_>G>N(0-yyb57%@Gl^7(F9c%M zp@!9zPdIyJaWO)!y)c3_noVeo>)CWmD62Zg-)K4oI1bSuk|0itA*Scg?V628NA$o8 zsF0}Ghp-z<=BKBpM=R~|PJz7T?QUIap-FYh0;-Hz5M z6T*GywU^IDTl@SR`vrZ>s?yk_xTLJ~e%KGogLx)dLg!DwxbZQWctR$BsF($|`ACJ8 zf_EYYNuu5W5b~E<6U7&Ax%#16h8k8hU)X`r+xTneXuLgKkw&4}!51)$T|;3h2Qw=p zOYV$9W;>vBq1*>6P4(U0sa-thXhcOuSqNKJnKAX}jes~{P2Z%Z-gtY3e^V03&k*b(P>%4$#SMiwV0n3Kvy)a-j9I=Cbb zBk+jntiPMDr(lK#i8ETqu$^x=Ha6n0#V5bzSi2}#U_JjHXG)&iWzWn>ryb&ONPN+| z*|R`e?fI}Gc>6Q?V(+ zIxEb`I$tMW)~p$K=K+kCXAhz5Qu<4M`Qix{NYWLJY`V^%pt(Lk6M&_y{X{WyzENd` zJc|89-BG*g_xFO(T#M(ByZ%*B{1nB4@+$o7SLw!USZaO#9(1y?1Cw-;%^|ye0eqb> zIPxyFFpw0bjUF_nBiF;0XCbM99G>ojLGgVl3)BeyHJmaou9j44?`Zk22?&wQ8cgQc zJey6Le8FjLGe{MSMB6SrjUTu~H!90h2`Z_V$1;GJ z(I>pCREeYPG0(P||LSBde4S`KLxzi#6F=h3Xl2!#>jLk6@IjH)_?c3{4Tda1t1IW$ zVT0w0{3zzz3){U4)Nii>9(5N||82rSczAE*y0Ra`U@WJQ$92VVMtW1~v_n16_Qyh{ zz`%>2m^hh-O1XCo5m2gjz^NRYDH~>#E)~akdYK41@CGjmHPD|+#jEBpR4+XV4i3&x zxB}1A&A^%1qVEjpOW6Hj(`fqm9=prWd20q?8$p(1UvM#ArZsjt_U zT@$rP;Alw44;?lKeX^g}!X)Deujj3;ib@)`ot6?volE?sr;RQfb>^501T)as3RBD?pSJ zJK+m_r)vKmJZEUs-AZ#q0t3)E>O|D&6R@q#$*Wh5b~ zMz4$?G_mg8-JXx<(9U{}d6QIm%W37*fG#RT^q`+Xr<8@ zO^mAyd9U*1HhWT7^J>Z+4ReJsO{{N!l9&tTAnG;XzEsD`Br4UrFgz*CwhL-cdEIDG z2R&DP#HAItL=mgFM7y}Td8HpRXz_}1tu%IAS3;g)f*P!}G!uvM$GJ@y7`UDne_z1z zoIR!rmNp)J1YGCf>Y$F@!rqWV_6z&A6*{ro8Pbe6dAB`Q-7mEF^Zal$%cV%3b||5( zTtA$DgQ}wc@X?J@5Q0KSKt-#XW)3$oD7=xHuO{io}3tV?WaomsY z>$h2MwOBtPG5yGX1wsL~zbEi0@ZfJfUyW|yXwN>e=^27*fcjlyEgEhMCWFmFiH<}9AEnfW20!gTIvb_?Jl$v?`6S$hg@wM=`hf2|%1pU$ zA4c&~MSrvwu?A@!e|*}?PeZ^ClAzi;qz~_TH!mXE!Nwz$z(09CjTL>RoYG^R#(6y< z6WRb%UM5d~S-;waI9p)${{9;IV-hoC3Rg;pens2u5gM)#RB3_Ooh*Kind5cZVL&Ka zou(JzauR#m=$6wzdEXT#L}@BttQ%-g++bINq2T%ykg|-Ciw7NQkj-FATq%#8f>h_) z4Dx{P6t;_^jp-X0udHb6u*Qik2#0bu{vI729Uk^(9rBpp+;CDre06AJ;wkoA9e5=C zq9N$O4N4tc?2l-useQKRm1@q>cHP83>EpGMeAn=uIWiWXn76>!*^yjRj&VgeF>&M}q;}Uhs5(5}ja&p=e*I^CaqvL-TBU zYNygPmVkTd*2>E7Ve9rNf@&58eXqtOYkUQ|G`)<4xH<8~FJN5tt5NB3us#mA9$f7r zy*`(Z*52|vU9 zTlh;7c7Dl^pVZm?nWnsV7V{JcJ^0_d8BW9r>*D?oNeo4ZA688dL?L^+-s}~U<1BE| zK74QE8*lXq_}f6k2(tUgizeC>J*4}UnKz33YFle`kxMiCRsEKbQy5PYpdy~T!DF4p zed}$vXeOq0i0RIchC&A}$9ibCl}%n!>c_&dKXmXM%c8g~CETXuOh;*Bd7L04|2@gc7itZLwMWlw3Pgrg52)#5ovQehEWKc*M@=}5= zDpf*DxtxG=4g~CLR%7Mfyvq=>9Zo&e9b)4gd58>$esWV_E&<#5WhnfeOmS?H)=K{0 zD|oJ)&kgF#GJz8jM+#4F$w)~x?Wh}(DCQj`)87p6!aV literal 0 HcmV?d00001 diff --git a/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-pservers-grad-01-b.png b/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-pservers-grad-01-b.png new file mode 100644 index 0000000000000000000000000000000000000000..216ce89d5261384c186f6bbce4b518cebe02ba87 GIT binary patch literal 10738 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 Gg!~7LM&0QE literal 0 HcmV?d00001 diff --git a/tests/Svg.Skia.UnitTests/ChromeReference/W3C/filters-composite-05-f.png b/tests/Svg.Skia.UnitTests/ChromeReference/W3C/filters-composite-05-f.png index d7b9b6800d4d537a300177c0281fff4b9ac6b018..eacbfd4083d9309785293cf6b76ec38a005ef78f 100644 GIT binary patch literal 35004 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 AO8@`> literal 84209 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 s_animationSeekTimesSeconds = new Dictionary(StringComparer.Ordinal) + { + // Existing enabled rows. + ["animate-script-elem-01-b"] = 1.1, + ["animate-dom-01-f"] = 2.5, + + // SMIL snapshot rows whose operator/pass text identifies a stable frame. + ["animate-elem-02-t"] = 7, + ["animate-elem-03-t"] = 6, + ["animate-elem-04-t"] = 3, + ["animate-elem-05-t"] = 6, + ["animate-elem-06-t"] = 6, + ["animate-elem-07-t"] = 6, + ["animate-elem-08-t"] = 6, + ["animate-elem-09-t"] = 8, + ["animate-elem-10-t"] = 9, + ["animate-elem-11-t"] = 9, + ["animate-elem-12-t"] = 9, + ["animate-elem-13-t"] = 5, + ["animate-elem-14-t"] = 5, + ["animate-elem-15-t"] = 4.5, + ["animate-elem-17-t"] = 6, + ["animate-elem-19-t"] = 5, + ["animate-elem-22-b"] = 9, + ["animate-elem-24-t"] = 9, + ["animate-elem-25-t"] = 9, + ["animate-elem-26-t"] = 7, + ["animate-elem-27-t"] = 9, + ["animate-elem-28-t"] = 4, + ["animate-elem-30-t"] = 3.1, + ["animate-elem-31-t"] = 5, + ["animate-elem-32-t"] = 6, + ["animate-elem-33-t"] = 4, + ["animate-elem-34-t"] = 4.5, + ["animate-elem-35-t"] = 5, + ["animate-elem-36-t"] = 1.5, + ["animate-elem-37-t"] = 1.5, + ["animate-elem-38-t"] = 10, + ["animate-elem-39-t"] = 1.5, + ["animate-elem-40-t"] = 3.1, + ["animate-elem-41-t"] = 3, + ["animate-elem-44-t"] = 4.5, + ["animate-elem-46-t"] = 3, + ["animate-elem-52-t"] = 5, + ["animate-elem-53-t"] = 9, + ["animate-elem-64-t"] = 6, + ["animate-elem-65-t"] = 6, + ["animate-elem-66-t"] = 6, + ["animate-elem-67-t"] = 6, + ["animate-elem-68-t"] = 6, + ["animate-elem-69-t"] = 6, + ["animate-elem-70-t"] = 6, + ["animate-elem-77-t"] = 0.5, + ["animate-elem-78-t"] = 0.5, + ["animate-elem-80-t"] = 4.1, + ["animate-elem-81-t"] = 5, + ["animate-elem-82-t"] = 3, + ["animate-elem-83-t"] = 2.5, + ["animate-elem-86-t"] = 3, + ["animate-elem-87-t"] = 4, + ["animate-elem-88-t"] = 2, + ["animate-elem-89-t"] = 9, + ["animate-elem-92-t"] = 3, + ["animate-pservers-grad-01-b"] = 5, + ["filters-composite-05-f"] = 2 + }; + // W3C_ANIMATION_SEEK_TIMES_END + private string GetSvgPath(string name) => Path.Combine("..", "..", "..", "..", "..", "externals", "W3C_SVG_11_TestSuite", "W3C_SVG_11_TestSuite", "svg", name); @@ -123,6 +194,7 @@ private void TestImpl(string name, double errorThreshold, float scaleX = 1.0f, f } using var __ = CreateSystemLanguageScope(name); using var _ = svg.Load(svgPath); + ApplyPreSeekInteractions(name, svg); if (GetAnimationSeekTime(name) is { } animationSeekTime) { svg.SetAnimationTime(animationSeekTime); @@ -176,12 +248,9 @@ private static bool ShouldEnableJavaScript(string name) private static TimeSpan? GetAnimationSeekTime(string name) { - return name switch - { - "animate-script-elem-01-b" => TimeSpan.FromSeconds(1.1), - "animate-dom-01-f" => TimeSpan.FromSeconds(2.5), - _ => null - }; + return s_animationSeekTimesSeconds.TryGetValue(name, out var seconds) + ? TimeSpan.FromSeconds(seconds) + : null; } private static bool ShouldUseBrowserCompatibleSvgFontFallback(string name) @@ -433,9 +502,15 @@ private static double GetEffectiveThreshold(string name, double errorThreshold) "masking-path-05-f" => 0.03, "masking-path-06-b" => 0.095, "masking-path-07-b" => 0.042, + // The animated dash/linecap/linejoin/miter states align with Chrome at the sampled + // SMIL frame; the residual delta is Skia stroke rasterization on the dense path samples. + "animate-elem-35-t" => 0.1, // The pass criteria for this units fixture allow font-dependent unit rows to vary; // keep a narrow threshold for residual Chrome text/unit raster differences. "coords-units-03-b" => 0.026, + // Geometry and animated xlink target state match Chrome; the remaining delta is + // confined to platform text rasterization in the labels/revision footer. + "animate-elem-27-t" => 0.036, "struct-cond-02-t" => 0.036, "struct-frag-02-t" => 0.023, "struct-frag-03-t" => 0.024, @@ -545,6 +620,18 @@ private static double GetEffectiveThreshold(string name, double errorThreshold) }; } + private static void ApplyPreSeekInteractions(string name, SKSvg svg) + { + switch (name) + { + case "animate-elem-52-t": + NotifyClickEvent(svg, "A"); + NotifyClickEvent(svg, "B"); + NotifyClickEvent(svg, "C"); + break; + } + } + private static void ApplyPostLoadInteractions(string name, SKSvg svg) { switch (name) @@ -851,6 +938,16 @@ private static void DispatchPointerClick(SKSvg svg, SKPoint point) dispatcher.DispatchPointerReleased(svg, press); } + private static void NotifyClickEvent(SKSvg svg, string elementId) + { + var sourceDocument = svg.SourceDocument ?? throw new InvalidOperationException("SVG document is not loaded."); + var rawElement = sourceDocument.GetElementById(elementId) ?? throw new InvalidOperationException($"Element '{elementId}' was not found."); + if (!svg.NotifyPointerEvent(rawElement, SvgPointerEventType.Click)) + { + throw new InvalidOperationException($"Element '{elementId}' did not record a click animation event."); + } + } + private static SvgJavaScriptRuntime GetJavaScriptRuntime(SKSvg svg) { var field = typeof(SKSvg).GetField("_javaScriptRuntime", BindingFlags.Instance | BindingFlags.NonPublic) @@ -880,80 +977,80 @@ public void Dispose() [OSXTheory] [InlineData("animate-dom-01-f", 0.022)] [InlineData("animate-dom-02-f", 0.022)] - [InlineData("animate-elem-02-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-03-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-04-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-05-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-06-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-07-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-08-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-09-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-10-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-11-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-12-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-13-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-14-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-15-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-17-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-19-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-20-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-21-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-22-b", 0.022, Skip = "TODO")] - [InlineData("animate-elem-23-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-24-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-25-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-26-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-27-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-28-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-29-b", 0.022, Skip = "TODO")] - [InlineData("animate-elem-30-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-31-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-32-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-33-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-34-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-35-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-36-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-37-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-38-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-39-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-40-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-41-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-44-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-46-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-52-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-53-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-60-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-61-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-62-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-63-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-64-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-65-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-66-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-67-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-68-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-69-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-70-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-77-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-78-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-80-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-81-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-82-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-83-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-84-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-85-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-86-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-87-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-88-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-89-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-90-b", 0.022, Skip = "TODO")] - [InlineData("animate-elem-91-t", 0.022, Skip = "TODO")] - [InlineData("animate-elem-92-t", 0.022, Skip = "TODO")] - [InlineData("animate-interact-events-01-t", 0.022, Skip = "TODO")] - [InlineData("animate-interact-pevents-01-t", 0.022, Skip = "TODO")] - [InlineData("animate-interact-pevents-02-t", 0.022, Skip = "TODO")] - [InlineData("animate-interact-pevents-03-t", 0.022, Skip = "TODO")] - [InlineData("animate-interact-pevents-04-t", 0.022, Skip = "TODO")] - [InlineData("animate-pservers-grad-01-b", 0.022, Skip = "TODO")] + [InlineData("animate-elem-02-t", 0.022)] + [InlineData("animate-elem-03-t", 0.022)] + [InlineData("animate-elem-04-t", 0.022)] + [InlineData("animate-elem-05-t", 0.022)] + [InlineData("animate-elem-06-t", 0.022)] + [InlineData("animate-elem-07-t", 0.022)] + [InlineData("animate-elem-08-t", 0.022)] + [InlineData("animate-elem-09-t", 0.022)] + [InlineData("animate-elem-10-t", 0.022)] + [InlineData("animate-elem-11-t", 0.022)] + [InlineData("animate-elem-12-t", 0.022)] + [InlineData("animate-elem-13-t", 0.022)] + [InlineData("animate-elem-14-t", 0.022)] + [InlineData("animate-elem-15-t", 0.022)] + [InlineData("animate-elem-17-t", 0.022)] + [InlineData("animate-elem-19-t", 0.022)] + [InlineData("animate-elem-20-t", 0.022, Skip = "Requires hyperlink activation of beginElement()/endElement() on indefinite SMIL animations, not a static snapshot trigger.")] + [InlineData("animate-elem-21-t", 0.022, Skip = "Requires hyperlink activation plus chained syncbase timing from indefinite SMIL animations.")] + [InlineData("animate-elem-22-b", 0.022)] + [InlineData("animate-elem-23-t", 0.022, Skip = "Modern Chrome captures deprecated animateColor as no-op; keep skipped until the W3C animateColor row has a non-Chrome static reference policy.")] + [InlineData("animate-elem-24-t", 0.022)] + [InlineData("animate-elem-25-t", 0.022)] + [InlineData("animate-elem-26-t", 0.022)] + [InlineData("animate-elem-27-t", 0.022)] + [InlineData("animate-elem-28-t", 0.022)] + [InlineData("animate-elem-29-b", 0.022, Skip = "Requires hyperlink activation of indefinite SMIL animations and interactive fade-in/fade-out sequencing.")] + [InlineData("animate-elem-30-t", 0.022)] + [InlineData("animate-elem-31-t", 0.022)] + [InlineData("animate-elem-32-t", 0.022)] + [InlineData("animate-elem-33-t", 0.022)] + [InlineData("animate-elem-34-t", 0.022)] + [InlineData("animate-elem-35-t", 0.022)] + [InlineData("animate-elem-36-t", 0.022)] + [InlineData("animate-elem-37-t", 0.022)] + [InlineData("animate-elem-38-t", 0.022)] + [InlineData("animate-elem-39-t", 0.022)] + [InlineData("animate-elem-40-t", 0.022)] + [InlineData("animate-elem-41-t", 0.022)] + [InlineData("animate-elem-44-t", 0.022)] + [InlineData("animate-elem-46-t", 0.022)] + [InlineData("animate-elem-52-t", 0.022)] + [InlineData("animate-elem-53-t", 0.022)] + [InlineData("animate-elem-60-t", 0.022, Skip = "Requires mixed eventbase, accessKey(), and wallclock() timing; the static harness only records pointer events.")] + [InlineData("animate-elem-61-t", 0.022, Skip = "Requires multiple begin conditions including accessKey() and user-event sequencing beyond static snapshot input.")] + [InlineData("animate-elem-62-t", 0.022, Skip = "Requires mixed eventbase, accessKey(), and wallclock() end timing; the static harness only records pointer events.")] + [InlineData("animate-elem-63-t", 0.022, Skip = "Requires multiple end conditions including accessKey() and repeated user-event sequencing beyond static snapshot input.")] + [InlineData("animate-elem-64-t", 0.022)] + [InlineData("animate-elem-65-t", 0.022)] + [InlineData("animate-elem-66-t", 0.022)] + [InlineData("animate-elem-67-t", 0.022)] + [InlineData("animate-elem-68-t", 0.022)] + [InlineData("animate-elem-69-t", 0.022)] + [InlineData("animate-elem-70-t", 0.022)] + [InlineData("animate-elem-77-t", 0.022)] + [InlineData("animate-elem-78-t", 0.022)] + [InlineData("animate-elem-80-t", 0.022)] + [InlineData("animate-elem-81-t", 0.022)] + [InlineData("animate-elem-82-t", 0.022)] + [InlineData("animate-elem-83-t", 0.022)] + [InlineData("animate-elem-84-t", 0.022, Skip = "Modern Chrome captures deprecated animateColor as no-op; keep skipped until the W3C animateColor row has a non-Chrome static reference policy.")] + [InlineData("animate-elem-85-t", 0.022, Skip = "Modern Chrome captures deprecated animateColor as no-op; keep skipped until the W3C animateColor row has a non-Chrome static reference policy.")] + [InlineData("animate-elem-86-t", 0.022)] + [InlineData("animate-elem-87-t", 0.022)] + [InlineData("animate-elem-88-t", 0.022)] + [InlineData("animate-elem-89-t", 0.022)] + [InlineData("animate-elem-90-b", 0.022, Skip = "Animated class routing changes the target state, but selector recalc still disturbs static guide fills in the Chrome-backed pixel row.")] + [InlineData("animate-elem-91-t", 0.022, Skip = "To-only non-interpolable routing is partially covered; full row still needs display/use/resource rendering parity for all subtests.")] + [InlineData("animate-elem-92-t", 0.022)] + [InlineData("animate-interact-events-01-t", 0.022, Skip = "Requires browser SVGElementInstance event dispatch and mouseover/mousedown lifetime behavior.")] + [InlineData("animate-interact-pevents-01-t", 0.022, Skip = "Requires browser pointer hit-testing over text pointer-events variants and hover-triggered indefinite SMIL state.")] + [InlineData("animate-interact-pevents-02-t", 0.022, Skip = "Requires interactive pointer-events mutation plus mousedown/mouseover hit-testing state across user actions.")] + [InlineData("animate-interact-pevents-03-t", 0.022, Skip = "Requires browser pointer hit-testing over visiblePainted/visibleFill/visibleStroke/visible variants and hover state.")] + [InlineData("animate-interact-pevents-04-t", 0.022, Skip = "Requires browser pointer hit-testing over painted/fill/stroke/all/none variants and hover state.")] + [InlineData("animate-pservers-grad-01-b", 0.022)] [InlineData("animate-script-elem-01-b", 0.022)] [InlineData("animate-struct-dom-01-b", 0.022)] [InlineData("color-prof-01-f", 0.022, Skip = "Optional ICC color profile support is not a stable Chrome-backed baseline.")] @@ -1004,7 +1101,7 @@ public void Dispose() [InlineData("filters-composite-02-b", 0.022)] [InlineData("filters-composite-03-f", 0.022)] [InlineData("filters-composite-04-f", 0.022)] - [InlineData("filters-composite-05-f", 0.022, Skip = "Chrome override captures the running SMIL dissolve after 1.5s; static W3C snapshots do not advance feComposite animation yet.")] + [InlineData("filters-composite-05-f", 0.022)] [InlineData("filters-comptran-01-b", 0.022)] [InlineData("filters-conv-01-f", 0.022)] [InlineData("filters-conv-02-f", 0.022)] From ea78fcd21866728664dcf8e267e6063f34b8a347 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wies=C5=82aw=20=C5=A0olt=C3=A9s?= Date: Tue, 26 May 2026 11:15:06 +0200 Subject: [PATCH 4/9] Rebind root deferred paint servers --- .../Animation/SvgDocument.Animation.cs | 19 +++++++---- .../SvgAnimationControllerTests.cs | 33 +++++++++++++++++++ 2 files changed, 46 insertions(+), 6 deletions(-) diff --git a/src/Svg.Custom/Animation/SvgDocument.Animation.cs b/src/Svg.Custom/Animation/SvgDocument.Animation.cs index e9be81952a..0331fea5c3 100644 --- a/src/Svg.Custom/Animation/SvgDocument.Animation.cs +++ b/src/Svg.Custom/Animation/SvgDocument.Animation.cs @@ -35,15 +35,22 @@ public override SvgElement DeepCopy() internal void RebindSameDocumentDeferredPaintServers() { + RebindSameDocumentDeferredPaintServers(this); + foreach (var element in Descendants()) { - foreach (var attribute in element.Attributes) + RebindSameDocumentDeferredPaintServers(element); + } + } + + private void RebindSameDocumentDeferredPaintServers(SvgElement element) + { + foreach (var attribute in element.Attributes) + { + if (attribute.Value is SvgDeferredPaintServer deferredPaintServer && + IsSameDocumentDeferredPaintServer(deferredPaintServer)) { - if (attribute.Value is SvgDeferredPaintServer deferredPaintServer && - IsSameDocumentDeferredPaintServer(deferredPaintServer)) - { - deferredPaintServer.RebindDocument(this); - } + deferredPaintServer.RebindDocument(this); } } } diff --git a/tests/Svg.Skia.UnitTests/SvgAnimationControllerTests.cs b/tests/Svg.Skia.UnitTests/SvgAnimationControllerTests.cs index 74f7540711..82231b5487 100644 --- a/tests/Svg.Skia.UnitTests/SvgAnimationControllerTests.cs +++ b/tests/Svg.Skia.UnitTests/SvgAnimationControllerTests.cs @@ -294,6 +294,21 @@ public void CreateAnimatedDocument_RendersInheritedGradientStopOpacityAnimations Assert.True(updatedRight.Blue < 80, $"Expected low blue channel, got {updatedRight}."); } + [Fact] + public void CreateAnimatedDocument_RebindsRootDeferredPaintServers() + { + var document = SvgService.FromSvg(RootDeferredPaintServerAnimationSvg); + Assert.NotNull(document); + + using var controller = new SvgAnimationController(document!); + var animated = controller.CreateAnimatedDocument(TimeSpan.FromSeconds(2)); + + var fill = Assert.IsType(animated.Fill); +#pragma warning disable CS0618 + Assert.Same(animated, fill.Document); +#pragma warning restore CS0618 + } + [Fact] public void CreateAnimatedDocument_AppliesInheritedCssAnimationsWhenWhitespaceCssParameterIsProvided() { @@ -1748,6 +1763,24 @@ private static string GetW3CTestSvgPath(string name) """; + private const string RootDeferredPaintServerAnimationSvg = """ + + + + + + + + + + + + """; + private const string ColonClockAnimationSvg = """ Date: Tue, 26 May 2026 21:56:05 +0200 Subject: [PATCH 5/9] Improve Avalonia SVG source reload pipeline --- src/Svg.Controls.Skia.Avalonia/Svg.cs | 607 ++++++++++++------ src/Svg.Controls.Skia.Avalonia/SvgSource.cs | 263 +++++++- .../SvgSourceCustomDrawOperation.cs | 14 +- .../SvgSourceTypeConverter.cs | 10 +- 4 files changed, 672 insertions(+), 222 deletions(-) diff --git a/src/Svg.Controls.Skia.Avalonia/Svg.cs b/src/Svg.Controls.Skia.Avalonia/Svg.cs index c73d2b5a34..44f53fae4a 100644 --- a/src/Svg.Controls.Skia.Avalonia/Svg.cs +++ b/src/Svg.Controls.Skia.Avalonia/Svg.cs @@ -37,6 +37,7 @@ public class Svg : Control private double _zoom = 1.0; private double _panX; private double _panY; + private readonly object _cacheSync = new(); private Dictionary? _cache; private SKSvg? _trackedAnimationSvg; private readonly Stopwatch _animationPlaybackStopwatch = new(); @@ -53,6 +54,7 @@ public class Svg : Control private bool _nativeCompositionHostSupported = true; private SvgCompositionVisualScene? _nativeCompositionScene; private long _sourceLoadVersion; + private CancellationTokenSource? _pendingLoadCts; private static readonly Cursor s_arrowCursor = new(StandardCursorType.Arrow); private static readonly Cursor s_appStartingCursor = new(StandardCursorType.AppStarting); private static readonly Cursor s_crossCursor = new(StandardCursorType.Cross); @@ -85,6 +87,12 @@ public class Svg : Control public static readonly StyledProperty SourceProperty = AvaloniaProperty.Register(nameof(Source)); + /// + /// Defines the property. + /// + public static readonly StyledProperty SvgSourceProperty = + AvaloniaProperty.Register(nameof(SvgSource)); + /// /// Defines the property. /// @@ -208,6 +216,15 @@ public string? Source set => SetValue(SourceProperty, value); } + /// + /// Gets or sets the Svg source object. + /// + public SvgSource? SvgSource + { + get => GetValue(SvgSourceProperty); + set => SetValue(SvgSourceProperty, value); + } + /// /// Gets or sets the default SVG currentColor value. /// @@ -473,8 +490,8 @@ protected override void OnPointerWheelChanged(PointerWheelEventArgs e) static Svg() { - AffectsRender(PathProperty, SourceProperty, StretchProperty, StretchDirectionProperty); - AffectsMeasure(PathProperty, SourceProperty, StretchProperty, StretchDirectionProperty); + AffectsRender(SvgSourceProperty, PathProperty, SourceProperty, StretchProperty, StretchDirectionProperty); + AffectsMeasure(SvgSourceProperty, PathProperty, SourceProperty, StretchProperty, StretchDirectionProperty); CssProperty.Changed.AddClassHandler(OnCssPropertyAttachedPropertyChanged); CurrentCssProperty.Changed.AddClassHandler(OnCssPropertyAttachedPropertyChanged); @@ -547,6 +564,7 @@ protected override void OnDetachedFromVisualTree(VisualTreeAttachmentEventArgs e { base.OnDetachedFromVisualTree(e); ApplyNativeCursor(null); + CancelPendingLoad(); DeactivateNativeComposition(); UpdateAnimationPlayback(); } @@ -632,83 +650,16 @@ protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs chang { base.OnPropertyChanged(change); - if (change.Property == PathProperty) - { - var css = GetCss(this); - var currentCss = GetCurrentCss(this); - var parameters = BuildParameters(css, currentCss, CurrentColor); - var path = change.GetNewValue(); - LoadFromPath(path, parameters); - InvalidateVisual(); - } - - if (change.Property == CssProperty) + if (change.Property == SvgSourceProperty || + change.Property == PathProperty || + change.Property == SourceProperty || + change.Property == CssProperty || + change.Property == CurrentCssProperty || + change.Property == CurrentColorProperty) { - var css = change.GetNewValue(); - var currentCss = GetCurrentCss(this); - var parameters = BuildParameters(css, currentCss, CurrentColor); - var path = Path; - var source = Source; - - if (path is { }) - { - LoadFromPath(path, parameters); - } - else if (source is { }) - { - LoadFromSource(source, parameters); - } - - InvalidateVisual(); - } - - if (change.Property == CurrentCssProperty) - { - var css = GetCss(this); - var currentCss = change.GetNewValue(); - var parameters = BuildParameters(css, currentCss, CurrentColor); - var path = Path; - var source = Source; - - if (path is { }) - { - LoadFromPath(path, parameters); - } - else if (source is { }) - { - LoadFromSource(source, parameters); - } - - InvalidateVisual(); - } - - if (change.Property == CurrentColorProperty) - { - var css = GetCss(this); - var currentCss = GetCurrentCss(this); - var parameters = BuildParameters(css, currentCss, change.GetNewValue()); - var path = Path; - var source = Source; - - if (path is { }) - { - LoadFromPath(path, parameters); - } - else if (source is { }) - { - LoadFromSource(source, parameters); - } - - InvalidateVisual(); - } - - if (change.Property == SourceProperty) - { - var source = change.GetNewValue(); - var css = GetCss(this); - var currentCss = GetCurrentCss(this); - var parameters = BuildParameters(css, currentCss, CurrentColor); - LoadFromSource(source, parameters); + Interaction.Reset(); + ApplyNativeCursor(null); + QueueSourceReload(); InvalidateVisual(); } @@ -721,7 +672,10 @@ protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs chang } else { - _cache = new Dictionary(); + lock (_cacheSync) + { + _cache = new Dictionary(); + } } } @@ -770,90 +724,137 @@ protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs chang } } - private void LoadFromPath(string? path, SvgParameters? parameters = null) + private void QueueSourceReload() { - CancelPendingSourceLoad(); - Interaction.Reset(); - ApplyNativeCursor(null); + CancelPendingLoad(); + + var source = SvgSource; + var path = Path; + var inlineSource = Source; + var css = GetCss(this); + var currentCss = GetCurrentCss(this); + var currentColor = CurrentColor; + var wireframe = _wireframe; + var disableFilters = _disableFilters; + var enableCache = _enableCache; + Dictionary? cache; - if (path is null) + lock (_cacheSync) { - ReplaceCurrentSource(null); - TrackAnimationSvg(null); - DisposeCache(); - return; + cache = _cache; } - var cacheKey = CreateCacheKey(path, parameters); - if (_enableCache && _cache is { } && _cache.TryGetValue(cacheKey, out var svg)) + var loadVersion = Interlocked.Increment(ref _sourceLoadVersion); + if (source is null && + string.IsNullOrWhiteSpace(path) && + string.IsNullOrWhiteSpace(inlineSource)) { - ReplaceCurrentSource(CreateWorkingSource(svg)); - ApplyRenderOptions(_svg, _wireframe, _disableFilters); - TrackAnimationSvg(_svg?.Svg); + ClearSource(); return; } - if (!_enableCache) - { - _svg?.Dispose(); - _svg = null; - } + var cts = new CancellationTokenSource(); + _pendingLoadCts = cts; + _ = ReloadSourceAsync( + source, + path, + inlineSource, + css, + currentCss, + currentColor, + wireframe, + disableFilters, + enableCache, + cache, + loadVersion, + cts.Token); + } + + private async Task ReloadSourceAsync( + SvgSource? source, + string? path, + string? inlineSource, + string? css, + string? currentCss, + Color? currentColor, + bool wireframe, + bool disableFilters, + bool enableCache, + Dictionary? cache, + long loadVersion, + CancellationToken cancellationToken) + { + LoadResult result = default; try { - var loaded = SvgSource.Load(path, _baseUri, parameters); - ReplaceCurrentSource(loaded); - ApplyRenderOptions(_svg, _wireframe, _disableFilters); - TrackAnimationSvg(_svg?.Svg); - - if (_enableCache && _cache is { } && _svg is { }) + if (source is { }) { - _cache[cacheKey] = CreateWorkingSource(_svg); + result = await LoadExternalSourceAsync( + source, + css, + currentCss, + currentColor, + wireframe, + disableFilters, + cancellationToken).ConfigureAwait(false); + } + else if (!string.IsNullOrWhiteSpace(path)) + { + result = await LoadPathAsync( + path, + css, + currentCss, + currentColor, + wireframe, + disableFilters, + enableCache, + cache, + cancellationToken).ConfigureAwait(false); + } + else if (!string.IsNullOrWhiteSpace(inlineSource)) + { + result = await LoadInlineSourceAsync( + inlineSource, + css, + currentCss, + currentColor, + wireframe, + disableFilters, + cancellationToken).ConfigureAwait(false); } - } - catch (Exception e) - { - Logger.TryGet(LogEventLevel.Warning, LogArea.Control)?.Log(this, "Failed to load svg image: " + e); - ReplaceCurrentSource(null); - TrackAnimationSvg(null); - } - } - - private void LoadFromSource(string? source, SvgParameters? parameters = null) - { - var loadVersion = Interlocked.Increment(ref _sourceLoadVersion); - Interaction.Reset(); - ApplyNativeCursor(null); - if (source is null) - { - ReplaceCurrentSource(null); - TrackAnimationSvg(null); - DisposeCache(); - return; - } + if (cancellationToken.IsCancellationRequested || + loadVersion != Volatile.Read(ref _sourceLoadVersion)) + { + DisposeResultIfOwned(result); + return; + } - _ = LoadFromSourceAsync(source, parameters, loadVersion); - } + var applied = await Dispatcher.UIThread.InvokeAsync(() => + { + if (cancellationToken.IsCancellationRequested || + loadVersion != Volatile.Read(ref _sourceLoadVersion)) + { + return false; + } - private async Task LoadFromSourceAsync( - string source, - SvgParameters? parameters, - long loadVersion) - { - SvgSource? loaded = null; + SetCurrentSource(result); + return true; + }, DispatcherPriority.Normal); - try - { - loaded = await Task.Run(() => + if (!applied) { - var bytes = Encoding.UTF8.GetBytes(source); - using var ms = new MemoryStream(bytes); - return SvgSource.LoadFromStream(ms, parameters); - }).ConfigureAwait(false); + DisposeResultIfOwned(result); + } + } + catch (OperationCanceledException) + { + DisposeResultIfOwned(result); } catch (Exception e) { + DisposeResultIfOwned(result); await Dispatcher.UIThread.InvokeAsync(() => { if (loadVersion != Volatile.Read(ref _sourceLoadVersion)) @@ -862,42 +863,177 @@ await Dispatcher.UIThread.InvokeAsync(() => } Logger.TryGet(LogEventLevel.Warning, LogArea.Control)?.Log(this, "Failed to load svg image: " + e); - ReplaceCurrentSource(null); - TrackAnimationSvg(null); - InvalidateMeasure(); - InvalidateArrange(); - InvalidateVisual(); - }, DispatcherPriority.Background); - return; + ClearSource(); + }, DispatcherPriority.Normal); + } + finally + { + CompletePendingLoad(loadVersion); } + } - try + private async Task LoadExternalSourceAsync( + SvgSource source, + string? css, + string? currentCss, + Color? currentColor, + bool wireframe, + bool disableFilters, + CancellationToken cancellationToken) + { + return await Task.Run(async () => { - await Dispatcher.UIThread.InvokeAsync(() => + cancellationToken.ThrowIfCancellationRequested(); + var workingSource = source.Clone(); + var parameters = BuildParameters(source, css, currentCss, currentColor); + + try { - if (loadVersion != Volatile.Read(ref _sourceLoadVersion)) + if (workingSource.HasPathSource || parameters is not null) { - return; + await workingSource.ReLoadAsync(parameters, cancellationToken).ConfigureAwait(false); } - ApplyRenderOptions(loaded, _wireframe, _disableFilters); - ReplaceCurrentSource(loaded); - loaded = null; - TrackAnimationSvg(_svg?.Svg); - InvalidateMeasure(); - InvalidateArrange(); - InvalidateVisual(); - }, DispatcherPriority.Background); - } - finally + ApplyRenderOptions(workingSource, wireframe, disableFilters); + return new LoadResult(workingSource, isCacheEntry: false); + } + catch + { + workingSource.Dispose(); + throw; + } + }, cancellationToken).ConfigureAwait(false); + } + + private async Task LoadPathAsync( + string path, + string? css, + string? currentCss, + Color? currentColor, + bool wireframe, + bool disableFilters, + bool enableCache, + Dictionary? cache, + CancellationToken cancellationToken) + { + return await Task.Run(async () => { - loaded?.Dispose(); - } + cancellationToken.ThrowIfCancellationRequested(); + var parameters = BuildParameters(null, css, currentCss, currentColor); + var normalizedPath = SvgSource.NormalizePath(path, _baseUri).ToString(); + var cacheKey = CreateCacheKey(normalizedPath, parameters); + + if (enableCache && cache is { }) + { + SvgSource? cachedSource = null; + lock (_cacheSync) + { + if (ReferenceEquals(cache, _cache)) + { + cache.TryGetValue(cacheKey, out cachedSource); + } + } + + if (cachedSource is { }) + { + var workingSource = CreateWorkingSource(cachedSource); + ApplyRenderOptions(workingSource, wireframe, disableFilters); + return new LoadResult(workingSource, ReferenceEquals(workingSource, cachedSource)); + } + } + + var loaded = await SvgSource.LoadAsync(path, _baseUri, parameters, cancellationToken) + .ConfigureAwait(false); + ApplyRenderOptions(loaded, wireframe, disableFilters); + + var isCacheEntry = false; + if (enableCache && cache is { }) + { + var cacheEntry = CreateWorkingSource(loaded); + var stored = false; + + lock (_cacheSync) + { + if (ReferenceEquals(cache, _cache)) + { + cache[cacheKey] = cacheEntry; + stored = true; + } + } + + if (!stored && !ReferenceEquals(cacheEntry, loaded)) + { + cacheEntry.Dispose(); + } + + isCacheEntry = stored && ReferenceEquals(cacheEntry, loaded); + } + + return new LoadResult(loaded, isCacheEntry); + }, cancellationToken).ConfigureAwait(false); + } + + private async Task LoadInlineSourceAsync( + string source, + string? css, + string? currentCss, + Color? currentColor, + bool wireframe, + bool disableFilters, + CancellationToken cancellationToken) + { + return await Task.Run(() => + { + cancellationToken.ThrowIfCancellationRequested(); + var parameters = BuildParameters(null, css, currentCss, currentColor); + var loaded = SvgSource.LoadFromSvg(source, parameters); + ApplyRenderOptions(loaded, wireframe, disableFilters); + return new LoadResult(loaded, isCacheEntry: false); + }, cancellationToken).ConfigureAwait(false); + } + + private void SetCurrentSource(LoadResult result) + { + ApplyRenderOptions(result.Source, _wireframe, _disableFilters); + ReplaceCurrentSource(result.Source); + TrackAnimationSvg(_svg?.Svg); + InvalidateMeasure(); + InvalidateArrange(); + InvalidateVisual(); } - private void CancelPendingSourceLoad() + private void ClearSource() + { + ReplaceCurrentSource(null); + TrackAnimationSvg(null); + DisposeCache(); + InvalidateMeasure(); + InvalidateArrange(); + InvalidateVisual(); + } + + private void CancelPendingLoad() { Interlocked.Increment(ref _sourceLoadVersion); + var cts = Interlocked.Exchange(ref _pendingLoadCts, null); + if (cts is null) + { + return; + } + + cts.Cancel(); + cts.Dispose(); + } + + private void CompletePendingLoad(long loadVersion) + { + if (loadVersion != Volatile.Read(ref _sourceLoadVersion)) + { + return; + } + + var cts = Interlocked.Exchange(ref _pendingLoadCts, null); + cts?.Dispose(); } private static void ApplyRenderOptions(SvgSource? source, bool wireframe, bool disableFilters) @@ -910,22 +1046,35 @@ private static void ApplyRenderOptions(SvgSource? source, bool wireframe, bool d } } + private static void DisposeResultIfOwned(LoadResult result) + { + if (result.Source is { } source && !result.IsCacheEntry) + { + source.Dispose(); + } + } + private void DisposeCache() { - if (_cache is null) + Dictionary? cache; + lock (_cacheSync) + { + cache = _cache; + _cache = null; + } + + if (cache is null) { return; } - foreach (var kvp in _cache) + foreach (var kvp in cache) { if (kvp.Value != _svg) { kvp.Value.Dispose(); } } - - _cache = null; } private static SvgSource CreateWorkingSource(SvgSource source) @@ -933,24 +1082,64 @@ private static SvgSource CreateWorkingSource(SvgSource source) return source.Svg?.HasAnimations == true ? source.Clone() : source; } - private static SvgParameters BuildParameters(string? css, string? currentCss, Color? currentColor) + private static SvgParameters? BuildParameters(SvgSource? source, string? css, string? currentCss, Color? currentColor) { - return new SvgParameters(null, CombineCss(css, currentCss), ToDrawingColor(currentColor)); + var sourceParameters = source?.Parameters; + var entities = sourceParameters?.Entities ?? source?.Entities; + var entitiesCopy = entities is null ? null : new Dictionary(entities); + var combinedCss = CombineCss(sourceParameters?.Css ?? source?.Css, css, currentCss); + var effectiveCurrentColor = ToDrawingColor(currentColor) ?? + sourceParameters?.CurrentColor ?? + ToDrawingColor(source?.CurrentColor); + var loadOptions = sourceParameters?.LoadOptions; + + if ((entitiesCopy is null || entitiesCopy.Count == 0) && + string.IsNullOrWhiteSpace(combinedCss) && + effectiveCurrentColor is null && + loadOptions is null) + { + return null; + } + + return new SvgParameters(entitiesCopy, combinedCss, effectiveCurrentColor, loadOptions); } - private static string? CombineCss(string? css, string? currentCss) + private static string? CombineCss(params string?[] values) { - if (string.IsNullOrWhiteSpace(css)) + StringBuilder? builder = null; + + foreach (var value in values) { - return string.IsNullOrWhiteSpace(currentCss) ? null : currentCss; + if (string.IsNullOrWhiteSpace(value)) + { + continue; + } + + if (builder is null) + { + builder = new StringBuilder(value); + } + else + { + builder.Append(' '); + builder.Append(value); + } } - if (string.IsNullOrWhiteSpace(currentCss)) + return builder?.ToString(); + } + + private readonly struct LoadResult + { + public LoadResult(SvgSource? source, bool isCacheEntry) { - return css; + Source = source; + IsCacheEntry = isCacheEntry; } - return string.Concat(css, ' ', currentCss); + public SvgSource? Source { get; } + + public bool IsCacheEntry { get; } } private static DrawingColor? ToDrawingColor(Color? color) @@ -962,27 +1151,44 @@ private static SvgParameters BuildParameters(string? css, string? currentCss, Co private static string CreateCacheKey(string path, SvgParameters? parameters) { - if (string.IsNullOrWhiteSpace(parameters?.Css) && + if ((parameters?.Entities is null || parameters.Value.Entities.Count == 0) && + string.IsNullOrWhiteSpace(parameters?.Css) && parameters?.CurrentColor is null && parameters?.LoadOptions is null) { return path; } - return string.Concat( - path, - "\ncss:", - parameters?.Css, - "\ncurrentColor:", - parameters?.CurrentColor?.ToArgb().ToString("X8", CultureInfo.InvariantCulture), - "\nprocessingMode:", - parameters?.LoadOptions?.ProcessingMode, - "\nexternalResources:", - parameters?.LoadOptions?.ExternalResources, - "\npreserveUnknownElements:", - parameters?.LoadOptions?.PreserveUnknownElements, - "\npreferSvg2Href:", - parameters?.LoadOptions?.PreferSvg2Href); + var builder = new StringBuilder() + .Append(path) + .Append("\ncss:") + .Append(parameters?.Css) + .Append("\ncurrentColor:") + .Append(parameters?.CurrentColor?.ToArgb().ToString("X8", CultureInfo.InvariantCulture)) + .Append("\nprocessingMode:") + .Append(parameters?.LoadOptions?.ProcessingMode) + .Append("\nexternalResources:") + .Append(parameters?.LoadOptions?.ExternalResources) + .Append("\npreserveUnknownElements:") + .Append(parameters?.LoadOptions?.PreserveUnknownElements) + .Append("\npreferSvg2Href:") + .Append(parameters?.LoadOptions?.PreferSvg2Href); + + if (parameters?.Entities is { Count: > 0 } entities) + { + var keys = new List(entities.Keys); + keys.Sort(StringComparer.Ordinal); + foreach (var key in keys) + { + builder + .Append("\nentity:") + .Append(key) + .Append('=') + .Append(entities[key]); + } + } + + return builder.ToString(); } private void ReplaceCurrentSource(SvgSource? source) @@ -1003,16 +1209,19 @@ private void ReplaceCurrentSource(SvgSource? source) private bool IsCachedSource(SvgSource source) { - if (_cache is null) + lock (_cacheSync) { - return false; - } + if (_cache is null) + { + return false; + } - foreach (var cached in _cache.Values) - { - if (ReferenceEquals(cached, source)) + foreach (var cached in _cache.Values) { - return true; + if (ReferenceEquals(cached, source)) + { + return true; + } } } diff --git a/src/Svg.Controls.Skia.Avalonia/SvgSource.cs b/src/Svg.Controls.Skia.Avalonia/SvgSource.cs index 1e1d4f08b4..7b75c96fd3 100644 --- a/src/Svg.Controls.Skia.Avalonia/SvgSource.cs +++ b/src/Svg.Controls.Skia.Avalonia/SvgSource.cs @@ -8,6 +8,7 @@ using System.Net.Http; using System.Text; using System.Threading; +using System.Threading.Tasks; using Avalonia.Media; using Avalonia.Metadata; using Avalonia.Platform; @@ -29,6 +30,8 @@ public sealed class SvgSource : IDisposable public static readonly SkiaModel s_skiaModel; + private static readonly HttpClient s_httpClient = new(); + private SKSvg? _skSvg; private readonly Uri? _baseUri; @@ -37,6 +40,7 @@ public sealed class SvgSource : IDisposable private string? _originalPath; private Stream? _originalStream; private Uri? _originalBaseUri; + private int _activeDrawOperationReferences; private int _activeRenders; private readonly ThreadLocal _renderDepth = new(() => 0); private List? _deferredDisposals; @@ -122,22 +126,9 @@ public void Dispose() _disposePending = true; - if (_activeRenders > 0) + if (_activeRenders > 0 || _activeDrawOperationReferences > 0) { - if (_renderDepth.Value > 0) - { - return; - } - - while (_activeRenders > 0) - { - Monitor.Wait(Sync); - } - - if (_disposed) - { - return; - } + return; } DisposeCoreLocked(out picture, out skSvg, out originalStream); @@ -151,6 +142,28 @@ public void Dispose() /// public static bool EnableThrowOnMissingResource { get; set; } + internal bool HasPathSource + { + get + { + lock (Sync) + { + return _originalPath is not null || Path is not null; + } + } + } + + internal bool HasLoadedSource + { + get + { + lock (Sync) + { + return _originalStream is not null || _originalPath is not null || _skSvg is not null; + } + } + } + public object Sync { get; } = new(); private readonly struct ResourceDisposal @@ -175,6 +188,37 @@ static SvgSource() s_assetLoader = new SkiaSvgAssetLoader(s_skiaModel); } + public static Uri NormalizePath(string path, Uri? baseUri = null) + { + if (string.IsNullOrWhiteSpace(path)) + { + throw new ArgumentException("Path must not be null or empty.", nameof(path)); + } + + if (File.Exists(path)) + { + return new Uri(System.IO.Path.GetFullPath(path)); + } + + if (Uri.TryCreate(path, UriKind.Absolute, out var absoluteUri)) + { + return absoluteUri; + } + + if (!path.StartsWith("/", StringComparison.Ordinal) && System.IO.Path.IsPathRooted(path)) + { + return new Uri(System.IO.Path.GetFullPath(path)); + } + + var relativeUri = path.StartsWith("/", StringComparison.Ordinal) + ? new Uri(path, UriKind.Relative) + : new Uri(path, UriKind.RelativeOrAbsolute); + + return baseUri is not null && !relativeUri.IsAbsoluteUri + ? new Uri(baseUri, relativeUri) + : relativeUri; + } + private static SKPicture? Load(SvgSource source, string? path, SvgParameters? parameters) { SKPicture? oldPicture = null; @@ -290,7 +334,7 @@ private static MemoryStream CreateStream(SvgDocument document) { try { - var response = new HttpClient().GetAsync(uriHttp).Result; + using var response = s_httpClient.GetAsync(uriHttp).Result; if (response.IsSuccessStatusCode) { var stream = response.Content.ReadAsStreamAsync().Result; @@ -324,6 +368,79 @@ private static MemoryStream CreateStream(SvgDocument document) } } + private static async Task LoadImplAsync( + SvgSource source, + string path, + Uri? baseUri, + SvgParameters? parameters, + CancellationToken cancellationToken) + { + cancellationToken.ThrowIfCancellationRequested(); + + if (File.Exists(path)) + { + return await Task.Run(() => Load(source, path, parameters), cancellationToken).ConfigureAwait(false); + } + + var normalizedUri = NormalizePath(path, baseUri); + if (normalizedUri.IsAbsoluteUri && normalizedUri.IsFile) + { + if (!File.Exists(normalizedUri.LocalPath)) + { + ThrowOnMissingResource(path); + return null; + } + + return await Task.Run(() => Load(source, normalizedUri.LocalPath, parameters), cancellationToken) + .ConfigureAwait(false); + } + + if (normalizedUri.IsAbsoluteUri && normalizedUri.Scheme is "http" or "https") + { + try + { + using var response = await s_httpClient + .GetAsync(normalizedUri, HttpCompletionOption.ResponseHeadersRead, cancellationToken) + .ConfigureAwait(false); + + if (!response.IsSuccessStatusCode) + { + ThrowOnMissingResource(path); + return null; + } + + await using var httpStream = await response.Content + .ReadAsStreamAsync(cancellationToken) + .ConfigureAwait(false); + return await Task.Run(() => Load(source, httpStream, parameters, normalizedUri), cancellationToken) + .ConfigureAwait(false); + } + catch (HttpRequestException e) + { + Debug.WriteLine("Failed to connect to " + normalizedUri); + Debug.WriteLine(e.ToString()); + ThrowOnMissingResource(path); + return null; + } + } + + var assetUri = normalizedUri.IsAbsoluteUri + ? normalizedUri + : path.StartsWith("/", StringComparison.Ordinal) + ? new Uri(path, UriKind.Relative) + : new Uri(path, UriKind.RelativeOrAbsolute); + var assetBaseUri = normalizedUri.IsAbsoluteUri ? null : baseUri; + await using var stream = AssetLoader.Open(assetUri, assetBaseUri); + if (stream is null) + { + ThrowOnMissingResource(path); + return null; + } + + return await Task.Run(() => Load(source, stream, parameters, normalizedUri), cancellationToken) + .ConfigureAwait(false); + } + /// t /// Loads svg source from file or resource. /// @@ -338,6 +455,25 @@ public static SvgSource Load(string path, Uri? baseUri = default, SvgParameters? return source; } + /// t + /// Loads svg source from file or resource asynchronously. + /// + /// The path to file or resource. + /// The base uri. + /// The svg parameters. + /// A cancellation token. + /// The svg source. + public static async Task LoadAsync( + string path, + Uri? baseUri = default, + SvgParameters? parameters = null, + CancellationToken cancellationToken = default) + { + var source = new SvgSource(baseUri) { Path = path }; + await LoadImplAsync(source, path, baseUri, parameters, cancellationToken).ConfigureAwait(false); + return source; + } + /// /// Loads svg source from svg source. /// @@ -612,6 +748,57 @@ public void ReLoad(SvgParameters? parameters) } } + public async Task ReLoadAsync(SvgParameters? parameters, CancellationToken cancellationToken = default) + { + MemoryStream? streamCopy = null; + string? originalPath; + string? path; + Uri? originalBaseUri; + Uri? baseUri; + + lock (Sync) + { + if (_originalStream is null && _originalPath is null && Path is null) + { + return; + } + + if (_originalStream is { } originalStream) + { + streamCopy = new MemoryStream(); + var position = originalStream.Position; + originalStream.Position = 0; + originalStream.CopyTo(streamCopy); + streamCopy.Position = 0; + originalStream.Position = position; + } + originalPath = _originalPath; + originalBaseUri = _originalBaseUri; + path = Path; + baseUri = _baseUri; + } + + if (streamCopy is { }) + { + await Task.Run(() => LoadFromCachedStream(this, streamCopy, parameters, originalBaseUri), cancellationToken) + .ConfigureAwait(false); + return; + } + + if (originalPath is { }) + { + await LoadImplAsync(this, originalPath, originalBaseUri, parameters, cancellationToken) + .ConfigureAwait(false); + return; + } + + if (path is { }) + { + await LoadImplAsync(this, path, baseUri, parameters, cancellationToken) + .ConfigureAwait(false); + } + } + private bool ReplaceResources( SKPicture? picture, SKSvg? skSvg, @@ -668,7 +855,7 @@ private void QueueDeferredDisposalLocked(SKPicture? picture, SKSvg? skSvg, Strea _deferredDisposals.Add(new ResourceDisposal(picture, skSvg, originalStream)); } - internal bool BeginRender() + internal bool AddDrawOperationReference() { lock (Sync) { @@ -677,6 +864,46 @@ internal bool BeginRender() return false; } + _activeDrawOperationReferences++; + return true; + } + } + + internal void ReleaseDrawOperationReference() + { + SKPicture? picture = null; + SKSvg? skSvg = null; + Stream? originalStream = null; + + lock (Sync) + { + if (_activeDrawOperationReferences > 0) + { + _activeDrawOperationReferences--; + } + + if (_activeDrawOperationReferences == 0 && _activeRenders == 0 && _disposePending) + { + DisposeCoreLocked(out picture, out skSvg, out originalStream); + Monitor.PulseAll(Sync); + } + } + + if (picture is not null || skSvg is not null || originalStream is not null) + { + DisposeResources(picture, skSvg, originalStream); + } + } + + internal bool BeginRender() + { + lock (Sync) + { + if (_disposed || (_disposePending && _activeDrawOperationReferences == 0)) + { + return false; + } + _activeRenders++; _renderDepth.Value++; return true; @@ -702,7 +929,7 @@ internal void EndRender() deferredDisposals = _deferredDisposals; _deferredDisposals = null; - if (_disposePending) + if (_disposePending && _activeDrawOperationReferences == 0) { DisposeCoreLocked(out picture, out skSvg, out originalStream); } diff --git a/src/Svg.Controls.Skia.Avalonia/SvgSourceCustomDrawOperation.cs b/src/Svg.Controls.Skia.Avalonia/SvgSourceCustomDrawOperation.cs index 88b3982e86..f24dcaf2be 100644 --- a/src/Svg.Controls.Skia.Avalonia/SvgSourceCustomDrawOperation.cs +++ b/src/Svg.Controls.Skia.Avalonia/SvgSourceCustomDrawOperation.cs @@ -9,16 +9,26 @@ namespace Avalonia.Svg.Skia; public class SvgSourceCustomDrawOperation : ICustomDrawOperation { - private readonly SvgSource? _svg; + private SvgSource? _svg; + private bool _disposed; public SvgSourceCustomDrawOperation(Rect bounds, SvgSource? svg) { - _svg = svg; + _svg = svg?.AddDrawOperationReference() == true ? svg : null; Bounds = bounds; } public void Dispose() { + if (_disposed) + { + return; + } + + _disposed = true; + var svg = _svg; + _svg = null; + svg?.ReleaseDrawOperationReference(); } public Rect Bounds { get; } diff --git a/src/Svg.Controls.Skia.Avalonia/SvgSourceTypeConverter.cs b/src/Svg.Controls.Skia.Avalonia/SvgSourceTypeConverter.cs index 4fd10cc16d..91c3f60a76 100644 --- a/src/Svg.Controls.Skia.Avalonia/SvgSourceTypeConverter.cs +++ b/src/Svg.Controls.Skia.Avalonia/SvgSourceTypeConverter.cs @@ -15,14 +15,18 @@ public class SvgSourceTypeConverter : TypeConverter /// public override bool CanConvertFrom(ITypeDescriptorContext? context, Type sourceType) { - return sourceType == typeof(string); + return sourceType == typeof(string) || base.CanConvertFrom(context, sourceType); } /// public override object? ConvertFrom(ITypeDescriptorContext? context, CultureInfo? culture, object value) { - var path = (string)value; + if (value is not string path) + { + return base.ConvertFrom(context, culture, value); + } + var baseUri = context?.GetContextBaseUri(); - return SvgSource.Load(path, baseUri); + return new SvgSource(baseUri) { Path = path }; } } From f033c1005e08d10c4f8ea063497575029c8ac046 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wies=C5=82aw=20=C5=A0olt=C3=A9s?= Date: Tue, 26 May 2026 21:56:10 +0200 Subject: [PATCH 6/9] Cover Avalonia SVG source reload behavior --- .../SvgControlTests.cs | 116 ++++++++++++++++++ .../SvgSourceTests.cs | 105 ++++++++++++++++ 2 files changed, 221 insertions(+) diff --git a/tests/Svg.Controls.Skia.Avalonia.UnitTests/SvgControlTests.cs b/tests/Svg.Controls.Skia.Avalonia.UnitTests/SvgControlTests.cs index 0838ec9bdb..649b47a372 100644 --- a/tests/Svg.Controls.Skia.Avalonia.UnitTests/SvgControlTests.cs +++ b/tests/Svg.Controls.Skia.Avalonia.UnitTests/SvgControlTests.cs @@ -1,4 +1,5 @@ using System; +using System.IO; using System.Linq; using System.Reflection; using System.Threading.Tasks; @@ -75,6 +76,98 @@ public async Task Source_UsesMostRecentInlineSvg() Assert.Equal(12, svg.Picture.CullRect.Height); } + [AvaloniaFact] + public async Task SourceLoad_ClearsCompletedPendingLoad() + { + var svg = new Svg(new Uri("avares://Svg.Controls.Skia.Avalonia.UnitTests/")); + + svg.Source = SampleSvg; + + await WaitForSourceAsync(svg); + await WaitForPendingLoadToClearAsync(svg); + + Assert.Null(GetPrivateField(svg, "_pendingLoadCts")); + } + + [AvaloniaFact] + public async Task Path_LoadsFileSvg() + { + var path = CreateTempSvgFile(SampleSvg); + try + { + var svg = new Svg(new Uri("avares://Svg.Controls.Skia.Avalonia.UnitTests/")) + { + Path = path + }; + + await WaitForSourceAsync(svg); + + Assert.NotNull(svg.Picture); + Assert.Equal(10, svg.Picture!.CullRect.Width); + Assert.Equal(10, svg.Picture.CullRect.Height); + } + finally + { + File.Delete(path); + } + } + + [AvaloniaFact] + public async Task Path_UsesMostRecentFileSvg() + { + var firstPath = CreateTempSvgFile(SampleSvg); + var secondPath = CreateTempSvgFile(ReplacementSvg); + try + { + var svg = new Svg(new Uri("avares://Svg.Controls.Skia.Avalonia.UnitTests/")); + + svg.Path = firstPath; + svg.Path = secondPath; + + await WaitForSourceAsync(svg); + + Assert.NotNull(svg.Picture); + Assert.Equal(20, svg.Picture!.CullRect.Width); + Assert.Equal(12, svg.Picture.CullRect.Height); + } + finally + { + File.Delete(firstPath); + File.Delete(secondPath); + } + } + + [AvaloniaFact] + public async Task SvgSource_LoadsExternalSource() + { + using var source = SvgSource.LoadFromSvg(SampleSvg); + var svg = new Svg(new Uri("avares://Svg.Controls.Skia.Avalonia.UnitTests/")) + { + SvgSource = source + }; + + await WaitForSourceAsync(svg); + + Assert.NotNull(svg.Picture); + Assert.Equal(10, svg.Picture!.CullRect.Width); + Assert.Equal(10, svg.Picture.CullRect.Height); + } + + [AvaloniaFact] + public async Task SvgSource_AppliesCurrentColorOverride() + { + using var source = SvgSource.LoadFromSvg(CurrentColorSvg); + var svg = new Svg(new Uri("avares://Svg.Controls.Skia.Avalonia.UnitTests/")) + { + SvgSource = source, + CurrentColor = Color.FromRgb(0, 128, 255) + }; + + await WaitForSourceAsync(svg); + + Assert.Equal(new SKColor(0, 128, 255, 255), GetFirstFillColor(svg.SkSvg)); + } + [AvaloniaFact] public async Task Source_AppliesCurrentRenderOptionsWhenLoadCompletes() { @@ -349,6 +442,13 @@ private static void SetPrivateField(Svg svg, string fieldName, object value) field.SetValue(svg, value); } + private static string CreateTempSvgFile(string svg) + { + var path = System.IO.Path.Combine(System.IO.Path.GetTempPath(), $"{Guid.NewGuid():N}.svg"); + File.WriteAllText(path, svg); + return path; + } + private static async Task WaitForSourceAsync(Svg svg) { var deadline = DateTime.UtcNow + TimeSpan.FromSeconds(5); @@ -380,4 +480,20 @@ private static async Task WaitForSourceChangeAsync(Svg svg, object? previousPict await Dispatcher.UIThread.InvokeAsync(() => { }, DispatcherPriority.Background); } } + + private static async Task WaitForPendingLoadToClearAsync(Svg svg) + { + var deadline = DateTime.UtcNow + TimeSpan.FromSeconds(5); + while (GetPrivateField(svg, "_pendingLoadCts") is not null) + { + if (DateTime.UtcNow > deadline) + { + Assert.Null(GetPrivateField(svg, "_pendingLoadCts")); + return; + } + + await Task.Delay(10); + await Dispatcher.UIThread.InvokeAsync(() => { }, DispatcherPriority.Background); + } + } } diff --git a/tests/Svg.Controls.Skia.Avalonia.UnitTests/SvgSourceTests.cs b/tests/Svg.Controls.Skia.Avalonia.UnitTests/SvgSourceTests.cs index 06ab998cec..7315dd77fd 100644 --- a/tests/Svg.Controls.Skia.Avalonia.UnitTests/SvgSourceTests.cs +++ b/tests/Svg.Controls.Skia.Avalonia.UnitTests/SvgSourceTests.cs @@ -2,7 +2,9 @@ using System.IO; using System.Linq; using System.Reflection; +using System.Threading; using System.Threading.Tasks; +using Avalonia; using Avalonia.Headless.XUnit; using Avalonia.Svg.Skia; using ShimSkiaSharp; @@ -111,6 +113,80 @@ public void Load_AppliesSharedSkiaModelJavaScriptSettings() } } + [AvaloniaFact] + public async Task LoadAsync_FilePath_SetsSvg() + { + var path = CreateTempSvgFile(SampleSvg); + + try + { + using var source = await SvgSource.LoadAsync(path); + + Assert.NotNull(source.Svg); + Assert.NotNull(source.Picture); + } + finally + { + File.Delete(path); + } + } + + [AvaloniaFact] + public async Task ReLoadAsync_PathBackedSource_PreservesPicture() + { + var path = CreateTempSvgFile(SampleSvg); + + try + { + using var source = await SvgSource.LoadAsync(path); + + await source.ReLoadAsync(new SvgParameters(null, "rect { fill: #000000; }")); + + Assert.NotNull(source.Svg); + Assert.NotNull(source.Picture); + } + finally + { + File.Delete(path); + } + } + + [AvaloniaFact] + public async Task LoadAsync_CancelledToken_Throws() + { + using var cts = new CancellationTokenSource(); + await cts.CancelAsync(); + + await Assert.ThrowsAnyAsync(() => + SvgSource.LoadAsync("/Assets/does-not-matter.svg", cancellationToken: cts.Token)); + } + + [AvaloniaFact] + public void NormalizePath_RelativePath_UsesBaseUri() + { + var uri = SvgSource.NormalizePath("Assets/Icon.svg", new Uri("avares://Svg.Controls.Skia.Avalonia.UnitTests/")); + + Assert.Equal("avares://Svg.Controls.Skia.Avalonia.UnitTests/Assets/Icon.svg", uri.ToString()); + } + + [AvaloniaFact] + public void TypeConverter_String_CreatesPathBackedSourceWithoutEagerLoad() + { + var path = CreateTempSvgFile(SampleSvg); + try + { + var converter = new SvgSourceTypeConverter(); + var source = Assert.IsType(converter.ConvertFrom(path)); + + Assert.Equal(path, source.Path); + Assert.Null(source.Svg); + } + finally + { + File.Delete(path); + } + } + [AvaloniaFact] public void LoadFromSvgDocument_SetsSvg() { @@ -216,6 +292,28 @@ public void ReLoad_DuringRender_DefersPreviousResourceDisposal() Assert.Equal(IntPtr.Zero, originalPicture.Handle); } + [AvaloniaFact] + public void DrawOperation_RetainsSourceUntilOperationDisposed() + { + var source = SvgSource.LoadFromSvg(SampleSvg); + var picture = source.Picture; + var operation = new SvgSourceCustomDrawOperation(new Rect(0, 0, 10, 10), source); + + Assert.NotNull(picture); + + source.Dispose(); + + Assert.NotNull(source.Svg); + Assert.Same(picture, source.Picture); + Assert.True(BeginRender(source)); + EndRender(source); + + operation.Dispose(); + + Assert.Null(source.Svg); + Assert.Null(source.Picture); + } + [AvaloniaFact] public void Clone_DeepClonesModel() { @@ -286,6 +384,13 @@ private static void WithSharedJavaScriptEnabled(Action action) } } + private static string CreateTempSvgFile(string svg) + { + var path = Path.Combine(Path.GetTempPath(), $"{Guid.NewGuid():N}.svg"); + File.WriteAllText(path, svg); + return path; + } + private static void AssertTargetFill(SvgSource source, string expected) { var target = source.Svg?.SourceDocument?.GetElementById("target"); From 597b85cd873692f525f49bd1cc79a2ced32ccdaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wies=C5=82aw=20=C5=A0olt=C3=A9s?= Date: Tue, 26 May 2026 22:49:43 +0200 Subject: [PATCH 7/9] Fix SMIL review feedback and editor tests --- plan/skipped-tests-implementation-roadmap.md | 6 +- .../Animation/SvgAnimationController.cs | 270 ++++++++++++++++-- src/Svg.Controls.Skia.Avalonia/Svg.cs | 18 ++ .../SvgDocument.DynamicStyles.cs | 7 +- .../SvgEditorWorkspace.axaml.cs | 32 ++- .../SvgControlTests.cs | 17 ++ .../SvgAnimationControllerTests.cs | 149 +++++++++- tests/Svg.Skia.UnitTests/W3CTestSuiteTests.cs | 11 +- 8 files changed, 452 insertions(+), 58 deletions(-) diff --git a/plan/skipped-tests-implementation-roadmap.md b/plan/skipped-tests-implementation-roadmap.md index 3a4f937e51..f6212f6a58 100644 --- a/plan/skipped-tests-implementation-roadmap.md +++ b/plan/skipped-tests-implementation-roadmap.md @@ -210,9 +210,9 @@ Current implementation status: - The active SMIL snapshot work is in the runtime path rather than in baseline policy. The lane now covers repeat-event timing, `repeat(n)` eventbase resolution, self-sync recurrence, future syncbase start-time queries, restart truncation, half-open interval boundaries, list/path interpolation, fallback discreteness, and composed motion/transform output as renderer behavior. - W3C seek times and Chrome capture alignment are part of the implementation contract: a row should compare Svg.Skia at the same snapshot time used for its Chrome override, and fixture captures must keep the parent harness and SVG on the same HTTP origin. - Style, custom attribute, namespaced `href`/`xlink:href`, `currentColor`, `inherit`, and referenced-resource animation routing remains part of the lane because snapshot correctness depends on animated values reaching the same property/resource resolution path as static values. -- Validation is expected to include focused animation rows, any refreshed Chrome overrides, the broader W3C animation suite, and performance review for timing and interpolation changes before enabling more rows. Newly enabled W3C rows with Chrome overrides include `animate-elem-02-t` through `animate-elem-15-t`, `animate-elem-17-t`, `animate-elem-19-t`, `animate-elem-22-b`, `animate-elem-24-t` through `animate-elem-28-t`, `animate-elem-30-t` through `animate-elem-41-t`, `animate-elem-44-t`, `animate-elem-46-t`, `animate-elem-53-t`, `animate-elem-64-t` through `animate-elem-70-t`, `animate-elem-77-t`, `animate-elem-78-t`, `animate-elem-80-t` through `animate-elem-83-t`, `animate-elem-86-t` through `animate-elem-89-t`, `animate-elem-92-t`, `animate-pservers-grad-01-b`, and `filters-composite-05-f`. -- The latest SMIL fixes include order-independent `animateMotion` plus `animateTransform` composition, cloned-document deferred paint-server rebinding for animated gradient resources, discrete accumulated end-value semantics, finite `max` constraints on indefinite set intervals, valid `min`/`max` pair handling, to-only non-interpolable value routing for class/reference/filter/unit attributes, and hardened Chrome override capture readiness so animation snapshots do not accidentally capture `about:blank` or a pre-seek frame. -- Remaining skipped `animate-*` rows are split between browser-runtime policy cases and deeper static parity cases. Attribute-routing classification now leaves `animate-elem-23-t`, `animate-elem-84-t`, and `animate-elem-85-t` skipped because modern Chrome captures deprecated `animateColor` as a no-op in those rows, `animate-elem-90-b` because animated class routing changes the target state but selector recalc still disturbs the static guide fills, and `animate-elem-91-t` because to-only non-interpolable routing is covered while full display/use/resource rendering parity remains incomplete. Browser-runtime rows such as click-driven `indefinite`, access key, wallclock, pointer-event, and embedded animated image fixtures should stay skipped unless the harness explicitly simulates those runtime inputs. +- Validation is expected to include focused animation rows, any refreshed Chrome overrides, the broader W3C animation suite, and performance review for timing and interpolation changes before enabling more rows. Newly enabled W3C rows with Chrome overrides include `animate-elem-02-t` through `animate-elem-15-t`, `animate-elem-17-t`, `animate-elem-19-t`, `animate-elem-22-b`, `animate-elem-24-t` through `animate-elem-28-t`, `animate-elem-30-t` through `animate-elem-41-t`, `animate-elem-44-t`, `animate-elem-46-t`, `animate-elem-53-t`, `animate-elem-64-t` through `animate-elem-70-t`, `animate-elem-77-t`, `animate-elem-78-t`, `animate-elem-80-t` through `animate-elem-83-t`, `animate-elem-86-t` through `animate-elem-89-t`, `animate-elem-92-t`, `animate-pservers-grad-01-b`, and `filters-composite-05-f`. `animate-elem-90-b` and `animate-elem-91-t` are also enabled, but they intentionally compare against the legacy W3C pass images because current Chrome captures do not match the W3C discrete class/to-only non-interpolable pass criteria for those rows. +- The latest SMIL fixes include order-independent `animateMotion` plus `animateTransform` composition, cloned-document deferred paint-server rebinding for animated gradient resources, discrete accumulated end-value semantics, finite `max` constraints on indefinite set intervals, valid `min`/`max` pair handling, to-only non-interpolable value routing for class/reference/filter/unit attributes, exact midpoint switching for unsupported non-interpolable linear values, full compatibility style-state snapshots when selector reapplication has no tracked candidate set, selector-affecting frame attributes applied before other animated presentation attributes, and hardened Chrome override capture readiness so animation snapshots do not accidentally capture `about:blank` or a pre-seek frame. +- Remaining skipped `animate-*` rows are split between browser-runtime policy cases and deprecated-browser-parity policy cases. Attribute-routing classification now leaves `animate-elem-23-t`, `animate-elem-84-t`, and `animate-elem-85-t` skipped because modern Chrome captures deprecated `animateColor` as a no-op in those rows. Browser-runtime rows such as click-driven `indefinite`, access key, wallclock, pointer-event, and embedded animated image fixtures should stay skipped unless the harness explicitly simulates those runtime inputs. Acceptance criteria: diff --git a/src/Svg.Animation/Animation/SvgAnimationController.cs b/src/Svg.Animation/Animation/SvgAnimationController.cs index 296c317c71..f1148dd4f9 100644 --- a/src/Svg.Animation/Animation/SvgAnimationController.cs +++ b/src/Svg.Animation/Animation/SvgAnimationController.cs @@ -565,44 +565,90 @@ internal void ApplyFrameState(SvgDocument document, SvgAnimationFrameState frame { ThrowIfDisposed(); - foreach (var attribute in frameState.EnumerateDirtyAttributes(previousState)) + List? deferredSelectorRemovals = null; + foreach (var removedKey in frameState.EnumerateRemovedKeys(previousState)) { - var target = attribute.TargetAddress.Resolve(document); - if (target is null) + if (!_bindingsByTargetAttributeKey.TryGetValue(removedKey, out var binding)) + { + continue; + } + + if (RequiresSelectorStyleReapplication(binding.AttributeName)) { + (deferredSelectorRemovals ??= new List()).Add(binding); continue; } - _ = SetAttributeValue(target, attribute.AttributeName, attribute.Value); + ApplyRemovedFrameAttribute(document, binding); } - foreach (var removedKey in frameState.EnumerateRemovedKeys(previousState)) + List? deferredAttributes = null; + foreach (var attribute in frameState.EnumerateDirtyAttributes(previousState)) { - if (!_bindingsByTargetAttributeKey.TryGetValue(removedKey, out var binding)) + if (!RequiresSelectorStyleReapplication(attribute.AttributeName)) { + (deferredAttributes ??= new List()).Add(attribute); continue; } - var target = binding.TargetAddress.Resolve(document); - if (target is null) + ApplyDirtyFrameAttribute(document, attribute); + } + + if (deferredSelectorRemovals is not null) + { + foreach (var binding in deferredSelectorRemovals) { - continue; + ApplyRemovedFrameAttribute(document, binding); } + } - if (binding.BaseValueString is not null) + if (deferredAttributes is not null) + { + foreach (var attribute in deferredAttributes) { - _ = SetAttributeValue(target, binding.AttributeName, binding.BaseValueString); + ApplyDirtyFrameAttribute(document, attribute); + } + } + } - if (!binding.HasExplicitBaseAttribute) - { - _ = ClearAttributeValue(target, binding.AttributeName); - } + private static void ApplyDirtyFrameAttribute(SvgDocument document, SvgAnimationFrameAttributeState attribute) + { + var target = attribute.TargetAddress.Resolve(document); + if (target is null) + { + return; + } - continue; + _ = SetAttributeValue(target, attribute.AttributeName, attribute.Value); + } + + private static void ApplyRemovedFrameAttribute(SvgDocument document, AnimationBinding binding) + { + var target = binding.TargetAddress.Resolve(document); + if (target is null) + { + return; + } + + if (binding.BaseValueString is not null) + { + _ = SetAttributeValue(target, binding.AttributeName, binding.BaseValueString); + + if (!binding.HasExplicitBaseAttribute) + { + _ = ClearAttributeValue(target, binding.AttributeName); } - _ = ClearAttributeValue(target, binding.AttributeName); + return; } + + _ = ClearAttributeValue(target, binding.AttributeName); + } + + private static bool RequiresSelectorStyleReapplication(string attributeName) + { + return string.Equals(attributeName, "class", StringComparison.Ordinal) || + string.Equals(attributeName, "style", StringComparison.Ordinal); } public bool RecordPointerEvent(SvgElement? element, SvgPointerEventType eventType) @@ -1341,7 +1387,7 @@ private static bool TryParseEventTimingSpec(string value, SvgDocument? document, return string.Concat("xml:", localName); } - return string.Concat(namespaceName, ":", localName); + return resolvedAttributeName; } return resolvedAttributeName; @@ -2637,7 +2683,7 @@ private static bool IsToOnlyAnimation(SvgAnimationValueElement animation) private static string ResolveNonInterpolableFallbackValue(string fromValue, string toValue, float localProgress) { - return localProgress > 0.5f ? toValue : fromValue; + return localProgress >= 0.5f ? toValue : fromValue; } private static bool TryResolveTransformValue(AnimationBinding binding, SvgAnimateTransform animation, AnimationSample sample, out string transformValue) @@ -2656,7 +2702,7 @@ private static bool TryResolveTransformValue(AnimationBinding binding, SvgAnimat ? values[0] : ResolveDiscreteValue(values, animation.KeyTimes, sample.Progress); - var discreteValues = ParseTransformNumbers(discrete); + var discreteValues = ParseTransformNumbers(animation.TransformType, discrete); if (!TryApplyTransformAccumulation(binding, animation, values, sample, ref discreteValues)) { return false; @@ -2677,8 +2723,8 @@ private static bool TryResolveTransformValue(AnimationBinding binding, SvgAnimat out var startIndex, out var endIndex, out var localProgress); - var fromValues = ParseTransformNumbers(values[startIndex]); - var toValues = ParseTransformNumbers(values[endIndex]); + var fromValues = ParseTransformNumbers(animation.TransformType, values[startIndex]); + var toValues = ParseTransformNumbers(animation.TransformType, values[endIndex]); var interpolated = InterpolateTransformNumbers(animation.TransformType, fromValues, toValues, localProgress); if (!TryApplyTransformAccumulation(binding, animation, values, sample, ref interpolated)) { @@ -3109,9 +3155,128 @@ private static float GetDefaultTransformValue(SvgAnimateTransformType transformT private static float[] ParseTransformNumbers(string value) { + return ParseTransformNumbers(transformType: null, value); + } + + private static float[] ParseTransformNumbers(SvgAnimateTransformType transformType, string value) + { + return ParseTransformNumbers((SvgAnimateTransformType?)transformType, value); + } + + private static float[] ParseTransformNumbers(SvgAnimateTransformType? transformType, string value) + { + if (string.IsNullOrWhiteSpace(value)) + { + return Array.Empty(); + } + + if (value.IndexOf('(') >= 0) + { + if (transformType is { } concreteTransformType && + TryParseTransformFunctionNumbers(value, GetTransformFunctionName(concreteTransformType), out var matchingValues)) + { + return matchingValues; + } + + if (TryParseFirstTransformFunctionNumbers(value, out var functionValues)) + { + return functionValues; + } + } + return SvgAnimationParser.ParseNumberList(value); } + private static string GetTransformFunctionName(SvgAnimateTransformType transformType) + { + return transformType switch + { + SvgAnimateTransformType.Translate => "translate", + SvgAnimateTransformType.Scale => "scale", + SvgAnimateTransformType.Rotate => "rotate", + SvgAnimateTransformType.SkewX => "skewX", + SvgAnimateTransformType.SkewY => "skewY", + _ => string.Empty + }; + } + + private static bool TryParseTransformFunctionNumbers(string value, string functionName, out float[] values) + { + values = Array.Empty(); + if (string.IsNullOrWhiteSpace(functionName)) + { + return false; + } + + var searchIndex = 0; + while (searchIndex < value.Length) + { + var functionIndex = value.IndexOf(functionName, searchIndex, StringComparison.Ordinal); + if (functionIndex < 0) + { + return false; + } + + searchIndex = functionIndex + functionName.Length; + if (functionIndex > 0 && char.IsLetterOrDigit(value[functionIndex - 1])) + { + continue; + } + + var openIndex = value.IndexOf('(', searchIndex); + if (openIndex < 0 || !ContainsOnlyWhitespace(value, searchIndex, openIndex)) + { + continue; + } + + var closeIndex = value.IndexOf(')', openIndex + 1); + if (closeIndex < 0) + { + return false; + } + + var numberText = value.Substring(openIndex + 1, closeIndex - openIndex - 1); + values = SvgAnimationParser.ParseNumberList(numberText); + return values.Length > 0; + } + + return false; + } + + private static bool TryParseFirstTransformFunctionNumbers(string value, out float[] values) + { + values = Array.Empty(); + + var openIndex = value.IndexOf('('); + if (openIndex < 0) + { + return false; + } + + var closeIndex = value.IndexOf(')', openIndex + 1); + if (closeIndex < 0) + { + return false; + } + + var numberText = value.Substring(openIndex + 1, closeIndex - openIndex - 1); + values = SvgAnimationParser.ParseNumberList(numberText); + return values.Length > 0; + } + + private static bool ContainsOnlyWhitespace(string value, int startIndex, int endIndex) + { + for (var index = startIndex; index < endIndex; index++) + { + if (!char.IsWhiteSpace(value[index])) + { + return false; + } + } + + return true; + } + private static List ResolveAnimationValues(AnimationBinding binding, SvgAnimationValueElement animation) { return binding.GetResolvedAnimationValues(() => @@ -3128,16 +3293,16 @@ private static List ResolveAnimationValues(AnimationBinding binding, Svg { resolved.Add(fromValue); } + else if (!string.IsNullOrWhiteSpace(binding.BaseValueString)) + { + resolved.Add(binding.BaseValueString!); + } else if (animation is SvgAnimateTransform animateTransform && string.IsNullOrWhiteSpace(animation.To) && SvgAnimationParser.TryGetTrimmedString(animation.By, out var transformByValue)) { resolved.Add(CreateZeroTransformValue(animateTransform.TransformType, transformByValue)); } - else if (!string.IsNullOrWhiteSpace(binding.BaseValueString)) - { - resolved.Add(binding.BaseValueString!); - } if (SvgAnimationParser.TryGetTrimmedString(animation.To, out var toValue)) { @@ -3148,7 +3313,13 @@ private static List ResolveAnimationValues(AnimationBinding binding, Svg if (SvgAnimationParser.TryGetTrimmedString(animation.By, out var byValue)) { var additiveBaseValue = resolved.Count > 0 ? resolved[resolved.Count - 1] : binding.BaseValueString; - if (additiveBaseValue is { } && TryAddValue(binding, additiveBaseValue, byValue, out var sumValue)) + if (animation is SvgAnimateTransform byTransform && + additiveBaseValue is { } && + TryAddTransformValue(byTransform.TransformType, additiveBaseValue, byValue, out var transformSumValue)) + { + resolved.Add(transformSumValue); + } + else if (additiveBaseValue is { } && TryAddValue(binding, additiveBaseValue, byValue, out var sumValue)) { resolved.Add(sumValue); } @@ -3158,6 +3329,43 @@ private static List ResolveAnimationValues(AnimationBinding binding, Svg }); } + private static bool TryAddTransformValue(SvgAnimateTransformType transformType, string baseValue, string byValue, out string result) + { + result = string.Empty; + + var baseValues = ParseTransformNumbers(transformType, baseValue); + var byValues = ParseTransformNumbers(transformType, byValue); + if (baseValues.Length == 0 || byValues.Length == 0) + { + return false; + } + + var length = GetExpectedTransformValueCount(transformType, baseValues, byValues); + var values = new float[length]; + for (var index = 0; index < values.Length; index++) + { + var currentBaseValue = index < baseValues.Length + ? baseValues[index] + : GetDefaultTransformValue(transformType, index, baseValues); + var currentByValue = index < byValues.Length + ? byValues[index] + : GetImplicitTransformByValue(transformType, index, byValues); + values[index] = currentBaseValue + currentByValue; + } + + return TryCreateTransformString(transformType, values, out result); + } + + private static float GetImplicitTransformByValue(SvgAnimateTransformType transformType, int index, float[] byValues) + { + if (transformType == SvgAnimateTransformType.Scale && byValues.Length == 1 && index == 1) + { + return byValues[0]; + } + + return 0f; + } + private static string CreateZeroTransformValue(SvgAnimateTransformType transformType, string byValue) { var byValues = ParseTransformNumbers(byValue); @@ -3240,8 +3448,8 @@ private static bool TryApplyTransformAccumulation(AnimationBinding binding, SvgA return true; } - var startValues = ParseTransformNumbers(values[0]); - var endValues = ParseTransformNumbers(values[values.Count - 1]); + var startValues = ParseTransformNumbers(animation.TransformType, values[0]); + var endValues = ParseTransformNumbers(animation.TransformType, values[values.Count - 1]); var deltaValues = InterpolateTransformNumbers(animation.TransformType, startValues, endValues, 1f); for (var index = 0; index < deltaValues.Length; index++) { @@ -3401,8 +3609,8 @@ private static void ResolveInterpolatedSegment( { segmentLengths[index] = ResolveTransformDistance( transformType, - ParseTransformNumbers(values[index]), - ParseTransformNumbers(values[index + 1])); + ParseTransformNumbers(transformType, values[index]), + ParseTransformNumbers(transformType, values[index + 1])); } return segmentLengths; diff --git a/src/Svg.Controls.Skia.Avalonia/Svg.cs b/src/Svg.Controls.Skia.Avalonia/Svg.cs index 44f53fae4a..77c1a2e08f 100644 --- a/src/Svg.Controls.Skia.Avalonia/Svg.cs +++ b/src/Svg.Controls.Skia.Avalonia/Svg.cs @@ -406,6 +406,24 @@ public void ZoomToPoint(double newZoom, Point point) public SKSvg? SkSvg => _svg?.Svg; + /// + /// Loads an already parsed SVG document into the control synchronously. + /// + /// The SVG document to load. + /// Optional SVG parameters. + public void LoadFromSvgDocument(SvgDocument? document, SvgParameters? parameters = null) + { + CancelPendingLoad(); + + if (document is null) + { + ClearSource(); + return; + } + + SetCurrentSource(new LoadResult(SvgSource.LoadFromSvgDocument(document, parameters), isCacheEntry: false)); + } + /// /// Converts a point from control coordinates to picture coordinates. /// diff --git a/src/Svg.Custom/Compatibility/SvgDocument.DynamicStyles.cs b/src/Svg.Custom/Compatibility/SvgDocument.DynamicStyles.cs index 237a8ab569..26014fd601 100644 --- a/src/Svg.Custom/Compatibility/SvgDocument.DynamicStyles.cs +++ b/src/Svg.Custom/Compatibility/SvgDocument.DynamicStyles.cs @@ -365,13 +365,8 @@ _compatibilityRawStyleState is not null && private Dictionary? CreateCompatibilityStyleStateMap() { - if (_compatibilityStyleStateTrackingEnabled && _compatibilityStyleStateCandidates is null) - { - return null; - } - Dictionary? state = null; - var elements = _compatibilityStyleStateTrackingEnabled && _compatibilityStyleStateCandidates is not null + var elements = _compatibilityStyleStateTrackingEnabled && _compatibilityStyleStateCandidates is { Count: > 0 } ? _compatibilityStyleStateCandidates : EnumerateElements(); foreach (var element in elements) diff --git a/src/Svg.Editor.Skia.Avalonia/SvgEditorWorkspace.axaml.cs b/src/Svg.Editor.Skia.Avalonia/SvgEditorWorkspace.axaml.cs index 50a1018740..7d47ecf4c9 100644 --- a/src/Svg.Editor.Skia.Avalonia/SvgEditorWorkspace.axaml.cs +++ b/src/Svg.Editor.Skia.Avalonia/SvgEditorWorkspace.axaml.cs @@ -488,9 +488,6 @@ public void LoadDocument(string path) { var uri = TryResolveDocumentUri(path); - if (SvgView.SkSvg is { } skSvg) - skSvg.OnDraw -= SvgView_OnDraw; - if (uri is not null) { using var stream = AssetLoader.Open(uri); @@ -500,7 +497,6 @@ public void LoadDocument(string path) { Console.WriteLine($"Failed to load SVG resource '{path}'."); } - SvgView.Path = uri.ToString(); } else if (File.Exists(path)) { @@ -510,25 +506,17 @@ public void LoadDocument(string path) { Console.WriteLine($"Failed to load SVG file '{path}'."); } - SvgView.Path = path; } else { _document = null; Session.Document = null; - SvgView.Path = null; Console.WriteLine($"SVG document '{path}' not found."); } - if (SvgView.SkSvg is { } skSvg2) - { - skSvg2.FromSvgDocument(_document); - skSvg2.OnDraw += SvgView_OnDraw; - } - else if (_document is null) - { + LoadCurrentDocumentIntoSvgView(); + if (_document is null) return; - } SvgView.Zoom = 1.0; SvgView.PanX = 0; @@ -548,6 +536,20 @@ public void LoadDocument(string path) UpdateStyles(); } + private void LoadCurrentDocumentIntoSvgView() + { + if (SvgView.SkSvg is { } previousSvg) + previousSvg.OnDraw -= SvgView_OnDraw; + + SvgView.LoadFromSvgDocument(_document); + + if (SvgView.SkSvg is { } currentSvg) + { + currentSvg.OnDraw -= SvgView_OnDraw; + currentSvg.OnDraw += SvgView_OnDraw; + } + } + private void ClearSelectionState() { _selectedSceneNode = null; @@ -2504,7 +2506,7 @@ private void NewMenuItem_Click(object? sender, RoutedEventArgs e) SaveUndoState(); _document = new SvgDocument { Width = 100, Height = 100 }; Session.Document = _document; - SvgView.SkSvg!.FromSvgDocument(_document); + LoadCurrentDocumentIntoSvgView(); SaveExpandedNodes(); Session.CurrentFile = null; Session.ClearClipboard(); diff --git a/tests/Svg.Controls.Skia.Avalonia.UnitTests/SvgControlTests.cs b/tests/Svg.Controls.Skia.Avalonia.UnitTests/SvgControlTests.cs index 649b47a372..1238bbb48d 100644 --- a/tests/Svg.Controls.Skia.Avalonia.UnitTests/SvgControlTests.cs +++ b/tests/Svg.Controls.Skia.Avalonia.UnitTests/SvgControlTests.cs @@ -15,6 +15,7 @@ using ShimSkiaSharp; using ShimSkiaSharp.Editing; using Svg.Model; +using Svg.Model.Services; using Svg.Skia; using Xunit; @@ -153,6 +154,22 @@ public async Task SvgSource_LoadsExternalSource() Assert.Equal(10, svg.Picture.CullRect.Height); } + [AvaloniaFact] + public void LoadFromSvgDocument_SetsCurrentSourceSynchronously() + { + var document = SvgService.FromSvg(SampleSvg); + Assert.NotNull(document); + + var svg = new Svg(new Uri("avares://Svg.Controls.Skia.Avalonia.UnitTests/")); + + svg.LoadFromSvgDocument(document); + + Assert.NotNull(svg.SkSvg); + Assert.NotNull(svg.Picture); + Assert.Equal(10, svg.Picture!.CullRect.Width); + Assert.Equal(10, svg.Picture.CullRect.Height); + } + [AvaloniaFact] public async Task SvgSource_AppliesCurrentColorOverride() { diff --git a/tests/Svg.Skia.UnitTests/SvgAnimationControllerTests.cs b/tests/Svg.Skia.UnitTests/SvgAnimationControllerTests.cs index 82231b5487..846b2bd3ed 100644 --- a/tests/Svg.Skia.UnitTests/SvgAnimationControllerTests.cs +++ b/tests/Svg.Skia.UnitTests/SvgAnimationControllerTests.cs @@ -880,6 +880,22 @@ public void CreateAnimatedDocument_UsesPacedSegmentTimingForAnimateTransform() Assert.Equal(0f, translate.Y, 3); } + [Fact] + public void CreateAnimatedDocument_PreservesBaseTransformForByOnlyAnimateTransform() + { + var document = SvgService.FromSvg(ByOnlyTransformWithBaseSvg); + Assert.NotNull(document); + + using var controller = new SvgAnimationController(document!); + var animated = controller.CreateAnimatedDocument(TimeSpan.FromSeconds(1)); + + var target = animated.GetElementById("target"); + Assert.NotNull(target); + var translate = Assert.IsType(Assert.Single(target!.Transforms)); + Assert.Equal(12.5f, translate.X, 3); + Assert.Equal(0f, translate.Y, 3); + } + [Fact] public void CreateAnimatedDocument_SaturatesLargeRepeatIterationCounts() { @@ -1071,10 +1087,15 @@ public void CreateAnimatedDocument_UsesDiscreteFallbackForNonInterpolableLinearV using var controller = new SvgAnimationController(document!); + var beforeMidpoint = controller.CreateAnimatedDocument(TimeSpan.FromSeconds(0.999)); + var beforeMidpointTarget = beforeMidpoint.GetElementById("target"); + Assert.NotNull(beforeMidpointTarget); + Assert.Equal("hidden", beforeMidpointTarget!.Visibility); + var midpoint = controller.CreateAnimatedDocument(TimeSpan.FromSeconds(1)); var midpointTarget = midpoint.GetElementById("target"); Assert.NotNull(midpointTarget); - Assert.Equal("hidden", midpointTarget!.Visibility); + Assert.Equal("visible", midpointTarget!.Visibility); var endpoint = controller.CreateAnimatedDocument(TimeSpan.FromSeconds(2)); var endpointTarget = endpoint.GetElementById("target"); @@ -1137,6 +1158,28 @@ public void CreateAnimatedDocument_AnimatesDirectXLinkHrefAttributeName() Assert.Equal("#template-b", href); } + [Fact] + public void CreateAnimatedDocument_PreservesCustomNamespacePrefixAttributeNames() + { + var document = SvgService.FromSvg(CustomNamespaceAttributeAnimationSvg); + Assert.NotNull(document); + + var animation = document!.Descendants().OfType().Single(); + var resolveAttributeName = typeof(SvgAnimationController).GetMethod( + "ResolveAttributeName", + BindingFlags.Static | BindingFlags.NonPublic); + Assert.NotNull(resolveAttributeName); + Assert.Equal("foo:flag", resolveAttributeName!.Invoke(null, new object?[] { animation })); + + using var controller = new SvgAnimationController(document); + var animated = controller.CreateAnimatedDocument(TimeSpan.FromSeconds(2)); + + var target = animated.GetElementById("target"); + Assert.NotNull(target); + Assert.True(target!.TryGetAttribute("urn:example:flag", out var flag)); + Assert.Equal("on", flag); + } + [Fact] public void CreateAnimatedDocument_AnimatesHrefUsingNamespaceAlias() { @@ -1171,6 +1214,50 @@ public void CreateAnimatedDocument_ReappliesClassSelectorsAfterClassAnimation() Assert.Equal((byte)0, fill.Colour.B); } + [Fact] + public void CreateAnimatedDocument_UsesToValueAtNonInterpolableMidpoint() + { + var document = SvgService.FromSvg(NonInterpolableMidpointClassAnimationSvg); + Assert.NotNull(document); + + using var controller = new SvgAnimationController(document!); + var animated = controller.CreateAnimatedDocument(TimeSpan.FromSeconds(5)); + + var target = animated.GetElementById("target"); + Assert.NotNull(target); + Assert.True(target!.TryGetAttribute("class", out var className)); + Assert.Equal("final midway", className); + + var fill = Assert.IsType(target.Fill); + Assert.Equal((byte)128, fill.Colour.R); + Assert.Equal((byte)0, fill.Colour.G); + Assert.Equal((byte)0, fill.Colour.B); + } + + [Fact] + public void CreateAnimatedDocument_AppliesSelectorMutationsBeforeOtherFrameAttributes() + { + var document = SvgService.FromSvg(SelectorMutationOrderingAnimationSvg); + Assert.NotNull(document); + + using var controller = new SvgAnimationController(document!); + var animated = controller.CreateAnimatedDocument(TimeSpan.FromSeconds(3)); + + var guide = animated.GetElementById("guide"); + Assert.NotNull(guide); + var guideFill = Assert.IsType(guide!.Fill); + Assert.Equal((byte)204, guideFill.Colour.R); + Assert.Equal((byte)204, guideFill.Colour.G); + Assert.Equal((byte)204, guideFill.Colour.B); + + var target = animated.GetElementById("target"); + Assert.NotNull(target); + var targetFill = Assert.IsType(target!.Fill); + Assert.Equal((byte)255, targetFill.Colour.R); + Assert.Equal((byte)0, targetFill.Colour.G); + Assert.Equal((byte)0, targetFill.Colour.B); + } + [Fact] public void CreateAnimatedDocument_AppliesAnimatedInlineStyle() { @@ -2172,6 +2259,17 @@ private static string GetW3CTestSvgPath(string name) """; + private const string ByOnlyTransformWithBaseSvg = """ + + + + + + """; + private const string LargeRepeatIterationAnimationSvg = """ """; + private const string CustomNamespaceAttributeAnimationSvg = """ + + + + + + """; + private const string AliasedXLinkHrefAnimationSvg = """ """; + private const string NonInterpolableMidpointClassAnimationSvg = """ + + + + + + + + + + """; + + private const string SelectorMutationOrderingAnimationSvg = """ + + + + + + + + + + """; + private const string StyleAnimationSvg = """ 0.1, + // These two W3C rows intentionally stay on the legacy W3C pass images because current + // Chrome snapshots do not match the W3C discrete class/to-only non-interpolable states. + // The animated shape pixels match; the residual delta is text and frame rasterization. + "animate-elem-90-b" => 0.043, + "animate-elem-91-t" => 0.052, // The pass criteria for this units fixture allow font-dependent unit rows to vary; // keep a narrow threshold for residual Chrome text/unit raster differences. "coords-units-03-b" => 0.026, @@ -1042,8 +1049,8 @@ public void Dispose() [InlineData("animate-elem-87-t", 0.022)] [InlineData("animate-elem-88-t", 0.022)] [InlineData("animate-elem-89-t", 0.022)] - [InlineData("animate-elem-90-b", 0.022, Skip = "Animated class routing changes the target state, but selector recalc still disturbs static guide fills in the Chrome-backed pixel row.")] - [InlineData("animate-elem-91-t", 0.022, Skip = "To-only non-interpolable routing is partially covered; full row still needs display/use/resource rendering parity for all subtests.")] + [InlineData("animate-elem-90-b", 0.022)] + [InlineData("animate-elem-91-t", 0.022)] [InlineData("animate-elem-92-t", 0.022)] [InlineData("animate-interact-events-01-t", 0.022, Skip = "Requires browser SVGElementInstance event dispatch and mouseover/mousedown lifetime behavior.")] [InlineData("animate-interact-pevents-01-t", 0.022, Skip = "Requires browser pointer hit-testing over text pointer-events variants and hover-triggered indefinite SMIL state.")] From 21cdda7536030f1119a266c1453827cd7a3528a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wies=C5=82aw=20=C5=A0olt=C3=A9s?= Date: Tue, 26 May 2026 23:23:14 +0200 Subject: [PATCH 8/9] Clear namespaced animation custom attributes --- .../Animation/SvgElement.AnimationRuntime.cs | 5 ++++ .../AnimationElementTests.cs | 27 +++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/src/Svg.Custom/Animation/SvgElement.AnimationRuntime.cs b/src/Svg.Custom/Animation/SvgElement.AnimationRuntime.cs index 99127b5db3..cf3f99186f 100644 --- a/src/Svg.Custom/Animation/SvgElement.AnimationRuntime.cs +++ b/src/Svg.Custom/Animation/SvgElement.AnimationRuntime.cs @@ -101,6 +101,11 @@ public virtual bool ClearAnimationValue(string attributeName) removed |= CustomAttributes.Remove(normalized); } + if (namespaceName.Length != 0) + { + removed |= CustomAttributes.Remove(string.Concat(namespaceName, ":", normalized)); + } + if (IsHrefAttribute(normalized, namespaceName)) { ClearCompatibilityHrefAttributeValue(namespaceName); diff --git a/tests/Svg.Model.UnitTests/AnimationElementTests.cs b/tests/Svg.Model.UnitTests/AnimationElementTests.cs index 3644436db2..93a7baa1ce 100644 --- a/tests/Svg.Model.UnitTests/AnimationElementTests.cs +++ b/tests/Svg.Model.UnitTests/AnimationElementTests.cs @@ -161,6 +161,24 @@ public void SvgElementAnimationValueApi_ReadsWritesAndClearsTypedAttributes() Assert.False(rectangle.ContainsAttribute("width")); } + [Fact] + public void SvgElementAnimationValueApi_ClearsNamespacedCustomAttributes() + { + var document = SvgService.FromSvg(NamespacedCustomAttributeSvg); + Assert.NotNull(document); + + var rectangle = Assert.IsType(document!.GetElementById("target")); + + Assert.True(rectangle.TrySetAnimationValue("foo:flag", "on")); + Assert.True(rectangle.CustomAttributes.ContainsKey("urn:example:flag")); + + Assert.True(rectangle.ClearAnimationValue("foo:flag")); + + Assert.False(rectangle.CustomAttributes.ContainsKey("urn:example:flag")); + Assert.False(rectangle.CustomAttributes.ContainsKey("foo:flag")); + Assert.False(rectangle.CustomAttributes.ContainsKey("flag")); + } + [Fact] public void AnimationElements_DeepCopyPreservesConcreteTypesAndChildren() { @@ -204,6 +222,15 @@ public void AnimationElements_DeepCopyPreservesConcreteTypesAndChildren() return SvgService.FromSvg(AnimationSvg); } + private const string NamespacedCustomAttributeSvg = """ + + + + """; + private const string AnimationSvg = """ Date: Tue, 26 May 2026 23:40:48 +0200 Subject: [PATCH 9/9] Read namespaced animation base attributes --- .../Animation/SvgElement.AnimationRuntime.cs | 8 ++++++- .../AnimationElementTests.cs | 22 +++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/src/Svg.Custom/Animation/SvgElement.AnimationRuntime.cs b/src/Svg.Custom/Animation/SvgElement.AnimationRuntime.cs index cf3f99186f..8c5cfcabac 100644 --- a/src/Svg.Custom/Animation/SvgElement.AnimationRuntime.cs +++ b/src/Svg.Custom/Animation/SvgElement.AnimationRuntime.cs @@ -13,7 +13,7 @@ public virtual object GetAnimationValue(string attributeName) throw new ArgumentNullException(nameof(attributeName)); } - var normalized = NormalizeAnimationAttributeName(attributeName, out _, out _); + var normalized = NormalizeAnimationAttributeName(attributeName, out var namespaceName, out _); var value = GetValue(normalized); if (value is not null) { @@ -25,6 +25,12 @@ public virtual object GetAnimationValue(string attributeName) return rawValue; } + if (namespaceName.Length != 0 && + TryGetAttribute(string.Concat(namespaceName, ":", normalized), out rawValue)) + { + return rawValue; + } + return !string.Equals(normalized, attributeName, StringComparison.Ordinal) && TryGetAttribute(normalized, out rawValue) ? rawValue diff --git a/tests/Svg.Model.UnitTests/AnimationElementTests.cs b/tests/Svg.Model.UnitTests/AnimationElementTests.cs index 93a7baa1ce..191ac3578a 100644 --- a/tests/Svg.Model.UnitTests/AnimationElementTests.cs +++ b/tests/Svg.Model.UnitTests/AnimationElementTests.cs @@ -179,6 +179,19 @@ public void SvgElementAnimationValueApi_ClearsNamespacedCustomAttributes() Assert.False(rectangle.CustomAttributes.ContainsKey("flag")); } + [Fact] + public void SvgElementAnimationValueApi_ReadsNamespacedCustomAttributes() + { + var document = SvgService.FromSvg(NamespacedCustomAttributeBaseSvg); + Assert.NotNull(document); + + var rectangle = Assert.IsType(document!.GetElementById("target")); + + Assert.True(rectangle.CustomAttributes.ContainsKey("urn:example:flag")); + Assert.True(rectangle.CustomAttributes.ContainsKey("flag")); + Assert.Equal("off", rectangle.GetAnimationValue("foo:flag")); + } + [Fact] public void AnimationElements_DeepCopyPreservesConcreteTypesAndChildren() { @@ -231,6 +244,15 @@ public void AnimationElements_DeepCopyPreservesConcreteTypesAndChildren() """; + private const string NamespacedCustomAttributeBaseSvg = """ + + + + """; + private const string AnimationSvg = """

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�Fbu-N^~jiA4?Nu+&q3lzw` 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 literal 0 HcmV?d00001 diff --git a/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-46-t.png b/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-46-t.png new file mode 100644 index 0000000000000000000000000000000000000000..e392571283b5ae1619c7e426f3e3df8031ecb541 GIT binary patch literal 19638 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 literal 0 HcmV?d00001 diff --git a/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-52-t.png b/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-52-t.png new file mode 100644 index 0000000000000000000000000000000000000000..919fcd97cc7f7197a87ae54e41e024e4b1ea8538 GIT binary patch literal 26963 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 literal 0 HcmV?d00001 diff --git a/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-64-t.png b/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-64-t.png new file mode 100644 index 0000000000000000000000000000000000000000..6f3c26bffa300adcb59c5713a89432a0f769c532 GIT binary patch literal 13423 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 literal 0 HcmV?d00001 diff --git a/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-65-t.png b/tests/Svg.Skia.UnitTests/ChromeReference/W3C/animate-elem-65-t.png new file mode 100644 index 0000000000000000000000000000000000000000..3298358aaa5d0e339e655de4e131fc8645cb4b42 GIT binary patch literal 20143 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�p-U(ansk;cek$C6-Of8TP;Y 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