diff --git a/Lottie.Android/Lottie.Android.csproj b/Lottie.Android/Lottie.Android.csproj
index 9c4d70b..a4e189d 100644
--- a/Lottie.Android/Lottie.Android.csproj
+++ b/Lottie.Android/Lottie.Android.csproj
@@ -1,6 +1,6 @@
- net6.0-android
+ net8.0-android
Lottie.Android
Lottie.Android
Render After Effects animations natively on Android, iOS, MacOS, TVOs and UWP
diff --git a/Lottie.Maui/Lottie.Maui.csproj b/Lottie.Maui/Lottie.Maui.csproj
index 6f2a72b..d4e4f7e 100644
--- a/Lottie.Maui/Lottie.Maui.csproj
+++ b/Lottie.Maui/Lottie.Maui.csproj
@@ -1,7 +1,8 @@
- net6.0-android;net6.0-ios;net6.0-maccatalyst
- $(TargetFrameworks);net6.0-windows10.0.19041.0
+ net8.0-android;net8.0-ios
+
true
@@ -70,6 +71,6 @@
-
+
diff --git a/Lottie.Maui/Platforms/Ios/AnimationViewRenderer.cs b/Lottie.Maui/Platforms/Ios/AnimationViewRenderer.cs
index 4cff0ae..80aff5f 100644
--- a/Lottie.Maui/Platforms/Ios/AnimationViewRenderer.cs
+++ b/Lottie.Maui/Platforms/Ios/AnimationViewRenderer.cs
@@ -48,6 +48,8 @@ protected override void OnElementChanged(ElementChangedEventArgs
CompletionBlock = _animationCompletionBlock
};
+ _animationView.Layer.MasksToBounds = true;
+
var composition = e.NewElement.GetAnimation();
_animationView.SceneModel = composition;
e.NewElement.InvokeAnimationLoaded(composition);
diff --git a/Lottie.iOS/ApiDefinitions.Ios.cs b/Lottie.iOS/ApiDefinitions.Ios.cs
index 0965ae9..bffc68f 100644
--- a/Lottie.iOS/ApiDefinitions.Ios.cs
+++ b/Lottie.iOS/ApiDefinitions.Ios.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using CoreGraphics;
using Foundation;
using ObjCRuntime;
@@ -7,7 +7,7 @@
namespace Airbnb.Lottie
{
// @interface LOTAnimationTransitionController : NSObject
- [BaseType(typeof(NSObject))]
+ //[BaseType(typeof(NSObject))]
interface LOTAnimationTransitionController : IUIViewControllerAnimatedTransitioning
{
// -(instancetype _Nonnull)initWithAnimationNamed:(NSString * _Nonnull)animation fromLayerNamed:(NSString * _Nullable)fromLayer toLayerNamed:(NSString * _Nullable)toLayer applyAnimationTransform:(BOOL)applyAnimationTransform;
@@ -72,7 +72,7 @@ interface LOTAnimatedSwitch
}
// @interface LOTCacheProvider : NSObject
- [BaseType(typeof(NSObject))]
+ //[BaseType(typeof(NSObject))]
interface LOTCacheProvider
{
// +(id)imageCache;
@@ -84,7 +84,7 @@ interface LOTCacheProvider
// @protocol LOTImageCache
[Protocol, Model]
- [BaseType(typeof(NSObject))]
+ //[BaseType(typeof(NSObject))]
interface LOTImageCache
{
// @required -(UIImage *)imageForKey:(NSString *)key;
@@ -238,14 +238,14 @@ interface LOTKeypath
// @protocol LOTValueDelegate
[Protocol, Model]
- [BaseType(typeof(NSObject))]
+ ////[BaseType(typeof(NSObject))]
interface LOTValueDelegate
{
}
// @protocol LOTColorValueDelegate
[Protocol, Model]
- [BaseType(typeof(LOTValueDelegate))]
+ //[BaseType(typeof(LOTValueDelegate))]
interface LOTColorValueDelegate
{
// @required -(CGColorRef)colorForFrame:(CGFloat)currentFrame startKeyframe:(CGFloat)startKeyframe endKeyframe:(CGFloat)endKeyframe interpolatedProgress:(CGFloat)interpolatedProgress startColor:(CGColorRef)startColor endColor:(CGColorRef)endColor currentColor:(CGColorRef)interpolatedColor;
@@ -256,7 +256,7 @@ interface LOTColorValueDelegate
// @protocol LOTNumberValueDelegate
[Protocol, Model]
- [BaseType(typeof(LOTValueDelegate))]
+ //[BaseType(typeof(LOTValueDelegate))]
interface LOTNumberValueDelegate
{
// @required -(CGFloat)floatValueForFrame:(CGFloat)currentFrame startKeyframe:(CGFloat)startKeyframe endKeyframe:(CGFloat)endKeyframe interpolatedProgress:(CGFloat)interpolatedProgress startValue:(CGFloat)startValue endValue:(CGFloat)endValue currentValue:(CGFloat)interpolatedValue;
@@ -267,7 +267,7 @@ interface LOTNumberValueDelegate
// @protocol LOTPointValueDelegate
[Protocol, Model]
- [BaseType(typeof(LOTValueDelegate))]
+ //[BaseType(typeof(LOTValueDelegate))]
interface LOTPointValueDelegate
{
// @required -(CGPoint)pointForFrame:(CGFloat)currentFrame startKeyframe:(CGFloat)startKeyframe endKeyframe:(CGFloat)endKeyframe interpolatedProgress:(CGFloat)interpolatedProgress startPoint:(CGPoint)startPoint endPoint:(CGPoint)endPoint currentPoint:(CGPoint)interpolatedPoint;
@@ -278,7 +278,7 @@ interface LOTPointValueDelegate
// @protocol LOTSizeValueDelegate
[Protocol, Model]
- [BaseType(typeof(LOTValueDelegate))]
+ //[BaseType(typeof(LOTValueDelegate))]
interface LOTSizeValueDelegate
{
// @required -(CGSize)sizeForFrame:(CGFloat)currentFrame startKeyframe:(CGFloat)startKeyframe endKeyframe:(CGFloat)endKeyframe interpolatedProgress:(CGFloat)interpolatedProgress startSize:(CGSize)startSize endSize:(CGSize)endSize currentSize:(CGSize)interpolatedSize;
@@ -289,7 +289,7 @@ interface LOTSizeValueDelegate
// @protocol LOTPathValueDelegate
[Protocol, Model]
- [BaseType(typeof(LOTValueDelegate))]
+ //[BaseType(typeof(LOTValueDelegate))]
interface LOTPathValueDelegate
{
// @required -(CGPathRef)pathForFrame:(CGFloat)currentFrame startKeyframe:(CGFloat)startKeyframe endKeyframe:(CGFloat)endKeyframe interpolatedProgress:(CGFloat)interpolatedProgress;
@@ -473,7 +473,7 @@ interface LOTAnimationView
}
// @interface LOTAnimationCache : NSObject
- [BaseType(typeof(NSObject))]
+ //[BaseType(typeof(NSObject))]
interface LOTAnimationCache
{
// +(instancetype _Nonnull)sharedCache;
@@ -519,7 +519,7 @@ interface LOTAnimationCache
unsafe delegate CGPath LOTPathValueCallbackBlock(nfloat currentFrame, nfloat startKeyFrame, nfloat endKeyFrame, nfloat interpolatedProgress);
// @interface LOTColorBlockCallback : NSObject
- [BaseType(typeof(NSObject))]
+ //[BaseType(typeof(NSObject))]
interface LOTColorBlockCallback : LOTColorValueDelegate
{
// +(instancetype _Nonnull)withBlock:(LOTColorValueCallbackBlock _Nonnull)block;
@@ -533,7 +533,7 @@ interface LOTColorBlockCallback : LOTColorValueDelegate
}
// @interface LOTNumberBlockCallback : NSObject
- [BaseType(typeof(NSObject))]
+ //[BaseType(typeof(NSObject))]
interface LOTNumberBlockCallback : LOTNumberValueDelegate
{
// +(instancetype _Nonnull)withBlock:(LOTNumberValueCallbackBlock _Nonnull)block;
@@ -547,7 +547,7 @@ interface LOTNumberBlockCallback : LOTNumberValueDelegate
}
// @interface LOTPointBlockCallback : NSObject
- [BaseType(typeof(NSObject))]
+ //[BaseType(typeof(NSObject))]
interface LOTPointBlockCallback : LOTPointValueDelegate
{
// +(instancetype _Nonnull)withBlock:(LOTPointValueCallbackBlock _Nonnull)block;
@@ -561,7 +561,7 @@ interface LOTPointBlockCallback : LOTPointValueDelegate
}
// @interface LOTSizeBlockCallback : NSObject
- [BaseType(typeof(NSObject))]
+ //[BaseType(typeof(NSObject))]
interface LOTSizeBlockCallback : LOTSizeValueDelegate
{
// +(instancetype _Nonnull)withBlock:(LOTSizeValueCallbackBlock _Nonnull)block;
@@ -575,7 +575,7 @@ interface LOTSizeBlockCallback : LOTSizeValueDelegate
}
// @interface LOTPathBlockCallback : NSObject
- [BaseType(typeof(NSObject))]
+ //[BaseType(typeof(NSObject))]
interface LOTPathBlockCallback : LOTPathValueDelegate
{
// +(instancetype _Nonnull)withBlock:(LOTPathValueCallbackBlock _Nonnull)block;
@@ -589,7 +589,7 @@ interface LOTPathBlockCallback : LOTPathValueDelegate
}
// @interface LOTPointInterpolatorCallback : NSObject
- [BaseType(typeof(NSObject))]
+ //[BaseType(typeof(NSObject))]
interface LOTPointInterpolatorCallback : LOTPointValueDelegate
{
// +(instancetype _Nonnull)withFromPoint:(CGPoint)fromPoint toPoint:(CGPoint)toPoint;
@@ -611,7 +611,7 @@ interface LOTPointInterpolatorCallback : LOTPointValueDelegate
}
// @interface LOTSizeInterpolatorCallback : NSObject
- [BaseType(typeof(NSObject))]
+ //[BaseType(typeof(NSObject))]
interface LOTSizeInterpolatorCallback : LOTSizeValueDelegate
{
// +(instancetype _Nonnull)withFromSize:(CGSize)fromSize toSize:(CGSize)toSize;
@@ -633,7 +633,7 @@ interface LOTSizeInterpolatorCallback : LOTSizeValueDelegate
}
// @interface LOTFloatInterpolatorCallback : NSObject
- [BaseType(typeof(NSObject))]
+ //[BaseType(typeof(NSObject))]
interface LOTFloatInterpolatorCallback : LOTNumberValueDelegate
{
// +(instancetype _Nonnull)withFromFloat:(CGFloat)fromFloat toFloat:(CGFloat)toFloat;
@@ -655,7 +655,7 @@ interface LOTFloatInterpolatorCallback : LOTNumberValueDelegate
}
// @interface LOTColorValueCallback : NSObject
- [BaseType(typeof(NSObject))]
+ ////[BaseType(typeof(NSObject))]
interface LOTColorValueCallback : LOTColorValueDelegate
{
// +(instancetype _Nonnull)withCGColor:(CGColorRef _Nonnull)color;
@@ -669,7 +669,7 @@ interface LOTColorValueCallback : LOTColorValueDelegate
}
// @interface LOTNumberValueCallback : NSObject
- [BaseType(typeof(NSObject))]
+ //[BaseType(typeof(NSObject))]
interface LOTNumberValueCallback : LOTNumberValueDelegate
{
// +(instancetype _Nonnull)withFloatValue:(CGFloat)numberValue;
@@ -683,7 +683,7 @@ interface LOTNumberValueCallback : LOTNumberValueDelegate
}
// @interface LOTPointValueCallback : NSObject
- [BaseType(typeof(NSObject))]
+ //[BaseType(typeof(NSObject))]
interface LOTPointValueCallback : LOTPointValueDelegate
{
// +(instancetype _Nonnull)withPointValue:(CGPoint)pointValue;
@@ -697,7 +697,7 @@ interface LOTPointValueCallback : LOTPointValueDelegate
}
// @interface LOTSizeValueCallback : NSObject
- [BaseType(typeof(NSObject))]
+ //[BaseType(typeof(NSObject))]
interface LOTSizeValueCallback : LOTSizeValueDelegate
{
// +(instancetype _Nonnull)withPointValue:(CGSize)sizeValue;
@@ -711,7 +711,7 @@ interface LOTSizeValueCallback : LOTSizeValueDelegate
}
// @interface LOTPathValueCallback : NSObject
- [BaseType(typeof(NSObject))]
+ //[BaseType(typeof(NSObject))]
interface LOTPathValueCallback : LOTPathValueDelegate
{
// +(instancetype _Nonnull)withCGPath:(CGPathRef _Nonnull)path;
diff --git a/Lottie.iOS/Lottie.iOS.csproj b/Lottie.iOS/Lottie.iOS.csproj
index a1a8464..aabb810 100644
--- a/Lottie.iOS/Lottie.iOS.csproj
+++ b/Lottie.iOS/Lottie.iOS.csproj
@@ -1,12 +1,14 @@
- net6.0-ios;net6.0-maccatalyst
+
+ net8.0-ios
Lottie.iOS
Lottie.iOS
Render After Effects animations natively on Android, iOS, MacOS, TVOs and UWP
Com.Airbnb.iOS.Lottie
false
true
+ true
2.6.0
diff --git a/Samples/Maui/Lottie.Sample/Lottie.Sample.csproj b/Samples/Maui/Lottie.Sample/Lottie.Sample.csproj
index e5d337c..8789d8e 100644
--- a/Samples/Maui/Lottie.Sample/Lottie.Sample.csproj
+++ b/Samples/Maui/Lottie.Sample/Lottie.Sample.csproj
@@ -1,8 +1,9 @@
- net7.0-android;net7.0-ios;net7.0-maccatalyst
- $(TargetFrameworks);net7.0-windows10.0.19041.0
+ net8.0-android;net8.0-ios
+
Exe
@@ -28,7 +29,7 @@
10.0.17763.0
10.0.17763.0
6.5
-
+
@@ -49,7 +50,12 @@
-
+
+
+
+
+
+
diff --git a/Samples/Maui/Lottie.Sample/MainPage.xaml b/Samples/Maui/Lottie.Sample/MainPage.xaml
index d836a68..79bb433 100644
--- a/Samples/Maui/Lottie.Sample/MainPage.xaml
+++ b/Samples/Maui/Lottie.Sample/MainPage.xaml
@@ -1,41 +1,32 @@
-
-
+
+
+
+
+
-
-
-
+
-
-
-
-
-
-
+
diff --git a/Samples/Maui/Lottie.Sample/MauiProgram.cs b/Samples/Maui/Lottie.Sample/MauiProgram.cs
index 35a613d..9766f90 100644
--- a/Samples/Maui/Lottie.Sample/MauiProgram.cs
+++ b/Samples/Maui/Lottie.Sample/MauiProgram.cs
@@ -1,4 +1,5 @@
using Microsoft.Extensions.Logging;
+using Microsoft.Maui.Controls.Compatibility.Hosting;
namespace Lottie.Sample
{
@@ -9,10 +10,21 @@ public static MauiApp CreateMauiApp()
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp()
+ .UseMauiCompatibility()
+
.ConfigureFonts(fonts =>
{
- fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
- fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
+ fonts.AddFont("OpenSans_Regular.ttf", "OpenSansRegular");
+ fonts.AddFont("OpenSans_Semibold.ttf", "OpenSansSemibold");
+ })
+ .ConfigureMauiHandlers(handlers =>
+ {
+#if ANDROID
+ handlers.AddCompatibilityRenderer(typeof(Lottie.Forms.AnimationView), typeof(Lottie.Forms.Platforms.Android.AnimationViewRenderer));
+#endif
+#if IOS
+ handlers.AddCompatibilityRenderer(typeof(Lottie.Forms.AnimationView), typeof(Lottie.Forms.Platforms.Ios.AnimationViewRenderer));
+#endif
});
#if DEBUG
@@ -22,4 +34,4 @@ public static MauiApp CreateMauiApp()
return builder.Build();
}
}
-}
\ No newline at end of file
+}
diff --git a/Samples/Maui/Lottie.Sample/Resources/Fonts/OpenSans-Regular.ttf b/Samples/Maui/Lottie.Sample/Resources/Fonts/OpenSans_Regular.ttf
similarity index 100%
rename from Samples/Maui/Lottie.Sample/Resources/Fonts/OpenSans-Regular.ttf
rename to Samples/Maui/Lottie.Sample/Resources/Fonts/OpenSans_Regular.ttf
diff --git a/Samples/Maui/Lottie.Sample/Resources/Fonts/OpenSans-Semibold.ttf b/Samples/Maui/Lottie.Sample/Resources/Fonts/OpenSans_Semibold.ttf
similarity index 100%
rename from Samples/Maui/Lottie.Sample/Resources/Fonts/OpenSans-Semibold.ttf
rename to Samples/Maui/Lottie.Sample/Resources/Fonts/OpenSans_Semibold.ttf
diff --git a/Samples/Maui/Lottie.Sample/Resources/Raw/animation_llq1y8ia.json b/Samples/Maui/Lottie.Sample/Resources/Raw/animation_llq1y8ia.json
new file mode 100644
index 0000000..cafcccf
--- /dev/null
+++ b/Samples/Maui/Lottie.Sample/Resources/Raw/animation_llq1y8ia.json
@@ -0,0 +1 @@
+{"v":"4.6.8","fr":29.9700012207031,"ip":0,"op":40.0000016292334,"w":256,"h":256,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 3","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":20,"s":[208.6,127.969,0],"e":[208.6,88,0],"to":[0,-6.66145849227905,0],"ti":[0,-0.00520833348855,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":30,"s":[208.6,88,0],"e":[208.6,128,0],"to":[0,0.00520833348855,0],"ti":[0,-6.66666650772095,0]},{"t":40.0000016292334}]},"a":{"a":0,"k":[-70,-0.5,0]},"s":{"a":0,"k":[75,75,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[33.75,34.5]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":0,"k":[0.9843137,0.5490196,0,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-70.125,-0.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":300.00001221925,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 2","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":15,"s":[168.6,128,0],"e":[168.6,88,0],"to":[0,-6.66666650772095,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":25,"s":[168.6,88,0],"e":[168.6,128,0],"to":[0,0,0],"ti":[0,-6.66666650772095,0]},{"t":35.0000014255792}]},"a":{"a":0,"k":[-70,-0.5,0]},"s":{"a":0,"k":[75,75,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[33.75,34.5]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":0,"k":[0.9921569,0.8470588,0.2078431,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-70.125,-0.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":300.00001221925,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 1","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":10,"s":[128.594,127.969,0],"e":[128.594,88,0],"to":[0,-6.66145849227905,0],"ti":[0,-0.00520833348855,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":20,"s":[128.594,88,0],"e":[128.594,128,0],"to":[0,0.00520833348855,0],"ti":[0,-6.66666650772095,0]},{"t":30.0000012219251}]},"a":{"a":0,"k":[-70,-0.5,0]},"s":{"a":0,"k":[75,75,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[33.75,34.5]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":0,"k":[0.2627451,0.627451,0.2784314,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-70.125,-0.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":300.00001221925,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 4","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":5,"s":[88.6,127.969,0],"e":[88.6,88,0],"to":[0,-6.66145849227905,0],"ti":[0,-0.00520833348855,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":15,"s":[88.6,88,0],"e":[88.6,128,0],"to":[0,0.00520833348855,0],"ti":[0,-6.66666650772095,0]},{"t":25.0000010182709}]},"a":{"a":0,"k":[-70,-0.5,0]},"s":{"a":0,"k":[75,75,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[33.75,34.5]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":0,"k":[0.1176471,0.5333334,0.8980392,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-70.125,-0.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":300.00001221925,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":5,"ty":4,"nm":"Shape Layer 5","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":0,"s":[48.6,127.969,0],"e":[48.6,88,0],"to":[0,-6.66145849227905,0],"ti":[0,-0.00520833348855,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":10,"s":[48.6,88,0],"e":[48.6,128,0],"to":[0,0.00520833348855,0],"ti":[0,-6.66666650772095,0]},{"t":20.0000008146167}]},"a":{"a":0,"k":[-70,-0.5,0]},"s":{"a":0,"k":[75,75,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[33.75,34.5]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":0,"k":[0.8980392,0.2235294,0.2078431,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-70.125,-0.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":300.00001221925,"st":0,"bm":0,"sr":1}]}
\ No newline at end of file